Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-platform
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linweijiong
jinfa-platform
Commits
d0b257a9
Commit
d0b257a9
authored
Nov 29, 2021
by
XieZhiXiong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 添加会员能力 -> 会员维护CN国际化
parent
1b89b454
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
286 additions
and
504 deletions
+286
-504
member.ts
src/locales/zh-CN/member.ts
+108
-9
index.tsx
src/pages/member/memberImport/schema/index.tsx
+6
-6
index.tsx
src/pages/member/memberMaintain/black/index.tsx
+15
-9
schema.ts
src/pages/member/memberMaintain/black/schema.ts
+10
-7
index.less
src/pages/member/memberMaintain/correct/index.less
+0
-0
index.tsx
src/pages/member/memberMaintain/correct/index.tsx
+0
-277
schema.ts
src/pages/member/memberMaintain/correct/schema.ts
+0
-61
archiveInfo.tsx
src/pages/member/memberMaintain/detailed/archiveInfo.tsx
+22
-19
index.tsx
src/pages/member/memberMaintain/detailed/index.tsx
+29
-27
sincerityInfo.tsx
src/pages/member/memberMaintain/detailed/sincerityInfo.tsx
+10
-7
index.tsx
src/pages/member/memberMaintain/eliminate/index.tsx
+10
-8
schema.ts
src/pages/member/memberMaintain/eliminate/schema.ts
+9
-6
index.tsx
src/pages/member/memberMaintain/freeze/index.tsx
+8
-17
schema.ts
src/pages/member/memberMaintain/freeze/schema.ts
+7
-4
index.tsx
src/pages/member/memberMaintain/index.tsx
+16
-15
schema.ts
src/pages/member/memberMaintain/schema.ts
+15
-12
index.tsx
src/pages/member/memberMaintain/unfreeze/index.tsx
+12
-14
schema.ts
src/pages/member/memberMaintain/unfreeze/schema.ts
+9
-6
No files found.
src/locales/zh-CN/member.ts
View file @
d0b257a9
This diff is collapsed.
Click to expand it.
src/pages/member/memberImport/schema/index.tsx
View file @
d0b257a9
...
...
@@ -26,8 +26,8 @@ export const importSchema: ISchema = {
type
:
'string'
,
'x-component'
:
'Search'
,
'x-component-props'
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.import.query.
placeholder-name
'
}),
tip
:
intl
.
formatMessage
({
id
:
'member.management.import.query.
placeholder-name
-tip'
}),
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.import.query.
name.placeholder
'
}),
tip
:
intl
.
formatMessage
({
id
:
'member.management.import.query.
name.placeholder
-tip'
}),
},
},
},
...
...
@@ -46,7 +46,7 @@ export const importSchema: ISchema = {
default
:
undefined
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.import.query.
placeholder-memberTypeId
'
}),
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.import.query.
memberTypeId.placeholder
'
}),
allowClear
:
true
,
style
:
{
width
:
160
,
...
...
@@ -58,7 +58,7 @@ export const importSchema: ISchema = {
default
:
undefined
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.import.query.
placeholder-roleId
'
}),
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.import.query.
roleId.placeholder
'
}),
allowClear
:
true
,
style
:
{
width
:
160
,
...
...
@@ -70,7 +70,7 @@ export const importSchema: ISchema = {
default
:
undefined
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.import.query.
placeholder-outerStatus
'
}),
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.import.query.
outerStatus.placeholder
'
}),
allowClear
:
true
,
style
:
{
width
:
160
,
...
...
@@ -82,7 +82,7 @@ export const importSchema: ISchema = {
default
:
''
,
'x-component'
:
'dateSelect'
,
'x-component-props'
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.import.query.
placeholder-date
'
}),
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.import.query.
date.placeholder
'
}),
allowClear
:
true
,
style
:
{
width
:
160
,
...
...
src/pages/member/memberMaintain/black/index.tsx
View file @
d0b257a9
...
...
@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2021-06-04 10:36:43
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-11-
17 17:5
9:17
* @LastEditTime: 2021-11-
29 17:1
9:17
* @Description: 加入黑名单
*/
import
React
,
{
useState
,
useEffect
}
from
'react'
;
...
...
@@ -15,14 +15,18 @@ import {
Tooltip
,
Space
,
}
from
'antd'
;
import
{
history
}
from
'umi'
;
import
{
history
,
useIntl
}
from
'umi'
;
import
{
StopOutlined
,
QuestionCircleOutlined
}
from
'@ant-design/icons'
;
import
{
createFormActions
}
from
'@formily/antd'
;
import
{
DatePicker
,
}
from
'@formily/antd-components'
import
{
usePageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
getMemberAbilityMaintenanceDetail
,
GetMemberAbilityMaintenanceDetailResponse
,
postMemberAbilityMaintenanceBlacklist
}
from
'@/services/MemberV2Api'
;
import
{
getMemberAbilityMaintenanceDetail
,
GetMemberAbilityMaintenanceDetailResponse
,
postMemberAbilityMaintenanceBlacklist
,
}
from
'@/services/MemberV2Api'
;
import
{
MEMBER_TYPE_CHANNEL_CORPORATE
,
MEMBER_TYPE_CHANNEL_INDIVIDUAL
,
...
...
@@ -62,6 +66,8 @@ const MemberMaintainBlack: React.FC<{}> = () => {
const
[
confirmLoading
,
setConfirmLoading
]
=
useState
(
false
);
const
[
blockedModalVisible
,
setBlockedModalVisible
]
=
useState
(
false
);
const
intl
=
useIntl
();
const
getBasicInfo
=
()
=>
{
if
(
!
validateId
)
{
return
;
...
...
@@ -105,14 +111,14 @@ const MemberMaintainBlack: React.FC<{}> = () => {
const
anchorsArr
=
[
{
key
:
'basicInfo'
,
name
:
'基本信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.basic'
})
,
},
(
memberInfo
?.
memberTypeEnum
===
MEMBER_TYPE_CHANNEL_CORPORATE
||
memberInfo
?.
memberTypeEnum
===
MEMBER_TYPE_CHANNEL_INDIVIDUAL
?
{
key
:
'channelInfo'
,
name
:
'渠道信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.channel'
})
,
}
:
null
),
...
...
@@ -126,7 +132,7 @@ const MemberMaintainBlack: React.FC<{}> = () => {
),
{
key
:
'flowRecords'
,
name
:
'流转记录'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.flowRecords'
})
,
},
].
filter
(
Boolean
);
...
...
@@ -150,7 +156,7 @@ const MemberMaintainBlack: React.FC<{}> = () => {
icon=
{
<
StopOutlined
/>
}
onClick=
{
()
=>
setBlockedModalVisible
(
true
)
}
>
加入黑名单
{
intl
.
formatMessage
({
id
:
'member.management.maintain.black.getBlocked'
})
}
</
Button
>
</
Space
>
)
}
...
...
@@ -243,8 +249,8 @@ const MemberMaintainBlack: React.FC<{}> = () => {
<
Modal
title=
{
(
<
div
>
会员黑名单
<
Tooltip
title=
"黑名单会员,不享用会员权益且不允许再申请会员关系"
>
{
intl
.
formatMessage
({
id
:
'member.management.maintain.black.getBlocked.title'
})
}
<
Tooltip
title=
{
intl
.
formatMessage
({
id
:
'member.management.maintain.black.getBlocked.title-description'
})
}
>
<
QuestionCircleOutlined
style=
{
{
marginLeft
:
8
}
}
/>
...
...
src/pages/member/memberMaintain/black/schema.ts
View file @
d0b257a9
...
...
@@ -2,11 +2,14 @@
* @Author: XieZhiXiong
* @Date: 2021-06-04 10:39:42
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-
06-04 10:47:51
* @LastEditTime: 2021-
11-29 18:06:15
* @Description:
*/
import
{
getIntl
}
from
'umi'
;
import
{
ISchema
}
from
'@formily/antd'
;
const
intl
=
getIntl
();
export
const
blockedModalSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
...
...
@@ -19,10 +22,10 @@ export const blockedModalSchema: ISchema = {
properties
:
{
date
:
{
type
:
'string'
,
title
:
'进入黑名单日期'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.black.getBlocked.form.date'
})
,
'x-component'
:
'DatePicker'
,
'x-component-props'
:
{
placeholder
:
'请选择'
,
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.maintain.black.getBlocked.form.select.placeholder'
})
,
style
:
{
width
:
'100%'
,
},
...
...
@@ -30,23 +33,23 @@ export const blockedModalSchema: ISchema = {
'x-rules'
:
[
{
required
:
true
,
message
:
'请选择进入黑名单日期'
,
message
:
intl
.
formatMessage
({
id
:
'member.management.maintain.black.getBlocked.form.date.placeholder'
}),
},
],
},
reason
:
{
type
:
'string'
,
title
:
'进入黑名单原因'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.black.getBlocked.form.reason'
})
,
'x-component'
:
'Textarea'
,
'x-component-props'
:
{
placeholder
:
'在此输入你的内容,最长120个字符,60个汉字'
,
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.maintain.black.getBlocked.form.reason.placeholder'
})
,
maxLength
:
60
,
rows
:
5
,
},
'x-rules'
:
[
{
required
:
true
,
message
:
'请填写原因'
,
message
:
intl
.
formatMessage
({
id
:
'member.management.maintain.black.getBlocked.form.reason.rules-required'
}),
},
{
limitByte
:
true
,
// 自定义校验规则
...
...
src/pages/member/memberMaintain/correct/index.less
deleted
100644 → 0
View file @
1b89b454
src/pages/member/memberMaintain/correct/index.tsx
deleted
100644 → 0
View file @
1b89b454
/*
* @Author: XieZhiXiong
* @Date: 2021-06-04 10:36:43
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-11-17 17:59:35
* @Description: 会员整改详情
*/
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
Button
,
Modal
,
Row
,
Col
,
Spin
,
Tooltip
,
Space
,
}
from
'antd'
;
import
{
history
}
from
'umi'
;
import
{
StopOutlined
,
QuestionCircleOutlined
}
from
'@ant-design/icons'
;
import
{
createFormActions
}
from
'@formily/antd'
;
import
{
DatePicker
,
}
from
'@formily/antd-components'
import
{
usePageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
getMemberAbilityMaintenanceDetail
,
GetMemberAbilityMaintenanceDetailResponse
,
postMemberAbilityMaintenanceEliminate
}
from
'@/services/MemberV2Api'
;
import
{
MEMBER_TYPE_CHANNEL_CORPORATE
,
MEMBER_TYPE_CHANNEL_INDIVIDUAL
,
}
from
'@/constants/member'
;
import
AnchorPage
from
'@/components/AnchorPage'
;
import
AvatarWrap
from
'@/components/AvatarWrap'
;
import
LevelBrand
from
'@/components/LevelBrand'
;
import
FlowRecords
from
'@/components/FlowRecords'
;
import
CustomizeColumn
from
'@/components/CustomizeColumn'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
unfriendModalSchema
}
from
'./schema'
;
import
{
MEMBER_OUTER_COLUMNS
,
MEMBER_INNER_COLUMNS
,
}
from
'../../constant'
;
import
MemberBasicInfo
from
'../../components/MemberBasicInfo'
;
import
MemberChannelInfo
from
'../../components/MemberChannelInfo'
;
import
PicWrap
from
'../../components/PicWrap'
;
type
ValueType
=
{
/**
* 日期
*/
date
:
string
,
/**
* 理由
*/
reason
:
string
,
}
const
formActions
=
createFormActions
();
const
MemberMaintainCorrect
:
React
.
FC
<
{}
>
=
()
=>
{
const
{
validateId
}
=
usePageStatus
();
const
[
memberInfo
,
setMemberInfo
]
=
useState
<
GetMemberAbilityMaintenanceDetailResponse
>
(
null
);
const
[
infoLoading
,
setInfoLoaading
]
=
useState
(
false
);
const
[
confirmLoading
,
setConfirmLoading
]
=
useState
(
false
);
const
[
unfriendModalVisible
,
setUnfriendModalVisible
]
=
useState
(
false
);
const
getBasicInfo
=
()
=>
{
if
(
!
validateId
)
{
return
;
}
setInfoLoaading
(
true
);
getMemberAbilityMaintenanceDetail
({
validateId
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setMemberInfo
(
res
.
data
);
}
}).
catch
((
err
)
=>
{
console
.
warn
(
err
);
}).
finally
(()
=>
{
setInfoLoaading
(
false
);
});
};
useEffect
(()
=>
{
getBasicInfo
();
},
[]);
const
handleSubmit
=
(
values
:
ValueType
)
=>
{
setConfirmLoading
(
true
);
return
postMemberAbilityMaintenanceEliminate
({
validateId
:
validateId
,
...
values
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
setUnfriendModalVisible
(
false
);
setTimeout
(()
=>
{
history
.
goBack
();
},
800
);
}).
finally
(()
=>
{
setConfirmLoading
(
false
);
});
};
const
anchorsArr
=
[
{
key
:
'basicInfo'
,
name
:
'基本信息'
,
},
(
memberInfo
?.
memberTypeEnum
===
MEMBER_TYPE_CHANNEL_CORPORATE
||
memberInfo
?.
memberTypeEnum
===
MEMBER_TYPE_CHANNEL_INDIVIDUAL
?
{
key
:
'channelInfo'
,
name
:
'渠道信息'
,
}
:
null
),
...(
memberInfo
&&
memberInfo
.
groups
?
memberInfo
.
groups
.
map
((
item
,
index
)
=>
({
key
:
`group
${
index
}
`
,
name
:
item
.
groupName
,
}))
:
[]
),
{
key
:
'flowRecords'
,
name
:
'流转记录'
,
},
].
filter
(
Boolean
);
return
(
<
Spin
spinning=
{
infoLoading
}
>
<
AnchorPage
title=
{
(
<
AvatarWrap
info=
{
{
name
:
memberInfo
?.
name
,
}
}
extra=
{
(
<
LevelBrand
level=
{
2
}
/>
)
}
/>
)
}
anchors=
{
anchorsArr
}
extra=
{
(
<
Space
size=
{
16
}
>
<
Button
icon=
{
<
StopOutlined
/>
}
onClick=
{
()
=>
setUnfriendModalVisible
(
true
)
}
>
解除关系
</
Button
>
</
Space
>
)
}
>
<
Row
gutter=
{
[
16
,
16
]
}
>
{
/* 基本信息 */
}
<
Col
span=
{
24
}
>
<
MemberBasicInfo
dataSource=
{
{
memberId
:
memberInfo
?.
memberId
,
memberTypeName
:
memberInfo
?.
memberTypeName
,
account
:
memberInfo
?.
account
,
name
:
memberInfo
?.
name
,
roleName
:
memberInfo
?.
roleName
,
phone
:
memberInfo
?.
phone
,
outerStatus
:
memberInfo
?.
outerStatus
,
outerStatusName
:
memberInfo
?.
outerStatusName
,
levelTag
:
memberInfo
?.
levelTag
,
email
:
memberInfo
?.
email
,
createTime
:
memberInfo
?.
registerTime
,
}
}
id=
"basicInfo"
/>
</
Col
>
{
/* 渠道信息 */
}
{
memberInfo
?.
memberTypeEnum
===
MEMBER_TYPE_CHANNEL_CORPORATE
||
memberInfo
?.
memberTypeEnum
===
MEMBER_TYPE_CHANNEL_INDIVIDUAL
?
(
<
Col
span=
{
24
}
>
<
MemberChannelInfo
dataSource=
{
{
level
:
memberInfo
?.
channelLevelTag
,
type
:
memberInfo
?.
channelTypeName
,
areas
:
memberInfo
?.
areas
,
desc
:
memberInfo
?.
remark
,
}
}
id=
"channelInfo"
/>
</
Col
>
)
:
null
}
{
/* 其他注册信息 */
}
{
memberInfo
&&
memberInfo
.
groups
?
memberInfo
.
groups
.
map
((
item
,
index
)
=>
(
<
Col
span=
{
24
}
key=
{
`group${index}`
}
>
<
CustomizeColumn
title=
{
item
.
groupName
}
data=
{
(
item
.
elements
.
map
((
ele
)
=>
({
title
:
ele
.
fieldLocalName
,
value
:
(
ele
.
fieldType
!==
'upload'
?
ele
.
fieldValue
:
(
<
PicWrap
pics=
{
[
ele
.
fieldValue
]
}
/>
)
),
}))
)
}
id=
{
`group${index}`
}
/>
</
Col
>
))
:
null
}
{
/* 流转记录 */
}
<
Col
span=
{
24
}
>
<
FlowRecords
outerColumns=
{
MEMBER_OUTER_COLUMNS
}
innerColumns=
{
MEMBER_INNER_COLUMNS
}
outerRowkey=
"id"
innerRowkey=
"id"
outerDataSource=
{
memberInfo
?.
outerHistory
}
innerDataSource=
{
memberInfo
?.
innerHistory
}
id=
"flowRecords"
/>
</
Col
>
</
Row
>
</
AnchorPage
>
{
/* 解除关系相关 */
}
<
Modal
title=
{
(
<
div
>
会员关系解除
<
Tooltip
title=
"解除当前会员关系,不在享用会员权益;可重新申请会员关系"
>
<
QuestionCircleOutlined
style=
{
{
marginLeft
:
8
}
}
/>
</
Tooltip
>
</
div
>
)
}
visible=
{
unfriendModalVisible
}
confirmLoading=
{
confirmLoading
}
onOk=
{
()
=>
formActions
.
submit
()
}
onCancel=
{
()
=>
setUnfriendModalVisible
(
false
)
}
destroyOnClose
>
<
NiceForm
previewPlaceholder=
"' '"
components=
{
{
DatePicker
,
}
}
effects=
{
()
=>
{
}
}
actions=
{
formActions
}
schema=
{
unfriendModalSchema
}
onSubmit=
{
handleSubmit
}
/>
</
Modal
>
</
Spin
>
);
};
export
default
MemberMaintainCorrect
;
src/pages/member/memberMaintain/correct/schema.ts
deleted
100644 → 0
View file @
1b89b454
/*
* @Author: XieZhiXiong
* @Date: 2021-06-04 10:39:42
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-06-04 10:47:51
* @Description:
*/
import
{
ISchema
}
from
'@formily/antd'
;
export
const
unfriendModalSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
MEGA_LAYOUT
:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
'x-component-props'
:
{
labelAlign
:
'top'
,
},
properties
:
{
date
:
{
type
:
'string'
,
title
:
'解除日期'
,
'x-component'
:
'DatePicker'
,
'x-component-props'
:
{
placeholder
:
'请选择'
,
style
:
{
width
:
'100%'
,
},
},
'x-rules'
:
[
{
required
:
true
,
message
:
'请选择解除日期'
,
},
],
},
reason
:
{
type
:
'string'
,
title
:
'解除原因'
,
'x-component'
:
'Textarea'
,
'x-component-props'
:
{
placeholder
:
'在此输入你的内容,最长120个字符,60个汉字'
,
maxLength
:
60
,
rows
:
5
,
},
'x-rules'
:
[
{
required
:
true
,
message
:
'请填写原因'
,
},
{
limitByte
:
true
,
// 自定义校验规则
maxByte
:
120
,
}
],
},
},
},
},
};
\ No newline at end of file
src/pages/member/memberMaintain/detailed/archiveInfo.tsx
View file @
d0b257a9
...
...
@@ -2,10 +2,11 @@
* @Author: XieZhiXiong
* @Date: 2021-05-21 16:45:32
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-11-
17 18:00:06
* @LastEditTime: 2021-11-
29 20:07:02
* @Description: 会员档案信息
*/
import
React
,
{
useEffect
,
useState
}
from
'react'
;
import
{
useIntl
}
from
'umi'
;
import
{
Row
,
Col
,
Spin
}
from
'antd'
;
import
{
usePageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
getMemberAbilityMaintenanceDetailAppraisalPage
,
getMemberAbilityMaintenanceDetailInspectPage
,
getMemberAbilityMaintenanceDetailRecord
,
GetMemberAbilityMaintenanceDetailRecordResponse
,
getMemberAbilityMaintenanceDetailRectifyPage
}
from
'@/services/MemberV2Api'
;
...
...
@@ -101,6 +102,8 @@ const MemberArchiveInfo = () => {
const
[
archiveInfo
,
setArchiveInfo
]
=
useState
<
GetMemberAbilityMaintenanceDetailRecordResponse
>
();
const
[
loading
,
setLoading
]
=
useState
(
false
);
const
intl
=
useIntl
();
const
getArchiveInfo
=
()
=>
{
setLoading
(
true
);
getMemberAbilityMaintenanceDetailRecord
({
...
...
@@ -118,25 +121,25 @@ const MemberArchiveInfo = () => {
const
inspectionColumns
:
EditableColumns
<
InspectListItemType
>
[]
=
[
{
title
:
'序号'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.inspect.index'
})
,
dataIndex
:
'id'
,
render
:
(
text
,
record
,
index
)
=>
index
+
1
,
},
{
title
:
'考察主题'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.inspect.subject'
})
,
dataIndex
:
'subject'
,
ellipsis
:
true
,
},
{
title
:
'考察类型'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.inspect.inspectTypeName'
})
,
dataIndex
:
'inspectTypeName'
,
},
{
title
:
'考察日期'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.inspect.inspectTime'
})
,
dataIndex
:
'inspectTime'
,
},
{
title
:
'考察评分'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.inspect.score'
})
,
dataIndex
:
'score'
,
},
];
...
...
@@ -161,26 +164,26 @@ const MemberArchiveInfo = () => {
const
AppraisalColumns
:
EditableColumns
<
AppraisalListItemType
>
[]
=
[
{
title
:
'序号'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.appraisal.index'
})
,
render
:
(
text
,
record
,
index
)
=>
index
+
1
,
},
{
title
:
'考评主题'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.appraisal.subject'
})
,
dataIndex
:
'subject'
,
ellipsis
:
true
,
render
:
(
text
,
record
)
=>
`
${
text
}
-
${
record
.
name
}
`
,
},
{
title
:
'考评范围'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.appraisal.appraisalDayStart'
})
,
dataIndex
:
'appraisalDayStart'
,
render
:
(
text
,
record
)
=>
`
${
text
}
`
,
},
{
title
:
'考评完成时间'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.appraisal.completeDay'
})
,
dataIndex
:
'completeDay'
,
},
{
title
:
'考评最终分'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.appraisal.totalScore'
})
,
dataIndex
:
'totalScore'
,
},
]
...
...
@@ -205,24 +208,24 @@ const MemberArchiveInfo = () => {
const
RectifyColumns
:
EditableColumns
<
RectifyListItemType
>
[]
=
[
{
title
:
'序号'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.rectify.index'
})
,
render
:
(
text
,
record
,
index
)
=>
index
+
1
,
},
{
title
:
'整改主题'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.rectify.subject'
})
,
dataIndex
:
'subject'
,
ellipsis
:
true
,
},
{
title
:
'整改开始日期'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.rectify.rectifyTimeStart'
})
,
dataIndex
:
'rectifyTimeStart'
,
},
{
title
:
'整改截止日期'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.rectify.rectifyTimeEnd'
})
,
dataIndex
:
'rectifyTimeEnd'
,
},
{
title
:
'整改结果'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.rectify.result'
})
,
dataIndex
:
'result'
,
},
]
...
...
@@ -285,7 +288,7 @@ const MemberArchiveInfo = () => {
{
/* 考察信息 */
}
<
Col
span=
{
24
}
>
<
MemberDocTableList
<
InspectListItemType
>
title=
"考察信息"
title=
{
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.inspect'
})
}
columns=
{
inspectionColumns
}
fetchList=
{
getInspectList
}
id="inspectInfo"
...
...
@@ -295,7 +298,7 @@ const MemberArchiveInfo = () => {
{
/* 考评信息 */
}
<
Col
span=
{
24
}
>
<
MemberDocTableList
<
AppraisalListItemType
>
title=
"考评信息"
title=
{
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.appraisal'
})
}
columns=
{
AppraisalColumns
}
fetchList=
{
getAppraisalList
}
id="appraisalInfo"
...
...
@@ -305,7 +308,7 @@ const MemberArchiveInfo = () => {
{
/* 整改信息 */
}
<
Col
span=
{
24
}
>
<
MemberDocTableList
<
RectifyListItemType
>
title=
"整改信息"
title=
{
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.rectify'
})
}
columns=
{
RectifyColumns
}
fetchList=
{
getRectifyList
}
id="rectifyInfo"
...
...
src/pages/member/memberMaintain/detailed/index.tsx
View file @
d0b257a9
...
...
@@ -6,7 +6,7 @@
* @Description:
*/
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
history
}
from
'umi'
;
import
{
history
,
useIntl
}
from
'umi'
;
import
{
Spin
}
from
'antd'
;
import
{
UnorderedListOutlined
,
...
...
@@ -46,6 +46,8 @@ const MemberMaintainDetailed: React.FC<QueryProps> = props => {
const
[
memberInfo
,
setMemberInfo
]
=
useState
<
GetMemberAbilityMaintenanceDetailBasicResponse
>
(
null
);
const
[
infoLoading
,
setInfoLoading
]
=
useState
(
false
);
const
intl
=
useIntl
();
const
getBasicInfo
=
()
=>
{
if
(
!
validateId
)
{
return
;
...
...
@@ -119,18 +121,18 @@ const MemberMaintainDetailed: React.FC<QueryProps> = props => {
ret
=
[
{
key
:
'verifySteps'
,
name
:
'流转进度'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.verifySteps'
})
,
},
{
key
:
'basicInfo'
,
name
:
'基本信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.basic'
})
,
},
(
memberInfo
?.
memberTypeEnum
===
MEMBER_TYPE_CHANNEL_CORPORATE
||
memberInfo
?.
memberTypeEnum
===
MEMBER_TYPE_CHANNEL_INDIVIDUAL
?
{
key
:
'channelInfo'
,
name
:
'渠道信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.channel'
})
,
}
:
null
),
...
...
@@ -144,7 +146,7 @@ const MemberMaintainDetailed: React.FC<QueryProps> = props => {
),
{
key
:
'flowRecords'
,
name
:
'流转记录'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.flowRecords'
})
,
},
].
filter
(
Boolean
);
break
;
...
...
@@ -152,11 +154,11 @@ const MemberMaintainDetailed: React.FC<QueryProps> = props => {
ret
=
[
{
key
:
'memberLevel'
,
name
:
'会员等级'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.memberLevel'
})
,
},
{
key
:
'activePoints'
,
name
:
'活跃分获取记录'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.activePoints'
})
,
},
];
break
;
...
...
@@ -164,15 +166,15 @@ const MemberMaintainDetailed: React.FC<QueryProps> = props => {
ret
=
[
{
key
:
'basicInfo'
,
name
:
'基本信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.basic'
})
,
},
{
key
:
'memberEquity'
,
name
:
'会员权益'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.memberEquity'
})
,
},
{
key
:
'equityRecords'
,
name
:
'权益记录'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.equityRecords'
})
,
},
];
break
;
...
...
@@ -180,19 +182,19 @@ const MemberMaintainDetailed: React.FC<QueryProps> = props => {
ret
=
[
{
key
:
'basicInfo'
,
name
:
'基本信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.basic'
})
,
},
{
key
:
'orderEvaluation'
,
name
:
'交易评价'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.orderEvaluation'
})
,
},
{
key
:
'afterServiceEvaluation'
,
name
:
'售后评价'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.afterServiceEvaluation'
})
,
},
{
key
:
'feedbackRecords'
,
name
:
'反馈记录'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.feedbackRecords'
})
,
},
];
break
;
...
...
@@ -200,27 +202,27 @@ const MemberMaintainDetailed: React.FC<QueryProps> = props => {
ret
=
[
{
key
:
'categoryInfo'
,
name
:
'分类信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.categoryInfo'
})
,
},
{
key
:
'depositDetails'
,
name
:
'入库信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.depositDetails'
})
,
},
{
key
:
'qualitiesInfo'
,
name
:
'资质证明'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.qualitiesInfo'
})
,
},
{
key
:
'inspectInfo'
,
name
:
'考察信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.inspectInfo'
})
,
},
{
key
:
'appraisalInfo'
,
name
:
'考评信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.appraisalInfo'
})
,
},
{
key
:
'rectifyInfo'
,
name
:
'整改信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.rectifyInfo'
})
,
},
];
break
;
...
...
@@ -228,7 +230,7 @@ const MemberMaintainDetailed: React.FC<QueryProps> = props => {
ret
=
[
{
key
:
'changedInfo'
,
name
:
'变更信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.changedInfo'
})
,
},
];
break
;
...
...
@@ -255,12 +257,12 @@ const MemberMaintainDetailed: React.FC<QueryProps> = props => {
anchors=
{
getAnchorsArr
()
}
extra=
{
(
<
Bookmark
value=
{
getBookmarkKey
()
}
onChange=
{
handleBookmarkChange
}
>
<
Bookmark
.
Item
value=
"basicInfo"
title=
"基本信息"
icon=
{
<
UnorderedListOutlined
/>
}
/>
<
Bookmark
.
Item
value=
"archiveInfo"
title=
"档案信息"
icon=
{
<
FolderOutlined
/>
}
/>
<
Bookmark
.
Item
value=
"levelInfo"
title=
"等级信息"
icon=
{
<
BarChartOutlined
/>
}
/>
<
Bookmark
.
Item
value=
"equityInfo"
title=
"权益信息"
icon=
{
<
InsuranceOutlined
/>
}
/>
<
Bookmark
.
Item
value=
"sincerityInfo"
title=
"信用信息"
icon=
{
<
BulbOutlined
/>
}
/>
<
Bookmark
.
Item
value=
"changedInfo"
title=
"变更信息"
icon=
{
<
EditOutlined
/>
}
/>
<
Bookmark
.
Item
value=
"basicInfo"
title=
{
intl
.
formatMessage
({
id
:
'member.management.maintain.basic'
})
}
icon=
{
<
UnorderedListOutlined
/>
}
/>
<
Bookmark
.
Item
value=
"archiveInfo"
title=
{
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo'
})
}
icon=
{
<
FolderOutlined
/>
}
/>
<
Bookmark
.
Item
value=
"levelInfo"
title=
{
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.levelInfo'
})
}
icon=
{
<
BarChartOutlined
/>
}
/>
<
Bookmark
.
Item
value=
"equityInfo"
title=
{
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.equityInfo'
})
}
icon=
{
<
InsuranceOutlined
/>
}
/>
<
Bookmark
.
Item
value=
"sincerityInfo"
title=
{
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.sincerityInfo'
})
}
icon=
{
<
BulbOutlined
/>
}
/>
<
Bookmark
.
Item
value=
"changedInfo"
title=
{
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.changedInfo'
})
}
icon=
{
<
EditOutlined
/>
}
/>
</
Bookmark
>
)
}
>
...
...
src/pages/member/memberMaintain/detailed/sincerityInfo.tsx
View file @
d0b257a9
...
...
@@ -2,10 +2,11 @@
* @Author: XieZhiXiong
* @Date: 2021-01-06 11:36:35
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-11-
17 18:03:51
* @LastEditTime: 2021-11-
29 20:10:48
* @Description: 会员信用信息详情
*/
import
React
,
{
useEffect
,
useState
}
from
'react'
;
import
{
useIntl
}
from
'umi'
;
import
{
Row
,
Col
}
from
'antd'
;
import
{
usePageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
getMemberAbilityMaintenanceDetailCreditAftersaleHistoryPage
,
getMemberAbilityMaintenanceDetailCreditAftersaleSummary
,
getMemberAbilityMaintenanceDetailCreditBasic
,
getMemberAbilityMaintenanceDetailCreditComplainHistoryPage
,
getMemberAbilityMaintenanceDetailCreditComplainSummary
,
getMemberAbilityMaintenanceDetailCreditTradeHistoryPage
,
getMemberAbilityMaintenanceDetailCreditTradeSummary
}
from
'@/services/MemberV2Api'
;
...
...
@@ -44,6 +45,8 @@ const MemberSincerityInfo: React.FC<{}> = () => {
sum
:
0
,
});
const
intl
=
useIntl
();
const
getBasicInfo
=
()
=>
{
setBasicInfoLoading
(
true
);
getMemberAbilityMaintenanceDetailCreditBasic
({
...
...
@@ -62,19 +65,19 @@ const MemberSincerityInfo: React.FC<{}> = () => {
}
=
(
res
.
data
||
{});
const
pieData
=
[
{
x
:
'交易评价积分'
,
x
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.sincerityInfo.tradeCommentPoint'
})
,
y
:
tradeCommentPoint
||
0
,
},
{
x
:
'售后评价积分'
,
x
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.sincerityInfo.afterSaleCommentPoint'
})
,
y
:
afterSaleCommentPoint
||
0
,
},
{
x
:
'反馈扣分'
,
x
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.sincerityInfo.complainPoint'
})
,
y
:
complainPoint
||
0
,
},
{
x
:
'入驻年数积分'
,
x
:
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.sincerityInfo.registerYearsPoint'
})
,
y
:
registerYearsPoint
||
0
,
},
];
...
...
@@ -213,7 +216,7 @@ const MemberSincerityInfo: React.FC<{}> = () => {
{
/* 交易评价 */
}
<
Col
span=
{
24
}
>
<
MemberEvaluation
title=
"交易评价"
title=
{
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.orderEvaluation'
})
}
analysis=
{
orderEstimateSum
}
loading=
{
orderEstimateSumLoading
}
fetchEvaluationList=
{
getOrderEvaluationList
}
...
...
@@ -224,7 +227,7 @@ const MemberSincerityInfo: React.FC<{}> = () => {
{
/* 售后评价 */
}
<
Col
span=
{
24
}
>
<
MemberEvaluation
title=
"售后评价"
title=
{
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.afterServiceEvaluation'
})
}
analysis=
{
afterServiceEstimateSum
}
loading=
{
afterServiceEstimateSumLoading
}
fetchEvaluationList=
{
getAfterServiceEvaluationList
}
...
...
src/pages/member/memberMaintain/eliminate/index.tsx
View file @
d0b257a9
...
...
@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2021-06-04 10:36:43
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-11-
17 18:04:09
* @LastEditTime: 2021-11-
29 17:49:03
* @Description: 解除关系
*/
import
React
,
{
useState
,
useEffect
}
from
'react'
;
...
...
@@ -15,7 +15,7 @@ import {
Tooltip
,
Space
,
}
from
'antd'
;
import
{
history
}
from
'umi'
;
import
{
history
,
useIntl
}
from
'umi'
;
import
{
StopOutlined
,
QuestionCircleOutlined
}
from
'@ant-design/icons'
;
import
{
createFormActions
}
from
'@formily/antd'
;
import
{
...
...
@@ -62,6 +62,8 @@ const MemberMaintainEliminate: React.FC<{}> = () => {
const
[
confirmLoading
,
setConfirmLoading
]
=
useState
(
false
);
const
[
unfriendModalVisible
,
setUnfriendModalVisible
]
=
useState
(
false
);
const
intl
=
useIntl
();
const
getBasicInfo
=
()
=>
{
if
(
!
validateId
)
{
return
;
...
...
@@ -105,14 +107,14 @@ const MemberMaintainEliminate: React.FC<{}> = () => {
const
anchorsArr
=
[
{
key
:
'basicInfo'
,
name
:
'基本信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.basic'
})
,
},
(
memberInfo
?.
memberTypeEnum
===
MEMBER_TYPE_CHANNEL_CORPORATE
||
memberInfo
?.
memberTypeEnum
===
MEMBER_TYPE_CHANNEL_INDIVIDUAL
?
{
key
:
'channelInfo'
,
name
:
'渠道信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.channel'
})
,
}
:
null
),
...
...
@@ -126,7 +128,7 @@ const MemberMaintainEliminate: React.FC<{}> = () => {
),
{
key
:
'flowRecords'
,
name
:
'流转记录'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.flowRecords'
})
,
},
].
filter
(
Boolean
);
...
...
@@ -150,7 +152,7 @@ const MemberMaintainEliminate: React.FC<{}> = () => {
icon=
{
<
StopOutlined
/>
}
onClick=
{
()
=>
setUnfriendModalVisible
(
true
)
}
>
解除关系
{
intl
.
formatMessage
({
id
:
'member.management.maintain.eliminate.remove'
})
}
</
Button
>
</
Space
>
)
}
...
...
@@ -243,8 +245,8 @@ const MemberMaintainEliminate: React.FC<{}> = () => {
<
Modal
title=
{
(
<
div
>
会员关系解除
<
Tooltip
title=
"解除当前会员关系,不在享用会员权益;可重新申请会员关系"
>
{
intl
.
formatMessage
({
id
:
'member.management.maintain.eliminate.remove.title'
})
}
<
Tooltip
title=
{
intl
.
formatMessage
({
id
:
'member.management.maintain.eliminate.remove.title-description'
})
}
>
<
QuestionCircleOutlined
style=
{
{
marginLeft
:
8
}
}
/>
...
...
src/pages/member/memberMaintain/eliminate/schema.ts
View file @
d0b257a9
...
...
@@ -2,11 +2,14 @@
* @Author: XieZhiXiong
* @Date: 2021-06-04 10:39:42
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-
06-04 10:47:51
* @LastEditTime: 2021-
11-29 18:13:35
* @Description:
*/
import
{
getIntl
}
from
'umi'
;
import
{
ISchema
}
from
'@formily/antd'
;
const
intl
=
getIntl
();
export
const
unfriendModalSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
...
...
@@ -19,7 +22,7 @@ export const unfriendModalSchema: ISchema = {
properties
:
{
date
:
{
type
:
'string'
,
title
:
'解除日期'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.eliminate.remove.form.date'
})
,
'x-component'
:
'DatePicker'
,
'x-component-props'
:
{
placeholder
:
'请选择'
,
...
...
@@ -30,23 +33,23 @@ export const unfriendModalSchema: ISchema = {
'x-rules'
:
[
{
required
:
true
,
message
:
'请选择解除日期'
,
message
:
intl
.
formatMessage
({
id
:
'member.management.maintain.eliminate.remove.form.date.rules-required'
}),
},
],
},
reason
:
{
type
:
'string'
,
title
:
'解除原因'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.eliminate.remove.form.reason'
})
,
'x-component'
:
'Textarea'
,
'x-component-props'
:
{
placeholder
:
'在此输入你的内容,最长120个字符,60个汉字'
,
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.maintain.eliminate.remove.form.reason.placeholder'
})
,
maxLength
:
60
,
rows
:
5
,
},
'x-rules'
:
[
{
required
:
true
,
message
:
'请填写原因'
,
message
:
intl
.
formatMessage
({
id
:
'member.management.maintain.eliminate.remove.form.reason.rules-required'
}),
},
{
limitByte
:
true
,
// 自定义校验规则
...
...
src/pages/member/memberMaintain/freeze/index.tsx
View file @
d0b257a9
...
...
@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2021-06-04 11:31:48
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-
06-04 11:42:18
* @LastEditTime: 2021-
11-29 17:56:21
* @Description: 会员冻结
*/
import
React
,
{
useState
,
useEffect
}
from
'react'
;
...
...
@@ -13,7 +13,7 @@ import {
Col
,
Spin
,
}
from
'antd'
;
import
{
history
}
from
'umi'
;
import
{
history
,
useIntl
}
from
'umi'
;
import
{
StopOutlined
}
from
'@ant-design/icons'
;
import
{
createFormActions
,
...
...
@@ -55,6 +55,8 @@ const MemberFrozen: React.FC<{}> = () => {
const
[
modalVisible
,
setModalVisible
]
=
useState
(
false
);
const
[
infoLoading
,
setInfoLoaading
]
=
useState
(
false
);
const
[
confirmLoading
,
setConfirmLoading
]
=
useState
(
false
);
const
intl
=
useIntl
();
const
getBasicInfo
=
()
=>
{
if
(
!
validateId
)
{
...
...
@@ -100,19 +102,15 @@ const MemberFrozen: React.FC<{}> = () => {
const
anchorsArr
=
[
{
key
:
'verifySteps'
,
name
:
'流转进度'
,
},
{
key
:
'basicInfo'
,
name
:
'基本信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.basic'
})
,
},
(
memberInfo
?.
memberTypeEnum
===
MEMBER_TYPE_CHANNEL_CORPORATE
||
memberInfo
?.
memberTypeEnum
===
MEMBER_TYPE_CHANNEL_INDIVIDUAL
?
{
key
:
'channelInfo'
,
name
:
'渠道信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.channel'
})
,
}
:
null
),
...
...
@@ -126,7 +124,7 @@ const MemberFrozen: React.FC<{}> = () => {
),
{
key
:
'flowRecords'
,
name
:
'流转记录'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.flowRecords'
})
,
},
].
filter
(
Boolean
);
...
...
@@ -238,7 +236,7 @@ const MemberFrozen: React.FC<{}> = () => {
{
/* 冻结相关 */
}
<
Modal
title=
"会员冻结"
title=
{
intl
.
formatMessage
({
id
:
'member.management.maintain.freeze.freeze.title'
})
}
visible=
{
modalVisible
}
confirmLoading=
{
confirmLoading
}
onOk=
{
()
=>
formActions
.
submit
()
}
...
...
@@ -247,13 +245,6 @@ const MemberFrozen: React.FC<{}> = () => {
>
<
NiceForm
previewPlaceholder=
"' '"
effects=
{
(
$
,
{
setFieldState
})
=>
{
FormEffectHooks
.
onFieldInit$
(
'reason'
).
subscribe
(()
=>
{
setFieldState
(
'reason'
,
fieldState
=>
{
fieldState
.
props
.
title
=
'会员冻结原因'
;
});
});
}
}
actions=
{
formActions
}
schema=
{
freezeSchema
}
onSubmit=
{
handleSubmit
}
...
...
src/pages/member/memberMaintain/freeze/schema.ts
View file @
d0b257a9
...
...
@@ -2,11 +2,14 @@
* @Author: XieZhiXiong
* @Date: 2021-06-04 11:27:42
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-
06-04 11:27:43
* @LastEditTime: 2021-
11-29 18:17:12
* @Description:
*/
import
{
getIntl
}
from
'umi'
;
import
{
ISchema
}
from
'@formily/antd'
;
const
intl
=
getIntl
();
export
const
freezeSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
...
...
@@ -19,17 +22,17 @@ export const freezeSchema: ISchema = {
properties
:
{
reason
:
{
type
:
'string'
,
title
:
'会员解冻原因'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.freeze.freeze.form.reason'
})
,
'x-component'
:
'Textarea'
,
'x-component-props'
:
{
placeholder
:
'在此输入你的内容,最长120个字符,60个汉字'
,
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.maintain.freeze.freeze.form.reason.placeholder'
})
,
maxLength
:
60
,
rows
:
5
,
},
'x-rules'
:
[
{
required
:
true
,
message
:
'请填写原因'
,
message
:
intl
.
formatMessage
({
id
:
'member.management.maintain.freeze.freeze.form.reason.rules-required'
}),
},
{
limitByte
:
true
,
// 自定义校验规则
...
...
src/pages/member/memberMaintain/index.tsx
View file @
d0b257a9
import
React
,
{
useRef
}
from
'react'
;
import
{
Link
}
from
'umi'
;
import
{
Link
,
useIntl
}
from
'umi'
;
import
{
Card
,
Button
,
...
...
@@ -48,10 +48,11 @@ const fetchData = async (params: any) => {
const
MemberMaintain
:
React
.
FC
<
[]
>
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
const
intl
=
useIntl
();
const
defaultColumns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'会员ID/名称'
,
title
:
`
${
intl
.
formatMessage
({
id
:
'member.management.maintain.query.memberId'
})}
/
${
intl
.
formatMessage
({
id
:
'member.management.maintain.query.memberName'
})}
`
,
dataIndex
:
'memberId'
,
render
:
(
text
,
record
)
=>
(
<>
...
...
@@ -67,20 +68,20 @@ const MemberMaintain: React.FC<[]> = () => {
),
},
{
title
:
'会员类型'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.query.memberTypeName'
})
,
dataIndex
:
'memberTypeName'
,
},
{
title
:
'会员角色'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.query.roleName'
})
,
dataIndex
:
'roleName'
,
},
{
title
:
'会员等级'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.query.level'
})
,
dataIndex
:
'level'
,
render
:
(
text
)
=>
<
LevelBrand
level=
{
text
}
/>,
},
{
title
:
'注册来源/时间'
,
title
:
`
${
intl
.
formatMessage
({
id
:
'member.management.maintain.query.sourceName'
})}
/
${
intl
.
formatMessage
({
id
:
'member.management.maintain.query.registerTime'
})}
`
,
dataIndex
:
'sourceName'
,
render
:
(
text
,
record
)
=>
(
<>
...
...
@@ -90,13 +91,13 @@ const MemberMaintain: React.FC<[]> = () => {
),
},
{
title
:
'会员状态'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.query.statusName'
})
,
dataIndex
:
'statusName'
,
filters
:
[],
onFilter
:
(
value
,
record
)
=>
record
.
status
===
value
,
},
{
title
:
'外部状态'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.query.outerStatusName'
})
,
dataIndex
:
'outerStatusName'
,
filters
:
[],
onFilter
:
(
value
,
record
)
=>
record
.
outerStatus
===
value
,
...
...
@@ -105,14 +106,14 @@ const MemberMaintain: React.FC<[]> = () => {
),
},
{
title
:
'内部状态'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.query.innerStatusName'
})
,
dataIndex
:
'innerStatusName'
,
filters
:
[],
onFilter
:
(
value
,
record
)
=>
record
.
innerStatus
===
value
,
render
:
(
text
,
record
)
=>
<
Badge
color=
{
MEMBER_INNER_STATUS_BADGE_COLOR
[
record
.
innerStatus
]
||
'#606266'
}
text=
{
text
}
/>,
},
{
title
:
'操作'
,
title
:
intl
.
formatMessage
({
id
:
'common.table.action'
})
,
dataIndex
:
'option'
,
render
:
(
_
,
record
)
=>
(
<>
...
...
@@ -121,7 +122,7 @@ const MemberMaintain: React.FC<[]> = () => {
<
Button
type=
"link"
>
冻结
{
intl
.
formatMessage
({
id
:
'member.management.maintain.query.freeze'
})
}
</
Button
>
</
Link
>
)
}
...
...
@@ -130,7 +131,7 @@ const MemberMaintain: React.FC<[]> = () => {
<
Button
type=
"link"
>
解冻
{
intl
.
formatMessage
({
id
:
'member.management.maintain.query.unfreeze'
})
}
</
Button
>
</
Link
>
)
}
...
...
@@ -139,7 +140,7 @@ const MemberMaintain: React.FC<[]> = () => {
<
Button
type=
"link"
>
整改
{
intl
.
formatMessage
({
id
:
'member.management.maintain.query.correct'
})
}
</
Button
>
</
Link
>
)
}
...
...
@@ -148,7 +149,7 @@ const MemberMaintain: React.FC<[]> = () => {
<
Button
type=
"link"
>
淘汰
{
intl
.
formatMessage
({
id
:
'member.management.maintain.query.eliminate'
})
}
</
Button
>
</
Link
>
)
}
...
...
@@ -157,7 +158,7 @@ const MemberMaintain: React.FC<[]> = () => {
<
Button
type=
"link"
>
黑名单
{
intl
.
formatMessage
({
id
:
'member.management.maintain.query.black'
})
}
</
Button
>
</
Link
>
)
}
...
...
src/pages/member/memberMaintain/schema.ts
View file @
d0b257a9
...
...
@@ -2,12 +2,15 @@
* @Author: XieZhiXiong
* @Date: 2021-06-04 11:49:18
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-
06-04 11:49:18
* @LastEditTime: 2021-
11-29 16:52:00
* @Description:
*/
import
{
getIntl
}
from
'umi'
;
import
{
ISchema
}
from
'@formily/antd'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
const
intl
=
getIntl
();
export
const
querySchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
...
...
@@ -19,9 +22,9 @@ export const querySchema: ISchema = {
type
:
'string'
,
'x-component'
:
'Search'
,
'x-component-props'
:
{
placeholder
:
'搜索'
,
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.maintain.query.name.placeholder'
})
,
align
:
'flex-left'
,
tip
:
'输入 会员名称 进行搜索'
,
tip
:
intl
.
formatMessage
({
id
:
'member.management.maintain.query.name.placeholder-tip'
})
,
},
},
[
FORM_FILTER_PATH
]:
{
...
...
@@ -39,7 +42,7 @@ export const querySchema: ISchema = {
default
:
undefined
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
'会员类型(全部)'
,
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.maintain.query.memberTypeId.placeholder'
})
,
allowClear
:
true
,
},
},
...
...
@@ -48,7 +51,7 @@ export const querySchema: ISchema = {
default
:
undefined
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
'会员角色(全部)'
,
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.maintain.query.roleId.placeholde'
}),
allowClear
:
true
,
},
},
...
...
@@ -57,7 +60,7 @@ export const querySchema: ISchema = {
default
:
undefined
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
'会员等级(全部)'
,
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.maintain.query.level.placeholder'
}),
allowClear
:
true
,
},
},
...
...
@@ -66,7 +69,7 @@ export const querySchema: ISchema = {
default
:
undefined
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
'申请来源(全部)'
,
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.maintain.query.source.placeholder'
})
,
allowClear
:
true
,
},
},
...
...
@@ -75,7 +78,7 @@ export const querySchema: ISchema = {
default
:
undefined
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
'内部状态(全部)'
,
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.maintain.query.innerStatus.placeholder'
})
,
allowClear
:
true
,
},
},
...
...
@@ -84,7 +87,7 @@ export const querySchema: ISchema = {
default
:
undefined
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
'外部状态(全部)'
,
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.maintain.query.outerStatus.placeholder'
})
,
allowClear
:
true
,
},
},
...
...
@@ -93,7 +96,7 @@ export const querySchema: ISchema = {
enum
:
[],
default
:
undefined
,
'x-component-props'
:
{
placeholder
:
'会员状态(全部)'
,
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.maintain.query.status.placeholder'
})
,
allowClear
:
true
,
},
},
...
...
@@ -102,7 +105,7 @@ export const querySchema: ISchema = {
default
:
''
,
'x-component'
:
'dateSelect'
,
'x-component-props'
:
{
placeholder
:
'时间范围(全部)'
,
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.maintain.query.date.placeholder'
}),
allowClear
:
true
,
},
},
...
...
@@ -112,7 +115,7 @@ export const querySchema: ISchema = {
span
:
1
,
},
'x-component-props'
:
{
children
:
'查询'
,
children
:
intl
.
formatMessage
({
id
:
'member.management.maintain.query.query'
})
,
},
},
},
...
...
src/pages/member/memberMaintain/unfreeze/index.tsx
View file @
d0b257a9
...
...
@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2021-06-04 10:36:43
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-11-
17 18:04:34
* @LastEditTime: 2021-11-
29 18:32:29
* @Description: 解除解冻
*/
import
React
,
{
useState
,
useEffect
}
from
'react'
;
...
...
@@ -13,7 +13,7 @@ import {
Col
,
Spin
,
}
from
'antd'
;
import
{
history
}
from
'umi'
;
import
{
history
,
useIntl
}
from
'umi'
;
import
{
StopOutlined
}
from
'@ant-design/icons'
;
import
{
createFormActions
,
...
...
@@ -56,6 +56,8 @@ const MemberMaintainUnfreeze: React.FC<{}> = () => {
const
[
infoLoading
,
setInfoLoaading
]
=
useState
(
false
);
const
[
confirmLoading
,
setConfirmLoading
]
=
useState
(
false
);
const
intl
=
useIntl
();
const
getBasicInfo
=
()
=>
{
if
(
!
validateId
)
{
return
;
...
...
@@ -100,19 +102,15 @@ const MemberMaintainUnfreeze: React.FC<{}> = () => {
const
anchorsArr
=
[
{
key
:
'verifySteps'
,
name
:
'流转进度'
,
},
{
key
:
'basicInfo'
,
name
:
'基本信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.basic'
})
,
},
(
memberInfo
?.
memberTypeEnum
===
MEMBER_TYPE_CHANNEL_CORPORATE
||
memberInfo
?.
memberTypeEnum
===
MEMBER_TYPE_CHANNEL_INDIVIDUAL
?
{
key
:
'channelInfo'
,
name
:
'渠道信息'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.channel'
})
,
}
:
null
),
...
...
@@ -126,7 +124,7 @@ const MemberMaintainUnfreeze: React.FC<{}> = () => {
),
{
key
:
'flowRecords'
,
name
:
'流转记录'
,
name
:
intl
.
formatMessage
({
id
:
'member.management.maintain.flowRecords'
})
,
},
].
filter
(
Boolean
);
...
...
@@ -149,7 +147,7 @@ const MemberMaintainUnfreeze: React.FC<{}> = () => {
icon=
{
<
StopOutlined
/>
}
onClick=
{
()
=>
setModalVisible
(
true
)
}
>
解冻
{
intl
.
formatMessage
({
id
:
'member.management.maintain.unfreeze.unfreeze'
})
}
</
Button
>
)
}
>
...
...
@@ -238,7 +236,7 @@ const MemberMaintainUnfreeze: React.FC<{}> = () => {
{
/* 解冻相关 */
}
<
Modal
title=
"会员解冻"
title=
{
intl
.
formatMessage
({
id
:
'member.management.maintain.unfreeze.unfreeze.title'
})
}
visible=
{
modalVisible
}
confirmLoading=
{
confirmLoading
}
onOk=
{
()
=>
formActions
.
submit
()
}
...
...
@@ -247,15 +245,15 @@ const MemberMaintainUnfreeze: React.FC<{}> = () => {
>
<
NiceForm
previewPlaceholder=
"' '"
actions=
{
formActions
}
schema=
{
freezeSchema
}
effects=
{
(
$
,
{
setFieldState
})
=>
{
FormEffectHooks
.
onFieldInit$
(
'reason'
).
subscribe
(()
=>
{
setFieldState
(
'reason'
,
fieldState
=>
{
fieldState
.
props
.
title
=
'会员解冻原因'
;
fieldState
.
props
.
title
=
intl
.
formatMessage
({
id
:
'member.management.maintain.unfreeze.unfreeze.form.reason'
})
;
});
});
}
}
actions=
{
formActions
}
schema=
{
freezeSchema
}
onSubmit=
{
handleSubmit
}
/>
</
Modal
>
...
...
src/pages/member/memberMaintain/unfreeze/schema.ts
View file @
d0b257a9
...
...
@@ -2,11 +2,14 @@
* @Author: XieZhiXiong
* @Date: 2021-06-04 10:39:42
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-
06-04 10:47:51
* @LastEditTime: 2021-
11-29 19:42:56
* @Description:
*/
import
{
getIntl
}
from
'umi'
;
import
{
ISchema
}
from
'@formily/antd'
;
const
intl
=
getIntl
();
export
const
unfriendModalSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
...
...
@@ -19,7 +22,7 @@ export const unfriendModalSchema: ISchema = {
properties
:
{
date
:
{
type
:
'string'
,
title
:
'解除日期'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.unfreeze.unfreeze.form.date'
})
,
'x-component'
:
'DatePicker'
,
'x-component-props'
:
{
placeholder
:
'请选择'
,
...
...
@@ -30,23 +33,23 @@ export const unfriendModalSchema: ISchema = {
'x-rules'
:
[
{
required
:
true
,
message
:
'请选择解除日期'
,
message
:
intl
.
formatMessage
({
id
:
'member.management.maintain.unfreeze.unfreeze.form.date.rules-required'
}),
},
],
},
reason
:
{
type
:
'string'
,
title
:
'解除原因'
,
title
:
intl
.
formatMessage
({
id
:
'member.management.maintain.unfreeze.unfreeze.form.reason'
})
,
'x-component'
:
'Textarea'
,
'x-component-props'
:
{
placeholder
:
'在此输入你的内容,最长120个字符,60个汉字'
,
placeholder
:
intl
.
formatMessage
({
id
:
'member.management.maintain.unfreeze.unfreeze.form.placeholder-reason'
})
,
maxLength
:
60
,
rows
:
5
,
},
'x-rules'
:
[
{
required
:
true
,
message
:
'请填写原因'
,
message
:
intl
.
formatMessage
({
id
:
'member.management.maintain.unfreeze.unfreeze.form.reason.rules-required'
}),
},
{
limitByte
:
true
,
// 自定义校验规则
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment