Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
admin-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
admin-ci-test
Commits
1813a388
提交
1813a388
authored
8月 05, 2023
作者:
龚洪江
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop'
上级
4a8646e9
59067fe9
隐藏空白字符变更
内嵌
并排
正在显示
37 个修改的文件
包含
1606 行增加
和
74 行删除
+1606
-74
kustomization.yaml
kustomization/overlays/dev/kustomization.yaml
+1
-1
index.ts
src/api/index.ts
+2
-0
commonType.ts
src/api/interface/commonType.ts
+10
-0
customManageType.ts
src/api/interface/customManageType.ts
+35
-1
flyerCenterType.ts
src/api/interface/flyerCenterType.ts
+71
-0
resourceManageType.ts
src/api/interface/resourceManageType.ts
+27
-0
common.ts
src/api/modules/common.ts
+4
-0
customManage.ts
src/api/modules/customManage.ts
+12
-0
flyerCenterAPI.ts
src/api/modules/flyerCenterAPI.ts
+31
-0
resourceManageAPI.ts
src/api/modules/resourceManageAPI.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
...lCategoryList/components/addOrEditCategoryModal/index.tsx
+0
-0
index.scss
src/pages/categoryManage/mallCategoryList/index.scss
+0
-0
index.tsx
src/pages/categoryManage/mallCategoryList/index.tsx
+0
-1
index.tsx
...e/serviceCategoryList/components/addOrEditModal/index.tsx
+29
-0
index.tsx
src/pages/categoryManage/serviceCategoryList/index.tsx
+83
-0
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/customList/index.tsx
+16
-11
index.tsx
src/pages/customManage/customVerification/details/index.tsx
+53
-0
index.tsx
.../customVerification/list/components/remarkModal/index.tsx
+46
-0
index.tsx
src/pages/customManage/customVerification/list/index.tsx
+170
-0
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
+148
-0
index.tsx
...erManage/flyerList/components/updateRemarkModal/index.tsx
+45
-0
index.tsx
src/pages/flyerCenter/flyerManage/flyerList/index.tsx
+270
-0
index.tsx
...pages/mallManage/courseManage/comp/addEditModal/index.tsx
+1
-1
index.tsx
...sAddOrEditOrDetail/components/skuAddOrEditModal/index.tsx
+2
-2
index.scss
...ourceManage/requirementsGathering/gatherDetail/index.scss
+4
-0
index.tsx
...sourceManage/requirementsGathering/gatherDetail/index.tsx
+73
-0
index.scss
...esourceManage/requirementsGathering/gatherList/index.scss
+0
-0
index.tsx
...resourceManage/requirementsGathering/gatherList/index.tsx
+11
-1
router.tsx
src/router/router.tsx
+131
-12
没有找到文件。
kustomization/overlays/dev/kustomization.yaml
浏览文件 @
1813a388
...
...
@@ -14,4 +14,4 @@ patches:
images
:
-
name
:
REGISTRY/NAMESPACE/IMAGE:TAG
newName
:
mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/admin
newTag
:
063cc3527bbd3e1199f9aec0d902b1c76c712a0a
newTag
:
e8642a205674071202d22ba8f884dd9dd226bc36
src/api/index.ts
浏览文件 @
1813a388
...
...
@@ -13,6 +13,7 @@ import { MallManageAPI } from './modules/mallManage';
import
{
ResourceManageAPI
}
from
'./modules/resourceManageAPI'
;
import
{
ForumManageAPI
}
from
'./modules/forumManageAPI'
;
import
{
PilotTrainAPI
}
from
'./modules/pilotTrainAPI'
;
import
{
FlyerCenterAPI
}
from
'./modules/flyerCenterAPI'
;
export
{
CommonAPI
,
...
...
@@ -30,4 +31,5 @@ export {
ResourceManageAPI
,
ForumManageAPI
,
PilotTrainAPI
,
FlyerCenterAPI
,
};
src/api/interface/commonType.ts
浏览文件 @
1813a388
...
...
@@ -169,3 +169,13 @@ export type getUserAccountByPhoneNumType = InterFunction<
export
type
appletQRCodeType
=
InterFunction
<
{
page
:
string
;
scene
:
string
},
string
>
;
//登录信息-获取
export
type
getLoginInfoType
=
InterFunction
<
{
randomLoginCode
:
string
},
any
>
;
//地区-获取
type
locationType
=
{
id
:
number
;
name
:
string
;
level
:
number
;
childInfo
:
locationType
[];
};
export
type
getSecondDistrictInfoType
=
InterFunction
<
any
,
locationType
[]
>
;
src/api/interface/customManageType.ts
浏览文件 @
1813a388
import
{
InterFunction
,
InterListFunction
}
from
'~/api/interface'
;
import
{
InterFunction
,
Inter
ItemFunction
,
Inter
ListFunction
}
from
'~/api/interface'
;
// 客户列表
export
type
listAppUserType
=
InterListFunction
<
...
...
@@ -8,6 +8,7 @@ export type listAppUserType = InterListFunction<
keyword
?:
string
;
phoneNum
?:
string
;
startTime
?:
string
;
realAuthStatus
?:
number
;
},
{
id
:
number
;
...
...
@@ -28,6 +29,7 @@ export type listAppUserType = InterListFunction<
companyAuthStatus
:
number
;
cooperationTagId
:
number
;
companyName
:
null
;
realAuthStatus
:
number
;
tagName
:
null
;
cooperationTagVOS
:
{
createTime
:
string
;
...
...
@@ -189,6 +191,9 @@ export type editUserApplyTagDetails = InterFunction<
lon
:
number
;
name
:
string
;
score
:
number
;
licenseImg
:
string
;
remark
:
string
;
attachmentList
?:
{
userApplyTagId
:
number
;
url
:
string
;
type
:
number
}[];
}
>
;
// 后台-编辑服务商信息
...
...
@@ -233,3 +238,32 @@ export type listUserRcdType = InterListFunction<
userSex
:
null
;
}
>
;
//实名认证列表返回类型
export
type
listAuthPageType
=
InterItemFunction
<
{
keyword
?:
string
},
{
id
:
number
;
nickName
:
string
;
phoneNum
:
string
;
uid
:
string
;
userName
:
string
;
createTime
:
string
;
remark
:
string
;
}[]
>
;
//实名认证详情返回类型
export
type
authDetailType
=
InterFunction
<
{
id
:
number
},
{
backIdImg
:
string
;
checkStatus
:
number
;
frontIdImg
:
string
;
id
:
number
;
idNumber
:
string
;
userAccountId
:
number
;
userName
:
string
;
}
>
;
//实名认证-更新备注
export
type
authRemarkType
=
InterFunction
<
{
id
:
number
;
remark
:
string
},
any
>
;
src/api/interface/flyerCenterType.ts
0 → 100644
浏览文件 @
1813a388
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
;
reason
:
string
;
};
export
type
backListPilotType
=
InterItemFunction
<
{
abilityId
?:
number
;
accountNumber
?:
string
;
areaNumber
?:
any
;
auditStatus
?:
number
;
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
},
{
certificationDate
:
number
;
certificationMessage
:
number
;
createTime
:
string
;
id
:
number
;
operatorUserAccount
:
number
;
operatorUserId
:
number
;
operatorUserName
:
number
;
phoneNum
:
number
;
updateTime
:
string
;
userAccountId
:
number
;
userName
:
number
;
}[]
>
;
//飞手详情
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/interface/resourceManageType.ts
浏览文件 @
1813a388
...
...
@@ -16,6 +16,33 @@ export type listPublishPageType = InterItemFunction<
export
type
requirementsListType
=
InterFunction
<
any
,
{
id
:
number
;
typeName
:
string
}[]
>
;
//需求-强制删除
export
type
deleteRequirementsType
=
InterFunction
<
{
requirementsInfoId
:
number
},
any
>
;
//需求-详情
export
type
backDetailPublishType
=
InterFunction
<
{
id
:
number
},
{
cityCode
:
number
;
districtCode
:
number
;
id
:
number
;
latitude
:
number
;
longitude
:
number
;
orderNumber
:
string
;
paramMoney
:
number
;
provinceCode
:
number
;
publishAccountId
:
number
;
publishName
:
string
;
publishPhone
:
number
;
publisherNumber
:
string
;
requireDescription
:
string
;
requireUrl
:
string
;
requirementTypeId
:
number
;
solved
:
boolean
;
taskAddress
:
string
;
taskEndTime
:
string
;
taskStartTime
:
string
;
taskTitle
:
string
;
requirementTypeName
:
string
;
}
>
;
// 查询招标快讯列表-分页
export
type
releaseTenderNews
=
InterListFunction
<
...
...
src/api/modules/common.ts
浏览文件 @
1813a388
...
...
@@ -5,6 +5,7 @@ import {
batchRemoveBannerInfo
,
exchangeBannerInfo
,
getLoginInfoType
,
getSecondDistrictInfoType
,
getUserAccountByPhoneNumType
,
insertBannerInfo
,
insertModuleInfo
,
...
...
@@ -84,4 +85,7 @@ export class CommonAPI {
//获取登录信息
static
getLoginInfo
:
getLoginInfoType
=
(
params
)
=>
axios
.
get
(
'/userapp/temp-auth/getLoginInfo'
,
{
params
});
// 获取地域
static
getSecondDistrictInfo
:
getSecondDistrictInfoType
=
()
=>
axios
.
get
(
'/pms/appDevice/getSecondDistrictInfo'
);
}
src/api/modules/customManage.ts
浏览文件 @
1813a388
...
...
@@ -2,6 +2,8 @@ import axios from '../request';
import
{
applyTagDetails
,
approvalApplyTag
,
authDetailType
,
authRemarkType
,
changeUserTagNew
,
changeUserTagType
,
CompanyListTag
,
...
...
@@ -10,6 +12,7 @@ import {
editUserApplyTag
,
editUserApplyTagDetails
,
listAppUserType
,
listAuthPageType
,
listUserApplyTag
,
listUserRcdType
,
userAccountUpdateType
,
...
...
@@ -55,4 +58,13 @@ 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
);
// 客户-实名认证详情
static
getAuthDetail
:
authDetailType
=
(
params
)
=>
axios
.
get
(
'/userapp/real-name-auth/detail'
,
{
params
});
// 客户-实名认证更新备注
static
updateRemark
:
authRemarkType
=
(
params
)
=>
axios
.
get
(
'/userapp/real-name-auth/updateRemark'
,
{
params
});
}
src/api/modules/flyerCenterAPI.ts
0 → 100644
浏览文件 @
1813a388
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/api/modules/resourceManageAPI.ts
浏览文件 @
1813a388
...
...
@@ -18,6 +18,7 @@ import {
industryCaseDeleteDetails
,
deleteIndustryNewsType
,
deleteRequirementsType
,
backDetailPublishType
,
}
from
'~/api/interface/resourceManageType'
;
import
axios
from
'../request'
;
...
...
@@ -31,6 +32,9 @@ export class ResourceManageAPI {
//需求-强制删除
static
deleteRequirement
:
deleteRequirementsType
=
(
params
)
=>
axios
.
get
(
'/release/requirements/deleteRequire'
,
{
params
});
//需求-详情
static
getDetailPublish
:
backDetailPublishType
=
(
params
)
=>
axios
.
get
(
'/release/requirements/backDetailPublish'
,
{
params
});
// 查询招标快讯列表-分页
static
releaseTenderNews
:
releaseTenderNews
=
(
params
)
=>
...
...
src/components/layout/index.scss
浏览文件 @
1813a388
...
...
@@ -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
浏览文件 @
1813a388
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
浏览文件 @
1813a388
...
...
@@ -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/categoryManage/
c
ategoryList/components/addOrEditCategoryModal/index.tsx
→
src/pages/categoryManage/
mallC
ategoryList/components/addOrEditCategoryModal/index.tsx
浏览文件 @
1813a388
File moved
src/pages/categoryManage/
c
ategoryList/index.scss
→
src/pages/categoryManage/
mallC
ategoryList/index.scss
浏览文件 @
1813a388
File moved
src/pages/categoryManage/
c
ategoryList/index.tsx
→
src/pages/categoryManage/
mallC
ategoryList/index.tsx
浏览文件 @
1813a388
...
...
@@ -410,7 +410,6 @@ const CategoryList = () => {
hideSelectAll
:
true
,
selectedRowKeys
,
renderCell
:
(
checked
:
boolean
,
record
:
categoryType
[
0
])
=>
{
console
.
log
(
'选中-->'
,
checked
);
return
(
<>
{
record
.
subDTOList
?
(
...
...
src/pages/categoryManage/serviceCategoryList/components/addOrEditModal/index.tsx
0 → 100644
浏览文件 @
1813a388
import
{
FC
}
from
'react'
;
import
{
Form
,
Input
,
Modal
,
ModalProps
}
from
'antd'
;
interface
selfProps
{
onCancel
:
()
=>
void
;
onOk
:
()
=>
void
;
}
const
AddOrEditModal
:
FC
<
ModalProps
&
selfProps
>
=
({
open
,
onCancel
,
onOk
})
=>
{
const
handleCancel
=
()
=>
{
onCancel
();
};
const
handleOk
=
()
=>
{
onOk
();
};
return
(
<
Modal
title=
'新增分类'
open=
{
open
}
onCancel=
{
handleCancel
}
onOk=
{
handleOk
}
>
<
Form
>
<
Form
.
Item
label=
'分类名称'
>
<
Input
placeholder=
'请输入分类名称'
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'分类图标'
></
Form
.
Item
>
<
Form
.
Item
label=
'分类描述'
></
Form
.
Item
>
</
Form
>
</
Modal
>
);
};
export
default
AddOrEditModal
;
src/pages/categoryManage/serviceCategoryList/index.tsx
0 → 100644
浏览文件 @
1813a388
import
{
Button
,
Table
}
from
'antd'
;
import
{
ArrowDownOutlined
,
ArrowUpOutlined
,
PlusOutlined
}
from
'@ant-design/icons'
;
import
{
ColumnsType
}
from
'antd/es/table'
;
import
AddOrEditModal
from
'./components/addOrEditModal'
;
import
{
useState
}
from
'react'
;
const
ServiceCategoryList
=
()
=>
{
const
tableColumns
:
ColumnsType
<
any
>
=
[
{
title
:
'分类名称'
,
align
:
'center'
,
},
{
title
:
'图片'
,
align
:
'center'
,
},
{
title
:
'描述'
,
align
:
'center'
,
},
{
title
:
'业务案例图片'
,
align
:
'center'
,
},
{
title
:
'业务案例视频'
,
align
:
'center'
,
},
{
title
:
'创建时间'
,
align
:
'center'
,
},
{
title
:
'操作'
,
align
:
'center'
,
render
:
()
=>
(
<>
<
Button
type=
'link'
>
新增子分类
</
Button
>
<
Button
type=
'link'
>
编辑
</
Button
>
<
Button
type=
'link'
>
删除
</
Button
>
</>
),
},
];
const
[
tableData
,
setTableData
]
=
useState
<
any
>
([{
id
:
1
}]);
const
[
addOrEditModalShow
,
setAddOrEditModalShow
]
=
useState
<
boolean
>
(
false
);
//新增分类弹窗
const
addOrEditModalClick
=
()
=>
{
setAddOrEditModalShow
(
true
);
};
const
addOrEditModalOk
=
()
=>
{
setAddOrEditModalShow
(
false
);
};
const
addOrEditModalCancel
=
()
=>
{
setAddOrEditModalShow
(
false
);
};
return
(
<
div
className=
'service-category-list'
>
<
div
className=
'list-operate'
style=
{
{
marginBottom
:
'10px'
}
}
>
<
Button
type=
'primary'
icon=
{
<
PlusOutlined
/>
}
style=
{
{
marginRight
:
'10px'
}
}
onClick=
{
addOrEditModalClick
}
>
新增分类
</
Button
>
<
Button
icon=
{
<
ArrowUpOutlined
/>
}
style=
{
{
marginRight
:
'10px'
}
}
type=
'primary'
></
Button
>
<
Button
icon=
{
<
ArrowDownOutlined
/>
}
type=
'primary'
></
Button
>
</
div
>
<
Table
columns=
{
tableColumns
}
bordered
rowKey=
'id'
/>
<
AddOrEditModal
open=
{
addOrEditModalShow
}
onOk=
{
addOrEditModalOk
}
onCancel=
{
addOrEditModalCancel
}
/>
</
div
>
);
};
export
default
ServiceCategoryList
;
src/pages/common/login/index.tsx
浏览文件 @
1813a388
...
...
@@ -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
浏览文件 @
1813a388
...
...
@@ -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/customList/index.tsx
浏览文件 @
1813a388
...
...
@@ -60,7 +60,6 @@ function CustomListView() {
totalPage
,
});
setTableData
(
list
);
// console.log('加载列表 --->', list);
}
};
// 翻页
...
...
@@ -124,6 +123,12 @@ function CustomListView() {
align
:
'center'
,
},
{
title
:
'实名认证'
,
dataIndex
:
'realNameAuthStatus'
,
align
:
'center'
,
render
:
(
text
:
number
)
=>
(
text
?
'已认证'
:
'未认证'
),
},
{
title
:
'认证企业'
,
dataIndex
:
'companyName'
,
align
:
'center'
,
...
...
@@ -264,16 +269,16 @@ function CustomListView() {
{ value: 1, label: '已认证' },
],
},
//
{
// label: '电子签约
认证',
// name: 'contract
',
//
type: 'Select',
// placeholder: '请选择是否认证
',
//
options: [
// { value: 1
, label: '未认证' },
// { value: 2
, label: '已认证' },
//
],
//
},
{
label: '实名
认证',
name: 'realAuthStatus
',
type: 'Select',
placeholder: '请选择认证状态
',
options: [
{ value: 0
, label: '未认证' },
{ value: 1
, label: '已认证' },
],
},
]}
searchData={onFinish}
/>
...
...
src/pages/customManage/customVerification/details/index.tsx
0 → 100644
浏览文件 @
1813a388
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/list/components/remarkModal/index.tsx
0 → 100644
浏览文件 @
1813a388
import
{
Form
,
Input
,
message
,
Modal
,
ModalProps
}
from
'antd'
;
import
{
FC
,
useEffect
}
from
'react'
;
import
{
InterDataType
}
from
'~/api/interface'
;
import
{
listAuthPageType
}
from
'~/api/interface/customManageType'
;
import
{
CustomManageAPI
}
from
'~/api'
;
type
listAuthType
=
InterDataType
<
listAuthPageType
>
[
'list'
];
interface
selfProps
{
onOk
:
()
=>
void
;
currentAuthItem
:
listAuthType
[
0
]
|
undefined
;
}
//实名认证列表返回类型
const
RemarkModal
:
FC
<
ModalProps
&
selfProps
>
=
({
open
,
onCancel
,
onOk
,
currentAuthItem
})
=>
{
const
[
form
]
=
Form
.
useForm
<
{
remark
:
string
}
>
();
const
handleOk
=
()
=>
{
if
(
currentAuthItem
)
{
form
.
validateFields
().
then
((
values
)
=>
{
CustomManageAPI
.
updateRemark
({
id
:
currentAuthItem
.
id
,
...
values
}).
then
(({
code
})
=>
{
if
(
code
===
'200'
)
{
message
.
success
(
'更新备注成功'
);
onOk
();
}
});
});
}
};
useEffect
(()
=>
{
if
(
currentAuthItem
)
{
form
.
setFieldValue
(
'remark'
,
currentAuthItem
.
remark
||
undefined
);
}
},
[
currentAuthItem
]);
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
RemarkModal
;
src/pages/customManage/customVerification/list/index.tsx
0 → 100644
浏览文件 @
1813a388
import
SearchBox
,
{
searchColumns
as
searchColumnsType
}
from
'~/components/search-box'
;
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'
;
import
RemarkModal
from
'~/pages/customManage/customVerification/list/components/remarkModal'
;
//实名认证列表返回类型
type
listAuthType
=
InterDataType
<
listAuthPageType
>
[
'list'
];
//实名认证列表请求类型
type
listAuthParametersType
=
InterReqListType
<
listAuthPageType
>
;
const
CustomVerification
=
()
=>
{
const
navigate
=
useNavigate
();
const
searchColumns
:
searchColumnsType
[]
=
[
{
name
:
'keyword'
,
label
:
'用户信息'
,
type
:
'input'
,
placeholder
:
'请输入UID,姓名或手机号'
,
},
];
const
tableColumns
:
ColumnsType
<
listAuthType
[
0
]
>
=
[
{
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'
,
width
:
'20%'
,
ellipsis
:
true
,
render
:
(
text
:
string
,
record
)
=>
(
<
div
onClick=
{
()
=>
remarkModalShowClick
(
record
)
}
style=
{
{
whiteSpace
:
'nowrap'
,
textOverflow
:
'ellipsis'
,
width
:
'100%'
,
overflow
:
'hidden'
,
cursor
:
'pointer'
,
color
:
'#1677ff'
,
}
}
>
{
text
||
'--'
}
</
div
>
),
},
{
title
:
'操作'
,
align
:
'center'
,
render
:
(
_text
:
string
,
record
)
=>
(
<
Button
type=
'link'
onClick=
{
()
=>
toCustomVerificationDetail
(
record
)
}
>
详情
</
Button
>
),
},
];
const
[
tableData
,
setTableData
]
=
useState
<
listAuthType
>
([]);
const
[
query
,
setQuery
]
=
useState
<
listAuthParametersType
>
();
const
[
pagination
,
setPagination
]
=
useState
<
PaginationProps
&
{
totalCount
:
number
}
>
({
pageNo
:
1
,
pageSize
:
10
,
totalCount
:
0
,
});
//备注弹窗
const
[
remarkModalShow
,
setRemarkModalShow
]
=
useState
<
boolean
>
(
false
);
const
[
currentAuthItem
,
setCurrentAuthItem
]
=
useState
<
listAuthType
[
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
);
};
//认证详情
const
toCustomVerificationDetail
=
(
record
:
listAuthType
[
0
])
=>
{
navigate
({
pathname
:
'/customManage/customVerificationDetail'
,
search
:
`id=
${
record
.
id
}
`
});
};
//修改备注操作
const
remarkModalShowClick
=
(
record
:
listAuthType
[
0
])
=>
{
setCurrentAuthItem
({
...
record
});
setRemarkModalShow
(
true
);
};
const
remarkModalCancel
=
()
=>
{
setRemarkModalShow
(
false
);
};
const
remarkModalOk
=
()
=>
{
getAuthList
(
query
);
setRemarkModalShow
(
false
);
};
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} 条数据`
,
}
}
/>
<
RemarkModal
open=
{
remarkModalShow
}
onCancel=
{
remarkModalCancel
}
onOk=
{
remarkModalOk
}
currentAuthItem=
{
currentAuthItem
}
/>
</
div
>
);
};
export
default
CustomVerification
;
src/pages/flyerCenter/flyerManage/flyerAuthDaily/index.tsx
0 → 100644
浏览文件 @
1813a388
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
:
'请输入姓名,手机号'
,
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
浏览文件 @
1813a388
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
===
2
)
{
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=
{
2
}
>
未通过
</
Radio
>
</
Radio
.
Group
>
</
Form
.
Item
>
{
auditStatus
!==
2
?
(
''
)
:
(
<
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
浏览文件 @
1813a388
.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
浏览文件 @
1813a388
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
{
Badge
,
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
===
'OTHER'
?
'其它'
:
flyerDetail
?.
licenseType
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'执照编号'
>
{
flyerDetail
?.
licenseNumber
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'认证状态'
>
<
Badge
status=
{
flyerDetail
?.
auditStatus
===
0
?
'processing'
:
flyerDetail
?.
auditStatus
===
1
?
'success'
:
'error'
}
text=
{
flyerDetail
?.
auditStatus
===
0
?
'审核中'
:
flyerDetail
?.
auditStatus
===
1
?
'已通过'
:
'未通过'
}
/>
{
flyerDetail
?.
auditStatus
===
2
?
(
<
span
style=
{
{
color
:
'red'
}
}
>
(
{
flyerDetail
?.
reason
}
)
</
span
>
)
:
(
''
)
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'个人简介'
>
{
flyerDetail
?.
individualResume
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'执照图片'
>
<
Image
src=
{
flyerDetail
?.
licenseUrl
}
width=
{
100
}
/>
</
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
>
{
JSON
.
parse
(
flyerDetail
?.
abilityUrl
).
map
((
v
:
string
,
index
:
number
)
=>
(
<
Image
src=
{
v
}
key=
{
index
}
width=
{
100
}
height=
{
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
浏览文件 @
1813a388
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/flyerManage/flyerList/index.tsx
0 → 100644
浏览文件 @
1813a388
import
SearchBox
,
{
searchColumns
as
searchColumnsType
}
from
'~/components/search-box'
;
import
{
Button
,
Table
,
Tag
}
from
'antd'
;
import
{
ColumnsType
}
from
'antd/es/table'
;
import
{
CommonAPI
,
FlyerCenterAPI
}
from
'~/api'
;
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'
];
//飞手列表请求类型
type
flyerListParameters
=
InterReqListType
<
backListPilotType
>
;
//地址返回数据
type
locationType
=
InterDataType
<
getSecondDistrictInfoType
>
;
const
FlyerList
=
()
=>
{
const
navigate
=
useNavigate
();
const
[
searchColumns
,
setSearchColumns
]
=
useState
<
searchColumnsType
[]
>
([
{
name
:
'accountNumber'
,
label
:
'账号'
,
placeholder
:
'请输入UID,姓名或手机号'
,
type
:
'input'
,
},
{
name
:
'auditStatus'
,
label
:
'执照认证状态'
,
placeholder
:
'请选择执照认证状态'
,
type
:
'select'
,
options
:
[
{
id
:
0
,
name
:
'审核中'
},
{
id
:
1
,
name
:
'已通过'
},
{
id
:
2
,
name
:
'未通过'
},
],
},
{
name
:
'abilityId'
,
label
:
'能力认证'
,
placeholder
:
'请选择能力认证'
,
type
:
'select'
,
options
:
[],
},
{
name
:
'areaNumber'
,
label
:
'常驻城市'
,
placeholder
:
'请选择常驻城市'
,
type
:
'Cascader'
,
options
:
[],
},
]);
const
tableColumns
:
ColumnsType
<
flyerListType
[
0
]
>
=
[
{
title
:
'UID'
,
dataIndex
:
'userAccountId'
,
align
:
'center'
,
},
{
title
:
'姓名'
,
align
:
'center'
,
dataIndex
:
'userName'
,
},
{
title
:
'执照认证状态'
,
align
:
'center'
,
dataIndex
:
'auditStatus'
,
render
:
(
text
:
number
)
=>
(
text
===
0
?
'审核中'
:
text
===
1
?
'已通过'
:
'未通过'
),
},
{
title
:
'能力认证'
,
align
:
'center'
,
dataIndex
:
'pilotAbility'
,
width
:
'20%'
,
render
:
(
text
:
flyerListType
[
0
][
'pilotAbility'
])
=>
text
?
text
.
map
((
v
)
=>
<
Tag
key=
{
v
.
abilityId
}
>
{
v
.
abilityName
}
</
Tag
>)
:
''
,
},
{
title
:
'常驻城市'
,
align
:
'center'
,
dataIndex
:
'residentCity'
,
},
{
title
:
'手机号'
,
align
:
'center'
,
dataIndex
:
'phoneNum'
,
},
{
title
:
'申请认证时间'
,
align
:
'center'
,
dataIndex
:
'createTime'
,
},
{
title
:
'备注'
,
align
:
'center'
,
dataIndex
:
'remark'
,
width
:
'20%'
,
ellipsis
:
true
,
render
:
(
text
:
string
,
record
)
=>
(
<
div
onClick=
{
()
=>
updateRemarkClick
(
record
)
}
style=
{
{
whiteSpace
:
'nowrap'
,
textOverflow
:
'ellipsis'
,
width
:
'100%'
,
overflow
:
'hidden'
,
cursor
:
'pointer'
,
color
:
'#1677ff'
,
}
}
>
{
text
||
'--'
}
</
div
>
),
},
{
title
:
'操作'
,
align
:
'center'
,
render
:
(
_text
:
string
,
record
)
=>
(
<>
<
Button
type=
'link'
danger
disabled=
{
record
.
auditStatus
!==
0
}
onClick=
{
()
=>
toFlyerApprove
(
record
)
}
>
审批
</
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
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
false
);
//修改备注弹窗
const
[
updateRemarkModalShow
,
setUpdateRemarkModalShow
]
=
useState
<
boolean
>
(
false
);
//飞手列表
const
getFlyerList
=
(
query
?:
flyerListParameters
)
=>
{
setLoading
(
true
);
FlyerCenterAPI
.
getBackListPilot
({
pageNo
:
pagination
.
pageNo
,
pageSize
:
pagination
.
pageSize
,
...
query
,
}).
then
(({
result
})
=>
{
setLoading
(
false
);
pagination
.
totalCount
=
result
.
totalCount
;
setTableData
(
result
.
list
||
[]);
setPagination
(
pagination
);
});
};
//飞手能力列表
const
getAbilityList
=
()
=>
{
FlyerCenterAPI
.
getAbilityList
().
then
(({
result
})
=>
{
searchColumns
[
2
].
options
=
(
result
||
[]).
map
((
v
)
=>
({
id
:
v
.
abilityId
,
name
:
v
.
abilityName
,
}));
setSearchColumns
([...
searchColumns
]);
});
};
//分页
const
paginationChange
=
(
pageNo
:
number
,
pageSize
:
number
)
=>
{
pagination
.
pageNo
=
pageNo
;
pagination
.
pageSize
=
pageSize
;
getFlyerList
(
query
);
};
//筛选成功
const
searchSuccess
=
(
value
:
flyerListParameters
)
=>
{
pagination
.
pageNo
=
1
;
pagination
.
pageSize
=
10
;
setQuery
({
...
value
,
areaNumber
:
value
.
areaNumber
?
value
.
areaNumber
[
1
]
:
undefined
});
getFlyerList
({
...
value
,
areaNumber
:
value
.
areaNumber
?
value
.
areaNumber
[
1
]
:
undefined
});
};
//获取地域数据
const
getSecondDistrictInfo
=
()
=>
{
CommonAPI
.
getSecondDistrictInfo
().
then
(({
result
})
=>
{
const
covertLocationData
:
any
=
(
list
:
locationType
)
=>
{
return
list
.
map
((
v
)
=>
({
label
:
v
.
name
,
value
:
v
.
id
,
children
:
v
.
childInfo
?
covertLocationData
(
v
.
childInfo
)
:
[],
}));
};
searchColumns
[
3
].
options
=
covertLocationData
(
result
);
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
();
getAbilityList
();
getSecondDistrictInfo
();
},
[]);
return
(
<
div
className=
'flyer-list'
>
<
SearchBox
search=
{
searchColumns
}
searchData=
{
searchSuccess
}
child=
{
<
Button
type=
'primary'
onClick=
{
toFlyerAuthDaily
}
>
认证日志
</
Button
>
}
/>
<
Table
bordered
columns=
{
tableColumns
}
dataSource=
{
tableData
}
loading=
{
loading
}
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} 条数据`
,
}
}
/>
{
/*修改备注*/
}
<
UpdateRemarkModal
open=
{
updateRemarkModalShow
}
onOk=
{
updateRemarkModalOk
}
onCancel=
{
updateRemarkModalCancel
}
flyerItem=
{
currentTableItem
}
/>
</
div
>
);
};
export
default
FlyerList
;
src/pages/mallManage/courseManage/comp/addEditModal/index.tsx
浏览文件 @
1813a388
...
...
@@ -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/pages/mallManage/mallGoods/goodsAddOrEditOrDetail/components/skuAddOrEditModal/index.tsx
浏览文件 @
1813a388
...
...
@@ -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/pages/resourceManage/requirementsGathering/gatherDetail/index.scss
0 → 100644
浏览文件 @
1813a388
.gather-detail-img
{
margin-right
:
10px
;
margin-bottom
:
10px
;
}
src/pages/resourceManage/requirementsGathering/gatherDetail/index.tsx
0 → 100644
浏览文件 @
1813a388
import
{
useSearchParams
}
from
'react-router-dom'
;
import
{
ResourceManageAPI
}
from
'~/api'
;
import
{
useEffect
,
useState
}
from
'react'
;
import
{
InterDataType
}
from
'~/api/interface'
;
import
{
backDetailPublishType
}
from
'~/api/interface/resourceManageType'
;
import
{
Button
,
Descriptions
,
Image
}
from
'antd'
;
import
{
useNavigate
}
from
'react-router-dom'
;
import
'./index.scss'
;
//需求详情返回类型
type
detailType
=
InterDataType
<
backDetailPublishType
>
;
const
GatherDetail
=
()
=>
{
const
navigate
=
useNavigate
();
const
[
searchParams
]
=
useSearchParams
();
const
[
publishDetails
,
setPublishDetails
]
=
useState
<
detailType
>
();
const
getPublishDetail
=
(
id
:
number
)
=>
{
ResourceManageAPI
.
getDetailPublish
({
id
}).
then
(({
result
})
=>
{
setPublishDetails
(
result
);
});
};
//返回
const
backRoute
=
()
=>
{
navigate
(
-
1
);
};
useEffect
(()
=>
{
getPublishDetail
(
Number
(
searchParams
.
get
(
'id'
)));
},
[]);
return
(
<
div
className=
'gather-detail'
>
<
Descriptions
title=
'需求信息'
bordered
extra=
{
<
Button
type=
'primary'
onClick=
{
backRoute
}
>
返回
</
Button
>
}
column=
{
4
}
labelStyle=
{
{
minWidth
:
'100px'
}
}
>
<
Descriptions
.
Item
label=
'需求类型'
>
{
publishDetails
?.
requirementTypeName
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'任务标题'
>
{
publishDetails
?.
taskTitle
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'任务结束时间'
>
{
publishDetails
?.
taskEndTime
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'任务开始时间'
>
{
publishDetails
?.
taskStartTime
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'任务地址'
>
{
publishDetails
?.
taskAddress
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'描述图片'
span=
{
3
}
>
<
Image
.
PreviewGroup
>
{
publishDetails
?.
requireUrl
?
JSON
.
parse
(
publishDetails
?.
requireUrl
).
map
((
url
:
string
,
index
:
number
)
=>
(
<
Image
src=
{
url
}
width=
{
50
}
height=
{
50
}
key=
{
index
}
rootClassName=
'gather-detail-img'
/>
))
:
''
}
</
Image
.
PreviewGroup
>
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'需求描述'
span=
{
4
}
>
{
publishDetails
?.
requireDescription
}
</
Descriptions
.
Item
>
</
Descriptions
>
</
div
>
);
};
export
default
GatherDetail
;
src/pages/resourceManage/requirementsGathering/index.scss
→
src/pages/resourceManage/requirementsGathering/
gatherList/
index.scss
浏览文件 @
1813a388
File moved
src/pages/resourceManage/requirementsGathering/index.tsx
→
src/pages/resourceManage/requirementsGathering/
gatherList/
index.tsx
浏览文件 @
1813a388
...
...
@@ -6,12 +6,15 @@ import { ResourceManageAPI } from '~/api';
import
{
InterDataType
,
InterReqType
,
PaginationProps
}
from
'~/api/interface'
;
import
'./index.scss'
;
import
{
listPublishPageType
}
from
'~/api/interface/resourceManageType'
;
import
{
useNavigate
}
from
'react-router-dom'
;
//需求列表返回类型
type
requirementsType
=
InterDataType
<
listPublishPageType
>
[
'list'
];
type
requirementsParameter
=
Omit
<
InterReqType
<
listPublishPageType
>
,
'pageSize'
|
'pageNo'
>
;
const
RequirementsGathering
=
()
=>
{
const
navigate
=
useNavigate
();
const
[
searchColumnsData
,
setSearchColumnsData
]
=
useState
<
searchColumns
[]
>
([
{
label
:
'需求类型'
,
...
...
@@ -63,7 +66,9 @@ const RequirementsGathering = () => {
<
Button
type=
'link'
danger
onClick=
{
()
=>
deleteRequirements
(
record
)
}
>
强制删除
</
Button
>
<
Button
type=
'link'
>
联系客户
</
Button
>
<
Button
type=
'link'
onClick=
{
()
=>
toGatherDetail
(
record
)
}
>
详情
</
Button
>
</>
),
},
...
...
@@ -129,6 +134,11 @@ const RequirementsGathering = () => {
},
});
};
//跳转需求详情
const
toGatherDetail
=
(
record
:
requirementsType
[
0
])
=>
{
navigate
({
pathname
:
'/resourceManage/gatherDetail'
,
search
:
`id=
${
record
.
id
}
`
});
};
useEffect
(()
=>
{
getRequirementsList
();
getRequirementsTypeList
();
...
...
src/router/router.tsx
浏览文件 @
1813a388
...
...
@@ -56,12 +56,23 @@ 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/list'
),
);
//实名认证
const
CustomVerificationDetailView
=
React
.
lazy
(
()
=>
import
(
'~/pages/customManage/customVerification/details'
),
);
//资源管理
import
MaterielManageView
from
'~/pages/resourceManage/materielManage'
;
import
MaterielManageDetail
from
'~/pages/resourceManage/materielManage/detail'
;
const
RequirementsGatheringView
=
React
.
lazy
(
()
=>
import
(
'~/pages/resourceManage/requirementsGathering'
),
);
//需求收集
const
GatheringListView
=
React
.
lazy
(
()
=>
import
(
'~/pages/resourceManage/requirementsGathering/gatherList'
),
);
//需求收集列表
const
GatherDetailView
=
React
.
lazy
(
()
=>
import
(
'~/pages/resourceManage/requirementsGathering/gatherDetail'
),
);
const
TagManageView
=
React
.
lazy
(()
=>
import
(
'~/pages/resourceManage/tagManage'
));
//标签管理
const
IndustryNewsView
=
React
.
lazy
(()
=>
import
(
'~/pages/resourceManage/industryNews'
));
//论坛管理
...
...
@@ -100,20 +111,29 @@ const ProduceDetailView = React.lazy(
);
//产品详情
const
MakeListView
=
React
.
lazy
(()
=>
import
(
'~/pages/mallManage/makeManage/makeList'
));
// 分类管理
const
CategoryListView
=
React
.
lazy
(()
=>
import
(
'~/pages/categoryManage/categoryList'
));
const
MallCategoryListView
=
React
.
lazy
(()
=>
import
(
'~/pages/categoryManage/mallCategoryList'
));
//商城分类
const
ServiceCategoryListView
=
React
.
lazy
(
()
=>
import
(
'~/pages/categoryManage/serviceCategoryList'
),
);
//服务分类
const
CategoryManage
=
React
.
lazy
(()
=>
import
(
'~/pages/categoryManage/category'
));
const
CategoryDetail
=
React
.
lazy
(()
=>
import
(
'~/pages/categoryManage/category/detail'
));
// 目录管理
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/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'
;
...
...
@@ -128,7 +148,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 +226,27 @@ export const routerList: Array<RouteObjectType> = [
},
},
{
path
:
'/customManage/customVerification'
,
element
:
withLoadingComponent
(<
CustomVerificationView
/>),
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
260
,
title
:
'实名认证'
,
icon
:
<
SolutionOutlined
/>,
},
},
{
path
:
'/customManage/customVerificationDetail'
,
element
:
withLoadingComponent
(<
CustomVerificationDetailView
/>),
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
250
,
title
:
'实名认证详情'
,
hidden
:
true
,
icon
:
<
SolutionOutlined
/>,
},
},
{
path
:
'/customManage/customList/detail'
,
element
:
withLoadingComponent
(<
CustomListDetail
/>),
errorElement
:
<
ErrorPage
/>,
...
...
@@ -251,6 +292,61 @@ export const routerList: Array<RouteObjectType> = [
],
},
{
path
:
'/flyerCenter'
,
element
:
<
LayoutView
/>,
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
1800
,
icon
:
<
UserOutlined
/>,
title
:
'飞手中心'
,
},
children
:
[
{
path
:
'/flyerCenter/flyerList'
,
element
:
withLoadingComponent
(<
FlyerListView
/>),
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
1810
,
title
:
'飞手管理'
,
icon
:
<
UserOutlined
/>,
},
},
{
path
:
'/flyerCenter/flyerAuthDaily'
,
element
:
withLoadingComponent
(<
FlyerAuthDailyView
/>),
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
1815
,
title
:
'认证日志'
,
hidden
:
true
,
icon
:
<
UserOutlined
/>,
},
},
{
path
:
'/flyerCenter/flyerDetail'
,
element
:
withLoadingComponent
(<
FlyerDetailsView
/>),
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
1816
,
title
:
'飞手详情'
,
hidden
:
true
,
icon
:
<
UserOutlined
/>,
},
},
{
path
:
'/flyerCenter/flyerApprove'
,
element
:
withLoadingComponent
(<
FlyerDetailsView
/>),
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
1817
,
title
:
'飞手审批'
,
hidden
:
true
,
icon
:
<
UserOutlined
/>,
},
},
],
},
{
path
:
'/resourceManage'
,
element
:
<
LayoutView
/>,
errorElement
:
<
ErrorPage
/>,
...
...
@@ -262,7 +358,7 @@ export const routerList: Array<RouteObjectType> = [
children
:
[
{
path
:
'/resourceManage/requirementsGathering'
,
element
:
withLoadingComponent
(<
RequirementsGathering
View
/>),
element
:
withLoadingComponent
(<
GatheringList
View
/>),
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
410
,
...
...
@@ -271,6 +367,17 @@ export const routerList: Array<RouteObjectType> = [
},
},
{
path
:
'/resourceManage/gatherDetail'
,
element
:
withLoadingComponent
(<
GatherDetailView
/>),
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
415
,
title
:
'需求详情'
,
hidden
:
true
,
icon
:
<
MonitorOutlined
/>,
},
},
{
path
:
'/resourceManage/materielManage'
,
element
:
withLoadingComponent
(<
MaterielManageView
/>),
errorElement
:
<
ErrorPage
/>,
...
...
@@ -662,6 +769,17 @@ export const routerList: Array<RouteObjectType> = [
icon
:
<
SendOutlined
/>,
},
},
// 作业服务分类(新)
// {
// path: '/categoryManage/serviceCategoryList',
// element: withLoadingComponent(<ServiceCategoryListView />),
// errorElement: <ErrorPage />,
// meta: {
// id: 1210,
// title: '作业服务分类',
// icon: <SendOutlined />,
// },
// },
{
path
:
'/categoryManage/jobServicesCategory/2'
,
element
:
withLoadingComponent
(<
CategoryManage
/>),
...
...
@@ -682,9 +800,10 @@ export const routerList: Array<RouteObjectType> = [
icon
:
<
AppstoreAddOutlined
/>,
},
},
// 产品商城分类(新)
{
path
:
'/categoryManage/
c
ategoryList'
,
element
:
withLoadingComponent
(<
CategoryListView
/>),
path
:
'/categoryManage/
mallC
ategoryList'
,
element
:
withLoadingComponent
(<
Mall
CategoryListView
/>),
errorElement
:
<
ErrorPage
/>,
meta
:
{
id
:
1240
,
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论