1 line
5.3 KiB
JavaScript
1 line
5.3 KiB
JavaScript
import{D as e,E as t,Ht as n,M as r,N as i,O as a,Q as o,T as s,X as c,ct as l,j as u,u as d,w as f,wt as p,y as m,yt as h}from"./client-BfLkiLXr.js";import{t as g}from"./Card-Bd33-XLP.js";import{t as _}from"./Modal-Bf1YRxqZ.js";import{t as v}from"./DatePicker-Dc7PefSv.js";import{t as y}from"./Button-CQugdyX-.js";import{t as b}from"./Select-BVkOct7-.js";import{t as x}from"./Input-DtkYsIjo.js";import{n as S}from"./es-Cl6F7gM1.js";import{t as C}from"./Space-Cor4u6Cp.js";import{t as w}from"./Flex-DYgSVOkz.js";import{at as T,n as E}from"./index-CHmzhHGh.js";import{t as D}from"./HeaderMenu-DDKHYZjb.js";import{t as O}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as k}from"./datetime-BJNH0M1T.js";var A={class:`center-block-custom`},ee={class:`width1200`},te=[`onClick`],ne={class:`game-title`},j={class:`game-description`},M={key:0,class:`game-date`},N={key:1,class:`game-date`},P={key:2,class:`game-actions`},F={key:0,class:`create-hint`},I={key:1,class:`create-hint`},L=O(i({__name:`GamesPage`,setup(t){let i=E(),O=S(),L=d(),R=h([]);async function z(){try{R.value=[];let e=await i.GetGames({});R.value=e.games||[]}catch(e){O.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=h(!1),U=h(``),W=h(`online`),G=h(``),K=h(``),q=h(null),J=h(null),Y=h(!1),X=h(!1),Z=h(!1),Q=h([]),$=f(()=>Q.value.filter(e=>e.status==`public`&&e.ID!=null).map(e=>({label:e.name||``,value:e.ID})));async function re(){X.value=!0,Z.value=!1;try{let e=await i.GetScenariosCatalog({});Q.value=e.scenarios||[]}catch(e){Z.value=!0,O.error(e instanceof Error?e.message:`Не удалось загрузить сценарии`)}finally{X.value=!1}}function ie(){U.value=``,W.value=`online`,G.value=``,K.value=``,q.value=null,J.value=null,H.value=!0,re()}async function ae(){let e=U.value.trim(),t=q.value,n=J.value;if(!(e==``||t==null||n==null)){Y.value=!0;try{let r=await i.AddGame({name:e,description:G.value,location:K.value.trim(),format:W.value,startAt:new Date(n).toISOString(),scenarioID:t});O.success(`Игра создана`),H.value=!1,L.push(`/games/`+r.ID)}catch(e){O.error(e instanceof Error?e.message:`Не удалось создать игру`)}finally{Y.value=!1}}}return(t,i)=>(c(),a(m,null,[s(`div`,A,[s(`div`,ee,[s(`div`,{class:`game-block game-block-hover`,onClick:i[0]||=e=>ie()},[...i[10]||=[s(`div`,{class:`game-create-content`},[s(`span`,{class:`game-create-plus`},`+`),s(`span`,null,`Создать игру`)],-1)]]),(c(!0),a(m,null,o(R.value,t=>(c(),a(`div`,{key:t.ID,class:`game-block`,onClick:e=>B(t.ID)},[s(`div`,ne,n(t.name)+` — `+n(t.format===`offline`?`Offline`:`Online`),1),s(`div`,j,n(t.description),1),p(k)(t.startAt)?(c(),a(`div`,M,` Начало: `+n(p(k)(t.startAt)),1)):e(``,!0),t.location?(c(),a(`div`,N,`Место: `+n(t.location),1)):e(``,!0),t.status==`finish`?(c(),a(`div`,P,[r(p(y),{size:`small`,ghost:``,onClick:T(e=>V(t.ID),[`stop`])},{default:l(()=>[...i[11]||=[u(`Результаты`,-1)]]),_:1},8,[`onClick`])])):e(``,!0)],8,te))),128))])]),r(p(_),{show:H.value,"onUpdate:show":i[9]||=e=>H.value=e},{default:l(()=>[r(p(g),{style:{width:`min(94vw, 600px)`},title:`Создание игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":l(()=>[r(p(y),{onClick:i[1]||=e=>H.value=!1},{default:l(()=>[...i[12]||=[u(` x `,-1)]]),_:1})]),footer:l(()=>[r(p(w),{justify:`end`},{default:l(()=>[r(p(y),{onClick:i[8]||=e=>ae(),loading:Y.value,disabled:U.value.trim().length==0||q.value==null||J.value==null||Y.value},{default:l(()=>[...i[19]||=[u(` Создать `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),default:l(()=>[r(p(C),{vertical:``},{default:l(()=>[i[13]||=s(`p`,null,`Название`,-1),r(p(x),{value:U.value,"onUpdate:value":i[2]||=e=>U.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),i[14]||=s(`p`,null,`Формат игры`,-1),r(p(b),{value:W.value,"onUpdate:value":i[3]||=e=>W.value=e,options:[{label:`Online`,value:`online`},{label:`Offline`,value:`offline`}],"aria-label":`Формат игры`},null,8,[`value`]),i[15]||=s(`p`,null,`Описание`,-1),r(p(x),{value:G.value,"onUpdate:value":i[4]||=e=>G.value=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),i[16]||=s(`p`,null,`Место проведения`,-1),r(p(x),{value:K.value,"onUpdate:value":i[5]||=e=>K.value=e,type:`text`,placeholder:`Оставьте пустым для онлайн-игры`},null,8,[`value`]),i[17]||=s(`p`,null,`Сценарий (дело из каталога)`,-1),r(p(b),{value:q.value,"onUpdate:value":i[6]||=e=>q.value=e,options:$.value,placeholder:`Выберите дело из каталога`},null,8,[`value`,`options`]),X.value?(c(),a(`p`,F,`Загружаем сценарии...`)):$.value.length==0?(c(),a(`p`,I,n(Z.value?`Не удалось загрузить список сценариев`:`В каталоге пока нет опубликованных сценариев`),1)):e(``,!0),i[18]||=s(`p`,null,`Дата и время проведения`,-1),r(p(v),{value:J.value,"onUpdate:value":i[7]||=e=>J.value=e,type:`datetime`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),r(D,{active:`games`})],64))}}),[[`__scopeId`,`data-v-5b88a650`]]),R=i({__name:`GamesView`,setup(e){return(e,n)=>(c(),t(L))}});export{R as default}; |