|
@@ -5,10 +5,13 @@
|
|
v-if="stepList.length"
|
|
v-if="stepList.length"
|
|
>
|
|
>
|
|
<div class="action-right-container" slot="header-actions">
|
|
<div class="action-right-container" slot="header-actions">
|
|
- <span class="action-item clickable download-project-doc" v-if="false">
|
|
|
|
- <AppIcon name="xiazaixiangmubaogao"></AppIcon>
|
|
|
|
- <span class="action-text">下载项目报告</span>
|
|
|
|
- </span>
|
|
|
|
|
|
+ <DownProjectReport
|
|
|
|
+ class="action-item"
|
|
|
|
+ v-if="hasProject"
|
|
|
|
+ :id="content.id"
|
|
|
|
+ :name="projectName"
|
|
|
|
+ :beforeLeavePage="beforeLeavePage"
|
|
|
|
+ />
|
|
<span class="action-item clickable follow-project">
|
|
<span class="action-item clickable follow-project">
|
|
<QuickMonitor
|
|
<QuickMonitor
|
|
:beforeLeavePage="beforeLeavePage"
|
|
:beforeLeavePage="beforeLeavePage"
|
|
@@ -38,7 +41,8 @@
|
|
<script>
|
|
<script>
|
|
import ContentModuleCard from '@/views/article/ui/ContentModuleCard.vue'
|
|
import ContentModuleCard from '@/views/article/ui/ContentModuleCard.vue'
|
|
import QuickMonitor from '@/composables/quick-monitor/component/QuickMonitor.vue'
|
|
import QuickMonitor from '@/composables/quick-monitor/component/QuickMonitor.vue'
|
|
-import { AppIcon, TimeLine } from '@/ui'
|
|
|
|
|
|
+import DownProjectReport from '@/views/article/components/DownProjectReport.vue'
|
|
|
|
+import { TimeLine } from '@/ui'
|
|
import { mapState, mapGetters } from 'vuex'
|
|
import { mapState, mapGetters } from 'vuex'
|
|
import { replaceKeyword, openAppOrWxPage, formatMoney } from '@/utils'
|
|
import { replaceKeyword, openAppOrWxPage, formatMoney } from '@/utils'
|
|
import { LINKS } from '@/data'
|
|
import { LINKS } from '@/data'
|
|
@@ -46,9 +50,9 @@ import { LINKS } from '@/data'
|
|
export default {
|
|
export default {
|
|
name: 'ContentProjectTimeline',
|
|
name: 'ContentProjectTimeline',
|
|
components: {
|
|
components: {
|
|
- AppIcon,
|
|
|
|
TimeLine,
|
|
TimeLine,
|
|
QuickMonitor,
|
|
QuickMonitor,
|
|
|
|
+ DownProjectReport,
|
|
ContentModuleCard
|
|
ContentModuleCard
|
|
},
|
|
},
|
|
props: {
|
|
props: {
|
|
@@ -82,9 +86,18 @@ export default {
|
|
computed: {
|
|
computed: {
|
|
...mapState({
|
|
...mapState({
|
|
content: (state) => state.article.mainModel.content,
|
|
content: (state) => state.article.mainModel.content,
|
|
- expandModel: (state) => state.article.expandModel
|
|
|
|
|
|
+ expandModel: (state) => state.article.expandModel,
|
|
|
|
+ otherModel: (state) => state.article.otherModel
|
|
}),
|
|
}),
|
|
...mapGetters('user', ['isNewBusiness']),
|
|
...mapGetters('user', ['isNewBusiness']),
|
|
|
|
+ projectName() {
|
|
|
|
+ const projectProgress = this.expandModel.projectProgress || {}
|
|
|
|
+ const projectName = projectProgress.name || ''
|
|
|
|
+ return projectName
|
|
|
|
+ },
|
|
|
|
+ hasProject() {
|
|
|
|
+ return this.otherModel.hasProject
|
|
|
|
+ },
|
|
stepList() {
|
|
stepList() {
|
|
const projectProgress = this.expandModel.projectProgress || {}
|
|
const projectProgress = this.expandModel.projectProgress || {}
|
|
const projectName = projectProgress.name || ''
|
|
const projectName = projectProgress.name || ''
|
|
@@ -125,13 +138,15 @@ export default {
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
|
|
+.action-right-container {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+}
|
|
.action-item {
|
|
.action-item {
|
|
|
|
+ margin-left: 16px;
|
|
color: $main;
|
|
color: $main;
|
|
font-size: 14px;
|
|
font-size: 14px;
|
|
line-height: 20px;
|
|
line-height: 20px;
|
|
- &:not(:last-of-type) {
|
|
|
|
- margin-right: 16px;
|
|
|
|
- }
|
|
|
|
.action-text {
|
|
.action-text {
|
|
margin-left: 4px;
|
|
margin-left: 4px;
|
|
}
|
|
}
|