Logistics System Developer пре 1 месец
родитељ
комит
d83c999400

+ 1 - 2
README.md

@@ -79,8 +79,7 @@ go install github.com/beego/bee/v2@latest
 - chmod +x shudao-chat-go
 - 找到进程:ps -ef | grep shudao-chat-go
 - 杀死进程:kill -9 1029395   # 将 12345 替换为你找到的实际PID
-- nohup ./shudao-chat-go &
-  - tail -f nohup.out #查看实时状态
+- nohup ./shudao-chat-go & tail -f nohup.out #查看实时状态
 
 
 ---

+ 15 - 0
dist/index.html

@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html lang="">
+  <head>
+    <meta charset="UTF-8">
+    <!-- 网站图标 -->
+    <link rel="icon" href="/favicon.ico" sizes="any">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+    <title>蜀道安全管理AI智能助手</title>
+    <script type="module" crossorigin src="/assets/index-D4GNq-xU.js"></script>
+    <link rel="stylesheet" crossorigin href="/assets/index-DyE-T-6r.css">
+  </head>
+  <body>
+    <div id="app"></div>

+  </body>
+</html>

BIN
fuck-u-code-windows-amd64.exe


+ 1 - 0
shudao-chat-go/controllers/chat.go

@@ -2675,6 +2675,7 @@ func (c *ChatController) GuessYouWant() {
 2. 严禁在生成的问题中包含人名信息,任何人名都不行
 3. 严禁生成色情敏感信息
 4. 严禁生成超长文本,最多只能30个字
+
 ## 你的回答(仅输出3个问题,每行一个,或返回空)`, userMessage)
 
 	// 使用阿里大模型替代DeepSeek

BIN
shudao-chat-go/shudao-chat-go.tar.gz


+ 2 - 2
shudao-chat-go/views/index.html

@@ -6,8 +6,8 @@
     <link rel="icon" href="/favicon.ico" sizes="any">
     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
     <title>蜀道安全管理AI智能助手</title>
-    <script type="module" crossorigin src="/assets/index-Cqc2C3YC.js"></script>
-    <link rel="stylesheet" crossorigin href="/assets/index-S39HVMOn.css">
+    <script type="module" crossorigin src="/assets/index-D4GNq-xU.js"></script>
+    <link rel="stylesheet" crossorigin href="/assets/index-DyE-T-6r.css">
   </head>
   <body>
     <div id="app"></div>


+ 52 - 22
src/views/AIWriting.vue

@@ -74,11 +74,7 @@
                    contenteditable="true"
                    @input="handleTemplateInput"
                    @copy="handleCopy"
-                   placeholder="请在这里输入您的写作要求...">总结主题:<span class="editable-highlight" contenteditable="true"></span>
-总结时间:<span class="editable-highlight" contenteditable="true"></span>
-主要内容:<span class="editable-highlight" contenteditable="true"></span>
-
-请帮我生成一份正式的总结报告,要求格式规范、语言严谨,具体参考以上内容,按照标准工作总结格式生成全文,包含"工作总结、问题不足、未来计划"三部分的完整报告。</div>
+                   placeholder="请在这里输入您的写作要求..."></div>
 
               <div class="input-actions">
                 <div class="left-actions">
@@ -1385,12 +1381,26 @@ const createNewChat = async () => {
   // 重置输入框内容为默认模板
   const inputElement = document.querySelector('.template-input-container');
   if (inputElement) {
-    inputElement.innerHTML = `总结主题:<span class="editable-highlight" contenteditable="true"></span>
-总结时间:<span class="editable-highlight" contenteditable="true"></span>
-主要内容:<span class="editable-highlight" contenteditable="true"></span>
-
-请帮我生成一份正式的总结报告,要求格式规范、语言严谨,具体参考以上内容,按照标准工作总结格式生成全文,包含"工作总结、问题不足、未来计划"三部分的完整报告。`;
-    templateContent.value = inputElement.textContent || '';
+    const defaultTemplate = "<span class=\"editable-highlight\" contenteditable=\"true\">总结主题:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">总结时间:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">主要内容:</span>\n\n请帮我生成一份正式的总结报告,要求格式规范、语言严谨,具体参考以上内容,按照标准工作总结格式生成全文,包含\"工作总结、问题不足、未来计划\"三部分的完整报告。";
+
+    inputElement.innerHTML = defaultTemplate;
+    templateContent.value = defaultTemplate.replace(/<[^>]*>/g, '');
+
+    // 为高亮元素添加样式
+    nextTick(() => {
+      const highlights = inputElement.querySelectorAll('.editable-highlight');
+      highlights.forEach(highlight => {
+        highlight.style.backgroundColor = '#3E7BFA10';
+        highlight.style.color = '#3E7BFA';
+        highlight.style.padding = '4px 8px';
+        highlight.style.borderRadius = '6px';
+        highlight.style.fontWeight = '500';
+        highlight.style.cursor = 'text';
+        highlight.style.border = '1px solid transparent';
+        highlight.style.display = 'inline-block';
+        highlight.style.minWidth = '20px';
+      });
+    });
   }
 
   // 清除所有历史记录的选中状态
@@ -3009,22 +3019,22 @@ const useTemplate = (templateName) => {
   
   switch (templateName) {
     case "通知模板":
-      content = "通知主题:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n通知对象:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n具体事项:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n\n请帮我生成一份正式的通知,要求格式规范、语言严谨,具体参考以上内容,按照标准公文格式生成完整通知,包括文号、标题、正文、落款等所有要素。";
+      content = "<span class=\"editable-highlight\" contenteditable=\"true\">通知主题:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">通知对象:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">具体事项:</span>\n\n请帮我生成一份正式的通知,要求格式规范、语言严谨,具体参考以上内容,按照标准公文格式生成完整通知,包括文号、标题、正文、落款等所有要素。";
       break;
     case "公告模板":
-    content = "公告主题:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n发文单位:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n核心内容:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n\n请帮我生成一份正式的公告,要求格式规范、语言严谨,具体参考以上内容,按照标准公告格式生成全文,包括标题、正文、落款等所有要素。";
+    content = "<span class=\"editable-highlight\" contenteditable=\"true\">公告主题:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">发文单位:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">核心内容:</span>\n\n请帮我生成一份正式的公告,要求格式规范、语言严谨,具体参考以上内容,按照标准公告格式生成全文,包括标题、正文、落款等所有要素。";
       break;
     case "会议纪要模版":
-      content = "会议主题:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n会议时间:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n主要议题:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n\n请帮我生成一份正式的会议纪要,要求格式规范、语言严谨,具体参考以上内容,按照标准会议纪要格式生成全文,包含标题、导语、议定事项和落款。";
+      content = "<span class=\"editable-highlight\" contenteditable=\"true\">会议主题:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">会议时间:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">主要议题:</span>\n\n请帮我生成一份正式的会议纪要,要求格式规范、语言严谨,具体参考以上内容,按照标准会议纪要格式生成全文,包含标题、导语、议定事项和落款。";
       break;
     case "决定模版":
-      content = "决定主题:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n决定依据:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n决定内容:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n\n请帮我生成一份正式的决定,要求格式规范、语言严谨,具体参考以上内容,按照标准决定公文格式生成完整文件。";
+      content = "<span class=\"editable-highlight\" contenteditable=\"true\">决定主题:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">决定依据:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">决定内容:</span>\n\n请帮我生成一份正式的决定,要求格式规范、语言严谨,具体参考以上内容,按照标准决定公文格式生成完整文件。";
       break;
     case "工作汇报模板":
-      content = "总结主题:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n总结时间:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n主要内容:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n\n请帮我生成一份正式的总结报告,要求格式规范、语言严谨,具体参考以上内容,按照标准工作总结格式生成全文,包含\"工作总结、问题不足、未来计划\"三部分的完整报告。";
+      content = "<span class=\"editable-highlight\" contenteditable=\"true\">总结主题:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">总结时间:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">主要内容:</span>\n\n请帮我生成一份正式的总结报告,要求格式规范、语言严谨,具体参考以上内容,按照标准工作总结格式生成全文,包含\"工作总结、问题不足、未来计划\"三部分的完整报告。";
       break;
     default:
-    content = "公告主题:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n发文单位:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n核心内容:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n\n请帮我生成一份正式的公告,要求格式规范、语言严谨,具体参考以上内容,按照标准公告格式生成全文,包括标题、正文、落款等所有要素。";
+    content = "<span class=\"editable-highlight\" contenteditable=\"true\">公告主题:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">发文单位:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">核心内容:</span>\n\n请帮我生成一份正式的公告,要求格式规范、语言严谨,具体参考以上内容,按照标准公告格式生成全文,包括标题、正文、落款等所有要素。";
   }
   
   // 将模板内容填充到输入框中
@@ -4495,11 +4505,31 @@ watch(speechError, (newVal) => {
 // 组件挂载后初始化
 onMounted(async () => {
   await nextTick();
-  
-  // 初始化模板内容,包含默认的模板文字
-  const defaultTemplate = "总结主题:\n总结时间:\n主要内容:\n\n请帮我生成一份正式的总结报告,要求格式规范、语言严谨,具体参考以上内容,按照标准工作总结格式生成全文,包含\"工作总结、问题不足、未来计划\"三部分的完整报告。";
-  templateContent.value = defaultTemplate;
-  
+
+  // 初始化输入框的默认模板内容
+  const inputElement = document.querySelector('.template-input-container');
+  if (inputElement) {
+    const defaultTemplate = "<span class=\"editable-highlight\" contenteditable=\"true\">总结主题:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">总结时间:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">主要内容:</span>\n\n请帮我生成一份正式的总结报告,要求格式规范、语言严谨,具体参考以上内容,按照标准工作总结格式生成全文,包含\"工作总结、问题不足、未来计划\"三部分的完整报告。";
+
+    inputElement.innerHTML = defaultTemplate;
+    templateContent.value = defaultTemplate.replace(/<[^>]*>/g, '');
+
+    // 为高亮元素添加样式
+    await nextTick();
+    const highlights = inputElement.querySelectorAll('.editable-highlight');
+    highlights.forEach(highlight => {
+      highlight.style.backgroundColor = '#3E7BFA10';
+      highlight.style.color = '#3E7BFA';
+      highlight.style.padding = '4px 8px';
+      highlight.style.borderRadius = '6px';
+      highlight.style.fontWeight = '500';
+      highlight.style.cursor = 'text';
+      highlight.style.border = '1px solid transparent';
+      highlight.style.display = 'inline-block';
+      highlight.style.minWidth = '20px';
+    });
+  }
+
   // 获取历史记录列表
   await getHistoryRecordList();
 });

+ 19 - 22
src/views/mobile/m-AIWriting.vue

@@ -33,11 +33,7 @@
                  contenteditable="true"
                  @input="handleTemplateInput"
                  @copy="handleCopy"
-                 placeholder="请在这里输入您的写作要求...">总结主题:<span class="editable-highlight" contenteditable="true"></span>
-总结时间:<span class="editable-highlight" contenteditable="true"></span>
-主要内容:<span class="editable-highlight" contenteditable="true"></span>
-
-请帮我生成一份正式的总结报告,要求格式规范、语言严谨,具体参考以上内容,按照标准工作总结格式生成全文,包含"工作总结、问题不足、未来计划"三部分的完整报告。</div>
+                 placeholder="请在这里输入您的写作要求..."></div>
 
             <div class="input-actions">
               <div class="left-actions">
@@ -341,22 +337,22 @@ const useTemplate = (templateName) => {
   
   switch (templateName) {
     case '公告模板':
-      content = "公告主题:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n发文单位:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n核心内容:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n\n请帮我生成一份正式的公告,要求格式规范、语言严谨,具体参考以上内容,按照标准公告格式生成全文,包括标题、正文、落款等所有要素。"
+      content = "<span class=\"editable-highlight\" contenteditable=\"true\">公告主题:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">发文单位:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">核心内容:</span>\n\n请帮我生成一份正式的公告,要求格式规范、语言严谨,具体参考以上内容,按照标准公告格式生成全文,包括标题、正文、落款等所有要素。"
       break
     case '通知模板':
-      content = "通知主题:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n通知对象:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n具体事项:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n\n请帮我生成一份正式的通知,要求格式规范、语言严谨,具体参考以上内容,按照标准公文格式生成完整通知,包括文号、标题、正文、落款等所有要素。"
+      content = "<span class=\"editable-highlight\" contenteditable=\"true\">通知主题:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">通知对象:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">具体事项:</span>\n\n请帮我生成一份正式的通知,要求格式规范、语言严谨,具体参考以上内容,按照标准公文格式生成完整通知,包括文号、标题、正文、落款等所有要素。"
       break
     case '工作汇报模板':
-      content = "总结主题:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n总结时间:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n主要内容:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n\n请帮我生成一份正式的总结报告,要求格式规范、语言严谨,具体参考以上内容,按照标准工作总结格式生成全文,包含\"工作总结、问题不足、未来计划\"三部分的完整报告。"
+      content = "<span class=\"editable-highlight\" contenteditable=\"true\">总结主题:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">总结时间:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">主要内容:</span>\n\n请帮我生成一份正式的总结报告,要求格式规范、语言严谨,具体参考以上内容,按照标准工作总结格式生成全文,包含\"工作总结、问题不足、未来计划\"三部分的完整报告。"
       break
     case '会议纪要模版':
-      content = "会议主题:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n会议时间:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n主要议题:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n\n请帮我生成一份正式的会议纪要,要求格式规范、语言严谨,具体参考以上内容,按照标准会议纪要格式生成全文,包含标题、导语、议定事项和落款。"
+      content = "<span class=\"editable-highlight\" contenteditable=\"true\">会议主题:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">会议时间:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">主要议题:</span>\n\n请帮我生成一份正式的会议纪要,要求格式规范、语言严谨,具体参考以上内容,按照标准会议纪要格式生成全文,包含标题、导语、议定事项和落款。"
       break
     case '决定模版':
-      content = "决定主题:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n决定依据:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n决定内容:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n\n请帮我生成一份正式的决定,要求格式规范、语言严谨,具体参考以上内容,按照标准决定公文格式生成完整文件。"
+      content = "<span class=\"editable-highlight\" contenteditable=\"true\">决定主题:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">决定依据:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">决定内容:</span>\n\n请帮我生成一份正式的决定,要求格式规范、语言严谨,具体参考以上内容,按照标准决定公文格式生成完整文件。"
       break
     default:
-      content = "文档主题:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n主要内容:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n具体要求:<span class=\"editable-highlight\" contenteditable=\"true\"></span>\n\n请帮我生成一份正式的文档,要求格式规范、语言严谨,具体参考以上内容。"
+      content = "<span class=\"editable-highlight\" contenteditable=\"true\">文档主题:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">主要内容:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">具体要求:</span>\n\n请帮我生成一份正式的文档,要求格式规范、语言严谨,具体参考以上内容。"
   }
   
   // 设置模板内容到输入框
@@ -895,11 +891,7 @@ const createNewTask = () => {
   ai_conversation_id.value = 0
 
   // 重置到默认模板内容
-  const defaultTemplate = `总结主题:<span class="editable-highlight" contenteditable="true"></span>
-总结时间:<span class="editable-highlight" contenteditable="true"></span>
-主要内容:<span class="editable-highlight" contenteditable="true"></span>
-
-请帮我生成一份正式的总结报告,要求格式规范、语言严谨,具体参考以上内容,按照标准工作总结格式生成全文,包含"工作总结、问题不足、未来计划"三部分的完整报告。`
+  const defaultTemplate = "<span class=\"editable-highlight\" contenteditable=\"true\">总结主题:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">总结时间:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">主要内容:</span>\n\n请帮我生成一份正式的总结报告,要求格式规范、语言严谨,具体参考以上内容,按照标准工作总结格式生成全文,包含\"工作总结、问题不足、未来计划\"三部分的完整报告。"
 
   // 重新设置输入框内容
   const inputElement = document.querySelector('.template-input-container')
@@ -1078,15 +1070,17 @@ const deleteHistoryItem = async (historyItem, index) => {
 
 onMounted(() => {
   console.log('Mobile AI Writing Page Loaded')
-  // 初始化输入框的默认文本到响应式状态,确保 hasInputContent 初始即正确
+  // 初始化输入框的默认模板内容
   nextTick(() => {
     const inputElement = document.querySelector('.template-input-container')
     if (inputElement) {
-      const text = (inputElement.textContent || '').trim()
-      if (text) {
-        templateContent.value = text
-      }
-      // 挂载后为默认模板中的高亮占位元素补齐样式
+      // 设置默认模板内容(工作汇报模板)
+      const defaultTemplate = "<span class=\"editable-highlight\" contenteditable=\"true\">总结主题:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">总结时间:</span>\n<span class=\"editable-highlight\" contenteditable=\"true\">主要内容:</span>\n\n请帮我生成一份正式的总结报告,要求格式规范、语言严谨,具体参考以上内容,按照标准工作总结格式生成全文,包含\"工作总结、问题不足、未来计划\"三部分的完整报告。"
+
+      inputElement.innerHTML = defaultTemplate
+      templateContent.value = defaultTemplate.replace(/<[^>]*>/g, '')
+
+      // 为高亮元素添加样式和交互功能
       const highlights = inputElement.querySelectorAll('.editable-highlight')
       highlights.forEach(highlight => {
         highlight.style.backgroundColor = '#3E7BFA10'
@@ -1098,10 +1092,13 @@ onMounted(() => {
         highlight.style.border = '1px solid transparent'
         highlight.style.display = 'inline-block'
         highlight.style.minWidth = '20px'
+        highlight.style.margin = '6px 8px 6px 0'
+
         highlight.addEventListener('click', () => {
           highlight.contentEditable = 'true'
           highlight.focus()
         })
+
         highlight.addEventListener('blur', () => {
           highlight.contentEditable = 'false'
         })