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
shenshaokai
jinfa-platform
Commits
79f9affe
Commit
79f9affe
authored
Mar 10, 2022
by
XieZhiXiong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 处理paas平台勾选开启多租户业务展示逻辑
parent
df76b62b
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
154 additions
and
58 deletions
+154
-58
useQueryComingEffects.ts
src/pages/member/common/effects/useQueryComingEffects.ts
+28
-0
useBusinessEffects.ts
...ule/components/FlowRuleForm/effects/useBusinessEffects.ts
+12
-0
archiveInfo.tsx
src/pages/member/memberMaintain/detailed/archiveInfo.tsx
+12
-9
index.tsx
src/pages/member/memberPrComingClassify/index.tsx
+9
-4
index.tsx
src/pages/member/memberPrComingInvestigate/index.tsx
+9
-4
index.tsx
src/pages/member/memberPrVerifyChange1/index.tsx
+9
-4
index.tsx
src/pages/member/memberPrVerifyChange2/index.tsx
+9
-4
index.tsx
src/pages/member/memberPrVerifyChangeConfirm/index.tsx
+9
-4
index.tsx
src/pages/member/memberPrVerifyComing1/index.tsx
+9
-4
index.tsx
src/pages/member/memberPrVerifyComing2/index.tsx
+9
-4
index.tsx
src/pages/member/memberPrVerifyComingConfirm/index.tsx
+9
-4
index.tsx
src/pages/member/memberPrVerifyComingData/index.tsx
+9
-4
index.tsx
...pages/member/memberPrVerifyComingQualifications/index.tsx
+9
-4
archiveInfo.tsx
src/pages/member/memberQuery/detailed/archiveInfo.tsx
+12
-9
No files found.
src/pages/member/common/effects/useQueryComingEffects.ts
0 → 100644
View file @
79f9affe
/*
* @Description: Saas列表查询条件 effects
*/
import
{
FormEffectHooks
}
from
'@formily/antd'
;
import
{
useLinkageUtils
}
from
'@/utils/formEffectUtils'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
BASE_CONFIG
from
'@/../config/base.config.json'
;
const
{
onFormInit$
,
}
=
FormEffectHooks
;
export
const
useQueryComingEffects
=
(
context
,
actions
)
=>
{
const
{
setFieldState
,
}
=
actions
;
const
linkage
=
useLinkageUtils
();
onFormInit$
().
subscribe
(()
=>
{
if
(
BASE_CONFIG
.
global
.
siteInfo
.
enableMultiTenancy
)
{
setFieldState
(
'name'
,
(
state
)
=>
{
state
.
props
[
'x-component-props'
].
advanced
=
false
;
});
linkage
.
hide
(
`
${
FORM_FILTER_PATH
}
.*`
);
}
});
}
\ No newline at end of file
src/pages/member/memberFlowRule/components/FlowRuleForm/effects/useBusinessEffects.ts
View file @
79f9affe
...
...
@@ -6,10 +6,12 @@
* @Description:
*/
import
{
FormEffectHooks
,
FormPath
,
ISchemaFormActions
,
ISchemaFormAsyncActions
}
from
'@formily/antd'
;
import
BASE_CONFIG
from
'@/../config/base.config.json'
;
const
{
onFieldValueChange$
,
onFieldInputChange$
,
onFormInit$
,
}
=
FormEffectHooks
;
export
const
useBusinessEffects
=
(
context
,
actions
:
(
ISchemaFormActions
|
ISchemaFormAsyncActions
))
=>
{
...
...
@@ -29,4 +31,13 @@ export const useBusinessEffects = (context, actions: (ISchemaFormActions | ISche
// 清空
setFieldValue
(
'configIds'
,
[]);
});
onFormInit$
().
subscribe
(()
=>
{
// 【PAAS-站点管理】有勾选【SAAS多租户部署】,隐藏【平台注册资料】tab页
if
(
BASE_CONFIG
.
global
.
siteInfo
.
enableMultiTenancy
)
{
setFieldState
(
'tabs'
,
state
=>
{
state
.
props
[
'x-component-props'
].
hiddenKeys
=
[
'tab-3'
];
});
}
});
}
\ No newline at end of file
src/pages/member/memberMaintain/detailed/archiveInfo.tsx
View file @
79f9affe
...
...
@@ -10,6 +10,7 @@ import { useIntl } from 'umi';
import
{
Row
,
Col
,
Spin
}
from
'antd'
;
import
{
usePageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
getMemberAbilityMaintenanceDetailAppraisalPage
,
getMemberAbilityMaintenanceDetailInspectPage
,
getMemberAbilityMaintenanceDetailRecord
,
GetMemberAbilityMaintenanceDetailRecordResponse
,
getMemberAbilityMaintenanceDetailRectifyPage
}
from
'@/services/MemberV2Api'
;
import
BASE_CONFIG
from
'@/../config/base.config.json'
;
import
{
EditableColumns
}
from
'@/components/PolymericTable/interface'
;
import
AnchorPage
from
'@/components/AnchorPage'
;
import
MemberDocCategory
from
'../../components/MemberDocCategory'
;
...
...
@@ -312,15 +313,17 @@ const MemberArchiveInfo = () => {
</
Col
>
{
/* 整改信息 */
}
<
Col
span=
{
24
}
>
<
AnchorPage
.
Item
itemKey=
"rectifyInfo"
>
<
MemberDocTableList
<
RectifyListItemType
>
title=
{
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.rectify'
})
}
columns=
{
RectifyColumns
}
fetchList=
{
getRectifyList
}
/
>
</
AnchorPage
.
Item
>
</
Col
>
{
!
BASE_CONFIG
.
global
.
siteInfo
.
enableMultiTenancy
&&
(
<
Col
span=
{
24
}
>
<
AnchorPage
.
Item
itemKey=
"rectifyInfo"
>
<
MemberDocTableList
<
RectifyListItemType
>
title=
{
intl
.
formatMessage
({
id
:
'member.management.maintain.detail.archivalInfo.rectify'
})
}
columns=
{
RectifyColumns
}
fetchList=
{
getRectifyList
}
/
>
</
AnchorPage
.
Item
>
</
Col
>
)
}
</
Row
>
</
Spin
>
);
...
...
src/pages/member/memberPrComingClassify/index.tsx
View file @
79f9affe
...
...
@@ -18,8 +18,10 @@ import { FORM_FILTER_PATH } from '@/formSchema/const';
import
{
useAsyncInitSelect
}
from
'@/formSchema/effects/useAsyncInitSelect'
;
import
{
getMemberDepositClassifyPage
,
getMemberDepositPageConditions
}
from
'@/services/MemberV2Api'
;
import
useSpliceArray
from
'@/hooks/useSpliceArray'
;
import
BASE_CONFIG
from
'@/../config/base.config.json'
;
import
comingSchema
from
'../common/schames/comingSchema'
;
import
verifyComingColumn
from
'../common/columns/verifyComingColumn'
;
import
{
useQueryComingEffects
}
from
'../common/effects/useQueryComingEffects'
;
const
formActions
=
createFormActions
();
...
...
@@ -109,10 +111,13 @@ const MemberPrComingClassify: React.FC<{}> = props => {
'name'
,
FORM_FILTER_PATH
,
);
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
if
(
!
BASE_CONFIG
.
global
.
siteInfo
.
enableMultiTenancy
)
{
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
}
useQueryComingEffects
(
$
,
actions
);
}
}
schema=
{
comingSchema
}
/>
...
...
src/pages/member/memberPrComingInvestigate/index.tsx
View file @
79f9affe
...
...
@@ -18,8 +18,10 @@ import { getMemberDepositInspectPage, getMemberDepositPageConditions } from '@/s
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
useAsyncInitSelect
}
from
'@/formSchema/effects/useAsyncInitSelect'
;
import
useSpliceArray
from
'@/hooks/useSpliceArray'
;
import
BASE_CONFIG
from
'@/../config/base.config.json'
;
import
comingSchema
from
'../common/schames/comingSchema'
;
import
verifyComingColumn
from
'../common/columns/verifyComingColumn'
;
import
{
useQueryComingEffects
}
from
'../common/effects/useQueryComingEffects'
;
const
formActions
=
createFormActions
();
...
...
@@ -109,10 +111,13 @@ const MemberPrComingInvestigate: React.FC<{}> = props => {
'name'
,
FORM_FILTER_PATH
,
);
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
if
(
!
BASE_CONFIG
.
global
.
siteInfo
.
enableMultiTenancy
)
{
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
}
useQueryComingEffects
(
$
,
actions
);
}
}
schema=
{
comingSchema
}
/>
...
...
src/pages/member/memberPrVerifyChange1/index.tsx
View file @
79f9affe
...
...
@@ -19,8 +19,10 @@ import { FORM_FILTER_PATH } from '@/formSchema/const';
import
{
useAsyncInitSelect
}
from
'@/formSchema/effects/useAsyncInitSelect'
;
import
{
getMemberModifyGradeOnePage
,
getMemberModifyPageConditions
,
postMemberModifyGradeOneBatch
}
from
'@/services/MemberV2Api'
;
import
useSpliceArray
from
'@/hooks/useSpliceArray'
;
import
BASE_CONFIG
from
'@/../config/base.config.json'
;
import
verifyComingSchema
from
'../common/schames/verifyComingSchema'
;
import
verifyChangeColumn
from
'../common/columns/verifyChangeColumn'
;
import
{
useQueryComingEffects
}
from
'../common/effects/useQueryComingEffects'
;
const
{
confirm
}
=
Modal
;
...
...
@@ -160,10 +162,13 @@ const MemberPrVerifyChange1: React.FC<{}> = props => {
'name'
,
FORM_FILTER_PATH
,
);
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
if
(
!
BASE_CONFIG
.
global
.
siteInfo
.
enableMultiTenancy
)
{
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
}
useQueryComingEffects
(
$
,
actions
);
}
}
schema=
{
verifyComingSchema
}
/>
...
...
src/pages/member/memberPrVerifyChange2/index.tsx
View file @
79f9affe
...
...
@@ -19,8 +19,10 @@ import { FORM_FILTER_PATH } from '@/formSchema/const';
import
{
useAsyncInitSelect
}
from
'@/formSchema/effects/useAsyncInitSelect'
;
import
{
getMemberModifyGradeTwoPage
,
postMemberModifyGradeTwoBatch
,
getMemberModifyPageConditions
}
from
'@/services/MemberV2Api'
;
import
useSpliceArray
from
'@/hooks/useSpliceArray'
;
import
BASE_CONFIG
from
'@/../config/base.config.json'
;
import
verifyComingSchema
from
'../common/schames/verifyComingSchema'
;
import
verifyChangeColumn
from
'../common/columns/verifyChangeColumn'
;
import
{
useQueryComingEffects
}
from
'../common/effects/useQueryComingEffects'
;
const
{
confirm
}
=
Modal
;
...
...
@@ -160,10 +162,13 @@ const MemberPrVerifyChange2: React.FC<{}> = props => {
'name'
,
FORM_FILTER_PATH
,
);
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
if
(
!
BASE_CONFIG
.
global
.
siteInfo
.
enableMultiTenancy
)
{
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
}
useQueryComingEffects
(
$
,
actions
);
}
}
schema=
{
verifyComingSchema
}
/>
...
...
src/pages/member/memberPrVerifyChangeConfirm/index.tsx
View file @
79f9affe
...
...
@@ -19,8 +19,10 @@ import { FORM_FILTER_PATH } from '@/formSchema/const';
import
{
useAsyncInitSelect
}
from
'@/formSchema/effects/useAsyncInitSelect'
;
import
{
getMemberModifyConfirmPage
,
getMemberModifyPageConditions
,
postMemberModifyConfirmBatch
}
from
'@/services/MemberV2Api'
;
import
useSpliceArray
from
'@/hooks/useSpliceArray'
;
import
BASE_CONFIG
from
'@/../config/base.config.json'
;
import
verifyComingSchema
from
'../common/schames/verifyComingSchema'
;
import
verifyChangeColumn
from
'../common/columns/verifyChangeColumn'
;
import
{
useQueryComingEffects
}
from
'../common/effects/useQueryComingEffects'
;
const
{
confirm
}
=
Modal
;
...
...
@@ -160,10 +162,13 @@ const MemberPrVerifyChangeConfrim: React.FC<{}> = props => {
'name'
,
FORM_FILTER_PATH
,
);
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
if
(
!
BASE_CONFIG
.
global
.
siteInfo
.
enableMultiTenancy
)
{
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
}
useQueryComingEffects
(
$
,
actions
);
}
}
schema=
{
verifyComingSchema
}
/>
...
...
src/pages/member/memberPrVerifyComing1/index.tsx
View file @
79f9affe
...
...
@@ -19,8 +19,10 @@ import { FORM_FILTER_PATH } from '@/formSchema/const';
import
{
useAsyncInitSelect
}
from
'@/formSchema/effects/useAsyncInitSelect'
;
import
{
getMemberDepositGradeOnePage
,
postMemberDepositGradeOneBatch
,
getMemberDepositPageConditions
}
from
'@/services/MemberV2Api'
;
import
useSpliceArray
from
'@/hooks/useSpliceArray'
;
import
BASE_CONFIG
from
'@/../config/base.config.json'
;
import
verifyComingSchema
from
'../common/schames/verifyComingSchema'
;
import
verifyComingColumn
from
'../common/columns/verifyComingColumn'
;
import
{
useQueryComingEffects
}
from
'../common/effects/useQueryComingEffects'
;
const
{
confirm
}
=
Modal
;
...
...
@@ -162,10 +164,13 @@ const MemberPrVerifyComing1: React.FC<{}> = props => {
'name'
,
FORM_FILTER_PATH
,
);
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
if
(
!
BASE_CONFIG
.
global
.
siteInfo
.
enableMultiTenancy
)
{
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
}
useQueryComingEffects
(
$
,
actions
);
}
}
schema=
{
verifyComingSchema
}
/>
...
...
src/pages/member/memberPrVerifyComing2/index.tsx
View file @
79f9affe
...
...
@@ -19,8 +19,10 @@ import { FORM_FILTER_PATH } from '@/formSchema/const';
import
{
useAsyncInitSelect
}
from
'@/formSchema/effects/useAsyncInitSelect'
;
import
{
getMemberDepositGradeTwoPage
,
postMemberDepositGradeTwoBatch
,
getMemberDepositPageConditions
}
from
'@/services/MemberV2Api'
;
import
useSpliceArray
from
'@/hooks/useSpliceArray'
;
import
BASE_CONFIG
from
'@/../config/base.config.json'
;
import
verifyComingSchema
from
'../common/schames/verifyComingSchema'
;
import
verifyComingColumn
from
'../common/columns/verifyComingColumn'
;
import
{
useQueryComingEffects
}
from
'../common/effects/useQueryComingEffects'
;
const
{
confirm
}
=
Modal
;
...
...
@@ -162,10 +164,13 @@ const MemberPrVerifyComing2: React.FC<{}> = props => {
'name'
,
FORM_FILTER_PATH
,
);
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
if
(
!
BASE_CONFIG
.
global
.
siteInfo
.
enableMultiTenancy
)
{
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
}
useQueryComingEffects
(
$
,
actions
);
}
}
schema=
{
verifyComingSchema
}
/>
...
...
src/pages/member/memberPrVerifyComingConfirm/index.tsx
View file @
79f9affe
...
...
@@ -19,8 +19,10 @@ import { FORM_FILTER_PATH } from '@/formSchema/const';
import
{
useAsyncInitSelect
}
from
'@/formSchema/effects/useAsyncInitSelect'
;
import
{
getMemberDepositConfirmPage
,
getMemberDepositPageConditions
,
postMemberDepositConfirmBatch
}
from
'@/services/MemberV2Api'
;
import
useSpliceArray
from
'@/hooks/useSpliceArray'
;
import
BASE_CONFIG
from
'@/../config/base.config.json'
;
import
verifyComingSchema
from
'../common/schames/verifyComingSchema'
;
import
verifyComingColumn
from
'../common/columns/verifyComingColumn'
;
import
{
useQueryComingEffects
}
from
'../common/effects/useQueryComingEffects'
;
const
{
confirm
}
=
Modal
;
...
...
@@ -162,10 +164,13 @@ const MemberPrVerifyComingConfirm: React.FC<{}> = props => {
'name'
,
FORM_FILTER_PATH
,
);
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
if
(
!
BASE_CONFIG
.
global
.
siteInfo
.
enableMultiTenancy
)
{
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
}
useQueryComingEffects
(
$
,
actions
);
}
}
schema=
{
verifyComingSchema
}
/>
...
...
src/pages/member/memberPrVerifyComingData/index.tsx
View file @
79f9affe
...
...
@@ -19,8 +19,10 @@ import { FORM_FILTER_PATH } from '@/formSchema/const';
import
{
useAsyncInitSelect
}
from
'@/formSchema/effects/useAsyncInitSelect'
;
import
{
getMemberDepositVerifyPage
,
postMemberDepositVerifyBatch
,
getMemberDepositPageConditions
}
from
'@/services/MemberV2Api'
;
import
useSpliceArray
from
'@/hooks/useSpliceArray'
;
import
BASE_CONFIG
from
'@/../config/base.config.json'
;
import
verifyComingSchema
from
'../common/schames/verifyComingSchema'
;
import
verifyComingColumn
from
'../common/columns/verifyComingColumn'
;
import
{
useQueryComingEffects
}
from
'../common/effects/useQueryComingEffects'
;
const
{
confirm
}
=
Modal
;
...
...
@@ -162,10 +164,13 @@ const MemberPrVerifyComingData: React.FC<{}> = props => {
'name'
,
FORM_FILTER_PATH
,
);
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
if
(
!
BASE_CONFIG
.
global
.
siteInfo
.
enableMultiTenancy
)
{
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
}
useQueryComingEffects
(
$
,
actions
);
}
}
schema=
{
verifyComingSchema
}
/>
...
...
src/pages/member/memberPrVerifyComingQualifications/index.tsx
View file @
79f9affe
...
...
@@ -19,8 +19,10 @@ import { FORM_FILTER_PATH } from '@/formSchema/const';
import
{
useAsyncInitSelect
}
from
'@/formSchema/effects/useAsyncInitSelect'
;
import
{
getMemberDepositPageConditions
,
getMemberDepositQualifyPage
,
postMemberDepositQualifyBatch
}
from
'@/services/MemberV2Api'
;
import
useSpliceArray
from
'@/hooks/useSpliceArray'
;
import
BASE_CONFIG
from
'@/../config/base.config.json'
;
import
verifyComingSchema
from
'../common/schames/verifyComingSchema'
;
import
verifyComingColumn
from
'../common/columns/verifyComingColumn'
;
import
{
useQueryComingEffects
}
from
'../common/effects/useQueryComingEffects'
;
const
{
confirm
}
=
Modal
;
...
...
@@ -162,10 +164,13 @@ const memberPrVerifyComingQualifications: React.FC<{}> = props => {
'name'
,
FORM_FILTER_PATH
,
);
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
if
(
!
BASE_CONFIG
.
global
.
siteInfo
.
enableMultiTenancy
)
{
useAsyncInitSelect
(
[
'memberTypeId'
,
'roleId'
,
'source'
],
fetchSearchItems
,
);
}
useQueryComingEffects
(
$
,
actions
);
}
}
schema=
{
verifyComingSchema
}
/>
...
...
src/pages/member/memberQuery/detailed/archiveInfo.tsx
View file @
79f9affe
...
...
@@ -10,6 +10,7 @@ import { useIntl } from 'umi';
import
{
Row
,
Col
,
Spin
}
from
'antd'
;
import
{
usePageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
getMemberAbilityInfoDetailAppraisalPage
,
getMemberAbilityInfoDetailArchives
,
GetMemberAbilityInfoDetailArchivesResponse
,
getMemberAbilityInfoDetailRectifyPage
,
getMemberAbilityMaintenanceDetailInspectPage
}
from
'@/services/MemberV2Api'
;
import
BASE_CONFIG
from
'@/../config/base.config.json'
;
import
{
EditableColumns
}
from
'@/components/PolymericTable/interface'
;
import
AnchorPage
from
'@/components/AnchorPage'
;
import
MemberDocIncomingInfo
from
'../../components/MemberDocIncomingInfo'
;
...
...
@@ -284,15 +285,17 @@ const MemberArchiveInfo = () => {
</
Col
>
{
/* 整改信息 */
}
<
Col
span=
{
24
}
>
<
AnchorPage
.
Item
itemKey=
"rectifyInfo"
>
<
MemberDocTableList
<
RectifyListItemType
>
title=
{
intl
.
formatMessage
({
id
:
'member.memberQuery.detailed.archiveInfo.RectifyColumns'
})
}
columns=
{
RectifyColumns
}
fetchList=
{
getRectifyList
}
/
>
</
AnchorPage
.
Item
>
</
Col
>
{
!
BASE_CONFIG
.
global
.
siteInfo
.
enableMultiTenancy
&&
(
<
Col
span=
{
24
}
>
<
AnchorPage
.
Item
itemKey=
"rectifyInfo"
>
<
MemberDocTableList
<
RectifyListItemType
>
title=
{
intl
.
formatMessage
({
id
:
'member.memberQuery.detailed.archiveInfo.RectifyColumns'
})
}
columns=
{
RectifyColumns
}
fetchList=
{
getRectifyList
}
/
>
</
AnchorPage
.
Item
>
</
Col
>
)
}
</
Row
>
</
Spin
>
);
...
...
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