test/custom-admin-ui #3

Merged
orion merged 673 commits from test/custom-admin-ui into master 2026-06-05 17:20:58 +08:00
45 changed files with 129 additions and 53 deletions
Showing only changes of commit a990f92b43 - Show all commits
@@ -1,3 +0,0 @@
{
"type": "module"
}
+3
View File
@@ -8,12 +8,15 @@ export {}
declare module 'vue' { declare module 'vue' {
export interface GlobalComponents { export interface GlobalComponents {
CardTools: typeof import('./src/components/CardTools.vue')['default'] CardTools: typeof import('./src/components/CardTools.vue')['default']
ElAlert: typeof import('element-plus/es')['ElAlert']
ElButton: typeof import('element-plus/es')['ElButton'] ElButton: typeof import('element-plus/es')['ElButton']
ElCard: typeof import('element-plus/es')['ElCard'] ElCard: typeof import('element-plus/es')['ElCard']
ElCol: typeof import('element-plus/es')['ElCol'] ElCol: typeof import('element-plus/es')['ElCol']
ElContainer: typeof import('element-plus/es')['ElContainer'] ElContainer: typeof import('element-plus/es')['ElContainer']
ElDialog: typeof import('element-plus/es')['ElDialog'] ElDialog: typeof import('element-plus/es')['ElDialog']
ElDrawer: typeof import('element-plus/es')['ElDrawer'] ElDrawer: typeof import('element-plus/es')['ElDrawer']
ElForm: typeof import('element-plus/es')['ElForm']
ElFormItem: typeof import('element-plus/es')['ElFormItem']
ElHeader: typeof import('element-plus/es')['ElHeader'] ElHeader: typeof import('element-plus/es')['ElHeader']
ElIcon: typeof import('element-plus/es')['ElIcon'] ElIcon: typeof import('element-plus/es')['ElIcon']
ElInput: typeof import('element-plus/es')['ElInput'] ElInput: typeof import('element-plus/es')['ElInput']
+1
View File
@@ -0,0 +1 @@
import"./base-c9c53ef4.js";import{E as c}from"./el-button-c013d252.js";import{a as r,E as s}from"./el-col-2bb883a2.js";import{an as _,m,p as u,y as p,e,w as o,x as t}from"./index-bded577e.js";import"./index-1ab675c3.js";const f={};function i(d,x){const n=s,a=r,l=c;return m(),u("main",null,[p("div",null,[e(a,null,{default:o(()=>[e(n,null,{default:o(()=>[t("1")]),_:1})]),_:1}),e(l,null,{default:o(()=>[t("1")]),_:1})])])}const b=_(f,[["render",i]]);export{b as default};
-1
View File
@@ -1 +0,0 @@
import"./base-f7494360.js";import{E as c}from"./el-button-93ad78d4.js";import{a as r,E as s}from"./el-col-0122cd51.js";import{an as _,m,p as u,y as f,e,w as o,x as t}from"./index-86483aed.js";const p={};function d(i,x){const n=s,a=r,l=c;return m(),u("main",null,[f("div",null,[e(a,null,{default:o(()=>[e(n,null,{default:o(()=>[t("1")]),_:1})]),_:1}),e(l,null,{default:o(()=>[t("1")]),_:1})])])}const N=_(p,[["render",d]]);export{N as default};
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
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
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
+1
View File
@@ -0,0 +1 @@
.left-menu{margin-bottom:1rem;cursor:pointer}
-1
View File
@@ -1 +0,0 @@
import"./base-f7494360.js";import{E as c}from"./el-button-93ad78d4.js";import{a as r,E as s}from"./el-col-0122cd51.js";import{an as _,m,p as u,y as f,e,w as t,x as o}from"./index-86483aed.js";const i={};function p(d,x){const n=s,a=r,l=c;return m(),u("main",null,[f("div",null,[e(a,null,{default:t(()=>[e(n,null,{default:t(()=>[o("1")]),_:1})]),_:1}),e(l,null,{default:t(()=>[o("1")]),_:1})])])}const N=_(i,[["render",p]]);export{N as default};
+1
View File
@@ -0,0 +1 @@
import"./base-c9c53ef4.js";import{a as c,E as s}from"./el-col-2bb883a2.js";import{E as r}from"./el-card-ad43cf4b.js";import{an as l,m as f,J as m,w as e,e as t,x as a}from"./index-bded577e.js";const p={};function d(i,u){const _=r,o=s,n=c;return f(),m(n,{gutter:10},{default:e(()=>[t(o,{span:4},{default:e(()=>[t(_,{class:"left-menu"},{default:e(()=>[a("1")]),_:1})]),_:1}),t(o,{span:20},{default:e(()=>[a(" 1 ")]),_:1})]),_:1})}const V=l(p,[["render",d]]);export{V as default};
+1
View File
@@ -0,0 +1 @@
import{i as V,f as g,a9 as y,aq as b,N as w,a0 as O,A as B,r as _,B as E,s as I}from"./index-bded577e.js";function K(s){for(var n=-1,e=s==null?0:s.length,r={};++n<e;){var c=s[n];r[c[0]]=c[1]}return r}const T=s=>s===void 0,D=s=>typeof s=="boolean",F=s=>typeof s=="number",G=s=>typeof Element>"u"?!1:s instanceof Element,U=s=>V(s)?!Number.isNaN(Number(s)):!1,h="__epPropKey",z=s=>s,j=s=>g(s)&&!!s[h],q=(s,n)=>{if(!g(s)||j(s))return s;const{values:e,required:r,default:c,type:l,validator:d}=s,p={type:l,required:!!r,validator:e||d?m=>{let u=!1,f=[];if(e&&(f=Array.from(e),y(s,"default")&&f.push(c),u||(u=f.includes(m))),d&&(u||(u=d(m))),!u&&f.length>0){const $=[...new Set(f)].map(N=>JSON.stringify(N)).join(", ");b(`Invalid prop: validation failed${n?` for prop "${n}"`:""}. Expected one of [${$}], got value ${JSON.stringify(m)}.`)}return u}:void 0,[h]:!0};return y(s,"default")&&(p.default=c),p},H=s=>K(Object.entries(s).map(([n,e])=>[n,q(e,n)])),L=(s,n)=>{if(s.install=e=>{for(const r of[s,...Object.values(n??{})])e.component(r.name,r)},n)for(const[e,r]of Object.entries(n))s[e]=r;return s},M=(s,n)=>(s.install=e=>{s._context=e._context,e.config.globalProperties[n]=s},s),Q=s=>(s.install=w,s),R=s=>s,v="el",x="is-",i=(s,n,e,r,c)=>{let l=`${s}-${n}`;return e&&(l+=`-${e}`),r&&(l+=`__${r}`),c&&(l+=`--${c}`),l},C=Symbol("namespaceContextKey"),A=s=>{const n=s||(O()?B(C,_(v)):_(v));return E(()=>I(n)||v)},W=(s,n)=>{const e=A(n);return{namespace:e,b:(t="")=>i(e.value,s,t,"",""),e:t=>t?i(e.value,s,"",t,""):"",m:t=>t?i(e.value,s,"","",t):"",be:(t,a)=>t&&a?i(e.value,s,t,a,""):"",em:(t,a)=>t&&a?i(e.value,s,"",t,a):"",bm:(t,a)=>t&&a?i(e.value,s,t,"",a):"",bem:(t,a,o)=>t&&a&&o?i(e.value,s,t,a,o):"",is:(t,...a)=>{const o=a.length>=1?a[0]:!0;return t&&o?`${x}${t}`:""},cssVar:t=>{const a={};for(const o in t)t[o]&&(a[`--${e.value}-${o}`]=t[o]);return a},cssVarName:t=>`--${e.value}-${t}`,cssVarBlock:t=>{const a={};for(const o in t)t[o]&&(a[`--${e.value}-${s}-${o}`]=t[o]);return a},cssVarBlockName:t=>`--${e.value}-${s}-${t}`}};var X=(s,n)=>{const e=s.__vccOpts||s;for(const[r,c]of n)e[r]=c;return e};export{X as _,D as a,H as b,Q as c,z as d,v as e,T as f,G as g,K as h,F as i,M as j,q as k,A as l,R as m,C as n,U as o,W as u,L as w};
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
+1
View File
@@ -0,0 +1 @@
.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank)}.el-card{border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);overflow:hidden;color:var(--el-text-color-primary);transition:var(--el-transition-duration)}.el-card.is-always-shadow{box-shadow:var(--el-box-shadow-light)}.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box}.el-card__body{padding:var(--el-card-padding)}
+1
View File
@@ -0,0 +1 @@
import{b as n,d as p,u as c,_ as i,w as m}from"./base-c9c53ef4.js";import{d as l,m as o,p as t,D as r,s,E as d,L as u,y,H as f,x as h,z as v}from"./index-bded577e.js";const w=n({header:{type:String,default:""},bodyStyle:{type:p([String,Object,Array]),default:""},shadow:{type:String,values:["always","hover","never"],default:"always"}}),S=l({name:"ElCard"}),_=l({...S,props:w,setup(C){const a=c("card");return(e,g)=>(o(),t("div",{class:r([s(a).b(),s(a).is(`${e.shadow}-shadow`)])},[e.$slots.header||e.header?(o(),t("div",{key:0,class:r(s(a).e("header"))},[d(e.$slots,"header",{},()=>[h(v(e.header),1)])],2)):u("v-if",!0),y("div",{class:r(s(a).e("body")),style:f(e.bodyStyle)},[d(e.$slots,"default")],6)],2))}});var b=i(_,[["__file","/home/runner/work/element-plus/element-plus/packages/components/card/src/card.vue"]]);const N=m(b);export{N as E};
@@ -1 +1 @@
import{b as g,e as _,_ as w,w as $,j as r,m as u,c as b}from"./base-f7494360.js";import{d as p,B as o,I as O,m as h,J as v,w as j,E as N,D as C,s as c,H as x,$ as E,A as S,f as k}from"./index-86483aed.js";const R=Symbol("rowContextKey"),K=["start","center","end","space-around","space-between","space-evenly"],B=["top","middle","bottom"],P=g({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:K,default:"start"},align:{type:String,values:B}}),A=p({name:"ElRow"}),D=p({...A,props:P,setup(f){const t=f,l=_("row"),a=o(()=>t.gutter);O(R,{gutter:a});const i=o(()=>{const e={};return t.gutter&&(e.marginRight=e.marginLeft=`-${t.gutter/2}px`),e}),m=o(()=>[l.b(),l.is(`justify-${t.justify}`,t.justify!=="start"),l.is(`align-${t.align}`,!!t.align)]);return(e,d)=>(h(),v(E(e.tag),{class:C(c(m)),style:x(c(i))},{default:j(()=>[N(e.$slots,"default")]),_:3},8,["class","style"]))}});var I=w(D,[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]]);const M=$(I),J=g({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:r([Number,Object]),default:()=>u({})},sm:{type:r([Number,Object]),default:()=>u({})},md:{type:r([Number,Object]),default:()=>u({})},lg:{type:r([Number,Object]),default:()=>u({})},xl:{type:r([Number,Object]),default:()=>u({})}}),L=p({name:"ElCol"}),H=p({...L,props:J,setup(f){const t=f,{gutter:l}=S(R,{gutter:o(()=>0)}),a=_("col"),i=o(()=>{const e={};return l.value&&(e.paddingLeft=e.paddingRight=`${l.value/2}px`),e}),m=o(()=>{const e=[];return["span","offset","pull","push"].forEach(s=>{const n=t[s];b(n)&&(s==="span"?e.push(a.b(`${t[s]}`)):n>0&&e.push(a.b(`${s}-${t[s]}`)))}),["xs","sm","md","lg","xl"].forEach(s=>{b(t[s])?e.push(a.b(`${s}-${t[s]}`)):k(t[s])&&Object.entries(t[s]).forEach(([n,y])=>{e.push(n!=="span"?a.b(`${s}-${n}-${y}`):a.b(`${s}-${y}`))})}),l.value&&e.push(a.is("guttered")),[a.b(),e]});return(e,d)=>(h(),v(E(e.tag),{class:C(c(m)),style:x(c(i))},{default:j(()=>[N(e.$slots,"default")]),_:3},8,["class","style"]))}});var T=w(H,[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]]);const Q=$(T);export{Q as E,M as a}; import{b as g,u as _,_ as w,w as $,d as r,m as u,i as b}from"./base-c9c53ef4.js";import{d as p,B as o,I as O,m as h,J as v,w as j,E as N,D as C,s as c,H as x,$ as E,A as S,f as k}from"./index-bded577e.js";const R=Symbol("rowContextKey"),K=["start","center","end","space-around","space-between","space-evenly"],B=["top","middle","bottom"],P=g({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:K,default:"start"},align:{type:String,values:B}}),A=p({name:"ElRow"}),D=p({...A,props:P,setup(f){const t=f,l=_("row"),a=o(()=>t.gutter);O(R,{gutter:a});const i=o(()=>{const e={};return t.gutter&&(e.marginRight=e.marginLeft=`-${t.gutter/2}px`),e}),m=o(()=>[l.b(),l.is(`justify-${t.justify}`,t.justify!=="start"),l.is(`align-${t.align}`,!!t.align)]);return(e,d)=>(h(),v(E(e.tag),{class:C(c(m)),style:x(c(i))},{default:j(()=>[N(e.$slots,"default")]),_:3},8,["class","style"]))}});var I=w(D,[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]]);const M=$(I),J=g({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:r([Number,Object]),default:()=>u({})},sm:{type:r([Number,Object]),default:()=>u({})},md:{type:r([Number,Object]),default:()=>u({})},lg:{type:r([Number,Object]),default:()=>u({})},xl:{type:r([Number,Object]),default:()=>u({})}}),L=p({name:"ElCol"}),H=p({...L,props:J,setup(f){const t=f,{gutter:l}=S(R,{gutter:o(()=>0)}),a=_("col"),i=o(()=>{const e={};return l.value&&(e.paddingLeft=e.paddingRight=`${l.value/2}px`),e}),m=o(()=>{const e=[];return["span","offset","pull","push"].forEach(s=>{const n=t[s];b(n)&&(s==="span"?e.push(a.b(`${t[s]}`)):n>0&&e.push(a.b(`${s}-${t[s]}`)))}),["xs","sm","md","lg","xl"].forEach(s=>{b(t[s])?e.push(a.b(`${s}-${t[s]}`)):k(t[s])&&Object.entries(t[s]).forEach(([n,y])=>{e.push(n!=="span"?a.b(`${s}-${n}-${y}`):a.b(`${s}-${y}`))})}),l.value&&e.push(a.is("guttered")),[a.b(),e]});return(e,d)=>(h(),v(E(e.tag),{class:C(c(m)),style:x(c(i))},{default:j(()=>[N(e.$slots,"default")]),_:3},8,["class","style"]))}});var T=w(H,[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]]);const Q=$(T);export{Q as E,M as a};
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
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
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
@@ -1 +1 @@
import{O as A,a6 as N}from"./index-86483aed.js";var o=(E=>(E[E.TEXT=1]="TEXT",E[E.CLASS=2]="CLASS",E[E.STYLE=4]="STYLE",E[E.PROPS=8]="PROPS",E[E.FULL_PROPS=16]="FULL_PROPS",E[E.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",E[E.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",E[E.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",E[E.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",E[E.NEED_PATCH=512]="NEED_PATCH",E[E.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",E[E.HOISTED=-1]="HOISTED",E[E.BAIL=-2]="BAIL",E))(o||{});const e=E=>{const _=A(E)?E:[E],S=[];return _.forEach(T=>{var r;A(T)?S.push(...e(T)):N(T)&&A(T.children)?S.push(...e(T.children)):(S.push(T),N(T)&&((r=T.component)!=null&&r.subTree)&&S.push(...e(T.component.subTree)))}),S};export{o as P,e as f}; import{O as A,a6 as N}from"./index-bded577e.js";var o=(E=>(E[E.TEXT=1]="TEXT",E[E.CLASS=2]="CLASS",E[E.STYLE=4]="STYLE",E[E.PROPS=8]="PROPS",E[E.FULL_PROPS=16]="FULL_PROPS",E[E.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",E[E.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",E[E.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",E[E.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",E[E.NEED_PATCH=512]="NEED_PATCH",E[E.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",E[E.HOISTED=-1]="HOISTED",E[E.BAIL=-2]="BAIL",E))(o||{});const e=E=>{const _=A(E)?E:[E],S=[];return _.forEach(T=>{var r;A(T)?S.push(...e(T)):N(T)&&A(T.children)?S.push(...e(T.children)):(S.push(T),N(T)&&((r=T.component)!=null&&r.subTree)&&S.push(...e(T.component.subTree)))}),S};export{o as P,e as f};
+7 -4
View File
@@ -3,10 +3,13 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<link rel="icon" href="/logo_small.png"> <link rel="icon" href="/logo_small.png">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<title>FileCodeBox</title> <meta name="description" content="{{description}}">
<script type="module" crossorigin src="/assets/index-86483aed.js"></script> <meta name="keywords" content="{{keywords}}" />
<link rel="stylesheet" href="/assets/index-7bc26ac6.css"> <meta name="generator" content="FileCodeBox2.0" />
<title>{{title}}</title>
<script type="module" crossorigin src="/assets/index-bded577e.js"></script>
<link rel="stylesheet" href="/assets/index-b9599089.css">
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>
+6 -3
View File
@@ -2,9 +2,12 @@
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<link rel="icon" href="/logo_small.png"> <link rel="icon" href="/assets/logo_small.png">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<title>FileCodeBox</title> <meta name="description" content="{{description}}">
<meta name="keywords" content="{{keywords}}" />
<meta name="generator" content="FileCodeBox2.0" />
<title>{{title}}</title>
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

+3 -1
View File
@@ -1,7 +1,7 @@
<template> <template>
<el-container style="height: 100vh;width: 100vw;position: relative;user-select: none"> <el-container style="height: 100vh;width: 100vw;position: relative;user-select: none">
<el-header> <el-header>
<el-menu mode="horizontal" router default-active="/admin"> <el-menu mode="horizontal" router :default-active="route.path">
<el-menu-item v-for="menu in menus" :index="menu.path" :key="menu.path">{{menu.name}}</el-menu-item> <el-menu-item v-for="menu in menus" :index="menu.path" :key="menu.path">{{menu.name}}</el-menu-item>
</el-menu> </el-menu>
</el-header> </el-header>
@@ -14,6 +14,8 @@
import { useDark } from '@vueuse/core'; import { useDark } from '@vueuse/core';
import { ref } from "vue"; import { ref } from "vue";
const isDark = useDark() const isDark = useDark()
import { useRoute } from 'vue-router';
const route = useRoute();
const menus = ref([ const menus = ref([
{ {
name: '文件管理', name: '文件管理',
+2 -1
View File
@@ -1,6 +1,6 @@
<template> <template>
<main> <main>
<el-table stripe :data="tableData" style="width: 100%"> <el-table size="large" stripe :data="tableData" style="width: 100%">
<el-table-column prop="code" label="取件码" /> <el-table-column prop="code" label="取件码" />
<el-table-column prop="prefix" label="文件前缀" /> <el-table-column prop="prefix" label="文件前缀" />
<el-table-column prop="suffix" label="后缀" /> <el-table-column prop="suffix" label="后缀" />
@@ -11,6 +11,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="used_count" label="已用次数" /> <el-table-column prop="used_count" label="已用次数" />
<el-table-column prop="expired_count" label="可用次数" /> <el-table-column prop="expired_count" label="可用次数" />
<el-table-column prop="expired_at" label="到期时间" />
<el-table-column prop="file_path" label="文件路径" /> <el-table-column prop="file_path" label="文件路径" />
<el-table-column> <el-table-column>
<template #header> <template #header>
+71 -8
View File
@@ -1,12 +1,75 @@
<template> <template>
<main> <el-form>
<div> <el-form-item size="large" label="网站名称">
<el-row> <el-input v-model="config.name" />
<el-col>1</el-col> </el-form-item>
</el-row> <el-form-item size="large" label="网站描述">
</div> <el-input v-model="config.description" />
</main> </el-form-item>
<el-form-item size="large" label="关键词" style="letter-spacing: 0.3rem">
<el-input v-model="config.keywords" />
</el-form-item>
<el-form-item size="large" label="开启上传">
<el-select v-model="config.openUpload">
<el-option label="开启游客上传" value="1" />
<el-option label="关闭游客上传" value="0" />
</el-select>
</el-form-item>
<el-form-item size="large" label="文件大小">
<el-input v-model="config.uploadSize" />
<template #append>Bit</template>
<small>最大文件大小单位:bit),1mb=1 * 1024 * 1024</small>
</el-form-item>
<el-form-item size="large" label="上传限制">
<span style="display: flex;height: 38px">
<span style="margin-right: 0.4rem"></span>
<el-input v-model="config.uploadMinute" />
<span style="width: 200px;margin-left: 0.4rem">分钟</span>
</span>
<span style="display: flex;height: 38px">
<span style="width:3rem;margin-right: 0.4rem">上传</span>
<el-input v-model="config.uploadCount" />
<span style="width: 200px;margin-left: 0.4rem">个文件</span>
</span>
</el-form-item>
<el-form-item size="large" label="错误限制">
<span style="display: flex;height: 38px">
<span style="margin-right: 0.4rem"></span>
<el-input v-model="config.uploadMinute" />
<span style="width: 200px;margin-left: 0.4rem">分钟</span>
</span>
<span style="display: flex;height: 38px">
<span style="width:3rem;margin-right: 0.4rem">允许</span>
<el-input v-model="config.uploadCount" />
<span style="width: 200px;margin-left: 0.4rem">次错误</span>
</span>
</el-form-item>
<el-form-item>
<el-button type="primary" style="margin: auto">保存</el-button>
</el-form-item>
</el-form>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import {ref} from "vue";
</script> const config = ref({
name: '',
description: '',
keywords: '',
openUpload: '1',
uploadSize: '1',
uploadMinute: '1',
uploadCount: '1',
});
</script>
<style lang="scss">
.left-menu {
margin-bottom: 1rem;
cursor: pointer;
text-align: center;
font-weight: bold;
font-size: 1rem;
letter-spacing: 0.4rem;
}
</style>
+1 -1
View File
@@ -47,7 +47,7 @@ app.include_router(admin_api)
@app.get('/') @app.get('/')
async def index(): async def index():
return HTMLResponse(content=open('./fcb-fronted/dist/index.html', 'r', encoding='utf-8').read(), status_code=200) return HTMLResponse(content=open('./fcb-fronted/dist/index.html', 'r', encoding='utf-8').read().replace('{{title}}', 'FileCodeBox'), status_code=200)
if __name__ == '__main__': if __name__ == '__main__':