feat: 添加权限管理和管理员状态功能

新增权限数组和管理员状态标识,用于控制用户权限和界面展示
This commit is contained in:
DESKTOP-RQ919RC\Pc
2025-11-19 14:25:47 +08:00
parent ed89dd7448
commit e789543139
103 changed files with 919 additions and 818 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"id":"5647ec10-bcce-49c6-9ad9-4b62d89c4e5e","timestamp":1757322765462}
{"id":"c8c97d42-8838-497d-9888-ccc46f8e5444","timestamp":1763533347041}

View File

@@ -1 +0,0 @@
{"id":"5647ec10-bcce-49c6-9ad9-4b62d89c4e5e","timestamp":1757322765462,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}

View File

@@ -0,0 +1 @@
{"id":"c8c97d42-8838-497d-9888-ccc46f8e5444","timestamp":1763533347041,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{u as i}from"./vue.f36acd1f.RRpuWnMP.js";import{_ as r}from"./_plugin-vue_export-helper.x3n3nnut.js";import{t as a,v as n,x as e,y as s,C as l,D as d}from"./entry.vA5qQQcd.js";const c=t=>(l("data-v-df79c84d"),t=t(),d(),t),p={class:"font-sans antialiased bg-white dark:bg-black text-black dark:text-white grid min-h-screen place-content-center overflow-hidden"},f=c(()=>e("div",{class:"fixed -bottom-1/2 left-0 right-0 h-1/2 spotlight"},null,-1)),h={class:"max-w-520px text-center"},m=["textContent"],g=["textContent"],x={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:500},statusMessage:{type:String,default:"Server error"},description:{type:String,default:"This page is temporarily unavailable."}},setup(t){const o=t;return i({title:`${o.statusCode} - ${o.statusMessage} | ${o.appName}`,script:[],style:[{children:'*,:before,:after{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:#e0e0e0}*{--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(14, 165, 233, .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{margin:0;font-family:inherit;line-height:inherit}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5}h1,p{margin:0}h1{font-size:inherit;font-weight:inherit}'}]}),(b,u)=>(a(),n("div",p,[f,e("div",h,[e("h1",{class:"text-8xl sm:text-10xl font-medium mb-8",textContent:s(t.statusCode)},null,8,m),e("p",{class:"text-xl px-8 sm:px-0 sm:text-4xl font-light mb-16 leading-tight",textContent:s(t.description)},null,8,g)])]))}},S=r(x,[["__scopeId","data-v-df79c84d"]]);export{S as default};
import{u as i}from"./vue.f36acd1f.LhX-dNCo.js";import{_ as r}from"./_plugin-vue_export-helper.x3n3nnut.js";import{t as a,v as n,x as e,y as s,C as l,D as d}from"./entry.4SmQ3ef1.js";const c=t=>(l("data-v-df79c84d"),t=t(),d(),t),p={class:"font-sans antialiased bg-white dark:bg-black text-black dark:text-white grid min-h-screen place-content-center overflow-hidden"},f=c(()=>e("div",{class:"fixed -bottom-1/2 left-0 right-0 h-1/2 spotlight"},null,-1)),h={class:"max-w-520px text-center"},m=["textContent"],g=["textContent"],x={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:500},statusMessage:{type:String,default:"Server error"},description:{type:String,default:"This page is temporarily unavailable."}},setup(t){const o=t;return i({title:`${o.statusCode} - ${o.statusMessage} | ${o.appName}`,script:[],style:[{children:'*,:before,:after{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:#e0e0e0}*{--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(14, 165, 233, .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{margin:0;font-family:inherit;line-height:inherit}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5}h1,p{margin:0}h1{font-size:inherit;font-weight:inherit}'}]}),(b,u)=>(a(),n("div",p,[f,e("div",h,[e("h1",{class:"text-8xl sm:text-10xl font-medium mb-8",textContent:s(t.statusCode)},null,8,m),e("p",{class:"text-xl px-8 sm:px-0 sm:text-4xl font-light mb-16 leading-tight",textContent:s(t.description)},null,8,g)])]))}},S=r(x,[["__scopeId","data-v-df79c84d"]]);export{S as default};

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

View File

@@ -1 +0,0 @@
.vote-item[data-v-13eaa73c]{--main-color:#2cbae6;--bg-color:#eaf5f8;--bc-color:#d5ebf2}.search-info[data-v-13eaa73c]{color:#72db86;font-size:14px;margin:0 auto 31px;width:1200px}.search-info .round-fork-fork[data-v-13eaa73c]{cursor:pointer;height:14px;margin-left:8px;width:14px}.search-info .halving-line[data-v-13eaa73c]{background-color:#d7d7d7;height:13px;margin:0 20px;width:1px}.search-info .search-result[data-v-13eaa73c]{color:#7f7f7f;font-size:13px}.vote-list-box[data-v-13eaa73c]{display:flex;flex-wrap:wrap;margin:0 auto;min-height:100vh;width:1200px}.vote-list-box.firstdata .vote-item[data-v-13eaa73c]{margin-right:22.5px}.vote-list-box.firstdata .vote-item[data-v-13eaa73c]:nth-of-type(3n){margin-right:0}.vote-list-box .vote-item[data-v-13eaa73c]{background-color:#fff;border-radius:16px;cursor:pointer;margin-bottom:20px;padding:25px 22px 24px;width:385px}.vote-list-box .vote-item[data-v-13eaa73c]:hover{box-shadow:0 0 5px 2px #d9d9d97a}.vote-list-box .vote-item.isvote .vote-option-list .vote-option-item .vote-option-progress[data-v-13eaa73c]{display:flex}.vote-list-box .vote-item .vote-title[data-v-13eaa73c]{color:#000;font-size:16px;font-style:normal;font-weight:650;line-height:26px;margin-bottom:10px;word-break:break-all}.vote-list-box .vote-item .vote-title .vote-state[data-v-13eaa73c]{align-items:center;background-color:var(--main-color);border-radius:25px;color:#fff;display:inline-flex;font-size:12px;height:20px;justify-content:center;margin-right:6px;padding:0 6px}.vote-list-box .vote-item .vote-title .vote-state.finish[data-v-13eaa73c]{background:#000;color:#fff}.vote-list-box .vote-item .vote-explain[data-v-13eaa73c]{color:#555;font-size:13px;line-height:22px;margin-bottom:14px;word-break:break-word}.vote-list-box .vote-item .vote-option-list[data-v-13eaa73c]{background-color:var(--bg-color);border:1px solid var(--bc-color);border-radius:13px;flex-direction:column;margin-bottom:16px;padding:8px 0;width:340px}.vote-list-box .vote-item .vote-option-list .vote-option-item[data-v-13eaa73c]{flex-direction:column;padding:10px 15px}.vote-list-box .vote-item .vote-option-list .vote-option-item[data-v-13eaa73c]:not(:last-of-type){border-bottom:1px solid var(--bc-color)}.vote-list-box .vote-item .vote-option-list .vote-option-item.pitch .vote-option-number[data-v-13eaa73c]{display:none}.vote-list-box .vote-item .vote-option-list .vote-option-item.pitch .tick-icon[data-v-13eaa73c]{display:block}.vote-list-box .vote-item .vote-option-list .vote-option-item.pitch .vote-option-content[data-v-13eaa73c]{color:#000;font-weight:650}.vote-list-box .vote-item .vote-option-list .vote-option-item .vote-option-number[data-v-13eaa73c]{background-color:var(--main-color);border-radius:50%;color:#fff;font-size:11px;height:14px;margin-right:6px;margin-top:3px;width:14px}.vote-list-box .vote-item .vote-option-list .vote-option-item .tick-icon[data-v-13eaa73c]{display:none;height:14px;margin-right:6px;margin-top:3px;width:14px}.vote-list-box .vote-item .vote-option-list .vote-option-item .vote-option-content[data-v-13eaa73c]{color:#333;font-size:14px;line-height:20px;word-break:break-word}.vote-list-box .vote-item .vote-option-list .vote-option-item .vote-option-progress[data-v-13eaa73c]{display:none;height:5px;justify-content:flex-end;margin-top:5px;width:100%}.vote-list-box .vote-item .vote-option-list .vote-option-item .vote-option-progress .vote-option-progress-step[data-v-13eaa73c]{background-color:var(--main-color);border-radius:66px;height:4px;margin-right:14px;opacity:.49039}.vote-list-box .vote-item .vote-option-list .vote-option-item .vote-option-progress .vote-option-progress-value[data-v-13eaa73c]{color:var(--main-color);font-size:12px;line-height:20px}.vote-list-box .vote-item .vote-data[data-v-13eaa73c]{color:#aaa;font-size:12px;justify-content:space-between;line-height:22px}.vote-list-box .vote-item .vote-data .vote-data-item[data-v-13eaa73c]{margin-left:16px}.vote-list-box .vote-item .vote-data .vote-data-item .vote-data-icon[data-v-13eaa73c]{cursor:pointer;width:14px}.empty-box[data-v-13eaa73c]{background-color:#fff;border-radius:16px;height:540px;margin:0 auto;width:1200px}

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{u as t}from"./vue.f36acd1f.RRpuWnMP.js";import{u as e}from"./entry.vA5qQQcd.js";const a={__name:"index",setup(r){return t({script:[{src:"https://app.gter.net/bottom?tpl=header&menukey=vote"},{src:"https://app.gter.net/bottom?tpl=footer,popupnotification",body:!0}]}),e().replace("/index.html"),(p,s)=>null}};export{a as default};
import{u as t}from"./vue.f36acd1f.LhX-dNCo.js";import{u as e}from"./entry.4SmQ3ef1.js";const a={__name:"index",setup(r){return t({script:[{src:"https://app.gter.net/bottom?tpl=header&menukey=vote"},{src:"https://app.gter.net/bottom?tpl=footer,popupnotification",body:!0}]}),e().replace("/index.html"),(p,s)=>null}};export{a as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.vote-item[data-v-00bcdbf0]{--main-color:#2cbae6;--bg-color:#eaf5f8;--bc-color:#d5ebf2}.search-info[data-v-00bcdbf0]{color:#72db86;font-size:14px;margin:0 auto 31px;width:1200px}.search-info .round-fork-fork[data-v-00bcdbf0]{cursor:pointer;height:14px;margin-left:8px;width:14px}.search-info .halving-line[data-v-00bcdbf0]{background-color:#d7d7d7;height:13px;margin:0 20px;width:1px}.search-info .search-result[data-v-00bcdbf0]{color:#7f7f7f;font-size:13px}.vote-list-box[data-v-00bcdbf0]{display:flex;flex-wrap:wrap;margin:0 auto;min-height:100vh;width:1200px}.vote-list-box.firstdata .vote-item[data-v-00bcdbf0]{margin-right:22.5px}.vote-list-box.firstdata .vote-item[data-v-00bcdbf0]:nth-of-type(3n){margin-right:0}.vote-list-box .vote-item[data-v-00bcdbf0]{background-color:#fff;border-radius:16px;cursor:pointer;margin-bottom:20px;padding:25px 22px 24px;width:385px}.vote-list-box .vote-item[data-v-00bcdbf0]:hover{box-shadow:0 0 5px 2px #d9d9d97a}.vote-list-box .vote-item.isvote .vote-option-list .vote-option-item .vote-option-progress[data-v-00bcdbf0]{display:flex}.vote-list-box .vote-item .vote-title[data-v-00bcdbf0]{color:#000;font-size:16px;font-style:normal;font-weight:650;line-height:26px;margin-bottom:10px;word-break:break-all}.vote-list-box .vote-item .vote-title .vote-state[data-v-00bcdbf0]{align-items:center;background-color:var(--main-color);border-radius:25px;color:#fff;display:inline-flex;font-size:12px;height:20px;justify-content:center;margin-right:6px;padding:0 6px}.vote-list-box .vote-item .vote-title .vote-state.finish[data-v-00bcdbf0]{background:#000;color:#fff}.vote-list-box .vote-item .vote-explain[data-v-00bcdbf0]{color:#555;font-size:13px;line-height:22px;margin-bottom:14px;word-break:break-word}.vote-list-box .vote-item .vote-option-list[data-v-00bcdbf0]{background-color:var(--bg-color);border:1px solid var(--bc-color);border-radius:13px;flex-direction:column;margin-bottom:16px;padding:8px 0;width:340px}.vote-list-box .vote-item .vote-option-list .vote-option-item[data-v-00bcdbf0]{flex-direction:column;padding:10px 15px}.vote-list-box .vote-item .vote-option-list .vote-option-item[data-v-00bcdbf0]:not(:last-of-type){border-bottom:1px solid var(--bc-color)}.vote-list-box .vote-item .vote-option-list .vote-option-item.pitch .vote-option-number[data-v-00bcdbf0]{display:none}.vote-list-box .vote-item .vote-option-list .vote-option-item.pitch .tick-icon[data-v-00bcdbf0]{display:block}.vote-list-box .vote-item .vote-option-list .vote-option-item.pitch .vote-option-content[data-v-00bcdbf0]{color:#000;font-weight:650}.vote-list-box .vote-item .vote-option-list .vote-option-item .vote-option-number[data-v-00bcdbf0]{background-color:var(--main-color);border-radius:50%;color:#fff;font-size:11px;height:14px;margin-right:6px;margin-top:3px;width:14px}.vote-list-box .vote-item .vote-option-list .vote-option-item .tick-icon[data-v-00bcdbf0]{display:none;height:14px;margin-right:6px;margin-top:3px;width:14px}.vote-list-box .vote-item .vote-option-list .vote-option-item .vote-option-content[data-v-00bcdbf0]{color:#333;font-size:14px;line-height:20px;word-break:break-word}.vote-list-box .vote-item .vote-option-list .vote-option-item .vote-option-progress[data-v-00bcdbf0]{display:none;height:5px;justify-content:flex-end;margin-top:5px;width:100%}.vote-list-box .vote-item .vote-option-list .vote-option-item .vote-option-progress .vote-option-progress-step[data-v-00bcdbf0]{background-color:var(--main-color);border-radius:66px;height:4px;margin-right:14px;opacity:.49039}.vote-list-box .vote-item .vote-option-list .vote-option-item .vote-option-progress .vote-option-progress-value[data-v-00bcdbf0]{color:var(--main-color);font-size:12px;line-height:20px}.vote-list-box .vote-item .vote-data[data-v-00bcdbf0]{color:#aaa;font-size:12px;justify-content:space-between;line-height:22px}.vote-list-box .vote-item .vote-data .vote-data-item[data-v-00bcdbf0]{margin-left:16px}.vote-list-box .vote-item .vote-data .vote-data-item .vote-data-icon[data-v-00bcdbf0]{cursor:pointer;width:14px}.empty-box[data-v-00bcdbf0]{background-color:#fff;border-radius:16px;height:540px;margin:0 auto;width:1200px}

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
import{am as w,an as V}from"./cross-icon.rxrWBGt_.js";function j(x,v){for(var d=0;d<v.length;d++){const g=v[d];if(typeof g!="string"&&!Array.isArray(g)){for(const f in g)if(f!=="default"&&!(f in x)){const h=Object.getOwnPropertyDescriptor(g,f);h&&Object.defineProperty(x,f,h.get?h:{enumerable:!0,get:()=>g[f]})}}}return Object.freeze(Object.defineProperty(x,Symbol.toStringTag,{value:"Module"}))}var N={exports:{}},W={exports:{}},L={exports:{}},A;function U(){return A||(A=1,function(x){(function(v,d){x.exports?x.exports=d():v.EvEmitter=d()})(typeof window<"u"?window:w,function(){function v(){}var d=v.prototype;return d.on=function(g,f){if(!(!g||!f)){var h=this._events=this._events||{},a=h[g]=h[g]||[];return a.indexOf(f)==-1&&a.push(f),this}},d.once=function(g,f){if(!(!g||!f)){this.on(g,f);var h=this._onceEvents=this._onceEvents||{},a=h[g]=h[g]||{};return a[f]=!0,this}},d.off=function(g,f){var h=this._events&&this._events[g];if(!(!h||!h.length)){var a=h.indexOf(f);return a!=-1&&h.splice(a,1),this}},d.emitEvent=function(g,f){var h=this._events&&this._events[g];if(!(!h||!h.length)){h=h.slice(0),f=f||[];for(var a=this._onceEvents&&this._onceEvents[g],o=0;o<h.length;o++){var s=h[o],l=a&&a[s];l&&(this.off(g,s),delete a[s]),s.apply(this,f)}return this}},d.allOff=function(){delete this._events,delete this._onceEvents},v})}(L)),L.exports}var C={exports:{}};/*!
import{au as w,av as V}from"./cross-icon.rmq8AwS8.js";function j(x,v){for(var d=0;d<v.length;d++){const g=v[d];if(typeof g!="string"&&!Array.isArray(g)){for(const f in g)if(f!=="default"&&!(f in x)){const h=Object.getOwnPropertyDescriptor(g,f);h&&Object.defineProperty(x,f,h.get?h:{enumerable:!0,get:()=>g[f]})}}}return Object.freeze(Object.defineProperty(x,Symbol.toStringTag,{value:"Module"}))}var N={exports:{}},W={exports:{}},L={exports:{}},A;function U(){return A||(A=1,function(x){(function(v,d){x.exports?x.exports=d():v.EvEmitter=d()})(typeof window<"u"?window:w,function(){function v(){}var d=v.prototype;return d.on=function(g,f){if(!(!g||!f)){var h=this._events=this._events||{},a=h[g]=h[g]||[];return a.indexOf(f)==-1&&a.push(f),this}},d.once=function(g,f){if(!(!g||!f)){this.on(g,f);var h=this._onceEvents=this._onceEvents||{},a=h[g]=h[g]||{};return a[f]=!0,this}},d.off=function(g,f){var h=this._events&&this._events[g];if(!(!h||!h.length)){var a=h.indexOf(f);return a!=-1&&h.splice(a,1),this}},d.emitEvent=function(g,f){var h=this._events&&this._events[g];if(!(!h||!h.length)){h=h.slice(0),f=f||[];for(var a=this._onceEvents&&this._onceEvents[g],o=0;o<h.length;o++){var s=h[o],l=a&&a[s];l&&(this.off(g,s),delete a[s]),s.apply(this,f)}return this}},d.allOff=function(){delete this._events,delete this._onceEvents},v})}(L)),L.exports}var C={exports:{}};/*!
* getSize v2.0.3
* measure size of elements
* MIT license

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{aI as o,r as u,$ as f,S as d,e as v,ay as l,aJ as i,aK as h,a5 as m}from"./entry.4SmQ3ef1.js";function U(t,a={}){const e=a.head||o();if(e)return e.ssr?e.push(t,a):p(e,t,a)}function p(t,a,e={}){const s=u(!1),n=u({});f(()=>{n.value=s.value?{}:h(a)});const r=t.push(n.value,e);return d(n,c=>{r.patch(c)}),m()&&(v(()=>{r.dispose()}),l(()=>{s.value=!0}),i(()=>{s.value=!1})),r}export{U as u};

View File

@@ -1 +0,0 @@
import{aI as o,r as u,a0 as f,S as d,e as v,ay as l,aJ as i,aK as h,a6 as m}from"./entry.vA5qQQcd.js";function U(t,a={}){const e=a.head||o();if(e)return e.ssr?e.push(t,a):p(e,t,a)}function p(t,a,e={}){const s=u(!1),n=u({});f(()=>{n.value=s.value?{}:h(a)});const r=t.push(n.value,e);return d(n,c=>{r.patch(c)}),m()&&(v(()=>{r.dispose()}),l(()=>{s.value=!0}),i(()=>{s.value=!1})),r}export{U as u};