1
0
Fork 0
forked from Simnation/Main
Main/resources/[tools]/unlimited-spectre/html/assets/ItemCreate.8a3fa02e.js

2 lines
14 KiB
JavaScript
Raw Normal View History

2025-06-07 08:51:21 +02:00
import{_ as F,o as h,X as y,a7 as a,a as i,w as s,a6 as V,ab as f,a5 as d,U as c,a9 as p,W as b,aP as C,aQ as x,aT as v,Y as O,Z as N,bF as L,S as j,a8 as z}from"./app-014d9ed9.js";import{Q as _}from"./QForm.8d79ab03.js";import{Q}from"./QTooltip.9d840032.js";import{Q as S}from"./QImg.91aecb73.js";import{a as k,Q as w,c as $}from"./QItemLabel.b6dd3adb.js";import{Q as g}from"./QSelect.d7ce3d4c.js";import{Q as B}from"./QBadge.718e7c58.js";import{Q as M}from"./QMarkupTable.ba6854cc.js";import{B as A}from"./BasicDialog.9dd9de92.js";import{e as R}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:""},P={name:"ItemCreate",data(){return{externalHosting:R,defaults:["shouldclose","type","description","weight","label","unique","useable","image","name","combinable"],pendingSave:!1,item:{shouldClose:!1,type:"item",description:"",weight:0,label:"",unique:!1,useable:!1,image:"",name:""},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:{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){const t=this.customVars.indexOf(e);t>-1&&this.$q.dialog({component:A,componentProps:{title:this.$i18n.t("components.item.deleteHeader"),message:this.$i18n.t("components.item.deleteCustomVarMsg",{name:e.name})},cancel:!0,persistent:!0}).onOk(()=>{this.customVars.splice(t,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 n=new FormData;n.set("file",t),n.set("name",t.name),this.$axios.post("/api/items/icon-upload",n).then(r=>{if(!r.data.resCode){const u=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.${u}`)});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.itemForm.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.missingFields",{name:this.item.name})});return}this.$refs.customVarForm.validate().then(t=>{if(!t){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(n=>{!n.name||(this.item[n.name]=this.isNumeric(n.value)?Number(n.value):this.isBoolean(n.value))}),this.pendingSave=!0,Object.entries(this.combinable).sort().toString()!==Object.entries(q).sort().toString()&&(this.item.combinable=this.combinable),this.$axios.post("/api/items/create",this.item).then(n=>{if(this.pendingSave=!1,!n.data.resCode){const o=n.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.${o}`,{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")}),this.$router.push({name:"dev-item-list"})}).catch(()=>{})})})},filterAccept(e,t){const n=e.toLowerCase();this.itemsAccept=Object.freeze(this.items.filter(r=>r.label.toLowerCase().indexOf(n)>-1)),t()},filterImage(e,t){const n=e.toLowerCase();this.imageAccept=Object.freeze(this.itemImages.filter(r=>r.toLowerCase().indexOf(n)>-1)),t()},filterReward(e,t){const n=