上传工具类开发

This commit is contained in:
liwei1dao 2022-11-17 19:06:23 +08:00
parent ed378f4038
commit 29f24e8958
28 changed files with 180 additions and 7 deletions

1
bin/dist/css/13.bc6267dd.css vendored Normal file
View File

@ -0,0 +1 @@
.v-switch .v-label{-webkit-padding-start:10px;padding-inline-start:10px}.v-switch__loader{display:flex}.v-switch__thumb,.v-switch__track{background-color:currentColor;transition:none}.v-selection-control--error:not(.v-selection-control--disabled) .v-switch__thumb,.v-selection-control--error:not(.v-selection-control--disabled) .v-switch__track{background-color:rgb(var(--v-theme-error))}.v-switch__track{border-radius:8px;height:14px;opacity:.6;width:36px;cursor:pointer}.v-switch--inset .v-switch__track{border-radius:14px;height:28px;width:48px}.v-switch__thumb{align-items:center;border-radius:50%;color:rgb(var(--v-theme-surface));display:flex;height:20px;justify-content:center;width:20px;pointer-events:none;transition:transform .15s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity,rgba(0,0,0,.2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity,rgba(0,0,0,.14)),0 1px 10px 0 var(--v-shadow-key-penumbra-opacity,rgba(0,0,0,.12))}.v-switch--inset .v-switch__thumb{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity,rgba(0,0,0,.2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity,rgba(0,0,0,.14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity,rgba(0,0,0,.12))}.v-switch--loading .v-selection-control__input>.v-icon,.v-switch:not(.v-switch--loading) .v-icon~.v-switch__thumb{display:none}.v-switch .v-selection-control{height:var(--v-input-control-height)}.v-switch .v-selection-control__wrapper{width:auto}.v-switch .v-selection-control__input{border-radius:50%;transition:transform .15s cubic-bezier(.4,0,.2,1);transform:translateX(-10px);position:absolute}.v-switch .v-selection-control--dirty .v-selection-control__input{transform:translateX(10px)}.v-switch.v-switch--indeterminate .v-selection-control__input{transform:scale(.8)}.v-switch.v-switch--indeterminate .v-switch__thumb{transform:scale(.75);box-shadow:none}

1
bin/dist/css/386.5e2c40e5.css vendored Normal file

File diff suppressed because one or more lines are too long

1
bin/dist/css/466.a4081466.css vendored Normal file

File diff suppressed because one or more lines are too long

1
bin/dist/css/883.0f59e55e.css vendored Normal file

File diff suppressed because one or more lines are too long

1
bin/dist/css/925.bc6267dd.css vendored Normal file
View File

@ -0,0 +1 @@
.v-switch .v-label{-webkit-padding-start:10px;padding-inline-start:10px}.v-switch__loader{display:flex}.v-switch__thumb,.v-switch__track{background-color:currentColor;transition:none}.v-selection-control--error:not(.v-selection-control--disabled) .v-switch__thumb,.v-selection-control--error:not(.v-selection-control--disabled) .v-switch__track{background-color:rgb(var(--v-theme-error))}.v-switch__track{border-radius:8px;height:14px;opacity:.6;width:36px;cursor:pointer}.v-switch--inset .v-switch__track{border-radius:14px;height:28px;width:48px}.v-switch__thumb{align-items:center;border-radius:50%;color:rgb(var(--v-theme-surface));display:flex;height:20px;justify-content:center;width:20px;pointer-events:none;transition:transform .15s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity,rgba(0,0,0,.2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity,rgba(0,0,0,.14)),0 1px 10px 0 var(--v-shadow-key-penumbra-opacity,rgba(0,0,0,.12))}.v-switch--inset .v-switch__thumb{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity,rgba(0,0,0,.2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity,rgba(0,0,0,.14)),0 0 0 0 var(--v-shadow-key-penumbra-opacity,rgba(0,0,0,.12))}.v-switch--loading .v-selection-control__input>.v-icon,.v-switch:not(.v-switch--loading) .v-icon~.v-switch__thumb{display:none}.v-switch .v-selection-control{height:var(--v-input-control-height)}.v-switch .v-selection-control__wrapper{width:auto}.v-switch .v-selection-control__input{border-radius:50%;transition:transform .15s cubic-bezier(.4,0,.2,1);transform:translateX(-10px);position:absolute}.v-switch .v-selection-control--dirty .v-selection-control__input{transform:translateX(10px)}.v-switch.v-switch--indeterminate .v-selection-control__input{transform:scale(.8)}.v-switch.v-switch--indeterminate .v-switch__thumb{transform:scale(.75);box-shadow:none}

2
bin/dist/index.html vendored
View File

@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>vue_dreamfactory</title><script defer="defer" src="/js/chunk-vendors.c91d0b23.js"></script><script defer="defer" src="/js/app.449a3bad.js"></script><link href="/css/chunk-vendors.0fb08ef9.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but vue_dreamfactory doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>vue_dreamfactory</title><script defer="defer" src="/js/chunk-vendors.edda0066.js"></script><script defer="defer" src="/js/app.3ad52f48.js"></script><link href="/css/chunk-vendors.0fb08ef9.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but vue_dreamfactory doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>

2
bin/dist/js/13.7aeffd39.js vendored Normal file
View File

@ -0,0 +1,2 @@
"use strict";(self["webpackChunkvue_dreamfactory"]=self["webpackChunkvue_dreamfactory"]||[]).push([[13],{1013:function(e,t,a){a.r(t),a.d(t,{default:function(){return j}});var l=a(3396),n=a(7139),i=a(7312),o=a(11),d=a(6572),s=a(1888),r=a(1334),u=a(4075),c=a(3369),m=a(6824),f=a(8521),h=a(9671),p=a(6193),v=a(7076),w=a(3173),g=a(6791),k=a(8717),b=a(4870),W=a(320),_=a(7514),y=a(9888),C=a(131);const U=(0,W.a)({name:"VSwitch",inheritAttrs:!1,props:{indeterminate:Boolean,inset:Boolean,flat:Boolean,loading:{type:[Boolean,String],default:!1},...(0,v.co)(),...(0,p.$9)()},emits:{"update:indeterminate":e=>!0},setup(e,t){let{attrs:a,slots:n}=t;const i=(0,k.z)(e,"indeterminate"),{loaderClasses:o}=(0,g.U2)(e),d=(0,l.Fl)((()=>"string"===typeof e.loading&&""!==e.loading?e.loading:e.color)),s=(0,_.sq)(),r=(0,l.Fl)((()=>e.id||`switch-${s}`));function u(){i.value&&(i.value=!1)}return(0,y.L)((()=>{const[t,s]=(0,C.An)(a),[c,m]=(0,v.PE)(e),[f,h]=(0,p.fU)(e),k=(0,b.iH)();function W(){var e,t;null==(e=k.value)||null==(t=e.input)||t.click()}return(0,l.Wm)(v.q8,(0,l.dG)({class:["v-switch",{"v-switch--inset":e.inset},{"v-switch--indeterminate":i.value},o.value]},t,c,{id:r.value}),{...n,default:t=>{let{id:a,isDisabled:o,isReadonly:r,isValid:c}=t;return(0,l.Wm)(p.g5,(0,l.dG)({ref:k},f,{id:a.value,type:"checkbox","onUpdate:modelValue":u,"aria-checked":i.value?"mixed":void 0,disabled:o.value,readonly:r.value},s),{...n,default:()=>(0,l.Wm)("div",{class:"v-switch__track",onClick:W},null),input:t=>{let{textColorClasses:a}=t;return(0,l.Wm)("div",{class:["v-switch__thumb",a.value]},[e.loading&&(0,l.Wm)(g.rD,{name:"v-switch",active:!0,color:!1===c.value?void 0:d.value},{default:e=>n.loader?n.loader(e):(0,l.Wm)(w.L,{active:e.isActive,color:e.color,indeterminate:!0,size:"16",width:"2"},null)})])}})}})})),{}}});var V=a(6269);const D=(0,l.Uk)(" 开服时间设置 "),x=(0,l.Uk)("修改"),B=(0,l.Uk)(" Close ");function F(e,t,a,p,v,w){return(0,l.wg)(),(0,l.j4)(c.K,null,{default:(0,l.w5)((()=>[(0,l.Wm)(o._,{id:"drop-area",flat:""},{default:(0,l.w5)((()=>[(0,l.Wm)(d.E,{class:"text-center"},{default:(0,l.w5)((()=>[D])),_:1}),(0,l.Wm)(u.J),(0,l.Wm)(s.Z,null,{default:(0,l.w5)((()=>[(0,l.Wm)(m.o,null,{default:(0,l.w5)((()=>[(0,l.Wm)(f.D,null,{default:(0,l.w5)((()=>[(0,l.Wm)(V.h,{label:"开服时间",value:v.newtime,onChange:e.describechanage,disabled:!e.canedit,variant:"outlined"},null,8,["value","onChange","disabled"])])),_:1}),(0,l.Wm)(f.D,{cols:"2"},{default:(0,l.w5)((()=>[(0,l.Wm)(U,{modelValue:e.canedit,"onUpdate:modelValue":t[0]||(t[0]=t=>e.canedit=t),label:"修改"},null,8,["modelValue"])])),_:1})])),_:1})])),_:1}),(0,l.Wm)(r.h,null,{default:(0,l.w5)((()=>[(0,l.Wm)(m.o,{justify:"center"},{default:(0,l.w5)((()=>[(0,l.Wm)(f.D,{cols:"5"},{default:(0,l.w5)((()=>[(0,l.Wm)(i.T,{variant:"flat",color:"secondary",disabled:v.mytime==v.newtime,loading:v.uploading,onClick:e.uploadres,block:""},{default:(0,l.w5)((()=>[x])),_:1},8,["disabled","loading","onClick"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,l.Wm)(h.v,{modelValue:v.snackbar,"onUpdate:modelValue":t[2]||(t[2]=e=>v.snackbar=e),timeout:2e3},{action:(0,l.w5)((({attrs:e})=>[(0,l.Wm)(i.T,(0,l.dG)({color:"blue",text:""},e,{onClick:t[1]||(t[1]=e=>v.snackbar=!1)}),{default:(0,l.w5)((()=>[B])),_:2},1040)])),default:(0,l.w5)((()=>[(0,l.Uk)((0,n.zw)(v.errstr)+" ",1)])),_:1},8,["modelValue"])])),_:1})}var $=a(3078),z={name:"upload",data(){return{errstr:"",snackbar:!1,optime:"",mytime:"",newtime:"",uploading:!1}},mounted:function(){this.getopentime()},methods:{getopentime(){let e=new FormData;(0,$.ur)("/getopentime",e,null).then((e=>{const{data:t}=e;this.optime=t.optime,this.mytime=t.mytime,this.newtime=t.mytime,console.log("getopentime succ"),this.$forceUpdate()})).catch((e=>{this.uploading=!1,this.errstr=e.message,this.snackbar=!0,console.log("getopentime err:%o",e)}))},modifyopentime(){let e=new FormData;e.append("opentime",this.mytime),(0,$.ur)("/modifyopentime",e,null).then((e=>{const{data:t}=e;this.timestr=t,console.log("modifyopentime succ"),this.$forceUpdate()})).catch((e=>{this.uploading=!1,this.errstr=e.message,this.snackbar=!0,console.log("modifyopentime err:%o",e)}))}}},A=a(89);const G=(0,A.Z)(z,[["render",F]]);var j=G}}]);
//# sourceMappingURL=13.7aeffd39.js.map

1
bin/dist/js/13.7aeffd39.js.map vendored Normal file

File diff suppressed because one or more lines are too long

2
bin/dist/js/386.2cd61690.js vendored Normal file

File diff suppressed because one or more lines are too long

1
bin/dist/js/386.2cd61690.js.map vendored Normal file

File diff suppressed because one or more lines are too long

2
bin/dist/js/466.52dd85f8.js vendored Normal file
View File

@ -0,0 +1,2 @@
"use strict";(self["webpackChunkvue_dreamfactory"]=self["webpackChunkvue_dreamfactory"]||[]).push([[466],{9620:function(e,l,t){t.r(l),t.d(l,{default:function(){return Z}});var a=t(3396),s=t(9242),i=t(7139),n=t(7312),u=t(11),o=t(6572),r=t(1888),f=t(1334),d=t(4075),c=t(3369),m=t(6824),h=t(8521),p=t(3289),w=t(9671);const _=(0,a.Uk)(" 上传游戏配置文件 "),k=(0,a.Uk)("mdi-cloud-upload"),g=(0,a.Uk)("将文件拖到此处,或"),W=(0,a._)("strong",{class:"blue--text text--lighten-1"},"点击上传",-1),v=(0,a.Uk)("只能上传 .json 格式的文件"),b=(0,a.Uk)("文件列表"),U=(0,a.Uk)(" mdi-close-circle "),x=(0,a.Uk)("提交"),C=(0,a.Uk)(" Close ");function D(e,l,t,D,y,j){return(0,a.wg)(),(0,a.j4)(c.K,null,{default:(0,a.w5)((()=>[(0,a.Wm)(u._,{id:"drop-area",flat:""},{default:(0,a.w5)((()=>[(0,a.Wm)(o.E,{class:"text-center"},{default:(0,a.w5)((()=>[_])),_:1}),(0,a.Wm)(d.J),(0,a.Wm)(r.Z,null,{default:(0,a.w5)((()=>[(0,a.wy)((0,a._)("input",{ref:"fileinput",onChange:l[0]||(l[0]=(...e)=>j.changeFile&&j.changeFile(...e)),type:"file",multiple:"multiple"},null,544),[[s.F8,!1]]),(0,a.Wm)(u._,{id:"drop-area",onClick:j.selectFile,variant:"outlined",height:"220"},{default:(0,a.w5)((()=>[(0,a.Wm)(r.Z,null,{default:(0,a.w5)((()=>[(0,a.Wm)(m.o,{justify:"center",dense:""},{default:(0,a.w5)((()=>[(0,a.Wm)(h.D,{cols:"12",class:"text-center"},{default:(0,a.w5)((()=>[(0,a.Wm)(p.t,{size:"120"},{default:(0,a.w5)((()=>[k])),_:1})])),_:1}),(0,a.Wm)(h.D,{cols:"12",class:"text-center"},{default:(0,a.w5)((()=>[g,W])),_:1}),(0,a.Wm)(h.D,{cols:"12",class:"text-center"},{default:(0,a.w5)((()=>[v])),_:1})])),_:1})])),_:1})])),_:1},8,["onClick"]),(0,a.Wm)(u._,{variant:"outlined",class:"mt-5"},{default:(0,a.w5)((()=>[(0,a.Wm)(o.E,null,{default:(0,a.w5)((()=>[b])),_:1}),(0,a.Wm)(r.Z,null,{default:(0,a.w5)((()=>[(0,a.Wm)(m.o,null,{default:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(y.files,((e,l)=>((0,a.wg)(),(0,a.j4)(h.D,{cols:"12",key:l},{default:(0,a.w5)((()=>[(0,a.Wm)(u._,null,{default:(0,a.w5)((()=>[(0,a.Wm)(r.Z,{class:"pa-0"},{default:(0,a.w5)((()=>[(0,a.Wm)(m.o,null,{default:(0,a.w5)((()=>[(0,a.Wm)(h.D,{cols:"10"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,i.zw)(e.title),1)])),_:2},1024),(0,a.Wm)(h.D,{cols:"2",class:"d-flex justify-end"},{default:(0,a.w5)((()=>[(0,a.Wm)(n.T,{variant:"outlined",size:"x-small",icon:"",onClick:e=>j.removefile(l)},{default:(0,a.w5)((()=>[(0,a.Wm)(p.t,null,{default:(0,a.w5)((()=>[U])),_:1})])),_:2},1032,["onClick"])])),_:2},1024)])),_:2},1024)])),_:2},1024)])),_:2},1024)])),_:2},1024)))),128))])),_:1})])),_:1}),(0,a.Wm)(f.h,null,{default:(0,a.w5)((()=>[(0,a.Wm)(m.o,{justify:"center"},{default:(0,a.w5)((()=>[(0,a.Wm)(h.D,{cols:"5"},{default:(0,a.w5)((()=>[(0,a.Wm)(n.T,{variant:"flat",color:"secondary",disabled:0==y.files.length,loading:y.uploading,onClick:j.uploadres,block:""},{default:(0,a.w5)((()=>[x])),_:1},8,["disabled","loading","onClick"])])),_:1})])),_:1})])),_:1})])),_:1})])),_:1})])),_:1}),(0,a.Wm)(w.v,{modelValue:y.snackbar,"onUpdate:modelValue":l[2]||(l[2]=e=>y.snackbar=e),timeout:2e3},{action:(0,a.w5)((({attrs:e})=>[(0,a.Wm)(n.T,(0,a.dG)({color:"blue",text:""},e,{onClick:l[1]||(l[1]=e=>y.snackbar=!1)}),{default:(0,a.w5)((()=>[C])),_:2},1040)])),default:(0,a.w5)((()=>[(0,a.Uk)((0,i.zw)(y.errstr)+" ",1)])),_:1},8,["modelValue"])])),_:1})}var y=t(3078),j={name:"upload",data(){return{errstr:"",snackbar:!1,files:[],dialog:!1,uploading:!1,uploadprogress:0}},methods:{changeFile(e){let l=["json"];console.log("suffixs:%o",l);for(let i of e.target.files){let e=i.name,n=!1;var t=e.lastIndexOf(".");if(-1==t)return this.$refs.fileinput.value=null,this.errstr="目标文件格式不符合规范!",void(this.snackbar=!0);for(var a=e.substring(t+1),s=0;s<l.length;s++)if(a==l[s]){n=!0;break}if(!n)return this.$refs.fileinput.value=null,this.errstr="目标文件格式不符合规范!",void(this.snackbar=!0);this.files.push({file:i,title:i.name})}this.$refs.fileinput.value=null},selectFile(){this.$refs.fileinput.dispatchEvent(new MouseEvent("click"))},removefile(e){this.files.forEach((function(l,t,a){t==e&&a.splice(t,1)}))},uploadres(){this.uploading=!0;var e=new FormData;for(let l=0;l<this.files.length;++l)e.append("file_"+l,this.files[l].file);e.append("filenum",this.files.length),(0,y.ur)("/upload",e,(e=>{this.uploadprogress=e})).then((e=>{this.uploading=!1,this.errstr="文件上传成功!",this.snackbar=!0,this.files=[],console.log("uploadformData 文件上传成功"),this.$forceUpdate()})).catch((e=>{this.uploading=!1,this.errstr=e.message,this.snackbar=!0,console.log("uploadformData 文件上传失败 err:%o",e)}))}}},F=t(89);const E=(0,F.Z)(j,[["render",D]]);var Z=E}}]);
//# sourceMappingURL=466.52dd85f8.js.map

1
bin/dist/js/466.52dd85f8.js.map vendored Normal file

File diff suppressed because one or more lines are too long

2
bin/dist/js/78.6bf11ab8.js vendored Normal file

File diff suppressed because one or more lines are too long

1
bin/dist/js/78.6bf11ab8.js.map vendored Normal file

File diff suppressed because one or more lines are too long

42
bin/dist/js/883.e2be0631.js vendored Normal file

File diff suppressed because one or more lines are too long

1
bin/dist/js/883.e2be0631.js.map vendored Normal file

File diff suppressed because one or more lines are too long

2
bin/dist/js/925.dd13d3d9.js vendored Normal file
View File

@ -0,0 +1,2 @@
"use strict";(self["webpackChunkvue_dreamfactory"]=self["webpackChunkvue_dreamfactory"]||[]).push([[925],{8925:function(e,t,a){a.r(t),a.d(t,{default:function(){return j}});var l=a(3396),i=a(7139),n=a(7312),o=a(11),d=a(6572),s=a(1888),u=a(1334),m=a(4075),r=a(3369),c=a(6824),h=a(8521),f=a(9671),p=a(6193),v=a(7076),w=a(3173),g=a(6791),b=a(8717),k=a(4870),y=a(320),W=a(7514),_=a(9888),C=a(131);const U=(0,y.a)({name:"VSwitch",inheritAttrs:!1,props:{indeterminate:Boolean,inset:Boolean,flat:Boolean,loading:{type:[Boolean,String],default:!1},...(0,v.co)(),...(0,p.$9)()},emits:{"update:indeterminate":e=>!0},setup(e,t){let{attrs:a,slots:i}=t;const n=(0,b.z)(e,"indeterminate"),{loaderClasses:o}=(0,g.U2)(e),d=(0,l.Fl)((()=>"string"===typeof e.loading&&""!==e.loading?e.loading:e.color)),s=(0,W.sq)(),u=(0,l.Fl)((()=>e.id||`switch-${s}`));function m(){n.value&&(n.value=!1)}return(0,_.L)((()=>{const[t,s]=(0,C.An)(a),[r,c]=(0,v.PE)(e),[h,f]=(0,p.fU)(e),b=(0,k.iH)();function y(){var e,t;null==(e=b.value)||null==(t=e.input)||t.click()}return(0,l.Wm)(v.q8,(0,l.dG)({class:["v-switch",{"v-switch--inset":e.inset},{"v-switch--indeterminate":n.value},o.value]},t,r,{id:u.value}),{...i,default:t=>{let{id:a,isDisabled:o,isReadonly:u,isValid:r}=t;return(0,l.Wm)(p.g5,(0,l.dG)({ref:b},h,{id:a.value,type:"checkbox","onUpdate:modelValue":m,"aria-checked":n.value?"mixed":void 0,disabled:o.value,readonly:u.value},s),{...i,default:()=>(0,l.Wm)("div",{class:"v-switch__track",onClick:y},null),input:t=>{let{textColorClasses:a}=t;return(0,l.Wm)("div",{class:["v-switch__thumb",a.value]},[e.loading&&(0,l.Wm)(g.rD,{name:"v-switch",active:!0,color:!1===r.value?void 0:d.value},{default:e=>i.loader?i.loader(e):(0,l.Wm)(w.L,{active:e.isActive,color:e.color,indeterminate:!0,size:"16",width:"2"},null)})])}})}})})),{}}});var V=a(6269);const D=(0,l.Uk)(" 开服时间设置 "),x=(0,l.Uk)("修改"),B=(0,l.Uk)(" Close ");function F(e,t,a,p,v,w){return(0,l.wg)(),(0,l.j4)(r.K,null,{default:(0,l.w5)((()=>[(0,l.Wm)(o._,{id:"drop-area",flat:""},{default:(0,l.w5)((()=>[(0,l.Wm)(d.E,{class:"text-center"},{default:(0,l.w5)((()=>[D])),_:1}),(0,l.Wm)(m.J),(0,l.Wm)(s.Z,null,{default:(0,l.w5)((()=>[(0,l.Wm)(c.o,null,{default:(0,l.w5)((()=>[(0,l.Wm)(h.D,null,{default:(0,l.w5)((()=>[(0,l.Wm)(V.h,{label:"开服时间",modelValue:v.newtime,"onUpdate:modelValue":t[0]||(t[0]=e=>v.newtime=e),onChange:e.describechanage,disabled:!v.canedit,variant:"outlined"},null,8,["modelValue","onChange","disabled"])])),_:1}),(0,l.Wm)(h.D,{cols:"2"},{default:(0,l.w5)((()=>[(0,l.Wm)(U,{modelValue:v.canedit,"onUpdate:modelValue":t[1]||(t[1]=e=>v.canedit=e),disabled:!v.loaded,label:"修改"},null,8,["modelValue","disabled"])])),_:1})])),_:1})])),_:1}),(0,l.Wm)(u.h,null,{default:(0,l.w5)((()=>[(0,l.Wm)(c.o,{justify:"center"},{default:(0,l.w5)((()=>[(0,l.Wm)(h.D,{cols:"5"},{default:(0,l.w5)((()=>[(0,l.Wm)(n.T,{variant:"flat",color:"secondary",disabled:v.mytime==v.newtime,loading:v.uploading,onClick:w.modifyopentime,block:""},{default:(0,l.w5)((()=>[x])),_:1},8,["disabled","loading","onClick"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,l.Wm)(f.v,{modelValue:v.snackbar,"onUpdate:modelValue":t[3]||(t[3]=e=>v.snackbar=e),timeout:2e3},{action:(0,l.w5)((({attrs:e})=>[(0,l.Wm)(n.T,(0,l.dG)({color:"blue",text:""},e,{onClick:t[2]||(t[2]=e=>v.snackbar=!1)}),{default:(0,l.w5)((()=>[B])),_:2},1040)])),default:(0,l.w5)((()=>[(0,l.Uk)((0,i.zw)(v.errstr)+" ",1)])),_:1},8,["modelValue"])])),_:1})}var $=a(3078),z={name:"upload",data(){return{errstr:"",snackbar:!1,optime:"",mytime:"",newtime:"",loaded:!1,canedit:!1,uploading:!1}},mounted:function(){this.getopentime()},methods:{getopentime(){this.loaded=!1;let e=new FormData;(0,$.ur)("/getopentime",e,null).then((e=>{const{data:t}=e;this.optime=t.optime,this.mytime=t.mytime,this.newtime=t.mytime,this.loaded=!0,console.log("getopentime succ"),this.$forceUpdate()})).catch((e=>{this.uploading=!1,this.errstr=e.message,this.snackbar=!0,console.log("getopentime err:%o",e)}))},modifyopentime(){this.uploading=!0;let e=new FormData;e.append("opentime",this.newtime),(0,$.ur)("/modifyopentime",e,null).then((e=>{const{data:t}=e;this.mytime=t,this.newtime=t.mytime,console.log("modifyopentime succ"),this.uploading=!1,this.$forceUpdate()})).catch((e=>{this.uploading=!1,this.errstr=e.message,this.snackbar=!0,console.log("modifyopentime err:%o",e)}))}}},A=a(89);const G=(0,A.Z)(z,[["render",F]]);var j=G}}]);
//# sourceMappingURL=925.dd13d3d9.js.map

1
bin/dist/js/925.dd13d3d9.js.map vendored Normal file

File diff suppressed because one or more lines are too long

2
bin/dist/js/app.3ad52f48.js vendored Normal file

File diff suppressed because one or more lines are too long

1
bin/dist/js/app.3ad52f48.js.map vendored Normal file

File diff suppressed because one or more lines are too long

2
bin/dist/js/app.8c9fb8ef.js vendored Normal file

File diff suppressed because one or more lines are too long

1
bin/dist/js/app.8c9fb8ef.js.map vendored Normal file

File diff suppressed because one or more lines are too long

20
bin/dist/js/chunk-vendors.edda0066.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
1256545
10.000000

View File

@ -1,17 +1,65 @@
package web
import (
"context"
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/lego/sys/gin/engine"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
"net/http"
"time"
)
type OpenTime struct {
Optime string `json:"optime"` //开服时间
Mytime string `json:"mytime"` //修改后的开服时间
}
//获取开服时间
func (this *Api_Comp) Getopentime(c *engine.Context) {
data := &OpenTime{
Optime: this.module.service.GetOpentime().Format("2006-01-02 15:04:05"),
Mytime: this.module.service.GetOpentime().Add(configure.GetOffsettime()).Format("2006-01-02 15:04:05"),
}
c.JSON(http.StatusOK, &Respond{
Code: 0,
Message: "成功",
Data: this.module.service.GetOpentime(),
Data: data,
})
}
//修改开服时间
func (this *Api_Comp) Modifyopentime(c *engine.Context) {
var (
code pb.ErrorCode
msg string
offest time.Duration
)
opentime := c.PostForm("opentime")
defer func() {
c.JSON(http.StatusOK, &Respond{
Code: code,
Message: msg,
Data: opentime,
})
}()
t, err := time.ParseInLocation("2006-01-02 15:04:05", opentime, time.Local)
if nil != err || t.IsZero() {
this.module.Errorln(err)
msg = fmt.Sprintf("opentime:%s 格式异常", opentime)
code = pb.ErrorCode_ReqParameterError
}
offest = t.Sub(this.module.service.GetOpentime())
configure.SetOffsettime(offest)
if err := this.module.service.RpcBroadcast(
context.Background(),
comm.Service_Worker,
string(comm.Rpc_ConfigureUpDate),
&pb.EmptyReq{},
&pb.EmptyResp{}); err != nil {
this.module.Errorln(err)
msg = err.Error()
code = pb.ErrorCode_RpcFuncExecutionError
}
}

View File

@ -75,6 +75,7 @@ func (this *Configure) Stop() (err error) {
func (this *Configure) Update() {
this.checkConfigure()
this.readoffsettime()
}
//服务当前时间
@ -82,6 +83,17 @@ func (this *Configure) Now() time.Time {
return time.Now().Add(this.offsettime)
}
//读取时间偏移量
func (this *Configure) GetOffsettime() time.Duration {
return this.offsettime
}
//设置开发时间偏移量
func (this *Configure) SetOffsettime(offset time.Duration) {
this.offsettime = offset
this.writeoffsettime(offset)
}
//加载配置文件
func (this *Configure) RegisterConfigure(name string, fn interface{}, callback func()) (err error) {
this.hlock.RLock()
@ -237,12 +249,28 @@ func (this *Configure) readoffsettime() {
err error
)
if file, err = os.Open(this.options.TimestampFile); err != nil {
log.Errorf("[Configure Sys] readoffsettime err:%v", err)
return
}
defer file.Close()
if data, err = ioutil.ReadAll(file); err != nil {
log.Errorf("[Configure Sys] readoffsettime err:%v", err)
return
}
offtimeStr = codec.BytesToString(data)
this.offsettime = time.Second * time.Duration(codec.StringToInt64(offtimeStr))
this.offsettime = time.Second * time.Duration(codec.StringToFloat64(offtimeStr))
}
//写入开服时间偏移
func (this *Configure) writeoffsettime(offset time.Duration) {
var (
file *os.File
err error
)
if file, err = os.OpenFile(this.options.TimestampFile, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666); err != nil {
log.Errorf("[Configure Sys] writeoffsettime err:%v", err)
return
}
defer file.Close()
file.WriteString(fmt.Sprintf("%f", offset.Seconds()))
}

View File

@ -22,6 +22,8 @@ type (
RegisterConfigure(name string, fn interface{}, callback func()) (err error) //注册配置
GetConfigure(name string) (v interface{}, err error) //获取配置
Now() time.Time //服务器当前时间
GetOffsettime() time.Duration //读取开服时间
SetOffsettime(offset time.Duration) //设置开发时间偏移量
}
)
@ -57,11 +59,16 @@ func Stop() (err error) {
func Update() {
defsys.Update()
}
func SetOffsettime(offset time.Duration) {
defsys.SetOffsettime(offset)
}
func RegisterConfigure(name string, fn interface{}, callback func()) (err error) {
return defsys.RegisterConfigure(name, fn, callback)
}
func GetOffsettime() time.Duration {
return defsys.GetOffsettime()
}
func GetConfigure(name string) (v interface{}, err error) {
return defsys.GetConfigure(name)
}