diff --git a/inventory-web/src/views/dashboard/index.vue b/inventory-web/src/views/dashboard/index.vue
index 2aa9bad..bfa1d0b 100644
--- a/inventory-web/src/views/dashboard/index.vue
+++ b/inventory-web/src/views/dashboard/index.vue
@@ -4,7 +4,12 @@
@@ -30,6 +35,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -38,12 +67,70 @@ import { useRouter } from 'vue-router'
// 1. 引入 User Store
import { useUserStore } from '@/stores/user'
// 引入需要的图标
-import { Box, TrendCharts, ShoppingCart, Operation } from '@element-plus/icons-vue'
+import { Box, TrendCharts, ShoppingCart, Operation, Setting } from '@element-plus/icons-vue'
+import { getPrinterConfig, updatePrinterConfig } from '@/api/common/print'
+import { ElMessage } from 'element-plus'
const router = useRouter()
// 2. 实例化 store
const userStore = useUserStore()
+// 打印机配置相关
+const printerDialogVisible = ref(false)
+const printerForm = reactive({
+ label_ip: '',
+ label_port: '',
+ network_ip: '',
+ network_port: ''
+})
+const loading = ref(false)
+
+const openPrinterDialog = async () => {
+ try {
+ loading.value = true
+ const res = await getPrinterConfig()
+ if (res.code === 200) {
+ const config = res.data
+ printerForm.label_ip = config.label_printer?.ip || ''
+ printerForm.label_port = config.label_printer?.port || ''
+ printerForm.network_ip = config.network_printer?.ip || ''
+ printerForm.network_port = config.network_printer?.port || ''
+ }
+ } catch (e) {
+ console.error(e)
+ } finally {
+ loading.value = false
+ }
+ printerDialogVisible.value = true
+}
+
+const savePrinterConfig = async () => {
+ try {
+ loading.value = true
+ const config = {
+ label_printer: {
+ ip: printerForm.label_ip,
+ port: Number(printerForm.label_port)
+ },
+ network_printer: {
+ ip: printerForm.network_ip,
+ port: Number(printerForm.network_port)
+ }
+ }
+ const res = await updatePrinterConfig(config)
+ if (res.code === 200) {
+ ElMessage.success('保存成功')
+ printerDialogVisible.value = false
+ } else {
+ ElMessage.error(res.msg || '保存失败')
+ }
+ } catch (e) {
+ ElMessage.error('请求异常')
+ } finally {
+ loading.value = false
+ }
+}
+
// 统一跳转函数
const handleNav = (path: string) => {
router.push(path)
@@ -109,4 +196,4 @@ const handleNav = (path: string) => {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
-
\ No newline at end of file
+