Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
csbr-daop
/
fe-data-trusted-space
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
0c02b061
authored
2025-11-28 10:18:12 +0800
by
lihua
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
产品上架
1 parent
bf2bf179
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
31 additions
and
294 deletions
src/router/modules/dataAsset.ts
src/views/data_product/productListingDetail.vue
src/router/modules/dataAsset.ts
View file @
0c02b06
...
...
@@ -293,7 +293,7 @@ const routes: RouteRecordRaw[] = [
name
:
'productListingDetail'
,
component
:
()
=>
import
(
'@/views/data_product/productListingDetail.vue'
),
meta
:
{
title
:
'新
建数据产品
'
,
title
:
'新
增产品上架
'
,
sidebar
:
false
,
reuse
:
true
,
breadcrumb
:
false
,
...
...
@@ -305,7 +305,7 @@ const routes: RouteRecordRaw[] = [
to
.
meta
.
title
=
`详情-
${
to
.
query
.
name
}
`
;
}
else
{
to
.
meta
.
editPage
=
true
;
to
.
meta
.
title
=
to
.
query
.
type
==
'add'
?
'新
建数据产品
'
:
to
.
query
.
type
==
'edit'
?
`编辑-
${
to
.
query
.
name
}
`
:
`详情-
${
to
.
query
.
name
}
`
;
to
.
meta
.
title
=
to
.
query
.
type
==
'add'
?
'新
增产品上架
'
:
to
.
query
.
type
==
'edit'
?
`编辑-
${
to
.
query
.
name
}
`
:
`详情-
${
to
.
query
.
name
}
`
;
}
}
}
...
...
src/views/data_product/productListingDetail.vue
View file @
0c02b06
...
...
@@ -14,7 +14,7 @@ import useDataAssetStore from "@/store/modules/dataAsset";
import
{
changeNum
}
from
'@/utils/common'
;
import
{
onUploadFilePreview
,
onUploadFileDownload
}
from
'@/api/modules/common'
;
import
{
getAreaData
,
getServiceTenants
,
getSingleList
}
from
"@/api/modules/queryService"
;
import
{
getApproveList
,
getTenantApprove
,
getParamsList
,
getServiceDetail
}
from
"@/api/modules/dataAsset"
;
import
{
getApproveList
,
getTenantApprove
,
get
DamTypesList
,
get
ParamsList
,
getServiceDetail
}
from
"@/api/modules/dataAsset"
;
import
{
getProductList
,
getFileByDamGuid
,
productRejectFlowData
,
getListingDetail
,
listingSave
,
listingUpdate
,
listingSavePortal
,
getParamsDataList
,
listingUpdateGateway
,
getDataExchangeProductList
,
getTemplateFile
,
getListingList
...
...
@@ -1308,7 +1308,7 @@ onActivated(() => {
if
(
tab
)
{
switch
(
detailType
)
{
case
'add'
:
tab
.
meta
.
title
=
'新
建数据产品
'
;
tab
.
meta
.
title
=
'新
增产品上架
'
;
break
;
case
'edit'
:
tab
.
meta
.
title
=
`编辑-
${
damName
}
`
;
...
...
@@ -1360,11 +1360,7 @@ onBeforeMount(async () => {
}
if
(
detailType
!=
'detail'
)
{
await
getTableData
();
if
(
route
.
query
.
exchangeGuid
)
{
getTableInfo
();
}
else
{
getProducts
();
}
getParentAreaPromise
.
value
=
getAreaData
({
parentId
:
null
}).
then
((
res
:
any
)
=>
{
if
(
res
?.
code
==
proxy
.
$passCode
)
{
parentAreaData
.
value
=
res
.
data
??
[];
...
...
@@ -1373,7 +1369,7 @@ onBeforeMount(async () => {
})
}
// getApproveData();
get
ParamsData
List
({
dictType
:
'资产类型'
}).
then
((
res
:
any
)
=>
{
get
DamTypes
List
({
dictType
:
'资产类型'
}).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
damTypes
.
value
=
res
.
data
||
[];
let
item
=
formInfo
.
value
.
items
.
find
(
item
=>
item
.
field
==
'damType'
);
...
...
@@ -1382,7 +1378,7 @@ onBeforeMount(async () => {
proxy
.
$ElMessage
.
error
(
res
.
msg
);
}
})
get
ParamsData
List
({
dictType
:
'交付方式'
}).
then
((
res
:
any
)
=>
{
get
DamTypes
List
({
dictType
:
'交付方式'
}).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
deliveryWayList
.
value
=
res
.
data
||
[];
let
item
=
formInfo
.
value
.
items
.
find
(
item
=>
item
.
field
==
'deliveryWay'
);
...
...
@@ -1410,7 +1406,7 @@ onBeforeMount(async () => {
}
})
if
(
detailType
!=
'detail'
)
{
get
Param
sList
({
get
DamType
sList
({
dictType
:
"数据资产目录主题名称"
,
}).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
...
...
@@ -1429,29 +1425,29 @@ onBeforeMount(async () => {
ElMessage
.
error
(
res
.
msg
);
}
})
// 获取质量评估机构
getSingleList
({
pageIndex
:
-
1
,
pageSize
:
-
1
,
tenantType
:
"12505"
}).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
qualityEvaluationData
.
value
=
res
.
data
.
records
||
[];
let
item
=
formInfo
.
value
.
items
.
find
(
item
=>
item
.
field
==
'qualityEvaluationInstitution'
);
item
&&
(
item
.
options
=
qualityEvaluationData
.
value
);
}
else
{
proxy
.
$ElMessage
.
error
(
res
.
msg
);
}
})
// 获取价值评估机构
getSingleList
({
pageIndex
:
-
1
,
pageSize
:
-
1
,
tenantType
:
"12504"
}).
then
((
res
:
any
)
=>
{
if
(
res
.
code
==
proxy
.
$passCode
)
{
costAssessmentData
.
value
=
res
.
data
.
records
||
[];
let
item
=
formInfo
.
value
.
items
.
find
(
item
=>
item
.
field
==
'costAssessmentInstitution'
);
item
&&
(
item
.
options
=
costAssessmentData
.
value
);
}
else
{
proxy
.
$ElMessage
.
error
(
res
.
msg
);
}
})
if
(
route
.
query
.
exchangeGuid
)
{
getTemplateInfo
();
}
//
//
获取质量评估机构
//
getSingleList({ pageIndex: -1, pageSize: -1, tenantType: "12505" }).then((res: any) => {
//
if (res.code == proxy.$passCode) {
//
qualityEvaluationData.value = res.data.records || [];
//
let item = formInfo.value.items.find(item => item.field == 'qualityEvaluationInstitution');
//
item && (item.options = qualityEvaluationData.value);
//
} else {
//
proxy.$ElMessage.error(res.msg);
//
}
//
})
//
//
获取价值评估机构
//
getSingleList({ pageIndex: -1, pageSize: -1, tenantType: "12504" }).then((res: any) => {
//
if (res.code == proxy.$passCode) {
//
costAssessmentData.value = res.data.records || [];
//
let item = formInfo.value.items.find(item => item.field == 'costAssessmentInstitution');
//
item && (item.options = costAssessmentData.value);
//
} else {
//
proxy.$ElMessage.error(res.msg);
//
}
//
})
//
if (route.query.exchangeGuid) {
//
getTemplateInfo();
//
}
if
(
detailType
&&
detailType
!=
'redit'
&&
detailType
!=
'edit'
)
{
setTimeout
(()
=>
{
formInfo
.
value
.
items
.
forEach
(
item
=>
{
...
...
@@ -2034,265 +2030,6 @@ const rejectDialogBtnClick = (btn, info) => {
<span
class=
"item_value"
>
--
</span>
</div>
</div>
<div
class=
"list_item1 is_block1"
>
<div
class=
"file_item"
v-if=
"route.query.exchangeGuid"
>
<span
class=
"item_label"
>
登记证照:
</span>
<span
class=
"item_value"
v-if=
"flowDetail.registrationCertificate && flowDetail.registrationCertificate.name"
>
<div
class=
"file-operate"
>
<
template
v-if=
"flowDetail.registrationCertificate.name.substring(flowDetail.registrationCertificate.name.lastIndexOf('.') + 1).toLowerCase() == 'xls' || flowDetail.registrationCertificate.name.substring(flowDetail.registrationCertificate.name.lastIndexOf('.') + 1).toLowerCase() == 'xlsx' || flowDetail.registrationCertificate.name.substring(flowDetail.registrationCertificate.name.lastIndexOf('.') + 1).toLowerCase() == 'csv'"
>
<img
class=
"file-img"
src=
"../../assets/images/excel.png"
/>
</
template
>
<
template
v-if=
"flowDetail.registrationCertificate.name.substring(flowDetail.registrationCertificate.name.lastIndexOf('.') + 1).toLowerCase() === 'csv'"
>
<img
class=
"file-img"
src=
"../../assets/images/csv.png"
/>
</
template
>
<
template
v-else-if=
"flowDetail.registrationCertificate.name.substring(flowDetail.registrationCertificate.name.lastIndexOf('.') + 1).toLowerCase() == 'doc' || flowDetail.registrationCertificate.name.substring(flowDetail.registrationCertificate.name.lastIndexOf('.') + 1).toLowerCase() == 'docx'"
>
<img
class=
"file-img"
src=
"../../assets/images/word.png"
/>
</
template
>
<
template
v-else-if=
"flowDetail.registrationCertificate.name.substring(flowDetail.registrationCertificate.name.lastIndexOf('.') + 1).toLowerCase() == 'zip'"
>
<img
class=
"file-img"
src=
"../../assets/images/zip.png"
/>
</
template
>
<
template
v-else-if=
"flowDetail.registrationCertificate.name.substring(flowDetail.registrationCertificate.name.lastIndexOf('.') + 1).toLowerCase() == 'rar'"
>
<img
class=
"file-img"
src=
"../../assets/images/RAR.png"
/>
</
template
>
<
template
v-else-if=
"flowDetail.registrationCertificate.name.substring(flowDetail.registrationCertificate.name.lastIndexOf('.') + 1).toLowerCase() == 'pdf'"
>
<img
class=
"file-img"
src=
"../../assets/images/PDF.png"
/>
</
template
>
<
template
v-else-if=
"flowDetail.registrationCertificate.name.substring(flowDetail.registrationCertificate.name.lastIndexOf('.') + 1).toLowerCase() == 'png'"
>
<img
class=
"file-img"
src=
"../../assets/images/png.png"
/>
</
template
>
<
template
v-else-if=
"flowDetail.registrationCertificate.name.substring(flowDetail.registrationCertificate.name.lastIndexOf('.') + 1).toLowerCase() == 'jpg' || flowDetail.registrationCertificate.name.substring(flowDetail.registrationCertificate.name.lastIndexOf('.') + 1).toLowerCase() == 'jpeg'"
>
<img
class=
"file-img"
src=
"../../assets/images/jpg.png"
/>
</
template
>
<div
class=
"file-name"
><ellipsis-tooltip
:content=
"flowDetail.registrationCertificate.name ?? ''"
class-name=
"w100f"
refName=
"tooltipOver"
></ellipsis-tooltip></div>
<div
:style=
"{ right: '36px' }"
v-if=
"flowDetail.registrationCertificate.name.substring(flowDetail.registrationCertificate.name.lastIndexOf('.') + 1).toLowerCase() == 'pdf' || flowDetail.registrationCertificate.name.substring(flowDetail.registrationCertificate.name.lastIndexOf('.') + 1).toLowerCase() == 'png' || flowDetail.registrationCertificate.name.substring(flowDetail.registrationCertificate.name.lastIndexOf('.') + 1).toLowerCase() == 'jpg' || flowDetail.registrationCertificate.name.substring(flowDetail.registrationCertificate.name.lastIndexOf('.') + 1).toLowerCase() == 'jpeg'"
class=
"file-preview"
@
click=
"onUploadFilePreview(flowDetail.registrationCertificate)"
>
查看
</div>
<div
:style=
"{ right: '0px' }"
class=
"file-preview"
@
click=
"onUploadFileDownload(flowDetail.registrationCertificate)"
>
下载
</div>
</div>
</span>
<span
class=
"item_value"
v-else
>
--
</span>
</div>
</div>
<div
class=
"list_item1 is_block1"
>
<div
class=
"file_item"
v-if=
"route.query.exchangeGuid"
>
<span
class=
"item_label"
>
质量评估报告:
</span>
<span
class=
"item_value"
>
<div
class=
"file-operate"
>
<
template
v-if=
"flowDetail?.evaluationFile?.length > 0"
>
<template
v-if=
"flowDetail.evaluationFile[0].name?.substring(flowDetail.evaluationFile[0].name.lastIndexOf('.') + 1).toLowerCase() === 'pdf'"
>
<img
class=
"file-img"
src=
"../../assets/images/PDF.png"
/>
</
template
>
<
template
v-else-if=
"flowDetail.evaluationFile[0].name?.substring(flowDetail.evaluationFile[0].name.lastIndexOf('.') + 1).toLowerCase() === 'png'"
>
<img
class=
"file-img"
src=
"../../assets/images/png.png"
/>
</
template
>
<
template
v-else-if=
"['jpg', 'jpeg'].includes(flowDetail.evaluationFile[0].name?.substring(flowDetail.evaluationFile[0].name.lastIndexOf('.') + 1).toLowerCase())"
>
<img
class=
"file-img"
src=
"../../assets/images/jpg.png"
/>
</
template
>
<div
class=
"file-name"
><ellipsis-tooltip
:content=
"flowDetail.evaluationFile[0].name ?? ''"
class-name=
"w100f"
refName=
"tooltipOver"
></ellipsis-tooltip></div>
<div
v-if=
"['pdf', 'png', 'jpg', 'jpeg'].includes(flowDetail.evaluationFile[0].name?.substring(flowDetail.evaluationFile[0].name.lastIndexOf('.') + 1).toLowerCase())"
:style=
"{ right: '36px' }"
class=
"file-preview"
@
click=
"onUploadFilePreview(flowDetail.evaluationFile[0])"
>
查看
</div>
<div
:style=
"{ right: '0px' }"
class=
"file-preview"
@
click=
"onUploadFileDownload(flowDetail.evaluationFile[0])"
>
下载
</div>
</template>
<
template
v-else
>
--
</
template
>
</div>
</span>
</div>
</div>
<div
class=
"list_item1 is_block1"
>
<div
class=
"file_item"
v-if=
"route.query.exchangeGuid"
>
<span
class=
"item_label"
>
质量评估机构:
</span>
<span
class=
"item_value"
>
{{ flowDetail.qualityEvaluationInstitution || '--' }}
</span>
</div>
</div>
<div
class=
"list_item1 is_block1"
>
<div
class=
"file_item"
v-if=
"route.query.exchangeGuid"
>
<span
class=
"item_label"
>
价值评估报告:
</span>
<span
class=
"item_value"
>
<div
class=
"file-operate"
>
<
template
v-if=
"flowDetail?.assessmentFile?.length > 0"
>
<template
v-if=
"flowDetail.assessmentFile[0].name?.substring(flowDetail.assessmentFile[0].name.lastIndexOf('.') + 1).toLowerCase() === 'pdf'"
>
<img
class=
"file-img"
src=
"../../assets/images/PDF.png"
/>
</
template
>
<
template
v-else-if=
"flowDetail.assessmentFile[0].name?.substring(flowDetail.assessmentFile[0].name.lastIndexOf('.') + 1).toLowerCase() === 'png'"
>
<img
class=
"file-img"
src=
"../../assets/images/png.png"
/>
</
template
>
<
template
v-else-if=
"['jpg', 'jpeg'].includes(flowDetail.assessmentFile[0].name?.substring(flowDetail.assessmentFile[0].name.lastIndexOf('.') + 1).toLowerCase())"
>
<img
class=
"file-img"
src=
"../../assets/images/jpg.png"
/>
</
template
>
<div
class=
"file-name"
><ellipsis-tooltip
:content=
"flowDetail.assessmentFile[0].name ?? ''"
class-name=
"w100f"
refName=
"tooltipOver"
></ellipsis-tooltip></div>
<div
v-if=
"['pdf', 'png', 'jpg', 'jpeg'].includes(flowDetail.assessmentFile[0].name?.substring(flowDetail.assessmentFile[0].name.lastIndexOf('.') + 1).toLowerCase())"
:style=
"{ right: '36px' }"
class=
"file-preview"
@
click=
"onUploadFilePreview(flowDetail.assessmentFile[0])"
>
查看
</div>
<div
:style=
"{ right: '0px' }"
class=
"file-preview"
@
click=
"onUploadFileDownload(flowDetail.assessmentFile[0])"
>
下载
</div>
</template>
<
template
v-else
>
--
</
template
>
</div>
</span>
</div>
</div>
<div
class=
"list_item1 is_block1"
>
<div
class=
"file_item"
v-if=
"route.query.exchangeGuid"
>
<span
class=
"item_label"
>
价值估评机构:
</span>
<span
class=
"item_value"
>
{{ flowDetail.costAssessmentInstitution || '--' }}
</span>
</div>
</div>
<div
class=
"list_item is_block"
>
<div
class=
"file_item"
v-if=
"route.query.exchangeGuid"
>
<span
class=
"item_label"
>
承诺函:
</span>
<span
class=
"item_value"
>
<div
class=
"file-operate"
>
<
template
v-if=
"flowDetail?.commitmentLetter?.length > 0"
>
<template
v-if=
"flowDetail.commitmentLetter[0].name?.substring(flowDetail.commitmentLetter[0].name.lastIndexOf('.') + 1).toLowerCase() === 'pdf'"
>
<img
class=
"file-img"
src=
"../../assets/images/PDF.png"
/>
</
template
>
<
template
v-else-if=
"flowDetail.commitmentLetter[0].name?.substring(flowDetail.commitmentLetter[0].name.lastIndexOf('.') + 1).toLowerCase() === 'png'"
>
<img
class=
"file-img"
src=
"../../assets/images/png.png"
/>
</
template
>
<
template
v-else-if=
"['jpg', 'jpeg'].includes(flowDetail.commitmentLetter[0].name?.substring(flowDetail.commitmentLetter[0].name.lastIndexOf('.') + 1).toLowerCase())"
>
<img
class=
"file-img"
src=
"../../assets/images/jpg.png"
/>
</
template
>
<div
class=
"file-name"
><ellipsis-tooltip
:content=
"flowDetail.commitmentLetter[0].name ?? ''"
class-name=
"w100f"
refName=
"tooltipOver"
></ellipsis-tooltip></div>
<div
v-if=
"['pdf', 'png', 'jpg', 'jpeg'].includes(flowDetail.commitmentLetter[0].name?.substring(flowDetail.commitmentLetter[0].name.lastIndexOf('.') + 1).toLowerCase())"
:style=
"{ right: '36px' }"
class=
"file-preview"
@
click=
"onUploadFilePreview(flowDetail.commitmentLetter[0])"
>
查看
</div>
<div
:style=
"{ right: '0px' }"
class=
"file-preview"
@
click=
"onUploadFileDownload(flowDetail.commitmentLetter[0])"
>
下载
</div>
</template>
<
template
v-else
>
--
</
template
>
</div>
</span>
</div>
</div>
<div
class=
"list_item is_block"
>
<div
class=
"file_item"
v-if=
"route.query.exchangeGuid"
>
<span
class=
"item_label"
>
授权文件:
</span>
<span
class=
"item_value"
>
<div
class=
"file-operate"
>
<
template
v-if=
"flowDetail?.accreditFile?.length > 0"
>
<template
v-if=
"flowDetail.accreditFile[0].name?.substring(flowDetail.accreditFile[0].name.lastIndexOf('.') + 1).toLowerCase() === 'pdf'"
>
<img
class=
"file-img"
src=
"../../assets/images/PDF.png"
/>
</
template
>
<
template
v-else-if=
"flowDetail.accreditFile[0].name?.substring(flowDetail.accreditFile[0].name.lastIndexOf('.') + 1).toLowerCase() === 'png'"
>
<img
class=
"file-img"
src=
"../../assets/images/png.png"
/>
</
template
>
<
template
v-else-if=
"['jpg', 'jpeg'].includes(flowDetail.accreditFile[0].name?.substring(flowDetail.accreditFile[0].name.lastIndexOf('.') + 1).toLowerCase())"
>
<img
class=
"file-img"
src=
"../../assets/images/jpg.png"
/>
</
template
>
<div
class=
"file-name"
><ellipsis-tooltip
:content=
"flowDetail.accreditFile[0].name ?? ''"
class-name=
"w100f"
refName=
"tooltipOver"
></ellipsis-tooltip></div>
<div
v-if=
"['pdf', 'png', 'jpg', 'jpeg'].includes(flowDetail.accreditFile[0].name?.substring(flowDetail.accreditFile[0].name.lastIndexOf('.') + 1).toLowerCase())"
:style=
"{ right: '36px' }"
class=
"file-preview"
@
click=
"onUploadFilePreview(flowDetail.accreditFile[0])"
>
查看
</div>
<div
:style=
"{ right: '0px' }"
class=
"file-preview"
@
click=
"onUploadFileDownload(flowDetail.accreditFile[0])"
>
下载
</div>
</template>
<
template
v-else
>
--
</
template
>
</div>
</span>
</div>
</div>
<div
class=
"list_item is_block"
>
<div
class=
"file_item"
v-if=
"route.query.exchangeGuid"
>
<span
class=
"item_label"
>
商品详细介绍(签章版):
</span>
<span
class=
"item_value"
>
<div
class=
"file-operate"
>
<
template
v-if=
"flowDetail?.productDetail?.length > 0"
>
<template
v-if=
"flowDetail.productDetail[0].name?.substring(flowDetail.productDetail[0].name.lastIndexOf('.') + 1).toLowerCase() === 'pdf'"
>
<img
class=
"file-img"
src=
"../../assets/images/PDF.png"
/>
</
template
>
<
template
v-else-if=
"flowDetail.productDetail[0].name?.substring(flowDetail.productDetail[0].name.lastIndexOf('.') + 1).toLowerCase() === 'png'"
>
<img
class=
"file-img"
src=
"../../assets/images/png.png"
/>
</
template
>
<
template
v-else-if=
"['jpg', 'jpeg'].includes(flowDetail.productDetail[0].name?.substring(flowDetail.productDetail[0].name.lastIndexOf('.') + 1).toLowerCase())"
>
<img
class=
"file-img"
src=
"../../assets/images/jpg.png"
/>
</
template
>
<div
class=
"file-name"
><ellipsis-tooltip
:content=
"flowDetail.productDetail[0].name ?? ''"
class-name=
"w100f"
refName=
"tooltipOver"
></ellipsis-tooltip></div>
<div
v-if=
"['pdf', 'png', 'jpg', 'jpeg'].includes(flowDetail.productDetail[0].name?.substring(flowDetail.productDetail[0].name.lastIndexOf('.') + 1).toLowerCase())"
:style=
"{ right: '36px' }"
class=
"file-preview"
@
click=
"onUploadFilePreview(flowDetail.productDetail[0])"
>
查看
</div>
<div
:style=
"{ right: '0px' }"
class=
"file-preview"
@
click=
"onUploadFileDownload(flowDetail.productDetail[0])"
>
下载
</div>
</template>
<
template
v-else
>
--
</
template
>
</div>
</span>
</div>
</div>
</div>
</div>
</div>
...
...
@@ -2417,7 +2154,7 @@ const rejectDialogBtnClick = (btn, info) => {
<el-button
@
click=
"btnClick({ value: 'cancel' })"
>
返回
</el-button>
<!-- <el-button @click="btnClick({ value: 'draft' })"
v-if="route.query.type == 'add' || route.query.type == 'edit'">保存草稿</el-button> -->
<el-button
type=
"primary"
@
click=
"btnClick({ value: 'submit' })"
>
提交
流程
</el-button>
<el-button
type=
"primary"
@
click=
"btnClick({ value: 'submit' })"
>
提交
</el-button>
</div>
</div>
<div
class=
"tool_btns"
v-else-if=
"detailType == 'detail'"
>
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
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 post a comment