forked from Simnation/Main
1 line
15 KiB
JavaScript
1 line
15 KiB
JavaScript
import{_ as D,R as E,P as F,o as g,X as y,a7 as a,a as i,w as s,a6 as v,ab as b,c as k,V as _,a5 as u,W as f,U as d,a9 as p,aP as x,aQ as I,aT as V,Y as M,Z as R,bF as L,S as j,a8 as T}from"./app-014d9ed9.js";import{Q as O}from"./QTooltip.9d840032.js";import{Q as S}from"./QImg.91aecb73.js";import{a as N,Q as w,c as Q}from"./QItemLabel.b6dd3adb.js";import{Q as h}from"./QSelect.d7ce3d4c.js";import{Q as A}from"./QBadge.718e7c58.js";import{Q as B}from"./QMarkupTable.ba6854cc.js";import{Q as z}from"./QForm.8d79ab03.js";import{B as $}from"./BasicDialog.9dd9de92.js";import{d as P}from"./utils.9ce591f3.js";import{e as H}from"./externalHosting.js";import"./position-engine.65ebcb34.js";import"./selection.2a17b691.js";import"./rtl.b51694b1.js";const q={anim:{lib:"",dict:"",text:"",timeOut:null},accept:[],reward:""},J={name:"Item",data(){return{externalHosting:H,RESOURCE:E,ACTION:F,defaults:["shouldclose","type","description","weight","label","unique","useable","image","name","combinable"],pendingSave:!1,pendingDelete:!1,item:{},customVars:[],itemTypes:["item","weapon"],items:[],itemImages:[],itemsReward:[],itemsAccept:[""],imageAccept:[""],combinable:q}},computed:{getRewardLabel(){const e=this.items.find(t=>t.value===this.combinable.reward);return e?e.label:this.combinable.reward}},methods:{can:P,isNumeric(e){return typeof e!="string"?!1:!isNaN(e)&&!isNaN(parseFloat(e))},isBoolean(e){return e==="true"||(e==="false"?!1:e)},addCustomVar(){this.customVars.push({name:"",value:""})},removeVar(e,t){e>-1&&this.$q.dialog({component:$,componentProps:{title:this.$i18n.t("components.item.deleteHeader"),message:this.$i18n.t("components.item.deleteCustomVarMsg",{name:t.name})},cancel:!0,persistent:!0}).onOk(()=>{delete this.item[t.oldName],this.customVars.splice(e,1)})},triggerFileSelect(){this.$refs.image.value=null,this.$refs.image.click()},uploadImage(e){if(!this.$refs.image.value)return;const t=e.target.files[0];let m=new FormData;m.set("file",t),m.set("name",t.name),this.$axios.post("/api/items/icon-upload",m).then(r=>{if(!r.data.resCode){const n=r.data.resMsg;this.$q.notify({message:this.$i18n.t("general.error"),position:"top",color:"red",icon:"fas fa-exclamation-triangle",caption:this.$i18n.t(`components.item.msg.error.${n}`)});return}this.$q.notify({message:this.$i18n.t("general.success"),position:"top",color:"green",icon:"fas fa-check",caption:this.$i18n.t("components.item.uploadedImage")}),this.itemImages=Object.freeze(r.data.images),this.item.image=r.data.filename})},trySave(){this.$refs.customVarForm.validate().then(e=>{if(!e){this.$q.notify({message:this.$i18n.t("general.error"),position:"top",color:"red",icon:"fas fa-exclamation-triangle",caption:this.$i18n.t("components.item.msg.error.uniqueVars")});return}this.customVars.forEach(t=>{!t.name||(t.oldName=t.name,this.item[t.name]=this.isNumeric(t.value)?Number(t.value):this.isBoolean(t.value))}),this.pendingSave=!0,Object.entries(this.combinable).sort().toString()!==Object.entries(q).sort().toString()&&(this.item.combinable=this.combinable),this.$axios.patch(`/api/items/save/${this.item.name}`,this.item).then(t=>{if(this.pendingSave=!1,!t.data.resCode){const r=t.data.resMsg;this.$q.notify({message:this.$i18n.t("general.error"),position:"top",color:"red",icon:"fas fa-exclamation-triangle",caption:this.$i18n.t(`components.item.msg.error.${r}`,{name:this.item.name})});return}this.$q.notify({message:this.$i18n.t("general.success"),position:"top",color:"green",icon:"fas fa-check",caption:this.$i18n.t("general.saved")})}).catch(t=>{})})},tryDelete(){this.pendingDelete=!0,this.$q.dialog({component:$,componentProps:{title:this.$i18n.t("components.item.deleteHeader"),message:this.$i18n.t("components.item.deleteMsg",{itemLabel:this.item.label,itemName:this.item.name})},cancel:!0,persistent:!0}).onOk(()=>{this.$axios.delete(`/api/items/delete/${this.item.name}`).then(e=>{if(this.pendingDelete=!1,!e.data.resCode){const m=e.data.resMsg;this.$q.notify({message:this.$i18n.t("general.error"),position:"top",color:"red",icon:"fas fa-exclamation-triangle",caption:this.$i18n.t(`components.item.msg.error.${m}`,{name:this.item.name})});return}this.$q.notify({message:this.$i18n.t("general.success"),position:"top",color:"green",icon:"fas fa-check",caption:this.$i18n.t("general.deleted")}),this.$router.push({name:"dev-item-list"})}).catch(e=>{})}).onCancel(()=>{this.pendingDelete=!1})},filterAccept(e,t){const m=e.toLowerCase();this.itemsAccept=Object.freeze(this.items.filter(r=>r.label.toLowerCase().indexOf(m)>-1)),t()},filterImage(e,t){const m=e.toLowerCase();this.imageAccept=Object.freeze(this.itemImages.filter(r=>r.toLowerCase().indexOf(m)>-1)),t()},filterReward(e,t){const m=e.toLowerCase();this.itemsReward=Object.freeze(this.items.filter(r=>r.label.toLowerCase().indexOf(m)>-1)),t()}},mounted(){this.$axios.get(`/api/items/${this.$route.params.itemId}`).then(e=>{const t=e.data.item,m=e.data.items,r=e.data.images;if(!t||!m||!r){this.$q.notify({message:e.data.msg,position:"top",color:"red",icon:"fas fa-exclamation-triangle",caption:"Error"});return}this.items=Object.freeze(m),this.item=t,this.itemImages=Object.freeze(r),this.item.combinable?this.combinable=this.item.combinable:this.combinable=JSON.parse(JSON.stringify(q));for(const[l,n]of Object.entries(t))this.defaults.includes(l.toLowerCase())||this.customVars.push({name:l,value:n,oldName:l})}).catch(e=>{console.error(e)})}},Y={class:"row"},W={class:"col-12"},X={class:"q-ma-sm row"},Z={class:"text-h6"},G={class:"text-primary"},K={class:"row full-width justify-center q-mt-md"},ee={class:"q-pa-sm",style:{border:"solid 2px var(--q-primary)",height:"140px",width:"150px"}},te={class:"absolute-full flex flex-center text-main"},le={class:"row q-mt-md"},ie={class:"row q-mt-md"},oe={class:"row q-mt-md"},se={class:"col-12"},ae={class:"q-ma-sm row"},ne={class:"row"},me={class:"text-h6"},re={class:"text-caption text-sub"},ce={class:"q-ml-auto"},de={style:{width:"30px"},class:"text-right vertical-middle"},ue={class:"col-12"},pe={class:"q-ma-sm row"},be={class:"text-h6"},fe={class:"text-caption text-sub"},ge={class:"text-main"},he={class:"col-12"},ye={class:"q-ma-sm row justify-end"};function ve(e,t,m,r,l,n){return g(),y("div",Y,[a("div",W,[a("div",X,[i(v,{class:"bg-secondary full-width row"},{default:s(()=>[i(u,{class:"col-12"},{default:s(()=>[a("div",Z,[f(d(e.$t("components.item.edit"))+": ",1),a("span",G,d(l.item.name),1)])]),_:1}),i(u,{class:"col-12 col-md-6"},{default:s(()=>[i(p,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",modelValue:l.item.label,"onUpdate:modelValue":t[0]||(t[0]=o=>l.item.label=o),label:e.$t("components.item.label")},null,8,["input-style","modelValue","label"]),i(p,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",class:"q-mt-md",modelValue:l.item.description,"onUpdate:modelValue":t[1]||(t[1]=o=>l.item.description=o),label:e.$t("components.item.desc")},null,8,["input-style","modelValue","label"]),a("input",{ref:"image",type:"file",onInput:t[2]||(t[2]=(...o)=>n.uploadImage&&n.uploadImage(...o)),hidden:"",accept:"image/png, image/jpeg"},null,544),i(h,{label:e.$t("components.item.image"),color:"primary","label-color":"primary",filled:"",class:"q-mt-md",modelValue:l.item.image,"onUpdate:modelValue":t[3]||(t[3]=o=>l.item.image=o),options:l.imageAccept,"popup-content-class":"bg-secondary text-main","use-input":"","input-class":"text-main",onFilter:n.filterImage},{after:s(()=>[i(b,{"text-color":"main",square:"",color:"primary",icon:"file_upload",onClick:n.triggerFileSelect},{default:s(()=>[i(O,null,{default:s(()=>[f(d(e.$t("components.item.uploadNew")),1)]),_:1})]),_:1},8,["onClick"])]),option:s(o=>[i(N,x(I(o.itemProps)),{default:s(()=>[i(w,{avatar:""},{default:s(()=>[i(S,{src:`${l.externalHosting.backend}/public/inventory/icons/${o.opt}`,"spinner-color":"primary",fit:"contain"},null,8,["src"])]),_:2},1024),i(w,null,{default:s(()=>[i(Q,{class:"text-main"},{default:s(()=>[f(d(o.opt),1)]),_:2},1024)]),_:2},1024)]),_:2},1040)]),_:1},8,["label","modelValue","options","onFilter"]),a("div",K,[a("div",ee,[i(S,{src:`${l.externalHosting.backend}/public/inventory/icons/${l.item.image}`,class:"full-height","spinner-color":"main"},{error:s(()=>[a("div",te,d(e.$t("components.item.imageNotFound")),1)]),_:1},8,["src"])])])]),_:1}),i(u,{class:"col-12 col-md-6"},{default:s(()=>[i(p,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",type:"number",modelValue:l.item.weight,"onUpdate:modelValue":t[4]||(t[4]=o=>l.item.weight=o),modelModifiers:{number:!0},label:e.$t("components.item.weight")},null,8,["input-style","modelValue","label"]),i(h,{label:e.$t("components.item.type"),color:"primary","label-color":"primary",filled:"",class:"q-mt-md",modelValue:l.item.type,"onUpdate:modelValue":t[5]||(t[5]=o=>l.item.type=o),options:l.itemTypes,"popup-content-class":"bg-secondary text-main"},{selected:s(()=>[i(A,{color:l.item.type==="item"?"primary":"negative"},{default:s(()=>[f(d(l.item.type),1)]),_:1},8,["color"])]),_:1},8,["label","modelValue","options"]),a("div",le,[i(V,{modelValue:l.item.useable,"onUpdate:modelValue":t[6]||(t[6]=o=>l.item.useable=o),label:e.$t("components.item.useable")},null,8,["modelValue","label"])]),a("div",ie,[i(V,{modelValue:l.item.unique,"onUpdate:modelValue":t[7]||(t[7]=o=>l.item.unique=o),label:e.$t("components.item.unique")},null,8,["modelValue","label"])]),a("div",oe,[i(V,{modelValue:l.item.shouldClose,"onUpdate:modelValue":t[8]||(t[8]=o=>l.item.shouldClose=o),label:e.$t("components.item.shouldClose")},null,8,["modelValue","label"])])]),_:1})]),_:1})])]),a("div",se,[a("div",ae,[i(v,{class:"bg-secondary full-width row"},{default:s(()=>[i(u,{class:"col-12"},{default:s(()=>[a("div",ne,[a("div",null,[a("div",me,d(e.$t("components.item.customVariables")),1),a("div",re,d(e.$t("components.item.customVarSub")),1)]),a("div",ce,[i(b,{"text-color":"main",color:"primary",label:e.$t("components.item.addCustomVar"),onClick:n.addCustomVar},null,8,["label","onClick"])])])]),_:1}),i(u,{class:"col-12"},{default:s(()=>[i(z,{ref:"customVarForm"},{default:s(()=>[i(B,{class:"bg-secondary text-main",flat:"",square:"",separator:"none"},{default:s(()=>[a("tbody",null,[(g(!0),y(M,null,R(l.customVars,(o,C)=>(g(),y("tr",{key:`${C}-customVar`},[a("td",null,[i(p,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",modelValue:o.name,"onUpdate:modelValue":c=>o.name=c,label:e.$t("components.item.customVarName"),"lazy-rules":"",rules:[c=>c&&c.length>0||e.$t("rules.required"),c=>c&&!/\s/.test(c)||e.$t("rules.noSpace"),c=>c&&l.customVars.filter(U=>U.name===c).length<=1||e.$t("rules.unique"),c=>c&&!l.defaults.includes(c.toLowerCase())||e.$t("rules.defaults")]},null,8,["input-style","modelValue","onUpdate:modelValue","label","rules"])]),a("td",null,[i(p,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",class:"q-field--with-bottom",modelValue:o.value,"onUpdate:modelValue":c=>o.value=c,label:e.$t("components.item.customVarValue")},null,8,["input-style","modelValue","onUpdate:modelValue","label"])]),a("td",de,[i(b,{"text-color":"main",class:"text-red-6",dense:"",flat:"",icon:"fas fa-trash",size:"xs",onClick:c=>n.removeVar(C,o)},{default:s(()=>[i(O,null,{default:s(()=>[f(d(e.$t("general.delete")),1)]),_:1})]),_:2},1032,["onClick"])])]))),128))])]),_:1})]),_:1},512)]),_:1})]),_:1})])]),a("div",ue,[a("div",pe,[i(v,{class:"bg-secondary full-width row"},{default:s(()=>[i(u,{class:"col-12"},{default:s(()=>[a("div",be,d(e.$t("components.item.combinability")),1),a("div",fe,d(e.$t("components.item.combinabSub")),1)]),_:1}),i(u,{class:"col-12 col-md-6"},{default:s(()=>[i(h,{ref:"accept",label:e.$t("components.item.combinable.accept"),color:"primary","label-color":"primary",filled:"",multiple:"",modelValue:l.combinable.accept,"onUpdate:modelValue":t[9]||(t[9]=o=>l.combinable.accept=o),options:l.itemsAccept,"popup-content-class":"bg-secondary text-main","use-input":"","use-chips":"","emit-value":"","input-class":"text-main",onFilter:n.filterAccept},null,8,["label","modelValue","options","onFilter"])]),_:1}),i(u,{class:"col-12 col-md-6"},{default:s(()=>[i(h,{class:"text-main",label:e.$t("components.item.combinable.reward"),color:"primary","label-color":"primary",filled:"",modelValue:l.combinable.reward,"onUpdate:modelValue":t[11]||(t[11]=o=>l.combinable.reward=o),options:l.itemsReward,"popup-content-class":"bg-secondary text-main","use-input":"","emit-value":"","input-class":"text-main","input-debounce":"0",onFilter:n.filterReward},L({selected:s(()=>[a("div",ge,d(n.getRewardLabel),1)]),option:s(o=>[i(N,x(I(o.itemProps)),{default:s(()=>[i(w,null,{default:s(()=>[i(Q,{class:"text-main"},{default:s(()=>[f(d(o.opt.label),1)]),_:2},1024)]),_:2},1024)]),_:2},1040)]),_:2},[l.combinable.reward?{name:"append",fn:s(()=>[i(j,{name:"cancel",onClick:t[10]||(t[10]=T(o=>l.combinable.reward="",["stop","prevent"])),class:"cursor-pointer text-primary"})]),key:"0"}:void 0]),1032,["label","modelValue","options","onFilter"])]),_:1}),i(u,{class:"col-12 col-md-6"},{default:s(()=>[i(p,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",class:"q-mt-md",modelValue:l.combinable.anim.text,"onUpdate:modelValue":t[12]||(t[12]=o=>l.combinable.anim.text=o),label:e.$t("components.item.combinable.text")},null,8,["input-style","modelValue","label"]),i(p,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",type:"number",class:"q-mt-md",modelValue:l.combinable.anim.timeOut,"onUpdate:modelValue":t[13]||(t[13]=o=>l.combinable.anim.timeOut=o),modelModifiers:{number:!0},label:e.$t("components.item.combinable.timeOut")},null,8,["input-style","modelValue","label"])]),_:1}),i(u,{class:"col-12 col-md-6"},{default:s(()=>[i(p,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",class:"q-mt-md",modelValue:l.combinable.anim.lib,"onUpdate:modelValue":t[14]||(t[14]=o=>l.combinable.anim.lib=o),label:e.$t("components.item.combinable.lib")},null,8,["input-style","modelValue","label"]),i(p,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",class:"q-mt-md",modelValue:l.combinable.anim.dict,"onUpdate:modelValue":t[15]||(t[15]=o=>l.combinable.anim.dict=o),label:e.$t("components.item.combinable.dict")},null,8,["input-style","modelValue","label"])]),_:1})]),_:1})])]),a("div",he,[a("div",ye,[i(b,{"text-color":"main",disable:l.pendingDelete||l.pendingSave,color:"primary",onClick:t[16]||(t[16]=o=>e.$router.push({name:"dev-item-list"})),label:e.$t("general.back"),class:"q-mr-auto"},null,8,["disable","label"]),n.can(l.ACTION.DEV.ITEM.MODIFY,l.RESOURCE.DEV)?(g(),k(b,{key:0,"text-color":"main",loading:l.pendingSave,disable:l.pendingDelete,color:"primary",onClick:n.trySave,label:e.$t("general.save"),class:"q-mr-sm"},null,8,["loading","disable","onClick","label"])):_("",!0),n.can(l.ACTION.DEV.ITEM.DELETE,l.RESOURCE.DEV)?(g(),k(b,{key:1,"text-color":"main",loading:l.pendingDelete,disable:l.pendingSave,color:"negative",onClick:n.tryDelete,label:e.$t("general.delete")},null,8,["loading","disable","onClick","label"])):_("",!0)])])])}const De=D(J,[["render",ve]]);export{De as default};
|