diff --git a/src/backend/items/models.py b/src/backend/items/models.py
index 7d16e4a..21e760a 100644
--- a/src/backend/items/models.py
+++ b/src/backend/items/models.py
@@ -9,6 +9,9 @@ class Item(models.Model):
('in_use', '使用中'),
('maintenance', '维护中'),
('damaged', '损坏'),
+ ('lost', '丢失'),
+ ('abandoned', '已弃用'),
+ ('prohibited', '禁止借用'),
]
name = models.CharField(max_length=100, verbose_name='物品名称')
@@ -17,6 +20,7 @@ class Item(models.Model):
category = models.CharField(max_length=50, verbose_name='物品类别')
status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='available', verbose_name='物品状态')
location = models.CharField(max_length=100, blank=True, verbose_name='存放位置')
+ owner = models.CharField(max_length=100, blank=True, null=True, verbose_name='所有者')
purchase_date = models.DateField(null=True, blank=True, verbose_name='购买日期')
value = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True, verbose_name='价值')
created_at = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
diff --git a/src/backend/items/serializers.py b/src/backend/items/serializers.py
index e8a99ac..5e5bbd2 100644
--- a/src/backend/items/serializers.py
+++ b/src/backend/items/serializers.py
@@ -22,7 +22,7 @@ class ItemSerializer(serializers.ModelSerializer):
model = Item
fields = [
'id', 'name', 'description', 'serial_number', 'category', 'status',
- 'location', 'purchase_date', 'value', 'created_at', 'updated_at',
+ 'location', 'owner', 'purchase_date', 'value', 'created_at', 'updated_at',
'current_user'
]
diff --git a/src/fronted/src/components/AppHeader.vue b/src/fronted/src/components/AppHeader.vue
new file mode 100644
index 0000000..ba4e312
--- /dev/null
+++ b/src/fronted/src/components/AppHeader.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
diff --git a/src/fronted/src/main.js b/src/fronted/src/main.js
index a69cd6c..fe94c14 100644
--- a/src/fronted/src/main.js
+++ b/src/fronted/src/main.js
@@ -4,6 +4,23 @@ import router from './router'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
+import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
+
+const debounce = (fn, delay) => {
+ let timeoutId
+ return (...args) => {
+ clearTimeout(timeoutId)
+ timeoutId = setTimeout(() => fn.apply(null, args), delay)
+ }
+}
+
+const _ResizeObserver = window.ResizeObserver
+window.ResizeObserver = class ResizeObserver extends _ResizeObserver {
+ constructor(callback) {
+ callback = debounce(callback, 20)
+ super(callback)
+ }
+}
const app = createApp(App)
@@ -12,6 +29,8 @@ for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
app.component(key, component)
}
-app.use(ElementPlus)
+app.use(ElementPlus, {
+ locale: zhCn,
+})
app.use(router)
app.mount('#app')
diff --git a/src/fronted/src/views/Dashboard.vue b/src/fronted/src/views/Dashboard.vue
index 90edc8e..f28c775 100644
--- a/src/fronted/src/views/Dashboard.vue
+++ b/src/fronted/src/views/Dashboard.vue
@@ -1,30 +1,7 @@
-
-
-
+
-
+
@@ -77,6 +54,58 @@
+
+
+
+
+
+
+
+
{{ stats.damaged }}
+
损坏
+
+
+
+
+
+
+
+
+
+
+
+
{{ stats.lost }}
+
丢失
+
+
+
+
+
+
+
+
+
+
+
+
{{ stats.abandoned }}
+
已弃用
+
+
+
+
+
+
+
+
+
+
+
+
{{ stats.prohibited }}
+
禁止借用
+
+
+
+
@@ -127,16 +156,24 @@