Browse Source

提交代码4

pqy 5 months ago
parent
commit
9497ac9435

File diff suppressed because it is too large
+ 705 - 181
package-lock.json


+ 9 - 0
package.json

@@ -27,11 +27,20 @@
     "@capacitor/keyboard": "6.0.3",
     "@capacitor/status-bar": "6.0.2",
     "@ionic/angular": "^8.4.1",
+    "@langchain/community": "^0.3.19",
+    "@langchain/core": "^0.3.24",
+    "@tensorflow-models/universal-sentence-encoder": "^1.3.3",
+    "@tensorflow/tfjs-backend-cpu": "^4.22.0",
+    "@tensorflow/tfjs-backend-webgl": "^4.22.0",
+    "@tensorflow/tfjs-converter": "^4.22.0",
+    "@tensorflow/tfjs-core": "^4.22.0",
     "axios": "^1.7.9",
     "cors": "^2.8.5",
     "express": "^4.21.2",
     "fmode-ng": "^0.0.62",
     "ionicons": "^7.0.0",
+    "langchain": "^0.3.7",
+    "mammoth": "^1.8.0",
     "rxjs": "~7.8.0",
     "swiper": "^8.4.7",
     "tslib": "^2.3.0",

+ 17 - 2
src/app/service/api.ts

@@ -1,12 +1,27 @@
 import axios from 'axios';
 
-const BASE_URL = 'http://127.0.0.1:5000'; // 替换为 Flask 服务的实际地址
+const BASE_URL = 'http://127.0.0.1:5000';
+const BASE_URL_2='http://127.0.0.1:3001';
+// 调用 Flask 进行图像识别
 export const predict = async (data: any) => {
   try {
     const response = await axios.post(`${BASE_URL}/predict`, { data });
     return response.data;
   } catch (error) {
-    console.error('Error while predicting:', error);
+    console.error('图像预测时发生错误:', error);
     throw error;
   }
 };
+// 调用 Flask 进行RAG增强回答
+export const queryRAGKnowledge = async (query: string) => {
+  try {
+    const response = await axios.post(`${BASE_URL_2}/query`, { query });
+    // 提取结果中的 content 字段
+    const contents = response.data.results.map((result: { sentence: any; }) => result.sentence);
+    return contents; // 返回内容列表
+
+  } catch (error) {
+    console.error('查询 RAG 知识库时发生错误:', error);
+    throw error;
+  }
+};

+ 18 - 7
src/app/tab1/tab1.page.html

@@ -1,11 +1,28 @@
 <ion-header [translucent]="true">
   <ion-toolbar>
-    <ion-title class="header-title">窑</ion-title>
+    <ion-title class="header-title">窑亿</ion-title>
   </ion-toolbar>
 </ion-header>
 
 <ion-content [fullscreen]="true" style="--background: url('/assets/images/background.jpg') no-repeat center/cover;">
   <!-- 透明盒子容器 -->
+  <ion-item lines="none" class="search-container">
+    <!-- 添加搜索框 -->
+    <ion-searchbar [(ngModel)]="searchQuery" (ionInput)="onSearch()" debounce="500" placeholder="请输入搜索内容..."></ion-searchbar>
+    <!-- 搜索按钮 -->
+    <ion-icon name="arrow-forward-circle-outline"></ion-icon>
+  </ion-item>
+  <!-- 水平盒子容器 -->
+  <div class="horizontal-container">
+    <!-- 友情链接按钮 -->
+    <div class="link-button" (click)="navigateToLink()">
+      <!-- 图标和文字的容器 -->
+      <div class="button-content">
+        <ion-icon name="link-outline"></ion-icon>
+        <span class="link-text">友情链接</span>
+      </div>
+    </div>
+  </div>
   <div class="transparent-box">
     <!-- 添加轮播图 -->
     <div class="swiper-container">
@@ -20,12 +37,6 @@
       <div class="swiper-pagination"></div>
     </div>
   </div>
-  <ion-item lines="none" class="search-container">
-    <!-- 添加搜索框 -->
-    <ion-searchbar [(ngModel)]="searchQuery" (ionInput)="onSearch()" debounce="500" placeholder="请输入搜索内容..."></ion-searchbar>
-    <!-- 搜索按钮 -->
-    <ion-icon slot="end" name="search-outline" size="large"></ion-icon>
-  </ion-item>
   <!-- 分隔线 -->
   <hr class="divider" />
   <div class="background-box">

+ 88 - 29
src/app/tab1/tab1.page.scss

@@ -4,11 +4,96 @@
   font-weight: bold; /* 加粗 */
   text-align: center; /* 居中 */
 }
+/* 搜索框容器 */
+ion-searchbar {
+  --background: #ffffff !important; /* 设置背景色 */
+  --border-radius: 10px !important; /* 设置圆角 */
+  --height: 60px !important;  /* 设置搜索框的高度 */
+  --box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1) !important; /* 添加阴影效果 */
+  --border: 1px solid #ccc !important; /* 设置边框颜色 */
+  --placeholder-color: #000000 !important; /* 设置占位符颜色 */
+  font-family: "FangSong", serif !important; /* 使用仿宋体 */
+}
+/* 容器内的搜索框和按钮布局 */
+.search-container {
+  --background-color: transparent !important;
+  display: flex; /* 使用 Flexbox 布局 */
+  align-items: center; /* 垂直居中 */
+  width: 100%; /* 容器宽度为 100% */
+  padding: 0; /* 移除内边距 */
+}
+.searchbar {
+  flex-grow: 1; /* 使搜索框扩展占据剩余空间 */
+}
+ion-button {
+  --background: #ee1717 !important; /* 设置背景色 */
+  --border-radius: 10px !important; /* 设置圆角 */
+}
+/* 水平盒子容器样式 */
+.horizontal-container {
+  display: flex; /* 使用 flex 布局 */
+  align-items: center; /* 垂直居中对齐 */
+  justify-content: space-between; /* 内容两端对齐 */
+  height: 35px; /* 按钮高度 */
+}
+
+/* 友情链接按钮默认样式 */
+.link-button {
+  position: fixed; /* 固定位置 */
+  display: flex; /* 使用 flex 布局 */
+  right: 0;/* 紧贴页面右侧 */
+  align-items: center; /* 垂直居中 */
+  justify-content: center; /* 水平居中 */
+  height: 35px; /* 按钮高度 */
+  width: 60px; /* 默认宽度 */
+  --background-color: transparent !important;
+  background: url('/assets/images/linkbutton-background.png') repeat-x center; /* 设置图片作为分割线 */
+  border-radius: 20px 0 0 20px; /* 左侧圆角 20px,右侧无圆角 */
+  cursor: pointer; /* 鼠标为点击手型 */
+  overflow: hidden; /* 隐藏溢出内容 */
+  transition: all 0.3s ease; /* 动画效果 */
+  box-shadow: 0px 16px 35px rgba(0, 0, 0, 0.2);/* 增加阴影效果 */
+}
+
+/* 鼠标悬浮时 */
+.link-button:hover {
+  width: 120px; /* 宽度变为 80px */
+}
+
+/* 按钮图标和文字样式 */
+.link-button .button-content {
+  color: #ffffff;
+  display: flex; /* 使用 flex 布局 */
+  font-family: "FangSong", serif; /* 使用仿宋体 */
+  align-items: center; /* 垂直居中 */
+  justify-content: center; /* 水平居中 */
+  transition: all 0.3s ease; /* 动画过渡效果 */
+}
+
+/* 图标样式 */
+.link-button ion-icon {
+  font-size: 24px; /* 图标大小 */
+  margin-right: 0; /* 初始状态没有文字时无需间距 */
+}
+
+/* 文本样式 */
+.link-button .link-text {
+  display: none; /* 默认隐藏 */
+  font-family: "FangSong", serif; /* 使用仿宋体 */
+  margin-left: 10px; /* 悬浮时与图标间距 */
+  font-size: 16px; /* 按钮字体大小 */
+}
+
+/* 鼠标悬浮时显示文字 */
+.link-button:hover .link-text {
+  display: inline-block; /* 显示文字 */
+}
+
 /* 透明盒子容器样式 */
 .transparent-box {
   position: relative;
   width: 100%;
-  height: 250px; /* 轮播图的高度,根据需要调整 */
+  height: 225px; /* 轮播图的高度,根据需要调整 */
   background-color: rgba(0, 0, 0, 0); /* 设置透明背景 */
   overflow: hidden; /* 防止图片溢出 */
   box-sizing: border-box;
@@ -21,9 +106,9 @@
   /* 鼠标悬停时的效果:稍微浮动起来 */
   &:hover {
     transform: translateY(5px); /* 上浮效果 */
-    box-shadow: 0px 8px 20px rgba(0, 0, 0, 0.3); /* 增加阴影效果 */
+    box-shadow: 0px 16px 35px rgba(0, 0, 0, 0.4);/* 增加阴影效果 */
   }
-  margin-bottom: 20px;
+  margin-top: 10px;
 }
 /* 轮播图容器样式 */
 swiper {
@@ -55,32 +140,6 @@ swiper {
   transform: translateX(-50%);
   z-index: 10;
 }
-/* 搜索框容器 */
-ion-searchbar {
-  --background: #ffffff !important; /* 设置背景色 */
-  --border-radius: 10px !important; /* 设置圆角 */
-  --height: 60px !important;  /* 设置搜索框的高度 */
-  --box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1) !important; /* 添加阴影效果 */
-  --border: 1px solid #ccc !important; /* 设置边框颜色 */
-  --placeholder-color: #888 !important; /* 设置占位符颜色 */
-  font-family: "FangSong", serif !important; /* 使用仿宋体 */
-}
-/* 容器内的搜索框和按钮布局 */
-.search-container {
-  display: flex; /* 使用 Flexbox 布局 */
-  align-items: center; /* 垂直居中 */
-  width: 100%; /* 容器宽度为 100% */
-  padding: 0; /* 移除内边距 */
-}
-
-.searchbar {
-  flex-grow: 1; /* 使搜索框扩展占据剩余空间 */
-}
-
-ion-button {
-  --background: #ee1717 !important; /* 设置背景色 */
-  --border-radius: 10px !important; /* 设置圆角 */
-}
 .divider {
   border: none; /* 去掉默认边框 */
   height: 40px; /* 分割线高度 */

+ 5 - 11
src/app/tab1/tab1.page.ts

@@ -27,7 +27,11 @@ export class Tab1Page implements AfterViewInit{
   searchQuery: string = '';  // 搜索框的绑定变量
   searchResults: any[] = []; // 存放搜索结果的数组
   constructor(private http: HttpClient) {}
-
+  navigateToLink() {
+    // 替换为吉州窑小程序的实际链接
+    console.log("吉州窑小程序")
+  }
+  
   ngAfterViewInit() {
     // 初始化 Swiper
     const swiper = new Swiper('.swiper-container', {
@@ -115,20 +119,16 @@ export class Tab1Page implements AfterViewInit{
             },
           },
         };
-
         // 创建网络图
         const network = new Network(container, { nodes, edges }, options);
-
         // 点击事件:获取被点击节点的详细信息
         network.on('click', (event: { nodes: number[]; pointer: { DOM: { x: number; y: number } } }) => {
           if (event.nodes.length > 0) {
             const clickedNodeId = event.nodes[0]; // 获取点击的节点 ID
             const clickedNode = nodes.get(clickedNodeId); // 从 DataSet 中获取节点
-
             if (clickedNode) {
               this.selectedNodeDetails = clickedNode.details; // 获取节点的详细信息
               console.log(this.selectedNodeDetails);
-
               // 计算消息框的位置
               const containerRect = container.getBoundingClientRect();
               const clickX = Math.min(
@@ -139,7 +139,6 @@ export class Tab1Page implements AfterViewInit{
                 Math.max(event.pointer.DOM.y - containerRect.top, 0),
                 containerRect.height - 200
               );
-
               this.position = {
                 top: `${clickY}px`,
                 left: `${clickX}px`,
@@ -153,12 +152,10 @@ export class Tab1Page implements AfterViewInit{
       },
     });
   }
-
   // 关闭消息框
   closeMessageBox() {
     this.selectedNodeDetails = null;
   }
-
   // 处理搜索的函数
   onSearch() {
     if (this.searchQuery.trim() === '') {
@@ -185,14 +182,12 @@ export class Tab1Page implements AfterViewInit{
       console.log(response)
     });
   }
-
   // 简单的解析百度搜索结果(这里只是展示了一个基础的解析方式)
   parseBaiduSearchResults(response: string) {
     // 通过正则解析百度返回的 HTML 获取搜索结果标题和链接
     const resultPattern = /<h3 class="t"><a href="([^"]+)"[^>]*>(.*?)<\/a><\/h3>/g;
     let match;
     const results = [];
-
     // 使用正则匹配搜索结果
     while ((match = resultPattern.exec(response)) !== null) {
       results.push({
@@ -200,7 +195,6 @@ export class Tab1Page implements AfterViewInit{
         link: match[1],   // 搜索结果链接
       });
     }
-
     // 更新搜索结果数组
     this.searchResults = results;
   }

+ 6 - 5
src/app/tab2/tab2.page.scss

@@ -3,6 +3,7 @@
   font-weight: bold; /* 加粗 */
   text-align: center; /* 居中 */
 }
+
 /* 左边栏样式 */
 .left_sidebar {
   width: 30%;
@@ -23,7 +24,7 @@
 .icon {
   position: absolute; /* 图标相对于窗口位置 */
   font-size: calc(2vw + 10px);
-  color: gray;
+  color: black;
   cursor: pointer;
   padding: 1vw; /* 动态调整内边距 */
   background-color: transparent;
@@ -77,7 +78,7 @@
 .export_icon {
   margin-right: 10px;
   font-size: calc(2vw + 10px);
-  color: gray;
+  color: black;
 }
 /* 右侧文字样式 */
 .export_text {
@@ -237,7 +238,7 @@
 }
 /* 语音输入按钮 */
 .voice_button {
-  color: gray;
+  color: black;
   display: flex;
   align-items: center;
   justify-content: center;
@@ -266,7 +267,7 @@ ion-input:focus {
 }
 /* 发送按钮 */
 .send_button{
-  color: gray;
+  color: black;
   display: flex;
   align-items: center;
   justify-content: center;
@@ -277,7 +278,7 @@ ion-input:focus {
 }
 /* 终止按钮 */
 .stop_button{
-  color: gray;
+  color: black;
   display: flex;
   align-items: center;
   justify-content: center;

+ 37 - 9
src/app/tab2/tab2.page.ts

@@ -1,6 +1,6 @@
 import { Component } from '@angular/core';
 import { ImagineWork, DalleOptions, FmodeChatCompletion} from 'fmode-ng';
-
+import { queryRAGKnowledge } from 'src/app/service/api'; // 引入 API 服务
 @Component({
   selector: 'app-tab2',
   templateUrl: './tab2.page.html',
@@ -96,7 +96,6 @@ export class Tab2Page {
 async sendMessage() {
     if (this.userMessage.trim() && this.currentConversationId) {  // 如果输入的消息不为空
       const currentMessage = this.userMessage.trim(); // 保留当前输入内容
-      console.log(currentMessage)
       console.log('发送消息:', currentMessage);
         const currentConversation = this.conversations.find(c => c.id === this.currentConversationId);
         if (currentConversation) {
@@ -105,7 +104,7 @@ async sendMessage() {
           // 立即清空输入框
           this.userMessage = '';
           if (currentMessage.startsWith('请生成图片:')) {
-            // 调用图片生成逻辑
+          // 图片生成逻辑
           const generatedImage = await this.generateImage(currentMessage);
           if (generatedImage) {
             // 在用户消息后插入图片生成的内容
@@ -124,11 +123,19 @@ async sendMessage() {
         } 
         //文本生成逻辑
         else{
+          // 生成初步回答
+          console.log('调用 AI 问答方法生成初步回答...');
+          const modelResponse = await this.generateTextForAI(currentMessage);
+          console.log('AI 初步回答:', modelResponse);
+          // 调用 RAG 服务进行知识增强
+          console.log('调用 RAG 服务增强回答...');
+          const RAGResponse = await queryRAGKnowledge(currentMessage);
+          console.log('RAG知识库内容:', RAGResponse);
           // 初始化逐步生成状态
           this.responseMsg = '';
           this.isComplete = false; // 设置生成状态为未完成
           // 调用逐步生成方法
-          this.generateText(currentMessage, currentConversation.messages, userMessageIndex + 1);
+          this.generateText(currentMessage, modelResponse,RAGResponse,currentConversation.messages, userMessageIndex + 1);
         }
       }else {
         console.error('当前对话未找到');
@@ -162,14 +169,35 @@ async sendMessage() {
       return null;
     }
   }
-  // 调用 FmodeChatCompletion 生成回答
-  private generateText(prompt: string, messages: { content: string, role: string }[], insertIndex: number): void {
+  // 调用 FmodeChatCompletion 初步生成回答
+  private async generateTextForAI(prompt: string): Promise<string> {
+    const completion = new FmodeChatCompletion([
+      { role: 'system', content: '您是一位提供详细回答的助手,请帮助用户回答以下问题。' },
+      { role: 'user', content: prompt },
+    ]);
+    try {
+      // 等待生成的回答结果
+      const response = await completion.sendCompletion().toPromise();
+      // 判断返回的内容是否为字符串
+      if (typeof response?.content === 'string') {
+        return response.content;
+      } else {
+        return 'AI 未生成任何文本回答。';
+      }
+    } catch (error) {
+      return 'AI 文本生成失败,请稍后重试。';
+    }
+  }
+  // 调用 FmodeChatCompletion 最终生成回答
+  private generateText(prompt: string, modelResponse:string, RAGResponse:string, messages: { content: string, role: string }[], insertIndex: number): void {
     console.log('调用文本生成工具...');
     // 设置生成状态为 true
     this.isGenerating = true;
     const completion = new FmodeChatCompletion([
-      { role: 'system', content: '您是一位提供详细回答的助手,请帮助用户回答以下问题。' },
+      { role: 'system', content: '您是一位提供详细回答的助手,请充分理解用户问题,结合AI初步回答与RAG参考资料,融合生成一个清晰且准确的回答:' },
       { role: 'user', content: prompt },
+      { role: 'assistant', content: `AI 初步回答:${modelResponse}` },
+      { role: 'assistant', content: `RAG参考资料:${RAGResponse}` },
     ]);
     // 插入占位消息
     let newMessage = {role:"other",content:""}
@@ -180,12 +208,11 @@ async sendMessage() {
           console.log('生成已被终止,忽略后续内容');
           return; // 如果状态标记为终止,跳过更新
         }
-        console.log('生成的部分内容:', message.content);
         newMessage.content = message?.content;
-        console.log(JSON.stringify(messages))
       },
       complete: async () => {
         console.log('文本生成完成');
+        console.log('生成内容:', messages);
         this.isGenerating = false; // 重置生成状态
         this.isComplete = true; // 设置生成状态为完成
         // 检查当前对话是否需要生成标题
@@ -212,6 +239,7 @@ async sendMessage() {
     }
     return '对话:无内容';
   }
+
   // 开始语音识别
   startSpeechRecognition() {
     // 检查浏览器是否支持 SpeechRecognition

+ 1 - 2
src/app/tab3/tab3.page.scss

@@ -27,7 +27,6 @@ transition: all 0.5s ease-in-out; /* 添加过渡动画 */
   overflow: hidden;
   margin-top: 0px;
   background: url('/assets/images/recognition-background2.png') no-repeat center/cover; /* 切换后的背景 */
-
 }
 .background-frame {
 position: relative;
@@ -86,7 +85,7 @@ color: black;
 }
 .toggle-roll-button ion-icon {
   font-size: 20px; /* 设置图标大小 */
-  color: gray;
+  color: black;
   margin-bottom: 0px;
 }
 .button-group {

+ 11 - 39
src/app/tab3/tab3.page.ts

@@ -174,44 +174,16 @@ export class Tab3Page implements AfterViewInit{
   // 显示陶瓷详情模态框
   async openCeramicDetails(ceramicName: string, confidence: string) {
     // 定义陶瓷信息映射表
-    const ceramicInfo: { [key: string]: { description: string; imageUrl: string } } = {
-      '兔毫盏': {
-        description: '兔毫盏是一种特殊的黑釉瓷器,以其如丝似毫的窑变色彩流纹命名。它的特点是在黑釉中有丝状黑褐色兔毛般结晶,俗称“兔毫”。兔毫盏在宋代非常流行,与当时的饮茶风气有关,特别是“斗茶”习俗。宋代的兔毫盏以福建省建阳县水吉镇建窑烧造的最为著名,其胎体厚实、坚致,色呈浅黑或紫黑,器型以碗、盏为主。兔毫盏的析晶斑纹为黑色釉层中透出均匀细密的丝状筋脉条纹,形如兔子的毫毛,故得此名。宋代文人对兔毫盏多有赞美之辞,如蔡襄《茶录》云:“兔毫紫瓯新,蟹眼清泉煮。”宋徽宗赵佶在《大观茶论》中称“盏色贵青黑,玉毫条达者为上。”指的就是兔毫盏。',
-        imageUrl: 'assets/images/Ceramics/tuhaozhan.jpg',
-      },
-      '凤纹盏': {
-        description: '凤纹盏是一种具有独特装饰的茶盏,常见于宋代吉州窑的作品中。其特点包括敞口外撇、弧腹壁、圈足,盏内彩绘或剪纸贴花装饰有凤纹,凤纹笔意潇洒,具有民间气息。凤纹盏的制作工艺独特,如剪纸贴花是将民间剪纸艺术与瓷器装饰相结合,先在坯体上施一层含铁量较高的釉,贴上剪纸图案,再施一层含铁量较低的釉,揭掉剪纸后入窑高温烧成。凤纹盏不仅具有实用价值,也是宋代瓷器装饰艺术的重要代表,反映了当时的审美风格和文化内涵。',
-        imageUrl: 'assets/images/Ceramics/fengwenzhan.jpg',
-      },
-      '剪纸贴花盏': {
-        description: '剪纸贴花盏是一种将剪纸艺术与瓷器制作相结合的独特装饰手法。这种工艺最早出现在宋代吉州窑,工匠们将传统的剪纸纹样移植到黑釉瓷器上,赋予了沉闷单调的黑瓷以民间艺术之美。剪纸贴花盏的制作过程包括将剪好的图案贴于胎体上,然后施加黑釉,揭掉剪纸后一次烧制成功。常见的剪纸纹饰有双龙、双凤、朵花、花卉飞凤、梅花鹿、梅花竹枝和长命富贵、福寿康宁、福山寿海、金玉满堂等吉语。这种装饰手法在民国时期也曾流行,成为一种具有浓郁民族特色的陶瓷装饰艺术。',
-        imageUrl: 'assets/images/Ceramics/jianzhitiehuazhan.jpg',
-      },
-      '玳瑁釉盏': {
-        description: '玳瑁釉盏是一种具有独特艺术魅力的瓷器,其釉色酷似玳瑁海龟的甲壳花纹,因此得名。玳瑁釉盏的制作工艺复杂,属于窑变釉,每一件作品的花纹都是独一无二的。它在宋代时期非常流行,尤其是在吉州窑的产品中,玳瑁釉盏与木叶盏、剪纸贴花盏一并饮誉中外。玳瑁釉盏的复兴在上世纪80年代取得了成功,如今它仍然是收藏家和茶艺爱好者所珍视的对象。',
-        imageUrl: 'assets/images/Ceramics/daimaoyouzhan.jpg',
-      },
-      '梅瓶': {
-        description: '梅瓶是一种流行于宋辽时期的瓷器,其器形得名较晚,历史上曾被称为“经瓶”。梅瓶的特点是小口、短颈、丰肩、瘦底、圈足,因口小只能插梅枝而得名。它既是酒器,又是观赏品,制作精美,考虑到贮酒容量和造型优美。梅瓶最早出现于唐代,盛行于宋代,元代继承宋代形制并有所发展,明清时期御窑厂大量制造,造型越来越优美,用途也更加多样化,成为身份和地位的象征。',
-        imageUrl: 'assets/images/Ceramics/meiping.jpg',
-      },
-      '黑釉盏': {
-        description: '黑釉盏是一种在宋代流行的茶具,以其独特的黑色釉面闻名。它的设计和制作工艺在宋代达到了巅峰,尤其是福建建阳窑、福清窑、江西吉州窑的黑釉盏最为著名。黑釉盏的流行与宋代的斗茶风俗密切相关,其深沉的釉色能够很好地衬托出白色的茶沫,因此受到了斗茶者的喜爱。黑釉盏不仅在国内享有盛誉,还曾一度成为宫廷御用的茶具,其影响甚至远播至日本等国。',
-        imageUrl: 'assets/images/Ceramics/heiyouhan.jpg',
-      },
-      '梅纹盏': {
-        description: '梅纹盏是一种具有独特装饰纹样的瓷器,主要流行于宋代。这种瓷器的装饰纹样以梅花为主,梅花在宋代文人的心目中具有高洁、傲骨的象征意义,因此在瓷器装饰中广泛应用。梅纹盏的制作工艺多样,包括黑釉彩绘、剪纸贴花、剔花等多种技法,其中以吉州窑的梅纹盏最为著名。这些梅纹盏不仅具有观赏价值,还反映了宋代的文化品位和审美体验。',
-        imageUrl: 'asset/images/Ceramics/meiwenzhan.jpg',
-      },
-      '鹧鸪斑盏': {
-        description: '鹧鸪斑盏是一种宋代烧制的黑釉茶盏,其釉面呈现出鹧鸪鸟胸部羽毛般的白点正圆如珠的斑纹,因此得名。鹧鸪斑盏的烧制工艺复杂,成品极为难得,因其烧制条件要求非常高,所以成品凤毛麟角,佳品独特难得。鹧鸪斑盏在宋代时期并非主流社会推崇的产品,当时更受欢迎的是兔毫盏,但它却反映了当时茶文化的繁荣和审美观念的多样性,为研究宋代茶文化提供了重要的实物资料。',
-        imageUrl: 'assets/images/Ceramics/zhegubanzhan.jpg',
-      },
-      '木叶天目盏': {
-        description: '木叶天目盏是一种起源于南宋吉州窑的独特瓷器,其制作工艺是将木叶置于施完天目釉的坯体之上,经过高温烧制,木叶高温氧化自然落灰,木叶灰与底层釉面高温融合,浑然天成形成木叶纹理。这种茶盏的树叶专门选用桑叶,有禅宗文化的背景,桑叶与禅在当时存在特殊的关联。木叶天目盏的胎质紧致,盏内木叶茎脉清晰、栩栩如生,釉面光滑平整,树叶与釉面融合在一个平面上,用手触摸无突兀感。注水后,木叶盏中的叶片纹路似雨后新叶悠然飘至盏底。由于木叶在高温下的变化难以预测,加之手工操作的不可复制性,使得每一件木叶盏都是独一无二的艺术品。',
-        imageUrl: 'assets/images/Ceramics/muyetianmuzhan.jpg',
-      },
-    };
+    let ceramicInfo: { [key: string]: { description: string; imageUrl: string } } = {};
+    try {
+      const response = await fetch('assets/json/ceramic.json'); // 加载 JSON 文件
+      if (!response.ok) {
+        throw new Error('无法加载 JSON 文件');
+      }
+      ceramicInfo = await response.json(); // 解析 JSON 数据
+    } catch (error) {
+      console.error('加载陶瓷信息失败:', error);
+    }
     const ceramicDetails = ceramicInfo[ceramicName] || {
       description: '暂无详细信息。',
       imageUrl: 'assets/images/default.jpg',
@@ -223,7 +195,7 @@ export class Tab3Page implements AfterViewInit{
         description: ceramicDetails.description,
         imageUrl: ceramicDetails.imageUrl,
       },
-      cssClass: 'custom-modal', 
+      cssClass: 'custom-modal',
     });
     await modal.present();
   }

+ 18 - 3
src/app/tab4/tab4.page.html

@@ -18,9 +18,24 @@
     </div>
   </div>
   <ion-list>
-    <ion-item *ngFor="let item of list" (click)="onItemClick(item)" lines="none">
-      <ion-icon [name]="item.icon" slot="start" class="setfont"></ion-icon>
-      <ion-label>{{ item.title }}</ion-label>
+    <!-- 第一项:意见反馈 -->
+    <ion-item (click)="onItemClick({ id: '1', icon: 'chatbubbles-outline', title: '意见反馈' })" lines="none">
+      <ion-icon name="chatbubbles-outline" slot="start" class="setfont"></ion-icon>
+      <ion-label>意见反馈</ion-label>
+      <ion-icon name="chevron-forward" slot="end"></ion-icon>
+    </ion-item>
+
+    <!-- 第二项:设置 -->
+    <ion-item (click)="onItemClick({ id: '2', icon: 'settings-outline', title: '设置' })" lines="none">
+      <ion-icon name="settings-outline" slot="start" class="setfont"></ion-icon>
+      <ion-label>设置</ion-label>
+      <ion-icon name="chevron-forward" slot="end"></ion-icon>
+    </ion-item>
+
+    <!-- 第三项:关于我们 -->
+    <ion-item (click)="onItemClick({ id: '3', icon: 'information-circle-outline', title: '关于我们' })" lines="none">
+      <ion-icon name="information-circle-outline" slot="start" class="setfont"></ion-icon>
+      <ion-label>关于我们</ion-label>
       <ion-icon name="chevron-forward" slot="end"></ion-icon>
     </ion-item>
   </ion-list>

+ 11 - 223
src/app/tab4/tab4.page.scss

@@ -14,7 +14,7 @@
     radial-gradient(circle, rgba(255, 255, 255, 0.8) 60%, rgba(255, 255, 255, 0) 100%) ,
     url('/assets/images/1.jpg') no-repeat center/cover;
 }
-
+/* 用户信息区域 */
 .user {
   height: 300px;
   display: flex;
@@ -24,7 +24,7 @@
   margin: 10px;
   margin-bottom: 100px;
 }
-
+/* 用户头像 */
 .face {
   position: relative;
   width: 120px;
@@ -37,245 +37,33 @@
   align-items: center;
   overflow: hidden;
 }
-
+/* 用户名和ID文本 */
 .username, .id {
   color: white;
   text-align: center;
 }
-
 .img {
   width: 80px; /* 头像大小 */
   height: 80px;
   object-fit: cover;
   border-radius: 50%;
 }
-
+/* 列表区域 */
 ion-list {
   margin-top: 20px;
-  font-family: "FangSong", serif; /* 使用仿宋体 */
-  font-weight: bold; /* 加粗 */
-  text-align: center; /* 居中 */
-}
-
-ion-item {
-  --background: white;
-  --color: black;
-  padding: 10px;
-}
-
-ion-icon.setfont {
-  color: gray;
-  font-size: 1.5rem;
-  font-family: "FangSong", serif; /* 使用仿宋体 */
-  font-weight: bold; /* 加粗 */
-}.header-title {
-  font-family: "FangSong", serif; /* 使用仿宋体 */
-  font-weight: bold; /* 加粗 */
-  text-align: center; /* 居中 */
-} 
-.box {
-  position: absolute;
-  width: 100%;
-  height: 750px;
-  top: -400px;
-  z-index: -1;
-  border-radius: 50%;
-  background:
-    radial-gradient(circle, rgba(255, 255, 255, 0.8) 60%, rgba(255, 255, 255, 0) 100%) ,
-    url('/assets/images/1.jpg') no-repeat center/cover;
-}
-
-.user {
-  height: 300px;
-  display: flex;
-  flex-direction: column;
-  justify-content: center;
-  align-items: center;
-  margin: 10px;
-  margin-bottom: 100px;
-}
-
-.face {
-  position: relative;
-  width: 120px;
-  height: 120px;
-  background: url('/assets/images/2.jpg') no-repeat center/cover;
-  border-radius: 50%;
-  margin: 0px;
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  overflow: hidden;
-}
-
-.username, .id {
-  color: white;
-  text-align: center;
-}
-
-.img {
-  width: 80px; /* 头像大小 */
-  height: 80px;
-  object-fit: cover;
-  border-radius: 50%;
-}
-
-ion-list {
-  margin-top: 20px;
-  font-family: "FangSong", serif; /* 使用仿宋体 */
-  font-weight: bold; /* 加粗 */
-  text-align: center; /* 居中 */
-}
-
-ion-item {
-  --background: white;
-  --color: black;
-  padding: 10px;
-}
-
-ion-icon.setfont {
-  color: gray;
-  font-size: 1.5rem;
-  font-family: "FangSong", serif; /* 使用仿宋体 */
-  font-weight: bold; /* 加粗 */
-}.header-title {
-  font-family: "FangSong", serif; /* 使用仿宋体 */
-  font-weight: bold; /* 加粗 */
-  text-align: center; /* 居中 */
-} 
-.box {
-  position: absolute;
-  width: 100%;
-  height: 750px;
-  top: -400px;
-  z-index: -1;
-  border-radius: 50%;
-  background:
-    radial-gradient(circle, rgba(255, 255, 255, 0.8) 60%, rgba(255, 255, 255, 0) 100%) ,
-    url('/assets/images/1.jpg') no-repeat center/cover;
-}
-
-.user {
-  height: 300px;
-  display: flex;
-  flex-direction: column;
-  justify-content: center;
-  align-items: center;
-  margin: 10px;
-  margin-bottom: 100px;
-}
-
-.face {
-  position: relative;
-  width: 120px;
-  height: 120px;
-  background: url('/assets/images/2.jpg') no-repeat center/cover;
-  border-radius: 50%;
-  margin: 0px;
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  overflow: hidden;
-}
-
-.username, .id {
-  color: white;
-  text-align: center;
-}
-
-.img {
-  width: 80px; /* 头像大小 */
-  height: 80px;
-  object-fit: cover;
-  border-radius: 50%;
-}
-
-ion-list {
-  margin-top: 20px;
-  font-family: "FangSong", serif; /* 使用仿宋体 */
+  --font-family: "FangSong", serif; /* 使用仿宋体 */
   font-weight: bold; /* 加粗 */
   text-align: center; /* 居中 */
 }
-
-ion-item {
+ion-icon{
   --background: white;
   --color: black;
-  padding: 10px;
-}
-
-ion-icon.setfont {
-  color: gray;
-  font-size: 1.5rem;
-  font-family: "FangSong", serif; /* 使用仿宋体 */
-  font-weight: bold; /* 加粗 */
-}.header-title {
-  font-family: "FangSong", serif; /* 使用仿宋体 */
-  font-weight: bold; /* 加粗 */
-  text-align: center; /* 居中 */
-} 
-.box {
-  position: absolute;
-  width: 100%;
-  height: 750px;
-  top: -400px;
-  z-index: -1;
-  border-radius: 50%;
-  background:
-    radial-gradient(circle, rgba(255, 255, 255, 0.8) 60%, rgba(255, 255, 255, 0) 100%) ,
-    url('/assets/images/1.jpg') no-repeat center/cover;
-}
-
-.user {
-  height: 300px;
-  display: flex;
-  flex-direction: column;
-  justify-content: center;
-  align-items: center;
-  margin: 10px;
-  margin-bottom: 100px;
-}
-
-.face {
-  position: relative;
-  width: 120px;
-  height: 120px;
-  background: url('/assets/images/2.jpg') no-repeat center/cover;
-  border-radius: 50%;
-  margin: 0px;
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  overflow: hidden;
-}
-
-.username, .id {
-  color: white;
-  text-align: center;
-}
-
-.img {
-  width: 80px; /* 头像大小 */
-  height: 80px;
-  object-fit: cover;
-  border-radius: 50%;
-}
-
-ion-list {
-  margin-top: 20px;
+  padding: 20px;
   font-family: "FangSong", serif; /* 使用仿宋体 */
-  font-weight: bold; /* 加粗 */
-  text-align: center; /* 居中 */
 }
-
-ion-item {
-  --background: white;
-  --color: black;
-  padding: 10px;
-}
-
-ion-icon.setfont {
-  color: gray;
-  font-size: 1.5rem;
-  font-family: "FangSong", serif; /* 使用仿宋体 */
+ion-label{
+  font-family: "FangSong", serif !important; /* 使用仿宋字体 */
   font-weight: bold; /* 加粗 */
+  font-size: 16px !important; /* 可选:调整字体大小 */
+  text-align: left; /* 左对齐 */
 }

+ 0 - 6
src/app/tab4/tab4.page.ts

@@ -6,12 +6,6 @@ import { Component } from '@angular/core';
   styleUrls: ['tab4.page.scss']
 })
 export class Tab4Page {
-  list = [
-    { id: '1', icon: 'time-outline', title: '我的陶记' },
-    { id: '2', icon: 'chatbubbles-outline', title: '意见反馈' },
-    { id: '3', icon: 'settings-outline', title: '设置' },
-    { id: '4', icon: 'information-circle-outline', title: '关于我们' },
-  ];
   onItemClick(item: any) {
     console.log('Clicked item:', item);
     // Handle the click action for the item

+ 1 - 1
src/app/tabs/tabs.page.html

@@ -17,7 +17,7 @@
 
   <ion-tab-button tab="tab4" href="/tabs/tab4">
       <ion-icon name="person-outline"></ion-icon>
-      <ion-label>我的</ion-label>
+      <ion-label>个人中心</ion-label>
     </ion-tab-button>
   </ion-tab-bar>
 </ion-tabs>

BIN
src/assets/images/linkbutton-background.png


+ 38 - 0
src/assets/json/ceramic.json

@@ -0,0 +1,38 @@
+{
+    "兔毫盏": {
+    "description": "兔毫盏是一种特殊的黑釉瓷器,以其如丝似毫的窑变色彩流纹命名。它的特点是在黑釉中有丝状黑褐色兔毛般结晶,俗称“兔毫”。兔毫盏在宋代非常流行,与当时的饮茶风气有关,特别是“斗茶”习俗。宋代的兔毫盏以福建省建阳县水吉镇建窑烧造的最为著名,其胎体厚实、坚致,色呈浅黑或紫黑,器型以碗、盏为主。兔毫盏的析晶斑纹为黑色釉层中透出均匀细密的丝状筋脉条纹,形如兔子的毫毛,故得此名。宋代文人对兔毫盏多有赞美之辞,如蔡襄《茶录》云:“兔毫紫瓯新,蟹眼清泉煮。”宋徽宗赵佶在《大观茶论》中称“盏色贵青黑,玉毫条达者为上。”指的就是兔毫盏。",
+    "imageUrl": "assets/images/Ceramics/tuhaozhan.jpg"
+    },
+    "凤纹盏": {
+    "description": "凤纹盏是一种具有独特装饰的茶盏,常见于宋代吉州窑的作品中。其特点包括敞口外撇、弧腹壁、圈足,盏内彩绘或剪纸贴花装饰有凤纹,凤纹笔意潇洒,具有民间气息。凤纹盏的制作工艺独特,如剪纸贴花是将民间剪纸艺术与瓷器装饰相结合,先在坯体上施一层含铁量较高的釉,贴上剪纸图案,再施一层含铁量较低的釉,揭掉剪纸后入窑高温烧成。凤纹盏不仅具有实用价值,也是宋代瓷器装饰艺术的重要代表,反映了当时的审美风格和文化内涵。",
+    "imageUrl": "assets/images/Ceramics/fengwenzhan.jpg"
+    },
+    "剪纸贴花盏": {
+    "description": "剪纸贴花盏是一种将剪纸艺术与瓷器制作相结合的独特装饰手法。这种工艺最早出现在宋代吉州窑,工匠们将传统的剪纸纹样移植到黑釉瓷器上,赋予了沉闷单调的黑瓷以民间艺术之美。剪纸贴花盏的制作过程包括将剪好的图案贴于胎体上,然后施加黑釉,揭掉剪纸后一次烧制成功。常见的剪纸纹饰有双龙、双凤、朵花、花卉飞凤、梅花鹿、梅花竹枝和长命富贵、福寿康宁、福山寿海、金玉满堂等吉语。这种装饰手法在民国时期也曾流行,成为一种具有浓郁民族特色的陶瓷装饰艺术。",
+    "imageUrl": "assets/images/Ceramics/jianzhitiehuazhan.jpg"
+    },
+    "玳瑁釉盏": {
+    "description": "玳瑁釉盏是一种具有独特艺术魅力的瓷器,其釉色酷似玳瑁海龟的甲壳花纹,因此得名。玳瑁釉盏的制作工艺复杂,属于窑变釉,每一件作品的花纹都是独一无二的。它在宋代时期非常流行,尤其是在吉州窑的产品中,玳瑁釉盏与木叶盏、剪纸贴花盏一并饮誉中外。玳瑁釉盏的复兴在上世纪80年代取得了成功,如今它仍然是收藏家和茶艺爱好者所珍视的对象。",
+    "imageUrl": "assets/images/Ceramics/daimaoyouzhan.jpg"
+    },
+    "梅瓶": {
+    "description": "梅瓶是一种流行于宋辽时期的瓷器,其器形得名较晚,历史上曾被称为“经瓶”。梅瓶的特点是小口、短颈、丰肩、瘦底、圈足,因口小只能插梅枝而得名。它既是酒器,又是观赏品,制作精美,考虑到贮酒容量和造型优美。梅瓶最早出现于唐代,盛行于宋代,元代继承宋代形制并有所发展,明清时期御窑厂大量制造,造型越来越优美,用途也更加多样化,成为身份和地位的象征。",
+    "imageUrl": "assets/images/Ceramics/meiping.jpg"
+    },
+    "黑釉盏": {
+    "description": "黑釉盏是一种在宋代流行的茶具,以其独特的黑色釉面闻名。它的设计和制作工艺在宋代达到了巅峰,尤其是福建建阳窑、福清窑、江西吉州窑的黑釉盏最为著名。黑釉盏的流行与宋代的斗茶风俗密切相关,其深沉的釉色能够很好地衬托出白色的茶沫,因此受到了斗茶者的喜爱。黑釉盏不仅在国内享有盛誉,还曾一度成为宫廷御用的茶具,其影响甚至远播至日本等国。",
+    "imageUrl": "assets/images/Ceramics/heiyouhan.jpg"
+    },
+    "梅纹盏": {
+    "description": "梅纹盏是一种具有独特装饰纹样的瓷器,主要流行于宋代。这种瓷器的装饰纹样以梅花为主,梅花在宋代文人的心目中具有高洁、傲骨的象征意义,因此在瓷器装饰中广泛应用。梅纹盏的制作工艺多样,包括黑釉彩绘、剪纸贴花、剔花等多种技法,其中以吉州窑的梅纹盏最为著名。这些梅纹盏不仅具有观赏价值,还反映了宋代的文化品位和审美体验。",
+    "imageUrl": "assets/images/Ceramics/meiwenzhan.jpg"
+    },
+    "鹧鸪斑盏": {
+    "description": "鹧鸪斑盏是一种宋代烧制的黑釉茶盏,其釉面呈现出鹧鸪鸟胸部羽毛般的白点正圆如珠的斑纹,因此得名。鹧鸪斑盏的烧制工艺复杂,成品极为难得,因其烧制条件要求非常高,所以成品凤毛麟角,佳品独特难得。鹧鸪斑盏在宋代时期并非主流社会推崇的产品,当时更受欢迎的是兔毫盏,但它却反映了当时茶文化的繁荣和审美观念的多样性,为研究宋代茶文化提供了重要的实物资料。",
+    "imageUrl": "assets/images/Ceramics/zhegubanzhan.jpg"
+    },
+    "木叶天目盏": {
+    "description": "木叶天目盏是一种起源于南宋吉州窑的独特瓷器,其制作工艺是将木叶置于施完天目釉的坯体之上,经过高温烧制,木叶高温氧化自然落灰,木叶灰与底层釉面高温融合,浑然天成形成木叶纹理。这种茶盏的树叶专门选用桑叶,有禅宗文化的背景,桑叶与禅在当时存在特殊的关联。木叶天目盏的胎质紧致,盏内木叶茎脉清晰、栩栩如生,釉面光滑平整,树叶与釉面融合在一个平面上,用手触摸无突兀感。注水后,木叶盏中的叶片纹路似雨后新叶悠然飘至盏底。由于木叶在高温下的变化难以预测,加之手工操作的不可复制性,使得每一件木叶盏都是独一无二的艺术品。",
+    "imageUrl": "assets/images/Ceramics/muyetianmuzhan.jpg"
+    }
+}

+ 62 - 25
src/assets/json/graph.json

@@ -1,31 +1,68 @@
 {
   "nodes": [
-    { "id": 1, "label": "吉州窑", "color": "#a67b5b", "details": "吉州窑是中国传统制瓷工艺的代表之一,拥有超过1200年的历史。它不仅是江西吉安地区的历史瑰宝,也代表了中国古代陶瓷技术的巅峰。作为江南地区最重要的陶瓷生产基地之一,吉州窑以其精美的黑釉瓷和天目釉瓷著称,展现了中原文化与地方工艺的融合。其器物造型和纹样多样,充分体现了汉族艺术的精细与创新。" },
-    { "id": 2, "label": "地理位置", "color": "#d4a373", "details": "吉州窑位于江西省吉安市永和镇,距离吉安市约8公里,地理位置优越,位于赣江流域的关键位置。该地交通便利,土壤和气候条件适合陶瓷生产,丰富的陶土资源为吉州窑的陶瓷制造提供了充足的原材料。永和镇周围的自然环境也为吉州窑的艺术创作提供了灵感,形成了独特的地方风格。" },
-    { "id": 3, "label": "历史沿革", "color": "#e0c097", "details": "吉州窑的历史可以追溯到晚唐时期,它在五代、北宋时期逐渐兴起,并在南宋达到了鼎盛。尽管到了元代末期逐渐衰落,但它在中国陶瓷史上仍占有极为重要的地位。吉州窑的崛起和发展不仅得益于当地的资源条件,还与当时的社会经济发展和文化繁荣息息相关。宋代吉州窑的陶瓷生产技艺,特别是黑釉瓷和天目釉瓷,成为中国古代陶瓷艺术的重要代表。" },
-    { "id": 4, "label": "工艺与产品", "color": "#c7a18b", "details": "吉州窑以其独特的黑釉瓷和天目釉瓷闻名,特别是木叶天目、玳瑁天目和剪纸贴花天目等独创性技艺,令其陶瓷作品别具一格。此外,吉州窑的生产种类丰富,包括乳白釉、青釉、绿釉等类型,器物形制涵盖碗、盏、瓶、罐、枕、盆等各种实用和装饰性陶瓷。其黑釉瓷以其釉面变化和独特的窑变色斑,如油滴斑、兔毫斑、洒釉等著称,体现了宋代瓷器的精湛工艺与艺术魅力。" },
-    { "id": 5, "label": "文化与影响", "color": "#f4b183", "details": "吉州窑不仅仅是一种陶瓷生产技术的体现,它更是中华文化艺术的一部分。吉州窑将中原的制瓷工艺与吉州本地的文化特色相结合,创造出符合当时审美的器物,且多采用了极具地方特色的装饰技法,如木叶、玳瑁、剪纸贴花等。吉州窑的陶瓷产品具有浓厚的民间文化色彩,曾在中国和世界范围内的文化交流中扮演重要角色,尤其在宋元时期,成为东西方贸易的重要商品。" },
-    { "id": 6, "label": "国际影响", "color": "#f7c59f", "details": "吉州窑的陶瓷作品在国际间享有极高声誉,尤其在古代中东和欧洲的王室贵族中备受推崇。吉州瓷器的高质量和独特美感使其成为文化交流的载体。许多吉州窑的传世珍品,如兔毫斑、鹧鸪斑和玳瑁斑,现存于世界各大博物馆。吉州窑的影响不仅限于中国,其在日本、韩国、英国等国家的陶瓷收藏中也占有一席之地。" },
-    { "id": 7, "label": "历史与成就", "color": "#d4a276", "details": "吉州窑在中国陶瓷史上具有举足轻重的地位,它不仅为宋代瓷业的发展做出了重要贡献,还对后世的瓷器生产产生了深远影响。吉州窑烧制的120多种器型,如碗、盏、碟、瓶、罐、枕等,展示了极高的工艺水平和丰富的艺术风格。吉州窑是中国古代黑釉瓷的代表性产地之一,它独特的釉面和烧制技术,成为了中国瓷器的重要代表。" },
-    { "id": 8, "label": "国际贸易与珍藏", "color": "#e4c290", "details": "吉州窑陶瓷在宋元时期成为中国陶瓷贸易的重心之一,广泛出口到日本、韩国、中东、欧洲等地,成为世界各地文化交流的重要组成部分。许多吉州窑的名贵瓷器在日本博物馆、韩国博物馆和英国博物馆中珍藏,并被视为国宝。例如,日本的剪纸贴花盏被誉为国宝,而韩国和英国的吉州窑作品也被视为陶瓷艺术的瑰宝。" },
-    { "id": 9, "label": "现代复兴", "color": "#f9d8a8", "details": "自1982年吉州窑古陶瓷研究所成立以来,吉州窑的陶瓷技术和文化逐步得到复兴和保护。通过仿古瓷、陈设瓷等的生产,吉州窑重新进入国际市场。如今,吉州窑的现代陶瓷产品已经进入美国、英国、法国、日本等国家的市场,成为世界陶瓷文化的重要组成部分。" },
-    { "id": 10, "label": "吉州窑的保护", "color": "#bfa580", "details": "吉州窑遗址是中国现存最为完好的古代名窑遗址之一,2001年被列为全国重点文物保护单位。为了保护这一历史遗产,吉安市制定了科学的保护计划,每年投入专款用于遗址的修复和保护。与此同时,当地政府积极推动吉州窑的开发与文化旅游,努力将其打造为历史文化名镇。" },
-    { "id": 11, "label": "类别与纹样", "color": "#dacaa2", "details": "吉州窑的陶瓷种类繁多,涵盖了青釉、黑釉、乳白釉、白釉彩绘、绿釉等多种釉色。吉州窑的装饰技法极为丰富,包括木叶、玳瑁、洒釉、剪纸贴花、剔花、印花、彩绘等,表现出极高的艺术水准。纹样装饰既有传统的自然主题,如梅花、竹枝、飞蝶等,也有吉祥寓意的图案,如双鱼戏水、跃鹿、鹊喜等,体现了宋代民间文化的深厚底蕴。" },
-    { "id": 12, "label": "瓷器种类", "color": "#e6c690", "details": "吉州窑的瓷器种类丰富,主要包括碗、盏、瓶、罐、枕、盆等,既有实用器具,也有精美的装饰品。每件器物的造型都经过精心设计,不仅功能性强,而且艺术感十足。特别是在北宋至南宋时期,吉州窑的瓷器常常以其独特的造型和釉色成为收藏家和艺术爱好者的珍品。" },
-    { "id": 13, "label": "遗址现状", "color": "#f2e0b0", "details": "吉州窑遗址位于江西吉安市永和镇西侧,现存24处古窑遗址,是世界上已知最大的古窑遗址群。遗址周围的古街道和窑址展示了古代瓷器生产的繁荣景象。为保护这一文化遗产,永和镇已建立了完善的保护体系,并不断推进遗址的研究与开发,使吉州窑的历史和文化得以传承。" }
+    { "id": 1, "label": "吉州窑", "color": "#a67b5b", "details": "吉州窑,作为中国传统制瓷工艺的杰出代表之一,源远流长,距今已有1200多年历史。它位于江西吉安,江南地区,以其精美的黑釉瓷、天目釉瓷和各种创新装饰技法如木叶、玳瑁斑等闻名。吉州窑的出现不仅推动了中国陶瓷技术的发展,也对世界陶瓷艺术产生了深远的影响。" },
+    { "id": 2, "label": "地理位置", "color": "#d4a373", "details": "吉州窑位于江西省吉安市永和镇,地理位置得天独厚,交通便捷。周围丰富的自然资源,特别是高质量的陶土和燃料,为吉州窑的陶瓷生产提供了必要的条件。得益于其位置,吉州窑能够在宋元时期发展成为中国瓷器的重要生产中心之一。" },
+    { "id": 3, "label": "历史沿革", "color": "#e0c097", "details": "吉州窑创烧于晚唐,兴于五代和北宋,极盛于南宋,至元末逐渐衰落,见证了中国陶瓷技术的发展与辉煌。" },
+    { "id": 4, "label": "工艺与产品", "color": "#c7a18b", "details": "吉州窑最为著名的产品为黑釉瓷,尤其以天目釉为代表。其标志性工艺包括木叶天目、玳瑁天目和剪纸贴花天目等,这些独特的装饰技法使吉州窑在中国陶瓷史上占有重要地位。吉州窑的其他产品还包括乳白釉、青釉和绿釉等,器型种类繁多,艺术性与实用性兼具。" },
+    { "id": 5, "label": "文化与影响", "color": "#f4b183", "details": "吉州窑不仅是中国古代瓷器的生产中心,它的陶瓷作品反映了中国传统文化与地方艺术的完美融合。吉州窑的装饰风格和技术创新,例如木叶纹、玳瑁斑和剪纸贴花,不仅丰富了中国陶瓷的艺术形式,也影响了世界各地的陶瓷生产和艺术欣赏。" },
+    { "id": 6, "label": "国际影响", "color": "#f7c59f", "details": "吉州窑的陶瓷作品通过丝绸之路等贸易途径传播到世界各地。尤其在古代欧洲、中东地区的贵族和王室中,吉州瓷器因其精美的工艺和独特的美学价值而备受青睐。吉州窑的陶瓷作品,如兔毫斑、鹧鸪斑等,成为了文化交流的重要载体,广泛收藏于世界各大博物馆。" },
+    { "id": 7, "label": "成就", "color": "#d4a276", "details": "吉州窑历经五代、北宋、南宋,见证了中国陶瓷的辉煌历程。它的陶瓷技术和产品种类丰富,曾成为中国黑釉瓷的重要代表。吉州窑的成就不仅仅体现在技术上,也表现在其对文化的传承与创新,它的产品在中国和世界的陶瓷史上占有一席之地。" },
+    { "id": 8, "label": "国际贸易与珍藏", "color": "#e4c290", "details": "吉州窑的陶瓷作品在中国古代被广泛贸易,并且被大量运往海外。吉州窑的瓷器曾是宋元时期的文化交流和国际贸易的重要商品,许多精美的作品被珍藏在日本、韩国、英国等国家的博物馆里,成为这些国家的文化珍品。" },
+    { "id": 9, "label": "现代复兴", "color": "#f9d8a8", "details": "随着1982年吉州窑古陶瓷研究所的成立,吉州窑的技术逐渐恢复并得到广泛关注。通过现代的技术手段,吉州窑的传统陶瓷工艺得以复兴。现在,吉州窑的陶瓷不仅仅局限于国内市场,也开始进入国际市场,成为世界陶瓷文化的重要组成部分。" },
+    { "id": 10, "label": "吉州窑的保护", "color": "#bfa580", "details": "吉州窑的遗址被列为全国重点文物保护单位,2001年成为中国文化遗产保护的重点之一。为了保护这一重要的文化遗址,政府制定了科学的保护计划,并实施严格的保护措施,确保遗址得到妥善修复与保护,使得吉州窑的历史文化得以延续。" },
+    { "id": 11, "label": "类别与纹样", "color": "#dacaa2", "details": "吉州窑瓷器种类繁多,包括青釉、黑釉、乳白釉等多个类别。它的装饰工艺非常丰富,包括木叶纹、玳瑁斑、洒釉、剔花、剪纸贴花等技法,展现了极高的艺术成就。这些装饰和纹样不仅符合当时的审美标准,还具有较强的实用性,成为中国古代瓷器文化的典范。" },
+    { "id": 13, "label": "遗址现状", "color": "#f2e0b0", "details": "吉州窑遗址位于江西吉安市永和镇,现存24处废弃窑址,堆积着大量的陶瓷碎片和窑具,展示了古代陶瓷生产的繁荣景象。遗址的发掘和保护不仅是研究中国古代陶瓷的宝贵资料,也为现代人提供了探索吉州窑历史的窗口。" },
+    { "id": 14, "label": "吉州窑景区", "color": "#d6a690", "details": "吉州窑景区是国家AAAA级旅游景区,占地3.86平方公里,包括核心景区、观光区和陶瓷产业区,主要景点有吉州窑遗址公园、宋街、吉州窑博物馆等。" },
+    { "id": 15, "label": "主要景点", "color": "#e6c690", "details": "景区包括吉州窑遗址公园、本觉寺塔、茅庵岭古龙窑遗址、吉州窑博物馆等,这些景点展现了吉州窑的历史和文化底蕴。" },
+    { "id": 16, "label": "景区体验", "color": "#e4c290", "details": "景区内可体验陶瓷制作、点茶文化和宋代生活,宋人四雅体验馆和陶瓷文化产业园深受游客欢迎。" },
+    { "id": 17, "label": "景区服务", "color": "#f9d8a8", "details": "景区内提供多样化的服务,包括美食园、瓷音小馆和星空房等,让游客尽享美食、文化和自然的融合体验。" },
+    { "id": 18, "label": "景区历史", "color": "#cfa680", "details": "永和镇为历史文化名镇,东汉设县,宋时因瓷业兴盛被称为“天下三镇”之一。吉州窑景区展示了千年的陶瓷生产与文化发展历程。" },
+    { "id": 19, "label": "景区荣誉", "color": "#bfa580", "details": "吉州窑景区先后被评为国家AAAA级旅游景区、国家考古遗址公园,并入选全国中小学生研学实践教育基地。" },
+    { "id": 20, "label": "晚唐", "color": "#f9d8a8", "details": "吉州窑的历史可以追溯到晚唐时期,这一时期是其起源阶段,制瓷工艺初步形成,以简单的釉下装饰和基本造型为主,奠定了后来的技术基础。在五代时期,吉州窑的制瓷水平逐渐提升,黑釉瓷初现特色,这一阶段为北宋的繁荣发展打下了坚实基础。到了北宋时期,吉州窑进入了兴盛阶段,成为区域性制瓷中心,黑釉瓷的制作工艺不断改进,并首次尝试刻花、划花等技术,瓷器艺术性显著增强,市场也逐渐扩展到更广泛的区域。" },
+    { "id": 21, "label": "宋代", "color": "#e4c290", "details": "南宋时期是吉州窑的鼎盛时期,其制瓷技术达到顶峰,最具代表性的产品是“木叶天目”和“剪纸贴花”瓷器。木叶天目以在釉面烧制过程中加入植物叶片形成独特纹饰而闻名,剪纸贴花则以其生动的装饰风格广受欢迎。这一时期的吉州窑,不仅生产出实用性强的器物,还赋予了瓷器深厚的文化内涵,成为文人墨客生活中的雅物。" },
+    { "id": 22, "label": "元代", "color": "#f7c59f", "details": "元代后期,吉州窑逐渐衰退,主要受政治动荡和经济重心转移的影响,同时也受到景德镇窑等其他窑口的竞争。然而,尽管整体影响力有所下降,吉州窑的技艺和风格依然对周边地区产生深远影响,许多工匠将其技术传播到其他窑口,继续延续其制瓷传统。在近现代,随着历史遗址的发掘和研究,吉州窑的历史地位得以重新确认,其工艺也成为传统文化复兴和研究的重要对象。" },
+    { "id": 23, "label": "瓷器种类", "color": "#cba782", "details": "吉州窑的瓷器种类繁多,包括青釉、黑釉、乳白釉等多个类别。这些种类的瓷器不仅外观精美,色彩丰富,还展现了不同釉色的制作工艺技巧,体现了当时制瓷技术的高超水平。" },
+    { "id": 24, "label": "青釉", "color": "#e4c290", "details": "青釉是吉州窑瓷器中经典的釉色之一,其色泽青翠如玉,温润内敛,常见于瓶、盏等器物。青釉瓷器以简洁优雅的风格为主,釉面光洁透亮,展现了吉州窑工匠对釉色烧制的精准控制和精湛的技艺。" },
+    { "id": 25, "label": "黑釉", "color": "#d6a690", "details": "黑釉瓷是吉州窑最具代表性的种类之一,尤以“兔毫纹”和“鹧鸪斑”为典型特色。黑釉釉面深邃光滑,如同夜空般神秘。特别是在高温烧制中,工匠巧妙地运用釉料和烧成环境,形成丰富多样的自然纹饰,极具艺术观赏性。" },
+    { "id": 26, "label": "乳白釉", "color": "#f2e0b0", "details": "乳白釉瓷器以其釉面细腻光滑、色泽柔和著称,呈现出乳白色或淡奶色的视觉效果,给人以温暖的感官体验。这类瓷器多用于日常生活器物,既具有实用价值,又展现了典雅的艺术风格。" },
+    { "id": 27, "label": "瓷器纹样", "color": "#d4b290", "details": "吉州窑的瓷器纹样丰富多彩,包括木叶纹、玳瑁斑、剪纸贴花等技法。这些纹样不仅体现了工匠们的创意和技艺,还反映了当时社会的审美趣味与文化特色。每种纹样都赋予了瓷器独特的艺术价值,成为吉州窑的重要标志之一。" },
+    { "id": 28, "label": "木叶纹", "color": "#f7c59f", "details": "元代后期,吉州窑逐渐衰退,主要受政治动荡和经济重心转移的影响,同时也受到景德镇窑等其他窑口的竞争。然而,尽管整体影响力有所下降,吉州窑的技艺和风格依然对周边地区产生深远影响,许多工匠将其技术传播到其他窑口,继续延续其制瓷传统。在近现代,随着历史遗址的发掘和研究,吉州窑的历史地位得以重新确认,其工艺也成为传统文化复兴和研究的重要对象。" },
+    { "id": 29, "label": "玳瑁斑", "color": "#e6c690", "details": "玳瑁斑是吉州窑黑釉瓷的代表性纹饰,通过特殊的烧制工艺,釉面呈现出如玳瑁壳般的斑驳效果。这种斑纹自然、丰富且层次分明,赋予器物极高的观赏价值。" },
+    { "id": 30, "label": "洒釉", "color": "#f7c59f", "details": "洒釉工艺是吉州窑装饰技法中的另一特色,通过将釉料随意泼洒或点滴在器物表面,形成独特的自然流动纹路。这种不规则的纹饰极具现代艺术感,展现了吉州窑工匠的创意精神。" },
+    { "id": 31, "label": "剔花", "color": "#a67b5b", "details": "剔花装饰是在陶器表面雕刻出花纹后,再进行施釉和烧制的技法。吉州窑的剔花工艺线条流畅,纹样生动,常见的图案有花卉、卷草等,充分体现了古代工匠的细腻技艺。" },
+    { "id": 32, "label": "剪纸贴花", "color": "#a67b5b", "details": "剪纸贴花技法是在器物表面贴上剪纸样式的花纹后,再进行施釉和烧制。吉州窑的剪纸贴花纹饰形式多样、生动活泼,既反映了民间艺术风格,也增加了瓷器的装饰趣味性。" }
   ],
   "edges": [
-    { "from": 1, "to": 2, "label": "地理关联" },
-    { "from": 1, "to": 3, "label": "历史传承" },
-    { "from": 1, "to": 4, "label": "产品与工艺" },
-    { "from": 1, "to": 5, "label": "文化贡献" },
-    { "from": 1, "to": 6, "label": "国际影响" },
-    { "from": 1, "to": 7, "label": "历史与成就" },
-    { "from": 7, "to": 8, "label": "贸易与珍藏" },
-    { "from": 8, "to": 9, "label": "现代延续" },
-    { "from": 1, "to": 10, "label": "保护措施" },
-    { "from": 1, "to": 11, "label": "装饰艺术" },
-    { "from": 11, "to": 12, "label": "瓷器种类" },
-    { "from": 1, "to": 13, "label": "遗址现状" }
+    { "from": 1, "to": 2},
+    { "from": 1, "to": 4},
+    { "from": 1, "to": 5},
+    { "from": 1, "to": 6},
+    { "from": 1, "to": 7},
+    { "from": 7, "to": 8},
+    { "from": 8, "to": 9},
+    { "from": 1, "to": 10},
+    { "from": 1, "to": 11},
+    { "from": 11, "to": 12},
+    { "from": 1, "to": 13},
+    { "from": 1, "to": 14},
+    { "from": 14, "to": 15},
+    { "from": 14, "to": 16},
+    { "from": 14, "to": 17},
+    { "from": 14, "to": 18},
+    { "from": 14, "to": 19},
+    { "from": 1, "to": 3},
+    { "from": 3, "to": 20},
+    { "from": 3, "to": 21},
+    { "from": 3, "to": 22},
+    { "from": 11, "to": 23},
+    { "from": 11, "to": 27},
+    { "from": 23, "to": 24},
+    { "from": 23, "to": 25},
+    { "from": 23, "to": 26},
+    { "from": 27, "to": 28},
+    { "from": 27, "to": 29},
+    { "from": 27, "to": 30},
+    { "from": 27, "to": 31},
+    { "from": 27, "to": 32}
   ]
 }

Some files were not shown because too many files changed in this diff