forked from Simnation/Main
3 lines
15 KiB
JavaScript
3 lines
15 KiB
JavaScript
![]() |
import{Q as I}from"./QTooltip.9d840032.js";import{_ as R,R as O,P as A,o as r,X as p,a7 as h,a as c,w as a,a6 as E,T as b,r as T,a5 as k,U as y,c as g,W as x,V as f,ab as C,ao as P,Y as $,Z as _,S as M,a9 as Y,L as w,aO as D,bC as N,aF as L}from"./app-014d9ed9.js";import{F as j,I as H,E as V,A as G,Q as z,a as B}from"./EditGameItem.ca08f00f.js";import{B as q}from"./BasicDialog.9dd9de92.js";import{B as Q}from"./BasicPrompt.0f8aac67.js";import{d as X}from"./utils.9ce591f3.js";import{e as U}from"./export-file.dc78ba05.js";import"./position-engine.65ebcb34.js";import"./selection.2a17b691.js";import"./externalHosting.js";import"./QImg.91aecb73.js";import"./QItemLabel.b6dd3adb.js";import"./QSelect.d7ce3d4c.js";import"./rtl.b51694b1.js";import"./QMarkupTable.ba6854cc.js";import"./QForm.8d79ab03.js";const F={name:"Inventory",components:{FakeItem:j,Item:H},data(){return{RESOURCE:O,ACTION:A,loading:!1,amount:0,supportStashSlots:250,playerSlots:0,inventory:[],supStash:[],dragging:!1,dragAndDrop:{shiftX:null,shiftY:null,clonedElement:null,itemIndex:null,selectedElement:null}}},computed:{isMobile(){return this.$q.platform.is.mobile}},methods:{can:X,isNumeric(e){return/^-?\d+$/.test(e)},async loadInventory(){await this.$axios.get(`/api/players/${this.$route.params.citizenid}/inventory`).then(e=>{const t=e.data.resCode,s=e.data.inventory,l=e.data.playerSlots,n=e.data.stash;if(!t||!s||!l||!n){this.$q.notify({message:"Error",position:"top",color:"red",icon:"fas fa-exclamation-triangle",caption:this.$i18n.t(`components.inventory.msg.error.${e.data.resMsg}`)}),setTimeout(this.$router.back(),1500);return}this.updateInventory(s,l),this.updateStash(n)}).catch(()=>{this.$q.notify({message:"Error",position:"top",color:"red",icon:"fas fa-exclamation-triangle",caption:this.$i18n.t("components.inventory.msg.error.failedLoad")}),this.$q.dialog({component:q,componentProps:{title:this.$i18n.t("components.inventory.msg.error.fixPlayer"),message:this.$i18n.t("components.inventory.msg.error.fixPlayerText")},cancel:!0,persistent:!0}).onOk(()=>{this.$axios.post(`/api/players/${this.$route.params.citizenid}/inventory/fix-items`).then(e=>{const{resCode:t,resMsg:s,resItems:l}=e.data;if(!t){this.$q.notify({message:"Error",position:"top",color:"red",icon:"fas fa-exclamation-triangle"}),this.$router.push({name:"game-player-list"});return}U("deletedItems.txt",Object.entries(l).map(([n,i])=>`Slot ${n}: ${JSON.stringify(i,null,4)}`).join(`
|
||
|
`)),this.$q.dialog({component:Q,componentProps:{title:this.$i18n.t("general.success"),message:this.$i18n.t("components.inventory.msg.success.fixedPlayerItems")},persistent:!0}).onDismiss(()=>{this.$router.push({name:"game-player-detail",params:{citizenid:this.$route.params.citizenid}}).then(()=>{this.$router.go()})})})}).onCancel(()=>{this.$router.back()})})},updateInventory(e,t){const s=Object.keys(e).length>t?Object.keys(e).length:t,l=new Array(s).fill(null);for(const[n,i]of Object.entries(e)){const m=i.slot;l[m-1]=i}this.playerSlots=t,this.inventory=l},updateStash(e){const t=Object.keys(e).length>this.supportStashSlots?Object.keys(e).length:this.supportStashSlots,s=new Array(t).fill(null);for(const[l,n]of Object.entries(e)){const i=n.slot;s[i-1]=n}this.supStash=s},getTarget(e){const t=e.changedTouches?e.changedTouches[0]:!1;let s=e.target;return t&&(s=document.elementFromPoint(t.clientX,t.clientY)),s},selectItem(e){if(!this.can(A.GAME.PLAYER.INVENTORY,O.GAME)||this.dragging)return;this.dragging=!0;const t=document.getElementById(e.target.id);if(!t){this.dragging=!1;return}const s=e.touches&&e.touches[0]||e.pointerType&&e.pointerType==="touch"&&e,l=(s||e).clientX,n=(s||e).clientY;this.dragAndDrop.shiftX=l-t.getBoundingClientRect().left,this.dragAndDrop.shiftY=n-t.getBoundingClientRect().top,this.dragAndDrop.selectedElement={style:t.style,classList:t.classList.toString()},this.dragAndDrop.itemIndex=e.target.id;const i=t.cloneNode(!0);i.id=`cloned-${t.id}`,document.getElementById("app").append(i),this.clonedElement=document.getElementById(`cloned-${t.id}`),this.clonedElement.style.left=`${l-this.dragAndDrop.shiftX}px`,this.clonedElement.style.top=`${n-this.dragAndDrop.shiftY}px`,this.clonedElement.classList.add("item-clone"),this.clonedElement.style.position="absolute",t.style.pointerEvents="none",t.style.setProperty("opacity","0.2","important"),document.addEventListener("mouseup",this.dropItem),document.addEventListener("touchend",this.dropItem),document.addEventListener("touchmove",this.updatePosition,{passive:!1}),document.addEventListener("mousemove",this.updatePosition)},updatePosition(e){const t=e.touches&&e.touches[0]||e.pointerType&&e.pointerType==="touch"&&e,s=(t||e).clientX,l=(t||e).clientY;this.clonedElement.style.left=`${s-this.dragAndDrop.shiftX}px`,this.clonedElement.style.top=`${l-this.dragAndDrop.shiftY}px`,this.mouseOver(e),e.preventDefault()},mouseOver(e){const t=this.getTarget(e);if(this.lastHoverID){const s=document.getElementById(this.lastHoverID);s.style.setProperty("border","2px solid transparent"),s.children[0].classList.remove("text-negative"),this.lastHoverID=null}if(!(!e||!t||!t.id||t.id==="")){if(!this.lastHoverID&&t.id==="delete:0"){const s=document.getElementById(t.id);s.style.setProperty("border","2px dashed var(--q-negative)","important"),s.children[0].classList.add("text-negative"),this.lastHoverID=t.id}if(!this.lastHoverID&&t.id==="edit:0"){const s=document.getElementById(t.id);s.style.setProperty("border","2px dashed var(--q-primary)","important"),s.children[0].classList.add("text-primary"),this.lastHoverID=t.id}}},async dropItem(e){this.dragging=!1;const t=this.getTarget(e);if(this.lastHoverID){const o=document.getElementById(this.lastHoverID);o.style.setProperty("border","2px solid transparent"),o.children[0].classList.remove("text-negative"),o.children[0].classList.remove("text-primary"),this.lastHoverID=null}document.removeEventListener("mouseup",this.dropItem),document.removeEventListener("touchend",this.dropItem),document.removeEventListener("touchmove",this.updatePosition),document.removeEventListener("mousemove",this.updatePosition),this.clonedElement.remove();const s=document.getElementById(this.dragAndDrop.itemIndex);if(s.style.pointerEvents="all",s.style.setProperty("opacity","1.0","important"),!e||!t||!t.id||t.id==="")return;const[l,n]=t.id.split(":");if(!l||!this.isNumeric(n))return;const[i,m]=this.dragAndDrop.itemIndex.split(":");if(!(!i||!this.isNumeric(m)||m===n&&i===l)){if(this.loading=!0,t.id==="delete:0"){this.$q.dialog({component:q,componentProps:{title:this.$i18n.t
|