diff --git a/static/admin/assets/AboutView-DVHDbkXx.js b/static/admin/assets/AboutView-CEufZrOu.js similarity index 72% rename from static/admin/assets/AboutView-DVHDbkXx.js rename to static/admin/assets/AboutView-CEufZrOu.js index 2a27b77..a1aa5d3 100644 --- a/static/admin/assets/AboutView-DVHDbkXx.js +++ b/static/admin/assets/AboutView-CEufZrOu.js @@ -1 +1 @@ -import{_ as o,c as s,a as t,o as a}from"./index-DUitjz7C.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-DNz9l3r8.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-BAjANUAL.css b/static/admin/assets/index-BJ3dZ1mc.css similarity index 63% rename from static/admin/assets/index-BAjANUAL.css rename to static/admin/assets/index-BJ3dZ1mc.css index 5f807ba..3faef91 100644 --- a/static/admin/assets/index-BAjANUAL.css +++ b/static/admin/assets/index-BJ3dZ1mc.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(115, 185, 83, 1);--second-color: rgba(98, 156, 68, 1);--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: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-03fb6689]{font-family:Arial,sans-serif;margin:20px}table[data-v-03fb6689]{width:700px;border-collapse:collapse;margin:30px auto}th[data-v-03fb6689],td[data-v-03fb6689]{padding:12px;text-align:left}th[data-v-03fb6689]{background-color:var(--main-color);color:#fff;font-weight:700}tr[data-v-03fb6689]:nth-child(odd){background-color:#dae8d4}tr[data-v-03fb6689]:nth-child(2n){background-color:#d8dbd7}tr[data-v-03fb6689]:hover{background-color:#cfcfcf}.time[data-v-03fb6689]{white-space:nowrap}.team-name[data-v-03fb6689]{font-weight:600}.link-button[data-v-03fb6689]{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-03fb6689]:hover{color:var(--second-color);text-decoration:none}.link-button[data-v-03fb6689]:active{color:#036}.link-button[data-v-03fb6689]:focus{outline:none;text-decoration:none;box-shadow:0 0 0 2px #0066cc4d}.form-block[data-v-03fb6689]{width:700px;margin:0 auto}a[data-v-03fb6689]{color:var(--second-color);text-decoration:none;transition:all .2s ease;cursor:pointer}a[data-v-03fb6689]:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}a[data-v-03fb6689]:focus-visible{outline:2px solid #3182ce;outline-offset:2px;border-radius:2px}a[disabled][data-v-03fb6689]{color:#a0aec0;pointer-events:none;cursor:not-allowed}.qr[data-v-03fb6689]{position:absolute;top:80px;right:30px;text-align:center;width:120px}.button-container[data-v-03fb6689]{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(115, 185, 83, 1);--second-color: rgba(98, 156, 68, 1);--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: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-a696cd7e]{font-family:Arial,sans-serif;margin:20px}table[data-v-a696cd7e]{width:700px;border-collapse:collapse;margin:30px auto;border:1px solid #444444}th[data-v-a696cd7e],td[data-v-a696cd7e]{padding:12px;text-align:left}th[data-v-a696cd7e]{background-color:var(--main-color);color:#fff;font-weight:700}tr[data-v-a696cd7e]:nth-child(odd){background-color:#e9f0e6}tr[data-v-a696cd7e]:nth-child(2n){background-color:#fff}tr[data-v-a696cd7e]:hover{background-color:#cfcfcf}.time[data-v-a696cd7e]{white-space:nowrap}.team-name[data-v-a696cd7e]{font-weight:600}.link-button[data-v-a696cd7e]{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-a696cd7e]:hover{color:var(--second-color);text-decoration:none}.link-button[data-v-a696cd7e]:active{color:#036}.link-button[data-v-a696cd7e]:focus{outline:none;text-decoration:none;box-shadow:0 0 0 2px #0066cc4d}.form-block[data-v-a696cd7e]{width:700px;margin:0 auto}a[data-v-a696cd7e]{color:var(--second-color);text-decoration:none;transition:all .2s ease;cursor:pointer}a[data-v-a696cd7e]:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}a[data-v-a696cd7e]:focus-visible{outline:2px solid #3182ce;outline-offset:2px;border-radius:2px}a[disabled][data-v-a696cd7e]{color:#a0aec0;pointer-events:none;cursor:not-allowed}.qr[data-v-a696cd7e]{position:absolute;top:80px;right:30px;text-align:center;width:120px}.button-container[data-v-a696cd7e]{margin-bottom:30px} diff --git a/static/admin/assets/index-DUitjz7C.js b/static/admin/assets/index-DNz9l3r8.js similarity index 99% rename from static/admin/assets/index-DUitjz7C.js rename to static/admin/assets/index-DNz9l3r8.js index 095bd8f..5f81e16 100644 --- a/static/admin/assets/index-DUitjz7C.js +++ b/static/admin/assets/index-DNz9l3r8.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AboutView-DVHDbkXx.js","assets/AboutView-CSIvawM9.css"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AboutView-CEufZrOu.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)}},_r=n,_ The chosen QR Code version cannot contain this amount of data. Minimum version required to store current data is: `+k+`. `);const q=R(O,$,j),H=e.getSymbolSize(O),W=new r(H);return g(W,O),b(W),C(W,O),S(W,$,0),O>=7&&U(W,O),A(W,q),isNaN(D)&&(D=i.getBestMask(W,S.bind(null,W,$))),i.applyMask(D,W),S(W,$,D),{modules:W,version:O,errorCorrectionLevel:$,maskPattern:D,segments:j}}return tr.create=function(O,$){if(typeof O>"u"||O==="")throw new Error("No input text");let D=t.M,j,k;return typeof $<"u"&&(D=t.from($.errorCorrectionLevel,t.M),j=f.from($.version),k=i.from($.maskPattern),$.toSJISFunc&&e.setToSJISFunction($.toSJISFunc)),z(O,j,D,k)},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="',b='viewBox="0 0 '+a+" "+a+'"',U=''+p+g+` -`;return typeof l=="function"&&l(null,U),U},Er}var Bo;function ia(){if(Bo)return Rt;Bo=1;const e=$f(),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,b){try{const C=t.create(l,c);g(o(C,i,c))}catch(C){b(C)}})}try{const g=t.create(l,c);f(null,o(g,i,c))}catch(g){f(g)}}return Rt.create=t.create,Rt.toCanvas=s.bind(null,n.render),Rt.toDataURL=s.bind(null,n.renderToDataURL),Rt.toString=s.bind(null,function(o,i,l){return r.render(o,l)}),Rt}var Cr=ia();/*! vue-qrcode v2.0.0 | (c) 2018-present Chen Fengyuan | MIT */const Oo="ready";var la=Ut({name:"VueQrcode",props:{value:{type:String,default:void 0},options:{type:Object,default:void 0},tag:{type:String,default:"canvas"}},emits:[Oo],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(Oo,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:"qr"},ua={class:"table-custom"},fa={class:"team-name"},aa=["href"],da=["onClick"],ha=["onClick"],pa={class:"form-custom form-block"},ga={class:"center-block-custom"},ma=Ut({__name:"AdminWindow",setup(e){const t=yt("-"),n=yt("-"),r=yt({teams:[]});function s(){fetch(Zn("/teams")).then(u=>u.json()).then(u=>{r.value=u}).catch(u=>{console.error("Ошибка:",u)})}function o(u,a){fetch(Zn("/teams/"+u+"/applications"),{method:"POST",body:JSON.stringify({applications:[{id:a}]})}).then(()=>{}).catch(p=>{console.error("Ошибка:",p)})}const i=yt("");function l(){fetch(Zn("/teams"),{method:"POST",body:JSON.stringify({teams:[{name:i.value}]})}).then(()=>{i.value=""}).catch(u=>{console.error("Ошибка:",u)})}const c=yt({width:100,margin:1,color:{dark:"#000000",light:"f0f0f0"}});let f=0;return bi(()=>{s(),f=setInterval(()=>{s()},2e3),fl.beforeEach((u,a,p)=>{clearInterval(f),p()})}),(u,a)=>(_t(),kt(Me,null,[a[3]||(a[3]=se("div",{class:"header-block"}," Вечерний детектив ",-1)),se("div",ca,[xe(ut(la),{value:t.value,options:c.value,tag:"svg",class:"qr-code"},null,8,["value","options"]),se("div",null,Pt(n.value),1)]),se("table",ua,[a[1]||(a[1]=se("thead",null,[se("tr",null,[se("th",null,"№"),se("th",null,"Название команды"),se("th",null,"Время мин."),se("th",null,"Приложения"),se("th",null,"Действия")])],-1)),se("tbody",null,[(_t(!0),kt(Me,null,ps(r.value.teams,(p,g)=>(_t(),kt("tr",{key:p.name},[se("td",null,Pt(g+1),1),se("td",fa,[Or(Pt(p.name)+" ",1),se("a",{href:p.url,target:"_blank"},"[url]",8,aa)]),se("td",null,Pt(p.spendTime),1),se("td",null,[(_t(!0),kt(Me,null,ps(p.applications,b=>(_t(),kt("div",{key:b.id},[Or(Pt(b.name)+" ",1),se("button",{class:"link-button",onClick:C=>o(p.id,b.id)},"Выдано",8,da)]))),128))]),se("td",null,[se("a",{onClick:b=>(t.value=p.url,n.value=p.name)},"QR",8,ha)])]))),128))])]),se("div",pa,[se("div",ga,[se("form",{onSubmit:Su(l,["prevent"])},[se("div",null,[Zl(se("input",{class:"input-custom","onUpdate:modelValue":a[0]||(a[0]=p=>i.value=p),type:"text",placeholder:"Название команды"},null,512),[[wu,i.value]])]),a[2]||(a[2]=se("div",{class:"button-container"},[se("button",{class:"button-custom",type:"submit"},"Добавить")],-1))],32)])])],64))}}),ya=ol(ma,[["__scopeId","data-v-03fb6689"]]),_a=Ut({__name:"HomeView",setup(e){return(t,n)=>(_t(),$i(ya))}}),fl=Bf({history:uf("/"),routes:[{path:"/",name:"home",component:_a},{path:"/about",name:"about",component:()=>Hf(()=>import("./AboutView-DVHDbkXx.js"),__vite__mapDeps([0,1]))}]}),ls=Au(Df);ls.use(Mu());ls.use(fl);ls.mount("#app");export{ol as _,se as a,kt as c,_t as o}; +`;return typeof l=="function"&&l(null,U),U},Er}var Bo;function ia(){if(Bo)return Rt;Bo=1;const e=$f(),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,b){try{const C=t.create(l,c);g(o(C,i,c))}catch(C){b(C)}})}try{const g=t.create(l,c);f(null,o(g,i,c))}catch(g){f(g)}}return Rt.create=t.create,Rt.toCanvas=s.bind(null,n.render),Rt.toDataURL=s.bind(null,n.renderToDataURL),Rt.toString=s.bind(null,function(o,i,l){return r.render(o,l)}),Rt}var Cr=ia();/*! vue-qrcode v2.0.0 | (c) 2018-present Chen Fengyuan | MIT */const Oo="ready";var la=Ut({name:"VueQrcode",props:{value:{type:String,default:void 0},options:{type:Object,default:void 0},tag:{type:String,default:"canvas"}},emits:[Oo],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(Oo,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:"qr"},ua={class:"table-custom"},fa={class:"team-name"},aa=["href"],da=["onClick"],ha=["onClick"],pa={class:"form-custom form-block"},ga={class:"center-block-custom"},ma=Ut({__name:"AdminWindow",setup(e){const t=yt("-"),n=yt("-"),r=yt({teams:[]});function s(){fetch(Zn("/teams")).then(u=>u.json()).then(u=>{r.value=u}).catch(u=>{console.error("Ошибка:",u)})}function o(u,a){fetch(Zn("/teams/"+u+"/applications"),{method:"POST",body:JSON.stringify({applications:[{id:a}]})}).then(()=>{}).catch(p=>{console.error("Ошибка:",p)})}const i=yt("");function l(){fetch(Zn("/teams"),{method:"POST",body:JSON.stringify({teams:[{name:i.value}]})}).then(()=>{i.value=""}).catch(u=>{console.error("Ошибка:",u)})}const c=yt({width:100,margin:1,color:{dark:"#000000",light:"f0f0f0"}});let f=0;return bi(()=>{s(),f=setInterval(()=>{s()},2e3),fl.beforeEach((u,a,p)=>{clearInterval(f),p()})}),(u,a)=>(_t(),kt(Me,null,[a[3]||(a[3]=se("div",{class:"header-block"}," Вечерний детектив ",-1)),se("div",ca,[xe(ut(la),{value:t.value,options:c.value,tag:"svg",class:"qr-code"},null,8,["value","options"]),se("div",null,Pt(n.value),1)]),se("table",ua,[a[1]||(a[1]=se("thead",null,[se("tr",null,[se("th",null,"№"),se("th",null,"Название команды"),se("th",null,"Время мин."),se("th",null,"Приложения"),se("th",null,"Действия")])],-1)),se("tbody",null,[(_t(!0),kt(Me,null,ps(r.value.teams,(p,g)=>(_t(),kt("tr",{key:p.name},[se("td",null,Pt(g+1),1),se("td",fa,[Or(Pt(p.name)+" ",1),se("a",{href:p.url,target:"_blank"},"[url]",8,aa)]),se("td",null,Pt(p.spendTime),1),se("td",null,[(_t(!0),kt(Me,null,ps(p.applications,b=>(_t(),kt("div",{key:b.id},[Or(Pt(b.name)+" ",1),se("button",{class:"link-button",onClick:C=>o(p.id,b.id)},"Выдано",8,da)]))),128))]),se("td",null,[se("a",{onClick:b=>(t.value=p.url,n.value=p.name)},"QR",8,ha)])]))),128))])]),se("div",pa,[se("div",ga,[se("form",{onSubmit:Su(l,["prevent"])},[se("div",null,[Zl(se("input",{class:"input-custom","onUpdate:modelValue":a[0]||(a[0]=p=>i.value=p),type:"text",placeholder:"Название команды"},null,512),[[wu,i.value]])]),a[2]||(a[2]=se("div",{class:"button-container"},[se("button",{class:"button-custom",type:"submit"},"Добавить")],-1))],32)])])],64))}}),ya=ol(ma,[["__scopeId","data-v-a696cd7e"]]),_a=Ut({__name:"HomeView",setup(e){return(t,n)=>(_t(),$i(ya))}}),fl=Bf({history:uf("/"),routes:[{path:"/",name:"home",component:_a},{path:"/about",name:"about",component:()=>Hf(()=>import("./AboutView-CEufZrOu.js"),__vite__mapDeps([0,1]))}]}),ls=Au(Df);ls.use(Mu());ls.use(fl);ls.mount("#app");export{ol as _,se as a,kt as c,_t as o}; diff --git a/static/admin/index.html b/static/admin/index.html index 89a04f6..aa7dcb4 100644 --- a/static/admin/index.html +++ b/static/admin/index.html @@ -5,8 +5,8 @@ ВД Админка - - + +