2 lines
10 KiB
JavaScript
2 lines
10 KiB
JavaScript
"use strict";(self["webpackChunknewfront"]=self["webpackChunknewfront"]||[]).push([[405],{405:function(t,e,a){a.r(e),a.d(e,{default:function(){return G}});var s=a(6768),i=a(4232),o=a(5130);const n={class:"advice-page"},l={class:"container"},r={class:"tabs-container"},c={class:"tabs"},d={class:"content-area"},p={key:0,class:"card form-card"},u={class:"form-group"},m={class:"type-selector"},h={class:"type-description"},b={class:"form-group"},k={class:"type-selector"},g={key:0,class:"custom-email-input"},v={class:"form-group"},f={class:"form-label-row"},L={class:"input-mode-switch"},y={class:"form-actions"},C=["disabled"],w={key:1,class:"card list-card"},T={key:0,class:"loading-state"},x={key:1,class:"empty-state"},E={key:2,class:"advice-list"},A={class:"item-header"},U={class:"header-left"},X={class:"time"},z={class:"item-content"},O={key:0,class:"item-reply"},$={class:"reply-content"},M={key:3,class:"pagination"},_=["disabled"],P={class:"page-info"},S=["disabled"];function V(t,e,a,V,j,B){const I=(0,s.g2)("NavBar"),N=(0,s.g2)("MdEditor");return(0,s.uX)(),(0,s.CE)("div",n,[(0,s.bF)(I),(0,s.Lk)("div",l,[e[26]||(e[26]=(0,s.Lk)("div",{class:"header-section"},[(0,s.Lk)("h1",null,"建议与反馈"),(0,s.Lk)("p",{class:"subtitle"},"您的每一条建议都是我们进步的动力"),(0,s.Lk)("div",{class:"notice-box"},[(0,s.Lk)("span",{class:"notice-icon-circle"},"!"),(0,s.eW)(" 收到反馈后,我们将第一时间通过邮件告知您处理结果,请留意您的邮箱 ")])],-1)),(0,s.Lk)("div",r,[(0,s.Lk)("div",c,[(0,s.Lk)("div",{class:(0,i.C4)(["tab-item",{active:"add"===j.activeTab}]),onClick:e[0]||(e[0]=t=>j.activeTab="add")}," 我要提建议 ",2),(0,s.Lk)("div",{class:(0,i.C4)(["tab-item",{active:"list"===j.activeTab}]),onClick:e[1]||(e[1]=t=>B.switchTab("list"))}," 我提的建议 ",2)])]),(0,s.Lk)("div",d,["add"===j.activeTab?((0,s.uX)(),(0,s.CE)("div",p,[(0,s.Lk)("div",u,[e[17]||(e[17]=(0,s.Lk)("div",{class:"form-label-row"},[(0,s.Lk)("label",{class:"form-label"},"建议类型")],-1)),(0,s.Lk)("div",m,[(0,s.Lk)("label",{class:(0,i.C4)(["radio-label",{checked:0===j.form.type}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":e[2]||(e[2]=t=>j.form.type=t),value:0},null,512),[[o.XL,j.form.type,void 0,{number:!0}]]),e[15]||(e[15]=(0,s.Lk)("span",{class:"radio-text"},"💡 功能建议",-1))],2),(0,s.Lk)("label",{class:(0,i.C4)(["radio-label",{checked:1===j.form.type}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":e[3]||(e[3]=t=>j.form.type=t),value:1},null,512),[[o.XL,j.form.type,void 0,{number:!0}]]),e[16]||(e[16]=(0,s.Lk)("span",{class:"radio-text"},"🐛 BUG反馈",-1))],2)]),(0,s.Lk)("div",h,(0,i.v_)(0===j.form.type?"您希望开发新功能,或对现有功能有建议":"您发现了网站的BUG或缺陷"),1)]),(0,s.Lk)("div",b,[e[20]||(e[20]=(0,s.Lk)("div",{class:"form-label-row"},[(0,s.Lk)("label",{class:"form-label"},"邮箱 (便于我们联系您)")],-1)),(0,s.Lk)("div",k,[(0,s.Lk)("label",{class:(0,i.C4)(["radio-label",{checked:"account"===j.emailOption}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":e[4]||(e[4]=t=>j.emailOption=t),value:"account"},null,512),[[o.XL,j.emailOption]]),e[18]||(e[18]=(0,s.Lk)("span",{class:"radio-text"},"使用账号邮箱",-1))],2),(0,s.Lk)("label",{class:(0,i.C4)(["radio-label",{checked:"custom"===j.emailOption}])},[(0,s.bo)((0,s.Lk)("input",{type:"radio","onUpdate:modelValue":e[5]||(e[5]=t=>j.emailOption=t),value:"custom"},null,512),[[o.XL,j.emailOption]]),e[19]||(e[19]=(0,s.Lk)("span",{class:"radio-text"},"使用其他邮箱",-1))],2)]),"custom"===j.emailOption?((0,s.uX)(),(0,s.CE)("div",g,[(0,s.bo)((0,s.Lk)("input",{type:"text","onUpdate:modelValue":e[6]||(e[6]=t=>j.customEmail=t),class:"form-input",placeholder:"请输入您的邮箱地址,以便我们联系您"},null,512),[[o.Jo,j.customEmail]])])):(0,s.Q3)("",!0)]),(0,s.Lk)("div",v,[(0,s.Lk)("div",f,[e[22]||(e[22]=(0,s.Lk)("label",{class:"form-label"},"详细描述",-1)),(0,s.Lk)("div",L,[(0,s.Lk)("span",{class:(0,i.C4)(["mode-item",{active:"text"===j.inputType}]),onClick:e[7]||(e[7]=t=>j.inputType="text")}," 纯文本 ",2),e[21]||(e[21]=(0,s.Lk)("span",{class:"mode-divider"},"|",-1)),(0,s.Lk)("span",{class:(0,i.C4)(["mode-item",{active:"markdown"===j.inputType}]),onClick:e[8]||(e[8]=t=>j.inputType="markdown")}," 图文 ",2)])]),"text"===j.inputType?(0,s.bo)(((0,s.uX)(),(0,s.CE)("textarea",{key:0,"onUpdate:modelValue":e[9]||(e[9]=t=>j.form.content=t),class:"form-textarea",rows:"12",placeholder:"请详细描述您的建议..."},null,512)),[[o.Jo,j.form.content]]):((0,s.uX)(),(0,s.Wv)(N,{key:1,modelValue:j.form.content,"onUpdate:modelValue":e[10]||(e[10]=t=>j.form.content=t),theme:j.editorTheme,toolbars:j.editorToolbars,language:"zh-CN","preview-theme":"github",placeholder:j.editorPlaceholder,onOnUploadImg:B.handleImageUpload,style:{height:"400px"}},null,8,["modelValue","theme","toolbars","placeholder","onOnUploadImg"]))]),(0,s.Lk)("div",y,[(0,s.Lk)("button",{class:"btn-submit",onClick:e[11]||(e[11]=(...t)=>B.handleSubmit&&B.handleSubmit(...t)),disabled:j.submitting},(0,i.v_)(j.submitting?"提交中...":"提交反馈"),9,C)])])):(0,s.Q3)("",!0),"list"===j.activeTab?((0,s.uX)(),(0,s.CE)("div",w,[j.loading?((0,s.uX)(),(0,s.CE)("div",T,e[23]||(e[23]=[(0,s.Lk)("div",{class:"spinner"},null,-1),(0,s.Lk)("p",null,"加载中...",-1)]))):0===j.list.length?((0,s.uX)(),(0,s.CE)("div",x,[e[24]||(e[24]=(0,s.Lk)("p",null,"暂无反馈记录",-1)),(0,s.Lk)("button",{class:"btn-link",onClick:e[12]||(e[12]=t=>j.activeTab="add")},"去提一条建议")])):((0,s.uX)(),(0,s.CE)("div",E,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(j.list,(t=>((0,s.uX)(),(0,s.CE)("div",{key:t.id,class:"advice-item"},[(0,s.Lk)("div",A,[(0,s.Lk)("div",U,[(0,s.Lk)("span",{class:(0,i.C4)(["badge",1===t.type?"badge-bug":"badge-feature"])},(0,i.v_)(1===t.type?"BUG反馈":"功能建议"),3),(0,s.Lk)("span",{class:(0,i.C4)(["status-badge",B.getStatusClass(t.status)])},(0,i.v_)(B.getStatusText(t.status)),3)]),(0,s.Lk)("span",X,(0,i.v_)(B.formatDate(t.created_at)),1)]),(0,s.Lk)("div",z,(0,i.v_)(t.content),1),t.reply?((0,s.uX)(),(0,s.CE)("div",O,[e[25]||(e[25]=(0,s.Lk)("div",{class:"reply-header"},[(0,s.Lk)("span",{class:"reply-icon"},"💬"),(0,s.Lk)("strong",null,"管理员回复:")],-1)),(0,s.Lk)("div",$,(0,i.v_)(t.reply),1)])):(0,s.Q3)("",!0)])))),128))])),!j.loading&&j.pagination.totalPages>1?((0,s.uX)(),(0,s.CE)("div",M,[(0,s.Lk)("button",{class:"page-btn",disabled:j.pagination.current<=1,onClick:e[13]||(e[13]=t=>B.changePage(j.pagination.current-1))}," 上一页 ",8,_),(0,s.Lk)("span",P,(0,i.v_)(j.pagination.current)+" / "+(0,i.v_)(j.pagination.totalPages),1),(0,s.Lk)("button",{class:"page-btn",disabled:j.pagination.current>=j.pagination.totalPages,onClick:e[14]||(e[14]=t=>B.changePage(j.pagination.current+1))}," 下一页 ",8,S)])):(0,s.Q3)("",!0)])):(0,s.Q3)("",!0)])])])}a(8111),a(1701);var j=a(4373),B=a(8704),I=a(4993),N=a(513),Q=a(3577),q={name:"Advice",components:{NavBar:N.A,MdEditor:Q.A},mounted(){document.title="建议与反馈 - NEU小站"},data(){return{activeTab:"add",submitting:!1,loading:!1,form:{type:0,content:""},emailOption:"account",customEmail:"",list:[],pagination:{current:1,pageSize:10,total:0,totalPages:0},inputType:"text",editorTheme:"light",editorPlaceholder:"请详细描述您的建议,支持直接把图片粘贴到编辑器中",editorToolbars:["bold","italic","underline","-","title","unorderedList","orderedList","-","image","table","=","revoke","next","-","preview","pageFullscreen","fullscreen"]}},methods:{getToken(){let t=B.A.get("token");if(!t){const e=document.cookie.match(/(^| )token=([^;]+)/);e&&(t=e[2])}return t},switchTab(t){this.activeTab=t,"list"===t&&this.fetchList(1)},async handleImageUpload(t,e){const a=this.getToken();if(a)try{const s=t.map((async t=>{if(t.size>2097152)throw new Error(`图片 ${t.name} 大小不能超过2MB!`);const e=t.name.split(".").pop().toLowerCase(),s=t.type,i=await fetch("https://userlogin.xn--xhq44jb2fzpc.com/submission/prepare-image-upload",{method:"POST",headers:{Authorization:a,"Content-Type":"application/json"},body:JSON.stringify({postfix:e,type:s})});if(!i.ok)throw new Error("准备上传失败");const{uploadUrl:o,path:n}=await i.json(),l=await fetch(o,{method:"PUT",body:t,headers:{"Content-Type":s,Authorization:a}});if(!l.ok)throw new Error(`文件 ${t.name} 上传失败`);return`https://download.xn--xhq44jb2fzpc.com/${n}`})),i=await Promise.all(s);e(i)}catch(s){console.error("图片上传失败:",s),this.$barMessage.error("图片上传失败:"+s.message)}else this.$barMessage.error("请先登录!")},handleSubmit(){if(this.form.content.trim()){if("custom"===this.emailOption){if(!this.customEmail)return void this.$barMessage.warning("请输入邮箱地址");const t=/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;if(!t.test(this.customEmail))return void this.$barMessage.warning("请输入有效的邮箱地址")}I.A.confirm("确定要提交这条建议吗?","提交确认").then((()=>{this.submitAdvice()})).catch((()=>{}))}else this.$barMessage.warning("请输入建议内容")},async submitAdvice(){const t=this.getToken();if(t){this.submitting=!0;try{const e={...this.form};"custom"===this.emailOption&&(e.email=this.customEmail),await j.A.post("https://newfront.xn--xhq44jb2fzpc.com/advice/add",e,{headers:{Authorization:t}}),this.$barMessage.success("建议提交成功,感谢您的反馈!"),this.form.content="",this.form.type=0,this.emailOption="account",this.customEmail="",this.activeTab="list",this.fetchList(1)}catch(e){console.error(e);const t=e.response?.data?.error||"提交失败,请稍后重试";this.$barMessage.error(t)}finally{this.submitting=!1}}else this.$barMessage.error("请先登录")},async fetchList(t=1){const e=this.getToken();if(e){this.loading=!0;try{const a=await j.A.get("https://newfront.xn--xhq44jb2fzpc.com/advice/list",{params:{page:t},headers:{Authorization:e}}),{list:s,pagination:i}=a.data;this.list=s,this.pagination=i}catch(a){console.error(a),this.$barMessage.error("获取列表失败")}finally{this.loading=!1}}else this.$barMessage.error("请先登录")},changePage(t){this.fetchList(t)},formatDate(t){if(!t)return"";const e=new Date(t);return e.toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})},getStatusText(t){const e={0:"处理中",1:"已处理",2:"已关闭"};return e[t]||"未知状态"},getStatusClass(t){const e={0:"status-processing",1:"status-done",2:"status-closed"};return e[t]||""}}},D=a(1241);const F=(0,D.A)(q,[["render",V],["__scopeId","data-v-76e04d6e"]]);var G=F}}]);
|
||
//# sourceMappingURL=405.6a0857d2.js.map
|