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 @@