From 07276ffe9045a513f6482b4b5088644d9e30c560 Mon Sep 17 00:00:00 2001
From: AaronWu <2463371514@qq.com>
Date: Tue, 20 May 2025 17:31:21 +0800
Subject: [PATCH] =?UTF-8?q?feat:=200520=20=E9=9C=80=E6=B1=82=E5=BC=80?=
=?UTF-8?q?=E5=8F=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.env.development | 4 +-
src/views/client/entrance/index.vue | 2 +-
src/views/client/knowledgeBase/index.vue | 73 +++++++++++++++++++-----
src/views/question/issue/columns.tsx | 40 ++++++++++---
src/views/question/issue/formSchemas.tsx | 2 +-
src/views/question/issue/index.vue | 4 +-
6 files changed, 97 insertions(+), 28 deletions(-)
diff --git a/.env.development b/.env.development
index f58018f..84593ba 100644
--- a/.env.development
+++ b/.env.development
@@ -9,8 +9,8 @@
# 只在开发模式中被载入
# 网站前缀
-VITE_BASE_API_URL = http://192.168.2.3:8089/server/
-# VITE_BASE_API_URL = http://43.137.2.78:8085/server/
+# VITE_BASE_API_URL = http://192.168.2.3:8089/server/
+VITE_BASE_API_URL = http://43.137.2.78:8085/server/
# base api
VITE_BASE_API = '/server/'
diff --git a/src/views/client/entrance/index.vue b/src/views/client/entrance/index.vue
index 2bd3818..33d1463 100644
--- a/src/views/client/entrance/index.vue
+++ b/src/views/client/entrance/index.vue
@@ -129,7 +129,7 @@
-
👋 嗨,有什么可以帮你?
+
👋 嗨,有什么可以帮您?
-
+
@@ -17,12 +17,27 @@
知识库目录
-
+
+
+
+ {{ title }}
+
+
+ {{ title }}
+
+
+
+
-
+
@@ -108,11 +123,15 @@
ExportOutlined,
LeftOutlined,
PaperClipOutlined,
+ CarryOutOutlined,
FileOutlined,
} from '@ant-design/icons-vue';
import { fetchKnowledgeBaseList, findOneById, addReadCount } from '@/api/knowledgeBase';
import { useRoute, useRouter } from 'vue-router';
import { useUserStore } from '@/store/modules/user';
+ import { getDictionaryByTypeName } from '@/utils/dict';
+ import { DictEnum } from '@/enums/dictEnum';
+
// 添加下载方法
const handleDownload = (file) => {
window.open(file.url, '_blank');
@@ -157,12 +176,23 @@
};
watch(selectedKeys, async (newVal) => {
+ console.log('newVal: ', newVal);
if (!newVal.length) return;
+ });
+
+ // 树节点选择事件
+ const onSelect = async (selectedKeys: string[], info: any) => {
+ console.log('selected', selectedKeys, info);
+ if (!selectedKeys.length || !info?.node?.dataRef?.isLeafCustom) {
+ curRowDetail.value = {};
+ return;
+ }
+
loading.value = true;
try {
- const res = await findOneById({ id: newVal[0] });
+ const res = await findOneById({ id: selectedKeys[0] });
curRowDetail.value = res;
- const count = await addReadCount({ id: newVal[0] });
+ const count = await addReadCount({ id: selectedKeys[0] });
console.log('count: ', count);
if (count) {
curRowDetail.value.readCount = count;
@@ -172,21 +202,36 @@
} finally {
loading.value = false;
}
- });
-
- // 树节点选择事件
- const onSelect = (selectedKeys: string[], info: any) => {
- console.log('selected', selectedKeys, info);
};
const initTreeData = async () => {
- const list = await fetchKnowledgeBaseList();
- treeData.value = list.map((e) => {
+ let tree: any = [];
+ // 获取功能模块字典
+ const tagList = await getDictionaryByTypeName(DictEnum.TAG_TYPE);
+ console.log('tagList: ', tagList);
+
+ const list = await fetchKnowledgeBaseList({});
+
+ tree = tagList?.map((e) => {
+ let tagName = e.label;
return {
- title: e.title,
- key: e.id,
+ title: e.label,
+ key: e.value,
+ isLeafCustom: false,
+ selectable: false,
+ children: list
+ .filter((e) => e.tags?.includes(tagName))
+ .map((item) => {
+ return {
+ title: item.title,
+ key: item.id,
+ isLeafCustom: true,
+ };
+ }),
};
});
+
+ treeData.value = tree;
console.log('route: ', route);
if (route.query.id) {
selectedKeys.value = [route.query.id as string];
diff --git a/src/views/question/issue/columns.tsx b/src/views/question/issue/columns.tsx
index 84145a8..aab0eef 100644
--- a/src/views/question/issue/columns.tsx
+++ b/src/views/question/issue/columns.tsx
@@ -18,6 +18,7 @@ export const baseColumns: TableColumnItem[] = [
dataIndex: 'title',
// sorter: true,
width: 150,
+ ellipsis: true,
resizable: true,
formItemProps: {
defaultValue: '',
@@ -72,6 +73,7 @@ export const baseColumns: TableColumnItem[] = [
title: '问题号',
align: 'center',
dataIndex: 'billcode',
+ ellipsis: true,
width: 200,
formItemProps: {
defaultValue: '',
@@ -81,10 +83,33 @@ export const baseColumns: TableColumnItem[] = [
},
},
},
+ // zentaoNos
+ {
+ title: '禅道号',
+ align: 'center',
+ dataIndex: 'zentaoNos',
+ width: 150,
+ hideInSearch: true,
+ customRender: ({ record }) => {
+ const { zentaoNos } = record;
+ // 自定义渲染成a标签,点击跳转到指定链接
+ return (
+ zentaoNos && // 如果zentaoNos存在才渲染
+
+ {zentaoNos}
+
+ );
+ },
+ },
{
title: '客户',
align: 'center',
dataIndex: 'customer',
+ ellipsis: true,
width: 150,
formItemProps: {
defaultValue: '',
@@ -99,6 +124,7 @@ export const baseColumns: TableColumnItem[] = [
align: 'center',
dataIndex: 'product',
width: 150,
+ ellipsis: true,
hideInSearch: true,
formItemProps: {
defaultValue: '',
@@ -110,6 +136,7 @@ export const baseColumns: TableColumnItem[] = [
align: 'center',
dataIndex: 'version',
width: 150,
+ ellipsis: true,
hideInSearch: true,
formItemProps: {
defaultValue: '',
@@ -120,6 +147,7 @@ export const baseColumns: TableColumnItem[] = [
title: '代理商',
align: 'center',
dataIndex: 'agent',
+ ellipsis: true,
width: 150,
formItemProps: {
defaultValue: '',
@@ -140,14 +168,7 @@ export const baseColumns: TableColumnItem[] = [
required: false,
},
},
- // zentaoNos
- {
- title: '禅道号',
- align: 'center',
- dataIndex: 'zentaoNos',
- width: 150,
- hideInSearch: true,
- },
+
{
title: '创建时间',
align: 'center',
@@ -193,6 +214,9 @@ export const baseColumns: TableColumnItem[] = [
component: 'Select',
componentProps: {
options: stateTypeList.filter((e) => e.value !== 1),
+ mode: 'multiple',
+ allowClear: true,
+ placeholder: '请选择问题状态',
},
colProps: {
span: 6,
diff --git a/src/views/question/issue/formSchemas.tsx b/src/views/question/issue/formSchemas.tsx
index adbcd96..1c0894f 100644
--- a/src/views/question/issue/formSchemas.tsx
+++ b/src/views/question/issue/formSchemas.tsx
@@ -324,7 +324,7 @@ export const getFlowFormSchema: (row?: Partial) => FormSchema[] =
span: 24,
},
vIf: () => record.state === 0,
- rules: [{ required: true, type: 'string' }],
+ // rules: [{ required: true, type: 'string' }],
},
{
field: 'remark',
diff --git a/src/views/question/issue/index.vue b/src/views/question/issue/index.vue
index 95bf50f..c6b07fe 100644
--- a/src/views/question/issue/index.vue
+++ b/src/views/question/issue/index.vue
@@ -10,7 +10,7 @@
-->