Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
admin
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
admin
Commits
74586053
提交
74586053
authored
8月 03, 2023
作者:
龚洪江
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
功能:飞手认证,客户实名认证联调
上级
af391b01
隐藏空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
661 行增加
和
31 行删除
+661
-31
customManageType.ts
src/api/interface/customManageType.ts
+13
-0
flyerCenterType.ts
src/api/interface/flyerCenterType.ts
+49
-20
customManage.ts
src/api/modules/customManage.ts
+4
-0
flyerCenterAPI.ts
src/api/modules/flyerCenterAPI.ts
+22
-1
index.tsx
src/pages/customManage/customVerification/details/index.tsx
+53
-0
index.tsx
src/pages/customManage/customVerification/list/index.tsx
+13
-1
index.tsx
src/pages/flyerCenter/flyerManage/flyerAuthDaily/index.tsx
+122
-0
index.tsx
...flyerManage/flyerDetail/components/approveModal/index.tsx
+80
-0
index.scss
src/pages/flyerCenter/flyerManage/flyerDetail/index.scss
+24
-0
index.tsx
src/pages/flyerCenter/flyerManage/flyerDetail/index.tsx
+117
-0
index.tsx
...erManage/flyerList/components/updateRemarkModal/index.tsx
+45
-0
index.tsx
src/pages/flyerCenter/flyerManage/flyerList/index.tsx
+62
-5
index.tsx
...sAddOrEditOrDetail/components/skuAddOrEditModal/index.tsx
+2
-2
router.tsx
src/router/router.tsx
+55
-2
没有找到文件。
src/api/interface/customManageType.ts
浏览文件 @
74586053
...
...
@@ -249,3 +249,16 @@ export type listAuthPageType = InterItemFunction<
createTime
:
string
;
}[]
>
;
//实名认证详情返回类型
export
type
authDetailType
=
InterFunction
<
{
id
:
number
},
{
backIdImg
:
string
;
checkStatus
:
number
;
frontIdImg
:
string
;
id
:
number
;
idNumber
:
string
;
userAccountId
:
number
;
userName
:
string
;
}
>
;
src/api/interface/flyerCenterType.ts
浏览文件 @
74586053
import
{
InterFunction
,
InterItemFunction
}
from
'~/api/interface'
;
//飞手列表
type
flyerItemType
=
{
abilityUrl
:
string
;
age
:
number
;
areaNumber
:
number
;
auditStatus
:
number
;
createTime
:
string
;
id
:
number
;
individualResume
:
string
;
licenseNumber
:
number
;
licenseType
:
string
;
licenseUrl
:
string
;
phoneNum
:
number
;
pilotAbility
:
{
abilityId
:
number
;
abilityName
:
string
;
id
:
number
;
}[];
remark
:
string
;
residentCity
:
string
;
sex
:
number
;
timeOfApplication
:
string
;
updateTime
:
string
;
userAccountId
:
number
;
userName
:
number
;
yearsOfWorking
:
number
;
};
export
type
backListPilotType
=
InterItemFunction
<
{
abilityId
?:
number
;
...
...
@@ -10,32 +36,35 @@ export type backListPilotType = InterItemFunction<
id
?:
number
;
licenseType
?:
string
;
},
flyerItemType
[]
>
;
//修改备注
export
type
updateRemarkType
=
InterFunction
<
{
id
:
number
;
remark
:
string
},
any
>
;
//能力类型
export
type
abilityListType
=
InterFunction
<
any
,
{
abilityId
:
number
;
abilityName
:
string
}[]
>
;
//飞手认证日志类型
export
type
backPilotLogListType
=
InterItemFunction
<
{
accountNumber
?:
string
},
{
abilityUrl
:
string
;
age
:
number
;
areaNumber
:
number
;
auditStatus
:
number
;
certificationDate
:
number
;
certificationMessage
:
number
;
createTime
:
string
;
id
:
number
;
individualResume
:
string
;
licenseNumber
:
number
;
licenseType
:
string
;
licenseUrl
:
string
;
operatorUserAccount
:
number
;
operatorUserId
:
number
;
operatorUserName
:
number
;
phoneNum
:
number
;
pilotAbility
:
{
abilityId
:
number
;
abilityName
:
string
;
id
:
number
;
}[];
remark
:
string
;
residentCity
:
string
;
sex
:
number
;
timeOfApplication
:
string
;
updateTime
:
string
;
userAccountId
:
number
;
userName
:
number
;
yearsOfWorking
:
number
;
}[]
>
;
//能力类型
export
type
abilityListType
=
InterFunction
<
any
,
{
abilityId
:
number
;
abilityName
:
string
}[]
>
;
//飞手详情
export
type
backDetailPilotType
=
InterFunction
<
{
id
:
number
},
flyerItemType
>
;
//飞手审批
export
type
updateAuditStatusType
=
InterFunction
<
{
auditStatus
:
number
;
reasonId
?:
number
;
id
:
number
},
any
>
;
//飞手审批不通过原因列表
export
type
backListReasonType
=
InterFunction
<
any
,
{
id
:
number
;
reason
:
string
}[]
>
;
src/api/modules/customManage.ts
浏览文件 @
74586053
...
...
@@ -2,6 +2,7 @@ import axios from '../request';
import
{
applyTagDetails
,
approvalApplyTag
,
authDetailType
,
changeUserTagNew
,
changeUserTagType
,
CompanyListTag
,
...
...
@@ -59,4 +60,7 @@ export class CustomManageAPI {
// 客户-实名认证列表
static
getListAuth
:
listAuthPageType
=
(
data
)
=>
axios
.
post
(
'/userapp/real-name-auth/listPage'
,
data
);
// 客户-实名认证详情
static
getAuthDetail
:
authDetailType
=
(
params
)
=>
axios
.
get
(
'/userapp/real-name-auth/detail'
,
{
params
});
}
src/api/modules/flyerCenterAPI.ts
浏览文件 @
74586053
import
{
abilityListType
,
backListPilotType
}
from
'~/api/interface/flyerCenterType'
;
import
{
abilityListType
,
backDetailPilotType
,
backListPilotType
,
backListReasonType
,
backPilotLogListType
,
updateAuditStatusType
,
updateRemarkType
,
}
from
'~/api/interface/flyerCenterType'
;
import
axios
from
'../request'
;
export
class
FlyerCenterAPI
{
//飞手列表
static
getBackListPilot
:
backListPilotType
=
(
data
)
=>
axios
.
post
(
'/userapp/pilot/backListPilot'
,
data
);
//修改备注
static
updateRemark
:
updateRemarkType
=
(
data
)
=>
axios
.
post
(
'/userapp/pilot/updateRemark'
,
data
);
// 飞手能力类型
static
getAbilityList
:
abilityListType
=
()
=>
axios
.
get
(
'/userapp/pilot/abilityList'
);
// 飞手认证日志
static
getBackPilotLogList
:
backPilotLogListType
=
(
data
)
=>
axios
.
post
(
'/userapp/pilot/backPilotLogList'
,
data
);
// 飞手详情
static
getBackDetailPilot
:
backDetailPilotType
=
(
params
)
=>
axios
.
get
(
'/userapp/pilot/backDetailPilot'
,
{
params
});
// 飞手审批
static
updateAuditStatus
:
updateAuditStatusType
=
(
data
)
=>
axios
.
post
(
'/userapp/pilot/updateAuditStatus'
,
data
);
// 飞手审批不通过原因
static
getBackListReason
:
backListReasonType
=
()
=>
axios
.
get
(
'/userapp/pilot/backListReason'
);
}
src/pages/customManage/customVerification/details/index.tsx
0 → 100644
浏览文件 @
74586053
import
{
CustomManageAPI
}
from
'~/api'
;
import
{
useSearchParams
,
useNavigate
}
from
'react-router-dom'
;
import
{
useEffect
,
useState
}
from
'react'
;
import
{
InterDataType
}
from
'~/api/interface'
;
import
{
authDetailType
}
from
'~/api/interface/customManageType'
;
import
{
Button
,
Descriptions
,
Image
}
from
'antd'
;
//实名认证详情返回类信息
type
detailType
=
InterDataType
<
authDetailType
>
;
const
CustomVerificationDetail
=
()
=>
{
const
[
searchParams
]
=
useSearchParams
();
const
navigate
=
useNavigate
();
const
[
detail
,
setDetail
]
=
useState
<
detailType
>
();
const
getAuthDetail
=
(
id
:
number
)
=>
{
CustomManageAPI
.
getAuthDetail
({
id
}).
then
(({
result
})
=>
{
setDetail
(
result
);
});
};
//返回
const
backRoute
=
()
=>
{
navigate
(
-
1
);
};
useEffect
(()
=>
{
getAuthDetail
(
Number
(
searchParams
.
get
(
'id'
)));
},
[]);
return
(
<
div
className=
'custom-verification-detail'
>
<
Descriptions
title=
'认证信息'
bordered
column=
{
2
}
extra=
{
<
Button
type=
'primary'
onClick=
{
backRoute
}
>
返回
</
Button
>
}
>
<
Descriptions
.
Item
label=
'姓名'
>
{
detail
?.
userName
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'身份证号码'
>
{
detail
?.
idNumber
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'身份证正面'
>
<
Image
src=
{
detail
?.
frontIdImg
}
width=
{
50
}
/>
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'身份证反面'
>
<
Image
src=
{
detail
?.
backIdImg
}
width=
{
50
}
/>
</
Descriptions
.
Item
>
</
Descriptions
>
</
div
>
);
};
export
default
CustomVerificationDetail
;
src/pages/customManage/customVerification/index.tsx
→
src/pages/customManage/customVerification/
list/
index.tsx
浏览文件 @
74586053
import
SearchBox
,
{
searchColumns
as
searchColumnsType
}
from
'~/components/search-box'
;
import
{
Table
}
from
'antd'
;
import
{
Button
,
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'
;
import
{
useNavigate
}
from
'react-router-dom'
;
//实名认证列表返回类型
type
listAuthType
=
InterDataType
<
listAuthPageType
>
[
'list'
];
...
...
@@ -12,6 +13,8 @@ type listAuthType = InterDataType<listAuthPageType>['list'];
type
listAuthParametersType
=
InterReqListType
<
listAuthPageType
>
;
const
CustomVerification
=
()
=>
{
const
navigate
=
useNavigate
();
const
searchColumns
:
searchColumnsType
[]
=
[
{
name
:
'keyword'
,
...
...
@@ -54,6 +57,11 @@ const CustomVerification = () => {
{
title
:
'操作'
,
align
:
'center'
,
render
:
(
_text
:
string
,
record
)
=>
(
<
Button
type=
'link'
onClick=
{
()
=>
toCustomVerificationDetail
(
record
)
}
>
详情
</
Button
>
),
},
];
const
[
tableData
,
setTableData
]
=
useState
<
listAuthType
>
([]);
...
...
@@ -89,6 +97,10 @@ const CustomVerification = () => {
setQuery
(
value
);
getAuthList
(
value
);
};
//认证详情
const
toCustomVerificationDetail
=
(
record
:
listAuthType
[
0
])
=>
{
navigate
({
pathname
:
'/customManage/customVerificationDetail'
,
search
:
`id=
${
record
.
id
}
`
});
};
useEffect
(()
=>
{
getAuthList
();
...
...
src/pages/flyerCenter/flyerManage/flyerAuthDaily/index.tsx
0 → 100644
浏览文件 @
74586053
import
SearchBox
,
{
searchColumns
as
searchColumnsType
}
from
'~/components/search-box'
;
import
{
Button
,
Table
}
from
'antd'
;
import
{
ColumnsType
}
from
'antd/es/table'
;
import
{
FlyerCenterAPI
}
from
'~/api'
;
import
{
useEffect
,
useState
}
from
'react'
;
import
{
InterDataType
,
InterReqListType
,
PaginationProps
}
from
'~/api/interface'
;
import
{
backPilotLogListType
}
from
'~/api/interface/flyerCenterType'
;
import
{
useNavigate
}
from
'react-router-dom'
;
//日志列表返回类型
type
logListType
=
InterDataType
<
backPilotLogListType
>
[
'list'
];
//日志列表请求类型
type
logParametersType
=
InterReqListType
<
backPilotLogListType
>
;
const
FlyerAuthDaily
=
()
=>
{
const
navigate
=
useNavigate
();
const
searchColumns
:
searchColumnsType
[]
=
[
{
label
:
'账号'
,
type
:
'input'
,
placeholder
:
'请输入UID,姓名或手机号'
,
name
:
'accountNumber'
,
},
];
const
tableColumns
:
ColumnsType
<
logListType
[
0
]
>
=
[
{
title
:
'审批及认证时间'
,
align
:
'center'
,
dataIndex
:
'certificationDate'
,
},
{
title
:
'账号'
,
align
:
'center'
,
dataIndex
:
'userName'
,
},
{
title
:
'手机号'
,
align
:
'center'
,
dataIndex
:
'phoneNum'
,
},
{
title
:
'申请及审批信息'
,
align
:
'center'
,
dataIndex
:
'certificationMessage'
,
},
{
title
:
'操作人员'
,
align
:
'center'
,
dataIndex
:
'operatorUserName'
,
},
];
const
[
tableData
,
setTableData
]
=
useState
<
logListType
>
([]);
const
[
pagination
,
setPagination
]
=
useState
<
PaginationProps
&
{
totalCount
:
number
}
>
({
pageNo
:
1
,
pageSize
:
10
,
totalCount
:
0
,
});
const
[
query
,
setQuery
]
=
useState
<
logParametersType
>
();
//认证日志列表
const
getBackPilotLogList
=
(
query
?:
logParametersType
)
=>
{
FlyerCenterAPI
.
getBackPilotLogList
({
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
;
getBackPilotLogList
(
query
);
};
//筛选成功
const
searchSuccess
=
(
value
:
logParametersType
)
=>
{
pagination
.
pageNo
=
1
;
pagination
.
pageSize
=
10
;
setQuery
(
value
);
getBackPilotLogList
(
value
);
};
//返回
const
backRoute
=
()
=>
{
navigate
(
-
1
);
};
useEffect
(()
=>
{
getBackPilotLogList
();
},
[]);
return
(
<
div
className=
'flyer-auth-daily'
>
<
SearchBox
search=
{
searchColumns
}
searchData=
{
searchSuccess
}
otherChild=
{
<
Button
type=
'primary'
onClick=
{
backRoute
}
>
返回
</
Button
>
}
/>
<
Table
columns=
{
tableColumns
}
dataSource=
{
tableData
}
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
FlyerAuthDaily
;
src/pages/flyerCenter/flyerManage/flyerDetail/components/approveModal/index.tsx
0 → 100644
浏览文件 @
74586053
import
{
Form
,
message
,
Modal
,
ModalProps
,
Radio
,
RadioChangeEvent
,
Select
}
from
'antd'
;
import
{
FC
,
useState
}
from
'react'
;
import
{
FlyerCenterAPI
}
from
'~/api'
;
import
{
InterDataType
}
from
'~/api/interface'
;
import
{
backListReasonType
}
from
'~/api/interface/flyerCenterType'
;
interface
selfProps
{
onCancel
:
()
=>
void
;
onOk
:
()
=>
void
;
flyerId
:
number
;
}
//原因列表返回类型
type
reasonType
=
InterDataType
<
backListReasonType
>
;
const
ApproveModal
:
FC
<
ModalProps
&
selfProps
>
=
({
open
,
onCancel
,
onOk
,
flyerId
})
=>
{
const
[
form
]
=
Form
.
useForm
();
const
[
auditStatus
,
setAuditStatus
]
=
useState
<
number
>
(
1
);
const
[
reasonList
,
setReasonList
]
=
useState
<
reasonType
>
([]);
const
handleCancel
=
()
=>
{
form
.
resetFields
();
setAuditStatus
(
-
1
);
onCancel
();
};
const
handleOk
=
()
=>
{
form
.
validateFields
().
then
((
values
)
=>
{
FlyerCenterAPI
.
updateAuditStatus
({
...
values
,
id
:
flyerId
}).
then
(({
code
})
=>
{
if
(
code
===
'200'
)
{
message
.
success
(
'审批成功'
);
onOk
();
form
.
resetFields
();
setAuditStatus
(
-
1
);
}
});
});
};
const
radioChange
=
(
e
:
RadioChangeEvent
)
=>
{
if
(
!
e
.
target
.
value
)
{
getBackListReason
();
}
setAuditStatus
(
e
.
target
.
value
);
};
//不通过原因列表
const
getBackListReason
=
()
=>
{
FlyerCenterAPI
.
getBackListReason
().
then
(({
result
})
=>
{
setReasonList
(
result
||
[]);
});
};
return
(
<
Modal
open=
{
open
}
onCancel=
{
handleCancel
}
onOk=
{
handleOk
}
title=
'审批飞手'
>
<
Form
form=
{
form
}
initialValues=
{
{
auditStatus
:
1
}
}
>
<
Form
.
Item
label=
'状态'
name=
'auditStatus'
>
<
Radio
.
Group
onChange=
{
radioChange
}
>
<
Radio
value=
{
1
}
>
已通过
</
Radio
>
<
Radio
value=
{
0
}
>
未通过
</
Radio
>
</
Radio
.
Group
>
</
Form
.
Item
>
{
auditStatus
?
(
''
)
:
(
<
Form
.
Item
label=
'原因'
name=
'reasonId'
rules=
{
[{
required
:
true
,
message
:
'请选择原因'
}]
}
>
<
Select
placeholder=
'请选择原因'
>
{
reasonList
.
map
((
v
)
=>
(
<
Select
.
Option
value=
{
v
.
id
}
key=
{
v
.
id
}
>
{
v
.
reason
}
</
Select
.
Option
>
))
}
</
Select
>
</
Form
.
Item
>
)
}
</
Form
>
</
Modal
>
);
};
export
default
ApproveModal
;
src/pages/flyerCenter/flyerManage/flyerDetail/index.scss
0 → 100644
浏览文件 @
74586053
.flyer-detail
{
height
:
100%
;
padding
:
20px
;
box-sizing
:
border-box
;
.ant-row
{
height
:
100%
;
}
&
-header
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
margin-bottom
:
20px
;
}
&
-auth
{
}
&
-ability
{
.ability-img
{
margin-right
:
10px
;
margin-bottom
:
10px
;
}
}
}
src/pages/flyerCenter/flyerManage/flyerDetail/index.tsx
0 → 100644
浏览文件 @
74586053
import
{
FlyerCenterAPI
}
from
'~/api'
;
import
{
useSearchParams
,
useNavigate
}
from
'react-router-dom'
;
import
{
useEffect
,
useState
}
from
'react'
;
import
{
InterDataType
}
from
'~/api/interface'
;
import
{
backDetailPilotType
}
from
'~/api/interface/flyerCenterType'
;
import
{
Button
,
Col
,
Descriptions
,
Image
,
Row
,
Tag
}
from
'antd'
;
import
'./index.scss'
;
import
ApproveModal
from
'./components/approveModal'
;
//飞手详情返回类型
type
flyerDetailType
=
InterDataType
<
backDetailPilotType
>
;
const
FlyerDetail
=
()
=>
{
const
[
searchParams
]
=
useSearchParams
();
const
navigate
=
useNavigate
();
const
[
isApprove
,
setIsApprove
]
=
useState
<
boolean
>
(
false
);
const
[
flyerId
,
setFlyerId
]
=
useState
<
number
>
(
-
1
);
const
[
flyerDetail
,
setFlyerDetail
]
=
useState
<
flyerDetailType
>
();
const
[
approveModalShow
,
setApproveModalShow
]
=
useState
<
boolean
>
(
false
);
const
getFlyerDetail
=
(
id
:
number
)
=>
{
FlyerCenterAPI
.
getBackDetailPilot
({
id
}).
then
(({
result
})
=>
{
setFlyerDetail
(
result
);
});
};
//审批弹窗
const
approveFlyerClick
=
()
=>
{
setApproveModalShow
(
true
);
};
const
approveModalCancel
=
()
=>
{
setApproveModalShow
(
false
);
};
const
approveModalOk
=
()
=>
{
setApproveModalShow
(
false
);
getFlyerDetail
(
flyerId
);
};
//返回
const
backRoute
=
()
=>
{
navigate
(
-
1
);
};
useEffect
(()
=>
{
getFlyerDetail
(
Number
(
searchParams
.
get
(
'id'
)));
setFlyerId
(
Number
(
searchParams
.
get
(
'id'
)));
setIsApprove
(
!!
searchParams
.
get
(
'isApprove'
));
},
[]);
return
(
<
div
className=
'flyer-detail'
>
<
div
className=
'flyer-detail-header'
>
<
div
className=
'header-info'
>
{
flyerDetail
?.
userAccountId
}
(
{
flyerDetail
?.
userName
}
)
</
div
>
<
div
className=
'header-operate'
>
{
isApprove
&&
flyerDetail
?.
auditStatus
===
0
?
(
<
Button
type=
'primary'
style=
{
{
marginRight
:
'10px'
}
}
onClick=
{
approveFlyerClick
}
>
审批
</
Button
>
)
:
(
''
)
}
<
Button
type=
'primary'
onClick=
{
backRoute
}
>
返回
</
Button
>
</
div
>
</
div
>
<
Row
justify=
'space-between'
>
<
Col
span=
{
11
}
>
<
div
className=
'flyer-detail-auth'
>
<
Descriptions
title=
'执照认证'
bordered
column=
{
1
}
labelStyle=
{
{
width
:
'100px'
}
}
>
<
Descriptions
.
Item
label=
'执照类型'
>
{
flyerDetail
?.
licenseType
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'执照编号'
>
{
flyerDetail
?.
licenseNumber
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'执照图片'
>
<
Image
src=
{
flyerDetail
?.
licenseUrl
}
width=
{
100
}
/>
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'个人简介'
>
{
flyerDetail
?.
individualResume
}
</
Descriptions
.
Item
>
</
Descriptions
>
</
div
>
</
Col
>
<
Col
span=
{
11
}
>
<
div
className=
'flyer-detail-ability'
>
<
Descriptions
title=
'能力认证'
bordered
column=
{
1
}
labelStyle=
{
{
minWidth
:
'100px'
}
}
>
<
Descriptions
.
Item
label=
'常驻地'
>
{
flyerDetail
?.
residentCity
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'工作年限'
>
{
flyerDetail
?.
yearsOfWorking
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'能力'
>
{
flyerDetail
?.
pilotAbility
.
map
((
v
)
=>
(
<
Tag
key=
{
v
.
id
}
>
{
v
.
abilityName
}
</
Tag
>
))
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'业务案例'
>
{
flyerDetail
?.
abilityUrl
?
(
<
Image
.
PreviewGroup
items=
{
JSON
.
parse
(
flyerDetail
?.
abilityUrl
)
}
>
{
JSON
.
parse
(
flyerDetail
?.
abilityUrl
).
map
((
v
:
string
,
index
:
number
)
=>
(
<
Image
src=
{
v
}
key=
{
index
}
width=
{
100
}
rootClassName=
'ability-img'
/>
))
}
</
Image
.
PreviewGroup
>
)
:
(
''
)
}
</
Descriptions
.
Item
>
</
Descriptions
>
</
div
>
</
Col
>
</
Row
>
{
/* 审批弹窗*/
}
<
ApproveModal
open=
{
approveModalShow
}
onCancel=
{
approveModalCancel
}
onOk=
{
approveModalOk
}
flyerId=
{
flyerId
}
/>
</
div
>
);
};
export
default
FlyerDetail
;
src/pages/flyerCenter/flyerManage/flyerList/components/updateRemarkModal/index.tsx
0 → 100644
浏览文件 @
74586053
import
{
Form
,
Input
,
message
,
Modal
,
ModalProps
}
from
'antd'
;
import
{
FC
,
useEffect
}
from
'react'
;
import
{
InterDataType
}
from
'~/api/interface'
;
import
{
backListPilotType
}
from
'~/api/interface/flyerCenterType'
;
import
{
FlyerCenterAPI
}
from
'~/api'
;
//飞手列表返回类型
type
flyerListType
=
InterDataType
<
backListPilotType
>
[
'list'
];
interface
selfProps
{
onOk
:
()
=>
void
;
flyerItem
:
flyerListType
[
0
]
|
undefined
;
}
const
UpdateRemarkModal
:
FC
<
ModalProps
&
selfProps
>
=
({
open
,
onCancel
,
onOk
,
flyerItem
})
=>
{
const
[
form
]
=
Form
.
useForm
<
{
remark
:
string
}
>
();
const
handleOk
=
()
=>
{
if
(
flyerItem
)
{
form
.
validateFields
().
then
((
values
)
=>
{
FlyerCenterAPI
.
updateRemark
({
id
:
flyerItem
.
id
,
...
values
}).
then
(({
code
})
=>
{
if
(
code
===
'200'
)
{
message
.
success
(
'编辑备注成功'
);
onOk
();
}
});
});
}
};
useEffect
(()
=>
{
if
(
flyerItem
)
{
form
.
setFieldValue
(
'remark'
,
flyerItem
.
remark
);
}
},
[
flyerItem
]);
return
(
<
Modal
open=
{
open
}
onCancel=
{
onCancel
}
onOk=
{
handleOk
}
title=
'备注修改'
>
<
Form
form=
{
form
}
>
<
Form
.
Item
label=
'备注'
name=
'remark'
>
<
Input
.
TextArea
placeholder=
'请输入备注'
maxLength=
{
70
}
showCount
rows=
{
4
}
/>
</
Form
.
Item
>
</
Form
>
</
Modal
>
);
};
export
default
UpdateRemarkModal
;
src/pages/flyerCenter/flyerList/index.tsx
→
src/pages/flyerCenter/flyer
Manage/flyer
List/index.tsx
浏览文件 @
74586053
...
...
@@ -6,6 +6,8 @@ import { useEffect, useState } from 'react';
import
{
InterDataType
,
InterReqListType
,
PaginationProps
}
from
'~/api/interface'
;
import
{
backListPilotType
}
from
'~/api/interface/flyerCenterType'
;
import
{
getSecondDistrictInfoType
}
from
'~/api/interface/commonType'
;
import
{
useNavigate
}
from
'react-router-dom'
;
import
UpdateRemarkModal
from
'./components/updateRemarkModal'
;
//飞手列表返回类型
type
flyerListType
=
InterDataType
<
backListPilotType
>
[
'list'
];
...
...
@@ -15,6 +17,8 @@ type flyerListParameters = InterReqListType<backListPilotType>;
type
locationType
=
InterDataType
<
getSecondDistrictInfoType
>
;
const
FlyerList
=
()
=>
{
const
navigate
=
useNavigate
();
const
[
searchColumns
,
setSearchColumns
]
=
useState
<
searchColumnsType
[]
>
([
{
name
:
'accountNumber'
,
...
...
@@ -51,7 +55,7 @@ const FlyerList = () => {
const
tableColumns
:
ColumnsType
<
flyerListType
[
0
]
>
=
[
{
title
:
'UID'
,
dataIndex
:
'u
i
d'
,
dataIndex
:
'u
serAccountI
d'
,
align
:
'center'
,
},
{
...
...
@@ -91,29 +95,43 @@ const FlyerList = () => {
title
:
'备注'
,
align
:
'center'
,
dataIndex
:
'remark'
,
render
:
(
text
:
string
,
record
)
=>
(
<
Button
type=
'link'
onClick=
{
()
=>
updateRemarkClick
(
record
)
}
>
{
text
||
'--'
}
</
Button
>
),
},
{
title
:
'操作'
,
align
:
'center'
,
render
:
(
_text
:
string
,
record
)
=>
(
<>
<
Button
type=
'link'
danger
disabled=
{
record
.
auditStatus
!==
0
}
>
<
Button
type=
'link'
danger
disabled=
{
record
.
auditStatus
!==
0
}
onClick=
{
()
=>
toFlyerApprove
(
record
)
}
>
审批
</
Button
>
<
Button
type=
'link'
>
变更
</
Button
>
<
Button
type=
'link'
>
详情
</
Button
>
<
Button
type=
'link'
onClick=
{
()
=>
toFlyerDetail
(
record
)
}
>
详情
</
Button
>
</>
),
},
];
const
[
tableData
,
setTableData
]
=
useState
<
flyerListType
>
([]);
const
[
currentTableItem
,
setCurrentTableItem
]
=
useState
<
flyerListType
[
0
]
>
();
const
[
query
,
setQuery
]
=
useState
<
flyerListParameters
>
();
const
[
pagination
,
setPagination
]
=
useState
<
PaginationProps
&
{
totalCount
:
number
}
>
({
pageNo
:
1
,
pageSize
:
10
,
totalCount
:
0
,
});
//修改备注弹窗
const
[
updateRemarkModalShow
,
setUpdateRemarkModalShow
]
=
useState
<
boolean
>
(
false
);
//飞手列表
const
getFlyerList
=
(
query
?:
flyerListParameters
)
=>
{
...
...
@@ -165,6 +183,30 @@ const FlyerList = () => {
setSearchColumns
([...
searchColumns
]);
});
};
//认证日志页面
const
toFlyerAuthDaily
=
()
=>
{
navigate
(
'/flyerCenter/flyerAuthDaily'
);
};
//飞手审批页面
const
toFlyerApprove
=
(
record
:
flyerListType
[
0
])
=>
{
navigate
({
pathname
:
'/flyerCenter/flyerDetail'
,
search
:
`id=
${
record
.
id
}
&isApprove=1`
});
};
//飞手详情页面
const
toFlyerDetail
=
(
record
:
flyerListType
[
0
])
=>
{
navigate
({
pathname
:
'/flyerCenter/flyerApprove'
,
search
:
`id=
${
record
.
id
}
`
});
};
//修改备注
const
updateRemarkClick
=
(
record
:
flyerListType
[
0
])
=>
{
setCurrentTableItem
(
record
);
setUpdateRemarkModalShow
(
true
);
};
const
updateRemarkModalCancel
=
()
=>
{
setUpdateRemarkModalShow
(
false
);
};
const
updateRemarkModalOk
=
()
=>
{
getFlyerList
(
query
);
setUpdateRemarkModalShow
(
false
);
};
useEffect
(()
=>
{
getFlyerList
();
...
...
@@ -174,7 +216,15 @@ const FlyerList = () => {
return
(
<
div
className=
'flyer-list'
>
<
SearchBox
search=
{
searchColumns
}
searchData=
{
searchSuccess
}
/>
<
SearchBox
search=
{
searchColumns
}
searchData=
{
searchSuccess
}
sufFixBtn=
{
<
Button
type=
'primary'
onClick=
{
toFlyerAuthDaily
}
>
认证日志
</
Button
>
}
/>
<
Table
bordered
columns=
{
tableColumns
}
...
...
@@ -190,6 +240,13 @@ const FlyerList = () => {
showTotal
:
(
total
,
range
)
=>
`当前 ${range[0]}-${range[1]} 条记录 / 共 ${total} 条数据`
,
}
}
/>
{
/*修改备注*/
}
<
UpdateRemarkModal
open=
{
updateRemarkModalShow
}
onOk=
{
updateRemarkModalOk
}
onCancel=
{
updateRemarkModalCancel
}
flyerItem=
{
currentTableItem
}
/>
</
div
>
);
};
...
...
src/pages/mallManage/mallGoods/goodsAddOrEditOrDetail/components/skuAddOrEditModal/index.tsx
浏览文件 @
74586053
...
...
@@ -79,7 +79,7 @@ const SkuAddOrEditModal: FC<ModalProps & selfProps> = ({
return
Promise
.
reject
(
new
Error
(
'请输入正整数'
));
}
}
else
{
return
Promise
.
re
ject
(
new
Error
(
'请输入库存'
)
);
return
Promise
.
re
solve
(
);
}
};
...
...
@@ -153,7 +153,7 @@ const SkuAddOrEditModal: FC<ModalProps & selfProps> = ({
editable
:
true
,
align
:
'center'
,
dataIndex
:
'stock'
,
rules
:
[{
required
:
tru
e
,
validator
:
stockPriceValidator
}],
rules
:
[{
required
:
fals
e
,
validator
:
stockPriceValidator
}],
inputType
:
'number'
,
},
{
...
...
src/router/router.tsx
浏览文件 @
74586053
...
...
@@ -56,7 +56,12 @@ 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'
));
const
CustomVerificationView
=
React
.
lazy
(
()
=>
import
(
'~/pages/customManage/customVerification/list'
),
);
//实名认证
const
CustomVerificationDetailView
=
React
.
lazy
(
()
=>
import
(
'~/pages/customManage/customVerification/details'
),
);
//资源管理
import
MaterielManageView
from
'~/pages/resourceManage/materielManage'
;
...
...
@@ -117,7 +122,11 @@ const AddInstitutionsView = React.lazy(
);
//机构上传
//飞手中心
const
FlyerListView
=
React
.
lazy
(()
=>
import
(
'~/pages/flyerCenter/flyerList'
));
const
FlyerListView
=
React
.
lazy
(()
=>
import
(
'~/pages/flyerCenter/flyerManage/flyerList'
));
//飞手列表
const
FlyerAuthDailyView
=
React
.
lazy
(
()
=>
import
(
'~/pages/flyerCenter/flyerManage/flyerAuthDaily'
),
);
//飞手认证日志;
const
FlyerDetailsView
=
React
.
lazy
(()
=>
import
(
'~/pages/flyerCenter/flyerManage/flyerDetail'
));
//飞手详情、飞手审批
// 系统管理
import
AccountManageView
from
'~/pages/systemManage/accountManage'
;
...
...
@@ -220,6 +229,17 @@ export const routerList: Array<RouteObjectType> = [
},
},
{
path
:
'/customManage/customVerificationDetail'
,
element
:
withLoadingComponent
(<
CustomVerificationDetailView
/>),
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
240
,
title
:
'实名认证详情'
,
hidden
:
true
,
icon
:
<
SolutionOutlined
/>,
},
},
{
path
:
'/customManage/customList/detail'
,
element
:
withLoadingComponent
(<
CustomListDetail
/>),
errorElement
:
<
ErrorPage
/>,
...
...
@@ -990,6 +1010,39 @@ export const routerList: Array<RouteObjectType> = [
icon
:
<
UserOutlined
/>,
},
},
{
path
:
'/flyerCenter/flyerAuthDaily'
,
element
:
withLoadingComponent
(<
FlyerAuthDailyView
/>),
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
1520
,
title
:
'认证日志'
,
hidden
:
true
,
icon
:
<
UserOutlined
/>,
},
},
{
path
:
'/flyerCenter/flyerDetail'
,
element
:
withLoadingComponent
(<
FlyerDetailsView
/>),
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
1530
,
title
:
'飞手详情'
,
hidden
:
true
,
icon
:
<
UserOutlined
/>,
},
},
{
path
:
'/flyerCenter/flyerApprove'
,
element
:
withLoadingComponent
(<
FlyerDetailsView
/>),
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
1540
,
title
:
'飞手审批'
,
hidden
:
true
,
icon
:
<
UserOutlined
/>,
},
},
],
},
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论