1 line
5.7 KiB
JavaScript
1 line
5.7 KiB
JavaScript
import{Ct as e,Dt as t,Jt as n,Kt as r,Ln as i,Ot as a,St as o,bt as s,hn as c,ht as l,in as u,kt as d,u as f,wt as p,xt as m,yn as h}from"./client-Cr-cm5gA.js";import{t as g}from"./Card-BXfpL_-k.js";import{n as _,r as v}from"./es-BgZM4SOf.js";import{t as y}from"./Modal-Dj_2ZOAD.js";import{t as b}from"./DatePicker-Di31FAPi.js";import{t as x}from"./Button-htLGEUWP.js";import{t as S}from"./Select-CSZYOCW8.js";import{t as C}from"./_plugin-vue_export-helper-D-vCjaLb.js";import{t as w}from"./Input-Dj4f4oJP.js";import{t as T}from"./Space-DZ8U-a9w.js";import{t as E}from"./Flex-69ypf5Me.js";import{n as D,st as O}from"./index-BDx9g-XU.js";import{t as k}from"./HeaderMenu-B9QH_cmH.js";import{t as A}from"./datetime-BJNH0M1T.js";var ee={class:`center-block-custom`},te={class:`width1200`},ne=[`onClick`],re={class:`game-title`},ie={class:`game-description`},j={key:2,class:`game-date`},M={key:3,class:`game-date`},N={key:4,class:`game-actions`},P={key:0,class:`create-hint`},F={key:1,class:`create-hint`},I=C(d({__name:`GamesPage`,setup(d){let C=D(),I=_(),L=f(),R=c([]);async function z(){try{R.value=[];let e=await C.GetGames({});R.value=e.games||[]}catch(e){I.error(e instanceof Error?e.message:`Не удалось загрузить игры`)}}z();async function B(e){L.push(`/games/`+e)}function V(e){L.push(`/games/`+e+`/results`)}let H=c(!1),U=c(``),W=c(`online`),G=c(``),K=c(``),q=c(null),J=c(null),Y=c(!1),X=c(!1),Z=c(!1),Q=c([]),$=s(()=>Q.value.filter(e=>e.status==`public`&&e.ID!=null).map(e=>({label:e.name||``,value:e.ID})));async function ae(){X.value=!0,Z.value=!1;try{let e=await C.GetScenariosCatalog({});Q.value=e.scenarios||[]}catch(e){Z.value=!0,I.error(e instanceof Error?e.message:`Не удалось загрузить сценарии`)}finally{X.value=!1}}function oe(){U.value=``,W.value=`online`,G.value=``,K.value=``,q.value=null,J.value=null,H.value=!0,ae()}async function se(){let e=U.value.trim(),t=q.value,n=J.value;if(!(e==``||t==null||n==null)){Y.value=!0;try{let r=await C.AddGame({name:e,description:G.value,location:K.value.trim(),format:W.value,startAt:new Date(n).toISOString(),scenarioID:t});I.success(`Игра создана`),H.value=!1,L.push(`/games/`+r.ID)}catch(e){I.error(e instanceof Error?e.message:`Не удалось создать игру`)}finally{Y.value=!1}}}return(s,c)=>(r(),p(l,null,[m(`div`,ee,[m(`div`,te,[m(`div`,{class:`game-block game-block-hover`,onClick:c[0]||=e=>oe()},[...c[10]||=[m(`div`,{class:`game-create-content`},[m(`span`,{class:`game-create-plus`},`+`),m(`span`,null,`Создать игру`)],-1)]]),(r(!0),p(l,null,n(R.value,n=>(r(),p(`div`,{key:n.ID,class:`game-block`,onClick:e=>B(n.ID)},[m(`div`,re,i(n.name)+` — `+i(n.format===`offline`?`Offline`:`Online`),1),n.export?.state===`preparing`?(r(),o(h(v),{key:0,type:`warning`,size:`small`},{default:u(()=>[...c[11]||=[t(` Подготовка офлайн-пакета `,-1)]]),_:1})):n.export?.state===`ready`?(r(),o(h(v),{key:1,type:`info`,size:`small`},{default:u(()=>[...c[12]||=[t(` Игра в офлайн-режиме `,-1)]]),_:1})):e(``,!0),m(`div`,ie,i(n.description),1),h(A)(n.startAt)?(r(),p(`div`,j,` Начало: `+i(h(A)(n.startAt)),1)):e(``,!0),n.location?(r(),p(`div`,M,`Место: `+i(n.location),1)):e(``,!0),n.status==`finish`?(r(),p(`div`,N,[a(h(x),{size:`small`,ghost:``,onClick:O(e=>V(n.ID),[`stop`])},{default:u(()=>[...c[13]||=[t(`Результаты`,-1)]]),_:1},8,[`onClick`])])):e(``,!0)],8,ne))),128))])]),a(h(y),{show:H.value,"onUpdate:show":c[9]||=e=>H.value=e},{default:u(()=>[a(h(g),{style:{width:`min(94vw, 600px)`},title:`Создание игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":u(()=>[a(h(x),{onClick:c[1]||=e=>H.value=!1},{default:u(()=>[...c[14]||=[t(` x `,-1)]]),_:1})]),footer:u(()=>[a(h(E),{justify:`end`},{default:u(()=>[a(h(x),{onClick:c[8]||=e=>se(),loading:Y.value,disabled:U.value.trim().length==0||q.value==null||J.value==null||Y.value},{default:u(()=>[...c[21]||=[t(` Создать `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),default:u(()=>[a(h(T),{vertical:``},{default:u(()=>[c[15]||=m(`p`,null,`Название`,-1),a(h(w),{value:U.value,"onUpdate:value":c[2]||=e=>U.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),c[16]||=m(`p`,null,`Формат игры`,-1),a(h(S),{value:W.value,"onUpdate:value":c[3]||=e=>W.value=e,options:[{label:`Online`,value:`online`},{label:`Offline`,value:`offline`}],"aria-label":`Формат игры`},null,8,[`value`]),c[17]||=m(`p`,null,`Описание`,-1),a(h(w),{value:G.value,"onUpdate:value":c[4]||=e=>G.value=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),c[18]||=m(`p`,null,`Место проведения`,-1),a(h(w),{value:K.value,"onUpdate:value":c[5]||=e=>K.value=e,type:`text`,placeholder:`Оставьте пустым для онлайн-игры`},null,8,[`value`]),c[19]||=m(`p`,null,`Сценарий (дело из каталога)`,-1),a(h(S),{value:q.value,"onUpdate:value":c[6]||=e=>q.value=e,options:$.value,placeholder:`Выберите дело из каталога`},null,8,[`value`,`options`]),X.value?(r(),p(`p`,P,`Загружаем сценарии...`)):$.value.length==0?(r(),p(`p`,F,i(Z.value?`Не удалось загрузить список сценариев`:`В каталоге пока нет опубликованных сценариев`),1)):e(``,!0),c[20]||=m(`p`,null,`Дата и время проведения`,-1),a(h(b),{value:J.value,"onUpdate:value":c[7]||=e=>J.value=e,type:`datetime`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),a(k,{active:`games`})],64))}}),[[`__scopeId`,`data-v-4f1f6d78`]]),L=d({__name:`GamesView`,setup(e){return(e,t)=>(r(),o(I))}});export{L as default}; |