Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-admin
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
project
jinfa-admin
Commits
63517686
Commit
63517686
authored
Sep 10, 2020
by
XieZhiXiong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
关闭按钮判断条件
parent
97ac30eb
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
290 additions
and
57 deletions
+290
-57
memberAbility.ts
config/routes/memberAbility.ts
+7
-0
menu.ts
src/locales/zh-CN/menu.ts
+3
-2
frozen.less
src/pages/member/memberMaintain/frozen.less
+0
-0
frozen.tsx
src/pages/member/memberMaintain/frozen.tsx
+199
-0
index.tsx
src/pages/member/memberMaintain/index.tsx
+0
-0
index.tsx
src/pages/member/memberMaintain/schema/index.tsx
+75
-47
index.tsx
src/pages/member/memberPrConfirm/index.tsx
+6
-8
No files found.
config/routes/memberAbility.ts
View file @
63517686
...
@@ -30,6 +30,13 @@ const memberAbility =
...
@@ -30,6 +30,13 @@ const memberAbility =
component
:
'@/pages/member/memberMaintain/memberDetail'
,
component
:
'@/pages/member/memberMaintain/memberDetail'
,
},
},
{
{
path
:
'/memberAbility/manage/frozen'
,
name
:
'maintainFrozen'
,
key
:
'maintainFrozen'
,
hideInMenu
:
true
,
component
:
'@/pages/member/memberMaintain/frozen'
,
},
{
path
:
'/memberAbility/manage/memberPrSubmit'
,
path
:
'/memberAbility/manage/memberPrSubmit'
,
name
:
'memberPrSubmit'
,
name
:
'memberPrSubmit'
,
component
:
'@/pages/member/memberPrSubmit/index'
,
component
:
'@/pages/member/memberPrSubmit/index'
,
...
...
src/locales/zh-CN/menu.ts
View file @
63517686
/*
/*
* @Author: LeeJiancong
* @Author: LeeJiancong
* @Date: 2020-08-04 15:05:52
* @Date: 2020-08-04 15:05:52
* @LastEditors:
LeeJianc
ong
* @LastEditors:
XieZhiXi
ong
* @LastEditTime: 2020-0
8-07 16:07:31
* @LastEditTime: 2020-0
9-10 11:28:44
*/
*/
import
utils
from
'@/utils'
import
utils
from
'@/utils'
import
menu
from
'../en-US/menu'
import
menu
from
'../en-US/menu'
...
@@ -62,6 +62,7 @@ export default {
...
@@ -62,6 +62,7 @@ export default {
'menu.memberAbility.memberMaintain'
:
'会员维护'
,
'menu.memberAbility.memberMaintain'
:
'会员维护'
,
'menu.memberAbility.addMember'
:
'新增会员'
,
'menu.memberAbility.addMember'
:
'新增会员'
,
'menu.memberAbility.memberDetail'
:
'会员详情'
,
'menu.memberAbility.memberDetail'
:
'会员详情'
,
'menu.memberAbility.maintainFrozen'
:
'会员冻结'
,
'menu.memberAbility.memberPrSubmit'
:
'待提交审核'
,
'menu.memberAbility.memberPrSubmit'
:
'待提交审核'
,
'menu.memberAbility.auditPrSubmit'
:
'待提交审核详情'
,
'menu.memberAbility.auditPrSubmit'
:
'待提交审核详情'
,
'menu.memberAbility.memberPr1'
:
'待审核(一级)'
,
'menu.memberAbility.memberPr1'
:
'待审核(一级)'
,
...
...
src/pages/member/memberMaintain/frozen.less
0 → 100644
View file @
63517686
src/pages/member/memberMaintain/frozen.tsx
0 → 100644
View file @
63517686
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
history
}
from
'umi'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
PageHeader
,
Tag
,
Descriptions
,
Button
,
Modal
,
Badge
,
Spin
}
from
'antd'
;
import
{
SettingOutlined
,
StopOutlined
}
from
'@ant-design/icons'
;
import
{
createFormActions
,
FormEffectHooks
}
from
'@formily/antd'
;
import
{
STATUS_COLOR_MAP
,
STATUS_COLOR_TXT
}
from
'../constant'
;
import
{
usePageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
GetMemberMaintenanceDetailBasicResponse
}
from
'@/services/MemberApi'
;
import
{
MEMBER_STATUS_NORMAL
,
MEMBER_STATUS_FROZEN
,
MEMBER_OUTER_STATUS
,
}
from
'@/constants'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
auditModalSchema
}
from
'./schema'
;
import
{
MEMBER_STATUS_TAG_MAP
,
MEMBER_INNER_STATUS_BADGE_COLOR
,
MEMBER_OUTER_STATUS_TYPE
,
}
from
'../constant'
;
import
HeadInfo
from
'../components/HeadInfo'
;
import
AuditProcess
from
'../components/AuditProcess'
;
import
BasicInfo
from
'../components/BasicInfo'
;
import
StatusTag
from
'../components/StatusTag'
;
import
styles
from
'./index.less'
;
const
formActions
=
createFormActions
();
const
Frozen
:
React
.
FC
<
{}
>
=
()
=>
{
const
{
pageStatus
,
id
,
validateId
}
=
usePageStatus
();
const
[
basicInfo
,
setBasicInfo
]
=
useState
<
GetMemberMaintenanceDetailBasicResponse
>
();
const
[
modalVisible
,
setModalVisible
]
=
useState
(
false
);
const
[
infoLoading
,
setInfoLoaading
]
=
useState
(
false
);
const
[
confirmLoading
,
setConfirmLoading
]
=
useState
(
false
);
const
getBasicInfo
=
()
=>
{
if
(
!
id
||
!
validateId
)
{
return
;
}
setInfoLoaading
(
true
);
PublicApi
.
getMemberMaintenanceDetailBasic
({
memberId
:
id
,
validateId
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setBasicInfo
(
res
.
data
);
}
}).
finally
(()
=>
{
setInfoLoaading
(
false
);
});
};
useEffect
(()
=>
{
getBasicInfo
();
},
[]);
// 冻结与解冻
const
handleSubmit
=
(
values
:
{
reason
:
string
},
oldStatus
)
=>
{
setConfirmLoading
(
true
);
return
PublicApi
.
postMemberMaintenanceStatus
({
memberId
:
id
,
validateId
:
validateId
,
status
:
oldStatus
===
MEMBER_STATUS_NORMAL
?
MEMBER_STATUS_FROZEN
:
MEMBER_STATUS_NORMAL
,
remark
:
values
.
reason
||
''
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
setModalVisible
(
false
);
getBasicInfo
();
}).
finally
(()
=>
{
setConfirmLoading
(
false
);
});
};
return
(
<
Spin
spinning=
{
infoLoading
}
>
<
PageHeaderWrapper
title=
{
<>
<
PageHeader
style=
{
{
padding
:
'0'
}
}
onBack=
{
()
=>
history
.
goBack
()
}
title=
{
<
HeadInfo
info=
{
{
name
:
basicInfo
?.
name
,
level
:
1
,
}
}
/>
}
extra=
{
(
<>
{
basicInfo
&&
(
basicInfo
.
status
===
MEMBER_STATUS_NORMAL
?
(
<
Button
icon=
{
<
StopOutlined
/>
}
onClick=
{
()
=>
setModalVisible
(
true
)
}
>
冻结
</
Button
>
)
:
(
<
Button
type=
"primary"
icon=
{
<
SettingOutlined
/>
}
onClick=
{
()
=>
setModalVisible
(
true
)
}
>
解冻
</
Button
>
)
)
}
</>
)
}
>
<
Descriptions
size=
"small"
column=
{
3
}
style=
{
{
padding
:
'0 32px'
,
}
}
>
<
Descriptions
.
Item
label=
"会员类型"
>
{
basicInfo
?.
memberTypeName
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"会员角色"
span=
{
2
}
>
{
basicInfo
?.
roleName
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"会员状态"
>
<
StatusTag
type=
{
MEMBER_STATUS_TAG_MAP
[
basicInfo
?.
status
]
}
title=
{
basicInfo
?.
statusName
}
/>
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"外部状态"
>
<
StatusTag
type=
{
MEMBER_OUTER_STATUS_TYPE
[
basicInfo
?.
outerStatus
]
}
title=
{
basicInfo
?.
outerStatusName
}
/>
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"内部状态"
>
<
Badge
color=
{
MEMBER_INNER_STATUS_BADGE_COLOR
[
basicInfo
?.
innerStatus
]
}
text=
{
basicInfo
?.
innerStatusName
}
/>
</
Descriptions
.
Item
>
</
Descriptions
>
</
PageHeader
>
</>
}
>
<
div
style=
{
{
marginBottom
:
24
,
}
}
>
<
AuditProcess
outerVerifyCurrent=
{
basicInfo
?.
currentOuterStep
}
innerVerifyCurrent=
{
basicInfo
?.
currentInnerStep
}
outerVerifySteps=
{
basicInfo
?.
outerVerifySteps
}
innerVerifySteps=
{
basicInfo
?.
innerVerifySteps
}
/>
</
div
>
<
BasicInfo
basic=
{
{
account
:
basicInfo
?.
account
,
phone
:
basicInfo
?.
phone
,
email
:
basicInfo
?.
email
,
created
:
basicInfo
?.
createTime
,
}
}
channel=
{
{
memberType
:
basicInfo
?.
memberTypeEnum
,
level
:
basicInfo
?.
channelLevelTag
,
type
:
basicInfo
?.
channelTypeName
,
areas
:
basicInfo
?.
areas
,
desc
:
basicInfo
?.
remark
,
}
}
extra=
{
basicInfo
?.
groups
}
outerHistory=
{
basicInfo
?.
outerHistory
}
innerHistory=
{
basicInfo
?.
innerHistory
}
/>
<
Modal
title=
{
basicInfo
?
basicInfo
.
status
===
MEMBER_STATUS_NORMAL
?
'会员冻结'
:
'会员解冻'
:
''
}
visible=
{
modalVisible
}
confirmLoading=
{
confirmLoading
}
onOk=
{
()
=>
formActions
.
submit
()
}
onCancel=
{
()
=>
setModalVisible
(
false
)
}
destroyOnClose
>
<
NiceForm
previewPlaceholder=
"' '"
effects=
{
(
$
,
{
setFieldState
})
=>
{
FormEffectHooks
.
onFieldInit$
(
'reason'
).
subscribe
(
state
=>
{
setFieldState
(
'reason'
,
fieldState
=>
{
fieldState
.
props
.
title
=
basicInfo
?
`会员${basicInfo.status === MEMBER_STATUS_NORMAL ? '冻结' : '解冻'}原因`
:
''
;
});
});
}
}
actions=
{
formActions
}
schema=
{
auditModalSchema
}
onSubmit=
{
value
=>
handleSubmit
(
value
,
basicInfo
.
status
)
}
/>
</
Modal
>
</
PageHeaderWrapper
>
</
Spin
>
);
};
export
default
Frozen
;
src/pages/member/memberMaintain/index.tsx
View file @
63517686
This diff is collapsed.
Click to expand it.
src/pages/member/memberMaintain/schema/index.tsx
View file @
63517686
...
@@ -22,7 +22,7 @@ export const importSchema: ISchema = {
...
@@ -22,7 +22,7 @@ export const importSchema: ISchema = {
children
:
'{{controllerBtns}}'
,
children
:
'{{controllerBtns}}'
,
},
},
},
},
cond
:
{
name
:
{
type
:
'string'
,
type
:
'string'
,
'x-component'
:
'Search'
,
'x-component'
:
'Search'
,
'x-component-props'
:
{
'x-component-props'
:
{
...
@@ -35,9 +35,6 @@ export const importSchema: ISchema = {
...
@@ -35,9 +35,6 @@ export const importSchema: ISchema = {
type
:
'object'
,
type
:
'object'
,
'x-component'
:
'flex-layout'
,
'x-component'
:
'flex-layout'
,
'x-component-props'
:
{
'x-component-props'
:
{
rowStyle
:
{
flexWrap
:
'nowrap'
,
},
colStyle
:
{
colStyle
:
{
marginLeft
:
20
,
marginLeft
:
20
,
},
},
...
@@ -45,42 +42,75 @@ export const importSchema: ISchema = {
...
@@ -45,42 +42,75 @@ export const importSchema: ISchema = {
properties
:
{
properties
:
{
memberType
:
{
memberType
:
{
type
:
'string'
,
type
:
'string'
,
default
:
0
,
default
:
undefined
,
enum
:
[],
enum
:
[],
'x-component-props'
:
{},
'x-component-props'
:
{
placeholder
:
'会员类型(全部)'
,
allowClear
:
true
,
},
},
},
roleId
:
{
roleId
:
{
type
:
'string'
,
type
:
'string'
,
default
:
0
,
default
:
undefined
,
enum
:
[],
enum
:
[],
'x-component-props'
:
{},
'x-component-props'
:
{
placeholder
:
'会员角色(全部)'
,
allowClear
:
true
,
},
},
},
level
:
{
level
:
{
type
:
'string'
,
type
:
'string'
,
default
:
0
,
default
:
undefined
,
enum
:
[],
enum
:
[],
'x-component-props'
:
{},
'x-component-props'
:
{
placeholder
:
'会员等级(全部)'
,
allowClear
:
true
,
},
},
},
source
:
{
source
:
{
type
:
'string'
,
type
:
'string'
,
default
:
0
,
default
:
undefined
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
'申请来源(全部)'
,
allowClear
:
true
,
},
},
innerStatus
:
{
type
:
'string'
,
default
:
undefined
,
enum
:
[],
enum
:
[],
'x-component-props'
:
{},
'x-component-props'
:
{
placeholder
:
'内部状态(全部)'
,
allowClear
:
true
,
},
},
},
timeRange
:
{
outerStatus
:
{
type
:
'string'
,
type
:
'string'
,
default
:
0
,
default
:
undefined
,
enum
:
[
enum
:
[],
{
label
:
'时间范围(全部)'
,
value
:
0
},
'x-component-props'
:
{
{
label
:
'今天'
,
value
:
1
},
placeholder
:
'外部状态(全部)'
,
{
label
:
'一周内'
,
value
:
2
},
allowClear
:
true
,
{
label
:
'一个月内'
,
value
:
3
},
},
{
label
:
'三个月内'
,
value
:
4
},
},
{
label
:
'六个月内'
,
value
:
5
},
status
:
{
{
label
:
'一年内'
,
value
:
6
},
type
:
'string'
,
{
label
:
'一年前'
,
value
:
7
},
enum
:
[],
],
default
:
undefined
,
'x-component-props'
:
{},
'x-component-props'
:
{
placeholder
:
'会员状态(全部)'
,
allowClear
:
true
,
},
},
'[startDate, endDate]'
:
{
type
:
'string'
,
default
:
''
,
'x-component'
:
'dateSelect'
,
'x-component-props'
:
{
placeholder
:
'时间范围(全部)'
,
allowClear
:
true
,
},
},
},
submit
:
{
submit
:
{
'x-component'
:
'Submit'
,
'x-component'
:
'Submit'
,
...
@@ -98,32 +128,30 @@ export const importSchema: ISchema = {
...
@@ -98,32 +128,30 @@ export const importSchema: ISchema = {
},
},
};
};
export
const
auditModalSchema
=
props
=>
{
export
const
auditModalSchema
:
ISchema
=
{
let
modalSchema
:
ISchema
=
{
type
:
'object'
,
type
:
'object'
,
properties
:
{
properties
:
{
MEGA_LAYOUT
:
{
MEGA_LAYOUT
:
{
type
:
'object'
,
type
:
'object'
,
'x-component'
:
'mega-layout'
,
'x-component'
:
'mega-layout'
,
'x-component-props'
:
{
'x-component-props'
:
{
labelAlign
:
'top'
,
labelAlign
:
'top'
,
},
},
properties
:
{
properties
:
{
reason
:
{
remark
:
{
type
:
'string'
,
type
:
'string'
,
title
:
'会员解冻原因'
,
title
:
`会员
${
props
.
status
===
1
?
'解冻'
:
'冻结'
}
原因`
,
'x-component'
:
'textarea'
,
'x-component'
:
'textarea'
,
'x-component-props'
:
{
'x-component-props'
:
{
placeholder
:
'在此输入你的内容,最长120个字符,60个汉字'
,
placeholder
:
'在此输入你的内容,最长120个字符,60个汉字'
,
maxLength
:
60
,
maxLength
:
60
,
rows
:
5
,
},
'x-rules'
:
[{
required
:
true
,
message
:
'请填写审核不通过原因'
}],
},
},
'x-rules'
:
[{
required
:
true
,
message
:
'请填写原因'
}],
},
},
},
},
},
},
};
},
return
modalSchema
;
};
};
const
getCompnentValue
=
(
elements
:
any
)
=>
{
const
getCompnentValue
=
(
elements
:
any
)
=>
{
...
...
src/pages/member/memberPrConfirm/index.tsx
View file @
63517686
...
@@ -115,14 +115,12 @@ const MemberPrConfirm: React.FC<{}> = props => {
...
@@ -115,14 +115,12 @@ const MemberPrConfirm: React.FC<{}> = props => {
align
:
'center'
,
align
:
'center'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
render
:
(
text
:
any
,
record
:
any
)
=>
(
<>
<>
{
record
.
innerStatus
!==
MEMBER_INNER_STATUS_SUCCESS
&&
(
<
Button
<
Button
type=
"link"
type=
"link"
onClick=
{
()
=>
handleJumpAudit
(
record
)
}
onClick=
{
()
=>
handleJumpAudit
(
record
)
}
>
>
确认审核结果
确认审核结果
</
Button
>
</
Button
>
)
}
</>
</>
),
),
},
},
...
...
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