|
@@ -13,7 +13,7 @@
|
|
|
<div class="scroll-track-wrapper">
|
|
<div class="scroll-track-wrapper">
|
|
|
<div class="scroll-track track-forward" ref="track1" @mouseenter="pauseTrack1 = true" @mouseleave="pauseTrack1 = false">
|
|
<div class="scroll-track track-forward" ref="track1" @mouseenter="pauseTrack1 = true" @mouseleave="pauseTrack1 = false">
|
|
|
<div
|
|
<div
|
|
|
- v-for="(wf, i) in [...workflows, ...workflows]"
|
|
|
|
|
|
|
+ v-for="(wf, i) in displayWorkflows"
|
|
|
:key="'a' + i"
|
|
:key="'a' + i"
|
|
|
class="workflow-card"
|
|
class="workflow-card"
|
|
|
@mouseenter="hoveredCard = 'a' + i"
|
|
@mouseenter="hoveredCard = 'a' + i"
|
|
@@ -24,29 +24,29 @@
|
|
|
<img :src="wf.coverImage" :alt="wf.title" class="cover-img" />
|
|
<img :src="wf.coverImage" :alt="wf.title" class="cover-img" />
|
|
|
<div class="cover-overlay"></div>
|
|
<div class="cover-overlay"></div>
|
|
|
<!-- 平台标签 -->
|
|
<!-- 平台标签 -->
|
|
|
- <div class="platform-chip" :style="{ background: wf.platformColor }">{{ wf.platform }}</div>
|
|
|
|
|
|
|
+ <div class="platform-chip" :style="{ background: wf.platformColor }">{{ wf.categoryName1 }}</div>
|
|
|
<!-- 播放量 -->
|
|
<!-- 播放量 -->
|
|
|
- <div class="view-count">▶ {{ wf.views }}</div>
|
|
|
|
|
|
|
+ <div class="view-count">▶ {{ wf.downCount }}</div>
|
|
|
</div>
|
|
</div>
|
|
|
<!-- 卡片内容 -->
|
|
<!-- 卡片内容 -->
|
|
|
<div class="card-info">
|
|
<div class="card-info">
|
|
|
<div class="card-title-row">
|
|
<div class="card-title-row">
|
|
|
- <h4 class="card-title">{{ wf.title }}</h4>
|
|
|
|
|
- <div class="card-rating">⭐{{ wf.rating }}</div>
|
|
|
|
|
|
|
+ <h4 class="card-title">{{ wf.workflowTitle }}</h4>
|
|
|
|
|
+<!-- <div class="card-rating">⭐{{ wf.rating }}</div>-->
|
|
|
</div>
|
|
</div>
|
|
|
- <p class="card-desc">{{ wf.desc }}</p>
|
|
|
|
|
|
|
+ <p class="card-desc">{{ wf.description }}</p>
|
|
|
<div class="card-footer">
|
|
<div class="card-footer">
|
|
|
<div class="author-info">
|
|
<div class="author-info">
|
|
|
- <img :src="wf.authorAvatar" :alt="wf.author" class="author-avatar" />
|
|
|
|
|
- <span class="author-name">{{ wf.author }}</span>
|
|
|
|
|
|
|
+ <img :src="wf.userAvatar" :alt="wf.nickName" class="author-avatar" />
|
|
|
|
|
+ <span class="author-name">{{ wf.nickName }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
<span class="card-category">{{ wf.category }}</span>
|
|
<span class="card-category">{{ wf.category }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<!-- 悬停操作 -->
|
|
<!-- 悬停操作 -->
|
|
|
<div class="card-hover-actions" :class="{ visible: hoveredCard === 'a' + i }">
|
|
<div class="card-hover-actions" :class="{ visible: hoveredCard === 'a' + i }">
|
|
|
- <button class="action-btn primary">立即使用</button>
|
|
|
|
|
- <button class="action-btn secondary">预览</button>
|
|
|
|
|
|
|
+ <button class="action-btn primary" @click="handleUseClick($event, wf)">{{ $t('hotWorkflows.cta.use') }}</button>
|
|
|
|
|
+ <button class="action-btn secondary" @click="handlePreviewClick($event, wf)">{{ $t('hotWorkflows.cta.preview') }}</button>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -56,7 +56,7 @@
|
|
|
<div class="scroll-track-wrapper">
|
|
<div class="scroll-track-wrapper">
|
|
|
<div class="scroll-track track-reverse" ref="track2" @mouseenter="pauseTrack2 = true" @mouseleave="pauseTrack2 = false">
|
|
<div class="scroll-track track-reverse" ref="track2" @mouseenter="pauseTrack2 = true" @mouseleave="pauseTrack2 = false">
|
|
|
<div
|
|
<div
|
|
|
- v-for="(wf, i) in [...workflowsB, ...workflowsB]"
|
|
|
|
|
|
|
+ v-for="(wf, i) in displayWorkflowsB"
|
|
|
:key="'b' + i"
|
|
:key="'b' + i"
|
|
|
class="workflow-card"
|
|
class="workflow-card"
|
|
|
@mouseenter="hoveredCard = 'b' + i"
|
|
@mouseenter="hoveredCard = 'b' + i"
|
|
@@ -65,26 +65,26 @@
|
|
|
<div class="card-cover">
|
|
<div class="card-cover">
|
|
|
<img :src="wf.coverImage" :alt="wf.title" class="cover-img" />
|
|
<img :src="wf.coverImage" :alt="wf.title" class="cover-img" />
|
|
|
<div class="cover-overlay"></div>
|
|
<div class="cover-overlay"></div>
|
|
|
- <div class="platform-chip" :style="{ background: wf.platformColor }">{{ wf.platform }}</div>
|
|
|
|
|
- <div class="view-count">▶ {{ wf.views }}</div>
|
|
|
|
|
|
|
+ <div class="platform-chip" :style="{ background: wf.platformColor }">{{ wf.categoryName1 }}</div>
|
|
|
|
|
+ <div class="view-count">▶ {{ wf.downCount }}</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="card-info">
|
|
<div class="card-info">
|
|
|
<div class="card-title-row">
|
|
<div class="card-title-row">
|
|
|
- <h4 class="card-title">{{ wf.title }}</h4>
|
|
|
|
|
- <div class="card-rating">⭐{{ wf.rating }}</div>
|
|
|
|
|
|
|
+ <h4 class="card-title">{{ wf.workflowTitle }}</h4>
|
|
|
|
|
+<!-- <div class="card-rating">⭐{{ wf.rating }}</div>-->
|
|
|
</div>
|
|
</div>
|
|
|
- <p class="card-desc">{{ wf.desc }}</p>
|
|
|
|
|
|
|
+ <p class="card-desc">{{ wf.description }}</p>
|
|
|
<div class="card-footer">
|
|
<div class="card-footer">
|
|
|
<div class="author-info">
|
|
<div class="author-info">
|
|
|
- <img :src="wf.authorAvatar" :alt="wf.author" class="author-avatar" />
|
|
|
|
|
- <span class="author-name">{{ wf.author }}</span>
|
|
|
|
|
|
|
+ <img :src="wf.userAvatar" :alt="wf.nickName" class="author-avatar" />
|
|
|
|
|
+ <span class="author-name">{{ wf.nickName }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
- <span class="card-category">{{ wf.category }}</span>
|
|
|
|
|
|
|
+ <span class="card-category">{{ wf.categoryName2 }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="card-hover-actions" :class="{ visible: hoveredCard === 'b' + i }">
|
|
<div class="card-hover-actions" :class="{ visible: hoveredCard === 'b' + i }">
|
|
|
- <button class="action-btn primary">{{ $t('hotWorkflows.cta.use') }}</button>
|
|
|
|
|
- <button class="action-btn secondary">{{ $t('hotWorkflows.cta.preview') }}</button>
|
|
|
|
|
|
|
+ <button class="action-btn primary" @click="handleUseClick($event, wf)">{{ $t('hotWorkflows.cta.use') }}</button>
|
|
|
|
|
+ <button class="action-btn secondary" @click="handlePreviewClick($event, wf)">{{ $t('hotWorkflows.cta.preview') }}</button>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -93,147 +93,232 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
|
-import { ref } from 'vue'
|
|
|
|
|
|
|
+import {onMounted, reactive, ref, computed, inject} from 'vue'
|
|
|
import { useI18n } from 'vue-i18n'
|
|
import { useI18n } from 'vue-i18n'
|
|
|
-
|
|
|
|
|
|
|
+import { useRouter } from 'vue-router'
|
|
|
|
|
+import { getPublishList } from '@/api/publish.js'
|
|
|
|
|
+import {isLogin, openNewTab} from "@/utils/util.js";
|
|
|
const { t } = useI18n()
|
|
const { t } = useI18n()
|
|
|
|
|
+const router = useRouter()
|
|
|
const hoveredCard = ref(null)
|
|
const hoveredCard = ref(null)
|
|
|
const pauseTrack1 = ref(false)
|
|
const pauseTrack1 = ref(false)
|
|
|
const pauseTrack2 = ref(false)
|
|
const pauseTrack2 = ref(false)
|
|
|
|
|
|
|
|
const workflows = [
|
|
const workflows = [
|
|
|
{
|
|
{
|
|
|
- title: 'AI 文章批量生产流水线', platform: 'n8n', platformColor: '#EA4B71',
|
|
|
|
|
- rating: '4.9', views: '12.3K', category: '内容创作',
|
|
|
|
|
- desc: '一键生成高质量文章,自动配图排版,多平台发布',
|
|
|
|
|
- author: 'Alex Chen',
|
|
|
|
|
- authorAvatar: 'https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=40&q=80',
|
|
|
|
|
|
|
+ workflowTitle: 'AI 文章批量生产流水线', categoryName1: 'n8n', platformColor: '#EA4B71',
|
|
|
|
|
+ rating: '4.9', downCount: '12.3K', categoryName2: '内容创作',
|
|
|
|
|
+ description: '一键生成高质量文章,自动配图排版,多平台发布',
|
|
|
|
|
+ nickName: 'Alex Chen',
|
|
|
|
|
+ userAvatar: 'https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=40&q=80',
|
|
|
coverImage: 'https://images.unsplash.com/photo-1499750310107-5fef28a66643?w=300&q=80'
|
|
coverImage: 'https://images.unsplash.com/photo-1499750310107-5fef28a66643?w=300&q=80'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- title: 'GPT-4 智能客服机器人', platform: 'Coze', platformColor: '#1B6EF3',
|
|
|
|
|
- rating: '4.8', views: '8.7K', category: '客服自动化',
|
|
|
|
|
- desc: '基于知识库的智能问答,支持多轮对话和情感识别',
|
|
|
|
|
- author: 'Sarah Liu',
|
|
|
|
|
- authorAvatar: 'https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=40&q=80',
|
|
|
|
|
|
|
+ workflowTitle: 'GPT-4 智能客服机器人', categoryName1: 'Coze', platformColor: '#1B6EF3',
|
|
|
|
|
+ rating: '4.8', downCount: '8.7K', categoryName2: '客服自动化',
|
|
|
|
|
+ description: '基于知识库的智能问答,支持多轮对话和情感识别',
|
|
|
|
|
+ nickName: 'Sarah Liu',
|
|
|
|
|
+ userAvatar: 'https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=40&q=80',
|
|
|
coverImage: 'https://images.unsplash.com/photo-1516321318423-f06f85e504b3?w=300&q=80'
|
|
coverImage: 'https://images.unsplash.com/photo-1516321318423-f06f85e504b3?w=300&q=80'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- title: '企业知识库问答系统', platform: 'FastGPT', platformColor: '#059669',
|
|
|
|
|
- rating: '5.0', views: '15.2K', category: '知识管理',
|
|
|
|
|
- desc: '多格式文档导入,精准语义检索,企业知识管理',
|
|
|
|
|
- author: 'Mike Wang',
|
|
|
|
|
- authorAvatar: 'https://images.unsplash.com/photo-1500648767791-00dcc994a43e?w=40&q=80',
|
|
|
|
|
|
|
+ workflowTitle: '企业知识库问答系统', categoryName1: 'FastGPT', platformColor: '#059669',
|
|
|
|
|
+ rating: '5.0', downCount: '15.2K', categoryName2: '知识管理',
|
|
|
|
|
+ description: '多格式文档导入,精准语义检索,企业知识管理',
|
|
|
|
|
+ nickName: 'Mike Wang',
|
|
|
|
|
+ userAvatar: 'https://images.unsplash.com/photo-1500648767791-00dcc994a43e?w=40&q=80',
|
|
|
coverImage: 'https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=300&q=80'
|
|
coverImage: 'https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=300&q=80'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- title: '数据报告自动生成', platform: 'Dify', platformColor: '#7C3AED',
|
|
|
|
|
- rating: '4.7', views: '6.4K', category: '数据分析',
|
|
|
|
|
- desc: '连接多数据源,自动分析可视化,定时推送报告',
|
|
|
|
|
- author: 'Lisa Zhang',
|
|
|
|
|
- authorAvatar: 'https://images.unsplash.com/photo-1438761681033-6461ffad8d80?w=40&q=80',
|
|
|
|
|
|
|
+ workflowTitle: '数据报告自动生成', categoryName1: 'Dify', platformColor: '#7C3AED',
|
|
|
|
|
+ rating: '4.7', downCount: '6.4K', categoryName2: '数据分析',
|
|
|
|
|
+ description: '连接多数据源,自动分析可视化,定时推送报告',
|
|
|
|
|
+ nickName: 'Lisa Zhang',
|
|
|
|
|
+ userAvatar: 'https://images.unsplash.com/photo-1438761681033-6461ffad8d80?w=40&q=80',
|
|
|
coverImage: 'https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=300&q=80'
|
|
coverImage: 'https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=300&q=80'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- title: '社交媒体内容矩阵', platform: 'n8n', platformColor: '#EA4B71',
|
|
|
|
|
- rating: '4.8', views: '9.1K', category: '内容创作',
|
|
|
|
|
- desc: '一个主题,自动生成适配各平台的差异化内容',
|
|
|
|
|
- author: 'Tom Li',
|
|
|
|
|
- authorAvatar: 'https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=40&q=80',
|
|
|
|
|
|
|
+ workflowTitle: '社交媒体内容矩阵', categoryName1: 'n8n', platformColor: '#EA4B71',
|
|
|
|
|
+ rating: '4.8', downCount: '9.1K', categoryName2: '内容创作',
|
|
|
|
|
+ description: '一个主题,自动生成适配各平台的差异化内容',
|
|
|
|
|
+ nickName: 'Tom Li',
|
|
|
|
|
+ userAvatar: 'https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=40&q=80',
|
|
|
coverImage: 'https://images.unsplash.com/photo-1553877522-43269d4ea984?w=300&q=80'
|
|
coverImage: 'https://images.unsplash.com/photo-1553877522-43269d4ea984?w=300&q=80'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- title: 'AI 邮件营销自动化', platform: 'Coze', platformColor: '#1B6EF3',
|
|
|
|
|
- rating: '4.6', views: '7.3K', category: '营销运营',
|
|
|
|
|
- desc: '个性化邮件生成,智能发送时机,效果追踪分析',
|
|
|
|
|
- author: 'Emma Zhou',
|
|
|
|
|
- authorAvatar: 'https://images.unsplash.com/photo-1517841905240-472988babdf9?w=40&q=80',
|
|
|
|
|
|
|
+ workflowTitle: 'AI 邮件营销自动化', categoryName1: 'Coze', platformColor: '#1B6EF3',
|
|
|
|
|
+ rating: '4.6', downCount: '7.3K', categoryName2: '营销运营',
|
|
|
|
|
+ description: '个性化邮件生成,智能发送时机,效果追踪分析',
|
|
|
|
|
+ nickName: 'Emma Zhou',
|
|
|
|
|
+ userAvatar: 'https://images.unsplash.com/photo-1517841905240-472988babdf9?w=40&q=80',
|
|
|
coverImage: 'https://images.unsplash.com/photo-1522071820081-009f0129c71c?w=300&q=80'
|
|
coverImage: 'https://images.unsplash.com/photo-1522071820081-009f0129c71c?w=300&q=80'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- title: '会议纪要自动整理', platform: 'n8n', platformColor: '#EA4B71',
|
|
|
|
|
- rating: '5.0', views: '13.7K', category: '效率工具',
|
|
|
|
|
- desc: '语音转文字,AI 提炼要点,自动分配任务到项目管理',
|
|
|
|
|
- author: 'Zhang Wei',
|
|
|
|
|
- authorAvatar: 'https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=40&q=80',
|
|
|
|
|
|
|
+ workflowTitle: '会议纪要自动整理', categoryName1: 'n8n', platformColor: '#EA4B71',
|
|
|
|
|
+ rating: '5.0', downCount: '13.7K', categoryName2: '效率工具',
|
|
|
|
|
+ description: '语音转文字,AI 提炼要点,自动分配任务到项目管理',
|
|
|
|
|
+ nickName: 'Zhang Wei',
|
|
|
|
|
+ userAvatar: 'https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=40&q=80',
|
|
|
coverImage: 'https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=300&q=80'
|
|
coverImage: 'https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=300&q=80'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- title: '电商选品智能分析', platform: 'Dify', platformColor: '#7C3AED',
|
|
|
|
|
- rating: '4.7', views: '5.8K', category: '数据分析',
|
|
|
|
|
- desc: '多平台数据爬取,AI 分析趋势,自动生成选品报告',
|
|
|
|
|
- author: 'Jack Wu',
|
|
|
|
|
- authorAvatar: 'https://images.unsplash.com/photo-1500648767791-00dcc994a43e?w=40&q=80',
|
|
|
|
|
|
|
+ workflowTitle: '电商选品智能分析', categoryName1: 'Dify', platformColor: '#7C3AED',
|
|
|
|
|
+ rating: '4.7', downCount: '5.8K', categoryName2: '数据分析',
|
|
|
|
|
+ description: '多平台数据爬取,AI 分析趋势,自动生成选品报告',
|
|
|
|
|
+ nickName: 'Jack Wu',
|
|
|
|
|
+ userAvatar: 'https://images.unsplash.com/photo-1500648767791-00dcc994a43e?w=40&q=80',
|
|
|
coverImage: 'https://images.unsplash.com/photo-1677442135703-1787eea5ce01?w=300&q=80'
|
|
coverImage: 'https://images.unsplash.com/photo-1677442135703-1787eea5ce01?w=300&q=80'
|
|
|
}
|
|
}
|
|
|
]
|
|
]
|
|
|
|
|
|
|
|
const workflowsB = [
|
|
const workflowsB = [
|
|
|
{
|
|
{
|
|
|
- title: '多语言翻译工作流', platform: 'Coze', platformColor: '#1B6EF3',
|
|
|
|
|
- rating: '4.9', views: '11.5K', category: '内容创作',
|
|
|
|
|
- desc: '支持 50+ 语言,保留格式,批量处理文档翻译',
|
|
|
|
|
- author: 'Wang Fang',
|
|
|
|
|
- authorAvatar: 'https://images.unsplash.com/photo-1438761681033-6461ffad8d80?w=40&q=80',
|
|
|
|
|
|
|
+ workflowTitle: '多语言翻译工作流', categoryName1: 'Coze', platformColor: '#1B6EF3',
|
|
|
|
|
+ rating: '4.9', downCount: '11.5K', categoryName2: '内容创作',
|
|
|
|
|
+ description: '支持 50+ 语言,保留格式,批量处理文档翻译',
|
|
|
|
|
+ nickName: 'Wang Fang',
|
|
|
|
|
+ userAvatar: 'https://images.unsplash.com/photo-1438761681033-6461ffad8d80?w=40&q=80',
|
|
|
coverImage: 'https://images.unsplash.com/photo-1455390582262-044cdead277a?w=300&q=80'
|
|
coverImage: 'https://images.unsplash.com/photo-1455390582262-044cdead277a?w=300&q=80'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- title: 'SEO 内容优化助手', platform: 'Dify', platformColor: '#7C3AED',
|
|
|
|
|
- rating: '4.7', views: '6.2K', category: '内容创作',
|
|
|
|
|
- desc: '关键词分析,竞品对比,AI 生成 SEO 优化建议',
|
|
|
|
|
- author: 'Li Ming',
|
|
|
|
|
- authorAvatar: 'https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=40&q=80',
|
|
|
|
|
|
|
+ workflowTitle: 'SEO 内容优化助手', categoryName1: 'Dify', platformColor: '#7C3AED',
|
|
|
|
|
+ rating: '4.7', downCount: '6.2K', categoryName2: '内容创作',
|
|
|
|
|
+ description: '关键词分析,竞品对比,AI 生成 SEO 优化建议',
|
|
|
|
|
+ nickName: 'Li Ming',
|
|
|
|
|
+ userAvatar: 'https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=40&q=80',
|
|
|
coverImage: 'https://images.unsplash.com/photo-1499750310107-5fef28a66643?w=300&q=80'
|
|
coverImage: 'https://images.unsplash.com/photo-1499750310107-5fef28a66643?w=300&q=80'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- title: '用户反馈情感分析', platform: 'FastGPT', platformColor: '#059669',
|
|
|
|
|
- rating: '4.8', views: '8.1K', category: '客服自动化',
|
|
|
|
|
- desc: '多渠道收集反馈,AI 情感分类,自动生成改进建议',
|
|
|
|
|
- author: 'Liu Yang',
|
|
|
|
|
- authorAvatar: 'https://images.unsplash.com/photo-1517841905240-472988babdf9?w=40&q=80',
|
|
|
|
|
|
|
+ workflowTitle: '用户反馈情感分析', categoryName1: 'FastGPT', platformColor: '#059669',
|
|
|
|
|
+ rating: '4.8', downCount: '8.1K', categoryName2: '客服自动化',
|
|
|
|
|
+ description: '多渠道收集反馈,AI 情感分类,自动生成改进建议',
|
|
|
|
|
+ nickName: 'Liu Yang',
|
|
|
|
|
+ userAvatar: 'https://images.unsplash.com/photo-1517841905240-472988babdf9?w=40&q=80',
|
|
|
coverImage: 'https://images.unsplash.com/photo-1573496359142-b8d87734a5a2?w=300&q=80'
|
|
coverImage: 'https://images.unsplash.com/photo-1573496359142-b8d87734a5a2?w=300&q=80'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- title: 'AI 直播脚本生成', platform: 'Coze', platformColor: '#1B6EF3',
|
|
|
|
|
- rating: '4.7', views: '7.8K', category: '内容创作',
|
|
|
|
|
- desc: '根据产品信息自动生成直播话术,实时提词',
|
|
|
|
|
- author: 'Xu Ming',
|
|
|
|
|
- authorAvatar: 'https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=40&q=80',
|
|
|
|
|
|
|
+ workflowTitle: 'AI 直播脚本生成', categoryName1: 'Coze', platformColor: '#1B6EF3',
|
|
|
|
|
+ rating: '4.7', downCount: '7.8K', categoryName2: '内容创作',
|
|
|
|
|
+ description: '根据产品信息自动生成直播话术,实时提词',
|
|
|
|
|
+ nickName: 'Xu Ming',
|
|
|
|
|
+ userAvatar: 'https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=40&q=80',
|
|
|
coverImage: 'https://images.unsplash.com/photo-1516321318423-f06f85e504b3?w=300&q=80'
|
|
coverImage: 'https://images.unsplash.com/photo-1516321318423-f06f85e504b3?w=300&q=80'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- title: '供应链风险预警', platform: 'n8n', platformColor: '#EA4B71',
|
|
|
|
|
- rating: '4.8', views: '5.3K', category: '数据分析',
|
|
|
|
|
- desc: '实时监控供应链数据,AI 预测风险,自动发出预警',
|
|
|
|
|
- author: 'Zhang San',
|
|
|
|
|
- authorAvatar: 'https://images.unsplash.com/photo-1500648767791-00dcc994a43e?w=40&q=80',
|
|
|
|
|
|
|
+ workflowTitle: '供应链风险预警', categoryName1: 'n8n', platformColor: '#EA4B71',
|
|
|
|
|
+ rating: '4.8', downCount: '5.3K', categoryName2: '数据分析',
|
|
|
|
|
+ description: '实时监控供应链数据,AI 预测风险,自动发出预警',
|
|
|
|
|
+ nickName: 'Zhang San',
|
|
|
|
|
+ userAvatar: 'https://images.unsplash.com/photo-1500648767791-00dcc994a43e?w=40&q=80',
|
|
|
coverImage: 'https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=300&q=80'
|
|
coverImage: 'https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=300&q=80'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- title: '财务数据智能汇总', platform: 'FastGPT', platformColor: '#059669',
|
|
|
|
|
- rating: '4.6', views: '4.5K', category: '数据分析',
|
|
|
|
|
- desc: '多账户数据整合,自动对账,生成财务分析报告',
|
|
|
|
|
- author: 'Zhao Yan',
|
|
|
|
|
- authorAvatar: 'https://images.unsplash.com/photo-1438761681033-6461ffad8d80?w=40&q=80',
|
|
|
|
|
|
|
+ workflowTitle: '财务数据智能汇总', categoryName1: 'FastGPT', platformColor: '#059669',
|
|
|
|
|
+ rating: '4.6', downCount: '4.5K', categoryName2: '数据分析',
|
|
|
|
|
+ description: '多账户数据整合,自动对账,生成财务分析报告',
|
|
|
|
|
+ nickName: 'Zhao Yan',
|
|
|
|
|
+ userAvatar: 'https://images.unsplash.com/photo-1438761681033-6461ffad8d80?w=40&q=80',
|
|
|
coverImage: 'https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=300&q=80'
|
|
coverImage: 'https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=300&q=80'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- title: '简历筛选自动化', platform: 'n8n', platformColor: '#EA4B71',
|
|
|
|
|
- rating: '4.5', views: '4.2K', category: 'HR自动化',
|
|
|
|
|
- desc: 'AI 智能匹配岗位要求,自动评分排序,发送面试邀请',
|
|
|
|
|
- author: 'Nina Zhao',
|
|
|
|
|
- authorAvatar: 'https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=40&q=80',
|
|
|
|
|
|
|
+ workflowTitle: '简历筛选自动化', categoryName1: 'n8n', platformColor: '#EA4B71',
|
|
|
|
|
+ rating: '4.5', downCount: '4.2K', categoryName2: 'HR自动化',
|
|
|
|
|
+ description: 'AI 智能匹配岗位要求,自动评分排序,发送面试邀请',
|
|
|
|
|
+ nickName: 'Nina Zhao',
|
|
|
|
|
+ userAvatar: 'https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=40&q=80',
|
|
|
coverImage: 'https://images.unsplash.com/photo-1522071820081-009f0129c71c?w=300&q=80'
|
|
coverImage: 'https://images.unsplash.com/photo-1522071820081-009f0129c71c?w=300&q=80'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- title: '竞品监控与分析', platform: 'Dify', platformColor: '#7C3AED',
|
|
|
|
|
- rating: '4.6', views: '3.9K', category: '数据分析',
|
|
|
|
|
- desc: '自动追踪竞品动态,AI 分析策略变化,生成洞察报告',
|
|
|
|
|
- author: 'Chen Jing',
|
|
|
|
|
- authorAvatar: 'https://images.unsplash.com/photo-1517841905240-472988babdf9?w=40&q=80',
|
|
|
|
|
|
|
+ workflowTitle: '竞品监控与分析', categoryName1: 'Dify', platformColor: '#7C3AED',
|
|
|
|
|
+ rating: '4.6', downCount: '3.9K', categoryName2: '数据分析',
|
|
|
|
|
+ description: '自动追踪竞品动态,AI 分析策略变化,生成洞察报告',
|
|
|
|
|
+ nickName: 'Chen Jing',
|
|
|
|
|
+ userAvatar: 'https://images.unsplash.com/photo-1517841905240-472988babdf9?w=40&q=80',
|
|
|
coverImage: 'https://images.unsplash.com/photo-1677442135703-1787eea5ce01?w=300&q=80'
|
|
coverImage: 'https://images.unsplash.com/photo-1677442135703-1787eea5ce01?w=300&q=80'
|
|
|
}
|
|
}
|
|
|
]
|
|
]
|
|
|
|
|
+const openLoginDialog = inject('openLoginDialog')
|
|
|
|
|
+const searchFom = reactive({
|
|
|
|
|
+ pageNum: 0,
|
|
|
|
|
+ pageSize: 16,
|
|
|
|
|
+ orderByColumn: 'downCount',
|
|
|
|
|
+ isAsc: 'desc'
|
|
|
|
|
+})
|
|
|
|
|
+const workflowsList = ref([]);
|
|
|
|
|
+const getList = async (type) => {
|
|
|
|
|
+ const res = await getPublishList(searchFom)
|
|
|
|
|
+ console.log(res);
|
|
|
|
|
+ workflowsList.value = res.rows || [];
|
|
|
|
|
+};
|
|
|
|
|
+// 准备工作流列表,确保有指定数量的数据
|
|
|
|
|
+const prepareWorkflowList = (realData, fakeData, requiredCount) => {
|
|
|
|
|
+ // 复制真实数据
|
|
|
|
|
+ const result = [...realData];
|
|
|
|
|
+
|
|
|
|
|
+ // 去重判断函数
|
|
|
|
|
+ const isDuplicate = (item) =>
|
|
|
|
|
+ result.some(r => r.workflowTitle === item.workflowTitle)
|
|
|
|
|
+
|
|
|
|
|
+ // 从假数据中补充
|
|
|
|
|
+ for (const fakeItem of fakeData) {
|
|
|
|
|
+ if (result.length >= requiredCount) break
|
|
|
|
|
+ if (!isDuplicate(fakeItem)) {
|
|
|
|
|
+ result.push({ ...fakeItem })
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 极端情况下仍不足,允许重复假数据(兜底)
|
|
|
|
|
+ let index = 0
|
|
|
|
|
+ while (result.length < requiredCount) {
|
|
|
|
|
+ result.push({ ...fakeData[index % fakeData.length] })
|
|
|
|
|
+ index++
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return result
|
|
|
|
|
+};
|
|
|
|
|
+// 计算实际显示的工作流列表
|
|
|
|
|
+const displayWorkflows = computed(() => {
|
|
|
|
|
+ return prepareWorkflowList(workflowsList.value, workflows, 8);
|
|
|
|
|
+});
|
|
|
|
|
+const displayWorkflowsB = computed(() => {
|
|
|
|
|
+ return prepareWorkflowList(workflowsList.value, workflowsB, 8);
|
|
|
|
|
+});
|
|
|
|
|
+// 检查是否为真实数据
|
|
|
|
|
+const isRealData = (item) => {
|
|
|
|
|
+ return workflowsList.value.some(workflow => workflow.workflowTitle === item.workflowTitle);
|
|
|
|
|
+};
|
|
|
|
|
+// 处理立即使用按钮点击
|
|
|
|
|
+const handleUseClick = (event, item) => {
|
|
|
|
|
+ event.stopPropagation(); // 阻止冒泡
|
|
|
|
|
+ if(!isLogin({callback: openLoginDialog,t})){
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (isRealData(item)) {
|
|
|
|
|
+ openNewTab(item.categoryUrl);
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+// 处理预览按钮点击
|
|
|
|
|
+const handlePreviewClick = (event, item) => {
|
|
|
|
|
+ event.stopPropagation(); // 阻止冒泡
|
|
|
|
|
+ //判断是否登录
|
|
|
|
|
+ if(!isLogin({callback: openLoginDialog,t})){
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (isRealData(item)) {
|
|
|
|
|
+ let path = `/workflow-detail`
|
|
|
|
|
+ //增加参数名称
|
|
|
|
|
+ router.push({
|
|
|
|
|
+ path: path,
|
|
|
|
|
+ query: {
|
|
|
|
|
+ publishId: item.publishId,
|
|
|
|
|
+ metaTitle: 'route.WorkflowDetail'
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+onMounted(() => {
|
|
|
|
|
+ getList();
|
|
|
|
|
+})
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped>
|
|
<style scoped>
|