m2pool_web_frontend/mining-pool/test/js/app-93e14cbe.808377ef.js

1 line
31 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";(self["webpackChunkmining_pool"]=self["webpackChunkmining_pool"]||[]).push([[243],{8619:function(t,e,a){var s=a(3999)["default"];Object.defineProperty(e,"B",{value:!0}),e.A=void 0;var i=s(a(70525));e.A={mixins:[i.default]}},9396:function(t,e,a){Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=void 0;var s=a(1652);e["default"]={data(){return{documentLTypeList:[{value:"1",label:"服务条款"},{value:"2",label:"api文档"},{value:"3",label:"挖矿教程"},{value:"0",label:"其他"}],addParams:{content:"",lang:"",subTitle:"",title:"",type:""}}},mounted(){this.$route.query.id&&this.fetchDataInfo({id:this.$route.query.id})},methods:{async fetchDataInfo(t){const e=await(0,s.findDataInfo)(t);e&&200===e.code&&(this.modifyData=e.data,this.addParams.content=this.modifyData.content)}}}},11527:function(t,e){e.Yp=e.XX=void 0;e.XX=function(){var t=this,e=t._self._c;return e("div",{staticClass:"markdown-editor"},[e("div",{staticClass:"editor-main"},[e("el-card",{staticClass:"doc-info"},[e("div",{attrs:{slot:"header"},slot:"header"},[e("span",[t._v("文档配置")])]),e("el-form",{attrs:{model:t.addParams,"label-width":"100px"}},[e("el-row",{attrs:{gutter:20}},[e("el-col",{attrs:{span:8}},[e("el-form-item",{attrs:{label:"文档标题"}},[e("el-input",{attrs:{placeholder:"请输入文档标题"},model:{value:t.addParams.title,callback:function(e){t.$set(t.addParams,"title",e)},expression:"addParams.title"}})],1)],1),e("el-col",{attrs:{span:8}},[e("el-form-item",{attrs:{label:"文档类型"}},[e("el-select",{attrs:{placeholder:"请选择"},model:{value:t.addParams.type,callback:function(e){t.$set(t.addParams,"type",e)},expression:"addParams.type"}},t._l(t.documentLTypeList,(function(t){return e("el-option",{key:t.value,attrs:{label:t.label,value:t.value}})})),1)],1)],1)],1)],1)],1),e("div",{staticClass:"editor-header"},[t._m(0),e("div",{staticClass:"header-actions"},[e("el-button",{attrs:{icon:"el-icon-refresh",size:"small"},on:{click:t.resetDocument}},[t._v("重置")]),e("el-button",{attrs:{icon:"el-icon-view",size:"small",type:"primary"},on:{click:t.handlePreview}},[t._v("预览")]),e("el-button",{attrs:{loading:t.saveLoading,icon:"el-icon-document",size:"small",type:"success"},on:{click:t.handleSave}},[t._v("保存草稿")]),e("el-button",{attrs:{loading:t.publishLoading,icon:"el-icon-upload",size:"small",type:"warning"},on:{click:t.handlePublish}},[t._v("发布")])],1)]),e("transition",{attrs:{name:"slide-fade"}},[e("el-card",{directives:[{name:"show",rawName:"v-show",value:t.showMarkdownGuide,expression:"showMarkdownGuide"}],staticClass:"markdown-guide-card"},[e("div",{attrs:{slot:"header"},slot:"header"},[e("span",[t._v("📝 Markdown 语法规则详解")]),e("el-button",{staticStyle:{float:"right",padding:"3px 0"},attrs:{type:"text",icon:"el-icon-close"},on:{click:t.toggleMarkdownGuide}},[t._v(" 关闭 ")])],1),e("div",{staticClass:"guide-content"},[e("div",{staticClass:"guide-section"},[e("h4",[t._v("1. 标题语法 (#符号)")]),e("div",{staticClass:"example-container"},[e("div",{staticClass:"syntax-example"},[e("pre",[e("code",[t._v("# 一级标题 (最大)\n## 二级标题 \n### 三级标题\n#### 四级标题\n##### 五级标题\n###### 六级标题 (最小)")])])]),e("div",{staticClass:"result-preview"},[e("h1",{staticStyle:{"font-size":"24px",margin:"8px 0"}},[t._v("一级标题")]),e("h2",{staticStyle:{"font-size":"20px",margin:"6px 0"}},[t._v("二级标题")]),e("h3",{staticStyle:{"font-size":"16px",margin:"4px 0"}},[t._v("三级标题")])])])]),e("div",{staticClass:"guide-section"},[e("h4",[t._v("2. 文本格式化")]),e("div",{staticClass:"example-container"},[e("div",{staticClass:"syntax-example"},[e("pre",[e("code",[t._v("**粗体文本**\n*斜体文本*\n***粗斜体***\n~~删除线~~\n`行内代码`")])])]),e("div",{staticClass:"result-preview"},[e("p",[e("strong",[t._v("粗体文本")])]),e("p",[e("em",[t._v("斜体文本")])]),e("p",[e("strong",[e("em",[t._v("粗斜体")])])]),e("p",[e("del",[t._v("删除线")])]),e("p",[e("code",[t._v("行内代码")])])])])]),e("div",{staticClass:"guide-section"},[e("h4",[t._v("3. 列表语法")]),e("div",{staticClass:"example-container"},[e("div",{staticClass:"syntax-example"},[e("pre",[e("code",[t._v("- 无序列表项 1\n- 无序列表项 2\n - 子列表项 2.1\n - 子列表项 2.2\n\n1. 有序列表项 1\n2. 有序列表项 2")])])]),e("div",{staticClass:"result-preview"},[e("ul",[e("li",[t._v("无序列表项 1")]),e("li",[t._v("无序列表项 2 "),e("ul",[e("li",[t._v("子列表项 2.1")]),e("li",[t._v("子列表项 2.2")])])])]),e("ol",[e("li",[t._v("有序列表项 1")]),e("li",[t._v("有序列表项 2")])])])])]),e("div",{staticClass:"guide-section"},[e("h4",[t._v("4. 代码块")]),e("div",{staticClass:"example-container"},[e("div",{staticClass:"syntax-example"},[e("pre",[e("code",[t._v("```javascript\nfunction hello() {\n return 'Hello World';\n}\n```")])])]),e("div",{staticClass:"result-preview"},[e("pre",{staticStyle:{background:"#f5f5f5",padding:"10px","border-radius":"4px"}},[e("code",[t._v("function hello() {\n return 'Hello World';\n}")])])])])]),e("div",{staticClass:"guide-section"},[e("h4",[t._v("5. 表格语法")]),e("div",{staticClass:"example-container"},[e("div",{staticClass:"syntax-example"},[e("pre",[e("code",[t._v("| 名称 | 类型 | 备注 |\n|------|------|------|\n| id | number | 必填 |\n| name | string | 可选 |")])])]),e("div",{staticClass:"result-preview"},[e("table",{staticStyle:{"border-collapse":"collapse",width:"100%"}},[e("thead",[e("tr",[e("th",{staticStyle:{border:"1px solid #ddd",padding:"8px"}},[t._v("名称")]),e("th",{staticStyle:{border:"1px solid #ddd",padding:"8px"}},[t._v("类型")]),e("th",{staticStyle:{border:"1px solid #ddd",padding:"8px"}},[t._v("备注")])])]),e("tbody",[e("tr",[e("td",{staticStyle:{border:"1px solid #ddd",padding:"8px"}},[t._v("id")]),e("td",{staticStyle:{border:"1px solid #ddd",padding:"8px"}},[t._v("number")]),e("td",{staticStyle:{border:"1px solid #ddd",padding:"8px"}},[t._v("必填")])]),e("tr",[e("td",{staticStyle:{border:"1px solid #ddd",padding:"8px"}},[t._v("name")]),e("td",{staticStyle:{border:"1px solid #ddd",padding:"8px"}},[t._v("string")]),e("td",{staticStyle:{border:"1px solid #ddd",padding:"8px"}},[t._v("可选")])])])])])])]),e("div",{staticClass:"guide-section"},[e("h4",[t._v("6. 链接语法")]),e("div",{staticClass:"example-container"},[e("div",{staticClass:"syntax-example"},[e("pre",[e("code",[t._v("[链接文字](https://example.com)\n[参考链接][1]\n\n[1]: https://example.com")])])]),e("div",{staticClass:"result-preview"},[e("p",[e("a",{attrs:{href:"https://example.com"}},[t._v("链接文字")])]),e("p",[e("a",{attrs:{href:"https://example.com"}},[t._v("参考链接")])])])])]),e("div",{staticClass:"guide-section tips-section"},[e("h4",[t._v("💡 实用提示")]),e("div",{staticClass:"tips-grid"},[e("div",{staticClass:"tip-item"},[e("strong",[t._v("API文档")]),t._v("使用### 创建接口标题 ")]),e("div",{staticClass:"tip-item"},[e("strong",[t._v("参数表格:")]),t._v('点击"插入表格"按钮快速插入 ')]),e("div",{staticClass:"tip-item"},[e("strong",[t._v("代码示例:")]),t._v('点击"代码块"按钮插入 ')]),e("div",{staticClass:"tip-item"},[e("strong",[t._v("实时预览:")]),t._v("使用分屏模式边写边看效果 ")])])])])])],1),e("div",{staticClass:"editor-tools"},[e("div",{staticClass:"mode-switch"},[e("button",{staticClass:"mode-btn",class:{active:"edit"===t.editorMode},on:{click:function(e){t.editorMode="edit"}}},[t._v(" 编辑 ")]),e("button",{staticClass:"mode-btn",class:{active:"preview"===t.editorMode},on:{click:function(e){t.editorMode="preview"}}},[t._v(" 预览 ")]),e("button",{staticClass:"mode-btn",class:{active:"split"===t.editorMode},on:{click:function(e){t.editorMode="split"}}},[t._v(" 分屏 ")])]),e("div",{staticClass:"tool-actions"},[e("el-button",{attrs:{size:"mini"},on:{click:function(e){return t.insertTemplate("table")}}},[t._v("插入表格")]),e("el-button",{attrs:{size:"mini"},on:{click:function(e){return t.insertTemplate("code")}}},[t._v("代码块")]),e("el-button",{attrs:{size:"mini"},on:{click:function(e){return t.insertTemplate("api")}}},[t._v("API接口")]),e("el-button",{attrs:{size:"mini",type:"primary",icon:t.showMarkdownGuide?"el-icon-arrow-up":"el-icon-question"},on:{click:t.toggleMarkdownGuide}},[t._v(" "+t._s(t.showMarkdownGuide?"隐藏":"了解")+"使用规则 ")])],1)]),e("el-row",{attrs:{gutter:20}},[e("el-col",{attrs:{span:"preview"===t.editorMode?0:"split"===t.editorMode?12:24}},[e("div",{directives:[{name:"show",rawName:"v-show",value:"preview"!==t.editorMode,expression:"editorMode !== 'preview'"}],staticClass:"editor-panel"},[e("div",{staticClass:"panel-header"},[e("span",[t._v("Markdown 编辑")]),e("div",{staticClass:"panel-actions"},[e("span",{staticClass:"word-count"},[t._v(t._s(t.wordCount)+" 字")]),e("span",{staticClass:"auto-save-status",class:t.autoSaveStatus.type},[e("i",{class:t.autoSaveStatus.icon}),t._v(" "+t._s(t.autoSaveStatus.text)+" ")])])]),e("div",{staticClass:"markdown-textarea"},[e("el-input",{ref:"markdownInput",attrs:{type:"textarea",rows:25,placeholder:"开始编写您的文档..."},on:{input:t.handleContentChange},model:{value:t.addParams.content,callback:function(e){t.$set(t.addParams,"content",e)},expression:"addParams.content"}})],1)])]),e("el-col",{attrs:{span:"edit"===t.editorMode?0:"split"===t.editorMode?12:24}},[e("div",{directives:[{name:"show",rawName:"v-show",value:"edit"!==t.editorMode,expression:"editorMode !== 'edit'"}],staticClass:"editor-panel"},[e("div",{staticClass:"panel-header"},[e("span",[t._v("实时预览")]),e("div",{staticClass:"panel-actions"},[e("el-button",{attrs:{size:"mini"},on:{click:t.copyHtml}},[t._v("复制HTML")])],1)]),e("div",{staticClass:"markdown-preview",domProps:{innerHTML:t._s(t.markdownToHtml(t.addParams.content))}})])])],1)],1),e("el-dialog",{attrs:{title:"文档预览",visible:t.previewVisible,width:"80%",top:"5vh"},on:{"update:visible":function(e){t.previewVisible=e}}},[e("div",{staticClass:"preview-content",domProps:{innerHTML:t._s(t.markdownToHtml(t.addParams.content))}})])],1)},e.Yp=[function(){var t=this,e=t._self._c;return e("div",{staticClass:"header-title"},[e("h1",[t._v("Markdown 文档编辑器")]),e("p",[t._v("支持实时预览的文档编辑工具")])])}]},32020:function(t,e,a){var s=a(3999)["default"];Object.defineProperty(e,"B",{value:!0}),e.A=void 0,a(44114),a(18111),a(81148),a(7588),a(61701),a(17642),a(58004),a(33853),a(45876),a(32475),a(15024),a(31698);var i=a(1652),n=s(a(9396));e.A={name:"MarkdownEditor",mixins:[n.default],data(){return{addParams:{title:"",subTitle:"",contentType:"markdown",content:"",status:"draft",id:null},editorMode:"split",saveLoading:!1,publishLoading:!1,previewVisible:!1,wordCount:0,showMarkdownGuide:!1,autoSaveTimer:null,autoSaveStatus:{type:"idle",text:"",icon:""},lastSavedContent:""}},computed:{formattedParams(){const t={id:this.addParams.id&&""!==this.addParams.id?this.addParams.id:null,title:this.addParams.title,subTitle:this.addParams.subTitle||"",content:this.addParams.content,lang:this.$i18n?.locale||"zh",type:this.addParams.type||""};return JSON.stringify(t,null,2)}},methods:{toggleMarkdownGuide(){this.showMarkdownGuide=!this.showMarkdownGuide},markdownToHtml(t){if(!t)return"";const e=t.split("\n"),a=[];let s=[],i=!1,n=[],o=[],d=!1;for(let r=0;r<e.length;r++){const t=e[r],l=t.trim();if(l.startsWith("```")){if(i){i=!1,a.push(`<pre><code>${n.join("\n")}</code></pre>`),n=[];continue}i=!0,n=[];continue}if(i){n.push(t);continue}if(!l){this.closeAllLists(a,s),this.closeTable(a,o,d),d=!1,o=[],a.length>0&&!a[a.length-1].endsWith("</p>")&&a.push("");continue}if(l.includes("|")&&!l.startsWith("#")){d||(d=!0,o=[]),o.push(t);continue}d&&(this.closeTable(a,o,d),d=!1,o=[]);const c=l.match(/^(#{1,6})\s+(.+)$/);if(c){this.closeAllLists(a,s);const t=c[1].length,e=c[2];a.push(`<h${t}>${e}</h${t}>`);continue}const h=t.match(/^(\s*)(\d+)\.\s+(.+)$/);if(h){const t=h[1].length,e=this.processInlineMarkdown(h[3]),i=0===t;this.handleListItem(a,s,t,"ol",e,i);continue}const u=t.match(/^(\s*)[-*+]\s+(.+)$/);if(u){const t=u[1].length,e=this.processInlineMarkdown(u[2]),i=0===t;this.handleListItem(a,s,t,"ul",e,i);continue}this.closeAllLists(a,s);const m=this.processInlineMarkdown(l);a.push(`<p>${m}</p>`)}return this.closeAllLists(a,s),this.closeTable(a,o,d),a.join("\n")},processInlineMarkdown(t){return t.replace(/\[([^\]]+)\]\(([^)]+)\)/g,'<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>').replace(/\*\*(.*?)\*\*/g,"<strong>$1</strong>").replace(/\*(.*?)\*/g,"<em>$1</em>").replace(/`([^`]*)`/g,"<code>$1</code>").replace(/~~(.*?)~~/g,"<del>$1</del>")},handleListItem(t,e,a,s,i,n=!1){const o=Math.floor(a/3);while(e.length>o+1){const a=e.pop();t.push(`</${a.type}>`)}if(e.length===o){const a=n&&"ol"===s?' class="spaced-list"':"";t.push(`<${s}${a}>`),e.push({type:s,level:o})}else if(e.length===o+1){const a=e[o];if(a&&a.type!==s){t.push(`</${a.type}>`);const i=n&&"ol"===s?' class="spaced-list"':"";t.push(`<${s}${i}>`),e[o]={type:s,level:o}}}const d=n&&"ol"===s?' class="main-item"':"";t.push(`<li${d}>${i}</li>`)},closeAllLists(t,e){while(e.length>0){const a=e.pop();t.push(`</${a.type}>`)}},closeTable(t,e,a){a&&e.length>0&&(t.push('<table border="1">'),e.forEach(((e,a)=>{const s=e.split("|").slice(1,-1).map((t=>t.trim()));if(s.every((t=>/^[-\s:]*$/.test(t))))return;const i=0===a?"th":"td",n=s.map((t=>`<${i}>${this.processInlineMarkdown(t)}</${i}>`)).join("");t.push(`<tr>${n}</tr>`)})),t.push("</table>"))},insertTemplate(t){const e={table:"| 名称 | 类型 | 备注 | 解释 |\n|------|------|------|------|\n| name | string | 必填 | 参数名称 |",code:"```javascript\n// 示例代码\nfunction example() {\n return 'Hello World'\n}\n```",api:"### POST /api/v1/example\n\n#### 请求参数\n\n| 名称 | 类型 | 备注 | 解释 |\n|------|------|------|------|\n| param1 | string | 必填 | 参数说明 |\n\n#### 响应参数\n\n| 名称 | 类型 | 备注 | 解释 |\n|------|------|------|------|\n| result | object | | 返回结果 |"},a=e[t];if(!a)return;const s=this.$refs.markdownInput.$el.querySelector("textarea"),i=s.selectionStart,n=this.addParams.content,o=n.substring(0,i)+"\n\n"+a+"\n\n"+n.substring(i);this.addParams.content=o,this.$nextTick((()=>{s.focus();const t=i+a.length+4;s.setSelectionRange(t,t)}))},handleContentChange(){this.updateWordCount(),this.handleAutoSave()},updateWordCount(){this.wordCount=this.addParams.content.length},handleAutoSave(){this.addParams.content!==this.lastSavedContent&&(this.autoSaveTimer&&clearTimeout(this.autoSaveTimer),this.autoSaveStatus={type:"editing",text:"编辑中...",icon:"el-icon-edit"},this.autoSaveTimer=setTimeout((()=>{this.autoSaveStatus={type:"saving",text:"保存中...",icon:"el-icon-loading"},this.performAutoSave()}),1e3))},async performAutoSave(){try{this.saveToDraft(),this.addParams.title.trim()&&await this.autoSaveToServer(),this.autoSaveStatus={type:"saved",text:"已保存",icon:"el-icon-check"},this.lastSavedContent=this.addParams.content,setTimeout((()=>{"saved"===this.autoSaveStatus.type&&"已保存"===this.autoSaveStatus.text&&(this.autoSaveStatus={type:"idle",text:"",icon:""})}),3e3)}catch(t){console.error("自动保存失败:",t),this.autoSaveStatus={type:"error",text:"保存失败",icon:"el-icon-warning"}}},generateDraftKey(){if(this.addParams.id)return`markdown_draft_id_${this.addParams.id}`;if(this.addParams.title&&this.addParams.title.trim()){const t=this.addParams.title.replace(/[^a-zA-Z0-9\u4e00-\u9fa5]/g,"").substring(0,20);return`markdown_draft_title_${t}`}return"markdown_draft_default"},getAllPossibleDraftKeys(){const t=[];if(this.addParams.id&&t.push(`markdown_draft_id_${this.addParams.id}`),this.addParams.title&&this.addParams.title.trim()){const e=this.addParams.title.replace(/[^a-zA-Z0-9\u4e00-\u9fa5]/g,"").substring(0,20);t.push(`markdown_draft_title_${e}`)}return t.push("markdown_draft_default"),[...new Set(t)]},saveToDraft(){const t=this.generateDraftKey(),e={title:this.addParams.title,content:this.addParams.content,type:this.addParams.type,lastSaved:(new Date).toISOString()};localStorage.setItem(t,JSON.stringify(e)),console.log("草稿已保存到本地存储:",t)},loadDraft(){const t=this.getAllPossibleDraftKeys();let e=null,a=null,s=0;if(t.forEach((t=>{const i=localStorage.getItem(t);if(i)try{const n=JSON.parse(i),o=new Date(n.lastSaved).getTime();o>s&&(e=n,a=t,s=o)}catch(n){console.error("解析草稿数据失败:",n),localStorage.removeItem(t)}})),e){const t=(new Date).getTime(),i=t-s;i<864e5&&e.content&&e.content.trim()?(this.addParams.title=e.title||this.addParams.title,this.addParams.content=e.content,this.addParams.type=e.type||this.addParams.type,this.lastSavedContent=e.content,this.updateWordCount(),this.$message({message:`已自动恢复草稿 (${new Date(e.lastSaved).toLocaleString()})`,type:"success",duration:3e3}),this.autoSaveStatus={type:"saved",text:"草稿已恢复",icon:"el-icon-check"},setTimeout((()=>{"saved"===this.autoSaveStatus.type&&"草稿已恢复"===this.autoSaveStatus.text&&(this.autoSaveStatus={type:"idle",text:"",icon:""})}),3e3)):i>=864e5&&localStorage.removeItem(a)}},clearDraft(){const t=this.getAllPossibleDraftKeys();t.forEach((t=>{localStorage.removeItem(t)})),console.log("已清除草稿:",t)},async autoSaveToServer(){if(!this.addParams.title.trim())return;const t={id:this.addParams.id&&""!==this.addParams.id?this.addParams.id:null,title:this.addParams.title,subTitle:this.addParams.subTitle||"",content:this.addParams.content,lang:this.$i18n?.locale||"zh",type:this.addParams.type||2,isDraft:!0};console.log("自动保存到服务器:",t)},handleBeforeUnload(t){if(this.addParams.content!==this.lastSavedContent){this.saveToDraft();const e="您有未保存的更改,确定要离开吗?";return t.returnValue=e,e}},handlePreview(){this.previewVisible=!0},resetDocument(){this.$confirm("确定要重置文档内容吗?当前所有修改将丢失。","确认重置",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{this.addParams.content="",this.addParams.title="",this.addParams.subTitle="",this.addParams.type="",this.addParams.status="draft",this.addParams.id=null,this.clearDraft(),this.lastSavedContent="",this.updateWordCount(),this.$message.success("文档内容已重置")})).catch((()=>{}))},async handleSave(){if(this.addParams.title.trim()){this.saveLoading=!0;try{const t={id:this.addParams.id&&""!==this.addParams.id?this.addParams.id:null,title:this.addParams.title,subTitle:this.addParams.subTitle||"",content:this.addParams.content,lang:this.$i18n?.locale||"zh",type:2};console.log("保存文档数据 - 完整参数:",t),console.log("当前语言:",this.$i18n?.locale);const e=await(0,i.addDocument)(t);if(!e||200!==e.code)throw new Error(e?.message||"保存失败");this.$message.success("草稿保存成功"),e.data&&e.data.id&&(this.addParams.id=e.data.id),this.clearDraft(),this.lastSavedContent=this.addParams.content,this.autoSaveStatus={type:"saved",text:"已保存",icon:"el-icon-check"},setTimeout((()=>{"saved"===this.autoSaveStatus.type&&"已保存"===this.autoSaveStatus.text&&(this.autoSaveStatus={type:"idle",text:"",icon:""})}),3e3)}catch(t){console.error("保存文档失败:",t),this.$message.error("保存失败: "+(t.message||"未知错误"))}finally{this.saveLoading=!1}}else this.$message.warning("请输入文档标题")},async handlePublish(){if(this.addParams.title.trim())if(this.addParams.content.trim())if(this.addParams.type){this.publishLoading=!0;try{const t={id:this.addParams.id&&""!==this.addParams.id?this.addParams.id:null,title:this.addParams.title,subTitle:this.addParams.subTitle||"",content:this.addParams.content,lang:this.$i18n?.locale||"zh",type:this.addParams.type||""};console.log("发布文档数据 - 完整参数:",t),console.log("当前语言:",this.$i18n?.locale),console.log("文档ID类型:",typeof this.addParams.id,"值:",this.addParams.id);const e=await(0,i.addDocument)(t);if(!e||200!==e.code)throw new Error(e?.message||"发布失败");this.addParams.status="published",this.$message.success("文档发布成功"),e.data&&e.data.id&&(this.addParams.id=e.data.id),this.clearDraft(),this.lastSavedContent=this.addParams.content,this.autoSaveStatus={type:"saved",text:"已发布",icon:"el-icon-success"},setTimeout((()=>{"saved"===this.autoSaveStatus.type&&"已发布"===this.autoSaveStatus.text&&(this.autoSaveStatus={type:"idle",text:"",icon:""})}),3e3),this.$notify({title:"发布成功",message:`文档 "${this.addParams.title}" 已成功发布`,type:"success",duration:3e3})}catch(t){console.error("发布文档失败:",t),this.$message.error("发布失败: "+(t.message||"未知错误"))}finally{this.publishLoading=!1}}else this.$message.warning("请选择文档类型");else this.$message.warning("请输入文档内容");else this.$message.warning("请输入文档标题")},copyHtml(){const t=this.markdownToHtml(this.addParams.content);navigator.clipboard.writeText(t).then((()=>{this.$message.success("HTML已复制到剪贴板")}))},copyParams(){navigator.clipboard.writeText(this.formattedParams).then((()=>{this.$message.success("参数已复制到剪贴板")}))}},mounted(){this.updateWordCount(),this.loadDraft(),this.lastSavedContent=this.addParams.content,window.addEventListener("beforeunload",this.handleBeforeUnload),setTimeout((()=>{"idle"===this.autoSaveStatus.type&&(this.autoSaveStatus={type:"saved",text:"自动保存已启用",icon:"el-icon-circle-check"},setTimeout((()=>{"自动保存已启用"===this.autoSaveStatus.text&&(this.autoSaveStatus={type:"idle",text:"",icon:""})}),2e3))}),500)},beforeDestroy(){this.autoSaveTimer&&clearTimeout(this.autoSaveTimer),window.removeEventListener("beforeunload",this.handleBeforeUnload)}}},44340:function(t,e,a){a.r(e),a.d(e,{__esModule:function(){return i.B},default:function(){return r}});var s=a(11527),i=a(32020),n=i.A,o=a(81656),d=(0,o.A)(n,s.XX,s.Yp,!1,null,"03a299e6",null),r=d.exports},48191:function(t,e){e.Yp=e.XX=void 0;e.XX=function(){var t=this,e=t._self._c;return e("div",{directives:[{name:"loading",rawName:"v-loading",value:t.documentLoading,expression:"documentLoading"}]},[e("div",{staticClass:"main-title-box"},[e("div",{staticClass:"main-title"},[t._v(t._s(t.$t("backendSystem.documentManagement")))]),e("el-button",{staticClass:"add-btn",on:{click:t.handelAddDocument}},[t._v(t._s(t.$t("backendSystem.addDocument"))+" "),e("i",{staticClass:"iconfont icon-youjiantou1 arrow"})])],1),e("el-table",{staticStyle:{width:"100%","margin-bottom":"18px"},attrs:{data:t.tableData,border:"","header-cell-style":{"text-align":"center"},"cell-style":{"text-align":"center"},height:"60vh"}},[e("el-table-column",{attrs:{prop:"id",label:"ID",width:"60"}}),e("el-table-column",{attrs:{prop:"createTime",label:"创建时间",width:"160","show-overflow-tooltip":""},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v(" "+t._s(t.handelTime(e.row.createTime))+" ")]}}])}),e("el-table-column",{attrs:{prop:"createUser",label:"创建人",width:"160","show-overflow-tooltip":""}}),e("el-table-column",{attrs:{prop:"content",label:"文档内容","show-overflow-tooltip":""}}),e("el-table-column",{attrs:{prop:"title",label:"文档标题",width:"200","show-overflow-tooltip":""}}),e("el-table-column",{attrs:{prop:"type",label:"文档类型",width:"100","show-overflow-tooltip":""}}),e("el-table-column",{attrs:{prop:"updateTime",label:"修改时间",width:"160","show-overflow-tooltip":""},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v(" "+t._s(t.handelTime(e.row.updateTime))+" ")]}}])}),e("el-table-column",{attrs:{prop:"updateUser",label:"修改人",width:"160","show-overflow-tooltip":""}}),e("el-table-column",{attrs:{label:t.$t("backendSystem.operation"),width:"160"},scopedSlots:t._u([{key:"default",fn:function(a){return[e("el-button",{attrs:{size:"mini"},on:{click:function(e){return t.handleEdit(a.row)}}},[t._v(t._s(t.$t("backendSystem.edit")))]),e("el-popconfirm",{attrs:{"confirm-button-text":t.$t("work.confirm"),"cancel-button-text":t.$t("work.cancel"),icon:"el-icon-info","icon-color":"red",title:t.$t("alerts.deleteRemind")},on:{confirm:function(e){return t.handelDelete(a.row)}}},[e("el-button",{staticClass:"elBtn",attrs:{slot:"reference",size:"mini"},slot:"reference"},[t._v(t._s(t.$t("personal.delete")))])],1)]}}])})],1)],1)},e.Yp=[]},70525:function(t,e,a){Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=void 0,a(44114),a(18111),a(22489),a(61701);var s=a(1652);e["default"]={data(){return{tableData:[],listParams:{pageNum:1,pageSize:50,keyword:"",lang:""},addParams:{content:"",buttonContent:"",buttonPath:""},editParams:{content:"",id:"",buttonContent:"",buttonPath:""},dialogVisible:!1,bthLoading:!1,documentLoading:!1,editDialogVisible:!1,editLoading:!1,byteCount:"",isOverLimit:!1,total:0,pageSizes:[50,100,300],currentPage:1}},mounted(){let t;this.listParams.lang=this.$i18n.locale;try{t=JSON.parse(localStorage.getItem("token"))}catch(e){console.log(e)}t&&this.fetchListData(this.listParams)},methods:{async fetchListData(t){this.setLoading("documentLoading",!0);const e=await(0,s.getListDataByPage)(t);200===e.code&&(this.tableData=e.rows,this.total=e.total),this.setLoading("documentLoading",!1)},async fetchUpdateDocument(t){this.setLoading("editLoading",!0),console.log("发送编辑广播请求的参数:",t);const e=await(0,s.updateDocument)(t);200===e.code&&(this.$message.success(this.$t("backendSystem.editSuccess")),this.editDialogVisible=!1,this.fetchListData(this.listParams)),this.setLoading("editLoading",!1)},async deleteDocument(t){const e=await(0,s.deleteDocument)(t);200===e.code&&(this.$message.success(this.$t("backendSystem.deleteSuccess")),this.fetchListData(this.listParams))},handelAddDocument(){const t=this.$i18n.locale;this.$router.push(`/${t}/addDocument`)},handleClose(){this.dialogVisible=!1,this.addParams.content="",this.addParams.buttonContent="",this.addParams.buttonPath="",this.setLoading("bthLoading",!1)},sureAddBroadcast(){if(this.addParams.content=this.addParams.content.trim(),this.addParams.content=this.addParams.content.replace(/[\r\n]/g,""),this.addParams.buttonPath=this.addParams.buttonPath.trim(),this.addParams.buttonPath=this.addParams.buttonPath.replace(/[\r\n]/g,""),this.addParams.content)if(this.addParams.buttonContent&&this.addParams.buttonPath||!this.addParams.buttonContent&&!this.addParams.buttonPath){if(this.addParams.buttonPath){let t=this.addParams.buttonPath.split(/[,]/).map((t=>t.trim())).filter((t=>t));if(t.length>5)return void this.$message.warning(this.$t("backendSystem.max5"));if(0===t.length)return void this.$message.warning(this.$t("backendSystem.pleaseInputButtonContentAndPath"));if(this.addParams.buttonContent){let e=this.addParams.buttonContent.split(/[,]/).map((t=>t.trim())).filter((t=>t));if(e.length>5)return void this.$message.warning(this.$t("backendSystem.max5"));if(0===e.length)return void this.$message.warning(this.$t("backendSystem.pleaseInputButtonContentAndPath"));if(this.addParams.buttonContent&&this.addParams.buttonPath&&t.length!==e.length)return void this.$message.warning(this.$t("backendSystem.pathNumberNotMatch"))}const e=t.filter((t=>!isValidPath(t)));if(e.length>0){const t=getPathSuggestions(e[0]);return void this.$message.error(`${this.$t("backendSystem.invalidPath")}: ${e.join(", ")}${this.$t("backendSystem.invalidPathSuggestions")}: ${t.slice(0,3).join(", ")}`)}}this.addBroadcast(this.addParams)}else this.$message.warning(this.$t("backendSystem.pleaseInputButtonContentAndPath"));else this.$message.warning(this.$t("backendSystem.pleaseInputContent"))},surefetchUpdateDocument(){let t,e;if(this.editParams.content=this.editParams.content.trim(),this.editParams.content=this.editParams.content.replace(/[\r\n]/g,""),this.editParams.content){if(this.editParams.buttonContent){if(this.editParams.buttonContent=this.editParams.buttonContent.trim().replace(/[\r\n]/g,""),!(this.editParams.buttonContent&&this.editParams.buttonPath||!this.editParams.buttonContent&&!this.editParams.buttonPath))return void this.$message.warning(this.$t("backendSystem.pleaseInputButtonContentAndPath"));if(this.editParams.buttonContent){if(t=this.editParams.buttonContent.split(/[,]/).map((t=>t.trim())).filter((t=>t)),t.length>5)return void this.$message.warning(this.$t("backendSystem.max5"));if(0===t.length)return void this.$message.warning(this.$t("backendSystem.pleaseInputButtonContentAndPath"))}if(this.editParams.buttonPath){if(this.editParams.buttonPath=this.editParams.buttonPath.trim().replace(/[\r\n]/g,""),!(this.editParams.buttonContent&&this.editParams.buttonPath||!this.editParams.buttonContent&&!this.editParams.buttonPath))return void this.$message.warning(this.$t("backendSystem.pleaseInputButtonContentAndPath"));if(this.editParams.buttonPath){if(e=this.editParams.buttonPath.split(/[,]/).map((t=>t.trim())).filter((t=>t)),e.length>5)return void this.$message.warning(this.$t("backendSystem.max5"));if(0===e.length)return void this.$message.warning(this.$t("backendSystem.pleaseInputButtonContentAndPath"));const t=e.filter((t=>!isValidPath(t)));if(t.length>0){const e=getPathSuggestions(t[0]);return void this.$message.error(`${this.$t("backendSystem.invalidPath")}: ${t.join(", ")}${this.$t("backendSystem.invalidPathSuggestions")}: ${e.slice(0,3).join(", ")}`)}}}if(this.editParams.buttonContent&&this.editParams.buttonPath&&t.length!==e.length)return void this.$message.warning(this.$t("backendSystem.pathNumberNotMatch"))}this.fetchUpdateDocument(this.editParams)}else this.$message.warning(this.$t("backendSystem.pleaseInputContent"))},handleEdit(t){this.$router.push({path:`/${this.$i18n.locale}/addDocument`,query:{id:t.id}})},handleEditClose(){this.editDialogVisible=!1,this.editParams.content="",this.editParams.buttonContent="",this.editParams.buttonPath="",this.setLoading("editLoading",!1)},handelDelete(t){this.deleteDocument({id:t.id})},getUtf8Bytes(t){let e=0;for(let a=0;a<t.length;a++){const s=t.charCodeAt(a);e+=s<=127?1:s<=2047?2:s<=65535?3:4}return e},handleInput(t,e="add"){let a=this.getUtf8Bytes(t);if(a>100){this.isOverLimit=!0;let s="",i=0;for(let e of t){let t=this.getUtf8Bytes(e);if(i+t>100)break;s+=e,i+=t}"add"===e?this.addParams.content=s:this.editParams.content=s,a=i}else this.isOverLimit=!1,"add"===e?this.addParams.content=t:this.editParams.content=t;this.byteCount=a},handelTime(t){return`${t.split("T")[0]} ${t.split("T")[1]}`},handleSizeChange(t){console.log(`每页 ${t}`),this.listParams.pageSize=t,this.listParams.pageNum=1,this.currentPage=1,this.fetchListData(this.listParams)},handleCurrentChange(t){console.log(`当前页: ${t}`),this.listParams.pageNum=t,this.fetchListData(this.listParams)},getValidPathSuggestions(){return getPathSuggestions("").slice(0,8)},showPathHelp(){const t=this.getValidPathSuggestions(),e=`\n 常用路径示例:\n ${t.slice(0,10).join("\n")}\n \n 路径规则:\n • 多个路径用逗号分隔\n • 路径必须以 / 开头\n • 支持动态路由参数\n • 不要包含域名,只写路径部分\n `;this.$alert(e,"路径格式说明",{confirmButtonText:"知道了",type:"info",customClass:"path-help-dialog"})},formatButtonContent(t){return t&&"string"===typeof t?t.split(",").map((t=>t.trim())).filter((t=>t)):[]},formatButtonPath(t){return t&&"string"===typeof t?t.split(",").map((t=>t.trim())).filter((t=>t)):[]}}}},89589:function(t,e,a){a.r(e),a.d(e,{__esModule:function(){return i.B},default:function(){return r}});var s=a(48191),i=a(8619),n=i.A,o=a(81656),d=(0,o.A)(n,s.XX,s.Yp,!1,null,"22178a69",null),r=d.exports}}]);