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> <template>
<t-menu <t-menu
:default-active="state.activeTab" :default-expanded="Object.keys(openGroups)"
model-value=""
class="inventory-sidebar" class="inventory-sidebar"
@select="(key: string) => handleMenuClick(key)"
> >
<div v-for="group in menuGroups" :key="group.key" class="sidebar-group"> <div v-for="group in menuGroups" :key="group.key" class="sidebar-group">
<div class="sidebar-group-title" @click="toggleGroup(group.key)"> <div class="sidebar-group-title" @click="toggleGroup(group.key)">
<span>{{ group.title }}</span> <span>{{ group.title }}</span>
<t-icon><component :is="openGroups[group.key] ? 'ArrowDown' : 'ArrowRight'" /></t-icon> <span class="group-arrow">{{ openGroups[group.key] ? '▾' : '▸' }}</span>
</div> </div>
<template v-if="openGroups[group.key]"> <template v-if="openGroups[group.key]">
<t-menu-item <t-menu-item
v-for="item in group.items" v-for="item in group.items"
:key="group.key + '-' + item.key" :key="item.key"
:index="item.key" :value="item.key"
@click="handleMenuClick(item.key)"
> >
{{ item.label }} {{ item.label }}
</t-menu-item> </t-menu-item>
@@ -27,3 +28,11 @@ const { state, menuGroups, openGroups, toggleGroup, handleMenuClick } = useInven
</div> </div>
</t-menu> </t-menu>
</template> </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) {} } catch (e) {}
})(); })();
</script> </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"> <link rel="stylesheet" crossorigin href="/static/assets/index-9snwVMjk.css">
</head> </head>
<body> <body>