Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
admin-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
admin-ci-test
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='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='http://120.77.145.47'
#VITE_REQUEST_BASE_URL='https://test.iuav.shop'
#VITE_REQUEST_BASE_URL='https://test.iuav.shop'
#VITE_REQUEST_BASE_URL='/api'
#VITE_REQUEST_BASE_URL='/api'
...
...
kustomization/overlays/dev/kustomization.yaml
浏览文件 @
7d635326
...
@@ -14,4 +14,4 @@ patches:
...
@@ -14,4 +14,4 @@ patches:
images
:
images
:
-
name
:
REGISTRY/NAMESPACE/IMAGE:TAG
-
name
:
REGISTRY/NAMESPACE/IMAGE:TAG
newName
:
mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/admin
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<
...
@@ -126,3 +126,78 @@ export type activityUpdateType = InterFunction<
>
;
>
;
// 删除活动
// 删除活动
export
type
activityDeleteType
=
InterFunction
<
{
id
:
number
},
null
>
;
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<
...
@@ -142,6 +142,8 @@ export type listUserApplyTag = InterListFunction<
remark
:
string
;
remark
:
string
;
score
:
number
;
score
:
number
;
userAccountId
:
number
;
userAccountId
:
number
;
orderNo
:
string
;
signStatus
:
number
;
}
}
>
;
>
;
// 审批详情
// 审批详情
...
@@ -197,6 +199,8 @@ export type editUserApplyTagDetails = InterFunction<
...
@@ -197,6 +199,8 @@ export type editUserApplyTagDetails = InterFunction<
remark
:
string
;
remark
:
string
;
attachmentList
?:
{
userApplyTagId
:
number
;
url
:
string
;
type
:
number
}[];
attachmentList
?:
{
userApplyTagId
:
number
;
url
:
string
;
type
:
number
}[];
brandLogo
:
string
;
brandLogo
:
string
;
contractNo
?:
string
;
signStatus
:
number
;
}
}
>
;
>
;
// 后台-编辑服务商信息
// 后台-编辑服务商信息
...
...
src/api/interface/dataDashboardsType.ts
浏览文件 @
7d635326
...
@@ -100,6 +100,7 @@ export type userJoinReportDataType = InterFunction<
...
@@ -100,6 +100,7 @@ export type userJoinReportDataType = InterFunction<
* 培训机构
* 培训机构
*/
*/
trainingInstitution
:
number
;
trainingInstitution
:
number
;
companyAuthCount
:
number
;
}
}
>
;
>
;
// 数据看板-订单数据
// 数据看板-订单数据
...
...
src/api/interface/depleteManageType.ts
浏览文件 @
7d635326
...
@@ -99,3 +99,11 @@ export type approveWithdrawalApplyType = InterFunction<
...
@@ -99,3 +99,11 @@ export type approveWithdrawalApplyType = InterFunction<
},
},
any
any
>
;
>
;
// 提现数据统计
export
type
statisticsType
=
InterFunction
<
any
,
{
cashPoolAmount
:
number
;
totalWithdrawAmt
:
number
;
}
>
;
src/api/modules/activityManage.ts
浏览文件 @
7d635326
...
@@ -4,6 +4,7 @@ import {
...
@@ -4,6 +4,7 @@ import {
activityDeleteType
,
activityDeleteType
,
activityEditType
,
activityEditType
,
activityInsertType
,
activityInsertType
,
activityInviteDetailType
,
activityUpdateType
,
activityUpdateType
,
addActivityType
,
addActivityType
,
DataInfoType
,
DataInfoType
,
...
@@ -73,4 +74,9 @@ export class ActivityManageAPI {
...
@@ -73,4 +74,9 @@ export class ActivityManageAPI {
static
activityDelete
:
activityDeleteType
=
(
params
)
=>
{
static
activityDelete
:
activityDeleteType
=
(
params
)
=>
{
return
axios
.
get
(
'/userapp/activity/delete'
,
{
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
{
import
{
approveWithdrawalApplyType
,
approveWithdrawalApplyType
,
listPageWithdrawalApplyType
,
listPageWithdrawalApplyType
,
statisticsType
,
}
from
'~/api/interface/depleteManageType'
;
}
from
'~/api/interface/depleteManageType'
;
import
axios
from
'~/api/request'
;
import
axios
from
'~/api/request'
;
...
@@ -11,4 +12,7 @@ export class DepleteManageTypeAPI {
...
@@ -11,4 +12,7 @@ export class DepleteManageTypeAPI {
//提现审批
//提现审批
static
approveWithdrawalApply
:
approveWithdrawalApplyType
=
(
params
)
=>
static
approveWithdrawalApply
:
approveWithdrawalApplyType
=
(
params
)
=>
axios
.
get
(
'/userapp/withdrawal/approveWithdrawalApply'
,
{
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 {
...
@@ -38,14 +38,7 @@ interface selfProps {
type
:
number
;
//0:采购订单,1:商城订单
type
:
number
;
//0:采购订单,1:商城订单
}
}
const
SureOrder
:
FC
<
ModalProps
&
selfProps
>
=
({
const
SureOrder
:
FC
<
ModalProps
&
selfProps
>
=
({
open
,
onOk
,
onCancel
,
orderItem
,
type
})
=>
{
open
,
onOk
,
onCancel
,
orderItem
,
type
,
updateContract
,
})
=>
{
const
navigate
=
useNavigate
();
const
navigate
=
useNavigate
();
const
[
orderInfoForm
]
=
Form
.
useForm
<
{
const
[
orderInfoForm
]
=
Form
.
useForm
<
{
orderTotalAmount
:
number
;
orderTotalAmount
:
number
;
...
...
src/components/search-box/index.tsx
浏览文件 @
7d635326
...
@@ -114,6 +114,7 @@ const Index: React.FC<propsType> = (props) => {
...
@@ -114,6 +114,7 @@ const Index: React.FC<propsType> = (props) => {
form=
{
form
}
form=
{
form
}
initialValues=
{
{
layout
:
'inline'
}
}
initialValues=
{
{
layout
:
'inline'
}
}
onFinish=
{
handleSubmit
}
onFinish=
{
handleSubmit
}
autoComplete=
{
'off'
}
>
>
{
props
?.
child
&&
<
div
className=
'search-children'
>
{
props
?.
child
}
</
div
>
}
{
props
?.
child
&&
<
div
className=
'search-children'
>
{
props
?.
child
}
</
div
>
}
{
props
?.
children
&&
<
div
className=
'search-children'
>
{
props
?.
children
}
</
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
...
@@ -52,11 +52,11 @@ const AddOrEditModal: FC<ModalProps & selfProps> = ({ open, onCancel, title, dat
}
else
{
}
else
{
editForm
.
resetFields
();
editForm
.
resetFields
();
}
}
console
.
log
(
'组件挂载 --->'
,
data
);
//
console.log('组件挂载 --->', data);
},
[
open
]);
},
[
open
]);
return
(
return
(
<
Modal
open=
{
open
}
onCancel=
{
handleCancel
}
title=
{
title
}
onOk=
{
handleSubmit
}
>
<
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
<
Form
.
Item
label=
'活动名称'
label=
'活动名称'
name=
'activityName'
name=
'activityName'
...
@@ -113,7 +113,7 @@ const AddOrEditModal: FC<ModalProps & selfProps> = ({ open, onCancel, title, dat
...
@@ -113,7 +113,7 @@ const AddOrEditModal: FC<ModalProps & selfProps> = ({ open, onCancel, title, dat
<
Radio
.
Group
<
Radio
.
Group
options=
{
[
options=
{
[
{
label
:
'积分'
,
value
:
0
},
{
label
:
'积分'
,
value
:
0
},
{
label
:
'余额'
,
value
:
1
},
{
label
:
'余额'
,
value
:
1
,
disabled
:
true
},
{
label
:
'优惠券'
,
value
:
2
,
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
SearchView
from
'~/components/search-box'
;
import
{
ActivityManageAPI
}
from
'~/api'
;
import
{
ActivityManageAPI
}
from
'~/api'
;
import
{
InterListType
,
InterReqListType
}
from
'~/api/interface'
;
import
{
InterListType
,
InterReqListType
}
from
'~/api/interface'
;
...
@@ -7,6 +7,8 @@ import { Button, message, Modal, Table } from 'antd';
...
@@ -7,6 +7,8 @@ import { Button, message, Modal, Table } from 'antd';
import
{
ColumnsType
}
from
'antd/es/table'
;
import
{
ColumnsType
}
from
'antd/es/table'
;
import
{
PlusOutlined
}
from
'@ant-design/icons'
;
import
{
PlusOutlined
}
from
'@ant-design/icons'
;
import
AddOrEditModal
from
'~/pages/activityManage/activityList/comp/addOrEditModal'
;
import
AddOrEditModal
from
'~/pages/activityManage/activityList/comp/addOrEditModal'
;
import
{
useNavigate
}
from
'react-router-dom'
;
import
qs
from
'query-string'
;
// 列表的类型
// 列表的类型
type
TableType
=
InterListType
<
listActivityPagesType
>
;
type
TableType
=
InterListType
<
listActivityPagesType
>
;
...
@@ -29,6 +31,8 @@ const rewardTypeList = [
...
@@ -29,6 +31,8 @@ const rewardTypeList = [
];
];
const
ActivityListView
=
()
=>
{
const
ActivityListView
=
()
=>
{
// 路由钩子
const
navigate
=
useNavigate
();
// 表格数据
// 表格数据
const
[
tableData
,
setTableData
]
=
useState
<
TableType
>
([]);
const
[
tableData
,
setTableData
]
=
useState
<
TableType
>
([]);
// 表格分页配置
// 表格分页配置
...
@@ -62,7 +66,7 @@ const ActivityListView = () => {
...
@@ -62,7 +66,7 @@ const ActivityListView = () => {
totalPage
,
totalPage
,
});
});
setTableData
(
list
||
[]);
setTableData
(
list
||
[]);
console
.
log
(
'加载列表 --->'
,
list
);
//
console.log('加载列表 --->', list);
}
else
{
}
else
{
message
.
warning
(
res
.
message
);
message
.
warning
(
res
.
message
);
}
}
...
@@ -87,7 +91,9 @@ const ActivityListView = () => {
...
@@ -87,7 +91,9 @@ const ActivityListView = () => {
const
res
=
await
ActivityManageAPI
.
activityDelete
({
id
:
record
?.
id
});
const
res
=
await
ActivityManageAPI
.
activityDelete
({
id
:
record
?.
id
});
if
(
res
&&
res
.
code
===
'200'
)
{
if
(
res
&&
res
.
code
===
'200'
)
{
paginationChange
(
paginationChange
(
tableData
.
length
===
1
?
pagination
.
current
-
1
:
pagination
.
current
,
tableData
.
length
===
1
&&
pagination
.
current
!==
1
?
pagination
.
current
-
1
:
pagination
.
current
,
pagination
.
pageSize
,
pagination
.
pageSize
,
);
);
message
.
success
(
'删除成功'
);
message
.
success
(
'删除成功'
);
...
@@ -160,6 +166,7 @@ const ActivityListView = () => {
...
@@ -160,6 +166,7 @@ const ActivityListView = () => {
dataIndex
:
'action'
,
dataIndex
:
'action'
,
align
:
'center'
,
align
:
'center'
,
fixed
:
'right'
,
fixed
:
'right'
,
width
:
'180px'
,
render
:
(
_text
,
record
)
=>
(
render
:
(
_text
,
record
)
=>
(
<>
<>
<
Button
<
Button
...
@@ -171,6 +178,18 @@ const ActivityListView = () => {
...
@@ -171,6 +178,18 @@ const ActivityListView = () => {
>
>
编辑
编辑
</
Button
>
</
Button
>
<
Button
type=
{
'link'
}
onClick=
{
()
=>
{
navigate
(
`/activityManage/activityList/detail?${qs.stringify({
id: record?.id,
})}`
,
);
}
}
>
领取记录
</
Button
>
<
Button
type=
{
'link'
}
danger
onClick=
{
()
=>
handleDelete
(
record
)
}
>
<
Button
type=
{
'link'
}
danger
onClick=
{
()
=>
handleDelete
(
record
)
}
>
删除
删除
</
Button
>
</
Button
>
...
...
src/pages/customManage/customIdentity/comp/addEditModal/index.tsx
浏览文件 @
7d635326
...
@@ -6,10 +6,12 @@ import {
...
@@ -6,10 +6,12 @@ import {
}
from
'~/api/interface/customManageType'
;
}
from
'~/api/interface/customManageType'
;
import
{
InterDataType
,
InterListType
,
InterReqType
}
from
'~/api/interface'
;
import
{
InterDataType
,
InterListType
,
InterReqType
}
from
'~/api/interface'
;
import
{
Button
,
Form
,
Image
,
Input
,
message
,
Modal
,
Rate
,
Select
}
from
'antd'
;
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
SelectMapModal
from
'~/components/select-map'
;
import
{
Uploader
}
from
'~/components/uploader'
;
import
{
Uploader
}
from
'~/components/uploader'
;
import
{
UploadOutlined
}
from
'@ant-design/icons'
;
import
{
UploadOutlined
}
from
'@ant-design/icons'
;
import
{
decode
}
from
'js-base64'
;
import
FileSaver
from
'file-saver'
;
// 数据类型
// 数据类型
type
DataType
=
InterDataType
<
editUserApplyTagDetails
>
;
type
DataType
=
InterDataType
<
editUserApplyTagDetails
>
;
...
@@ -141,6 +143,23 @@ const AddEditModal: FC<propType> = (props) => {
...
@@ -141,6 +143,23 @@ const AddEditModal: FC<propType> = (props) => {
handleCancel
();
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
// componentDidMount
useEffect(() => {
useEffect(() => {
if (!open) return;
if (!open) return;
...
@@ -218,6 +237,18 @@ const AddEditModal: FC<propType> = (props) => {
...
@@ -218,6 +237,18 @@ const AddEditModal: FC<propType> = (props) => {
<Form.Item label='营业执照'>
<Form.Item label='营业执照'>
<Image src={detail?.licenseImg} width={50} height={50} />
<Image src={detail?.licenseImg} width={50} height={50} />
</Form.Item>
</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'>
<Form.Item label='附件' name='attachmentList'>
<Uploader
<Uploader
fileUpload
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'
...
@@ -7,6 +7,7 @@ import { InterDataType, InterListType, InterReqListType } from '~/api/interface'
import
{
listAppUserCountType
,
listUserApplyTag
}
from
'~/api/interface/customManageType'
;
import
{
listAppUserCountType
,
listUserApplyTag
}
from
'~/api/interface/customManageType'
;
import
ApprovalModal
from
'./comp/approvalModal'
;
import
ApprovalModal
from
'./comp/approvalModal'
;
import
AddEditModal
from
'~/pages/customManage/customIdentity/comp/addEditModal'
;
import
AddEditModal
from
'~/pages/customManage/customIdentity/comp/addEditModal'
;
import
ContractModal
from
'~/pages/customManage/customIdentity/comp/contractModal'
;
import
'./index.scss'
;
import
'./index.scss'
;
// 列表类型
// 列表类型
...
@@ -46,6 +47,9 @@ const CustomIdentityView = () => {
...
@@ -46,6 +47,9 @@ const CustomIdentityView = () => {
});
});
// 数据统计
// 数据统计
const
[
statisticsData
,
setStatisticsDataType
]
=
useState
<
statisticsDataType
>
();
const
[
statisticsData
,
setStatisticsDataType
]
=
useState
<
statisticsDataType
>
();
// 合同弹窗
const
[
contractModalShow
,
setContractModalShow
]
=
useState
<
boolean
>
(
false
);
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
false
);
// 加载列表
// 加载列表
const
getTableList
=
async
(
value
=
{})
=>
{
const
getTableList
=
async
(
value
=
{})
=>
{
...
@@ -79,7 +83,9 @@ const CustomIdentityView = () => {
...
@@ -79,7 +83,9 @@ const CustomIdentityView = () => {
};
};
// 获取加盟列表
// 获取加盟列表
const
getCooperationList
=
async
()
=>
{
const
getCooperationList
=
async
()
=>
{
setLoading
(
true
);
const
res
=
await
CustomManageAPI
.
cooperationListTag
({});
const
res
=
await
CustomManageAPI
.
cooperationListTag
({});
setLoading
(
false
);
if
(
res
&&
res
.
code
===
'200'
)
{
if
(
res
&&
res
.
code
===
'200'
)
{
const
list
=
res
.
result
||
[];
const
list
=
res
.
result
||
[];
setCooperationList
(
list
.
map
((
i
)
=>
({
label
:
i
.
tagName
,
value
:
i
.
id
})));
setCooperationList
(
list
.
map
((
i
)
=>
({
label
:
i
.
tagName
,
value
:
i
.
id
})));
...
@@ -111,6 +117,18 @@ const CustomIdentityView = () => {
...
@@ -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
(()
=>
{
useEffect
(()
=>
{
getCooperationList
().
then
();
getCooperationList
().
then
();
...
@@ -179,7 +197,7 @@ const CustomIdentityView = () => {
...
@@ -179,7 +197,7 @@ const CustomIdentityView = () => {
dataIndex
:
'action'
,
dataIndex
:
'action'
,
align
:
'center'
,
align
:
'center'
,
fixed
:
'right'
,
fixed
:
'right'
,
width
:
'
1
50px'
,
width
:
'
2
50px'
,
render
:
(
_text
,
record
)
=>
(
render
:
(
_text
,
record
)
=>
(
<>
<>
<
Button
<
Button
...
@@ -193,6 +211,13 @@ const CustomIdentityView = () => {
...
@@ -193,6 +211,13 @@ const CustomIdentityView = () => {
审批
审批
</
Button
>
</
Button
>
<
Button
<
Button
type=
'link'
onClick=
{
()
=>
contractModalShowClick
(
record
)
}
disabled=
{
record
.
approvalStatus
!==
1
||
[
2
,
3
,
4
,
5
].
includes
(
record
.
signStatus
)
}
>
签署合同
</
Button
>
<
Button
type=
{
'link'
}
type=
{
'link'
}
onClick=
{
()
=>
{
onClick=
{
()
=>
{
setAddModalVisible
(
true
);
setAddModalVisible
(
true
);
...
@@ -261,6 +286,7 @@ const CustomIdentityView = () => {
...
@@ -261,6 +286,7 @@ const CustomIdentityView = () => {
<
Table
<
Table
size=
'small'
size=
'small'
dataSource=
{
tableData
}
dataSource=
{
tableData
}
loading=
{
loading
}
columns=
{
columns
}
columns=
{
columns
}
rowKey=
'id'
rowKey=
'id'
scroll=
{
{
x
:
1200
}
}
scroll=
{
{
x
:
1200
}
}
...
@@ -298,6 +324,13 @@ const CustomIdentityView = () => {
...
@@ -298,6 +324,13 @@ const CustomIdentityView = () => {
paginationChange
(
pagination
.
current
,
pagination
.
pageSize
);
paginationChange
(
pagination
.
current
,
pagination
.
pageSize
);
}
}
}
}
/>
/>
{
/*合同签署*/
}
<
ContractModal
open=
{
contractModalShow
}
onCancel=
{
contractModalCancel
}
onOk=
{
contractModalOk
}
joinItem=
{
editData
}
/>
</
div
>
</
div
>
);
);
};
};
...
...
src/pages/dataDashboards/components/joinInfo/index.tsx
浏览文件 @
7d635326
...
@@ -109,8 +109,10 @@ const JoinInfo = () => {
...
@@ -109,8 +109,10 @@ const JoinInfo = () => {
return
(
return
(
<
div
className=
'join-info'
>
<
div
className=
'join-info'
>
<
div
className=
'join-info-card-1'
>
<
div
className=
'join-info-card-1'
>
<
div
className=
'join-count'
>
{
joinReportDataType
?.
joinStoreCount
}
</
div
>
<
div
className=
'join-count'
>
{
joinReportDataType
?.
companyAuthCount
}
</
div
>
<
div
className=
'join-meta'
>
入驻商家总数
</
div
>
<
div
className=
'join-meta'
>
已认证企业总数(入驻
{
joinReportDataType
?.
joinStoreCount
}
家)
</
div
>
</
div
>
</
div
>
<
div
className=
'join-info-card-2'
>
<
div
className=
'join-info-card-2'
>
<
div
className=
'card-header'
>
<
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';
...
@@ -4,16 +4,19 @@ import { Button, Table } from 'antd';
import
{
ColumnsType
}
from
'antd/es/table/InternalTable'
;
import
{
ColumnsType
}
from
'antd/es/table/InternalTable'
;
import
{
DepleteManageTypeAPI
}
from
'~/api'
;
import
{
DepleteManageTypeAPI
}
from
'~/api'
;
import
{
useEffect
,
useState
}
from
'react'
;
import
{
useEffect
,
useState
}
from
'react'
;
import
{
InterListType
,
PaginationProps
}
from
'~/api/interface'
;
import
{
Inter
DataType
,
Inter
ListType
,
PaginationProps
}
from
'~/api/interface'
;
import
{
listPageWithdrawalApplyType
}
from
'~/api/interface/depleteManageType'
;
import
{
listPageWithdrawalApplyType
,
statisticsType
}
from
'~/api/interface/depleteManageType'
;
import
{
filterObjAttr
}
from
'~/utils'
;
import
{
filterObjAttr
}
from
'~/utils'
;
import
ApplyStatusModal
from
'~/pages/depleteManage/withDrawList/components/applyStatusModal'
;
import
ApplyStatusModal
from
'~/pages/depleteManage/withDrawList/components/applyStatusModal'
;
import
{
withdrawStatusList
}
from
'~/utils/dictionary'
;
import
{
withdrawStatusList
}
from
'~/utils/dictionary'
;
import
'./index.scss'
;
// 提现列表返回类型
// 提现列表返回类型
type
withdrawalApplyType
=
InterListType
<
listPageWithdrawalApplyType
>
;
type
withdrawalApplyType
=
InterListType
<
listPageWithdrawalApplyType
>
;
// 提现列表请求类型
// 提现列表请求类型
type
withdrawalApplyParameterType
=
InterListType
<
listPageWithdrawalApplyType
>
;
type
withdrawalApplyParameterType
=
InterListType
<
listPageWithdrawalApplyType
>
;
// 提现数据统计返回类型
type
statisticsDataType
=
InterDataType
<
statisticsType
>
;
// 提现方式字典
// 提现方式字典
const
settleTypeDic
=
[
const
settleTypeDic
=
[
{
{
...
@@ -139,6 +142,8 @@ const WithDrawManage = () => {
...
@@ -139,6 +142,8 @@ const WithDrawManage = () => {
const
[
applyStatusModalShow
,
setApplyStatusModalShow
]
=
useState
<
boolean
>
(
false
);
const
[
applyStatusModalShow
,
setApplyStatusModalShow
]
=
useState
<
boolean
>
(
false
);
// 当前审批对象
// 当前审批对象
const
[
currentWithDrawItem
,
setCurrentWithDrawItem
]
=
useState
<
withdrawalApplyType
[
0
]
>
();
const
[
currentWithDrawItem
,
setCurrentWithDrawItem
]
=
useState
<
withdrawalApplyType
[
0
]
>
();
// 提现数据统计
const
[
statisticsData
,
setStatisticsData
]
=
useState
<
statisticsDataType
>
();
// 获取提现列表
// 获取提现列表
const
getListPageWithdrawalApply
=
(
query
?:
withdrawalApplyParameterType
)
=>
{
const
getListPageWithdrawalApply
=
(
query
?:
withdrawalApplyParameterType
)
=>
{
...
@@ -154,6 +159,14 @@ const WithDrawManage = () => {
...
@@ -154,6 +159,14 @@ const WithDrawManage = () => {
setTableData
(
result
.
list
||
[]);
setTableData
(
result
.
list
||
[]);
});
});
};
};
// 提现数据统计
const
getCashAmountAndWithdrawAmount
=
()
=>
{
DepleteManageTypeAPI
.
getCashAmountAndWithdrawAmount
().
then
(({
result
})
=>
{
if
(
result
)
{
setStatisticsData
(
result
);
}
});
};
// 分页
// 分页
const
paginationChange
=
(
pageNo
:
number
,
pageSize
:
number
)
=>
{
const
paginationChange
=
(
pageNo
:
number
,
pageSize
:
number
)
=>
{
pagination
.
pageNo
=
pageNo
;
pagination
.
pageNo
=
pageNo
;
...
@@ -167,6 +180,7 @@ const WithDrawManage = () => {
...
@@ -167,6 +180,7 @@ const WithDrawManage = () => {
const
filterQuery
=
filterObjAttr
(
value
,
[
'time'
]);
const
filterQuery
=
filterObjAttr
(
value
,
[
'time'
]);
setQuery
(
filterQuery
);
setQuery
(
filterQuery
);
getListPageWithdrawalApply
(
filterQuery
);
getListPageWithdrawalApply
(
filterQuery
);
getCashAmountAndWithdrawAmount
();
};
};
// 审批弹窗事件
// 审批弹窗事件
const
applyStatusEvent
=
(
record
:
withdrawalApplyType
[
0
])
=>
{
const
applyStatusEvent
=
(
record
:
withdrawalApplyType
[
0
])
=>
{
...
@@ -183,10 +197,34 @@ const WithDrawManage = () => {
...
@@ -183,10 +197,34 @@ const WithDrawManage = () => {
useEffect
(()
=>
{
useEffect
(()
=>
{
getListPageWithdrawalApply
();
getListPageWithdrawalApply
();
getCashAmountAndWithdrawAmount
();
},
[]);
},
[]);
return
(
return
(
<
div
className=
'with-draw-manage'
>
<
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
<
Table
bordered
bordered
columns=
{
tableColumns
}
columns=
{
tableColumns
}
...
...
src/router/router.tsx
浏览文件 @
7d635326
...
@@ -174,6 +174,7 @@ import CustomListDetail from '~/pages/customManage/customList/detail';
...
@@ -174,6 +174,7 @@ import CustomListDetail from '~/pages/customManage/customList/detail';
import
ServiceCategoryDetail
from
'~/pages/categoryManage/serviceCategoryList/detail'
;
import
ServiceCategoryDetail
from
'~/pages/categoryManage/serviceCategoryList/detail'
;
import
RewardsManageView
from
'~/pages/activityManage/rewardsManage'
;
import
RewardsManageView
from
'~/pages/activityManage/rewardsManage'
;
import
ActivityListView
from
'~/pages/activityManage/activityList'
;
import
ActivityListView
from
'~/pages/activityManage/activityList'
;
import
ActivityListDetailView
from
'~/pages/activityManage/activityList/detail'
;
const
AddressManageView
=
React
.
lazy
(()
=>
import
(
'~/pages/systemManage/addressManage'
));
const
AddressManageView
=
React
.
lazy
(()
=>
import
(
'~/pages/systemManage/addressManage'
));
// const IndustryListView = React.lazy(() => import('~/pages/mallManage/industryManage/industryList')); //行业列表
// const IndustryListView = React.lazy(() => import('~/pages/mallManage/industryManage/industryList')); //行业列表
...
@@ -529,6 +530,19 @@ export const routerList: Array<RouteObjectType> = [
...
@@ -529,6 +530,19 @@ export const routerList: Array<RouteObjectType> = [
develop
:
true
,
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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论