|
|
"use strict";(self["webpackChunkhalo_admin"]=self["webpackChunkhalo_admin"]||[]).push([[359],{28359:function(e,t,a){a.r(t),a.d(t,{default:function(){return f}});var i=function(){var e=this,t=e._self._c;return t("page-view",{attrs:{"sub-title":e.theme.current.version||"-",title:e.theme.current.name||"-",affix:""}},[t("template",{slot:"extra"},[t("ReactiveButton",{attrs:{errored:e.form.saveErrored,loading:e.form.saving,erroredText:"保存失败",loadedText:"保存成功",icon:"save",text:"保存设置",type:"primary"},on:{callback:e.handleSaveSettingsCallback,click:e.handleSaveSettings}}),t("a-dropdown",[t("a-menu",{attrs:{slot:"overlay"},slot:"overlay"},[t("a-menu-item",{key:"1",on:{click:e.handleRemoteUpdate}},[t("a-icon",{attrs:{type:"cloud"}}),e._v(" 在线更新 ")],1),t("a-menu-item",{key:"2",on:{click:function(t){e.localUpgradeModel.visible=!0}}},[t("a-icon",{attrs:{type:"file"}}),e._v(" 本地更新 ")],1)],1),t("a-button",{attrs:{icon:"upload"}},[e._v(" 更新 "),t("a-icon",{attrs:{type:"down"}})],1)],1),t("a-dropdown",{scopedSlots:e._u([{key:"overlay",fn:function(){return[t("a-menu",[t("a-menu-item",{attrs:{disabled:e.theme.current.activated},on:{click:e.handleActiveTheme}},[t("a-icon",{attrs:{type:"lock"}}),e._v(" 启用 ")],1),t("a-menu-item",{attrs:{disabled:!e.theme.current.activated},on:{click:e.handleRouteToThemeVisualSetting}},[t("a-icon",{attrs:{type:"eye"}}),e._v(" 预览模式 ")],1)],1)]},proxy:!0}])},[t("a-button",{attrs:{icon:"more"}},[e._v(" 更多 "),t("a-icon",{attrs:{type:"down"}})],1)],1),t("a-button",{attrs:{disabled:e.theme.current.activated,icon:"delete",type:"danger"},on:{click:function(t){e.themeDeleteModal.visible=!0}}},[e._v(" 删除 ")])],1),t("a-spin",{attrs:{spinning:e.theme.loading}},[t("ThemeSettingForm",{ref:"themeSettingForm",attrs:{theme:e.theme.current}})],1),t("ThemeDeleteConfirmModal",{attrs:{theme:e.theme.current,visible:e.themeDeleteModal.visible},on:{"update:visible":function(t){return e.$set(e.themeDeleteModal,"visible",t)},success:e.onThemeDeleteSucceed}}),t("ThemeLocalUpgradeModal",{attrs:{theme:e.theme.current,visible:e.localUpgradeModel.visible},on:{"update:visible":function(t){return e.$set(e.localUpgradeModel,"visible",t)},success:e.handleGetTheme}})],2)},s=[],l=(a(70560),a(70571)),n=a(92055),r=a(51751),o=a(77838),m=a(80068),d={name:"ThemeSetting",components:{PageView:l.B4,ThemeDeleteConfirmModal:n.Z,ThemeLocalUpgradeModal:r.Z,ThemeSettingForm:o.Z},data(){return{theme:{current:{},loading:!1},themeDeleteModal:{visible:!1},localUpgradeModel:{visible:!1},form:{saving:!1,saveErrored:!1}}},beforeRouteEnter(e,t,a){const i=e.query.themeId;a((async e=>{await e.handleGetTheme(i)}))},methods:{async handleGetTheme(e){try{if(this.theme.loading=!0,e){const{data:t}=await m.Z.theme.get(e);this.theme.current=t}else{const{data:e}=await m.Z.theme.getActivatedTheme();this.theme.current=e}}finally{this.theme.loading=!1}},onThemeDeleteSucceed(){this.$router.replace({name:"ThemeList"})},handleRemoteUpdate(){const e=this;e.$confirm({title:"提示",maskClosable:!0,content:"确定更新【"+e.theme.current.name+"】主题吗?",async onOk(){const t=e.$message.loading("更新中...",0);try{await m.Z.theme.updateThemeByFetching(e.theme.current.id),e.$message.success("更新成功!")}catch(a){e.$log.error("Failed to update theme: ",a)}finally{t(),await e.handleGetTheme(e.theme.current.id)}}})},handleRouteToThemeVisualSetting(){this.$router.push({name:"ThemeVisualSetting",query:{themeId:this.theme.current.id}})},handleActiveTheme(){const e=this;e.$confirm({title:"提示",maskClosable:!0,content:"确定启用【"+e.theme.current.name+"】主题吗?",async onOk(){try{await m.Z.theme.active(e.theme.current.id),e.$message.success("启用成功!")}catch(t){e.$log.error("Failed active theme",t)}finally{await e.handleGetTheme(e.theme.current.id)}}})},async handleSaveSettings(){try{this.form.saving=!0,await this.$refs.themeSettingForm.handleSaveSettings(!1)}catch{this.form.saveErrored=!0}finally{setTimeout((()=>{this.form.saving=!1}),400)}},handleSaveSettingsCallback(){this.form.saveErrored&&(this.form.saveErrored=!1)}}},c=d,h=a(1001),u=(0,h.Z)(c,i,s,!1,null,null,null),f=u.exports},92055:function(e,t,a){a.d(t,{Z:function(){return d}});var i=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{afterClose:e.onAfterClose,closable:!1,width:416,destroyOnClose:"",title:"提示"},model:{value:e.modalVisible,callback:function(t){e.modalVisible=t},expression:"modalVisible"}},[t("template",{slot:"footer"},[t("a-button",{on:{click:function(t){e.modalVisible=!1}}},[e._v(" 取消 ")]),t("ReactiveButton",{attrs:{errored:e.deleteErrored,loading:e.deleting,erroredText:"删除失败",loadedText:"删除成功",text:"确定"},on:{callback:e.handleDeleteCallback,click:function(t){return e.handleDelete()}}})],1),t("p",[e._v("确定删除【"+e._s(e.theme.name)+"】主题?")]),t("a-checkbox",{model:{value:e.deleteSettings,callback:function(t){e.deleteSettings=t},expression:"deleteSettings"}},[e._v(" 同时删除主题配置 ")])],2)},s=[],l=a(80068),n={name:"ThemeDeleteConfirmModal",props:{visible:{type:Boolean,default:!1},theme:{type:Object,default:()=>({})}},data(){return{deleteErrored:!1,deleting:!1,deleteSettings:!1}},computed:{modalVisible:{get(){return this.visible},set(e){this.$emit("update:visible",e)}}},methods:{async handleDelete(){try{this.deleting=!0,await l.Z.theme.delete(this.theme.id,this.deleteSettings)}catch(e){this.deleteErrored=!1,this.$log.error("Delete theme failed",e)}finally{setTimeout((()=>{this.deleting=!1}),400)}},handleDeleteCallback(){this.deleteErrored?this.deleteErrored=!1:(this.modalVisible=!1,this.$emit("success"))},onAfterClose(){this.deleteErrored=!1,this.deleting=!1,this.deleteSettings=!1,this.$emit("onAfterClose")}}},r=n,o=a(1001),m=(0,o.Z)(r,i,s,!1,null,null,null),d=m.exports},51751:function(e,t,a){a.d(t,{Z:function(){return d}});var i=function(){var e=this,t=e._self._c;return t("a-modal",{attrs:{afterClose:e.onModalClose,footer:null,destroyOnClose:"",title:"更新主题"},model:{value:e.modalVisible,callback:function(t){e.modalVisible=t},expression:"modalVisible"}},[t("FilePondUpload",{ref:"updateByFile",attrs:{accepts:["application/x-zip","application/x-zip-compressed","application/zip"],field:e.theme.id,multiple:!1,uploadHandler:e.uploadHandler,label:"点击选择主题更新包或将主题更新包拖拽到此处<br>仅支持 ZIP 格式的文件",name:"file"},on:{success:e.onThemeUploadSuccess}})],1)},s=[],l=a(80068),n={name:"ThemeLocalUpgradeModal",props:{visible:{type:Boolean,default:!1},theme:{type:Object,default:()=>({})}},data(){return{uploadHandler:(e,t,a)=>l.Z.theme.updateByUpload(e,t,a)}},computed:{modalVisible:{get(){return this.visible},set(e){this.$emit("update:visible",e)}}},methods:{onModalClose(){this.$refs.updateByFile.handleClearFileList(),this.$emit("onAfterClose")},onThemeUploadSuccess(){this.modalVisible=!1,this.$emit("success")}}},r=n,o=a(1001),m=(0,o.Z)(r,i,s,!1,null,null,null),d=m.exports},77838:function(e,t,a){a.d(t,{Z:function(){return c}});var i=function(){var e=this,t=e._self._c;return e.theme.id?t("div",{staticClass:"card-container h-full"},[t("a-tabs",{staticClass:"h-full",attrs:{defaultActiveKey:"0",type:"card"}},[t("a-tab-pane",{key:0,attrs:{tab:"关于"}},[e.theme.logo?t("div",[t("a-avatar",{attrs:{alt:e.theme.name,size:72,src:e.theme.logo,shape:"square"}}),t("a-divider")],1):e._e(),t("a-descriptions",{attrs:{column:1,layout:"horizontal"}},[t("a-descriptions-item",{attrs:{label:"作者"}},[t("a",{staticClass:"text-inherit",attrs:{href:e.theme.author.website||"#",target:"_blank"}},[e._v(" "+e._s(e.theme.author.name)+" ")])]),t("a-descriptions-item",{attrs:{label:"介绍"}},[e._v(" "+e._s(e.theme.description||"-")+" ")]),t("a-descriptions-item",{attrs:{label:"官网"}},[t("a",{staticClass:"text-inherit",attrs:{href:e.theme.website||"#",target:"_blank"}},[e._v(" "+e._s(e.theme.website||"-")+" ")])]),t("a-descriptions-item",{attrs:{label:"Git 仓库"}},[t("a",{staticClass:"text-inherit",attrs:{href:e.theme.repo||"#",target:"_blank"}},[e._v(" "+e._s(e.theme.repo||"-")+" ")])]),t("a-descriptions-item",{attrs:{label:"主题标识"}},[e._v(" "+e._s(e.theme.id)+" ")]),t("a-descriptions-item",{attrs:{label:"当前版本"}},[e._v(" "+e._s(e.theme.version)+" ")]),t("a-descriptions-item",{attrs:{label:"存储位置"}},[e._v(" "+e._s(e.theme.themePath)+" ")]),e._t("descriptions-item")],2)],1),e._l(e.form.configurations,(function(a,i){return t("a-tab-pane",{key:i+1,attrs:{tab:a.label}},[t("a-form",{attrs:{wrapperCol:e.wrapperCol,layout:"vertical"}},[e._l(a.items,(function(a,i){return t("a-form-item",{key:i,attrs:{label:a.label+":"}},[a.description&&""!==a.description?t("p",{attrs:{slot:"help"},domProps:{innerHTML:e._s(a.description)},slot:"help"}):e._e(),"TEXT"===a.type?t("a-input",{attrs:{defaultValue:a.defaultValue,placeholder:a.placeholder},model:{value:e.form.settings[a.name],callback:function(t){e.$set(e.form.settings,a.name,t)},expression:"form.settings[item.name]"}}):"TEXTAREA"===a.type?t("a-input",{attrs:{autoSize:{minRows:5},placeholder:a.placeholder,type:"textarea"},model:{value:e.form.settings[a.name],callback:function(t){e.$set(e.form.settings,a.name,t)},expression:"form.settings[item.name]"}}):"RADIO"===a.type?t("a-radio-group",{attrs:{defaultValue:a.defaultValue},model:{value:e.form.settings[a.name],callback:function(t){e.$set(e.form.settings,a.name,t)},expression:"form.settings[item.name]"}},e._l(a.options,(function(a,i){return t("a-radio",{key:i,attrs:{value:a.value}},[e._v(" "+e._s(a.label)+" ")])})),1):"SELECT"===a.type?t("a-select",{attrs:{defaultValue:a.defaultValue},model:{value:e.form.settings[a.name],callback:function(t){e.$set(e.form.settings,a.name,t)},expression:"form.settings[item.name]"}},e._l(a.options,(function(a){return t("a-select-option",{key:a.value,attrs:{value:a.value}},[e._v(" "+e._s(a.label)+" ")])})),1):"COLOR"===a.type?t("verte",{staticStyle:{display:"inline-block",height:"24px"},attrs:{defaultValue:a.defaultValue,model:"hex",picker:"square"},model:{value:e.form.settings[a.name],callback:function(t){e.$set(e.form.settings,a.name,t)},expression:"form.settings[item.name]"}}):"ATTACHMENT"===a.type?t("AttachmentInput",{attrs:{defaultValue:a.defaultValue,placeholder:a.placeholder},model:{value:e.form.settings[a.name],callback:function(t){e.$set(e.form.settings,a.name,t)},expression:"form.settings[item.name]"}}):"NUMBER"===a.type?t("a-input-number",{staticStyle:{width:"100%"},attrs:{defaultValue:a.defaultValue},model:{value:e.form.settings[a.name],callback:function(t){e.$set(e.form.settings,a.name,t)},expression:"form.settings[item.name]"}}):"SWITCH"===a.type?t("a-switch",{attrs:{defaultChecked:a.defaultValue},model:{value:e.form.settings[a.name],callback:function(t){e.$set(e.form.settings,a.name,t)},expression:"form.settings[item.name]"}}):t("a-input",{attrs:{defaultValue:a.defaultValue,placeholder:a.placeholder},model:{value:e.form.settings[a.name],callback:function(t){e.$set(e.form.settings,a.name,t)},expression:"form.settings[item.name]"}})],1)})),t("a-form-item",[t("ReactiveButton",{attrs:{errored:e.form.saveErrored,loading:e.form.saving,erroredText:"保存失败",loadedText:"保存成功",text:"保存",type:"primary"},on:{callback:e.handleSaveSettingsCallback,click:e.handleSaveSettings}})],1)],2)],1)}))],2)],1):e._e()},s=[],l=a(94927),n=a(80068),r={name:"ThemeSettingForm",components:{Verte:l.Z},props:{theme:{type:Object,default:()=>{}},wrapperCol:{type:Object,default:()=>({xl:{span:8},lg:{span:8},sm:{span:12},xs:{span:24}})}},data(){return{form:{settings:[],configurations:[],loading:!1,saving:!1,saveErrored:!1}}},watch:{theme(e){e&&this.handleGetConfigurations()}},methods:{async handleGetConfigurations(){try{const{data:e}=await n.Z.theme.listConfigurations(this.theme.id);this.form.configurations=e,await this.handleGetSettings()}catch(e){this.$log.error(e)}},async handleGetSettings(){try{const{data:e}=await n.Z.theme.listSettings(this.theme.id);this.form.settings=e}catch(e){this.$log.error(e)}},async handleSaveSettings(e=!0){try{e&&(this.form.saving=!0),await n.Z.theme.saveSettings(this.theme.id,this.form.settings)}catch(t){throw this.$log.error(t),this.form.saveErrored=!0,new Error(t)}finally{setTimeout((()=>{this.form.saving=!1}),400)}},handleSaveSettingsCallback(){this.form.saveErrored?this.form.saveErrored=!1:(this.handleGetSettings(),this.$emit("saved"))}}},o=r,m=a(1001),d=(0,m.Z)(o,i,s,!1,null,null,null),c=d.exports}}]); |