This commit is contained in:
2026-06-10 13:44:05 +08:00
parent c39c0b547f
commit f4457a5372
18 changed files with 28 additions and 19 deletions
@@ -6,20 +6,21 @@ const { state, menuGroups, openGroups, toggleGroup, handleMenuClick } = useInven
<template>
<t-menu
:default-active="state.activeTab"
:default-expanded="Object.keys(openGroups)"
model-value=""
class="inventory-sidebar"
@select="(key: string) => handleMenuClick(key)"
>
<div v-for="group in menuGroups" :key="group.key" class="sidebar-group">
<div class="sidebar-group-title" @click="toggleGroup(group.key)">
<span>{{ group.title }}</span>
<t-icon><component :is="openGroups[group.key] ? 'ArrowDown' : 'ArrowRight'" /></t-icon>
<span class="group-arrow">{{ openGroups[group.key] ? '▾' : '▸' }}</span>
</div>
<template v-if="openGroups[group.key]">
<t-menu-item
v-for="item in group.items"
:key="group.key + '-' + item.key"
:index="item.key"
:key="item.key"
:value="item.key"
@click="handleMenuClick(item.key)"
>
{{ item.label }}
</t-menu-item>
@@ -27,3 +28,11 @@ const { state, menuGroups, openGroups, toggleGroup, handleMenuClick } = useInven
</div>
</t-menu>
</template>
<style scoped>
.group-arrow {
font-size: 10px;
color: var(--text-tertiary);
transition: transform 0.2s;
}
</style>
@@ -1 +1 @@
import{E as e,h as t,n,v as r}from"./index-CpL0XiXx.js";var i={};function a(n,i){return e(),r(`div`,null,[...i[0]||=[t(`div`,{class:`page-header`},[t(`h1`,{class:`page-title`},`设计体系`),t(`p`,{class:`page-subtitle`},`迁移中...`)],-1)]])}var o=n(i,[[`render`,a]]);export{o as default};
import{E as e,h as t,n,v as r}from"./index-DhEa-EvN.js";var i={};function a(n,i){return e(),r(`div`,null,[...i[0]||=[t(`div`,{class:`page-header`},[t(`h1`,{class:`page-title`},`设计体系`),t(`p`,{class:`page-subtitle`},`迁移中...`)],-1)]])}var o=n(i,[[`render`,a]]);export{o as default};
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
.inventory-tab[data-v-b02ca093]{padding:0}.table-header[data-v-b02ca093]{margin-bottom:16px}.suppliers-tab[data-v-46312435]{padding:0}.table-header[data-v-46312435]{margin-bottom:16px}.customers-tab[data-v-910d60b4]{padding:0}.table-header[data-v-910d60b4]{margin-bottom:16px}.movements-tab[data-v-79f8d5e3],.page-container[data-v-de14c186]{padding:0}.page-header[data-v-de14c186]{margin-bottom:var(--space-6)}.page-header h1[data-v-de14c186]{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary);margin:0}.page-header p[data-v-de14c186]{color:var(--text-tertiary);margin:var(--space-1) 0 0;font-size:var(--text-sm)}.inventory-layout[data-v-de14c186]{gap:var(--space-6);min-height:calc(100vh - 200px);display:flex}.inventory-sidebar-wrapper[data-v-de14c186]{flex-shrink:0;width:200px}.inventory-content[data-v-de14c186]{flex:1;min-width:0}.inventory-content-header[data-v-de14c186]{margin-bottom:var(--space-4)}.inventory-breadcrumb[data-v-de14c186]{font-size:var(--text-sm);color:var(--text-tertiary)}.inventory-breadcrumb .sep[data-v-de14c186]{margin:0 var(--space-2)}.inventory-breadcrumb .current[data-v-de14c186]{color:var(--text-primary);font-weight:var(--font-medium)}.inventory-sidebar-wrapper[data-v-de14c186] .t-menu{background:0 0;border-right:none}.inventory-sidebar-wrapper[data-v-de14c186] .sidebar-group-title{padding:var(--space-3) var(--space-4);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-tertiary);text-transform:uppercase;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.inventory-sidebar-wrapper[data-v-de14c186] .t-menu__item{height:36px;line-height:36px;font-size:var(--text-sm);margin:2px var(--space-2);border-radius:var(--radius-md);padding:0 var(--space-4)}.inventory-sidebar-wrapper[data-v-de14c186] .t-is-active{background:var(--primary-50);color:var(--primary-600);font-weight:var(--font-medium)}.inventory-sidebar-wrapper[data-v-de14c186] .t-menu__item:hover{background:var(--bg-tertiary)}
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.group-arrow[data-v-b5fce634]{color:var(--text-tertiary);font-size:10px;transition:transform .2s}.inventory-tab[data-v-b02ca093]{padding:0}.table-header[data-v-b02ca093]{margin-bottom:16px}.suppliers-tab[data-v-46312435]{padding:0}.table-header[data-v-46312435]{margin-bottom:16px}.customers-tab[data-v-910d60b4]{padding:0}.table-header[data-v-910d60b4]{margin-bottom:16px}.movements-tab[data-v-79f8d5e3],.page-container[data-v-de14c186]{padding:0}.page-header[data-v-de14c186]{margin-bottom:var(--space-6)}.page-header h1[data-v-de14c186]{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary);margin:0}.page-header p[data-v-de14c186]{color:var(--text-tertiary);margin:var(--space-1) 0 0;font-size:var(--text-sm)}.inventory-layout[data-v-de14c186]{gap:var(--space-6);min-height:calc(100vh - 200px);display:flex}.inventory-sidebar-wrapper[data-v-de14c186]{flex-shrink:0;width:200px}.inventory-content[data-v-de14c186]{flex:1;min-width:0}.inventory-content-header[data-v-de14c186]{margin-bottom:var(--space-4)}.inventory-breadcrumb[data-v-de14c186]{font-size:var(--text-sm);color:var(--text-tertiary)}.inventory-breadcrumb .sep[data-v-de14c186]{margin:0 var(--space-2)}.inventory-breadcrumb .current[data-v-de14c186]{color:var(--text-primary);font-weight:var(--font-medium)}.inventory-sidebar-wrapper[data-v-de14c186] .t-menu{background:0 0;border-right:none}.inventory-sidebar-wrapper[data-v-de14c186] .sidebar-group-title{padding:var(--space-3) var(--space-4);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-tertiary);text-transform:uppercase;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.inventory-sidebar-wrapper[data-v-de14c186] .t-menu__item{height:36px;line-height:36px;font-size:var(--text-sm);margin:2px var(--space-2);border-radius:var(--radius-md);padding:0 var(--space-4)}.inventory-sidebar-wrapper[data-v-de14c186] .t-is-active{background:var(--primary-50);color:var(--primary-600);font-weight:var(--font-medium)}.inventory-sidebar-wrapper[data-v-de14c186] .t-menu__item:hover{background:var(--bg-tertiary)}
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
import{A as e,E as t,L as n,M as r,O as i,S as a,_ as o,b as s,g as c,h as l,n as u,o as d,r as f,s as p,u as m,v as h,x as g}from"./index-CpL0XiXx.js";var _={class:`login-container`},v={class:`login-card`},y=u(a({__name:`LoginView`,setup(a){let u=m(),y=r({username:``,password:``,error:``,loading:!1}),b=async()=>{y.error=``,y.loading=!0;try{let e=await p(`/api/auth/login/json`,{method:`POST`,body:JSON.stringify({username:y.username,password:y.password})});d(e.access_token,e.user),f(`登录成功`,`success`),u.push(`/`)}catch(e){y.error=e.message||`登录失败`}finally{y.loading=!1}};return(r,a)=>{let u=i(`t-input`),d=i(`t-form-item`),f=i(`t-alert`),p=i(`t-button`),m=i(`t-form`);return t(),h(`div`,_,[l(`div`,v,[a[2]||=l(`div`,{class:`login-header`},[l(`div`,{class:`login-logo`},`G`),l(`h1`,{class:`login-title`},`Gemold`),l(`p`,{class:`login-subtitle`},`模具制造管理系统`)],-1),g(m,{onSubmit:b},{default:e(()=>[g(d,{label:`用户名`},{default:e(()=>[g(u,{modelValue:y.username,"onUpdate:modelValue":a[0]||=e=>y.username=e,placeholder:`请输入用户名`,clearable:``},null,8,[`modelValue`])]),_:1}),g(d,{label:`密码`},{default:e(()=>[g(u,{modelValue:y.password,"onUpdate:modelValue":a[1]||=e=>y.password=e,type:`password`,placeholder:`请输入密码`,clearable:``},null,8,[`modelValue`])]),_:1}),y.error?(t(),c(f,{key:0,theme:`error`,message:y.error,style:{"margin-bottom":`16px`}},null,8,[`message`])):o(``,!0),g(p,{theme:`primary`,block:``,type:`submit`,loading:y.loading},{default:e(()=>[s(n(y.loading?`登录中...`:`登录`),1)]),_:1},8,[`loading`])]),_:1})])])}}}),[[`__scopeId`,`data-v-c91bfbf2`]]);export{y as default};
+1
View File
@@ -0,0 +1 @@
import{E as e,I as t,O as n,S as r,_ as i,b as a,g as o,h as s,j as c,k as l,n as u,o as d,r as f,s as p,u as m,v as h,x as g}from"./index-DhEa-EvN.js";var _={class:`login-container`},v={class:`login-card`},y=u(r({__name:`LoginView`,setup(r){let u=m(),y=c({username:``,password:``,error:``,loading:!1}),b=async()=>{y.error=``,y.loading=!0;try{let e=await p(`/api/auth/login/json`,{method:`POST`,body:JSON.stringify({username:y.username,password:y.password})});d(e.access_token,e.user),f(`登录成功`,`success`),u.push(`/`)}catch(e){y.error=e.message||`登录失败`}finally{y.loading=!1}};return(r,c)=>{let u=n(`t-input`),d=n(`t-form-item`),f=n(`t-alert`),p=n(`t-button`),m=n(`t-form`);return e(),h(`div`,_,[s(`div`,v,[c[2]||=s(`div`,{class:`login-header`},[s(`div`,{class:`login-logo`},`G`),s(`h1`,{class:`login-title`},`Gemold`),s(`p`,{class:`login-subtitle`},`模具制造管理系统`)],-1),g(m,{onSubmit:b},{default:l(()=>[g(d,{label:`用户名`},{default:l(()=>[g(u,{modelValue:y.username,"onUpdate:modelValue":c[0]||=e=>y.username=e,placeholder:`请输入用户名`,clearable:``},null,8,[`modelValue`])]),_:1}),g(d,{label:`密码`},{default:l(()=>[g(u,{modelValue:y.password,"onUpdate:modelValue":c[1]||=e=>y.password=e,type:`password`,placeholder:`请输入密码`,clearable:``},null,8,[`modelValue`])]),_:1}),y.error?(e(),o(f,{key:0,theme:`error`,message:y.error,style:{"margin-bottom":`16px`}},null,8,[`message`])):i(``,!0),g(p,{theme:`primary`,block:``,type:`submit`,loading:y.loading},{default:l(()=>[a(t(y.loading?`登录中...`:`登录`),1)]),_:1},8,[`loading`])]),_:1})])])}}}),[[`__scopeId`,`data-v-c91bfbf2`]]);export{y as default};
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{E as e,h as t,n,v as r}from"./index-CpL0XiXx.js";var i={};function a(n,i){return e(),r(`div`,null,[...i[0]||=[t(`div`,{class:`page-header`},[t(`h1`,{class:`page-title`},`灰度发布与回滚`),t(`p`,{class:`page-subtitle`},`迁移中...`)],-1)]])}var o=n(i,[[`render`,a]]);export{o as default};
import{E as e,h as t,n,v as r}from"./index-DhEa-EvN.js";var i={};function a(n,i){return e(),r(`div`,null,[...i[0]||=[t(`div`,{class:`page-header`},[t(`h1`,{class:`page-title`},`灰度发布与回滚`),t(`p`,{class:`page-subtitle`},`迁移中...`)],-1)]])}var o=n(i,[[`render`,a]]);export{o 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
+1 -1
View File
@@ -61,7 +61,7 @@
} catch (e) {}
})();
</script>
<script type="module" crossorigin src="/static/assets/index-CpL0XiXx.js"></script>
<script type="module" crossorigin src="/static/assets/index-DhEa-EvN.js"></script>
<link rel="stylesheet" crossorigin href="/static/assets/index-9snwVMjk.css">
</head>
<body>