From 52108d17bb863fd524077155272f828561388309 Mon Sep 17 00:00:00 2001 From: Fedorov Vladimir Date: Tue, 17 Jun 2025 03:17:45 +0700 Subject: [PATCH] fix --- .../assets/{AboutView-CqfMqJey.js => AboutView-BBfZONtB.js} | 2 +- .../admin/assets/{index-0km8kjt9.css => index-CUULv8JD.css} | 2 +- static/admin/assets/{index-BnuCLF3i.js => index-D8AuJy-0.js} | 4 ++-- static/admin/index.html | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) rename static/admin/assets/{AboutView-CqfMqJey.js => AboutView-BBfZONtB.js} (72%) rename static/admin/assets/{index-0km8kjt9.css => index-CUULv8JD.css} (73%) rename static/admin/assets/{index-BnuCLF3i.js => index-D8AuJy-0.js} (96%) diff --git a/static/admin/assets/AboutView-CqfMqJey.js b/static/admin/assets/AboutView-BBfZONtB.js similarity index 72% rename from static/admin/assets/AboutView-CqfMqJey.js rename to static/admin/assets/AboutView-BBfZONtB.js index 1387ac6..433b7b8 100644 --- a/static/admin/assets/AboutView-CqfMqJey.js +++ b/static/admin/assets/AboutView-BBfZONtB.js @@ -1 +1 @@ -import{_ as o,c as s,a as t,o as a}from"./index-BnuCLF3i.js";const n={},c={class:"about"};function r(_,e){return a(),s("div",c,e[0]||(e[0]=[t("h1",null,"This is an about page",-1)]))}const l=o(n,[["render",r]]);export{l as default}; +import{_ as o,c as s,a as t,o as a}from"./index-D8AuJy-0.js";const n={},c={class:"about"};function r(_,e){return a(),s("div",c,e[0]||(e[0]=[t("h1",null,"This is an about page",-1)]))}const l=o(n,[["render",r]]);export{l as default}; diff --git a/static/admin/assets/index-0km8kjt9.css b/static/admin/assets/index-CUULv8JD.css similarity index 73% rename from static/admin/assets/index-0km8kjt9.css rename to static/admin/assets/index-CUULv8JD.css index 538bfa6..52a230e 100644 --- a/static/admin/assets/index-0km8kjt9.css +++ b/static/admin/assets/index-CUULv8JD.css @@ -1 +1 @@ -:root{--vt-c-white: #ffffff;--vt-c-white-soft: #f8f8f8;--vt-c-white-mute: #f2f2f2;--vt-c-black: #181818;--vt-c-black-soft: #222222;--vt-c-black-mute: #282828;--vt-c-indigo: #2c3e50;--vt-c-divider-light-1: rgba(60, 60, 60, .29);--vt-c-divider-light-2: rgba(60, 60, 60, .12);--vt-c-divider-dark-1: rgba(84, 84, 84, .65);--vt-c-divider-dark-2: rgba(84, 84, 84, .48);--vt-c-text-light-1: var(--vt-c-indigo);--vt-c-text-light-2: rgba(60, 60, 60, .66);--vt-c-text-dark-1: var(--vt-c-white);--vt-c-text-dark-2: rgba(235, 235, 235, .64);--main-color: rgba(34, 50, 60, 1);--second-color: rgb(136, 105, 31);--main-back-color: rgba(240, 240, 240, 1);--main-back-item-color: rgba(254, 254, 254, 1)}:root{--color-background: var(--vt-c-white);--color-background-soft: var(--vt-c-white-soft);--color-background-mute: var(--vt-c-white-mute);--color-border: var(--vt-c-divider-light-2);--color-border-hover: var(--vt-c-divider-light-1);--color-heading: var(--vt-c-text-light-1);--color-text: var(--vt-c-text-light-1);--section-gap: 160px}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100dvh;color:var(--color-text);background:var(--main-back-color);transition:color .5s,background-color .5s;line-height:1.6;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.header-block{height:50px;background-color:var(--main-color);font-size:large;color:#fff;vertical-align:middle;padding:10px 0 10px 16px;font-weight:700}.input-custom{width:100%;box-sizing:border-box;margin-bottom:15px}.button-custom{margin-left:auto;background-color:var(--main-color);font-weight:600;color:#fff}.button-custom-inline{margin:10px;background-color:var(--main-color);font-weight:600;color:#fff;padding:6px 8px;border:1px solid #ddd;border-radius:15px;font-size:14px}.button-custom:hover,.button-custom-inline:hover{background-color:var(--second-color)}.input-custom,.button-custom{padding:12px 16px;border:1px solid #ddd;border-radius:15px;font-size:16px}.button-container{display:flex}.center-message{display:flex;justify-content:center;align-items:center;height:calc(100dvh - 100px);text-align:center}header[data-v-e5db0c22]{line-height:1.5;max-height:100vh}.logo[data-v-e5db0c22]{display:block;margin:0 auto 2rem}nav[data-v-e5db0c22]{width:100%;font-size:12px;text-align:center;margin-top:2rem}nav a.router-link-exact-active[data-v-e5db0c22]{color:var(--color-text)}nav a.router-link-exact-active[data-v-e5db0c22]:hover{background-color:transparent}nav a[data-v-e5db0c22]{display:inline-block;padding:0 1rem;border-left:1px solid var(--color-border)}nav a[data-v-e5db0c22]:first-of-type{border:0}@media (min-width: 1024px){header[data-v-e5db0c22]{display:flex;place-items:center;padding-right:calc(var(--section-gap) / 2)}.logo[data-v-e5db0c22]{margin:0 2rem 0 0}header .wrapper[data-v-e5db0c22]{display:flex;place-items:flex-start;flex-wrap:wrap}nav[data-v-e5db0c22]{text-align:left;margin-left:-1rem;font-size:1rem;padding:1rem 0;margin-top:1rem}}body[data-v-764d6ba3]{font-family:Arial,sans-serif;margin:20px}.buttons-block[data-v-764d6ba3]{padding-top:20px}.button-menu[data-v-764d6ba3]{margin:5px}table[data-v-764d6ba3]{width:700px;border-collapse:collapse;margin:30px auto;border:1px solid #444444}th[data-v-764d6ba3],td[data-v-764d6ba3]{padding:12px;text-align:left}th[data-v-764d6ba3]{background-color:var(--main-color);color:#fff;font-weight:700}tr[data-v-764d6ba3]:nth-child(odd){background-color:#efefef}tr[data-v-764d6ba3]:nth-child(2n){background-color:#fff}tr[data-v-764d6ba3]:hover{background-color:#cfcfcf}.time[data-v-764d6ba3]{white-space:nowrap}.team-name[data-v-764d6ba3]{font-weight:600}.link-button[data-v-764d6ba3]{display:inline;border:none;background:none;padding:0;margin:0;font:inherit;cursor:pointer;color:var(--main-color);text-decoration:underline;font-weight:600;-webkit-appearance:none;-moz-appearance:none;appearance:none;line-height:inherit;text-align:left}.link-button[data-v-764d6ba3]:hover{color:var(--second-color);text-decoration:none}.link-button[data-v-764d6ba3]:active{color:#036}.link-button[data-v-764d6ba3]:focus{outline:none;text-decoration:none;box-shadow:0 0 0 2px #0066cc4d}.form-block[data-v-764d6ba3]{width:700px;margin:0 auto}a[data-v-764d6ba3]{color:var(--second-color);text-decoration:none;transition:all .2s ease;cursor:pointer}a[data-v-764d6ba3]:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}a[data-v-764d6ba3]:focus-visible{outline:2px solid #3182ce;outline-offset:2px;border-radius:2px}a[disabled][data-v-764d6ba3]{color:#a0aec0;pointer-events:none;cursor:not-allowed}.qr[data-v-764d6ba3]{position:absolute;top:80px;right:30px;text-align:center;width:120px}.button-container[data-v-764d6ba3]{margin-bottom:30px} +:root{--vt-c-white: #ffffff;--vt-c-white-soft: #f8f8f8;--vt-c-white-mute: #f2f2f2;--vt-c-black: #181818;--vt-c-black-soft: #222222;--vt-c-black-mute: #282828;--vt-c-indigo: #2c3e50;--vt-c-divider-light-1: rgba(60, 60, 60, .29);--vt-c-divider-light-2: rgba(60, 60, 60, .12);--vt-c-divider-dark-1: rgba(84, 84, 84, .65);--vt-c-divider-dark-2: rgba(84, 84, 84, .48);--vt-c-text-light-1: var(--vt-c-indigo);--vt-c-text-light-2: rgba(60, 60, 60, .66);--vt-c-text-dark-1: var(--vt-c-white);--vt-c-text-dark-2: rgba(235, 235, 235, .64);--main-color: rgba(34, 50, 60, 1);--second-color: rgb(136, 105, 31);--main-back-color: rgba(240, 240, 240, 1);--main-back-item-color: rgba(254, 254, 254, 1)}:root{--color-background: var(--vt-c-white);--color-background-soft: var(--vt-c-white-soft);--color-background-mute: var(--vt-c-white-mute);--color-border: var(--vt-c-divider-light-2);--color-border-hover: var(--vt-c-divider-light-1);--color-heading: var(--vt-c-text-light-1);--color-text: var(--vt-c-text-light-1);--section-gap: 160px}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100dvh;color:var(--color-text);background:var(--main-back-color);transition:color .5s,background-color .5s;line-height:1.6;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.header-block{height:50px;background-color:var(--main-color);font-size:large;color:#fff;vertical-align:middle;padding:10px 0 10px 16px;font-weight:700}.input-custom{width:100%;box-sizing:border-box;margin-bottom:15px}.button-custom{margin-left:auto;background-color:var(--main-color);font-weight:600;color:#fff}.button-custom-inline{margin:10px;background-color:var(--main-color);font-weight:600;color:#fff;padding:6px 8px;border:1px solid #ddd;border-radius:15px;font-size:14px}.button-custom:hover,.button-custom-inline:hover{background-color:var(--second-color)}.input-custom,.button-custom{padding:12px 16px;border:1px solid #ddd;border-radius:15px;font-size:16px}.button-container{display:flex}.center-message{display:flex;justify-content:center;align-items:center;height:calc(100dvh - 100px);text-align:center}header[data-v-e5db0c22]{line-height:1.5;max-height:100vh}.logo[data-v-e5db0c22]{display:block;margin:0 auto 2rem}nav[data-v-e5db0c22]{width:100%;font-size:12px;text-align:center;margin-top:2rem}nav a.router-link-exact-active[data-v-e5db0c22]{color:var(--color-text)}nav a.router-link-exact-active[data-v-e5db0c22]:hover{background-color:transparent}nav a[data-v-e5db0c22]{display:inline-block;padding:0 1rem;border-left:1px solid var(--color-border)}nav a[data-v-e5db0c22]:first-of-type{border:0}@media (min-width: 1024px){header[data-v-e5db0c22]{display:flex;place-items:center;padding-right:calc(var(--section-gap) / 2)}.logo[data-v-e5db0c22]{margin:0 2rem 0 0}header .wrapper[data-v-e5db0c22]{display:flex;place-items:flex-start;flex-wrap:wrap}nav[data-v-e5db0c22]{text-align:left;margin-left:-1rem;font-size:1rem;padding:1rem 0;margin-top:1rem}}body[data-v-5b3a2ec4]{font-family:Arial,sans-serif;margin:20px}.buttons-block[data-v-5b3a2ec4]{padding-top:20px}.button-menu[data-v-5b3a2ec4]{margin:5px}table[data-v-5b3a2ec4]{width:700px;border-collapse:collapse;margin:30px auto;border:1px solid #444444}th[data-v-5b3a2ec4],td[data-v-5b3a2ec4]{padding:12px;text-align:left}th[data-v-5b3a2ec4]{background-color:var(--main-color);color:#fff;font-weight:700}tr[data-v-5b3a2ec4]:nth-child(odd){background-color:#efefef}tr[data-v-5b3a2ec4]:nth-child(2n){background-color:#fff}tr[data-v-5b3a2ec4]:hover{background-color:#cfcfcf}.time[data-v-5b3a2ec4]{white-space:nowrap}.team-name[data-v-5b3a2ec4]{font-weight:600}.link-button[data-v-5b3a2ec4]{display:inline;border:none;background:none;padding:0;margin:0;font:inherit;cursor:pointer;color:var(--main-color);text-decoration:underline;font-weight:600;-webkit-appearance:none;-moz-appearance:none;appearance:none;line-height:inherit;text-align:left}.link-button[data-v-5b3a2ec4]:hover{color:var(--second-color);text-decoration:none}.link-button[data-v-5b3a2ec4]:active{color:#036}.link-button[data-v-5b3a2ec4]:focus{outline:none;text-decoration:none;box-shadow:0 0 0 2px #0066cc4d}.form-block[data-v-5b3a2ec4]{width:700px;margin:0 auto}a[data-v-5b3a2ec4]{color:var(--second-color);text-decoration:none;transition:all .2s ease;cursor:pointer}a[data-v-5b3a2ec4]:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}a[data-v-5b3a2ec4]:focus-visible{outline:2px solid #3182ce;outline-offset:2px;border-radius:2px}a[disabled][data-v-5b3a2ec4]{color:#a0aec0;pointer-events:none;cursor:not-allowed}.qr[data-v-5b3a2ec4]{position:absolute;top:80px;right:30px;text-align:center;width:120px}.button-container[data-v-5b3a2ec4]{margin-bottom:30px}.cell-center[data-v-5b3a2ec4]{text-align:center} diff --git a/static/admin/assets/index-BnuCLF3i.js b/static/admin/assets/index-D8AuJy-0.js similarity index 96% rename from static/admin/assets/index-BnuCLF3i.js rename to static/admin/assets/index-D8AuJy-0.js index e0051f8..76db8ed 100644 --- a/static/admin/assets/index-BnuCLF3i.js +++ b/static/admin/assets/index-D8AuJy-0.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AboutView-CqfMqJey.js","assets/AboutView-CSIvawM9.css"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AboutView-BBfZONtB.js","assets/AboutView-CSIvawM9.css"])))=>i.map(i=>d[i]); (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();/** * @vue/shared v3.5.13 * (c) 2018-present Yuxi (Evan) You and Vue contributors @@ -30,4 +30,4 @@ Make sure your charset is UTF-8`);o=(o>>>8&255)*192+(o&255),r.put(o,13)}},br=n,b The chosen QR Code version cannot contain this amount of data. Minimum version required to store current data is: `+j+`. `);const V=v(N,H,q),k=e.getSymbolSize(N),W=new r(k);return g(W,N),C(W),R(W,N),P(W,H,0),N>=7&&F(W,N),y(W,V),isNaN(D)&&(D=i.getBestMask(W,P.bind(null,W,H))),i.applyMask(D,W),P(W,H,D),{modules:W,version:N,errorCorrectionLevel:H,maskPattern:D,segments:q}}return tr.create=function(N,H){if(typeof N>"u"||N==="")throw new Error("No input text");let D=t.M,q,j;return typeof H<"u"&&(D=t.from(H.errorCorrectionLevel,t.M),q=f.from(H.version),j=i.from(H.maskPattern),H.toSJISFunc&&e.setToSJISFunction(H.toSJISFunc)),$(N,q,D,j)},tr}var vr={},wr={},Io;function ul(){return Io||(Io=1,function(e){function t(n){if(typeof n=="number"&&(n=n.toString()),typeof n!="string")throw new Error("Color should be defined as hex string");let r=n.slice().replace("#","").split("");if(r.length<3||r.length===5||r.length>8)throw new Error("Invalid hex color: "+n);(r.length===3||r.length===4)&&(r=Array.prototype.concat.apply([],r.map(function(o){return[o,o]}))),r.length===6&&r.push("F","F");const s=parseInt(r.join(""),16);return{r:s>>24&255,g:s>>16&255,b:s>>8&255,a:s&255,hex:"#"+r.slice(0,6).join("")}}e.getOptions=function(r){r||(r={}),r.color||(r.color={});const s=typeof r.margin>"u"||r.margin===null||r.margin<0?4:r.margin,o=r.width&&r.width>=21?r.width:void 0,i=r.scale||4;return{width:o,scale:o?4:i,margin:s,color:{dark:t(r.color.dark||"#000000ff"),light:t(r.color.light||"#ffffffff")},type:r.type,rendererOpts:r.rendererOpts||{}}},e.getScale=function(r,s){return s.width&&s.width>=r+s.margin*2?s.width/(r+s.margin*2):s.scale},e.getImageWidth=function(r,s){const o=e.getScale(r,s);return Math.floor((r+s.margin*2)*o)},e.qrToImageData=function(r,s,o){const i=s.modules.size,l=s.modules.data,c=e.getScale(i,o),f=Math.floor((i+o.margin*2)*c),u=o.margin*c,a=[o.color.light,o.color.dark];for(let p=0;p=u&&g>=u&&p"u"&&(!i||!i.getContext)&&(c=i,i=void 0),i||(f=r()),c=t.getOptions(c);const u=t.getImageWidth(o.modules.size,c),a=f.getContext("2d"),p=a.createImageData(u,u);return t.qrToImageData(p.data,o,c),n(a,f,u),a.putImageData(p,0,0),f},e.renderToDataURL=function(o,i,l){let c=l;typeof c>"u"&&(!i||!i.getContext)&&(c=i,i=void 0),c||(c={});const f=e.render(o,i,c),u=c.type||"image/png",a=c.rendererOpts||{};return f.toDataURL(u,a.quality)}}(vr)),vr}var Er={},No;function oa(){if(No)return Er;No=1;const e=ul();function t(s,o){const i=s.a/255,l=o+'="'+s.hex+'"';return i<1?l+" "+o+'-opacity="'+i.toFixed(2).slice(1)+'"':l}function n(s,o,i){let l=s+o;return typeof i<"u"&&(l+=" "+i),l}function r(s,o,i){let l="",c=0,f=!1,u=0;for(let a=0;a0&&p>0&&s[a-1]||(l+=f?n("M",p+i,.5+g+i):n("m",c,0),c=0,f=!1),p+1':"",g="',C='viewBox="0 0 '+a+" "+a+'"',F=''+p+g+` -`;return typeof l=="function"&&l(null,F),F},Er}var Oo;function ia(){if(Oo)return At;Oo=1;const e=Hf(),t=ra(),n=sa(),r=oa();function s(o,i,l,c,f){const u=[].slice.call(arguments,1),a=u.length,p=typeof u[a-1]=="function";if(!p&&!e())throw new Error("Callback required as last argument");if(p){if(a<2)throw new Error("Too few arguments provided");a===2?(f=l,l=i,i=c=void 0):a===3&&(i.getContext&&typeof f>"u"?(f=c,c=void 0):(f=c,c=l,l=i,i=void 0))}else{if(a<1)throw new Error("Too few arguments provided");return a===1?(l=i,i=c=void 0):a===2&&!i.getContext&&(c=l,l=i,i=void 0),new Promise(function(g,C){try{const R=t.create(l,c);g(o(R,i,c))}catch(R){C(R)}})}try{const g=t.create(l,c);f(null,o(g,i,c))}catch(g){f(g)}}return At.create=t.create,At.toCanvas=s.bind(null,n.render),At.toDataURL=s.bind(null,n.renderToDataURL),At.toString=s.bind(null,function(o,i,l){return r.render(o,l)}),At}var Cr=ia();/*! vue-qrcode v2.0.0 | (c) 2018-present Chen Fengyuan | MIT */const Bo="ready";var la=kt({name:"VueQrcode",props:{value:{type:String,default:void 0},options:{type:Object,default:void 0},tag:{type:String,default:"canvas"}},emits:[Bo],watch:{$props:{deep:!0,immediate:!0,handler(){this.$el&&this.generate()}}},mounted(){this.generate()},methods:{generate(){const e=this.options||{},t=String(this.value),n=()=>{this.$emit(Bo,this.$el)};switch(this.tag){case"canvas":Cr.toCanvas(this.$el,t,e,r=>{if(r)throw r;n()});break;case"img":Cr.toDataURL(t,e,(r,s)=>{if(r)throw r;this.$el.src=s,this.$el.onload=n});break;case"svg":Cr.toString(t,e,(r,s)=>{if(r)throw r;const o=document.createElement("div");o.innerHTML=s;const i=o.querySelector("svg");if(i){const{attributes:l,childNodes:c}=i;Object.keys(l).forEach(f=>{const u=l[Number(f)];this.$el.setAttribute(u.name,u.value)}),Object.keys(c).forEach(f=>{const u=c[Number(f)];this.$el.appendChild(u.cloneNode(!0))}),n()}});break}}},render(){return rs(this.tag,this.$slots.default)}});const ca={class:"header-block"},ua={class:"qr"},fa={class:"team-name"},aa=["href"],da=["onClick"],ha=["onClick"],pa={class:"form-custom form-block"},ga={class:"center-block-custom"},ma=kt({__name:"AdminWindow",setup(e){const t=Ye("-"),n=Ye("-"),r=Ye(""),s=Ye(),o=Ye({teams:[]});function i(){fetch(yt("/teams")).then(y=>y.json()).then(y=>{o.value=y}).catch(y=>{console.error("Ошибка:",y)})}function l(y,v){fetch(yt("/teams/"+y+"/applications"),{method:"POST",body:JSON.stringify({applications:[{id:v}]})}).then(()=>{}).catch(b=>{console.error("Ошибка:",b)})}const c=Ye("");function f(){fetch(yt("/teams"),{method:"POST",body:JSON.stringify({teams:[{name:c.value}]})}).then(()=>{c.value=""}).catch(y=>{console.error("Ошибка:",y)})}const u=Ye({width:100,margin:1,color:{dark:"#000000",light:"f0f0f0"}});function a(){fetch(yt("/game")).then(y=>y.json()).then(y=>{var v,b,$;s.value=y,y.state==="NEW"&&(r.value="Игра ещё не началась"),y.state==="RUN"&&(r.value="Игра идет с "+((v=s.value)==null?void 0:v.startAt.substring(11))),y.state==="STOP"&&(r.value="Игра остановлена "+((b=s.value)==null?void 0:b.startAt.substring(11))+" - "+(($=s.value)==null?void 0:$.endAt.substring(11)))}).catch(y=>{console.error("Ошибка:",y)})}function p(){r.value="Загрузка...",fetch(yt("/game/start"),{method:"POST"}).catch(y=>{console.error("Ошибка:",y)})}function g(){r.value="Загрузка...",fetch(yt("/game/stop"),{method:"POST"}).catch(y=>{console.error("Ошибка:",y)})}function C(y){const v=atob(y),b=new Uint8Array(v.length);for(let $=0;$y.json()).then(y=>{const v=C(y.result);F(v,"teams_qr_code.pdf","application/pdf;teams_qr_code.pdf")}).catch(y=>{console.error("Ошибка:",y)})}function F(y,v,b){const $=new Blob([y],{type:b}),T=URL.createObjectURL($),N=document.createElement("a");N.href=T,N.download=v,N.click(),URL.revokeObjectURL(T)}let P=0;return _i(()=>{i(),P=setInterval(()=>{i(),a()},2e3),fl.beforeEach((y,v,b)=>{clearInterval(P),b()})}),(y,v)=>(vt(),jt(Me,null,[Z("div",ca," Вечерний детектив - "+bt(r.value),1),Z("div",ua,[xe(ft(la),{value:t.value,options:u.value,tag:"svg",class:"qr-code"},null,8,["value","options"]),Z("div",null,bt(n.value),1)]),Z("div",{class:"form-block buttons-block"},[Z("a",{onClick:p,class:"button-menu"},"Начать"),Z("a",{onClick:g,class:"button-menu"},"Остановить")]),Z("table",null,[Z("thead",null,[Z("tr",null,[v[1]||(v[1]=Z("th",null,"№",-1)),v[2]||(v[2]=Z("th",null,"Название команды",-1)),v[3]||(v[3]=Z("th",null,"Поездки",-1)),v[4]||(v[4]=Z("th",null,"Приложения",-1)),Z("th",null,[Z("button",{onClick:R,class:"button-custom-inline"},"Скачать qr-ы")])])]),Z("tbody",null,[(vt(!0),jt(Me,null,ps(o.value.teams,(b,$)=>(vt(),jt("tr",{key:b.name},[Z("td",null,bt($+1),1),Z("td",fa,[Br(bt(b.name)+" ",1),Z("a",{href:b.url,target:"_blank"},"[url]",8,aa)]),Z("td",null,bt(b.spendTime),1),Z("td",null,[(vt(!0),jt(Me,null,ps(b.applications,T=>(vt(),jt("div",{key:T.id},[Br(bt(T.name)+" ",1),Z("button",{class:"link-button",onClick:N=>l(b.id,T.id)},"Выдано",8,da)]))),128))]),Z("td",null,[Z("a",{onClick:T=>(t.value=b.url,n.value=b.name)},"QR",8,ha)])]))),128))])]),Z("div",pa,[Z("div",ga,[Z("form",{onSubmit:Su(f,["prevent"])},[Z("div",null,[Zl(Z("input",{class:"input-custom","onUpdate:modelValue":v[0]||(v[0]=b=>c.value=b),type:"text",placeholder:"Название команды"},null,512),[[wu,c.value]])]),v[5]||(v[5]=Z("div",{class:"button-container"},[Z("button",{class:"button-custom",type:"submit"},"Добавить")],-1))],32)])])],64))}}),ya=ol(ma,[["__scopeId","data-v-764d6ba3"]]),ba=kt({__name:"HomeView",setup(e){return(t,n)=>(vt(),Hi(ya))}}),fl=Of({history:uf("/"),routes:[{path:"/",name:"home",component:ba},{path:"/about",name:"about",component:()=>kf(()=>import("./AboutView-CqfMqJey.js"),__vite__mapDeps([0,1]))}]}),ls=Au(Df);ls.use(Mu());ls.use(fl);ls.mount("#app");export{ol as _,Z as a,jt as c,vt as o}; +`;return typeof l=="function"&&l(null,F),F},Er}var Oo;function ia(){if(Oo)return At;Oo=1;const e=Hf(),t=ra(),n=sa(),r=oa();function s(o,i,l,c,f){const u=[].slice.call(arguments,1),a=u.length,p=typeof u[a-1]=="function";if(!p&&!e())throw new Error("Callback required as last argument");if(p){if(a<2)throw new Error("Too few arguments provided");a===2?(f=l,l=i,i=c=void 0):a===3&&(i.getContext&&typeof f>"u"?(f=c,c=void 0):(f=c,c=l,l=i,i=void 0))}else{if(a<1)throw new Error("Too few arguments provided");return a===1?(l=i,i=c=void 0):a===2&&!i.getContext&&(c=l,l=i,i=void 0),new Promise(function(g,C){try{const R=t.create(l,c);g(o(R,i,c))}catch(R){C(R)}})}try{const g=t.create(l,c);f(null,o(g,i,c))}catch(g){f(g)}}return At.create=t.create,At.toCanvas=s.bind(null,n.render),At.toDataURL=s.bind(null,n.renderToDataURL),At.toString=s.bind(null,function(o,i,l){return r.render(o,l)}),At}var Cr=ia();/*! vue-qrcode v2.0.0 | (c) 2018-present Chen Fengyuan | MIT */const Bo="ready";var la=kt({name:"VueQrcode",props:{value:{type:String,default:void 0},options:{type:Object,default:void 0},tag:{type:String,default:"canvas"}},emits:[Bo],watch:{$props:{deep:!0,immediate:!0,handler(){this.$el&&this.generate()}}},mounted(){this.generate()},methods:{generate(){const e=this.options||{},t=String(this.value),n=()=>{this.$emit(Bo,this.$el)};switch(this.tag){case"canvas":Cr.toCanvas(this.$el,t,e,r=>{if(r)throw r;n()});break;case"img":Cr.toDataURL(t,e,(r,s)=>{if(r)throw r;this.$el.src=s,this.$el.onload=n});break;case"svg":Cr.toString(t,e,(r,s)=>{if(r)throw r;const o=document.createElement("div");o.innerHTML=s;const i=o.querySelector("svg");if(i){const{attributes:l,childNodes:c}=i;Object.keys(l).forEach(f=>{const u=l[Number(f)];this.$el.setAttribute(u.name,u.value)}),Object.keys(c).forEach(f=>{const u=c[Number(f)];this.$el.appendChild(u.cloneNode(!0))}),n()}});break}}},render(){return rs(this.tag,this.$slots.default)}});const ca={class:"header-block"},ua={class:"qr"},fa={class:"team-name"},aa=["href"],da={class:"cell-center"},ha=["onClick"],pa={class:"cell-center"},ga=["onClick"],ma={class:"form-custom form-block"},ya={class:"center-block-custom"},ba=kt({__name:"AdminWindow",setup(e){const t=Ye("-"),n=Ye("-"),r=Ye(""),s=Ye(),o=Ye({teams:[]});function i(){fetch(yt("/teams")).then(y=>y.json()).then(y=>{o.value=y}).catch(y=>{console.error("Ошибка:",y)})}function l(y,v){fetch(yt("/teams/"+y+"/applications"),{method:"POST",body:JSON.stringify({applications:[{id:v}]})}).then(()=>{}).catch(b=>{console.error("Ошибка:",b)})}const c=Ye("");function f(){fetch(yt("/teams"),{method:"POST",body:JSON.stringify({teams:[{name:c.value}]})}).then(()=>{c.value=""}).catch(y=>{console.error("Ошибка:",y)})}const u=Ye({width:100,margin:1,color:{dark:"#000000",light:"f0f0f0"}});function a(){fetch(yt("/game")).then(y=>y.json()).then(y=>{var v,b,$;s.value=y,y.state==="NEW"&&(r.value="Игра ещё не началась"),y.state==="RUN"&&(r.value="Игра идет с "+((v=s.value)==null?void 0:v.startAt.substring(11))),y.state==="STOP"&&(r.value="Игра остановлена "+((b=s.value)==null?void 0:b.startAt.substring(11))+" - "+(($=s.value)==null?void 0:$.endAt.substring(11)))}).catch(y=>{console.error("Ошибка:",y)})}function p(){r.value="Загрузка...",fetch(yt("/game/start"),{method:"POST"}).catch(y=>{console.error("Ошибка:",y)})}function g(){r.value="Загрузка...",fetch(yt("/game/stop"),{method:"POST"}).catch(y=>{console.error("Ошибка:",y)})}function C(y){const v=atob(y),b=new Uint8Array(v.length);for(let $=0;$y.json()).then(y=>{const v=C(y.result);F(v,"teams_qr_code.pdf","application/pdf;teams_qr_code.pdf")}).catch(y=>{console.error("Ошибка:",y)})}function F(y,v,b){const $=new Blob([y],{type:b}),T=URL.createObjectURL($),N=document.createElement("a");N.href=T,N.download=v,N.click(),URL.revokeObjectURL(T)}let P=0;return _i(()=>{i(),P=setInterval(()=>{i(),a()},2e3),fl.beforeEach((y,v,b)=>{clearInterval(P),b()})}),(y,v)=>(vt(),jt(Me,null,[Z("div",ca," Вечерний детектив - "+bt(r.value),1),Z("div",ua,[xe(ft(la),{value:t.value,options:u.value,tag:"svg",class:"qr-code"},null,8,["value","options"]),Z("div",null,bt(n.value),1)]),Z("div",{class:"form-block buttons-block"},[Z("a",{onClick:p,class:"button-menu"},"Начать"),Z("a",{onClick:g,class:"button-menu"},"Остановить")]),Z("table",null,[Z("thead",null,[Z("tr",null,[v[1]||(v[1]=Z("th",null,"№",-1)),v[2]||(v[2]=Z("th",null,"Название команды",-1)),v[3]||(v[3]=Z("th",null,"Поездки",-1)),v[4]||(v[4]=Z("th",null,"Приложения",-1)),Z("th",null,[Z("button",{onClick:R,class:"button-custom-inline"},"Скачать qr-ы")])])]),Z("tbody",null,[(vt(!0),jt(Me,null,ps(o.value.teams,(b,$)=>(vt(),jt("tr",{key:b.name},[Z("td",null,bt($+1),1),Z("td",fa,[Br(bt(b.name)+" ",1),Z("a",{href:b.url,target:"_blank"},"[url]",8,aa)]),Z("td",da,bt(b.spendTime),1),Z("td",null,[(vt(!0),jt(Me,null,ps(b.applications,T=>(vt(),jt("div",{key:T.id},[Br(bt(T.name)+" ",1),Z("button",{class:"link-button",onClick:N=>l(b.id,T.id)},"Выдано",8,ha)]))),128))]),Z("td",pa,[Z("a",{onClick:T=>(t.value=b.url,n.value=b.name)},"QR",8,ga)])]))),128))])]),Z("div",ma,[Z("div",ya,[Z("form",{onSubmit:Su(f,["prevent"])},[Z("div",null,[Zl(Z("input",{class:"input-custom","onUpdate:modelValue":v[0]||(v[0]=b=>c.value=b),type:"text",placeholder:"Название команды"},null,512),[[wu,c.value]])]),v[5]||(v[5]=Z("div",{class:"button-container"},[Z("button",{class:"button-custom",type:"submit"},"Добавить")],-1))],32)])])],64))}}),_a=ol(ba,[["__scopeId","data-v-5b3a2ec4"]]),va=kt({__name:"HomeView",setup(e){return(t,n)=>(vt(),Hi(_a))}}),fl=Of({history:uf("/"),routes:[{path:"/",name:"home",component:va},{path:"/about",name:"about",component:()=>kf(()=>import("./AboutView-BBfZONtB.js"),__vite__mapDeps([0,1]))}]}),ls=Au(Df);ls.use(Mu());ls.use(fl);ls.mount("#app");export{ol as _,Z as a,jt as c,vt as o}; diff --git a/static/admin/index.html b/static/admin/index.html index 98169ab..1d19032 100644 --- a/static/admin/index.html +++ b/static/admin/index.html @@ -5,8 +5,8 @@ ВД Админка - - + +