From 920b860248dd0e1a8347d775bd6c21a14452097c Mon Sep 17 00:00:00 2001
From: "34701892@qq.com" <34701892@qq.com>
Date: Mon, 10 Nov 2025 17:15:52 +0800
Subject: [PATCH] =?UTF-8?q?feat(richedit):=20=E6=B7=BB=E5=8A=A0=E4=BF=A1?=
=?UTF-8?q?=E5=8F=B7=E8=A7=84=E5=88=99=E7=AD=9B=E9=80=89=E5=8A=9F=E8=83=BD?=
=?UTF-8?q?=E5=8F=8A=E5=B1=95=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 新增获取信号规则列表API接口
- 在富文本编辑页面添加信号规则筛选组件
- 表格中新增信号规则和媒体来源展示列
- 为表格项添加公司和标签展示样式
---
src/api/api.ts | 9 ++
src/views/pages/richedit/index.vue | 144 ++++++++++++++++++++++++++++-
2 files changed, 151 insertions(+), 2 deletions(-)
diff --git a/src/api/api.ts b/src/api/api.ts
index cfa1f7e..2c00801 100644
--- a/src/api/api.ts
+++ b/src/api/api.ts
@@ -350,3 +350,12 @@ export const doNewReturn = (params?: any) => {
params
});
};
+
+// 筛选项-获取信号规则级联列表
+export const getSignalRules = (params?: any) => {
+ return request({
+ url: '/news/getSignalRulesList',
+ method: 'get',
+ params
+ });
+};
diff --git a/src/views/pages/richedit/index.vue b/src/views/pages/richedit/index.vue
index edc670c..ebe234c 100644
--- a/src/views/pages/richedit/index.vue
+++ b/src/views/pages/richedit/index.vue
@@ -34,6 +34,8 @@
-
+
+
@@ -71,10 +87,36 @@
:tableLoading="tableLoading" @currentChange="currentChange" @sizeChange="sizeChange">
-
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
@@ -358,6 +400,7 @@ import {
doRecover,
doNewCheck,
doNewReturn,
+ getSignalRules
} from '/@/api/api';
import { highlightTitle } from '/@/utils/highlight';
import clipboard from 'clipboard';
@@ -477,7 +520,24 @@ async function getData() {
}
});
item.title = highlightTitle(item.title, form.value.keyword);
+
+ item.companys = [
+ "英伟达",
+ "微软",
+ ]
+
+ item.labels = [
+ "新科技-人工智能",
+ "新科技-人工智能",
+ ]
+
+ item.signalNames = [
+ "信号规则1",
+ "信号规则2",
+ ]
});
+
+
}
} catch (error) {
tableLoading.value = false;
@@ -792,6 +852,58 @@ async function doNewReturnFn(item) {
}
}
+// 含任一信号规则
+const signalRulesList1 = ref([
+ {
+ label: '全部',
+ value: 1,
+ },
+ {
+ label: '全部1',
+ value: 2,
+ },
+])
+
+// 不含任一信号规则
+const signalRulesList2 = ref([
+ {
+ label: '全部',
+ value: 1,
+ },
+ {
+ label: '全部1',
+ value: 2,
+ },
+])
+
+async function getSignalRulesFn() {
+ let { code, data } = await getSignalRules({
+ });
+ if (code == 200) {
+ signalRulesList.value = data.map((item: any) => {
+ return {
+ label: item.name,
+ value: item.id,
+ };
+ });
+ }
+}
+
+const signalId1 = ref([])
+const signalId2 = ref([])
+
+function signalChange(event, type) {
+ console.log("🚀 ~ signalChange ~ event:", event)
+ if (type == 1) {
+ form.value.signalId1 = signalId1.value;
+ } else {
+ form.value.signalId2 = signalId2.value;
+ }
+
+ getData()
+}
+
+
// 页面加载时
onMounted(async () => {
if (isMobileByWidth() && (Session.get('userInfoLocal').userType == '01' || Session.get('userInfoLocal').userType == '02')) {
@@ -818,6 +930,8 @@ onMounted(async () => {
}
});
}
+
+ getSignalRulesFn()
});
@@ -923,4 +1037,30 @@ onMounted(async () => {
margin-bottom: 10px;
}
}
+
+.labels {
+ display: flex;
+ gap: 5px;
+
+ .label_item {
+ height: 24px;
+ background: #F6F6F6;
+ border-radius: 2px;
+ border: 1px solid #E2E2E2;
+ padding: 0 5px;
+
+ font-family: PingFangSC, PingFang SC;
+ font-weight: 400;
+ font-size: 12px;
+ color: #656363;
+ line-height: 16px;
+ text-align: left;
+ font-style: normal;
+
+ display: flex;
+ text-align: center;
+ justify-content: center;
+ align-items: center;
+ }
+}