x
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<script setup lang="ts">
|
||||
import { reactive, ref } from 'vue'
|
||||
import { reactive, ref, onMounted } from 'vue'
|
||||
import { useInventory } from '@/modules/inventory/composables/useInventory'
|
||||
import { apiRequest } from '@/shared/api'
|
||||
import { addNotification, handleApiError } from '@/shared/notification'
|
||||
@@ -75,6 +75,7 @@ async function deleteCustomer(id: number) {
|
||||
handleApiError(e, '删除客户')
|
||||
}
|
||||
}
|
||||
onMounted(() => { loadCustomers() })
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script setup lang="ts">
|
||||
import { reactive, ref } from 'vue'
|
||||
import { reactive, ref, onMounted } from 'vue'
|
||||
import { useInventory } from '@/modules/inventory/composables/useInventory'
|
||||
import { apiRequest } from '@/shared/api'
|
||||
import { addNotification, handleApiError } from '@/shared/notification'
|
||||
@@ -81,6 +81,7 @@ async function deleteItem(id: number) {
|
||||
handleApiError(e, '删除物料库存')
|
||||
}
|
||||
}
|
||||
onMounted(() => { loadInventory() })
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script setup lang="ts">
|
||||
import { ref, computed } from 'vue'
|
||||
import { ref, computed, onMounted } from 'vue'
|
||||
import { useInventory } from '../composables/useInventory'
|
||||
import { apiRequest } from '@/shared/api'
|
||||
import { addNotification, handleApiError } from '@/shared/notification'
|
||||
@@ -169,6 +169,7 @@ function closeRestockModal() {
|
||||
showRestockModal.value = false
|
||||
restockItems.value = []
|
||||
}
|
||||
onMounted(() => { loadMaterials() })
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<script setup lang="ts">
|
||||
import { onMounted } from 'vue'
|
||||
import { useInventory } from '@/modules/inventory/composables/useInventory'
|
||||
|
||||
const { state, getMovementTypeLabel, getMovementBadgeClass, formatDateTime } = useInventory()
|
||||
const { state, loadMovements, getMovementTypeLabel, getMovementBadgeClass, formatDateTime } = useInventory()
|
||||
|
||||
const getMovementTagType = (movementType: string): 'success' | 'danger' | 'warning' | 'info' | '' => {
|
||||
const badgeClass = getMovementBadgeClass(movementType)
|
||||
@@ -10,6 +11,7 @@ const getMovementTagType = (movementType: string): 'success' | 'danger' | 'warni
|
||||
if (badgeClass === 'badge-warning') return 'warning'
|
||||
return 'info'
|
||||
}
|
||||
onMounted(() => { loadMovements() })
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script setup lang="ts">
|
||||
import { reactive, ref } from 'vue'
|
||||
import { reactive, ref, onMounted } from 'vue'
|
||||
import { useInventory } from '../composables/useInventory'
|
||||
import { apiRequest } from '@/shared/api'
|
||||
import { addNotification, handleApiError } from '@/shared/notification'
|
||||
@@ -118,6 +118,7 @@ function closeModal() {
|
||||
form.value = {}
|
||||
bomItems.value = []
|
||||
}
|
||||
onMounted(() => { loadFinishedProducts() })
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script setup lang="ts">
|
||||
import { reactive, ref } from 'vue'
|
||||
import { reactive, ref, onMounted } from 'vue'
|
||||
import { useInventory } from '@/modules/inventory/composables/useInventory'
|
||||
import { apiRequest } from '@/shared/api'
|
||||
import { addNotification, handleApiError } from '@/shared/notification'
|
||||
@@ -75,6 +75,7 @@ async function deleteSupplier(id: number) {
|
||||
handleApiError(e, '删除供应商')
|
||||
}
|
||||
}
|
||||
onMounted(() => { loadSuppliers() })
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
@@ -391,19 +391,6 @@ export function useInventory() {
|
||||
|
||||
const switchTab = (tab: string) => {
|
||||
state.activeTab = tab
|
||||
if (!state.backendDbReady) return
|
||||
switch (tab) {
|
||||
case 'dashboard': loadDashboard(); break
|
||||
case 'sales_orders': loadProductionOrders(); break
|
||||
case 'products': loadFinishedProducts(); break
|
||||
case 'materials': loadMaterials(); break
|
||||
case 'purchases': loadPurchaseOrders(); break
|
||||
case 'inventory': loadInventory(); break
|
||||
case 'customers': loadCustomers(); break
|
||||
case 'suppliers': loadSuppliers(); break
|
||||
case 'finance': loadFinance(); break
|
||||
case 'movements': loadMovements(); break
|
||||
}
|
||||
}
|
||||
|
||||
const closeModal = () => {
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{D as e,g as t,t as n,y as r}from"./index-BZsdwppN.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{D as e,g as t,t as n,y as r}from"./index-Ck8PP4ML.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
@@ -1 +1 @@
|
||||
.inventory-tab[data-v-cbf8e7cf]{padding:0}.table-header[data-v-cbf8e7cf]{margin-bottom:16px}.suppliers-tab[data-v-18d0ade0]{padding:0}.table-header[data-v-18d0ade0]{margin-bottom:16px}.customers-tab[data-v-63db53de]{padding:0}.table-header[data-v-63db53de]{margin-bottom:16px}.movements-tab[data-v-5efede77],.page-container[data-v-cbcdda91]{padding:0}.page-header[data-v-cbcdda91]{margin-bottom:var(--space-6)}.page-header h1[data-v-cbcdda91]{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary);margin:0}.page-header p[data-v-cbcdda91]{color:var(--text-tertiary);margin:var(--space-1) 0 0;font-size:var(--text-sm)}.inventory-layout[data-v-cbcdda91]{gap:var(--space-6);min-height:calc(100vh - 200px);display:flex}.inventory-sidebar-wrapper[data-v-cbcdda91]{flex-shrink:0;width:200px}.inventory-content[data-v-cbcdda91]{flex:1;min-width:0}.inventory-content-header[data-v-cbcdda91]{margin-bottom:var(--space-4)}.inventory-breadcrumb[data-v-cbcdda91]{font-size:var(--text-sm);color:var(--text-tertiary)}.inventory-breadcrumb .sep[data-v-cbcdda91]{margin:0 var(--space-2)}.inventory-breadcrumb .current[data-v-cbcdda91]{color:var(--text-primary);font-weight:var(--font-medium)}.inline-alert[data-v-cbcdda91]{padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.inline-alert-warning[data-v-cbcdda91]{background:var(--warning-bg);border:1px solid var(--warning)}.inline-alert-title[data-v-cbcdda91]{font-weight:var(--font-semibold);margin-bottom:var(--space-1)}.inline-alert-message[data-v-cbcdda91]{font-size:var(--text-sm)}.loading-state[data-v-cbcdda91]{align-items:center;gap:var(--space-3);padding:var(--space-8);color:var(--text-tertiary);justify-content:center;display:flex}.spinner[data-v-cbcdda91]{border:2px solid var(--border-default);border-top-color:var(--primary-500);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin-cbcdda91}@keyframes spin-cbcdda91{to{transform:rotate(360deg)}}.inventory-sidebar-wrapper[data-v-cbcdda91] .el-menu{background:0 0;border-right:none}.inventory-sidebar-wrapper[data-v-cbcdda91] .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-cbcdda91] .el-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-cbcdda91] .el-menu-item.is-active{background:var(--primary-50);color:var(--primary-600);font-weight:var(--font-medium)}.inventory-sidebar-wrapper[data-v-cbcdda91] .el-menu-item:hover{background:var(--bg-tertiary)}
|
||||
.inventory-tab[data-v-ac629843]{padding:0}.table-header[data-v-ac629843]{margin-bottom:16px}.suppliers-tab[data-v-9c9827fc]{padding:0}.table-header[data-v-9c9827fc]{margin-bottom:16px}.customers-tab[data-v-f6d9461f]{padding:0}.table-header[data-v-f6d9461f]{margin-bottom:16px}.movements-tab[data-v-d9f61c89],.page-container[data-v-cbcdda91]{padding:0}.page-header[data-v-cbcdda91]{margin-bottom:var(--space-6)}.page-header h1[data-v-cbcdda91]{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary);margin:0}.page-header p[data-v-cbcdda91]{color:var(--text-tertiary);margin:var(--space-1) 0 0;font-size:var(--text-sm)}.inventory-layout[data-v-cbcdda91]{gap:var(--space-6);min-height:calc(100vh - 200px);display:flex}.inventory-sidebar-wrapper[data-v-cbcdda91]{flex-shrink:0;width:200px}.inventory-content[data-v-cbcdda91]{flex:1;min-width:0}.inventory-content-header[data-v-cbcdda91]{margin-bottom:var(--space-4)}.inventory-breadcrumb[data-v-cbcdda91]{font-size:var(--text-sm);color:var(--text-tertiary)}.inventory-breadcrumb .sep[data-v-cbcdda91]{margin:0 var(--space-2)}.inventory-breadcrumb .current[data-v-cbcdda91]{color:var(--text-primary);font-weight:var(--font-medium)}.inline-alert[data-v-cbcdda91]{padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.inline-alert-warning[data-v-cbcdda91]{background:var(--warning-bg);border:1px solid var(--warning)}.inline-alert-title[data-v-cbcdda91]{font-weight:var(--font-semibold);margin-bottom:var(--space-1)}.inline-alert-message[data-v-cbcdda91]{font-size:var(--text-sm)}.loading-state[data-v-cbcdda91]{align-items:center;gap:var(--space-3);padding:var(--space-8);color:var(--text-tertiary);justify-content:center;display:flex}.spinner[data-v-cbcdda91]{border:2px solid var(--border-default);border-top-color:var(--primary-500);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin-cbcdda91}@keyframes spin-cbcdda91{to{transform:rotate(360deg)}}.inventory-sidebar-wrapper[data-v-cbcdda91] .el-menu{background:0 0;border-right:none}.inventory-sidebar-wrapper[data-v-cbcdda91] .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-cbcdda91] .el-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-cbcdda91] .el-menu-item.is-active{background:var(--primary-50);color:var(--primary-600);font-weight:var(--font-medium)}.inventory-sidebar-wrapper[data-v-cbcdda91] .el-menu-item:hover{background:var(--bg-tertiary)}
|
||||
@@ -1 +1 @@
|
||||
import{C as e,D as t,N as n,P as r,a as i,f as a,g as o,l as s,n as c,o as l,p as u,t as d,v as f,y as p,z as m}from"./index-BZsdwppN.js";var h={class:`login-container`},g={class:`login-card`},_={class:`form-group`},v={class:`form-group`},y={key:0,class:`form-error`},b=[`disabled`],x=d(e({__name:`LoginView`,setup(e){let d=s(),x=r({username:``,password:``,error:``,loading:!1}),S=async()=>{x.error=``,x.loading=!0;try{let e=await l(`/api/auth/login/json`,{method:`POST`,body:JSON.stringify({username:x.username,password:x.password})});i(e.access_token,e.user),c(`登录成功`,`success`),d.push(`/`)}catch(e){x.error=e.message||`登录失败`}finally{x.loading=!1}};return(e,r)=>(t(),p(`div`,h,[o(`div`,g,[r[4]||=o(`div`,{class:`login-header`},[o(`div`,{class:`login-logo`},`G`),o(`h1`,{class:`login-title`},`Gemold`),o(`p`,{class:`login-subtitle`},`模具制造管理系统`)],-1),o(`form`,{onSubmit:u(S,[`prevent`])},[o(`div`,_,[r[2]||=o(`label`,{class:`form-label`},`用户名`,-1),n(o(`input`,{"onUpdate:modelValue":r[0]||=e=>x.username=e,type:`text`,class:`form-input`,placeholder:`请输入用户名`,required:``},null,512),[[a,x.username]])]),o(`div`,v,[r[3]||=o(`label`,{class:`form-label`},`密码`,-1),n(o(`input`,{"onUpdate:modelValue":r[1]||=e=>x.password=e,type:`password`,class:`form-input`,placeholder:`请输入密码`,required:``},null,512),[[a,x.password]])]),x.error?(t(),p(`div`,y,m(x.error),1)):f(``,!0),o(`button`,{type:`submit`,class:`btn btn-primary w-full mt-4`,disabled:x.loading},m(x.loading?`登录中...`:`登录`),9,b)],32)])]))}}),[[`__scopeId`,`data-v-01da5b35`]]);export{x as default};
|
||||
import{C as e,D as t,N as n,P as r,a as i,f as a,g as o,l as s,n as c,o as l,p as u,t as d,v as f,y as p,z as m}from"./index-Ck8PP4ML.js";var h={class:`login-container`},g={class:`login-card`},_={class:`form-group`},v={class:`form-group`},y={key:0,class:`form-error`},b=[`disabled`],x=d(e({__name:`LoginView`,setup(e){let d=s(),x=r({username:``,password:``,error:``,loading:!1}),S=async()=>{x.error=``,x.loading=!0;try{let e=await l(`/api/auth/login/json`,{method:`POST`,body:JSON.stringify({username:x.username,password:x.password})});i(e.access_token,e.user),c(`登录成功`,`success`),d.push(`/`)}catch(e){x.error=e.message||`登录失败`}finally{x.loading=!1}};return(e,r)=>(t(),p(`div`,h,[o(`div`,g,[r[4]||=o(`div`,{class:`login-header`},[o(`div`,{class:`login-logo`},`G`),o(`h1`,{class:`login-title`},`Gemold`),o(`p`,{class:`login-subtitle`},`模具制造管理系统`)],-1),o(`form`,{onSubmit:u(S,[`prevent`])},[o(`div`,_,[r[2]||=o(`label`,{class:`form-label`},`用户名`,-1),n(o(`input`,{"onUpdate:modelValue":r[0]||=e=>x.username=e,type:`text`,class:`form-input`,placeholder:`请输入用户名`,required:``},null,512),[[a,x.username]])]),o(`div`,v,[r[3]||=o(`label`,{class:`form-label`},`密码`,-1),n(o(`input`,{"onUpdate:modelValue":r[1]||=e=>x.password=e,type:`password`,class:`form-input`,placeholder:`请输入密码`,required:``},null,512),[[a,x.password]])]),x.error?(t(),p(`div`,y,m(x.error),1)):f(``,!0),o(`button`,{type:`submit`,class:`btn btn-primary w-full mt-4`,disabled:x.loading},m(x.loading?`登录中...`:`登录`),9,b)],32)])]))}}),[[`__scopeId`,`data-v-01da5b35`]]);export{x as default};
|
||||
+1
-1
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{D as e,g as t,t as n,y as r}from"./index-BZsdwppN.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{D as e,g as t,t as n,y as r}from"./index-Ck8PP4ML.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
+1
-1
@@ -61,7 +61,7 @@
|
||||
} catch (e) {}
|
||||
})();
|
||||
</script>
|
||||
<script type="module" crossorigin src="/static/assets/index-BZsdwppN.js"></script>
|
||||
<script type="module" crossorigin src="/static/assets/index-Ck8PP4ML.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/static/assets/index-O0fr6NFx.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
Reference in New Issue
Block a user