|
@@ -1,13 +1,13 @@
|
|
|
-import React, { useEffect } from 'react'
|
|
|
+import React, { useEffect, useState } from 'react'
|
|
|
import { Link } from 'react-router-dom'
|
|
|
import useRequest from '@ahooksjs/use-request'
|
|
|
import { useHistory } from 'react-router-dom'
|
|
|
import dayjs from 'dayjs'
|
|
|
|
|
|
-import { Affix, Breadcrumb, Col, Divider, Row, Timeline, Typography, Watermark } from 'antd'
|
|
|
+import { Affix, Breadcrumb, Col, Divider, Row, Timeline, Typography, Watermark, Tag } from 'antd'
|
|
|
|
|
|
import { VmpSeverError } from 'components/Empty'
|
|
|
-import { MaterialService, IArcticleInfo, IArcticleHotListItem } from '../Material.service'
|
|
|
+import { MaterialService, IArcticleInfo, IArcticleHotListItem, IArticleInfoExpand } from '../Material.service'
|
|
|
import { useMedia } from 'Context/Media/MediaContext'
|
|
|
import { useLogin2p } from 'Login2p/Login2pContext'
|
|
|
import styles from '../css/MaterialInfo.module.scss'
|
|
@@ -22,7 +22,7 @@ type ResearchContainerProps = {
|
|
|
const ResearchContainer: React.FC<ResearchContainerProps> = props => {
|
|
|
const { info, handleToRefresh } = props
|
|
|
// const [showDisclaimers, setShowDisclaimers] = useState(false)
|
|
|
-
|
|
|
+ const [articleInfo, setArticleInfo] = useState<IArticleInfoExpand>()
|
|
|
const { data: hotList, run } = useRequest(MaterialService.getArcticleHotList, {
|
|
|
manual: true,
|
|
|
formatResult: response => response.data.Data?.List
|
|
@@ -34,9 +34,20 @@ const ResearchContainer: React.FC<ResearchContainerProps> = props => {
|
|
|
const inlineStyleConfig = {
|
|
|
titleLevel: media.isSmallMax ? 4 : 2
|
|
|
}
|
|
|
+ const { run: getVmpGSDetails } = useRequest(MaterialService.getVmpDetails, {
|
|
|
+ manual: true,
|
|
|
+
|
|
|
+ onSuccess: res => {
|
|
|
+ const { data } = res.data.Data
|
|
|
+ setArticleInfo(data)
|
|
|
+ }
|
|
|
+ })
|
|
|
|
|
|
useEffect(() => {
|
|
|
run(info.Detail.ArticleId)
|
|
|
+ if (info.Detail.ChartPermissionName === '固收') {
|
|
|
+ getVmpGSDetails(info.Detail.ArticleId)
|
|
|
+ }
|
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
|
}, [])
|
|
|
|
|
@@ -95,6 +106,21 @@ const ResearchContainer: React.FC<ResearchContainerProps> = props => {
|
|
|
<div className="gray-text fz12">{dayjs(info.Detail.PublishDate).format('YYYY-MM-DD HH:mm')}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ {articleInfo && info?.HasPermission === INewPermissionType.OK && (
|
|
|
+ <p>
|
|
|
+ {articleInfo.industry ? <Tag color="blue">{articleInfo.industry?.name}</Tag> : <></>}
|
|
|
+ {articleInfo.field ? <Tag color="red">{articleInfo.field?.name}</Tag> : <></>}
|
|
|
+ {articleInfo.type ? <Tag color="purple">{articleInfo.type.name}</Tag> : <></>}
|
|
|
+ {articleInfo.frequency ? <Tag color="green">{articleInfo.frequency}</Tag> : <></>}
|
|
|
+ {articleInfo.series ? <Tag color="volcano">{articleInfo.series.name}</Tag> : <></>}
|
|
|
+ {articleInfo.stock?.length > 0 &&
|
|
|
+ articleInfo.stock?.map((item, index) => (
|
|
|
+ <Tag color="cyan" key={`stock-${index}`}>
|
|
|
+ {item}
|
|
|
+ </Tag>
|
|
|
+ ))}
|
|
|
+ </p>
|
|
|
+ )}
|
|
|
<Row gutter={24}>
|
|
|
<Col
|
|
|
xs={{ span: 24, offset: 0 }}
|
|
@@ -120,7 +146,8 @@ const ResearchContainer: React.FC<ResearchContainerProps> = props => {
|
|
|
)}
|
|
|
{
|
|
|
// annotation 可能能null
|
|
|
- info.Detail.Annotation?.replace('<p><br></p>', '') ? (
|
|
|
+ info.Detail.Annotation?.replace('<p><br></p>', '') &&
|
|
|
+ info?.HasPermission === INewPermissionType.OK ? (
|
|
|
<>
|
|
|
<Typography.Paragraph>
|
|
|
<Typography.Text style={{ fontSize: 20 }} italic strong>
|