chunk-df590242.f1f20f61.js 11 KB

1
  1. (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-df590242"],{"2f11":function(e,s,t){"use strict";t("529a")},"529a":function(e,s,t){},6133:function(e,s,t){"use strict";t.r(s);var a=function(){var e=this,s=e._self._c;return s("div",{staticClass:"system-task"},[s("el-row",{staticClass:"box",attrs:{type:"flex",gutter:10}},[e._l(e.list,(function(t,a){return s("el-col",{key:a},[s("div",{staticClass:"block",class:["_"+t.key]},[s("div",{staticClass:"header"},[s("i",{staticClass:"icon",class:t.icon}),s("span",{staticClass:"label"},[e._v(e._s(t.label))]),s("span",{staticClass:"num"},[e._v("("+e._s(t.pagination.total)+")")]),s("span",{staticClass:"flex1"}),s("ul",{staticClass:"op-btn"},[t.loading?s("li",[s("i",{staticClass:"el-icon-loading"})]):s("li",{directives:[{name:"permission",rawName:"v-permission",value:e.perm.delete,expression:"perm.delete"}],staticClass:"refresh-btn",on:{click:function(s){return e.refreshTask({page:1})}}},[s("i",{staticClass:"el-icon-refresh"}),s("span",[e._v("刷新")])]),s("li",{directives:[{name:"permission",rawName:"v-permission",value:e.perm.add,expression:"perm.add"}],staticClass:"add-btn",on:{click:function(s){return e.edit(t.params)}}},[s("i",{staticClass:"el-icon-plus"}),s("span",[e._v("添加")])])])]),s("div",{staticClass:"container scroller1"},[s("draggable",e._b({attrs:{tag:"ul","data-type":t.params.type,"data-status":t.params.status},on:{end:s=>e.onDragEnd(s,t)},model:{value:e.list[a].list,callback:function(s){e.$set(e.list[a],"list",s)},expression:"list[index].list"}},"draggable",e.drag.options,!1),[e._l(e.list[a].list,(function(t){return s("li",{key:t.id,staticClass:"_drag",attrs:{"data-id":t.id},on:{contextmenu:function(s){return s.stopPropagation(),s.preventDefault(),e.openCM(s,t)}}},[s("div",{staticClass:"h"},[s("span",{directives:[{name:"show",rawName:"v-show",value:0===t.status,expression:"item2.status === 0"}],staticClass:"type _warning"},[e._v(e._s(e._f("task_type")(t.type)))]),s("span",{staticClass:"name"},[e._v(e._s(t.name)+" ")])]),s("div",{staticClass:"remark"},[e._v(e._s(t.remark))]),s("div",{staticClass:"f"},[t.status?[s("span",{staticClass:"date"},[e._v(e._s(t.nextRunTime||"..."))]),s("span",{staticClass:"start"},[e._v("进行中")])]:[s("span",[e._v("...")]),s("span",{staticClass:"stop"},[e._v("已停止")])]],2),s("el-row",{staticClass:"op",attrs:{type:"flex"}},[0===t.status?s("el-col",{nativeOn:{click:function(s){return e.start(t)}}},[s("i",{staticClass:"el-icon-video-play"}),s("span",[e._v("开始")])]):s("el-col",{directives:[{name:"permission",rawName:"v-permission",value:e.perm.stop,expression:"perm.stop"}],nativeOn:{click:function(s){return e.stop(t)}}},[s("i",{staticClass:"el-icon-video-pause"}),s("span",[e._v("暂停")])]),s("el-col",{directives:[{name:"permission",rawName:"v-permission",value:{and:[e.perm.update,e.perm.info]},expression:"{\n\t\t\t\t\t\t\t\t\t\tand: [perm.update, perm.info]\n\t\t\t\t\t\t\t\t\t}"}],nativeOn:{click:function(s){return e.edit(t)}}},[s("i",{staticClass:"el-icon-edit"}),s("span",[e._v("编辑")])]),s("el-col",{directives:[{name:"permission",rawName:"v-permission",value:e.perm.log,expression:"perm.log"}],nativeOn:{click:function(s){return e.findLog(t)}}},[s("i",{staticClass:"el-icon-tickets"}),s("span",[e._v("查看日志")])])],1)],1)})),0==e.list[a].list.length?s("li",[s("div",{staticClass:"empty"},[e._v("暂无数据")])]):e._e()],2),t.pagination.total>=t.pagination.size?s("el-button",{staticClass:"more",attrs:{type:"text",size:"mini"},on:{click:function(s){return e.moreTask(a,t)}}},[e._v("查看更多")]):e._e()],1),s("div",{staticClass:"footer"},[s("button",{directives:[{name:"permission",rawName:"v-permission",value:e.perm.add,expression:"perm.add"}],staticClass:"btn-add",on:{click:function(s){return e.edit(t.params)}}},[s("i",{staticClass:"el-icon-plus"})])])])])})),s("el-col",{directives:[{name:"permission",rawName:"v-permission",value:e.perm.log,expression:"perm.log"}]},[s("div",{staticClass:"block _log"},[s("div",{staticClass:"header"},[s("span",{staticClass:"label"},[e._v("日志")]),s("span",{staticClass:"num"},[e._v("("+e._s(e.logs.pagination.total)+")")]),s("span",{staticClass:"flex1"}),s("el-checkbox-group",{staticClass:"status",on:{change:e.filterLog},model:{value:e.logs.filters.status,callback:function(s){e.$set(e.logs.filters,"status",s)},expression:"logs.filters.status"}},[s("el-checkbox",{attrs:{label:0}},[e._v("异常")])],1),s("ul",{staticClass:"op-btn"},[s("li",{on:{click:function(s){return e.refreshLog({page:1})}}},[s("i",{staticClass:"el-icon-refresh"}),s("span",[e._v("刷新")])]),e.logs.current?s("li",{staticClass:"_current-log",on:{click:e.allLog}},[s("span",[e._v(e._s(e.logs.current.name))]),s("i",{staticClass:"el-icon-close"})]):e._e()])],1),s("div",{directives:[{name:"loading",rawName:"v-loading",value:e.logs.loading,expression:"logs.loading"}],staticClass:"container",attrs:{"element-loading-text":"拼命加载中"}},[s("ul",{directives:[{name:"infinite-scroll",rawName:"v-infinite-scroll",value:e.moreLog,expression:"moreLog"}],staticClass:"_scroller"},[e._l(e.logs.list,(function(t,a){return s("li",{key:a,class:{_error:0==t.status},on:{click:function(s){return e.expandLog(t)}}},[s("div",{staticClass:"h"},[s("span",{staticClass:"name"},[e._v(e._s(a+1)+" · "+e._s(t.taskName))])]),s("div",{staticClass:"remark",class:{_ellipsis:!t._expand}},[e._v(" "+e._s(t.detail||"...")+" ")]),s("div",{staticClass:"f"},[s("span",[e._v("执行时间:"+e._s(t.createTime))])])])})),0==e.logs.list.length?s("li",[s("div",{staticClass:"empty"},[e._v("暂无数据")])]):e._e()],2)])])])],2),s("cl-context-menu",{ref:"context-menu"}),s("x-form",{ref:"x-form"})],1)},i=[],l=(t("8f26"),t("a3ff"),t("666b"),t("963e"),t("67dc")),n=t.n(l),r=t("c081"),o={name:"system-task",components:{draggable:n.a},data(){return{list:[{key:"sys",label:"系统任务",icon:"el-icon-s-tools",list:[],loading:!1,params:{type:0,status:1},pagination:{size:10,page:1,total:0}},{key:"user",label:"用户自定义任务",icon:"el-icon-user-solid",list:[],loading:!1,params:{type:1,status:1},pagination:{size:10,page:1,total:0}},{key:"stop",label:"已停止任务",list:[],loading:!1,params:{type:null,status:0},pagination:{size:10,page:1,total:0}}],logs:{loading:!1,list:[],pagination:{size:10,page:1},params:{},filters:{status:[]},current:null},drag:{options:{group:"Task",animation:300,ghostClass:"Ghost",dragClass:"Drag",draggable:"._drag"}}}},filters:{task_type(e){return 0===e?"系统":"用户"}},mounted(){this.refreshTask({page:1})},computed:{perm(){return this.$service.system.task.permission}},methods:{onDragEnd({to:e,item:s}){const t=e.getAttribute("data-status"),a=e.getAttribute("data-type"),i=s.getAttribute("data-id");0==t&&this.stop({id:i}),1==t&&this.start({id:i,type:a})},openCM(e,{id:s,status:t,type:a,name:i}){let l=[{label:"立即执行",perm:["once"],"suffix-icon":"el-icon-video-play",callback:(e,t)=>{this.once({id:s}),t()}},{label:"编辑",perm:["update","info"],"suffix-icon":"el-icon-edit",callback:(e,t)=>{this.edit({id:s,type:a}),t()}},{label:"删除",perm:["_delete"],"suffix-icon":"el-icon-delete",callback:(e,t)=>{this.delete({id:s}),t()}},{label:"查看日志",perm:["log"],"suffix-icon":"el-icon-tickets",callback:(e,t)=>{this.findLog({id:s,name:i}),t()}}];return 1==t?l.splice(1,0,{label:"暂停",perm:["stop"],"suffix-icon":"el-icon-video-pause",callback:(e,t)=>{this.stop({id:s,type:a}),t()}}):l.splice(1,0,{label:"开始",perm:["start"],"suffix-icon":"el-icon-video-play",callback:(e,t)=>{this.start({id:s,type:a}),t()}}),this.$refs["context-menu"].open(e,{list:l.filter(e=>Object(r["checkPerm"])({and:e.perm.map(e=>this.perm[e])}))}),!1},async edit(e){const{id:s,type:t}=e||{};let a={type:t};s&&(a=await this.$service.system.task.info({id:s})),a.every&&(a.every/=1e3),a.limit||(a.limit=void 0);const i=!a.taskType,l=this.$refs["x-form"].open({props:{title:"编辑任务",width:"600px","label-width":"80px"},items:[{label:"名称",prop:"name",value:a.name,component:{name:"el-input",attrs:{placeholder:"请输入名称"}},rules:{required:!0,message:"名称不能为空"}},{label:"类型",prop:"taskType",value:a.taskType||0,component:{name:"el-select",options:[{label:"cron",value:0},{label:"时间间隔",value:1}],on:{change:e=>{l.items.map(s=>{"cron"==s.prop&&(s.hidden=0!==e),["limit","every"].includes(s.prop)&&(s.hidden=1!==e,s.value||(l[s.prop]=void 0))})}}}},{label:"cron",prop:"cron",hidden:!i,value:a.cron,component:{name:"el-input",attrs:{placeholder:"* * * * * *"}},rules:{required:!0,message:"cron不能为空"}},{label:"次数",prop:"limit",value:a.limit,hidden:i,component:{name:"el-input-number",props:{min:1,max:1e4}}},{label:"间隔(秒)",prop:"every",value:a.every,hidden:i,component:{name:"el-input-number",props:{min:1,max:1e8}},rules:{required:!0,message:"执行间隔不能为空"}},{label:"service",prop:"service",value:a.service,component:{name:"el-input",attrs:{placeholder:"sys.test.add(params)"}}},{label:"开始时间",prop:"startDate",value:a.startDate,component:{name:"el-date-picker",props:{type:"datetime"}}},{label:"结束时间",prop:"endDate",value:a.endDate,component:{name:"el-date-picker",props:{type:"datetime"}}},{label:"备注",prop:"remark",value:a.remark,component:{name:"el-input",props:{type:"textarea"}}},{label:"状态",prop:"status",value:0===a.status?0:1,component:{name:"el-radio-group",options:[{label:"停止",value:0},{label:"运行",value:1}]}}],on:{submit:({data:e,close:t,done:i})=>{e.limit||(e.limit=null),this.$service.system.task[s?"update":"add"]({...a,...e,every:1e3*e.every}).then(()=>{this.refreshTask(),this.$message.success("保存成功"),t()}).catch(e=>{this.$message.error(e),i()})}}})},delete({id:e}){this.$confirm("此操作将永久删除该数据,是否继续?","提示",{type:"warning"}).then(()=>{this.$service.system.task.delete({ids:e}).then(()=>{this.refreshTask()})}).catch(()=>{})},start({id:e,type:s}){this.$service.system.task.start({id:e,type:s}).then(()=>{this.refreshTask()}).catch(e=>{this.$message.error(e)})},stop({id:e}){this.$service.system.task.stop({id:e}).then(()=>{this.refreshTask()}).catch(e=>{this.$message.error(e)})},once({id:e}){this.$service.system.task.once({id:e}).then(()=>{this.refreshTask()}).catch(e=>{this.$message.error(e)})},expandLog(e){this.$set(e,"_expand",!e._expand)},refreshTask(e,s){const{index:t,more:a}=s||{},i=void 0===t||null===t?this.list.map((e,s)=>s):[t];i.forEach(async s=>{let t=this.list[s];Object.assign(t.params,{...t.pagination,...e}),this.$set(t,"loading",!0);let i=await this.$service.system.task.page(t.params);r["utils"].moreList(i,t),a||this.$el.querySelector(`.block._${t.key} .container`).scroll(0,0),t.loading=!1})},moreTask(e){this.refreshTask(null,{index:e,more:!0})},async refreshLog(e,s){if(this.logs.loading)return!1;if(!Object(r["checkPerm"])(this.perm.log))return!1;const{params:t,pagination:a}=this.logs,{more:i}=s||{};Object.assign(t,{...a,...e}),this.logs.loading=!0;let l=await this.$service.system.task.log(t);r["utils"].moreList(l,this.logs),i||this.$el.querySelector(".block._log .container ul").scroll(0,0),this.logs.loading=!1},moreLog(){this.refreshLog(null,{more:!0})},findLog(e){this.logs.current=e,this.refreshLog({page:1,id:e.id})},allLog(){this.logs.current=null,this.refreshLog({page:1,id:null})},filterLog([e]){this.refreshLog({page:1,status:void 0===e?1:0})}}},c=o,p=(t("2f11"),t("1805")),d=Object(p["a"])(c,a,i,!1,null,"30669648",null);s["default"]=d.exports}}]);