Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
admin
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
admin
Commits
7d635326
提交
7d635326
authored
10月 28, 2023
作者:
ZhangLingKun
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop'
上级
1d94c149
e7de9965
隐藏空白字符变更
内嵌
并排
正在显示
20 个修改的文件
包含
545 行增加
和
22 行删除
+545
-22
.env.production
env/.env.production
+1
-0
kustomization.yaml
kustomization/overlays/dev/kustomization.yaml
+1
-1
activityManage.ts
src/api/interface/activityManage.ts
+75
-0
customManageType.ts
src/api/interface/customManageType.ts
+4
-0
dataDashboardsType.ts
src/api/interface/dataDashboardsType.ts
+1
-0
depleteManageType.ts
src/api/interface/depleteManageType.ts
+8
-0
activityManage.ts
src/api/modules/activityManage.ts
+6
-0
depleteManageTypeAPI.ts
src/api/modules/depleteManageTypeAPI.ts
+4
-0
index.tsx
src/components/order/productOrder/sureOrder/index.tsx
+1
-8
index.tsx
src/components/search-box/index.tsx
+1
-0
index.tsx
...activityManage/activityList/comp/addOrEditModal/index.tsx
+3
-3
index.tsx
src/pages/activityManage/activityList/detail/index.tsx
+139
-0
index.tsx
src/pages/activityManage/activityList/index.tsx
+22
-3
index.tsx
...s/customManage/customIdentity/comp/addEditModal/index.tsx
+32
-1
index.tsx
.../customManage/customIdentity/comp/contractModal/index.tsx
+146
-0
index.tsx
src/pages/customManage/customIdentity/index.tsx
+34
-1
index.tsx
src/pages/dataDashboards/components/joinInfo/index.tsx
+4
-2
index.scss
src/pages/depleteManage/withDrawList/index.scss
+8
-0
index.tsx
src/pages/depleteManage/withDrawList/index.tsx
+41
-3
router.tsx
src/router/router.tsx
+14
-0
没有找到文件。
env/.env.production
浏览文件 @
7d635326
#请求接口地址
VITE_REQUEST_BASE_URL='https://www.iuav.shop'
#VITE_REQUEST_BASE_URL='http://119.23.248.181'
#VITE_REQUEST_BASE_URL='http://120.77.145.47'
#VITE_REQUEST_BASE_URL='https://test.iuav.shop'
#VITE_REQUEST_BASE_URL='/api'
...
...
kustomization/overlays/dev/kustomization.yaml
浏览文件 @
7d635326
...
...
@@ -14,4 +14,4 @@ patches:
images
:
-
name
:
REGISTRY/NAMESPACE/IMAGE:TAG
newName
:
mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/admin
newTag
:
6a85a7fa07fcbc6507de09152937ed5f27bf494c
newTag
:
9fb79ceb3cf93febf2f25fa9c26a42b1884757bf
src/api/interface/activityManage.ts
浏览文件 @
7d635326
...
...
@@ -126,3 +126,78 @@ export type activityUpdateType = InterFunction<
>
;
// 删除活动
export
type
activityDeleteType
=
InterFunction
<
{
id
:
number
},
null
>
;
// 活动详情
export
type
activityInviteDetailType
=
InterListFunction
<
{
activityId
:
number
;
activityStatus
?:
number
;
activityType
?:
number
;
userAccountId
?:
number
;
},
{
id
:
number
;
activityId
:
number
;
userAccountId
:
number
;
createTime
:
null
;
accountSimpleDTO
:
{
id
:
number
;
uid
:
string
;
phoneNum
:
string
;
userName
:
string
;
nickName
:
string
;
userImg
:
string
;
openid
:
string
;
userSex
:
number
;
email
:
null
;
source
:
null
;
accountStatus
:
number
;
portType
:
number
;
companyAuthStatus
:
number
;
cooperationTagId
:
null
;
companyName
:
string
;
tagName
:
null
;
cooperationTagVOS
:
Array
<
{
id
:
number
;
tagName
:
string
;
tagImg
:
null
;
tagDescription
:
null
;
tagRequire
:
null
;
createTime
:
null
;
}
>
;
briefIntroduction
:
null
;
coverPicture
:
null
;
region
:
null
;
};
rewardValue
:
null
;
puserAccountId
:
number
;
paccountSimpleDTO
:
{
id
:
number
;
uid
:
string
;
phoneNum
:
string
;
userName
:
null
;
nickName
:
string
;
userImg
:
string
;
openid
:
string
;
userSex
:
number
;
email
:
null
;
source
:
null
;
accountStatus
:
number
;
portType
:
number
;
companyAuthStatus
:
number
;
cooperationTagId
:
null
;
companyName
:
null
;
tagName
:
null
;
cooperationTagVOS
:
Array
<
{
id
:
number
;
tagName
:
string
;
tagImg
:
null
;
tagDescription
:
null
;
tagRequire
:
null
;
createTime
:
null
;
}
>
;
briefIntroduction
:
null
;
coverPicture
:
null
;
region
:
null
;
};
}
>
;
src/api/interface/customManageType.ts
浏览文件 @
7d635326
...
...
@@ -142,6 +142,8 @@ export type listUserApplyTag = InterListFunction<
remark
:
string
;
score
:
number
;
userAccountId
:
number
;
orderNo
:
string
;
signStatus
:
number
;
}
>
;
// 审批详情
...
...
@@ -197,6 +199,8 @@ export type editUserApplyTagDetails = InterFunction<
remark
:
string
;
attachmentList
?:
{
userApplyTagId
:
number
;
url
:
string
;
type
:
number
}[];
brandLogo
:
string
;
contractNo
?:
string
;
signStatus
:
number
;
}
>
;
// 后台-编辑服务商信息
...
...
src/api/interface/dataDashboardsType.ts
浏览文件 @
7d635326
...
...
@@ -100,6 +100,7 @@ export type userJoinReportDataType = InterFunction<
* 培训机构
*/
trainingInstitution
:
number
;
companyAuthCount
:
number
;
}
>
;
// 数据看板-订单数据
...
...
src/api/interface/depleteManageType.ts
浏览文件 @
7d635326
...
...
@@ -99,3 +99,11 @@ export type approveWithdrawalApplyType = InterFunction<
},
any
>
;
// 提现数据统计
export
type
statisticsType
=
InterFunction
<
any
,
{
cashPoolAmount
:
number
;
totalWithdrawAmt
:
number
;
}
>
;
src/api/modules/activityManage.ts
浏览文件 @
7d635326
...
...
@@ -4,6 +4,7 @@ import {
activityDeleteType
,
activityEditType
,
activityInsertType
,
activityInviteDetailType
,
activityUpdateType
,
addActivityType
,
DataInfoType
,
...
...
@@ -73,4 +74,9 @@ export class ActivityManageAPI {
static
activityDelete
:
activityDeleteType
=
(
params
)
=>
{
return
axios
.
get
(
'/userapp/activity/delete'
,
{
params
});
};
// 活动详情
static
activityInviteDetail
:
activityInviteDetailType
=
(
params
)
=>
{
return
axios
.
post
(
'/userapp/activity/inviteDetail'
,
params
);
};
}
src/api/modules/depleteManageTypeAPI.ts
浏览文件 @
7d635326
import
{
approveWithdrawalApplyType
,
listPageWithdrawalApplyType
,
statisticsType
,
}
from
'~/api/interface/depleteManageType'
;
import
axios
from
'~/api/request'
;
...
...
@@ -11,4 +12,7 @@ export class DepleteManageTypeAPI {
//提现审批
static
approveWithdrawalApply
:
approveWithdrawalApplyType
=
(
params
)
=>
axios
.
get
(
'/userapp/withdrawal/approveWithdrawalApply'
,
{
params
});
// 提现数据统计
static
getCashAmountAndWithdrawAmount
:
statisticsType
=
()
=>
axios
.
get
(
'/userapp/withdrawal/getCashAmountAndWithdrawAmount'
);
}
src/components/order/productOrder/sureOrder/index.tsx
浏览文件 @
7d635326
...
...
@@ -38,14 +38,7 @@ interface selfProps {
type
:
number
;
//0:采购订单,1:商城订单
}
const
SureOrder
:
FC
<
ModalProps
&
selfProps
>
=
({
open
,
onOk
,
onCancel
,
orderItem
,
type
,
updateContract
,
})
=>
{
const
SureOrder
:
FC
<
ModalProps
&
selfProps
>
=
({
open
,
onOk
,
onCancel
,
orderItem
,
type
})
=>
{
const
navigate
=
useNavigate
();
const
[
orderInfoForm
]
=
Form
.
useForm
<
{
orderTotalAmount
:
number
;
...
...
src/components/search-box/index.tsx
浏览文件 @
7d635326
...
...
@@ -114,6 +114,7 @@ const Index: React.FC<propsType> = (props) => {
form=
{
form
}
initialValues=
{
{
layout
:
'inline'
}
}
onFinish=
{
handleSubmit
}
autoComplete=
{
'off'
}
>
{
props
?.
child
&&
<
div
className=
'search-children'
>
{
props
?.
child
}
</
div
>
}
{
props
?.
children
&&
<
div
className=
'search-children'
>
{
props
?.
children
}
</
div
>
}
...
...
src/pages/activityManage/activityList/comp/addOrEditModal/index.tsx
浏览文件 @
7d635326
...
...
@@ -52,11 +52,11 @@ const AddOrEditModal: FC<ModalProps & selfProps> = ({ open, onCancel, title, dat
}
else
{
editForm
.
resetFields
();
}
console
.
log
(
'组件挂载 --->'
,
data
);
//
console.log('组件挂载 --->', data);
},
[
open
]);
return
(
<
Modal
open=
{
open
}
onCancel=
{
handleCancel
}
title=
{
title
}
onOk=
{
handleSubmit
}
>
<
Form
labelCol=
{
{
span
:
4
}
}
wrapperCol=
{
{
span
:
16
}
}
form=
{
editForm
}
>
<
Form
labelCol=
{
{
span
:
4
}
}
wrapperCol=
{
{
span
:
16
}
}
form=
{
editForm
}
autoComplete=
{
'off'
}
>
<
Form
.
Item
label=
'活动名称'
name=
'activityName'
...
...
@@ -113,7 +113,7 @@ const AddOrEditModal: FC<ModalProps & selfProps> = ({ open, onCancel, title, dat
<
Radio
.
Group
options=
{
[
{
label
:
'积分'
,
value
:
0
},
{
label
:
'余额'
,
value
:
1
},
{
label
:
'余额'
,
value
:
1
,
disabled
:
true
},
{
label
:
'优惠券'
,
value
:
2
,
disabled
:
true
},
]
}
/>
...
...
src/pages/activityManage/activityList/detail/index.tsx
0 → 100644
浏览文件 @
7d635326
import
{
useEffect
,
useState
}
from
'react'
;
import
SearchBox
from
'~/components/search-box'
;
import
{
Button
,
message
,
Table
}
from
'antd'
;
import
{
ArrowLeftOutlined
}
from
'@ant-design/icons'
;
import
{
activityInviteDetailType
}
from
'~/api/interface/activityManage'
;
import
{
InterListType
}
from
'~/api/interface'
;
import
{
ActivityManageAPI
}
from
'~/api'
;
import
{
useLocation
,
useNavigate
}
from
'react-router-dom'
;
import
qs
from
'query-string'
;
import
{
ColumnsType
}
from
'antd/es/table'
;
// 列表的类型
type
TableType
=
InterListType
<
activityInviteDetailType
>
;
const
ActivityListDetailView
=
()
=>
{
// 路由钩子
const
location
=
useLocation
();
const
navigate
=
useNavigate
();
// 表格数据
const
[
tableData
,
setTableData
]
=
useState
<
TableType
>
([]);
// 表格分页配置
const
[
pagination
,
setPagination
]
=
useState
({
total
:
0
,
pageSize
:
10
,
current
:
1
,
totalPage
:
0
,
});
// 活动id
const
activityId
=
Number
(
qs
.
parse
(
location
.
search
).
id
);
// 加载列表
const
getTableList
=
async
(
value
=
{})
=>
{
// 只需要修改这个地方的接口即可
const
res
=
await
ActivityManageAPI
.
activityInviteDetail
({
pageNo
:
pagination
.
current
,
pageSize
:
pagination
.
pageSize
,
activityId
,
...
value
,
});
if
(
res
&&
res
.
code
===
'200'
)
{
const
{
list
,
pageNo
,
totalCount
,
pageSize
,
totalPage
}
=
res
.
result
;
// 解构
setPagination
({
total
:
totalCount
,
current
:
pageNo
,
pageSize
,
totalPage
,
});
setTableData
(
list
||
[]);
// console.log('加载列表 --->', list);
}
else
{
message
.
warning
(
res
.
message
);
}
};
// 翻页
const
paginationChange
=
(
pageNo
:
number
,
pageSize
:
number
)
=>
{
getTableList
({
pageNo
,
pageSize
}).
then
();
};
// 页面挂载
useEffect
(()
=>
{
getTableList
().
then
();
},
[]);
// 表格结构
const
columns
:
ColumnsType
<
TableType
[
0
]
>
=
[
{
title
:
'邀请人'
,
dataIndex
:
'userAccountId'
,
align
:
'center'
,
render
:
(
_text
,
record
)
=>
record
?.
accountSimpleDTO
?.
userName
||
record
?.
accountSimpleDTO
?.
nickName
,
},
{
title
:
'邀请人手机号'
,
dataIndex
:
'userAccountId'
,
align
:
'center'
,
render
:
(
_text
,
record
)
=>
record
?.
accountSimpleDTO
?.
phoneNum
,
},
{
title
:
'被邀请人'
,
dataIndex
:
'userAccountId'
,
align
:
'center'
,
render
:
(
_text
,
record
)
=>
record
?.
paccountSimpleDTO
?.
userName
||
record
?.
paccountSimpleDTO
?.
nickName
,
},
{
title
:
'被邀请人手机号'
,
dataIndex
:
'userAccountId'
,
align
:
'center'
,
render
:
(
_text
,
record
)
=>
record
?.
paccountSimpleDTO
?.
phoneNum
,
},
{
title
:
'奖励积分'
,
dataIndex
:
'rewardValue'
,
align
:
'center'
,
render
:
(
text
)
=>
`
${
text
}
分`
,
},
{
title
:
'注册时间'
,
dataIndex
:
'createTime'
,
align
:
'center'
,
},
];
return
(
<>
<
SearchBox
child=
{
<>
<
Button
type=
{
'primary'
}
icon=
{
<
ArrowLeftOutlined
/>
}
onClick=
{
()
=>
{
navigate
(
-
1
);
}
}
>
返回
</
Button
>
</>
}
/>
<
Table
// size='small'
dataSource=
{
tableData
}
columns=
{
columns
}
rowKey=
'id'
// scroll={{ x: 1000 }}
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
ActivityListDetailView
;
src/pages/activityManage/activityList/index.tsx
浏览文件 @
7d635326
import
React
,
{
useEffect
,
useState
}
from
'react'
;
import
{
useEffect
,
useState
}
from
'react'
;
import
SearchView
from
'~/components/search-box'
;
import
{
ActivityManageAPI
}
from
'~/api'
;
import
{
InterListType
,
InterReqListType
}
from
'~/api/interface'
;
...
...
@@ -7,6 +7,8 @@ import { Button, message, Modal, Table } from 'antd';
import
{
ColumnsType
}
from
'antd/es/table'
;
import
{
PlusOutlined
}
from
'@ant-design/icons'
;
import
AddOrEditModal
from
'~/pages/activityManage/activityList/comp/addOrEditModal'
;
import
{
useNavigate
}
from
'react-router-dom'
;
import
qs
from
'query-string'
;
// 列表的类型
type
TableType
=
InterListType
<
listActivityPagesType
>
;
...
...
@@ -29,6 +31,8 @@ const rewardTypeList = [
];
const
ActivityListView
=
()
=>
{
// 路由钩子
const
navigate
=
useNavigate
();
// 表格数据
const
[
tableData
,
setTableData
]
=
useState
<
TableType
>
([]);
// 表格分页配置
...
...
@@ -62,7 +66,7 @@ const ActivityListView = () => {
totalPage
,
});
setTableData
(
list
||
[]);
console
.
log
(
'加载列表 --->'
,
list
);
//
console.log('加载列表 --->', list);
}
else
{
message
.
warning
(
res
.
message
);
}
...
...
@@ -87,7 +91,9 @@ const ActivityListView = () => {
const
res
=
await
ActivityManageAPI
.
activityDelete
({
id
:
record
?.
id
});
if
(
res
&&
res
.
code
===
'200'
)
{
paginationChange
(
tableData
.
length
===
1
?
pagination
.
current
-
1
:
pagination
.
current
,
tableData
.
length
===
1
&&
pagination
.
current
!==
1
?
pagination
.
current
-
1
:
pagination
.
current
,
pagination
.
pageSize
,
);
message
.
success
(
'删除成功'
);
...
...
@@ -160,6 +166,7 @@ const ActivityListView = () => {
dataIndex
:
'action'
,
align
:
'center'
,
fixed
:
'right'
,
width
:
'180px'
,
render
:
(
_text
,
record
)
=>
(
<>
<
Button
...
...
@@ -171,6 +178,18 @@ const ActivityListView = () => {
>
编辑
</
Button
>
<
Button
type=
{
'link'
}
onClick=
{
()
=>
{
navigate
(
`/activityManage/activityList/detail?${qs.stringify({
id: record?.id,
})}`
,
);
}
}
>
领取记录
</
Button
>
<
Button
type=
{
'link'
}
danger
onClick=
{
()
=>
handleDelete
(
record
)
}
>
删除
</
Button
>
...
...
src/pages/customManage/customIdentity/comp/addEditModal/index.tsx
浏览文件 @
7d635326
...
...
@@ -6,10 +6,12 @@ import {
}
from
'~/api/interface/customManageType'
;
import
{
InterDataType
,
InterListType
,
InterReqType
}
from
'~/api/interface'
;
import
{
Button
,
Form
,
Image
,
Input
,
message
,
Modal
,
Rate
,
Select
}
from
'antd'
;
import
{
CustomManageAPI
}
from
'~/api'
;
import
{
CustomManageAPI
,
FddInterfaceAPI
}
from
'~/api'
;
import
SelectMapModal
from
'~/components/select-map'
;
import
{
Uploader
}
from
'~/components/uploader'
;
import
{
UploadOutlined
}
from
'@ant-design/icons'
;
import
{
decode
}
from
'js-base64'
;
import
FileSaver
from
'file-saver'
;
// 数据类型
type
DataType
=
InterDataType
<
editUserApplyTagDetails
>
;
...
...
@@ -141,6 +143,23 @@ const AddEditModal: FC<propType> = (props) => {
handleCancel
();
}
};
// 合同预览
const
contractPreview
=
()
=>
{
if
(
detail
?.
contractNo
)
{
FddInterfaceAPI
.
viewContract
({
contractId
:
detail
?.
contractNo
}).
then
(({
result
})
=>
{
window
.
open
(
decode
(
result
),
'_blank'
);
});
}
};
// 合同下载
const
downloadContract
=
()
=>
{
if
(
detail
?.
contractNo
)
{
FddInterfaceAPI
.
downloadContract
({
contractId
:
detail
?.
contractNo
}).
then
(({
result
})
=>
{
FileSaver
.
saveAs
(
decode
(
result
),
`
${
detail
?.
contractNo
}.
pdf
`);
});
}
};
// componentDidMount
useEffect(() => {
if (!open) return;
...
...
@@ -218,6 +237,18 @@ const AddEditModal: FC<propType> = (props) => {
<Form.Item label='营业执照'>
<Image src={detail?.licenseImg} width={50} height={50} />
</Form.Item>
{detail?.contractNo ? (
<Form.Item label='合同信息'>
<Button type='link' onClick={contractPreview}>
查看
</Button>
<Button type='link' onClick={downloadContract}>
下载
</Button>
</Form.Item>
) : (
''
)}
<Form.Item label='附件' name='attachmentList'>
<Uploader
fileUpload
...
...
src/pages/customManage/customIdentity/comp/contractModal/index.tsx
0 → 100644
浏览文件 @
7d635326
import
{
Button
,
Form
,
Input
,
message
,
Modal
,
ModalProps
}
from
'antd'
;
import
{
FC
,
useState
}
from
'react'
;
import
{
Uploader
}
from
'~/components/uploader'
;
import
{
UploadOutlined
}
from
'@ant-design/icons'
;
import
{
listUserApplyTag
}
from
'~/api/interface/customManageType'
;
import
{
InterDataType
,
InterListType
}
from
'~/api/interface'
;
import
{
CustomManageAPI
,
FddInterfaceAPI
}
from
'~/api'
;
import
{
useNavigate
}
from
'react-router-dom'
;
import
{
decode
}
from
'js-base64'
;
import
{
uploadContractType
}
from
'~/api/interface/fddInterfaceType'
;
import
{
UploadFile
}
from
'antd/es/upload/interface'
;
import
IframeModal
from
'~/components/modal/iframeModal'
;
// 列表类型
type
joinType
=
InterListType
<
listUserApplyTag
>
[
0
];
// 合同返回类型
type
contractType
=
InterDataType
<
uploadContractType
>
;
interface
selfProps
{
onOk
:
()
=>
void
;
onCancel
:
()
=>
void
;
joinItem
:
joinType
|
undefined
;
}
const
ContractModal
:
FC
<
ModalProps
&
selfProps
>
=
({
open
,
onOk
,
onCancel
,
joinItem
})
=>
{
const
navigate
=
useNavigate
();
const
[
contractForm
]
=
Form
.
useForm
<
{
contractUrl
:
string
;
contractTitle
:
string
}
>
();
const
[
contractFileList
,
setContractFileList
]
=
useState
<
UploadFile
[]
>
([]);
const
[
contractInfo
,
setContractInfo
]
=
useState
<
contractType
>
();
const
[
contractUrl
,
setContractUrl
]
=
useState
<
string
>
(
''
);
const
[
iframeModalShow
,
setIframeModalShow
]
=
useState
<
boolean
>
(
false
);
const
handleOk
=
()
=>
{
contractForm
.
validateFields
()
.
then
(()
=>
{
if
(
contractInfo
)
{
signContract
(
contractInfo
.
contractNo
);
}
})
.
catch
((
error
:
any
)
=>
{
message
.
warning
(
error
?.
errorFields
[
0
]?.
errors
[
0
]);
});
};
const
handleCancel
=
()
=>
{
onCancel
();
contractForm
.
resetFields
();
setContractFileList
([]);
};
// 上传合同
// 合同上传
const
uploadSuccess
=
(
value
:
any
)
=>
{
contractForm
.
validateFields
([
'contractTitle'
])
.
then
((
values
)
=>
{
if
(
joinItem
?.
orderNo
)
{
FddInterfaceAPI
.
uploadContract
({
docUrl
:
value
[
0
].
url
,
orderNo
:
joinItem
.
orderNo
,
port
:
1
,
title
:
values
.
contractTitle
,
})
.
then
(({
result
})
=>
{
setContractFileList
(
value
);
contractForm
.
setFieldValue
(
'contractUrl'
,
value
[
0
].
url
);
setContractInfo
(
result
);
})
.
catch
(({
code
})
=>
{
if
(
code
===
'1006'
||
code
===
'1005'
)
{
navigate
(
'/systemManage/realNameAuth'
);
}
setContractFileList
([]);
});
}
else
{
setContractFileList
([]);
message
.
warning
(
'orderNo不能为空'
);
}
})
.
catch
((
error
:
any
)
=>
{
setContractFileList
([]);
message
.
warning
(
error
?.
errorFields
[
0
]?.
errors
[
0
]);
});
};
// 签署合同
const
signContract
=
(
contractId
:
string
)
=>
{
FddInterfaceAPI
.
signContract
({
contractId
,
port
:
1
}).
then
(({
result
})
=>
{
if
(
result
)
{
setContractUrl
(
decode
(
result
));
setIframeModalShow
(
true
);
}
});
};
const
iframeModalCancel
=
()
=>
{
setIframeModalShow
(
false
);
if
(
joinItem
)
{
CustomManageAPI
.
editUserApplyTagDetails
({
id
:
joinItem
.
id
,
}).
then
(({
result
})
=>
{
if
(
result
?.
signStatus
===
2
)
{
contractForm
.
resetFields
();
setContractFileList
([]);
onOk
();
}
});
}
};
return
(
<>
<
Modal
open=
{
open
}
onOk=
{
handleOk
}
onCancel=
{
handleCancel
}
title=
'签署合同'
okText=
'签署合同'
>
<
Form
labelCol=
{
{
span
:
4
}
}
wrapperCol=
{
{
span
:
15
}
}
form=
{
contractForm
}
>
<
Form
.
Item
label=
'合同标题'
rules=
{
[{
required
:
true
,
message
:
'请输入合同标题'
}]
}
name=
'contractTitle'
>
<
Input
placeholder=
'请输入合同标题'
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'合同文件'
rules=
{
[{
required
:
true
,
message
:
'请上传合同文件'
}]
}
name=
'contractUrl'
>
<
Uploader
fileUpload
listType=
'text'
defaultFileList=
{
contractFileList
}
onChange=
{
uploadSuccess
}
fileType=
{
[
'application/pdf'
]
}
>
<
Button
icon=
{
<
UploadOutlined
/>
}
type=
'primary'
>
上传
</
Button
>
</
Uploader
>
</
Form
.
Item
>
</
Form
>
</
Modal
>
<
IframeModal
url=
{
contractUrl
}
title=
'合同签署'
open=
{
iframeModalShow
}
onCancel=
{
iframeModalCancel
}
/>
</>
);
};
export
default
ContractModal
;
src/pages/customManage/customIdentity/index.tsx
浏览文件 @
7d635326
...
...
@@ -7,6 +7,7 @@ import { InterDataType, InterListType, InterReqListType } from '~/api/interface'
import
{
listAppUserCountType
,
listUserApplyTag
}
from
'~/api/interface/customManageType'
;
import
ApprovalModal
from
'./comp/approvalModal'
;
import
AddEditModal
from
'~/pages/customManage/customIdentity/comp/addEditModal'
;
import
ContractModal
from
'~/pages/customManage/customIdentity/comp/contractModal'
;
import
'./index.scss'
;
// 列表类型
...
...
@@ -46,6 +47,9 @@ const CustomIdentityView = () => {
});
// 数据统计
const
[
statisticsData
,
setStatisticsDataType
]
=
useState
<
statisticsDataType
>
();
// 合同弹窗
const
[
contractModalShow
,
setContractModalShow
]
=
useState
<
boolean
>
(
false
);
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
false
);
// 加载列表
const
getTableList
=
async
(
value
=
{})
=>
{
...
...
@@ -79,7 +83,9 @@ const CustomIdentityView = () => {
};
// 获取加盟列表
const
getCooperationList
=
async
()
=>
{
setLoading
(
true
);
const
res
=
await
CustomManageAPI
.
cooperationListTag
({});
setLoading
(
false
);
if
(
res
&&
res
.
code
===
'200'
)
{
const
list
=
res
.
result
||
[];
setCooperationList
(
list
.
map
((
i
)
=>
({
label
:
i
.
tagName
,
value
:
i
.
id
})));
...
...
@@ -111,6 +117,18 @@ const CustomIdentityView = () => {
}
});
};
// 合同签署
const
contractModalShowClick
=
(
record
:
TableType
[
0
])
=>
{
setEditData
(
record
);
setContractModalShow
(
true
);
};
const
contractModalCancel
=
()
=>
{
setContractModalShow
(
false
);
};
const
contractModalOk
=
()
=>
{
setContractModalShow
(
false
);
getTableList
(
query
).
then
();
};
useEffect
(()
=>
{
getCooperationList
().
then
();
...
...
@@ -179,7 +197,7 @@ const CustomIdentityView = () => {
dataIndex
:
'action'
,
align
:
'center'
,
fixed
:
'right'
,
width
:
'
1
50px'
,
width
:
'
2
50px'
,
render
:
(
_text
,
record
)
=>
(
<>
<
Button
...
...
@@ -193,6 +211,13 @@ const CustomIdentityView = () => {
审批
</
Button
>
<
Button
type=
'link'
onClick=
{
()
=>
contractModalShowClick
(
record
)
}
disabled=
{
record
.
approvalStatus
!==
1
||
[
2
,
3
,
4
,
5
].
includes
(
record
.
signStatus
)
}
>
签署合同
</
Button
>
<
Button
type=
{
'link'
}
onClick=
{
()
=>
{
setAddModalVisible
(
true
);
...
...
@@ -261,6 +286,7 @@ const CustomIdentityView = () => {
<
Table
size=
'small'
dataSource=
{
tableData
}
loading=
{
loading
}
columns=
{
columns
}
rowKey=
'id'
scroll=
{
{
x
:
1200
}
}
...
...
@@ -298,6 +324,13 @@ const CustomIdentityView = () => {
paginationChange
(
pagination
.
current
,
pagination
.
pageSize
);
}
}
/>
{
/*合同签署*/
}
<
ContractModal
open=
{
contractModalShow
}
onCancel=
{
contractModalCancel
}
onOk=
{
contractModalOk
}
joinItem=
{
editData
}
/>
</
div
>
);
};
...
...
src/pages/dataDashboards/components/joinInfo/index.tsx
浏览文件 @
7d635326
...
...
@@ -109,8 +109,10 @@ const JoinInfo = () => {
return
(
<
div
className=
'join-info'
>
<
div
className=
'join-info-card-1'
>
<
div
className=
'join-count'
>
{
joinReportDataType
?.
joinStoreCount
}
</
div
>
<
div
className=
'join-meta'
>
入驻商家总数
</
div
>
<
div
className=
'join-count'
>
{
joinReportDataType
?.
companyAuthCount
}
</
div
>
<
div
className=
'join-meta'
>
已认证企业总数(入驻
{
joinReportDataType
?.
joinStoreCount
}
家)
</
div
>
</
div
>
<
div
className=
'join-info-card-2'
>
<
div
className=
'card-header'
>
...
...
src/pages/depleteManage/withDrawList/index.scss
0 → 100644
浏览文件 @
7d635326
.with-draw-manage
{
.data-statistics
{
display
:
flex
;
align-items
:
center
;
color
:
red
;
justify-content
:
flex-end
;
}
}
src/pages/depleteManage/withDrawList/index.tsx
浏览文件 @
7d635326
...
...
@@ -4,16 +4,19 @@ import { Button, Table } from 'antd';
import
{
ColumnsType
}
from
'antd/es/table/InternalTable'
;
import
{
DepleteManageTypeAPI
}
from
'~/api'
;
import
{
useEffect
,
useState
}
from
'react'
;
import
{
InterListType
,
PaginationProps
}
from
'~/api/interface'
;
import
{
listPageWithdrawalApplyType
}
from
'~/api/interface/depleteManageType'
;
import
{
Inter
DataType
,
Inter
ListType
,
PaginationProps
}
from
'~/api/interface'
;
import
{
listPageWithdrawalApplyType
,
statisticsType
}
from
'~/api/interface/depleteManageType'
;
import
{
filterObjAttr
}
from
'~/utils'
;
import
ApplyStatusModal
from
'~/pages/depleteManage/withDrawList/components/applyStatusModal'
;
import
{
withdrawStatusList
}
from
'~/utils/dictionary'
;
import
'./index.scss'
;
// 提现列表返回类型
type
withdrawalApplyType
=
InterListType
<
listPageWithdrawalApplyType
>
;
// 提现列表请求类型
type
withdrawalApplyParameterType
=
InterListType
<
listPageWithdrawalApplyType
>
;
// 提现数据统计返回类型
type
statisticsDataType
=
InterDataType
<
statisticsType
>
;
// 提现方式字典
const
settleTypeDic
=
[
{
...
...
@@ -139,6 +142,8 @@ const WithDrawManage = () => {
const
[
applyStatusModalShow
,
setApplyStatusModalShow
]
=
useState
<
boolean
>
(
false
);
// 当前审批对象
const
[
currentWithDrawItem
,
setCurrentWithDrawItem
]
=
useState
<
withdrawalApplyType
[
0
]
>
();
// 提现数据统计
const
[
statisticsData
,
setStatisticsData
]
=
useState
<
statisticsDataType
>
();
// 获取提现列表
const
getListPageWithdrawalApply
=
(
query
?:
withdrawalApplyParameterType
)
=>
{
...
...
@@ -154,6 +159,14 @@ const WithDrawManage = () => {
setTableData
(
result
.
list
||
[]);
});
};
// 提现数据统计
const
getCashAmountAndWithdrawAmount
=
()
=>
{
DepleteManageTypeAPI
.
getCashAmountAndWithdrawAmount
().
then
(({
result
})
=>
{
if
(
result
)
{
setStatisticsData
(
result
);
}
});
};
// 分页
const
paginationChange
=
(
pageNo
:
number
,
pageSize
:
number
)
=>
{
pagination
.
pageNo
=
pageNo
;
...
...
@@ -167,6 +180,7 @@ const WithDrawManage = () => {
const
filterQuery
=
filterObjAttr
(
value
,
[
'time'
]);
setQuery
(
filterQuery
);
getListPageWithdrawalApply
(
filterQuery
);
getCashAmountAndWithdrawAmount
();
};
// 审批弹窗事件
const
applyStatusEvent
=
(
record
:
withdrawalApplyType
[
0
])
=>
{
...
...
@@ -183,10 +197,34 @@ const WithDrawManage = () => {
useEffect
(()
=>
{
getListPageWithdrawalApply
();
getCashAmountAndWithdrawAmount
();
},
[]);
return
(
<
div
className=
'with-draw-manage'
>
<
SearchBox
search=
{
searchColumns
}
searchData=
{
searchSuccess
}
/>
<
SearchBox
search=
{
searchColumns
}
searchData=
{
searchSuccess
}
sufFixBtn=
{
<
div
className=
'data-statistics'
>
<
div
>
<
span
>
已提现:
</
span
>
<
span
>
{
statisticsData
?.
totalWithdrawAmt
?
statisticsData
?.
totalWithdrawAmt
.
toFixed
(
2
).
toLocaleString
()
:
0
}
</
span
>
</
div
>
<
div
>
<
span
>
账户余额:
</
span
>
<
span
>
{
statisticsData
?.
cashPoolAmount
?
statisticsData
?.
cashPoolAmount
.
toFixed
(
2
).
toLocaleString
()
:
0
}
</
span
>
</
div
>
</
div
>
}
/>
<
Table
bordered
columns=
{
tableColumns
}
...
...
src/router/router.tsx
浏览文件 @
7d635326
...
...
@@ -174,6 +174,7 @@ import CustomListDetail from '~/pages/customManage/customList/detail';
import
ServiceCategoryDetail
from
'~/pages/categoryManage/serviceCategoryList/detail'
;
import
RewardsManageView
from
'~/pages/activityManage/rewardsManage'
;
import
ActivityListView
from
'~/pages/activityManage/activityList'
;
import
ActivityListDetailView
from
'~/pages/activityManage/activityList/detail'
;
const
AddressManageView
=
React
.
lazy
(()
=>
import
(
'~/pages/systemManage/addressManage'
));
// const IndustryListView = React.lazy(() => import('~/pages/mallManage/industryManage/industryList')); //行业列表
...
...
@@ -529,6 +530,19 @@ export const routerList: Array<RouteObjectType> = [
develop
:
true
,
},
},
{
path
:
'/activityManage/activityList/detail'
,
element
:
withLoadingComponent
(<
ActivityListDetailView
/>),
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
520
,
title
:
'领取记录'
,
icon
:
<
WechatOutlined
/>,
hidden
:
true
,
pid
:
520
,
develop
:
true
,
},
},
],
},
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论