From df9985f2cb6e27e90ab8207660fd38b8e35a87e0 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 16 一月 2026 16:44:17 +0800
Subject: [PATCH] 浪潮对接单点登录:修改打包config.json文件

---
 /dev/null                           |  307 -------------------------
 multiple/assets/favicon/favicon.ico |    0 
 multiple/config.json                |  410 ---------------------------------
 multiple/assets/logo/logo.png       |    0 
 4 files changed, 5 insertions(+), 712 deletions(-)

diff --git a/multiple/assets/favicon/AYNMico.ico b/multiple/assets/favicon/AYNMico.ico
deleted file mode 100644
index 42f5b4a..0000000
--- a/multiple/assets/favicon/AYNMico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/BDSMico.ico b/multiple/assets/favicon/BDSMico.ico
deleted file mode 100644
index 890782c..0000000
--- a/multiple/assets/favicon/BDSMico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/BHMY.ico b/multiple/assets/favicon/BHMY.ico
deleted file mode 100644
index 868632b..0000000
--- a/multiple/assets/favicon/BHMY.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/CJNYico.ico b/multiple/assets/favicon/CJNYico.ico
deleted file mode 100644
index 5ad6d83..0000000
--- a/multiple/assets/favicon/CJNYico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/CMNYico.ico b/multiple/assets/favicon/CMNYico.ico
deleted file mode 100644
index 4536de7..0000000
--- a/multiple/assets/favicon/CMNYico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/DHDCico.ico b/multiple/assets/favicon/DHDCico.ico
deleted file mode 100644
index b4c4363..0000000
--- a/multiple/assets/favicon/DHDCico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/DHHBico.ico b/multiple/assets/favicon/DHHBico.ico
deleted file mode 100644
index 4bfd006..0000000
--- a/multiple/assets/favicon/DHHBico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/DZYSico.ico b/multiple/assets/favicon/DZYSico.ico
deleted file mode 100644
index abbfb0a..0000000
--- a/multiple/assets/favicon/DZYSico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/HCKXico.ico b/multiple/assets/favicon/HCKXico.ico
deleted file mode 100644
index 22f62da..0000000
--- a/multiple/assets/favicon/HCKXico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/HCMYico.ico b/multiple/assets/favicon/HCMYico.ico
deleted file mode 100644
index d7ed334..0000000
--- a/multiple/assets/favicon/HCMYico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/HGJJico.ico b/multiple/assets/favicon/HGJJico.ico
deleted file mode 100644
index 19b583b..0000000
--- a/multiple/assets/favicon/HGJJico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/HHKJIco.ico b/multiple/assets/favicon/HHKJIco.ico
deleted file mode 100644
index 2554cbf..0000000
--- a/multiple/assets/favicon/HHKJIco.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/HSMYico.ico b/multiple/assets/favicon/HSMYico.ico
deleted file mode 100644
index d43a485..0000000
--- a/multiple/assets/favicon/HSMYico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/HSXico.ico b/multiple/assets/favicon/HSXico.ico
deleted file mode 100644
index 500081c..0000000
--- a/multiple/assets/favicon/HSXico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/HXGYico.ico b/multiple/assets/favicon/HXGYico.ico
deleted file mode 100644
index 6182687..0000000
--- a/multiple/assets/favicon/HXGYico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/HXSJico.ico b/multiple/assets/favicon/HXSJico.ico
deleted file mode 100644
index 004fef6..0000000
--- a/multiple/assets/favicon/HXSJico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/HYSNico.ico b/multiple/assets/favicon/HYSNico.ico
deleted file mode 100644
index 70148cc..0000000
--- a/multiple/assets/favicon/HYSNico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/JLMYico.ico b/multiple/assets/favicon/JLMYico.ico
deleted file mode 100644
index c41fc33..0000000
--- a/multiple/assets/favicon/JLMYico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/JLSNico.ico b/multiple/assets/favicon/JLSNico.ico
deleted file mode 100644
index ea7aed7..0000000
--- a/multiple/assets/favicon/JLSNico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/JMSLico.ico b/multiple/assets/favicon/JMSLico.ico
deleted file mode 100644
index 2b049ed..0000000
--- a/multiple/assets/favicon/JMSLico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/JSMYico.ico b/multiple/assets/favicon/JSMYico.ico
deleted file mode 100644
index 81352d8..0000000
--- a/multiple/assets/favicon/JSMYico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/JSYNYico.ico b/multiple/assets/favicon/JSYNYico.ico
deleted file mode 100644
index 0d831be..0000000
--- a/multiple/assets/favicon/JSYNYico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/JYHJico.ico b/multiple/assets/favicon/JYHJico.ico
deleted file mode 100644
index 47dbc30..0000000
--- a/multiple/assets/favicon/JYHJico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/JZYJico.ico b/multiple/assets/favicon/JZYJico.ico
deleted file mode 100644
index f5a7820..0000000
--- a/multiple/assets/favicon/JZYJico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/LQMico.ico b/multiple/assets/favicon/LQMico.ico
deleted file mode 100644
index f59c6a9..0000000
--- a/multiple/assets/favicon/LQMico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/MKZSico.ico b/multiple/assets/favicon/MKZSico.ico
deleted file mode 100644
index 559a417..0000000
--- a/multiple/assets/favicon/MKZSico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/MXSCIco.ico b/multiple/assets/favicon/MXSCIco.ico
deleted file mode 100644
index 2214848..0000000
--- a/multiple/assets/favicon/MXSCIco.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/NYDLico.ico b/multiple/assets/favicon/NYDLico.ico
deleted file mode 100644
index 73c9f4a..0000000
--- a/multiple/assets/favicon/NYDLico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/PHMKico.ico b/multiple/assets/favicon/PHMKico.ico
deleted file mode 100644
index dd5b404..0000000
--- a/multiple/assets/favicon/PHMKico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/QLMCico.ico b/multiple/assets/favicon/QLMCico.ico
deleted file mode 100644
index 8a51d67..0000000
--- a/multiple/assets/favicon/QLMCico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/RTSWico.ico b/multiple/assets/favicon/RTSWico.ico
deleted file mode 100644
index 585d1be..0000000
--- a/multiple/assets/favicon/RTSWico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/RZNY.ico b/multiple/assets/favicon/RZNY.ico
deleted file mode 100644
index c2f4ba5..0000000
--- a/multiple/assets/favicon/RZNY.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/TJKHico.ico b/multiple/assets/favicon/TJKHico.ico
deleted file mode 100644
index 550db27..0000000
--- a/multiple/assets/favicon/TJKHico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/TJXM.ico b/multiple/assets/favicon/TJXM.ico
deleted file mode 100644
index dcc4fa5..0000000
--- a/multiple/assets/favicon/TJXM.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/TYMKico.ico b/multiple/assets/favicon/TYMKico.ico
deleted file mode 100644
index 0fbc2d1..0000000
--- a/multiple/assets/favicon/TYMKico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/WDSYico.ico b/multiple/assets/favicon/WDSYico.ico
deleted file mode 100644
index bfad99c..0000000
--- a/multiple/assets/favicon/WDSYico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/XYHBico.ico b/multiple/assets/favicon/XYHBico.ico
deleted file mode 100644
index 3bee1fc..0000000
--- a/multiple/assets/favicon/XYHBico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/ZDXMico.ico b/multiple/assets/favicon/ZDXMico.ico
deleted file mode 100644
index 0fb0a1d..0000000
--- a/multiple/assets/favicon/ZDXMico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/ZQHXico.ico b/multiple/assets/favicon/ZQHXico.ico
deleted file mode 100644
index 748238e..0000000
--- a/multiple/assets/favicon/ZQHXico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/ZYRQico.ico b/multiple/assets/favicon/ZYRQico.ico
deleted file mode 100644
index 8be95d0..0000000
--- a/multiple/assets/favicon/ZYRQico.ico
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/favicon/favicon.ico b/multiple/assets/favicon/favicon.ico
index 0fb0a1d..e263760 100644
--- a/multiple/assets/favicon/favicon.ico
+++ b/multiple/assets/favicon/favicon.ico
Binary files differ
diff --git a/multiple/assets/logo/AYNMLogo.png b/multiple/assets/logo/AYNMLogo.png
deleted file mode 100644
index 7f64b20..0000000
--- a/multiple/assets/logo/AYNMLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/BDSMLogo.png b/multiple/assets/logo/BDSMLogo.png
deleted file mode 100644
index 07d0fe9..0000000
--- a/multiple/assets/logo/BDSMLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/BHMYLogo.png b/multiple/assets/logo/BHMYLogo.png
deleted file mode 100644
index f0e779c..0000000
--- a/multiple/assets/logo/BHMYLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/CJNYLogo.png b/multiple/assets/logo/CJNYLogo.png
deleted file mode 100644
index e4e9d73..0000000
--- a/multiple/assets/logo/CJNYLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/CMNYLogo.png b/multiple/assets/logo/CMNYLogo.png
deleted file mode 100644
index 202664a..0000000
--- a/multiple/assets/logo/CMNYLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/DHDCLogo.png b/multiple/assets/logo/DHDCLogo.png
deleted file mode 100644
index 139bdd1..0000000
--- a/multiple/assets/logo/DHDCLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/DHHBLogo.png b/multiple/assets/logo/DHHBLogo.png
deleted file mode 100644
index 0c6d832..0000000
--- a/multiple/assets/logo/DHHBLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/DZYSLogo.png b/multiple/assets/logo/DZYSLogo.png
deleted file mode 100644
index 53986b5..0000000
--- a/multiple/assets/logo/DZYSLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/HCKXLogo.png b/multiple/assets/logo/HCKXLogo.png
deleted file mode 100644
index e15f67f..0000000
--- a/multiple/assets/logo/HCKXLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/HCMYLogo.png b/multiple/assets/logo/HCMYLogo.png
deleted file mode 100644
index 5910ffd..0000000
--- a/multiple/assets/logo/HCMYLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/HGJJLogo.png b/multiple/assets/logo/HGJJLogo.png
deleted file mode 100644
index a1bc1f1..0000000
--- a/multiple/assets/logo/HGJJLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/HHKJLogo.png b/multiple/assets/logo/HHKJLogo.png
deleted file mode 100644
index 018abe6..0000000
--- a/multiple/assets/logo/HHKJLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/HSMYLogo.png b/multiple/assets/logo/HSMYLogo.png
deleted file mode 100644
index daec820..0000000
--- a/multiple/assets/logo/HSMYLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/HSXLogo.png b/multiple/assets/logo/HSXLogo.png
deleted file mode 100644
index c4150c4..0000000
--- a/multiple/assets/logo/HSXLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/HXGYLogo.png b/multiple/assets/logo/HXGYLogo.png
deleted file mode 100644
index d21365d..0000000
--- a/multiple/assets/logo/HXGYLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/HXSJLogo.png b/multiple/assets/logo/HXSJLogo.png
deleted file mode 100644
index 920c1dc..0000000
--- a/multiple/assets/logo/HXSJLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/HYSNLogo.png b/multiple/assets/logo/HYSNLogo.png
deleted file mode 100644
index 70148cc..0000000
--- a/multiple/assets/logo/HYSNLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/JLMYLogo.png b/multiple/assets/logo/JLMYLogo.png
deleted file mode 100644
index 4a09b97..0000000
--- a/multiple/assets/logo/JLMYLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/JLSNLogo.png b/multiple/assets/logo/JLSNLogo.png
deleted file mode 100644
index ff94cd7..0000000
--- a/multiple/assets/logo/JLSNLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/JMSLLogo.png b/multiple/assets/logo/JMSLLogo.png
deleted file mode 100644
index 8835d46..0000000
--- a/multiple/assets/logo/JMSLLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/JSMYLogo.png b/multiple/assets/logo/JSMYLogo.png
deleted file mode 100644
index 512ad75..0000000
--- a/multiple/assets/logo/JSMYLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/JSYNYLogo.png b/multiple/assets/logo/JSYNYLogo.png
deleted file mode 100644
index 6d8f65d..0000000
--- a/multiple/assets/logo/JSYNYLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/JYHJLogo.png b/multiple/assets/logo/JYHJLogo.png
deleted file mode 100644
index c121f92..0000000
--- a/multiple/assets/logo/JYHJLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/JZYJLogo.png b/multiple/assets/logo/JZYJLogo.png
deleted file mode 100644
index b50afc2..0000000
--- a/multiple/assets/logo/JZYJLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/LCLogo.png b/multiple/assets/logo/LCLogo.png
deleted file mode 100644
index d18f9fd..0000000
--- a/multiple/assets/logo/LCLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/LQMLogo.png b/multiple/assets/logo/LQMLogo.png
deleted file mode 100644
index 84ef782..0000000
--- a/multiple/assets/logo/LQMLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/MKZSLogo.png b/multiple/assets/logo/MKZSLogo.png
deleted file mode 100644
index a7079a5..0000000
--- a/multiple/assets/logo/MKZSLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/MXSCLogo.png b/multiple/assets/logo/MXSCLogo.png
deleted file mode 100644
index 1ece4b5..0000000
--- a/multiple/assets/logo/MXSCLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/NYDLLogo.png b/multiple/assets/logo/NYDLLogo.png
deleted file mode 100644
index 27738e4..0000000
--- a/multiple/assets/logo/NYDLLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/PHMKLogo.png b/multiple/assets/logo/PHMKLogo.png
deleted file mode 100644
index e179c2c..0000000
--- a/multiple/assets/logo/PHMKLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/QLMCLogo.png b/multiple/assets/logo/QLMCLogo.png
deleted file mode 100644
index f94d826..0000000
--- a/multiple/assets/logo/QLMCLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/RTSWLogo.png b/multiple/assets/logo/RTSWLogo.png
deleted file mode 100644
index e53803a..0000000
--- a/multiple/assets/logo/RTSWLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/RZNYLogo.png b/multiple/assets/logo/RZNYLogo.png
deleted file mode 100644
index 5296331..0000000
--- a/multiple/assets/logo/RZNYLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/TJKHLogo.png b/multiple/assets/logo/TJKHLogo.png
deleted file mode 100644
index f369979..0000000
--- a/multiple/assets/logo/TJKHLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/TJXMLogo.png b/multiple/assets/logo/TJXMLogo.png
deleted file mode 100644
index 0f260e6..0000000
--- a/multiple/assets/logo/TJXMLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/TYMKLogo.png b/multiple/assets/logo/TYMKLogo.png
deleted file mode 100644
index 1da706f..0000000
--- a/multiple/assets/logo/TYMKLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/WDSYLogo.png b/multiple/assets/logo/WDSYLogo.png
deleted file mode 100644
index 3bc9755..0000000
--- a/multiple/assets/logo/WDSYLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/XYHBLogo.png b/multiple/assets/logo/XYHBLogo.png
deleted file mode 100644
index b7989d8..0000000
--- a/multiple/assets/logo/XYHBLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/ZDXMLogo.png b/multiple/assets/logo/ZDXMLogo.png
deleted file mode 100644
index 072a936..0000000
--- a/multiple/assets/logo/ZDXMLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/ZGLTLogo.png b/multiple/assets/logo/ZGLTLogo.png
deleted file mode 100644
index a4a4587..0000000
--- a/multiple/assets/logo/ZGLTLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/ZQHXLogo.png b/multiple/assets/logo/ZQHXLogo.png
deleted file mode 100644
index 6924240..0000000
--- a/multiple/assets/logo/ZQHXLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/ZYRQLogo.png b/multiple/assets/logo/ZYRQLogo.png
deleted file mode 100644
index bc6fe5d..0000000
--- a/multiple/assets/logo/ZYRQLogo.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/logo/logo.png b/multiple/assets/logo/logo.png
index 072a936..438d54d 100644
--- a/multiple/assets/logo/logo.png
+++ b/multiple/assets/logo/logo.png
Binary files differ
diff --git "a/multiple/assets/logo/\345\215\227\351\200\232\344\272\221\344\273\216\345\267\245\344\270\232\344\272\222\350\201\224\347\275\221\346\234\211\351\231\220\345\205\254\345\217\270.png" "b/multiple/assets/logo/\345\215\227\351\200\232\344\272\221\344\273\216\345\267\245\344\270\232\344\272\222\350\201\224\347\275\221\346\234\211\351\231\220\345\205\254\345\217\270.png"
deleted file mode 100644
index d7ecf59..0000000
--- "a/multiple/assets/logo/\345\215\227\351\200\232\344\272\221\344\273\216\345\267\245\344\270\232\344\272\222\350\201\224\347\275\221\346\234\211\351\231\220\345\205\254\345\217\270.png"
+++ /dev/null
Binary files differ
diff --git "a/multiple/assets/logo/\346\226\260\347\274\206\357\274\210\346\261\237\350\213\217\357\274\211\346\225\260\345\255\227\347\247\221\346\212\200\346\234\211\351\231\220\345\205\254\345\217\270.png" "b/multiple/assets/logo/\346\226\260\347\274\206\357\274\210\346\261\237\350\213\217\357\274\211\346\225\260\345\255\227\347\247\221\346\212\200\346\234\211\351\231\220\345\205\254\345\217\270.png"
deleted file mode 100644
index 4481de2..0000000
--- "a/multiple/assets/logo/\346\226\260\347\274\206\357\274\210\346\261\237\350\213\217\357\274\211\346\225\260\345\255\227\347\247\221\346\212\200\346\234\211\351\231\220\345\205\254\345\217\270.png"
+++ /dev/null
Binary files differ
diff --git "a/multiple/assets/logo/\350\212\257\345\257\274\350\275\257\344\273\266\357\274\210\346\261\237\350\213\217\357\274\211\346\234\211\351\231\220\345\205\254\345\217\270.png" "b/multiple/assets/logo/\350\212\257\345\257\274\350\275\257\344\273\266\357\274\210\346\261\237\350\213\217\357\274\211\346\234\211\351\231\220\345\205\254\345\217\270.png"
deleted file mode 100644
index 5b49e96..0000000
--- "a/multiple/assets/logo/\350\212\257\345\257\274\350\275\257\344\273\266\357\274\210\346\261\237\350\213\217\357\274\211\346\234\211\351\231\220\345\205\254\345\217\270.png"
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/AYNMView.png b/multiple/assets/screen/AYNMView.png
deleted file mode 100644
index f1928d9..0000000
--- a/multiple/assets/screen/AYNMView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/BDSMView.png b/multiple/assets/screen/BDSMView.png
deleted file mode 100644
index 3822931..0000000
--- a/multiple/assets/screen/BDSMView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/DHDCView.png b/multiple/assets/screen/DHDCView.png
deleted file mode 100644
index 7d3e8af..0000000
--- a/multiple/assets/screen/DHDCView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/DHHBView.png b/multiple/assets/screen/DHHBView.png
deleted file mode 100644
index f1928d9..0000000
--- a/multiple/assets/screen/DHHBView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/DZYSView.png b/multiple/assets/screen/DZYSView.png
deleted file mode 100644
index 958c5cc..0000000
--- a/multiple/assets/screen/DZYSView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/HCKXView.png b/multiple/assets/screen/HCKXView.png
deleted file mode 100644
index e8574c8..0000000
--- a/multiple/assets/screen/HCKXView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/HCMYView.png b/multiple/assets/screen/HCMYView.png
deleted file mode 100644
index bf0a9dc..0000000
--- a/multiple/assets/screen/HCMYView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/HGJJView.png b/multiple/assets/screen/HGJJView.png
deleted file mode 100644
index 00575e8..0000000
--- a/multiple/assets/screen/HGJJView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/HHKJView.png b/multiple/assets/screen/HHKJView.png
deleted file mode 100644
index 9c39567..0000000
--- a/multiple/assets/screen/HHKJView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/HSMYView.png b/multiple/assets/screen/HSMYView.png
deleted file mode 100644
index 201c406..0000000
--- a/multiple/assets/screen/HSMYView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/HSXView.png b/multiple/assets/screen/HSXView.png
deleted file mode 100644
index f619ab0..0000000
--- a/multiple/assets/screen/HSXView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/HXGYView.png b/multiple/assets/screen/HXGYView.png
deleted file mode 100644
index a1094e8..0000000
--- a/multiple/assets/screen/HXGYView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/HXSJView.png b/multiple/assets/screen/HXSJView.png
deleted file mode 100644
index 02dde1c..0000000
--- a/multiple/assets/screen/HXSJView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/JLSNView.png b/multiple/assets/screen/JLSNView.png
deleted file mode 100644
index 663b5d5..0000000
--- a/multiple/assets/screen/JLSNView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/JMSLView.png b/multiple/assets/screen/JMSLView.png
deleted file mode 100644
index 65fcfd8..0000000
--- a/multiple/assets/screen/JMSLView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/JZYJView.png b/multiple/assets/screen/JZYJView.png
deleted file mode 100644
index f64d46b..0000000
--- a/multiple/assets/screen/JZYJView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/LQMView.png b/multiple/assets/screen/LQMView.png
deleted file mode 100644
index 8c0e23d..0000000
--- a/multiple/assets/screen/LQMView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/MKZSView.png b/multiple/assets/screen/MKZSView.png
deleted file mode 100644
index 9033a9a..0000000
--- a/multiple/assets/screen/MKZSView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/MXSCBack.png b/multiple/assets/screen/MXSCBack.png
deleted file mode 100644
index 0beafd5..0000000
--- a/multiple/assets/screen/MXSCBack.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/NYDLView.png b/multiple/assets/screen/NYDLView.png
deleted file mode 100644
index 02249e1..0000000
--- a/multiple/assets/screen/NYDLView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/PHMKView.png b/multiple/assets/screen/PHMKView.png
deleted file mode 100644
index 3fd67ee..0000000
--- a/multiple/assets/screen/PHMKView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/QLMCView.png b/multiple/assets/screen/QLMCView.png
deleted file mode 100644
index 814b628..0000000
--- a/multiple/assets/screen/QLMCView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/RTSWView.png b/multiple/assets/screen/RTSWView.png
deleted file mode 100644
index 02dde1c..0000000
--- a/multiple/assets/screen/RTSWView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/RZNYView.png b/multiple/assets/screen/RZNYView.png
deleted file mode 100644
index 4905096..0000000
--- a/multiple/assets/screen/RZNYView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/TJKHView.png b/multiple/assets/screen/TJKHView.png
deleted file mode 100644
index 958c5cc..0000000
--- a/multiple/assets/screen/TJKHView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/TJXMView.png b/multiple/assets/screen/TJXMView.png
deleted file mode 100644
index e56a8c7..0000000
--- a/multiple/assets/screen/TJXMView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/TYMKView.png b/multiple/assets/screen/TYMKView.png
deleted file mode 100644
index 3449ceb..0000000
--- a/multiple/assets/screen/TYMKView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/WDSYView.png b/multiple/assets/screen/WDSYView.png
deleted file mode 100644
index 19ec19d..0000000
--- a/multiple/assets/screen/WDSYView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/XYHBView.png b/multiple/assets/screen/XYHBView.png
deleted file mode 100644
index 5878cd5..0000000
--- a/multiple/assets/screen/XYHBView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/ZDXMView.png b/multiple/assets/screen/ZDXMView.png
deleted file mode 100644
index 6f6b11d..0000000
--- a/multiple/assets/screen/ZDXMView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/ZQHXView.png b/multiple/assets/screen/ZQHXView.png
deleted file mode 100644
index 1830213..0000000
--- a/multiple/assets/screen/ZQHXView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/assets/screen/ZYRQView.png b/multiple/assets/screen/ZYRQView.png
deleted file mode 100644
index 3487d39..0000000
--- a/multiple/assets/screen/ZYRQView.png
+++ /dev/null
Binary files differ
diff --git a/multiple/config.json b/multiple/config.json
index 9fb34b8..25b0034 100644
--- a/multiple/config.json
+++ b/multiple/config.json
@@ -7,415 +7,15 @@
     "logo": "logo/HYSNLogo.png",
     "favicon": "favicon/HYSNico.ico"
   },
-  "TEST": {
+  "prod": {
     "env": {
-      "VITE_APP_TITLE": "涓皬浼佷笟鏁板瓧鍖栬浆鍨嬩簩绾у椁愬寘",
-      "VITE_BASE_API": "http://114.132.189.42:9036",
-      "VITE_JAVA_API": "http://114.132.189.42:9037"
+      "VITE_APP_TITLE": "鑺-MES鍒堕�犳墽琛岀郴缁�",
+      "VITE_BASE_API": "http://10.136.12.71:8009",
+      "VITE_JAVA_API": "http://10.136.12.71:8009"
     },
     "screen": "screen/HYSNView.png",
-    "logo": "logo/ZGLTLogo.png",
+    "logo": "logo/logo.png",
     "favicon": "favicon/favicon.ico"
-  },
-  "LC": {
-    "env": {
-      "VITE_APP_TITLE": "涓皬浼佷笟鏁板瓧鍖栬浆鍨嬩簩绾у椁愬寘",
-      "VITE_BASE_API": "http://114.132.189.42:9036",
-      "VITE_JAVA_API": "http://114.132.189.42:9037"
-    },
-    "screen": "screen/HYSNView.png",
-    "logo": "logo/LCLogo.png",
-    "favicon": "favicon/favicon.ico"
-  },
-  "WDSY": {
-    "env": {
-      "VITE_APP_TITLE": "浼熷痉瀹炰笟淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:8068",
-      "VITE_JAVA_API": "http://114.132.189.42:8085"
-    },
-    "screen": "screen/WDSYView.png",
-    "logo": "logo/WDSYLogo.png",
-    "favicon": "favicon/WDSYico.ico"
-  },
-  "JZYJ": {
-    "env": {
-      "VITE_APP_TITLE": "鍩烘櫤娌逛簳淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:8078",
-      "VITE_JAVA_API": "http://114.132.189.42:8086"
-    },
-    "screen": "screen/JZYJView.png",
-    "logo": "logo/JZYJLogo.png",
-    "favicon": "favicon/JZYJico.ico"
-  },
-  "ZQHX": {
-    "env": {
-      "VITE_APP_TITLE": "涓己鎭掑叴淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:1234",
-      "VITE_JAVA_API": "http://114.132.189.42:8080"
-    },
-    "screen": "screen/ZQHXView.png",
-    "logo": "logo/ZQHXLogo.png",
-    "favicon": "favicon/ZQHXico.ico"
-  },
-  "XYHB": {
-    "env": {
-      "VITE_APP_TITLE": "瀹e惫鐜繚淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9052",
-      "VITE_JAVA_API": "http://114.132.189.42:9051"
-    },
-    "screen": "screen/XYHBView.png",
-    "logo": "logo/XYHBLogo.png",
-    "favicon": "favicon/XYHBico.ico"
-  },
-  "BHMY": {
-    "env": {
-      "VITE_APP_TITLE": "鍗氬畯鐓や笟淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9070",
-      "VITE_JAVA_API": "http://114.132.189.42:9069"
-    },
-    "screen": "screen/ZQHXView.png",
-    "logo": "logo/BHMYLogo.png",
-    "favicon": "favicon/BHMY.ico"
-  },
-  "HHKJ": {
-    "env": {
-      "VITE_APP_TITLE": "鎭掓櫀绉戞妧淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9046",
-      "VITE_JAVA_API": "http://114.132.189.42:9047"
-    },
-    "screen": "screen/HHKJView.png",
-    "logo": "logo/HHKJLogo.png",
-    "favicon": "favicon/HHKJIco.ico"
-  },
-  "RZNY": {
-    "env": {
-      "VITE_APP_TITLE": "閿愭嫨鑳芥簮淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9058",
-      "VITE_JAVA_API": "http://114.132.189.42:9057"
-    },
-    "screen": "screen/RZNYView.png",
-    "logo": "logo/RZNYLogo.png",
-    "favicon": "favicon/RZNY.ico"
-  },
-  "TJXM": {
-    "env": {
-      "VITE_APP_TITLE": "娉版睙娲楃叅淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9064",
-      "VITE_JAVA_API": "http://114.132.189.42:9063"
-    },
-    "screen": "screen/TJXMView.png",
-    "logo": "logo/TJXMLogo.png",
-    "favicon": "favicon/TJXM.ico"
-  },
-  "HYSN": {
-    "env": {
-      "VITE_APP_TITLE": "寮樹篃姘存偿淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9034",
-      "VITE_JAVA_API": "http://114.132.189.42:9035"
-    },
-    "screen": "screen/HYSNView.png",
-    "logo": "logo/HYSNLogo.png",
-    "favicon": "favicon/HYSNico.ico"
-  },
-  "JYHJ": {
-    "env": {
-      "VITE_APP_TITLE": "閲戦拱榛勯噾淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9030",
-      "VITE_JAVA_API": "http://114.132.189.42:9031"
-    },
-    "screen": "screen/HYSNView.png",
-    "logo": "logo/JYHJLogo.png",
-    "favicon": "favicon/JYHJico.ico"
-  },
-  "DHDC": {
-    "env": {
-      "VITE_APP_TITLE": "鏁︾厡榧庤瘹淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9032",
-      "VITE_JAVA_API": "http://114.132.189.42:9033"
-    },
-    "screen": "screen/DHDCView.png",
-    "logo": "logo/DHDCLogo.png",
-    "favicon": "favicon/DHDCico.ico"
-  },
-  "MXSC": {
-    "env": {
-      "VITE_APP_TITLE": "闂藉叴鐭虫潗淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9048",
-      "VITE_JAVA_API": "http://114.132.189.42:9049"
-    },
-    "screen": "screen/MXSCBack.png",
-    "logo": "logo/MXSCLogo.png",
-    "favicon": "favicon/MXSCIco.ico"
-  },
-  "CJNY": {
-    "env": {
-      "VITE_APP_TITLE": "鍒涘法鑳芥簮淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9038",
-      "VITE_JAVA_API": "http://114.132.189.42:9039"
-    },
-    "screen": "screen/MXSCBack.png",
-    "logo": "logo/CJNYLogo.png",
-    "favicon": "favicon/CJNYico.ico"
-  },
-  "JSMY": {
-    "env": {
-      "VITE_APP_TITLE": "閲戠煶鐓や笟淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9042",
-      "VITE_JAVA_API": "http://114.132.189.42:9043"
-    },
-    "screen": "screen/MXSCBack.png",
-    "logo": "logo/JSMYLogo.png",
-    "favicon": "favicon/JSMYico.ico"
-  },
-  "JSYNY": {
-    "env": {
-      "VITE_APP_TITLE": "閿︾洓婧愯兘婧愪俊鎭鐞嗙郴缁�",
-      "VITE_BASE_API": "http://114.132.189.42:9074",
-      "VITE_JAVA_API": "http://114.132.189.42:9073"
-    },
-    "screen": "screen/HYSNView.png",
-    "logo": "logo/JSYNYLogo.png",
-    "favicon": "favicon/JSYNYico.ico"
-  },
-  "CMNY": {
-    "env": {
-      "VITE_APP_TITLE": "鍒涢摥鑳芥簮淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9088",
-      "VITE_JAVA_API": "http://114.132.189.42:9087"
-    },
-    "screen": "screen/DHDCView.png",
-    "logo": "logo/CMNYLogo.png",
-    "favicon": "favicon/CMNYico.ico"
-  },
-  "HCKX": {
-    "env": {
-      "VITE_APP_TITLE": "娴峰窛寮�蹇冮鍝佷俊鎭鐞嗙郴缁�",
-      "VITE_BASE_API": "http://114.132.189.42:9090",
-      "VITE_JAVA_API": "http://114.132.189.42:9089"
-    },
-    "screen": "screen/HCKXView.png",
-    "logo": "logo/HCKXLogo.png",
-    "favicon": "favicon/HCKXico.ico"
-  },
-  "JLSN": {
-    "env": {
-      "VITE_APP_TITLE": "閿﹂緳姘存偿淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9094",
-      "VITE_JAVA_API": "http://114.132.189.42:9093"
-    },
-    "screen": "screen/JLSNView.png",
-    "logo": "logo/JLSNLogo.png",
-    "favicon": "favicon/JLSNico.ico"
-  },
-  "BDSM": {
-    "env": {
-      "VITE_APP_TITLE": "鍗氳揪鍟嗚锤淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9096",
-      "VITE_JAVA_API": "http://114.132.189.42:9095"
-    },
-    "screen": "screen/BDSMView.png",
-    "logo": "logo/BDSMLogo.png",
-    "favicon": "favicon/BDSMico.ico"
-  },
-  "HXGY": {
-    "env": {
-      "VITE_APP_TITLE": "姹囨槦閽欎笟淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9098",
-      "VITE_JAVA_API": "http://114.132.189.42:9097"
-    },
-    "screen": "screen/HXGYView.png",
-    "logo": "logo/HXGYLogo.png",
-    "favicon": "favicon/HXGYico.ico"
-  },
-  "ZDXM": {
-    "env": {
-      "VITE_APP_TITLE": "鏄痉鍨嬬叅淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9100",
-      "VITE_JAVA_API": "http://114.132.189.42:9096"
-    },
-    "screen": "screen/ZDXMView.png",
-    "logo": "logo/ZDXMLogo.png",
-    "favicon": "favicon/ZDXMico.ico"
-  },
-  "HSX": {
-    "env": {
-      "VITE_APP_TITLE": "婀熸按宄″啘涓氬彂灞曚俊鎭鐞嗙郴缁�",
-      "VITE_BASE_API": "http://114.132.189.42:9101",
-      "VITE_JAVA_API": "http://114.132.189.42:9098"
-    },
-    "screen": "screen/HSXView.png",
-    "logo": "logo/HSXLogo.png",
-    "favicon": "favicon/HSXico.ico"
-  },
-  "NYDL": {
-    "env": {
-      "VITE_APP_TITLE": "鍗楁磱鐢电紗浜ч摼閫氫俊鎭鐞嗙郴缁�",
-      "VITE_BASE_API": "http://114.132.189.42:9036",
-      "VITE_JAVA_API": "http://114.132.189.42:9037"
-    },
-    "screen": "screen/NYDLView.png",
-    "logo": "logo/NYDLLogo.png",
-    "favicon": "favicon/NYDLico.ico"
-  },
-  "HCMY": {
-    "env": {
-      "VITE_APP_TITLE": "娴╂垚鐓や笟淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9103",
-      "VITE_JAVA_API": "http://114.132.189.42:9094"
-    },
-    "screen": "screen/HCMYView.png",
-    "logo": "logo/HCMYLogo.png",
-    "favicon": "favicon/HCMYico.ico"
-  },
-  "HGJJ": {
-    "env": {
-      "VITE_APP_TITLE": "姹囧浗娲佸噣鍨嬬叅淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9107",
-      "VITE_JAVA_API": "http://114.132.189.42:9090"
-    },
-    "screen": "screen/HGJJView.png",
-    "logo": "logo/HGJJLogo.png",
-    "favicon": "favicon/HGJJico.ico"
-  },
-  "MKZS": {
-    "env": {
-      "VITE_APP_TITLE": "妯″嚡鍐嶇敓淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9111",
-      "VITE_JAVA_API": "http://114.132.189.42:9086"
-    },
-    "screen": "screen/MKZSView.png",
-    "logo": "logo/MKZSLogo.png",
-    "favicon": "favicon/MKZSico.ico"
-  },
-  "HSMY": {
-    "env": {
-      "VITE_APP_TITLE": "鍗庨『闀佷笟淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9115",
-      "VITE_JAVA_API": "http://114.132.189.42:9082"
-    },
-    "screen": "screen/HSMYView.png",
-    "logo": "logo/HSMYLogo.png",
-    "favicon": "favicon/HSMYico.ico"
-  },
-  "DHHB": {
-    "env": {
-      "VITE_APP_TITLE": "涓规捣鐜繚淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9117",
-      "VITE_JAVA_API": "http://114.132.189.42:9080"
-    },
-    "screen": "screen/DHHBView.png",
-    "logo": "logo/DHHBLogo.png",
-    "favicon": "favicon/DHHBico.ico"
-  },
-  "PHMK": {
-    "env": {
-      "VITE_APP_TITLE": "鏅鐓ょ熆淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9119",
-      "VITE_JAVA_API": "http://114.132.189.42:9078"
-    },
-    "screen": "screen/PHMKView.png",
-    "logo": "logo/PHMKLogo.png",
-    "favicon": "favicon/PHMKico.ico"
-  },
-  "TYMK": {
-    "env": {
-      "VITE_APP_TITLE": "閫氭簮鐓ょ熆淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9121",
-      "VITE_JAVA_API": "http://114.132.189.42:9076"
-    },
-    "screen": "screen/TYMKView.png",
-    "logo": "logo/TYMKLogo.png",
-    "favicon": "favicon/TYMKico.ico"
-  },
-  "LQM": {
-    "env": {
-      "VITE_APP_TITLE": "鑰佺惇楹﹂鍝佷俊鎭鐞嗙郴缁�",
-      "VITE_BASE_API": "http://114.132.189.42:9123",
-      "VITE_JAVA_API": "http://114.132.189.42:9074"
-    },
-    "screen": "screen/LQMView.png",
-    "logo": "logo/LQMLogo.png",
-    "favicon": "favicon/LQMico.ico"
-  },
-  "ZYRQ": {
-    "env": {
-      "VITE_APP_TITLE": "浼楁簮鐕冩皵淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9123",
-      "VITE_JAVA_API": "http://114.132.189.42:9031"
-    },
-    "screen": "screen/ZYRQView.png",
-    "logo": "logo/ZYRQLogo.png",
-    "favicon": "favicon/ZYRQico.ico"
-  },
-  "RTSW": {
-    "env": {
-      "VITE_APP_TITLE": "娑︽嘲鐢熺墿淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9066",
-      "VITE_JAVA_API": "http://114.132.189.42:9064"
-    },
-    "screen": "screen/RTSWView.png",
-    "logo": "logo/RTSWLogo.png",
-    "favicon": "favicon/RTSWico.ico"
-  },
-  "HXSJ": {
-    "env": {
-      "VITE_APP_TITLE": "鍗庣幒鐮傛祮淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9066",
-      "VITE_JAVA_API": "http://114.132.189.42:9062"
-    },
-    "screen": "screen/HXSJView.png",
-    "logo": "logo/HXSJLogo.png",
-    "favicon": "favicon/HXSJico.ico"
-  },
-  "QLMC": {
-    "env": {
-      "VITE_APP_TITLE": "绁佽繛鐗у満淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9066",
-      "VITE_JAVA_API": "http://114.132.189.42:9060"
-    },
-    "screen": "screen/QLMCView.png",
-    "logo": "logo/QLMCLogo.png",
-    "favicon": "favicon/QLMCico.ico"
-  },
-  "AYNM": {
-    "env": {
-      "VITE_APP_TITLE": "瀹変綉鍐滅墽淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9066",
-      "VITE_JAVA_API": "http://114.132.189.42:9058"
-    },
-    "screen": "screen/AYNMView.png",
-    "logo": "logo/AYNMLogo.png",
-    "favicon": "favicon/AYNMico.ico"
-  },
-  "JMSL": {
-    "env": {
-      "VITE_APP_TITLE": "閲戣寕濉戞枡鍖呰淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9066",
-      "VITE_JAVA_API": "http://114.132.189.42:9058"
-    },
-    "screen": "screen/JMSLView.png",
-    "logo": "logo/JMSLLogo.png",
-    "favicon": "favicon/JMSLico.ico"
-  },
-  "TJKH": {
-    "env": {
-      "VITE_APP_TITLE": "澶╂触鍑崕淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9066",
-      "VITE_JAVA_API": "http://114.132.189.42:9058"
-    },
-    "screen": "screen/TJKHView.png",
-    "logo": "logo/TJKHLogo.png",
-    "favicon": "favicon/TJKHico.ico"
-  },
-  "DZYS": {
-    "env": {
-      "VITE_APP_TITLE": "涓滄辰鍗板埛淇℃伅绠$悊绯荤粺",
-      "VITE_BASE_API": "http://114.132.189.42:9066",
-      "VITE_JAVA_API": "http://114.132.189.42:9046"
-    },
-    "screen": "screen/DZYSView.png",
-    "logo": "logo/DZYSLogo.png",
-    "favicon": "favicon/DZYSico.ico"
   },
   "screen": "/src/assets/images/login-background.png",
   "logo": "/src/assets/logo/logo.png",
diff --git a/src/views/qualityManagement/finalInspection/components/filesDia.vue b/src/views/qualityManagement/finalInspection/components/filesDia.vue
deleted file mode 100644
index 66392f3..0000000
--- a/src/views/qualityManagement/finalInspection/components/filesDia.vue
+++ /dev/null
@@ -1,190 +0,0 @@
-<template>
-  <div>
-    <el-dialog
-        v-model="dialogFormVisible"
-        title="涓婁紶闄勪欢"
-        width="50%"
-        @close="closeDia"
-    >
-      <div style="margin-bottom: 10px;text-align: right">
-        <el-upload
-            v-model:file-list="fileList"
-            class="upload-demo"
-            :action="uploadUrl"
-            :on-success="handleUploadSuccess"
-            :on-error="handleUploadError"
-            name="file"
-            :show-file-list="false"
-            :headers="headers"
-            style="display: inline;margin-right: 10px"
-        >
-          <el-button type="primary">涓婁紶闄勪欢</el-button>
-        </el-upload>
-        <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
-      </div>
-      <PIMTable
-          rowKey="id"
-          :column="tableColumn"
-          :tableData="tableData"
-          :tableLoading="tableLoading"
-          :isSelection="true"
-          @selection-change="handleSelectionChange"
-          height="500"
-      >
-      </PIMTable>
-			<pagination
-				style="margin: 10px 0"
-				v-show="total > 0"
-				@pagination="paginationSearch"
-				:total="total"
-				:page="page.current"
-				:limit="page.size"
-			/>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button @click="closeDia">鍙栨秷</el-button>
-        </div>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import {ref} from "vue";
-import {getStaffJoinInfo, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js";
-import {Search} from "@element-plus/icons-vue";
-import {
-  qualityInspectParamDel,
-  qualityInspectParamInfo,
-  qualityInspectParamUpdate
-} from "@/api/qualityManagement/qualityInspectParam.js";
-import {ElMessageBox} from "element-plus";
-import {getToken} from "@/utils/auth.js";
-import {
-  qualityInspectFileAdd,
-  qualityInspectFileDel,
-  qualityInspectFileListPage
-} from "@/api/qualityManagement/qualityInspectFile.js";
-import Pagination from "@/components/PIMTable/Pagination.vue";
-const { proxy } = getCurrentInstance()
-const emit = defineEmits(['close'])
-
-const dialogFormVisible = ref(false);
-const currentId = ref('')
-const selectedRows = ref([]);
-const tableColumn = ref([
-  {
-    label: "鏂囦欢鍚嶇О",
-    prop: "name",
-  },
-  {
-    dataType: "action",
-    label: "鎿嶄綔",
-    align: "center",
-    operation: [
-      {
-        name: "涓嬭浇",
-        type: "text",
-        clickFun: (row) => {
-          downLoadFile(row);
-        },
-      }
-    ],
-  },
-]);
-const page = reactive({
-	current: 1,
-	size: 100,
-});
-const total = ref(0);
-const tableData = ref([]);
-const fileList = ref([]);
-const tableLoading = ref(false);
-const headers = ref({
-  Authorization: "Bearer " + getToken(),
-});
-const uploadUrl = ref(import.meta.env.VITE_APP_BASE_API + "/file/upload"); // 涓婁紶鐨勫浘鐗囨湇鍔″櫒鍦板潃
-
-// 鎵撳紑寮规
-const openDialog = (row) => {
-  dialogFormVisible.value = true;
-  currentId.value = row.id;
-  getList()
-}
-const paginationSearch = (obj) => {
-	page.current = obj.page;
-	page.size = obj.limit;
-	getList();
-};
-const getList = () => {
-  qualityInspectFileListPage({inspectId: currentId.value}).then(res => {
-    tableData.value = res.data.records;
-		total.value = res.data.total;
-  })
-}
-// 琛ㄦ牸閫夋嫨鏁版嵁
-const handleSelectionChange = (selection) => {
-  selectedRows.value = selection;
-};
-// 涓嬭浇闄勪欢
-const downLoadFile = (row) => {
-  proxy.$download.name(row.url);
-}
-// 鍏抽棴寮规
-const closeDia = () => {
-  dialogFormVisible.value = false;
-  emit('close')
-};
-// 涓婁紶鎴愬姛澶勭悊
-function handleUploadSuccess(res, file) {
-  // 濡傛灉涓婁紶鎴愬姛
-  if (res.code == 200) {
-    const fileRow = {}
-    fileRow.name = res.data.originalName
-    fileRow.url = res.data.tempPath
-    uploadFile(fileRow)
-  } else {
-    proxy.$modal.msgError("鏂囦欢涓婁紶澶辫触");
-  }
-}
-function uploadFile(file) {
-  file.inspectId = currentId.value;
-  qualityInspectFileAdd(file).then(res => {
-    proxy.$modal.msgSuccess("鏂囦欢涓婁紶鎴愬姛");
-    getList()
-  })
-}
-// 涓婁紶澶辫触澶勭悊
-function handleUploadError() {
-  proxy.$modal.msgError("鏂囦欢涓婁紶澶辫触");
-}
-// 鍒犻櫎
-const handleDelete = () => {
-  let ids = [];
-  if (selectedRows.value.length > 0) {
-    ids = selectedRows.value.map((item) => item.id);
-  } else {
-    proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
-    return;
-  }
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  }).then(() => {
-    qualityInspectFileDel(ids).then((res) => {
-      proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-      getList();
-    });
-  }).catch(() => {
-    proxy.$modal.msg("宸插彇娑�");
-  });
-};
-defineExpose({
-  openDialog,
-});
-</script>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/src/views/qualityManagement/finalInspection/components/formDia.vue b/src/views/qualityManagement/finalInspection/components/formDia.vue
deleted file mode 100644
index 057781c..0000000
--- a/src/views/qualityManagement/finalInspection/components/formDia.vue
+++ /dev/null
@@ -1,278 +0,0 @@
-<template>
-  <div>
-    <el-dialog
-        v-model="dialogFormVisible"
-        :title="operationType === 'add' ? '鏂板鍑哄巶妫�楠�' : '缂栬緫鍑哄巶妫�楠�'"
-        width="70%"
-        @close="closeDia"
-    >
-      <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="浜у搧鍚嶇О锛�" prop="productId">
-              <el-tree-select
-                  v-model="form.productId"
-                  placeholder="璇烽�夋嫨"
-                  clearable
-                  check-strictly
-                  @change="getModels"
-                  :data="productOptions"
-                  :render-after-expand="false"
-                  style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="model">
-              <el-input v-model="form.model" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="鍗曚綅锛�" prop="unit">
-              <el-input v-model="form.unit" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鏁伴噺锛�" prop="quantity">
-              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�" clearable :precision="2"/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="妫�娴嬪崟浣嶏細" prop="checkCompany">
-              <el-input v-model="form.checkCompany" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="妫�娴嬬粨鏋滐細" prop="checkResult">
-              <el-select v-model="form.checkResult">
-                <el-option label="鍚堟牸" value="鍚堟牸" />
-                <el-option label="涓嶅悎鏍�" value="涓嶅悎鏍�" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="妫�楠屽憳锛�" prop="checkName">
-							<el-select v-model="form.checkName" placeholder="璇烽�夋嫨" clearable>
-								<el-option v-for="item in userList" :key="item.nickName" :label="item.nickName"
-													 :value="item.nickName"/>
-							</el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="妫�娴嬫棩鏈燂細" prop="checkTime">
-              <el-date-picker
-                  v-model="form.checkTime"
-                  type="date"
-                  placeholder="璇烽�夋嫨鏃ユ湡"
-                  value-format="YYYY-MM-DD"
-                  format="YYYY-MM-DD"
-                  clearable
-                  style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-			<PIMTable
-				rowKey="id"
-				:column="tableColumn"
-				:tableData="tableData"
-				:tableLoading="tableLoading"
-				height="400"
-			>
-				<template #slot="{ row }">
-					<el-input v-model="row.testValue" clearable/>
-				</template>
-			</PIMTable>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭</el-button>
-          <el-button @click="closeDia">鍙栨秷</el-button>
-        </div>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import {ref} from "vue";
-import {getOptions} from "@/api/procurementManagement/procurementLedger.js";
-import {productTreeList} from "@/api/basicData/product.js";
-import {qualityInspectAdd, qualityInspectUpdate} from "@/api/qualityManagement/rawMaterialInspection.js";
-import {userListNoPage} from "@/api/system/user.js";
-import {qualityInspectDetailByProductId} from "@/api/qualityManagement/metricMaintenance.js";
-import {qualityInspectParamInfo} from "@/api/qualityManagement/qualityInspectParam.js";
-const { proxy } = getCurrentInstance()
-const emit = defineEmits(['close'])
-
-const dialogFormVisible = ref(false);
-const operationType = ref('')
-const data = reactive({
-  form: {
-    checkTime: "",
-    process: "",
-    checkName: "",
-    productName: "",
-    productId: "",
-    model: "",
-    unit: "",
-    quantity: "",
-    checkCompany: "",
-    checkResult: "",
-  },
-  rules: {
-    checkTime: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
-    process: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    productId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    model: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    unit: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    quantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkResult: [{ required: true, message: "璇疯緭鍏�", trigger: "change" }],
-  },
-});
-const { form, rules } = toRefs(data);
-const supplierList = ref([]);
-const productOptions = ref([]);
-const tableColumn = ref([
-	{
-		label: "鎸囨爣",
-		prop: "parameterItem",
-	},
-	{
-		label: "鍗曚綅",
-		prop: "unit",
-	},
-	{
-		label: "鏍囧噯鍊�",
-		prop: "standardValue",
-	},
-	{
-		label: "鍐呮帶鍊�",
-		prop: "controlValue",
-	},
-	{
-		label: "妫�楠屽��",
-		prop: "testValue",
-		dataType: 'slot',
-		slot: 'slot',
-	},
-]);
-const tableData = ref([]);
-const tableLoading = ref(false);
-const userList = ref([]);
-const currentProductId = ref(0);
-
-// 鎵撳紑寮规
-const openDialog = async (type, row) => {
-  operationType.value = type;
-  dialogFormVisible.value = true;
-  getOptions().then((res) => {
-    supplierList.value = res.data;
-  });
-	let userLists = await userListNoPage();
-	userList.value = userLists.data;
-	form.value = {}
-  getProductOptions();
-  if (operationType.value === 'edit') {
-    form.value = {...row}
-		currentProductId.value = row.productId || 0
-		getQualityInspectParamList(row.id)
-  }
-}
-const getProductOptions = () => {
-  productTreeList().then((res) => {
-    productOptions.value = convertIdToValue(res);
-  });
-};
-const getModels = (value) => {
-	currentProductId.value = value
-  form.value.productName = findNodeById(productOptions.value, value);
-	if (currentProductId) {
-		getList();
-	}
-};
-const findNodeById = (nodes, productId) => {
-  for (let i = 0; i < nodes.length; i++) {
-    if (nodes[i].value === productId) {
-      return nodes[i].label; // 鎵惧埌鑺傜偣锛岃繑鍥炶鑺傜偣
-    }
-    if (nodes[i].children && nodes[i].children.length > 0) {
-      const foundNode = findNodeById(nodes[i].children, productId);
-      if (foundNode) {
-        return foundNode; // 鍦ㄥ瓙鑺傜偣涓壘鍒帮紝杩斿洖璇ヨ妭鐐�
-      }
-    }
-  }
-  return null; // 娌℃湁鎵惧埌鑺傜偣锛岃繑鍥瀗ull
-};
-function convertIdToValue(data) {
-  return data.map((item) => {
-    const { id, children, ...rest } = item;
-    const newItem = {
-      ...rest,
-      value: id, // 灏� id 鏀逛负 value
-    };
-    if (children && children.length > 0) {
-      newItem.children = convertIdToValue(children);
-    }
-    
-    return newItem;
-  });
-}
-// 鎻愪氦浜у搧琛ㄥ崟
-const submitForm = () => {
-  proxy.$refs.formRef.validate(valid => {
-    if (valid) {
-      form.value.inspectType = 2
-			if (operationType.value === "add") {
-				tableData.value.forEach((item) => {
-					delete item.id
-				})
-			}
-			const data = {...form.value, qualityInspectParams: tableData.value}
-      if (operationType.value === "add") {
-        qualityInspectAdd(data).then(res => {
-          proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-          closeDia();
-        })
-      } else {
-        qualityInspectUpdate(data).then(res => {
-          proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-          closeDia();
-        })
-      }
-    }
-  })
-}
-const getList = () => {
-	qualityInspectDetailByProductId(currentProductId.value).then(res => {
-		tableData.value = res.data;
-	})
-}
-const getQualityInspectParamList = (id) => {
-	qualityInspectParamInfo(id).then(res => {
-		tableData.value = res.data;
-	})
-}
-// 鍏抽棴寮规
-const closeDia = () => {
-  proxy.resetForm("formRef");
-  dialogFormVisible.value = false;
-  emit('close')
-};
-defineExpose({
-  openDialog,
-});
-</script>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/src/views/qualityManagement/finalInspection/components/inspectionFormDia.vue b/src/views/qualityManagement/finalInspection/components/inspectionFormDia.vue
deleted file mode 100644
index 32a36fa..0000000
--- a/src/views/qualityManagement/finalInspection/components/inspectionFormDia.vue
+++ /dev/null
@@ -1,140 +0,0 @@
-<template>
-  <div>
-    <el-dialog
-        v-model="dialogFormVisible"
-        title="濉啓妫�楠岃褰�"
-        width="70%"
-        @close="closeDia"
-    >
-      <div style="margin-bottom: 10px;text-align: right">
-        <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
-      </div>
-      <PIMTable
-          rowKey="id"
-          :column="tableColumn"
-          :tableData="tableData"
-          :tableLoading="tableLoading"
-          :isSelection="true"
-          @selection-change="handleSelectionChange"
-          height="600"
-      >
-        <template #slot="{ row }">
-          <el-input v-model="row.testValue" clearable/>
-        </template>
-      </PIMTable>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭</el-button>
-          <el-button @click="closeDia">鍙栨秷</el-button>
-        </div>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import {ref} from "vue";
-import {getStaffJoinInfo, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js";
-import {Search} from "@element-plus/icons-vue";
-import {
-  qualityInspectParamDel,
-  qualityInspectParamInfo,
-  qualityInspectParamUpdate
-} from "@/api/qualityManagement/qualityInspectParam.js";
-import {ElMessageBox} from "element-plus";
-const { proxy } = getCurrentInstance()
-const emit = defineEmits(['close'])
-
-const dialogFormVisible = ref(false);
-const operationType = ref('')
-const currentId = ref('')
-const selectedRows = ref([]);
-const tableColumn = ref([
-  {
-    label: "鎸囨爣",
-    prop: "parameterItem",
-  },
-  {
-    label: "鍗曚綅",
-    prop: "unit",
-  },
-  {
-    label: "鏍囧噯鍊�",
-    prop: "standardValue",
-  },
-  {
-    label: "鍐呮帶鍊�",
-    prop: "controlValue",
-  },
-  {
-    label: "妫�楠屽��",
-    prop: "testValue",
-    dataType: 'slot',
-    slot: 'slot',
-  },
-]);
-const tableData = ref([]);
-const tableLoading = ref(false);
-
-// 鎵撳紑寮规
-const openDialog = (type, row) => {
-  operationType.value = type;
-  dialogFormVisible.value = true;
-  if (operationType.value === 'edit') {
-    currentId.value = row.id;
-    getList()
-  }
-}
-const getList = () => {
-  qualityInspectParamInfo(currentId.value).then(res => {
-    tableData.value = res.data;
-  })
-}
-// 琛ㄦ牸閫夋嫨鏁版嵁
-const handleSelectionChange = (selection) => {
-  selectedRows.value = selection;
-};
-// 鎻愪氦浜у搧琛ㄥ崟
-const submitForm = () => {
-  qualityInspectParamUpdate(tableData.value).then(res => {
-    proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-    closeDia();
-  })
-}
-// 鍏抽棴寮规
-const closeDia = () => {
-  dialogFormVisible.value = false;
-  emit('close')
-};
-// 鍒犻櫎
-const handleDelete = () => {
-  let ids = [];
-  if (selectedRows.value.length > 0) {
-    ids = selectedRows.value.map((item) => item.id);
-  } else {
-    proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
-    return;
-  }
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  })
-      .then(() => {
-        qualityInspectParamDel(ids).then((res) => {
-          proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-          getList();
-        });
-      })
-      .catch(() => {
-        proxy.$modal.msg("宸插彇娑�");
-      });
-};
-defineExpose({
-  openDialog,
-});
-</script>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/src/views/qualityManagement/finalInspection/index.vue b/src/views/qualityManagement/finalInspection/index.vue
deleted file mode 100644
index 17e74b1..0000000
--- a/src/views/qualityManagement/finalInspection/index.vue
+++ /dev/null
@@ -1,378 +0,0 @@
-<template>
-  <div class="app-container">
-    <div class="search_form">
-      <div>
-        <span class="search_title">浜у搧鍚嶇О锛�</span>
-        <el-input
-            v-model="searchForm.productName"
-            style="width: 240px"
-            placeholder="璇疯緭鍏ヤ骇鍝佸悕绉版悳绱�"
-            @change="handleQuery"
-            clearable
-            :prefix-icon="Search"
-        />
-        <span  style="margin-left: 10px" class="search_title">妫�娴嬫棩鏈燂細</span>
-        <el-date-picker  v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
-                         placeholder="璇烽�夋嫨" clearable @change="changeDaterange" />
-        <el-button type="primary" @click="handleQuery" style="margin-left: 10px"
-        >鎼滅储</el-button
-        >
-      </div>
-      <div>
-        <el-button type="primary" @click="openForm('add')">鏂板</el-button>
-        <el-button @click="handleOut">瀵煎嚭</el-button>
-        <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
-      </div>
-    </div>
-    <div class="table_list">
-      <PIMTable
-          rowKey="id"
-          :column="tableColumn"
-          :tableData="tableData"
-          :page="page"
-          :isSelection="true"
-          @selection-change="handleSelectionChange"
-          :tableLoading="tableLoading"
-          @pagination="pagination"
-          :total="page.total"
-      ></PIMTable>
-    </div>
-    <InspectionFormDia ref="inspectionFormDia" @close="handleQuery"></InspectionFormDia>
-    <FormDia ref="formDia" @close="handleQuery"></FormDia>
-    <files-dia ref="filesDia" @close="handleQuery"></files-dia>
-		<el-dialog v-model="dialogFormVisible" title="缂栬緫妫�楠屽憳" width="30%"
-							 @close="closeDia">
-			<el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
-				<el-form-item label="妫�楠屽憳锛�" prop="checkName">
-					<el-select v-model="form.checkName" placeholder="璇烽�夋嫨" clearable>
-						<el-option v-for="item in userList" :key="item.nickName" :label="item.nickName"
-											 :value="item.nickName"/>
-					</el-select>
-				</el-form-item>
-			</el-form>
-			<template #footer>
-				<div class="dialog-footer">
-					<el-button type="primary" @click="submitForm">纭</el-button>
-					<el-button @click="closeDia">鍙栨秷</el-button>
-				</div>
-			</template>
-		</el-dialog>
-  </div>
-</template>
-
-<script setup>
-import { Search } from "@element-plus/icons-vue";
-import {onMounted, ref} from "vue";
-import InspectionFormDia from "@/views/qualityManagement/finalInspection/components/inspectionFormDia.vue";
-import FormDia from "@/views/qualityManagement/finalInspection/components/formDia.vue";
-import {ElMessageBox} from "element-plus";
-import {
-	downloadQualityInspect,
-	qualityInspectDel,
-	qualityInspectListPage, qualityInspectUpdate,
-	submitQualityInspect
-} from "@/api/qualityManagement/rawMaterialInspection.js";
-import FilesDia from "@/views/qualityManagement/finalInspection/components/filesDia.vue";
-import dayjs from "dayjs";
-import {userListNoPage} from "@/api/system/user.js";
-
-const data = reactive({
-  searchForm: {
-    productName: "",
-    entryDate: undefined, // 褰曞叆鏃ユ湡
-    entryDateStart: undefined,
-    entryDateEnd: undefined,
-  },
-	rules: {
-		checkName: [{required: true, message: "璇烽�夋嫨", trigger: "change"}],
-	},
-});
-const { searchForm } = toRefs(data);
-const tableColumn = ref([
-  {
-    label: "妫�娴嬫棩鏈�",
-    prop: "checkTime",
-    width: 120
-  },
-  {
-    label: "妫�楠屽憳",
-    prop: "checkName",
-  },
-  {
-    label: "浜у搧鍚嶇О",
-    prop: "productName",
-  },
-  {
-    label: "瑙勬牸鍨嬪彿",
-    prop: "model",
-  },
-  {
-    label: "鍗曚綅",
-    prop: "unit",
-  },
-  {
-    label: "鏁伴噺",
-    prop: "quantity",
-    width: 100
-  },
-  {
-    label: "妫�娴嬪崟浣�",
-    prop: "checkCompany",
-    width: 120
-  },
-  {
-    label: "妫�娴嬬粨鏋�",
-    prop: "checkResult",
-    dataType: "tag",
-    formatType: (params) => {
-      if (params == '涓嶅悎鏍�') {
-        return "danger";
-      } else if (params == '鍚堟牸') {
-        return "success";
-      } else {
-        return null;
-      }
-    },
-  },
-	{
-		label: "鎻愪氦鐘舵��",
-		prop: "inspectState",
-		formatData: (params) => {
-			if (params) {
-				return "宸叉彁浜�";
-			} else {
-				return "鏈彁浜�";
-			}
-		},
-	},
-  {
-    dataType: "action",
-    label: "鎿嶄綔",
-    align: "center",
-    fixed: "right",
-    width: 280,
-    operation: [
-      {
-        name: "缂栬緫",
-        type: "text",
-        clickFun: (row) => {
-          openForm("edit", row);
-        },
-				disabled: (row) => {
-					return row.inspectState == 1;
-				}
-      },
-      {
-        name: "闄勪欢",
-        type: "text",
-        clickFun: (row) => {
-          openFilesFormDia(row);
-        },
-      },
-			{
-				name: "鎻愪氦",
-				type: "text",
-				clickFun: (row) => {
-					submit(row.id);
-				},
-				disabled: (row) => {
-					return row.inspectState == 1;
-				}
-			},
-			{
-				name: "鍒嗛厤妫�楠屽憳",
-				type: "text",
-				clickFun: (row) => {
-					if (!row.checkName) {
-						open(row)
-					} else {
-						proxy.$modal.msgError("妫�楠屽憳宸插瓨鍦�");
-					}
-				},
-				disabled: (row) => {
-					return row.inspectState == 1 || row.checkName;
-				}
-			},
-			{
-				name: "涓嬭浇",
-				type: "text",
-				clickFun: (row) => {
-					downLoadFile(row);
-				},
-			},
-    ],
-  },
-]);
-const tableData = ref([]);
-const selectedRows = ref([]);
-const tableLoading = ref(false);
-const currentRow = ref(null)
-const page = reactive({
-  current: 1,
-  size: 100,
-  total: 0
-});
-const formDia = ref()
-const filesDia = ref()
-const inspectionFormDia = ref()
-const { proxy } = getCurrentInstance()
-const userList = ref([]);
-const form = ref({
-	checkName: ""
-});
-const dialogFormVisible = ref(false);
-
-const changeDaterange = (value) => {
-  searchForm.value.entryDateStart = undefined;
-  searchForm.value.entryDateEnd = undefined;
-  if (value) {
-    searchForm.value.entryDateStart = dayjs(value[0]).format("YYYY-MM-DD");
-    searchForm.value.entryDateEnd = dayjs(value[1]).format("YYYY-MM-DD");
-  }
-  getList();
-};
-// 鏌ヨ鍒楄〃
-/** 鎼滅储鎸夐挳鎿嶄綔 */
-const handleQuery = () => {
-  page.current = 1;
-  getList();
-};
-const pagination = (obj) => {
-  page.current = obj.page;
-  page.size = obj.limit;
-  getList();
-};
-const getList = () => {
-  tableLoading.value = true;
-  const params = { ...searchForm.value, ...page };
-  params.entryDate = undefined
-  qualityInspectListPage({...params, inspectType: 2}).then(res => {
-    tableLoading.value = false;
-    tableData.value = res.data.records
-    page.total = res.data.total;
-  }).catch(err => {
-    tableLoading.value = false;
-  })
-};
-// 琛ㄦ牸閫夋嫨鏁版嵁
-const handleSelectionChange = (selection) => {
-  selectedRows.value = selection;
-};
-
-// 鎵撳紑寮规
-const openForm = (type, row) => {
-  nextTick(() => {
-    formDia.value?.openDialog(type, row)
-  })
-};
-// 鎵撳紑鏂板妫�楠屽脊妗�
-const openInspectionForm = (type, row) => {
-  nextTick(() => {
-    inspectionFormDia.value?.openDialog(type, row)
-  })
-};
-// 鎵撳紑闄勪欢寮规
-const openFilesFormDia = (type, row) => {
-  nextTick(() => {
-    filesDia.value?.openDialog(type, row)
-  })
-};
-
-// 鍒犻櫎
-const handleDelete = () => {
-  let ids = [];
-  if (selectedRows.value.length > 0) {
-    ids = selectedRows.value.map((item) => item.id);
-  } else {
-    proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
-    return;
-  }
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  })
-      .then(() => {
-        qualityInspectDel(ids).then((res) => {
-          proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-          getList();
-        });
-      })
-      .catch(() => {
-        proxy.$modal.msg("宸插彇娑�");
-      });
-};
-// 瀵煎嚭
-const handleOut = () => {
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  })
-      .then(() => {
-        proxy.download("/quality/qualityInspect/export", {inspectType: 2}, "鍑哄巶妫�楠�.xlsx");
-      })
-      .catch(() => {
-        proxy.$modal.msg("宸插彇娑�");
-      });
-};
-
-// 鎻愪环
-const submit = async (id) => {
-	const res = await submitQualityInspect({id: id})
-	if (res.code === 200) {
-		proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-		getList();
-	}
-}
-
-// 鍏抽棴寮规
-const closeDia = () => {
-	proxy.resetForm("formRef");
-	dialogFormVisible.value = false;
-};
-
-const submitForm = () => {
-	if (currentRow.value) {
-		const data = {
-			...form.value,
-			id: currentRow.value.id
-		}
-		qualityInspectUpdate(data).then(res => {
-			proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-			closeDia();
-			getList();
-		})
-	}
-};
-
-const open = async (row) => {
-	let userLists = await userListNoPage();
-	userList.value = userLists.data;
-	currentRow.value = row
-	dialogFormVisible.value = true
-}
-
-const downLoadFile = (row) => {
-	downloadQualityInspect({ id: row.id }).then((blobData) => {
-		const blob = new Blob([blobData], {
-			type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
-		})
-		const downloadUrl = window.URL.createObjectURL(blob)
-		
-		const link = document.createElement('a')
-		link.href = downloadUrl
-		link.download = '鍘熸潗鏂欐楠屾姤鍛�.docx'
-		document.body.appendChild(link)
-		link.click()
-		
-		document.body.removeChild(link)
-		window.URL.revokeObjectURL(downloadUrl)
-	})
-};
-onMounted(() => {
-  getList();
-});
-</script>
-
-<style scoped></style>
diff --git a/src/views/qualityManagement/metricMaintenance/index.vue b/src/views/qualityManagement/metricMaintenance/index.vue
deleted file mode 100644
index 016a4c1..0000000
--- a/src/views/qualityManagement/metricMaintenance/index.vue
+++ /dev/null
@@ -1,415 +0,0 @@
-<template>
-  <div class="app-container product-view">
-    <div class="left">
-      <div>
-        <el-input
-            v-model="search"
-            style="width: 210px"
-            placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�"
-            @change="searchFilter"
-            @clear="searchFilter"
-            clearable
-            prefix-icon="Search"
-        />
-      </div>
-      <div ref="containerRef">
-        <el-tree
-            ref="tree"
-            v-loading="treeLoad"
-            :data="list"
-            @node-click="handleNodeClick"
-            :expand-on-click-node="false"
-            default-expand-all
-            :default-expanded-keys="expandedKeys"
-            :draggable="true"
-            :filter-node-method="filterNode"
-            :props="{ children: 'children', label: 'label' }"
-            highlight-current
-            node-key="id"
-            style="
-            height: calc(100vh - 190px);
-            overflow-y: scroll;
-            scrollbar-width: none;
-          "
-        >
-          <template #default="{ node, data }">
-            <div class="custom-tree-node">
-              <span class="tree-node-content">
-                <el-icon class="orange-icon">
-                  <component :is="data.children && data.children.length > 0
-                  ? node.expanded ? 'FolderOpened' : 'Folder' : 'Tickets'" />
-                </el-icon>
-                {{ data.label }}
-              </span>
-            </div>
-          </template>
-        </el-tree>
-      </div>
-    </div>
-    <div class="right">
-      <div style="margin-bottom: 10px">
-        <el-button type="primary" @click="openModelDia('add')">
-          鏂板妫�娴嬫寚鏍�
-        </el-button>
-        <el-button @click="handleOut">瀵煎嚭</el-button>
-        <el-button
-            type="danger"
-            @click="handleDelete"
-            style="margin-left: 10px"
-            plain
-        >
-          鍒犻櫎
-        </el-button>
-      </div>
-      <PIMTable
-          rowKey="id"
-          :column="tableColumn"
-          :tableData="tableData"
-          :page="page"
-          :isSelection="true"
-          @selection-change="handleSelectionChange"
-          :tableLoading="tableLoading"
-          @pagination="pagination"
-          :total="page.total"
-      ></PIMTable>
-    </div>
-    <el-dialog
-        v-model="modelDia"
-        title="妫�娴嬫寚鏍�"
-        width="400px"
-        @close="closeModelDia"
-    >
-      <el-form
-          :model="modelForm"
-          label-width="140px"
-          label-position="top"
-          :rules="modelRules"
-          ref="modelFormRef"
-      >
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="鎸囨爣锛�" prop="parameterItem">
-              <el-input
-                  v-model="modelForm.parameterItem"
-                  placeholder="璇疯緭鍏ユ寚鏍�"
-                  clearable
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="鍗曚綅锛�" prop="unit">
-              <el-input
-                  v-model="modelForm.unit"
-                  placeholder="璇疯緭鍏ュ崟浣�"
-                  clearable
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="鏍囧噯鍊硷細" prop="standardValue">
-              <el-input
-                  v-model="modelForm.standardValue"
-                  placeholder="璇疯緭鍏ユ爣鍑嗗��"
-                  clearable
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="鍐呮帶鍊硷細" prop="controlValue">
-              <el-input
-                  v-model="modelForm.controlValue"
-                  placeholder="璇疯緭鍏ュ唴鎺у��"
-                  clearable
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitModelForm">纭</el-button>
-          <el-button @click="closeModelDia">鍙栨秷</el-button>
-        </div>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import {ref} from "vue";
-import {addOrEditProductModel, delProductModel, modelListPage, productTreeList} from "@/api/basicData/product.js";
-import ImportExcel from "@/views/basicData/product/ImportExcel/index.vue";
-import {ElMessageBox} from "element-plus";
-import {
-  qualityTestStandardAdd, qualityTestStandardDel,
-  qualityTestStandardListPage,
-  qualityTestStandardUpdate
-} from "@/api/qualityManagement/metricMaintenance.js";
-const { proxy } = getCurrentInstance();
-// 鏍�
-const search = ref("");
-const treeLoad = ref(false);
-const list = ref([]);
-const expandedKeys = ref([]);
-const currentId = ref("");
-const currentParentId = ref("");
-// 鎸囨爣琛ㄦ牸
-const tableData = ref([]);
-const tableLoading = ref(false);
-const page = reactive({
-  current: 1,
-  size: 10,
-});
-const tableColumn = ref([
-  {
-    label: "鎸囨爣",
-    prop: "parameterItem",
-  },
-  {
-    label: "鍗曚綅",
-    prop: "unit",
-  },
-  {
-    label: "鏍囧噯鍊�",
-    prop: "standardValue",
-  },
-  {
-    label: "鍐呮帶鍊�",
-    prop: "controlValue",
-  },
-  {
-    dataType: "action",
-    label: "鎿嶄綔",
-    align: "center",
-    operation: [
-      {
-        name: "缂栬緫",
-        type: "text",
-        clickFun: (row) => {
-          openModelDia("edit", row);
-        },
-      },
-    ],
-  },
-]);
-const selectedRows = ref([]);
-// 鎸囨爣寮规
-const modelDia = ref(false);
-const modelOperationType = ref("");
-const data = reactive({
-  modelForm: {
-    parameterItem: "",
-    unit: "",
-    standardValue: "",
-    controlValue: "",
-  },
-  modelRules: {
-    parameterItem: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    unit: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    standardValue: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    controlValue: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-  },
-});
-const { modelForm, modelRules } = toRefs(data);
-
-// 鏌ヨ浜у搧鏍�
-const getProductTreeList = () => {
-  treeLoad.value = true;
-  productTreeList().then((res) => {
-    list.value = res;
-    list.value.forEach((a) => {
-      expandedKeys.value.push(a.label);
-    });
-    treeLoad.value = false;
-  }).catch((err) => {
-    treeLoad.value = false;
-  });
-};
-// 杩囨护浜у搧鏍�
-const searchFilter = () => {
-  proxy.$refs.tree.filter(search.value);
-};
-// 閫夋嫨浜у搧
-const handleNodeClick = (val, node, el) => {
-  // 鍙湁鍙跺瓙鑺傜偣鎵嶆墽琛屼互涓嬮�昏緫
-  currentId.value = val.id;
-  currentParentId.value = val.parentId;
-  getModelList();
-};
-// 琛ㄦ牸閫夋嫨鏁版嵁
-const handleSelectionChange = (selection) => {
-  selectedRows.value = selection;
-};
-// 鏌ヨ鎸囨爣鏁版嵁
-const pagination = (obj) => {
-  page.current = obj.page;
-  page.size = obj.limit;
-  getModelList();
-};
-const getModelList = () => {
-  tableLoading.value = true;
-  qualityTestStandardListPage({
-    productId: currentId.value,
-    current: page.current,
-    size: page.size,
-  }).then((res) => {
-    tableData.value = res.data.records;
-    page.total = res.data.total;
-    tableLoading.value = false;
-  });
-};
-// 璋冪敤tree杩囨护鏂规硶 涓枃鑻辫繃婊�
-const filterNode = (value, data, node) => {
-  if (!value) {
-    //濡傛灉鏁版嵁涓虹┖锛屽垯杩斿洖true,鏄剧ず鎵�鏈夌殑鏁版嵁椤�
-    return true;
-  }
-  // 鏌ヨ鍒楄〃鏄惁鏈夊尮閰嶆暟鎹紝灏嗗�煎皬鍐欙紝鍖归厤鑻辨枃鏁版嵁
-  let val = value.toLowerCase();
-  return chooseNode(val, data, node); // 璋冪敤杩囨护浜屽眰鏂规硶
-};
-// 杩囨护鐖惰妭鐐� / 瀛愯妭鐐� (濡傛灉杈撳叆鐨勫弬鏁版槸鐖惰妭鐐逛笖鑳藉尮閰嶏紝鍒欒繑鍥炶鑺傜偣浠ュ強鍏朵笅鐨勬墍鏈夊瓙鑺傜偣锛涘鏋滃弬鏁版槸瀛愯妭鐐癸紝鍒欒繑鍥炶鑺傜偣鐨勭埗鑺傜偣銆俷ame鏄腑鏂囧瓧绗︼紝enName鏄嫳鏂囧瓧绗�.
-const chooseNode = (value, data, node) => {
-  if (data.label.indexOf(value) !== -1) {
-    return true;
-  }
-  const level = node.level;
-  // 濡傛灉浼犲叆鐨勮妭鐐规湰韬氨鏄竴绾ц妭鐐瑰氨涓嶇敤鏍¢獙浜�
-  if (level === 1) {
-    return false;
-  }
-  // 鍏堝彇褰撳墠鑺傜偣鐨勭埗鑺傜偣
-  let parentData = node.parent;
-  // 閬嶅巻褰撳墠鑺傜偣鐨勭埗鑺傜偣
-  let index = 0;
-  while (index < level - 1) {
-    // 濡傛灉鍖归厤鍒扮洿鎺ヨ繑鍥烇紝姝ゅname鍊兼槸涓枃瀛楃锛宔nName鏄嫳鏂囧瓧绗︺�傚垽鏂尮閰嶄腑鑻辨枃杩囨护
-    if (parentData.data.label.indexOf(value) !== -1) {
-      return true;
-    }
-    // 鍚﹀垯鐨勮瘽鍐嶅線涓婁竴灞傚仛鍖归厤
-    parentData = parentData.parent;
-    index++;
-  }
-  // 娌″尮閰嶅埌杩斿洖false
-  return false;
-};
-// 鎵撳紑鎸囨爣寮规
-const openModelDia = (type, data) => {
-  modelOperationType.value = type;
-  modelDia.value = true;
-  modelForm.value.model = "";
-  modelForm.value.model = "";
-  modelForm.value.id = "";
-  if (type === "edit") {
-    modelForm.value = { ...data };
-  }
-};
-// 瀵煎嚭
-const handleOut = () => {
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  }).then(() => {
-    proxy.download("/quality/qualityTestStandard/export", {}, "妫�娴嬫寚鏍�.xlsx");
-  }).catch(() => {
-    proxy.$modal.msg("宸插彇娑�");
-  });
-};
-
-// 鍒犻櫎鎸囨爣
-const handleDelete = () => {
-  let ids = [];
-  if (selectedRows.value.length > 0) {
-    ids = selectedRows.value.map((item) => item.id);
-  } else {
-    proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
-    return;
-  }
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "鍒犻櫎鎻愮ず", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  }).then(() => {
-    tableLoading.value = true;
-    qualityTestStandardDel(ids).then((res) => {
-      proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-      getModelList();
-    }).finally(() => {
-      tableLoading.value = false;
-    });
-  }).catch(() => {
-    proxy.$modal.msg("宸插彇娑�");
-  });
-};
-
-// 鎻愪氦瑙勬牸鍨嬪彿淇敼
-const submitModelForm = () => {
-  proxy.$refs.modelFormRef.validate((valid) => {
-    if (valid) {
-      modelForm.value.productId = Number(currentId.value);
-      if(modelOperationType.value === 'add') {
-        qualityTestStandardAdd(modelForm.value).then((res) => {
-          proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-          closeModelDia();
-          getModelList();
-        });
-      } else {
-        qualityTestStandardUpdate(modelForm.value).then((res) => {
-          proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-          closeModelDia();
-          getModelList();
-        });
-      }
-    }
-  });
-};
-// 鍏抽棴鍨嬪彿寮规
-const closeModelDia = () => {
-  proxy.$refs.modelFormRef.resetFields();
-  modelDia.value = false;
-};
-getProductTreeList();
-</script>
-
-<style scoped>
-.product-view {
-  display: flex;
-}
-.left {
-  width: 380px;
-  padding: 16px;
-  background: #ffffff;
-}
-.right {
-  width: calc(100% - 380px);
-  padding: 16px;
-  margin-left: 20px;
-  background: #ffffff;
-}
-.custom-tree-node {
-  flex: 1;
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-  font-size: 14px;
-  padding-right: 8px;
-}
-.tree-node-content {
-  display: flex;
-  align-items: center; /* 鍨傜洿灞呬腑 */
-  height: 100%;
-}
-.orange-icon {
-  color: orange;
-  font-size: 18px;
-  margin-right: 8px; /* 鍥炬爣涓庢枃瀛椾箣闂村姞鐐归棿璺� */
-}
-</style>
\ No newline at end of file
diff --git a/src/views/qualityManagement/nearExpiryReturn/index.vue b/src/views/qualityManagement/nearExpiryReturn/index.vue
deleted file mode 100644
index 3758b43..0000000
--- a/src/views/qualityManagement/nearExpiryReturn/index.vue
+++ /dev/null
@@ -1,395 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="浜у搧鍚嶇О" prop="productName">
-        <el-input
-          v-model="queryParams.productName"
-          placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="鎵规鍙�" prop="batchNumber">
-        <el-input
-          v-model="queryParams.batchNumber"
-          placeholder="璇疯緭鍏ユ壒娆″彿"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="閫�鍥炴棩鏈�" prop="returnDate">
-        <el-date-picker
-          clearable
-          v-model="queryParams.returnDate"
-          type="date"
-          value-format="YYYY-MM-DD"
-          placeholder="璇烽�夋嫨閫�鍥炴棩鏈�">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
-        <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="Plus"
-          @click="handleAdd"
-        >鏂板</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="Edit"
-          :disabled="single"
-          @click="handleUpdate"
-        >淇敼</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="Delete"
-          :disabled="multiple"
-          @click="handleDelete"
-        >鍒犻櫎</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="Download"
-          @click="handleExport"
-        >瀵煎嚭</el-button>
-      </el-col>
-      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="nearExpiryReturnList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="搴忓彿" type="index" width="50" align="center" />
-      <el-table-column label="浜у搧鍚嶇О" prop="productName" />
-      <el-table-column label="浜у搧瑙勬牸" prop="productSpec" />
-      <el-table-column label="鎵规鍙�" prop="batchNumber" />
-      <el-table-column label="鐢熶骇鏃ユ湡" prop="productionDate" align="center">
-        <template #default="scope">
-          <span>{{ parseTime(scope.row.productionDate, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="鍒版湡鏃ユ湡" prop="expiryDate" align="center">
-        <template #default="scope">
-          <span>{{ parseTime(scope.row.expiryDate, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="閫�鍥炴暟閲�" prop="returnQuantity" />
-      <el-table-column label="閫�鍥炲師鍥�" prop="returnReason" />
-      <el-table-column label="閫�鍥炴棩鏈�" prop="returnDate" align="center">
-        <template #default="scope">
-          <span>{{ parseTime(scope.row.returnDate, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="澶勭悊鐘舵��" prop="status" align="center">
-        <template #default="scope">
-          <dict-tag :options="statusOptions" :value="scope.row.status"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
-        <template #default="scope">
-          <el-button size="mini" type="text" icon="Edit" @click="handleUpdate(scope.row)">淇敼</el-button>
-          <el-button size="mini" type="text" icon="Delete" @click="handleDelete(scope.row)">鍒犻櫎</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    
-    <pagination
-      v-show="total>0"
-      :total="total"
-      v-model:page="queryParams.pageNum"
-      v-model:limit="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 娣诲姞鎴栦慨鏀逛复鏈熼��鍥炲彴璐﹀璇濇 -->
-    <el-dialog :title="title" v-model="open" width="800px" append-to-body>
-      <el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="浜у搧鍚嶇О" prop="productName">
-              <el-input v-model="form.productName" placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="浜у搧瑙勬牸" prop="productSpec">
-              <el-input v-model="form.productSpec" placeholder="璇疯緭鍏ヤ骇鍝佽鏍�" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="鎵规鍙�" prop="batchNumber">
-              <el-input v-model="form.batchNumber" placeholder="璇疯緭鍏ユ壒娆″彿" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="閫�鍥炴暟閲�" prop="returnQuantity">
-              <el-input-number v-model="form.returnQuantity" controls-position="right" :min="1" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="鐢熶骇鏃ユ湡" prop="productionDate">
-              <el-date-picker
-                clearable
-                v-model="form.productionDate"
-                type="date"
-                value-format="YYYY-MM-DD"
-                placeholder="璇烽�夋嫨鐢熶骇鏃ユ湡">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鍒版湡鏃ユ湡" prop="expiryDate">
-              <el-date-picker
-                clearable
-                v-model="form.expiryDate"
-                type="date"
-                value-format="YYYY-MM-DD"
-                placeholder="璇烽�夋嫨鍒版湡鏃ユ湡">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="閫�鍥炴棩鏈�" prop="returnDate">
-              <el-date-picker
-                clearable
-                v-model="form.returnDate"
-                type="date"
-                value-format="YYYY-MM-DD"
-                placeholder="璇烽�夋嫨閫�鍥炴棩鏈�">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="澶勭悊鐘舵��" prop="status">
-              <el-select v-model="form.status" placeholder="璇烽�夋嫨澶勭悊鐘舵��">
-                <el-option
-                  v-for="dict in statusOptions"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="閫�鍥炲師鍥�" prop="returnReason">
-              <el-input v-model="form.returnReason" type="textarea" placeholder="璇疯緭鍏ラ��鍥炲師鍥�" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="澶囨敞" prop="remark">
-              <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ娉�" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
-          <el-button @click="cancel">鍙� 娑�</el-button>
-        </div>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup name="NearExpiryReturn">
-import { ref, reactive, onMounted } from "vue";
-import { ElMessageBox } from "element-plus";
-// API鎺ュ彛宸茬Щ闄わ紝涓嶅啀璋冪敤鍚庣鎺ュ彛
-
-const { proxy } = getCurrentInstance();
-const { parseTime } = proxy;
-
-const nearExpiryReturnList = ref([]);
-const open = ref(false);
-const loading = ref(true);
-const showSearch = ref(true);
-const ids = ref([]);
-const single = ref(true);
-const multiple = ref(true);
-const total = ref(0);
-const title = ref("");
-
-// 鐘舵�佸瓧鍏�
-const statusOptions = ref([
-  { label: "寰呭鐞�", value: "0" },
-  { label: "澶勭悊涓�", value: "1" },
-  { label: "宸插畬鎴�", value: "2" }
-]);
-
-const data = reactive({
-  form: {},
-  queryParams: {
-    pageNum: 1,
-    pageSize: 10,
-    productName: null,
-    batchNumber: null,
-    returnDate: null
-  },
-  rules: {
-    productName: [
-      { required: true, message: "浜у搧鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
-    ],
-    productSpec: [
-      { required: true, message: "浜у搧瑙勬牸涓嶈兘涓虹┖", trigger: "blur" }
-    ],
-    batchNumber: [
-      { required: true, message: "鎵规鍙蜂笉鑳戒负绌�", trigger: "blur" }
-    ],
-    returnQuantity: [
-      { required: true, message: "閫�鍥炴暟閲忎笉鑳戒负绌�", trigger: "blur" }
-    ],
-    productionDate: [
-      { required: true, message: "鐢熶骇鏃ユ湡涓嶈兘涓虹┖", trigger: "blur" }
-    ],
-    expiryDate: [
-      { required: true, message: "鍒版湡鏃ユ湡涓嶈兘涓虹┖", trigger: "blur" }
-    ],
-    returnDate: [
-      { required: true, message: "閫�鍥炴棩鏈熶笉鑳戒负绌�", trigger: "blur" }
-    ],
-    returnReason: [
-      { required: true, message: "閫�鍥炲師鍥犱笉鑳戒负绌�", trigger: "blur" }
-    ],
-    status: [
-      { required: true, message: "澶勭悊鐘舵�佷笉鑳戒负绌�", trigger: "change" }
-    ]
-  }
-});
-
-const { queryParams, form, rules } = toRefs(data);
-
-/** 鏌ヨ涓存湡閫�鍥炲彴璐﹀垪琛� */
-function getList() {
-  loading.value = true;
-  // 涓嶈皟鐢ㄦ帴鍙o紝杩斿洖绌烘暟鎹�
-  nearExpiryReturnList.value = [];
-  total.value = 0;
-  loading.value = false;
-}
-
-// 鍙栨秷鎸夐挳
-function cancel() {
-  open.value = false;
-  reset();
-}
-
-// 琛ㄥ崟閲嶇疆
-function reset() {
-  form.value = {
-    id: null,
-    productName: null,
-    productSpec: null,
-    batchNumber: null,
-    productionDate: null,
-    expiryDate: null,
-    returnQuantity: null,
-    returnReason: null,
-    returnDate: null,
-    status: null,
-    remark: null
-  };
-  proxy.resetForm("formRef");
-}
-
-/** 鎼滅储鎸夐挳鎿嶄綔 */
-function handleQuery() {
-  queryParams.value.pageNum = 1;
-  getList();
-}
-
-/** 閲嶇疆鎸夐挳鎿嶄綔 */
-function resetQuery() {
-  proxy.resetForm("queryForm");
-  handleQuery();
-}
-
-// 澶氶�夋閫変腑鏁版嵁
-function handleSelectionChange(selection) {
-  ids.value = selection.map(item => item.id);
-  single.value = selection.length !== 1;
-  multiple.value = !selection.length;
-}
-
-/** 鏂板鎸夐挳鎿嶄綔 */
-function handleAdd() {
-  reset();
-  open.value = true;
-  title.value = "娣诲姞涓存湡閫�鍥炲彴璐�";
-}
-
-/** 淇敼鎸夐挳鎿嶄綔 */
-function handleUpdate(row) {
-  reset();
-  // 涓嶈皟鐢ㄦ帴鍙o紝鐩存帴浣跨敤浼犲叆鐨勬暟鎹�
-  if (row) {
-    form.value = { ...row };
-    open.value = true;
-    title.value = "淇敼涓存湡閫�鍥炲彴璐�";
-  }
-}
-
-/** 鎻愪氦鎸夐挳 */
-function submitForm() {
-  proxy.$refs["formRef"].validate(valid => {
-    if (valid) {
-      // 涓嶈皟鐢ㄦ帴鍙o紝鍙樉绀烘垚鍔熸彁绀�
-      if (form.value.id != null) {
-        proxy.$modal.msgSuccess("淇敼鎴愬姛");
-      } else {
-        proxy.$modal.msgSuccess("鏂板鎴愬姛");
-      }
-      open.value = false;
-      getList();
-    }
-  });
-}
-
-/** 鍒犻櫎鎸夐挳鎿嶄綔 */
-function handleDelete(row) {
-  const deleteIds = row.id || ids.value;
-  ElMessageBox.confirm('鏄惁纭鍒犻櫎涓存湡閫�鍥炲彴璐︾紪鍙蜂负"' + deleteIds + '"鐨勬暟鎹」锛�', "璀﹀憡", {
-    confirmButtonText: "纭畾",
-    cancelButtonText: "鍙栨秷",
-    type: "warning"
-  }).then(function() {
-    // 涓嶈皟鐢ㄦ帴鍙o紝鍙樉绀烘垚鍔熸彁绀�
-    proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-    getList();
-  }).catch(() => {});
-}
-
-/** 瀵煎嚭鎸夐挳鎿嶄綔 */
-function handleExport() {
-  // 涓嶈皟鐢ㄦ帴鍙o紝鍙樉绀烘彁绀�
-  proxy.$modal.msgSuccess("瀵煎嚭鍔熻兘鏆傛湭瀹炵幇");
-}
-
-onMounted(() => {
-  getList();
-});
-</script>
-
diff --git a/src/views/qualityManagement/nonconformingManagement/components/formDia.vue b/src/views/qualityManagement/nonconformingManagement/components/formDia.vue
deleted file mode 100644
index 13a231d..0000000
--- a/src/views/qualityManagement/nonconformingManagement/components/formDia.vue
+++ /dev/null
@@ -1,249 +0,0 @@
-<template>
-  <div>
-    <el-dialog
-        v-model="dialogFormVisible"
-        :title="operationType === 'add' ? '鏂板涓嶅悎鏍肩鐞�' : '缂栬緫涓嶅悎鏍肩鐞�'"
-        width="70%"
-        @close="closeDia"
-    >
-      <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="鐘舵�侊細" prop="inspectState">
-              <el-select v-model="form.inspectState">
-                <el-option label="寰呭鐞�" :value="0" />
-                <el-option label="宸插鐞�" :value="1" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="绫诲埆锛�" prop="inspectType">
-              <el-select v-model="form.inspectType">
-                <el-option label="鍘熸潗鏂欐楠�" :value="0" />
-                <el-option label="杩囩▼妫�楠�" :value="1" />
-                <el-option label="鍑哄巶妫�楠�" :value="2" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="浜у搧鍚嶇О锛�" prop="productId">
-              <el-tree-select
-                  v-model="form.productId"
-                  placeholder="璇烽�夋嫨"
-                  clearable
-                  check-strictly
-                  @change="getModels"
-                  :data="productOptions"
-                  :render-after-expand="false"
-                  style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="model">
-              <el-input v-model="form.model" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="鍗曚綅锛�" prop="unit">
-              <el-input v-model="form.unit" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鏁伴噺锛�" prop="quantity">
-              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�" clearable :precision="2"/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="妫�楠屽憳锛�" prop="checkName">
-              <el-input v-model="form.checkName" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="妫�娴嬫棩鏈燂細" prop="checkTime">
-              <el-date-picker
-                  v-model="form.checkTime"
-                  type="date"
-                  placeholder="璇烽�夋嫨鏃ユ湡"
-                  value-format="YYYY-MM-DD"
-                  format="YYYY-MM-DD"
-                  clearable
-                  style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="涓嶅悎鏍肩幇璞★細" prop="defectivePhenomena">
-              <el-input v-model="form.defectivePhenomena" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="澶勭悊缁撴灉锛�" prop="dealResult">
-              <el-input v-model="form.dealResult" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="澶勭悊浜猴細" prop="dealName">
-              <el-input v-model="form.dealName" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="澶勭悊鏃ユ湡锛�" prop="dealTime">
-              <el-date-picker
-                  v-model="form.dealTime"
-                  type="date"
-                  placeholder="璇烽�夋嫨鏃ユ湡"
-                  value-format="YYYY-MM-DD"
-                  format="YYYY-MM-DD"
-                  clearable
-                  style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭</el-button>
-          <el-button @click="closeDia">鍙栨秷</el-button>
-        </div>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import {ref} from "vue";
-import {productTreeList} from "@/api/basicData/product.js";
-import {
-  getQualityUnqualifiedInfo,
-  qualityUnqualifiedAdd,
-  qualityUnqualifiedUpdate
-} from "@/api/qualityManagement/nonconformingManagement.js";
-const { proxy } = getCurrentInstance()
-const emit = defineEmits(['close'])
-
-const dialogFormVisible = ref(false);
-const operationType = ref('')
-const data = reactive({
-  form: {
-    checkTime: "",
-    process: "",
-    checkName: "",
-    productName: "",
-    productId: "",
-    model: "",
-    unit: "",
-    quantity: "",
-    checkCompany: "",
-    checkResult: "",
-    inspectState: '',
-    inspectType: '',
-    defectivePhenomena: '',
-    dealResult: '',
-  },
-  rules: {
-    checkTime: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" },],
-    process: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    productId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    model: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    unit: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    quantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkResult: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-  },
-});
-const { form, rules } = toRefs(data);
-const productOptions = ref([]);
-
-// 鎵撳紑寮规
-const openDialog = (type, row) => {
-  operationType.value = type;
-  dialogFormVisible.value = true;
-  form.value = {}
-  getProductOptions();
-  if (operationType.value === 'edit') {
-    getQualityUnqualifiedInfo(row.id).then(res => {
-      form.value = {...res.data}
-    })
-  }
-}
-const getProductOptions = () => {
-  productTreeList().then((res) => {
-    productOptions.value = convertIdToValue(res);
-  });
-};
-const getModels = (value) => {
-  form.value.productName = findNodeById(productOptions.value, value);
-};
-const findNodeById = (nodes, productId) => {
-  for (let i = 0; i < nodes.length; i++) {
-    if (nodes[i].value === productId) {
-      return nodes[i].label; // 鎵惧埌鑺傜偣锛岃繑鍥炶鑺傜偣
-    }
-    if (nodes[i].children && nodes[i].children.length > 0) {
-      const foundNode = findNodeById(nodes[i].children, productId);
-      if (foundNode) {
-        return foundNode; // 鍦ㄥ瓙鑺傜偣涓壘鍒帮紝杩斿洖璇ヨ妭鐐�
-      }
-    }
-  }
-  return null; // 娌℃湁鎵惧埌鑺傜偣锛岃繑鍥瀗ull
-};
-function convertIdToValue(data) {
-  return data.map((item) => {
-    const { id, children, ...rest } = item;
-    const newItem = {
-      ...rest,
-      value: id, // 灏� id 鏀逛负 value
-    };
-    if (children && children.length > 0) {
-      newItem.children = convertIdToValue(children);
-    }
-    
-    return newItem;
-  });
-}
-// 鎻愪氦浜у搧琛ㄥ崟
-const submitForm = () => {
-  proxy.$refs.formRef.validate(valid => {
-    if (valid) {
-      if (operationType.value === "add") {
-        qualityUnqualifiedAdd(form.value).then(res => {
-          proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-          closeDia();
-        })
-      } else {
-        qualityUnqualifiedUpdate(form.value).then(res => {
-          proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-          closeDia();
-        })
-      }
-    }
-  })
-}
-// 鍏抽棴寮规
-const closeDia = () => {
-  proxy.resetForm("formRef");
-  dialogFormVisible.value = false;
-  emit('close')
-};
-defineExpose({
-  openDialog,
-});
-</script>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue b/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue
deleted file mode 100644
index 196eda0..0000000
--- a/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue
+++ /dev/null
@@ -1,257 +0,0 @@
-<template>
-  <div>
-    <el-dialog
-        v-model="dialogFormVisible"
-        :title="operationType === 'add' ? '鏂板涓嶅悎鏍煎鐞�' : '澶勭悊涓嶅悎鏍�'"
-        width="70%"
-        @close="closeDia"
-    >
-      <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="鐘舵�侊細" prop="inspectState">
-              <el-select v-model="form.inspectState">
-                <el-option label="寰呭鐞�" :value="0" />
-                <el-option label="宸插鐞�" :value="1" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="绫诲埆锛�" prop="inspectType">
-              <el-select v-model="form.inspectType" disabled>
-                <el-option label="鍘熸潗鏂欐楠�" :value="0" />
-                <el-option label="杩囩▼妫�楠�" :value="1" />
-                <el-option label="鍑哄巶妫�楠�" :value="2" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="浜у搧鍚嶇О锛�" prop="productId">
-              <el-tree-select
-                  v-model="form.productId"
-                  placeholder="璇烽�夋嫨"
-                  clearable
-                  disabled
-                  check-strictly
-                  @change="getModels"
-                  :data="productOptions"
-                  :render-after-expand="false"
-                  style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="model">
-              <el-input v-model="form.model" placeholder="璇疯緭鍏�" clearable disabled/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="鍗曚綅锛�" prop="unit">
-              <el-input v-model="form.unit" placeholder="璇疯緭鍏�" clearable disabled/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鏁伴噺锛�" prop="quantity">
-              <el-input v-model="form.quantity" placeholder="璇疯緭鍏�" clearable disabled/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="妫�楠屽憳锛�" prop="checkName">
-              <el-input v-model="form.checkName" placeholder="璇疯緭鍏�" clearable disabled/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="妫�娴嬫棩鏈燂細" prop="checkTime">
-              <el-date-picker
-                  v-model="form.checkTime"
-                  type="date"
-                  disabled
-                  placeholder="璇烽�夋嫨鏃ユ湡"
-                  value-format="YYYY-MM-DD"
-                  format="YYYY-MM-DD"
-                  clearable
-                  style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="涓嶅悎鏍肩幇璞★細" prop="defectivePhenomena">
-              <el-input v-model="form.defectivePhenomena" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="澶勭悊缁撴灉锛�" prop="dealResult">
-              <el-input v-model="form.dealResult" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="澶勭悊浜猴細" prop="dealName">
-              <el-input v-model="form.dealName" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="澶勭悊鏃ユ湡锛�" prop="dealTime">
-              <el-date-picker
-                  v-model="form.dealTime"
-                  type="date"
-                  placeholder="璇烽�夋嫨鏃ユ湡"
-                  value-format="YYYY-MM-DD"
-                  format="YYYY-MM-DD"
-                  clearable
-                  style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭</el-button>
-          <el-button @click="closeDia">鍙栨秷</el-button>
-        </div>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import {ref} from "vue";
-import {productTreeList} from "@/api/basicData/product.js";
-import {
-  getQualityUnqualifiedInfo,
-  qualityUnqualifiedAdd,
-  qualityUnqualifiedUpdate
-} from "@/api/qualityManagement/nonconformingManagement.js";
-const { proxy } = getCurrentInstance()
-const emit = defineEmits(['close'])
-
-const dialogFormVisible = ref(false);
-const operationType = ref('')
-const data = reactive({
-  form: {
-    checkTime: "",
-    process: "",
-    checkName: "",
-    productName: "",
-    productId: "",
-    model: "",
-    unit: "",
-    quantity: "",
-    checkCompany: "",
-    checkResult: "",
-    inspectState: '',
-    inspectType: '',
-    defectivePhenomena: '',
-    dealResult: '',
-    dealName: '',
-    dealTime: '',
-  },
-  rules: {
-    checkTime: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" },],
-    process: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    productId: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    model: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    unit: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    quantity: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkResult: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    defectivePhenomena: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    dealResult: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    dealName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    dealTime: [{ required: true, message: "璇疯緭鍏�", trigger: "change" }],
-  },
-});
-const { form, rules } = toRefs(data);
-const productOptions = ref([]);
-
-// 鎵撳紑寮规
-const openDialog = (type, row) => {
-  operationType.value = type;
-  dialogFormVisible.value = true;
-  form.value = {}
-  getProductOptions();
-  if (operationType.value === 'edit') {
-    getQualityUnqualifiedInfo(row.id).then(res => {
-      form.value = {...res.data}
-    })
-  }
-}
-const getProductOptions = () => {
-  productTreeList().then((res) => {
-    productOptions.value = convertIdToValue(res);
-  });
-};
-const getModels = (value) => {
-  form.value.productName = findNodeById(productOptions.value, value);
-};
-const findNodeById = (nodes, productId) => {
-  for (let i = 0; i < nodes.length; i++) {
-    if (nodes[i].value === productId) {
-      return nodes[i].label; // 鎵惧埌鑺傜偣锛岃繑鍥炶鑺傜偣
-    }
-    if (nodes[i].children && nodes[i].children.length > 0) {
-      const foundNode = findNodeById(nodes[i].children, productId);
-      if (foundNode) {
-        return foundNode; // 鍦ㄥ瓙鑺傜偣涓壘鍒帮紝杩斿洖璇ヨ妭鐐�
-      }
-    }
-  }
-  return null; // 娌℃湁鎵惧埌鑺傜偣锛岃繑鍥瀗ull
-};
-function convertIdToValue(data) {
-  return data.map((item) => {
-    const { id, children, ...rest } = item;
-    const newItem = {
-      ...rest,
-      value: id, // 灏� id 鏀逛负 value
-    };
-    if (children && children.length > 0) {
-      newItem.children = convertIdToValue(children);
-    }
-    
-    return newItem;
-  });
-}
-// 鎻愪氦浜у搧琛ㄥ崟
-const submitForm = () => {
-  proxy.$refs.formRef.validate(valid => {
-    if (valid) {
-      if (operationType.value === "add") {
-        qualityUnqualifiedAdd(form.value).then(res => {
-          proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-          closeDia();
-        })
-      } else {
-        qualityUnqualifiedUpdate(form.value).then(res => {
-          proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-          closeDia();
-        })
-      }
-    }
-  })
-}
-// 鍏抽棴寮规
-const closeDia = () => {
-  proxy.resetForm("formRef");
-  dialogFormVisible.value = false;
-  emit('close')
-};
-defineExpose({
-  openDialog,
-});
-</script>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/src/views/qualityManagement/nonconformingManagement/index.vue b/src/views/qualityManagement/nonconformingManagement/index.vue
deleted file mode 100644
index c0fd2ca..0000000
--- a/src/views/qualityManagement/nonconformingManagement/index.vue
+++ /dev/null
@@ -1,304 +0,0 @@
-<template>
-  <div class="app-container">
-    <div class="search_form">
-      <div style="display: flex;flex-direction: row;align-items: center;">
-        <div>
-          <span class="search_title">绫诲瀷锛�</span>
-          <el-select v-model="searchForm.inspectType" clearable style="width: 200px" @change="handleQuery">
-            <el-option label="鍘熸潗鏂欐楠�" :value="0" />
-            <el-option label="杩囩▼妫�楠�" :value="1" />
-            <el-option label="鍑哄巶妫�楠�" :value="2" />
-          </el-select>
-        </div>
-        <div style="margin-left: 10px">
-          <span class="search_title">鐘舵�侊細</span>
-          <el-select v-model="searchForm.inspectState" clearable style="width: 200px" @change="handleQuery">
-            <el-option label="寰呭鐞�" :value="0" />
-            <el-option label="宸插鐞�" :value="1" />
-          </el-select>
-        </div>
-        <div style="margin-left: 10px">
-          <span class="search_title">浜у搧鍚嶇О锛�</span>
-          <el-input
-              v-model="searchForm.productName"
-              style="width: 200px"
-              placeholder="璇疯緭鍏ヤ骇鍝佸悕绉版悳绱�"
-              @change="handleQuery"
-              clearable
-              :prefix-icon="Search"
-          />
-        </div>
-        <span  style="margin-left: 10px" class="search_title">妫�娴嬫棩鏈燂細</span>
-        <el-date-picker  v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
-												 style="width: 300px"
-                         placeholder="璇烽�夋嫨" clearable @change="changeDaterange" />
-        <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>
-      </div>
-      <div>
-        <el-button type="primary" @click="openForm('add')">鏂板</el-button>
-        <el-button @click="handleOut">瀵煎嚭</el-button>
-        <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
-      </div>
-    </div>
-    <div class="table_list">
-      <PIMTable
-          rowKey="id"
-          :column="tableColumn"
-          :tableData="tableData"
-          :page="page"
-          :isSelection="true"
-          @selection-change="handleSelectionChange"
-          :tableLoading="tableLoading"
-          @pagination="pagination"
-          :total="page.total"
-      ></PIMTable>
-    </div>
-    <FormDia ref="formDia" @close="handleQuery"></FormDia>
-    <InspectionFormDia ref="inspectionFormDia" @close="handleQuery"></InspectionFormDia>
-  </div>
-</template>
-
-<script setup>
-import { Search } from "@element-plus/icons-vue";
-import {onMounted, ref} from "vue";
-import FormDia from "@/views/qualityManagement/nonconformingManagement/components/formDia.vue";
-import {ElMessageBox} from "element-plus";
-import {qualityUnqualifiedDel, qualityUnqualifiedListPage} from "@/api/qualityManagement/nonconformingManagement.js";
-import InspectionFormDia from "@/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue";
-import dayjs from "dayjs";
-
-const data = reactive({
-  searchForm: {
-    inspectType: "",
-    inspectState: "",
-    productName: "",
-    entryDate: undefined, // 褰曞叆鏃ユ湡
-    entryDateStart: undefined,
-    entryDateEnd: undefined,
-  },
-});
-const { searchForm } = toRefs(data);
-const tableColumn = ref([
-  {
-    label: "鐘舵��",
-    prop: "inspectState",
-    dataType: "tag",
-    formatData: (params) => {
-      if (params == 0) {
-        return "寰呭鐞�";
-      } else if (params == 1) {
-        return "宸插鐞�";
-      } else {
-        return null;
-      }
-    },
-    formatType: (params) => {
-      if (params == '涓嶅悎鏍�') {
-        return "danger";
-      } else if (params == '鍚堟牸') {
-        return "success";
-      } else {
-        return null;
-      }
-    },
-  },
-  {
-    label: "妫�娴嬫棩鏈�",
-    prop: "checkTime",
-    width: 120
-  },
-  {
-    label: "绫诲埆",
-    prop: "inspectType",
-    dataType: "tag",
-    width: 120,
-    formatData: (params) => {
-      if (params == 0) {
-        return "鍘熸潗鏂欐楠�";
-      } else if (params == 1) {
-        return "杩囩▼妫�楠�";
-      } else {
-        return '鍑哄巶妫�楠�';
-      }
-    },
-    formatType: (params) => {
-      if (params == '涓嶅悎鏍�') {
-        return "info";
-      } else if (params == '鍚堟牸') {
-        return "success";
-      } else {
-        return 'primary';
-      }
-    },
-  },
-  {
-    label: "妫�楠屽憳",
-    prop: "checkName",
-  },
-  {
-    label: "浜у搧鍚嶇О",
-    prop: "productName",
-  },
-  {
-    label: "瑙勬牸鍨嬪彿",
-    prop: "model",
-  },
-  {
-    label: "鍗曚綅",
-    prop: "unit",
-  },
-  {
-    label: "鏁伴噺",
-    prop: "quantity",
-    width: 100
-  },
-  {
-    label: "涓嶅悎鏍肩幇璞�",
-    prop: "defectivePhenomena",
-    width: 120
-  },
-  {
-    label: "澶勭悊缁撴灉",
-    prop: "dealResult",
-    width: 120
-  },
-  {
-    label: "澶勭悊浜�",
-    prop: "dealName",
-    width: 120
-  },
-  {
-    label: "澶勭悊鏃ユ湡",
-    prop: "dealTime",
-    width: 120
-  },
-  {
-    dataType: "action",
-    label: "鎿嶄綔",
-    align: "center",
-    fixed: "right",
-    width: 120,
-    operation: [
-      {
-        name: "缂栬緫",
-        type: "text",
-        clickFun: (row) => {
-          openForm("edit", row);
-        },
-      },
-      {
-        name: "澶勭悊",
-        type: "text",
-        clickFun: (row) => {
-          openInspectionForm("edit", row);
-        },
-      },
-    ],
-  },
-]);
-const tableData = ref([]);
-const selectedRows = ref([]);
-const tableLoading = ref(false);
-const page = reactive({
-  current: 1,
-  size: 100,
-  total: 0
-});
-const formDia = ref()
-const inspectionFormDia = ref()
-const { proxy } = getCurrentInstance()
-
-const changeDaterange = (value) => {
-  searchForm.value.entryDateStart = undefined;
-  searchForm.value.entryDateEnd = undefined;
-  if (value) {
-    searchForm.value.entryDateStart = dayjs(value[0]).format("YYYY-MM-DD");
-    searchForm.value.entryDateEnd = dayjs(value[1]).format("YYYY-MM-DD");
-  }
-  getList();
-};
-// 鏌ヨ鍒楄〃
-/** 鎼滅储鎸夐挳鎿嶄綔 */
-const handleQuery = () => {
-  page.current = 1;
-  getList();
-};
-const pagination = (obj) => {
-  page.current = obj.page;
-  page.size = obj.limit;
-  getList();
-};
-const getList = () => {
-  tableLoading.value = true;
-  const params = { ...searchForm.value, ...page };
-  params.entryDate = undefined
-  qualityUnqualifiedListPage(params).then(res => {
-    tableLoading.value = false;
-    tableData.value = res.data.records
-    page.total = res.data.total;
-  }).catch(err => {
-    tableLoading.value = false;
-  })
-};
-// 琛ㄦ牸閫夋嫨鏁版嵁
-const handleSelectionChange = (selection) => {
-  selectedRows.value = selection;
-};
-
-// 鎵撳紑寮规
-const openForm = (type, row) => {
-  nextTick(() => {
-    formDia.value?.openDialog(type, row)
-  })
-};
-// 鎵撳紑澶勭悊寮规
-const openInspectionForm = (type, row) => {
-  nextTick(() => {
-    inspectionFormDia.value?.openDialog(type, row)
-  })
-};
-
-// 鍒犻櫎
-const handleDelete = () => {
-  let ids = [];
-  if (selectedRows.value.length > 0) {
-    ids = selectedRows.value.map((item) => item.id);
-  } else {
-    proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
-    return;
-  }
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  })
-      .then(() => {
-        qualityUnqualifiedDel(ids).then((res) => {
-          proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-          getList();
-        });
-      })
-      .catch(() => {
-        proxy.$modal.msg("宸插彇娑�");
-      });
-};
-// 瀵煎嚭
-const handleOut = () => {
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  })
-      .then(() => {
-        proxy.download("/quality/qualityUnqualified/export", {}, "涓嶅悎鏍肩鐞�.xlsx");
-      })
-      .catch(() => {
-        proxy.$modal.msg("宸插彇娑�");
-      });
-};
-onMounted(() => {
-  getList();
-});
-</script>
-
-<style scoped></style>
diff --git a/src/views/qualityManagement/processInspection/components/filesDia.vue b/src/views/qualityManagement/processInspection/components/filesDia.vue
deleted file mode 100644
index fb47850..0000000
--- a/src/views/qualityManagement/processInspection/components/filesDia.vue
+++ /dev/null
@@ -1,197 +0,0 @@
-<template>
-  <div>
-    <el-dialog
-        v-model="dialogFormVisible"
-        title="涓婁紶闄勪欢"
-        width="50%"
-        @close="closeDia"
-    >
-      <div style="margin-bottom: 10px;text-align: right">
-        <el-upload
-            v-model:file-list="fileList"
-            class="upload-demo"
-            :action="uploadUrl"
-            :on-success="handleUploadSuccess"
-            :on-error="handleUploadError"
-            name="file"
-            :show-file-list="false"
-            :headers="headers"
-            style="display: inline;margin-right: 10px"
-        >
-          <el-button type="primary">涓婁紶闄勪欢</el-button>
-        </el-upload>
-        <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
-      </div>
-      <PIMTable
-          rowKey="id"
-          :column="tableColumn"
-          :tableData="tableData"
-          :tableLoading="tableLoading"
-          :isSelection="true"
-          @selection-change="handleSelectionChange"
-          height="500"
-      >
-      </PIMTable>
-			<pagination
-				style="margin: 10px 0"
-				v-show="total > 0"
-				@pagination="paginationSearch"
-				:total="total"
-				:page="page.current"
-				:limit="page.size"
-			/>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button @click="closeDia">鍙栨秷</el-button>
-        </div>
-      </template>
-    </el-dialog>
-		<filePreview ref="filePreviewRef" />
-  </div>
-</template>
-
-<script setup>
-import {ref} from "vue";
-import filePreview from '@/components/filePreview/index.vue'
-import {ElMessageBox} from "element-plus";
-import {getToken} from "@/utils/auth.js";
-import {
-  qualityInspectFileAdd,
-  qualityInspectFileDel,
-  qualityInspectFileListPage
-} from "@/api/qualityManagement/qualityInspectFile.js";
-import Pagination from "@/components/PIMTable/Pagination.vue";
-const { proxy } = getCurrentInstance()
-const emit = defineEmits(['close'])
-
-const dialogFormVisible = ref(false);
-const currentId = ref('')
-const selectedRows = ref([]);
-const filePreviewRef = ref()
-const tableColumn = ref([
-  {
-    label: "鏂囦欢鍚嶇О",
-    prop: "name",
-  },
-  {
-    dataType: "action",
-    label: "鎿嶄綔",
-    align: "center",
-    operation: [
-      {
-        name: "涓嬭浇",
-        type: "text",
-        clickFun: (row) => {
-          downLoadFile(row);
-        },
-      },
-			{
-				name: "棰勮",
-				type: "text",
-				clickFun: (row) => {
-					lookFile(row);
-				},
-			}
-    ],
-  },
-]);
-const page = reactive({
-	current: 1,
-	size: 100,
-});
-const total = ref(0);
-const tableData = ref([]);
-const fileList = ref([]);
-const tableLoading = ref(false);
-const headers = ref({
-  Authorization: "Bearer " + getToken(),
-});
-const uploadUrl = ref(import.meta.env.VITE_APP_BASE_API + "/file/upload"); // 涓婁紶鐨勫浘鐗囨湇鍔″櫒鍦板潃
-
-// 鎵撳紑寮规
-const openDialog = (row) => {
-  dialogFormVisible.value = true;
-  currentId.value = row.id;
-  getList()
-}
-const paginationSearch = (obj) => {
-	page.current = obj.page;
-	page.size = obj.limit;
-	getList();
-};
-const getList = () => {
-  qualityInspectFileListPage({inspectId: currentId.value}).then(res => {
-    tableData.value = res.data.records;
-		total.value = res.data.total;
-  })
-}
-// 琛ㄦ牸閫夋嫨鏁版嵁
-const handleSelectionChange = (selection) => {
-  selectedRows.value = selection;
-};
-// 涓嬭浇闄勪欢
-const downLoadFile = (row) => {
-  proxy.$download.name(row.url);
-}
-// 鍏抽棴寮规
-const closeDia = () => {
-  dialogFormVisible.value = false;
-  emit('close')
-};
-// 涓婁紶鎴愬姛澶勭悊
-function handleUploadSuccess(res, file) {
-  // 濡傛灉涓婁紶鎴愬姛
-  if (res.code == 200) {
-    const fileRow = {}
-    fileRow.name = res.data.originalName
-    fileRow.url = res.data.tempPath
-    uploadFile(fileRow)
-  } else {
-    proxy.$modal.msgError("鏂囦欢涓婁紶澶辫触");
-  }
-}
-function uploadFile(file) {
-  file.inspectId = currentId.value;
-  qualityInspectFileAdd(file).then(res => {
-    proxy.$modal.msgSuccess("鏂囦欢涓婁紶鎴愬姛");
-    getList()
-  })
-}
-// 涓婁紶澶辫触澶勭悊
-function handleUploadError() {
-  proxy.$modal.msgError("鏂囦欢涓婁紶澶辫触");
-}
-// 棰勮闄勪欢
-const lookFile = (row) => {
-	filePreviewRef.value.open(row.url)
-}
-// 鍒犻櫎
-const handleDelete = () => {
-  let ids = [];
-  if (selectedRows.value.length > 0) {
-    ids = selectedRows.value.map((item) => item.id);
-  } else {
-    proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
-    return;
-  }
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  }).then(() => {
-    qualityInspectFileDel(ids).then((res) => {
-      proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-      getList();
-    });
-  }).catch(() => {
-    proxy.$modal.msg("宸插彇娑�");
-  });
-};
-defineExpose({
-  openDialog,
-});
-</script>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/src/views/qualityManagement/processInspection/components/formDia.vue b/src/views/qualityManagement/processInspection/components/formDia.vue
deleted file mode 100644
index 6126e6b..0000000
--- a/src/views/qualityManagement/processInspection/components/formDia.vue
+++ /dev/null
@@ -1,285 +0,0 @@
-<template>
-  <div>
-    <el-dialog
-        v-model="dialogFormVisible"
-        :title="operationType === 'add' ? '鏂板杩囩▼妫�楠�' : '缂栬緫杩囩▼妫�楠�'"
-        width="70%"
-        @close="closeDia"
-    >
-      <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="宸ュ簭锛�" prop="process">
-              <el-input v-model="form.process" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="浜у搧鍚嶇О锛�" prop="productId">
-              <el-tree-select
-                  v-model="form.productId"
-                  placeholder="璇烽�夋嫨"
-                  clearable
-                  check-strictly
-                  @change="getModels"
-                  :data="productOptions"
-                  :render-after-expand="false"
-                  style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="model">
-              <el-input v-model="form.model" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="鍗曚綅锛�" prop="unit">
-              <el-input v-model="form.unit" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鏁伴噺锛�" prop="quantity">
-              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�" clearable :precision="2"/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="妫�娴嬪崟浣嶏細" prop="checkCompany">
-              <el-input v-model="form.checkCompany" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="妫�娴嬬粨鏋滐細" prop="checkResult">
-              <el-select v-model="form.checkResult">
-                <el-option label="鍚堟牸" value="鍚堟牸" />
-                <el-option label="涓嶅悎鏍�" value="涓嶅悎鏍�" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="妫�楠屽憳锛�" prop="checkName">
-							<el-select v-model="form.checkName" placeholder="璇烽�夋嫨" clearable>
-								<el-option v-for="item in userList" :key="item.nickName" :label="item.nickName"
-													 :value="item.nickName"/>
-							</el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="妫�娴嬫棩鏈燂細" prop="checkTime">
-              <el-date-picker
-                  v-model="form.checkTime"
-                  type="date"
-                  placeholder="璇烽�夋嫨鏃ユ湡"
-                  value-format="YYYY-MM-DD"
-                  format="YYYY-MM-DD"
-                  clearable
-                  style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-			<PIMTable
-				rowKey="id"
-				:column="tableColumn"
-				:tableData="tableData"
-				:tableLoading="tableLoading"
-				height="400"
-			>
-				<template #slot="{ row }">
-					<el-input v-model="row.testValue" clearable/>
-				</template>
-			</PIMTable>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭</el-button>
-          <el-button @click="closeDia">鍙栨秷</el-button>
-        </div>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import {ref} from "vue";
-import {getOptions} from "@/api/procurementManagement/procurementLedger.js";
-import {productTreeList} from "@/api/basicData/product.js";
-import {qualityInspectAdd, qualityInspectUpdate} from "@/api/qualityManagement/rawMaterialInspection.js";
-import {qualityInspectDetailByProductId} from "@/api/qualityManagement/metricMaintenance.js";
-import {userListNoPage} from "@/api/system/user.js";
-import {qualityInspectParamInfo} from "@/api/qualityManagement/qualityInspectParam.js";
-const { proxy } = getCurrentInstance()
-const emit = defineEmits(['close'])
-
-const dialogFormVisible = ref(false);
-const operationType = ref('')
-const data = reactive({
-  form: {
-    checkTime: "",
-    process: "",
-    checkName: "",
-    productName: "",
-    productId: "",
-    model: "",
-    unit: "",
-    quantity: "",
-    checkCompany: "",
-    checkResult: "",
-  },
-  rules: {
-    checkTime: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
-    process: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    productId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    model: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    unit: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    quantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkResult: [{ required: true, message: "璇疯緭鍏�", trigger: "change" }],
-  },
-});
-const userList = ref([]);
-const { form, rules } = toRefs(data);
-const supplierList = ref([]);
-const productOptions = ref([]);
-const tableColumn = ref([
-	{
-		label: "鎸囨爣",
-		prop: "parameterItem",
-	},
-	{
-		label: "鍗曚綅",
-		prop: "unit",
-	},
-	{
-		label: "鏍囧噯鍊�",
-		prop: "standardValue",
-	},
-	{
-		label: "鍐呮帶鍊�",
-		prop: "controlValue",
-	},
-	{
-		label: "妫�楠屽��",
-		prop: "testValue",
-		dataType: 'slot',
-		slot: 'slot',
-	},
-]);
-const tableData = ref([]);
-const tableLoading = ref(false);
-const currentProductId = ref(0);
-
-// 鎵撳紑寮规
-const openDialog = async (type, row) => {
-	operationType.value = type;
-	dialogFormVisible.value = true;
-	getOptions().then((res) => {
-		supplierList.value = res.data;
-	});
-	let userLists = await userListNoPage();
-	userList.value = userLists.data;
-	form.value = {}
-	getProductOptions();
-	if (operationType.value === 'edit') {
-		form.value = {...row}
-		currentProductId.value = row.productId || 0
-		getQualityInspectParamList(row.id)
-	}
-}
-const getProductOptions = () => {
-  productTreeList().then((res) => {
-    productOptions.value = convertIdToValue(res);
-  });
-};
-const getModels = (value) => {
-	currentProductId.value = value
-  form.value.productName = findNodeById(productOptions.value, value);
-	if (currentProductId) {
-		getList();
-	}
-};
-const findNodeById = (nodes, productId) => {
-  for (let i = 0; i < nodes.length; i++) {
-    if (nodes[i].value === productId) {
-      return nodes[i].label; // 鎵惧埌鑺傜偣锛岃繑鍥炶鑺傜偣
-    }
-    if (nodes[i].children && nodes[i].children.length > 0) {
-      const foundNode = findNodeById(nodes[i].children, productId);
-      if (foundNode) {
-        return foundNode; // 鍦ㄥ瓙鑺傜偣涓壘鍒帮紝杩斿洖璇ヨ妭鐐�
-      }
-    }
-  }
-  return null; // 娌℃湁鎵惧埌鑺傜偣锛岃繑鍥瀗ull
-};
-function convertIdToValue(data) {
-  return data.map((item) => {
-    const { id, children, ...rest } = item;
-    const newItem = {
-      ...rest,
-      value: id, // 灏� id 鏀逛负 value
-    };
-    if (children && children.length > 0) {
-      newItem.children = convertIdToValue(children);
-    }
-    
-    return newItem;
-  });
-}
-// 鎻愪氦浜у搧琛ㄥ崟
-const submitForm = () => {
-  proxy.$refs.formRef.validate(valid => {
-    if (valid) {
-      form.value.inspectType = 1
-			if (operationType.value === "add") {
-				tableData.value.forEach((item) => {
-					delete item.id
-				})
-			}
-			const data = {...form.value, qualityInspectParams: tableData.value}
-      if (operationType.value === "add") {
-        qualityInspectAdd(data).then(res => {
-          proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-          closeDia();
-        })
-      } else {
-        qualityInspectUpdate(data).then(res => {
-          proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-          closeDia();
-        })
-      }
-    }
-  })
-}
-const getList = () => {
-	qualityInspectDetailByProductId(currentProductId.value).then(res => {
-		tableData.value = res.data;
-	})
-}
-const getQualityInspectParamList = (id) => {
-	qualityInspectParamInfo(id).then(res => {
-		tableData.value = res.data;
-	})
-}
-// 鍏抽棴寮规
-const closeDia = () => {
-  proxy.resetForm("formRef");
-  dialogFormVisible.value = false;
-  emit('close')
-};
-defineExpose({
-  openDialog,
-});
-</script>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/src/views/qualityManagement/processInspection/components/inspectionFormDia.vue b/src/views/qualityManagement/processInspection/components/inspectionFormDia.vue
deleted file mode 100644
index 32a36fa..0000000
--- a/src/views/qualityManagement/processInspection/components/inspectionFormDia.vue
+++ /dev/null
@@ -1,140 +0,0 @@
-<template>
-  <div>
-    <el-dialog
-        v-model="dialogFormVisible"
-        title="濉啓妫�楠岃褰�"
-        width="70%"
-        @close="closeDia"
-    >
-      <div style="margin-bottom: 10px;text-align: right">
-        <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
-      </div>
-      <PIMTable
-          rowKey="id"
-          :column="tableColumn"
-          :tableData="tableData"
-          :tableLoading="tableLoading"
-          :isSelection="true"
-          @selection-change="handleSelectionChange"
-          height="600"
-      >
-        <template #slot="{ row }">
-          <el-input v-model="row.testValue" clearable/>
-        </template>
-      </PIMTable>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭</el-button>
-          <el-button @click="closeDia">鍙栨秷</el-button>
-        </div>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import {ref} from "vue";
-import {getStaffJoinInfo, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js";
-import {Search} from "@element-plus/icons-vue";
-import {
-  qualityInspectParamDel,
-  qualityInspectParamInfo,
-  qualityInspectParamUpdate
-} from "@/api/qualityManagement/qualityInspectParam.js";
-import {ElMessageBox} from "element-plus";
-const { proxy } = getCurrentInstance()
-const emit = defineEmits(['close'])
-
-const dialogFormVisible = ref(false);
-const operationType = ref('')
-const currentId = ref('')
-const selectedRows = ref([]);
-const tableColumn = ref([
-  {
-    label: "鎸囨爣",
-    prop: "parameterItem",
-  },
-  {
-    label: "鍗曚綅",
-    prop: "unit",
-  },
-  {
-    label: "鏍囧噯鍊�",
-    prop: "standardValue",
-  },
-  {
-    label: "鍐呮帶鍊�",
-    prop: "controlValue",
-  },
-  {
-    label: "妫�楠屽��",
-    prop: "testValue",
-    dataType: 'slot',
-    slot: 'slot',
-  },
-]);
-const tableData = ref([]);
-const tableLoading = ref(false);
-
-// 鎵撳紑寮规
-const openDialog = (type, row) => {
-  operationType.value = type;
-  dialogFormVisible.value = true;
-  if (operationType.value === 'edit') {
-    currentId.value = row.id;
-    getList()
-  }
-}
-const getList = () => {
-  qualityInspectParamInfo(currentId.value).then(res => {
-    tableData.value = res.data;
-  })
-}
-// 琛ㄦ牸閫夋嫨鏁版嵁
-const handleSelectionChange = (selection) => {
-  selectedRows.value = selection;
-};
-// 鎻愪氦浜у搧琛ㄥ崟
-const submitForm = () => {
-  qualityInspectParamUpdate(tableData.value).then(res => {
-    proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-    closeDia();
-  })
-}
-// 鍏抽棴寮规
-const closeDia = () => {
-  dialogFormVisible.value = false;
-  emit('close')
-};
-// 鍒犻櫎
-const handleDelete = () => {
-  let ids = [];
-  if (selectedRows.value.length > 0) {
-    ids = selectedRows.value.map((item) => item.id);
-  } else {
-    proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
-    return;
-  }
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  })
-      .then(() => {
-        qualityInspectParamDel(ids).then((res) => {
-          proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-          getList();
-        });
-      })
-      .catch(() => {
-        proxy.$modal.msg("宸插彇娑�");
-      });
-};
-defineExpose({
-  openDialog,
-});
-</script>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/src/views/qualityManagement/processInspection/index.vue b/src/views/qualityManagement/processInspection/index.vue
deleted file mode 100644
index cebda55..0000000
--- a/src/views/qualityManagement/processInspection/index.vue
+++ /dev/null
@@ -1,377 +0,0 @@
-<template>
-  <div class="app-container">
-    <div class="search_form">
-      <div>
-        <span class="search_title">宸ュ簭锛�</span>
-        <el-input
-            v-model="searchForm.process"
-            style="width: 240px"
-            placeholder="璇疯緭鍏ュ伐搴忔悳绱�"
-            @change="handleQuery"
-            clearable
-            :prefix-icon="Search"
-        />
-        <span  style="margin-left: 10px" class="search_title">妫�娴嬫棩鏈燂細</span>
-        <el-date-picker  v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
-                         placeholder="璇烽�夋嫨" clearable @change="changeDaterange" />
-        <el-button type="primary" @click="handleQuery" style="margin-left: 10px"
-        >鎼滅储</el-button
-        >
-      </div>
-      <div>
-        <el-button type="primary" @click="openForm('add')">鏂板</el-button>
-        <el-button @click="handleOut">瀵煎嚭</el-button>
-        <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
-      </div>
-    </div>
-    <div class="table_list">
-      <PIMTable
-          rowKey="id"
-          :column="tableColumn"
-          :tableData="tableData"
-          :page="page"
-          :isSelection="true"
-          @selection-change="handleSelectionChange"
-          :tableLoading="tableLoading"
-          @pagination="pagination"
-          :total="page.total"
-      ></PIMTable>
-    </div>
-    <InspectionFormDia ref="inspectionFormDia" @close="handleQuery"></InspectionFormDia>
-    <FormDia ref="formDia" @close="handleQuery"></FormDia>
-    <files-dia ref="filesDia" @close="handleQuery"></files-dia>
-		<el-dialog v-model="dialogFormVisible" title="缂栬緫妫�楠屽憳" width="30%"
-							 @close="closeDia">
-			<el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
-				<el-form-item label="妫�楠屽憳锛�" prop="checkName">
-					<el-select v-model="form.checkName" placeholder="璇烽�夋嫨" clearable>
-						<el-option v-for="item in userList" :key="item.nickName" :label="item.nickName"
-											 :value="item.nickName"/>
-					</el-select>
-				</el-form-item>
-			</el-form>
-			<template #footer>
-				<div class="dialog-footer">
-					<el-button type="primary" @click="submitForm">纭</el-button>
-					<el-button @click="closeDia">鍙栨秷</el-button>
-				</div>
-			</template>
-		</el-dialog>
-  </div>
-</template>
-
-<script setup>
-import { Search } from "@element-plus/icons-vue";
-import {onMounted, ref} from "vue";
-import InspectionFormDia from "@/views/qualityManagement/processInspection/components/inspectionFormDia.vue";
-import FormDia from "@/views/qualityManagement/processInspection/components/formDia.vue";
-import {ElMessageBox} from "element-plus";
-import {
-	downloadQualityInspect,
-	qualityInspectDel,
-	qualityInspectListPage, qualityInspectUpdate,
-	submitQualityInspect
-} from "@/api/qualityManagement/rawMaterialInspection.js";
-import FilesDia from "@/views/qualityManagement/processInspection/components/filesDia.vue";
-import dayjs from "dayjs";
-import {userListNoPage} from "@/api/system/user.js";
-
-const data = reactive({
-  searchForm: {
-    process: "",
-    entryDate: undefined, // 褰曞叆鏃ユ湡
-    entryDateStart: undefined,
-    entryDateEnd: undefined,
-  },
-	rules: {
-		checkName: [{required: true, message: "璇烽�夋嫨", trigger: "change"}],
-	},
-});
-const { searchForm } = toRefs(data);
-const tableColumn = ref([
-  {
-    label: "妫�娴嬫棩鏈�",
-    prop: "checkTime",
-    width: 120
-  },
-  {
-    label: "宸ュ簭",
-    prop: "process",
-    width: 230
-  },
-  {
-    label: "妫�楠屽憳",
-    prop: "checkName",
-  },
-  {
-    label: "浜у搧鍚嶇О",
-    prop: "productName",
-  },
-  {
-    label: "瑙勬牸鍨嬪彿",
-    prop: "model",
-  },
-  {
-    label: "鍗曚綅",
-    prop: "unit",
-  },
-  {
-    label: "鏁伴噺",
-    prop: "quantity",
-    width: 100
-  },
-  {
-    label: "妫�娴嬪崟浣�",
-    prop: "checkCompany",
-    width: 120
-  },
-  {
-    label: "妫�娴嬬粨鏋�",
-    prop: "checkResult",
-    dataType: "tag",
-    formatType: (params) => {
-      if (params == '涓嶅悎鏍�') {
-        return "danger";
-      } else if (params == '鍚堟牸') {
-        return "success";
-      } else {
-        return null;
-      }
-    },
-  },
-	{
-		label: "鎻愪氦鐘舵��",
-		prop: "inspectState",
-		formatData: (params) => {
-			if (params) {
-				return "宸叉彁浜�";
-			} else {
-				return "鏈彁浜�";
-			}
-		},
-	},
-  {
-    dataType: "action",
-    label: "鎿嶄綔",
-    align: "center",
-    fixed: "right",
-    width: 280,
-    operation: [
-      {
-        name: "缂栬緫",
-        type: "text",
-        clickFun: (row) => {
-          openForm("edit", row);
-        },
-				disabled: (row) => {
-					return row.inspectState == 1;
-				}
-      },
-      {
-        name: "闄勪欢",
-        type: "text",
-        clickFun: (row) => {
-          openFilesFormDia(row);
-        },
-      },
-			{
-				name: "鎻愪氦",
-				type: "text",
-				clickFun: (row) => {
-					submit(row.id);
-				},
-				disabled: (row) => {
-					return row.inspectState == 1;
-				}
-			},
-			{
-				name: "鍒嗛厤妫�楠屽憳",
-				type: "text",
-				clickFun: (row) => {
-					if (!row.checkName) {
-						open(row)
-					} else {
-						proxy.$modal.msgError("妫�楠屽憳宸插瓨鍦�");
-					}
-				},
-				disabled: (row) => {
-					return row.inspectState == 1 || row.checkName;
-				}
-			},
-			{
-				name: "涓嬭浇",
-				type: "text",
-				clickFun: (row) => {
-					downLoadFile(row);
-				},
-			},
-    ],
-  },
-]);
-const userList = ref([]);
-const currentRow = ref(null)
-const tableData = ref([]);
-const selectedRows = ref([]);
-const tableLoading = ref(false);
-const dialogFormVisible = ref(false);
-const form = ref({
-	checkName: ""
-});
-const page = reactive({
-  current: 1,
-  size: 100,
-  total: 0
-});
-const formDia = ref()
-const filesDia = ref()
-const inspectionFormDia = ref()
-const { proxy } = getCurrentInstance()
-const changeDaterange = (value) => {
-  searchForm.value.entryDateStart = undefined;
-  searchForm.value.entryDateEnd = undefined;
-  if (value) {
-    searchForm.value.entryDateStart = dayjs(value[0]).format("YYYY-MM-DD");
-    searchForm.value.entryDateEnd = dayjs(value[1]).format("YYYY-MM-DD");
-  }
-  getList();
-};
-// 鏌ヨ鍒楄〃
-/** 鎼滅储鎸夐挳鎿嶄綔 */
-const handleQuery = () => {
-  page.current = 1;
-  getList();
-};
-const pagination = (obj) => {
-  page.current = obj.page;
-  page.size = obj.limit;
-  getList();
-};
-const getList = () => {
-  tableLoading.value = true;
-  const params = { ...searchForm.value, ...page };
-  params.entryDate = undefined
-  qualityInspectListPage({...params, inspectType: 1}).then(res => {
-    tableLoading.value = false;
-    tableData.value = res.data.records
-    page.total = res.data.total;
-  }).catch(err => {
-    tableLoading.value = false;
-  })
-};
-// 琛ㄦ牸閫夋嫨鏁版嵁
-const handleSelectionChange = (selection) => {
-  selectedRows.value = selection;
-};
-
-// 鎵撳紑寮规
-const openForm = (type, row) => {
-  nextTick(() => {
-    formDia.value?.openDialog(type, row)
-  })
-};
-// 鎵撳紑鏂板妫�楠屽脊妗�
-const openInspectionForm = (type, row) => {
-  nextTick(() => {
-    inspectionFormDia.value?.openDialog(type, row)
-  })
-};
-// 鎵撳紑闄勪欢寮规
-const openFilesFormDia = (type, row) => {
-  nextTick(() => {
-    filesDia.value?.openDialog(type, row)
-  })
-};
-// 鎻愪环
-const submit = async (id) => {
-	const res = await submitQualityInspect({id: id})
-	if (res.code === 200) {
-		proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-		getList();
-	}
-}
-const open = async (row) => {
-	let userLists = await userListNoPage();
-	userList.value = userLists.data;
-	currentRow.value = row
-	dialogFormVisible.value = true
-}
-// 鍏抽棴寮规
-const closeDia = () => {
-	proxy.resetForm("formRef");
-	dialogFormVisible.value = false;
-};
-const submitForm = () => {
-	if (currentRow.value) {
-		const data = {
-			...form.value,
-			id: currentRow.value.id
-		}
-		qualityInspectUpdate(data).then(res => {
-			proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-			closeDia();
-			getList();
-		})
-	}
-};
-
-// 鍒犻櫎
-const handleDelete = () => {
-  let ids = [];
-  if (selectedRows.value.length > 0) {
-    ids = selectedRows.value.map((item) => item.id);
-  } else {
-    proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
-    return;
-  }
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  })
-      .then(() => {
-        qualityInspectDel(ids).then((res) => {
-          proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-          getList();
-        });
-      })
-      .catch(() => {
-        proxy.$modal.msg("宸插彇娑�");
-      });
-};
-const downLoadFile = (row) => {
-	downloadQualityInspect({ id: row.id }).then((blobData) => {
-		const blob = new Blob([blobData], {
-			type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
-		})
-		const downloadUrl = window.URL.createObjectURL(blob)
-		
-		const link = document.createElement('a')
-		link.href = downloadUrl
-		link.download = '杩囩▼妫�楠屾姤鍛�.docx'
-		document.body.appendChild(link)
-		link.click()
-		
-		document.body.removeChild(link)
-		window.URL.revokeObjectURL(downloadUrl)
-	})
-};
-// 瀵煎嚭
-const handleOut = () => {
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  })
-      .then(() => {
-        proxy.download("/quality/qualityInspect/export", {inspectType: 1}, "杩囩▼妫�楠�.xlsx");
-      })
-      .catch(() => {
-        proxy.$modal.msg("宸插彇娑�");
-      });
-};
-onMounted(() => {
-  getList();
-});
-</script>
-
-<style scoped></style>
diff --git a/src/views/qualityManagement/rawMaterialInspection/components/filesDia.vue b/src/views/qualityManagement/rawMaterialInspection/components/filesDia.vue
deleted file mode 100644
index 9907fbe..0000000
--- a/src/views/qualityManagement/rawMaterialInspection/components/filesDia.vue
+++ /dev/null
@@ -1,198 +0,0 @@
-<template>
-  <div>
-    <el-dialog
-        v-model="dialogFormVisible"
-        title="涓婁紶闄勪欢"
-        width="50%"
-        @close="closeDia"
-    >
-      <div style="margin-bottom: 10px;text-align: right">
-        <el-upload
-            v-model:file-list="fileList"
-            class="upload-demo"
-            :action="uploadUrl"
-            :on-success="handleUploadSuccess"
-            :on-error="handleUploadError"
-            name="file"
-            :show-file-list="false"
-            :headers="headers"
-            style="display: inline;margin-right: 10px"
-        >
-          <el-button type="primary">涓婁紶闄勪欢</el-button>
-        </el-upload>
-        <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
-      </div>
-      <PIMTable
-          rowKey="id"
-          :column="tableColumn"
-          :tableData="tableData"
-          :tableLoading="tableLoading"
-          :isSelection="true"
-          @selection-change="handleSelectionChange"
-          height="500"
-      >
-      </PIMTable>
-			<pagination
-				style="margin: 10px 0"
-				v-show="total > 0"
-				@pagination="paginationSearch"
-				:total="total"
-				:page="page.current"
-				:limit="page.size"
-			/>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button @click="closeDia">鍙栨秷</el-button>
-        </div>
-      </template>
-    </el-dialog>
-		<filePreview ref="filePreviewRef" />
-  </div>
-</template>
-
-<script setup>
-import {ref} from "vue";
-import filePreview from '@/components/filePreview/index.vue'
-import {ElMessageBox} from "element-plus";
-import {getToken} from "@/utils/auth.js";
-import {
-  qualityInspectFileAdd,
-  qualityInspectFileDel,
-  qualityInspectFileListPage
-} from "@/api/qualityManagement/qualityInspectFile.js";
-import Pagination from "@/components/PIMTable/Pagination.vue";
-const { proxy } = getCurrentInstance()
-const emit = defineEmits(['close'])
-
-const dialogFormVisible = ref(false);
-const currentId = ref('')
-const selectedRows = ref([]);
-const tableColumn = ref([
-  {
-    label: "鏂囦欢鍚嶇О",
-    prop: "name",
-  },
-  {
-    dataType: "action",
-    label: "鎿嶄綔",
-    align: "center",
-    operation: [
-      {
-        name: "涓嬭浇",
-        type: "text",
-        clickFun: (row) => {
-          downLoadFile(row);
-        },
-      },
-			{
-				name: "棰勮",
-				type: "text",
-				clickFun: (row) => {
-					lookFile(row);
-				},
-			}
-    ],
-  },
-]);
-const page = reactive({
-	current: 1,
-	size: 100,
-});
-const total = ref(0);
-const tableData = ref([]);
-const fileList = ref([]);
-const tableLoading = ref(false);
-const filePreviewRef = ref()
-const headers = ref({
-  Authorization: "Bearer " + getToken(),
-});
-const uploadUrl = ref(import.meta.env.VITE_APP_BASE_API + "/file/upload"); // 涓婁紶鐨勫浘鐗囨湇鍔″櫒鍦板潃
-
-// 鎵撳紑寮规
-const openDialog = (row) => {
-  dialogFormVisible.value = true;
-  currentId.value = row.id;
-  getList()
-}
-const paginationSearch = (obj) => {
-	page.current = obj.page;
-	page.size = obj.limit;
-	getList();
-};
-const getList = () => {
-  qualityInspectFileListPage({inspectId: currentId.value, ...page}).then(res => {
-    tableData.value = res.data.records;
-		total.value = res.data.total;
-  })
-}
-// 琛ㄦ牸閫夋嫨鏁版嵁
-const handleSelectionChange = (selection) => {
-  selectedRows.value = selection;
-};
-
-// 鍏抽棴寮规
-const closeDia = () => {
-  dialogFormVisible.value = false;
-  emit('close')
-};
-// 涓婁紶鎴愬姛澶勭悊
-function handleUploadSuccess(res, file) {
-  // 濡傛灉涓婁紶鎴愬姛
-  if (res.code == 200) {
-    const fileRow = {}
-    fileRow.name = res.data.originalName
-    fileRow.url = res.data.tempPath
-    uploadFile(fileRow)
-  } else {
-    proxy.$modal.msgError("鏂囦欢涓婁紶澶辫触");
-  }
-}
-function uploadFile(file) {
-  file.inspectId = currentId.value;
-  qualityInspectFileAdd(file).then(res => {
-    proxy.$modal.msgSuccess("鏂囦欢涓婁紶鎴愬姛");
-    getList()
-  })
-}
-// 涓婁紶澶辫触澶勭悊
-function handleUploadError() {
-  proxy.$modal.msgError("鏂囦欢涓婁紶澶辫触");
-}
-// 涓嬭浇闄勪欢
-const downLoadFile = (row) => {
-  proxy.$download.name(row.url);
-}
-// 棰勮闄勪欢
-const lookFile = (row) => {
-	filePreviewRef.value.open(row.url)
-}
-// 鍒犻櫎
-const handleDelete = () => {
-  let ids = [];
-  if (selectedRows.value.length > 0) {
-    ids = selectedRows.value.map((item) => item.id);
-  } else {
-    proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
-    return;
-  }
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  }).then(() => {
-    qualityInspectFileDel(ids).then((res) => {
-      proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-      getList();
-    });
-  }).catch(() => {
-    proxy.$modal.msg("宸插彇娑�");
-  });
-};
-defineExpose({
-  openDialog,
-});
-</script>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue b/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
deleted file mode 100644
index 5ea1e47..0000000
--- a/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
+++ /dev/null
@@ -1,302 +0,0 @@
-<template>
-  <div>
-    <el-dialog
-        v-model="dialogFormVisible"
-        :title="operationType === 'add' ? '鏂板鍘熸潗鏂欐楠�' : '缂栬緫鍘熸潗鏂欐楠�'"
-        width="70%"
-        @close="closeDia"
-    >
-      <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="渚涘簲鍟嗭細" prop="supplier">
-              <el-select
-                  v-model="form.supplier"
-                  placeholder="璇烽�夋嫨"
-                  clearable
-              >
-                <el-option
-                    v-for="item in supplierList"
-                    :key="item.id"
-                    :label="item.supplierName"
-                    :value="item.supplierName"
-                />
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="浜у搧鍚嶇О锛�" prop="productId">
-              <el-tree-select
-                  v-model="form.productId"
-                  placeholder="璇烽�夋嫨"
-                  clearable
-                  check-strictly
-                  @change="getModels"
-                  :data="productOptions"
-                  :render-after-expand="false"
-                  style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="model">
-              <el-input v-model="form.model" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="鍗曚綅锛�" prop="unit">
-              <el-input v-model="form.unit" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鏁伴噺锛�" prop="quantity">
-              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�"
-                               clearable :precision="2"/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="妫�娴嬪崟浣嶏細" prop="checkCompany">
-              <el-input v-model="form.checkCompany" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="妫�娴嬬粨鏋滐細" prop="checkResult">
-              <el-select v-model="form.checkResult">
-                <el-option label="鍚堟牸" value="鍚堟牸"/>
-                <el-option label="涓嶅悎鏍�" value="涓嶅悎鏍�"/>
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="妫�楠屽憳锛�" prop="checkName">
-              <el-input v-model="form.checkName" placeholder="璇疯緭鍏�" clearable/>
-
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="妫�娴嬫棩鏈燂細" prop="checkTime">
-              <el-date-picker
-                  v-model="form.checkTime"
-                  type="date"
-                  placeholder="璇烽�夋嫨鏃ユ湡"
-                  value-format="YYYY-MM-DD"
-                  format="YYYY-MM-DD"
-                  clearable
-                  style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-<!--      <div style="margin-bottom: 10px;text-align: right">-->
-<!--        <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>-->
-<!--      </div>-->
-      <PIMTable
-          rowKey="id"
-          :column="tableColumn"
-          :tableData="tableData"
-          :tableLoading="tableLoading"
-          height="400"
-      >
-        <template #slot="{ row }">
-          <el-input v-model="row.testValue" clearable/>
-        </template>
-      </PIMTable>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭</el-button>
-          <el-button @click="closeDia">鍙栨秷</el-button>
-        </div>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import {ref} from "vue";
-import {getOptions} from "@/api/procurementManagement/procurementLedger.js";
-import {productTreeList} from "@/api/basicData/product.js";
-import {qualityInspectAdd, qualityInspectUpdate} from "@/api/qualityManagement/rawMaterialInspection.js";
-import {ElMessageBox} from "element-plus";
-import {qualityInspectParamDel, qualityInspectParamInfo} from "@/api/qualityManagement/qualityInspectParam.js";
-import {qualityInspectDetailByProductId} from "@/api/qualityManagement/metricMaintenance.js";
-
-const {proxy} = getCurrentInstance()
-const emit = defineEmits(['close'])
-
-const dialogFormVisible = ref(false);
-const operationType = ref('')
-const data = reactive({
-  form: {
-    checkTime: "",
-    supplier: "",
-    checkName: "",
-    productName: "",
-    productId: "",
-    model: "",
-    unit: "",
-    quantity: "",
-    checkCompany: "",
-    checkResult: "",
-  },
-  rules: {
-    checkTime: [{required: true, message: "璇疯緭鍏�", trigger: "blur"},],
-    supplier: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
-    checkName: [{required: false, message: "璇疯緭鍏�", trigger: "blur"}],
-    productId: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
-    model: [{required: false, message: "璇疯緭鍏�", trigger: "blur"}],
-    unit: [{required: false, message: "璇疯緭鍏�", trigger: "blur"}],
-    quantity: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
-    checkCompany: [{required: false, message: "璇疯緭鍏�", trigger: "blur"}],
-    checkResult: [{required: true, message: "璇烽�夋嫨妫�娴嬬粨鏋�", trigger: "change"}],
-  },
-});
-const tableColumn = ref([
-  {
-    label: "鎸囨爣",
-    prop: "parameterItem",
-  },
-  {
-    label: "鍗曚綅",
-    prop: "unit",
-  },
-  {
-    label: "鏍囧噯鍊�",
-    prop: "standardValue",
-  },
-  {
-    label: "鍐呮帶鍊�",
-    prop: "controlValue",
-  },
-  {
-    label: "妫�楠屽��",
-    prop: "testValue",
-    dataType: 'slot',
-    slot: 'slot',
-  },
-]);
-const tableData = ref([]);
-const tableLoading = ref(false);
-
-const {form, rules} = toRefs(data);
-const supplierList = ref([]);
-const productOptions = ref([]);
-const currentProductId = ref(0);
-
-// 鎵撳紑寮规
-const openDialog = (type, row) => {
-  operationType.value = type;
-  dialogFormVisible.value = true;
-  getOptions().then((res) => {
-    supplierList.value = res.data;
-  });
-	form.value = {}
-  getProductOptions();
-  if (operationType.value === 'edit') {
-    form.value = {...row}
-    currentProductId.value = row.productId || 0
-    getQualityInspectParamList(row.id)
-  }
-}
-const getProductOptions = () => {
-  productTreeList().then((res) => {
-    productOptions.value = convertIdToValue(res);
-  });
-};
-const getModels = (value) => {
-  currentProductId.value = value
-  form.value.productName = findNodeById(productOptions.value, value);
-  if (currentProductId) {
-    getList();
-  }
-};
-const findNodeById = (nodes, productId) => {
-  for (let i = 0; i < nodes.length; i++) {
-    if (nodes[i].value === productId) {
-      return nodes[i].label; // 鎵惧埌鑺傜偣锛岃繑鍥炶鑺傜偣
-    }
-    if (nodes[i].children && nodes[i].children.length > 0) {
-      const foundNode = findNodeById(nodes[i].children, productId);
-      if (foundNode) {
-        return foundNode; // 鍦ㄥ瓙鑺傜偣涓壘鍒帮紝杩斿洖璇ヨ妭鐐�
-      }
-    }
-  }
-  return null; // 娌℃湁鎵惧埌鑺傜偣锛岃繑鍥瀗ull
-};
-
-function convertIdToValue(data) {
-  return data.map((item) => {
-    const {id, children, ...rest} = item;
-    const newItem = {
-      ...rest,
-      value: id, // 灏� id 鏀逛负 value
-    };
-    if (children && children.length > 0) {
-      newItem.children = convertIdToValue(children);
-    }
-
-    return newItem;
-  });
-}
-
-// 鎻愪氦浜у搧琛ㄥ崟
-const submitForm = () => {
-  proxy.$refs.formRef.validate(valid => {
-    if (valid) {
-      form.value.inspectType = 0
-			if (operationType.value === "add") {
-				tableData.value.forEach((item) => {
-					delete item.id
-				})
-			}
-      const data = {...form.value, qualityInspectParams: tableData.value}
-      if (operationType.value === "add") {
-        qualityInspectAdd(data).then(res => {
-          proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-          closeDia();
-        })
-      } else {
-        qualityInspectUpdate(data).then(res => {
-          proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-          closeDia();
-        })
-      }
-    }
-  })
-}
-
-const getList = () => {
-  qualityInspectDetailByProductId(currentProductId.value).then(res => {
-    tableData.value = res.data;
-  })
-}
-
-const getQualityInspectParamList = (id) => {
-  qualityInspectParamInfo(id).then(res => {
-    tableData.value = res.data;
-  })
-}
-// 鍏抽棴寮规
-const closeDia = () => {
-  proxy.resetForm("formRef");
-  tableData.value = []
-  dialogFormVisible.value = false;
-  emit('close')
-};
-defineExpose({
-  openDialog,
-});
-</script>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/src/views/qualityManagement/rawMaterialInspection/components/inspectionFormDia.vue b/src/views/qualityManagement/rawMaterialInspection/components/inspectionFormDia.vue
deleted file mode 100644
index 32a36fa..0000000
--- a/src/views/qualityManagement/rawMaterialInspection/components/inspectionFormDia.vue
+++ /dev/null
@@ -1,140 +0,0 @@
-<template>
-  <div>
-    <el-dialog
-        v-model="dialogFormVisible"
-        title="濉啓妫�楠岃褰�"
-        width="70%"
-        @close="closeDia"
-    >
-      <div style="margin-bottom: 10px;text-align: right">
-        <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
-      </div>
-      <PIMTable
-          rowKey="id"
-          :column="tableColumn"
-          :tableData="tableData"
-          :tableLoading="tableLoading"
-          :isSelection="true"
-          @selection-change="handleSelectionChange"
-          height="600"
-      >
-        <template #slot="{ row }">
-          <el-input v-model="row.testValue" clearable/>
-        </template>
-      </PIMTable>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭</el-button>
-          <el-button @click="closeDia">鍙栨秷</el-button>
-        </div>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import {ref} from "vue";
-import {getStaffJoinInfo, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js";
-import {Search} from "@element-plus/icons-vue";
-import {
-  qualityInspectParamDel,
-  qualityInspectParamInfo,
-  qualityInspectParamUpdate
-} from "@/api/qualityManagement/qualityInspectParam.js";
-import {ElMessageBox} from "element-plus";
-const { proxy } = getCurrentInstance()
-const emit = defineEmits(['close'])
-
-const dialogFormVisible = ref(false);
-const operationType = ref('')
-const currentId = ref('')
-const selectedRows = ref([]);
-const tableColumn = ref([
-  {
-    label: "鎸囨爣",
-    prop: "parameterItem",
-  },
-  {
-    label: "鍗曚綅",
-    prop: "unit",
-  },
-  {
-    label: "鏍囧噯鍊�",
-    prop: "standardValue",
-  },
-  {
-    label: "鍐呮帶鍊�",
-    prop: "controlValue",
-  },
-  {
-    label: "妫�楠屽��",
-    prop: "testValue",
-    dataType: 'slot',
-    slot: 'slot',
-  },
-]);
-const tableData = ref([]);
-const tableLoading = ref(false);
-
-// 鎵撳紑寮规
-const openDialog = (type, row) => {
-  operationType.value = type;
-  dialogFormVisible.value = true;
-  if (operationType.value === 'edit') {
-    currentId.value = row.id;
-    getList()
-  }
-}
-const getList = () => {
-  qualityInspectParamInfo(currentId.value).then(res => {
-    tableData.value = res.data;
-  })
-}
-// 琛ㄦ牸閫夋嫨鏁版嵁
-const handleSelectionChange = (selection) => {
-  selectedRows.value = selection;
-};
-// 鎻愪氦浜у搧琛ㄥ崟
-const submitForm = () => {
-  qualityInspectParamUpdate(tableData.value).then(res => {
-    proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-    closeDia();
-  })
-}
-// 鍏抽棴寮规
-const closeDia = () => {
-  dialogFormVisible.value = false;
-  emit('close')
-};
-// 鍒犻櫎
-const handleDelete = () => {
-  let ids = [];
-  if (selectedRows.value.length > 0) {
-    ids = selectedRows.value.map((item) => item.id);
-  } else {
-    proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
-    return;
-  }
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  })
-      .then(() => {
-        qualityInspectParamDel(ids).then((res) => {
-          proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-          getList();
-        });
-      })
-      .catch(() => {
-        proxy.$modal.msg("宸插彇娑�");
-      });
-};
-defineExpose({
-  openDialog,
-});
-</script>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/src/views/qualityManagement/rawMaterialInspection/index.vue b/src/views/qualityManagement/rawMaterialInspection/index.vue
deleted file mode 100644
index c9ea3db..0000000
--- a/src/views/qualityManagement/rawMaterialInspection/index.vue
+++ /dev/null
@@ -1,379 +0,0 @@
-<template>
-  <div class="app-container">
-    <div class="search_form">
-      <div>
-        <span class="search_title">渚涘簲鍟嗭細</span>
-        <el-input
-            v-model="searchForm.supplier"
-            style="width: 240px"
-            placeholder="璇疯緭鍏ヤ緵搴斿晢鎼滅储"
-            @change="handleQuery"
-            clearable
-            :prefix-icon="Search"
-        />
-        <span style="margin-left: 10px" class="search_title">妫�娴嬫棩鏈燂細</span>
-        <el-date-picker v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
-                        placeholder="璇烽�夋嫨" clearable @change="changeDaterange"/>
-        <el-button type="primary" @click="handleQuery" style="margin-left: 10px"
-        >鎼滅储
-        </el-button
-        >
-      </div>
-      <div>
-        <el-button type="primary" @click="openForm('add')">鏂板</el-button>
-        <el-button @click="handleOut">瀵煎嚭</el-button>
-        <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
-      </div>
-    </div>
-    <div class="table_list">
-      <PIMTable
-          rowKey="id"
-          :column="tableColumn"
-          :tableData="tableData"
-          :page="page"
-          :isSelection="true"
-          @selection-change="handleSelectionChange"
-          :tableLoading="tableLoading"
-          @pagination="pagination"
-          :total="page.total"
-      ></PIMTable>
-    </div>
-    <InspectionFormDia ref="inspectionFormDia" @close="handleQuery"></InspectionFormDia>
-    <FormDia ref="formDia" @close="handleQuery"></FormDia>
-    <files-dia ref="filesDia" @close="handleQuery"></files-dia>
-    <el-dialog v-model="dialogFormVisible" title="缂栬緫妫�楠屽憳" width="30%"
-               @close="closeDia">
-      <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
-        <el-form-item label="妫�楠屽憳锛�" prop="checkName">
-          <el-select v-model="form.checkName" placeholder="璇烽�夋嫨" clearable>
-            <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName"
-                       :value="item.nickName"/>
-          </el-select>
-        </el-form-item>
-      </el-form>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭</el-button>
-          <el-button @click="closeDia">鍙栨秷</el-button>
-        </div>
-      </template>
-    </el-dialog>
-
-  </div>
-</template>
-
-<script setup>
-import {Search} from "@element-plus/icons-vue";
-import {onMounted, ref} from "vue";
-import InspectionFormDia from "@/views/qualityManagement/rawMaterialInspection/components/inspectionFormDia.vue";
-import FormDia from "@/views/qualityManagement/rawMaterialInspection/components/formDia.vue";
-import {ElMessageBox} from "element-plus";
-import {
-  downloadQualityInspect,
-  qualityInspectDel,
-  qualityInspectListPage, qualityInspectUpdate,
-  submitQualityInspect
-} from "@/api/qualityManagement/rawMaterialInspection.js";
-import FilesDia from "@/views/qualityManagement/rawMaterialInspection/components/filesDia.vue";
-import dayjs from "dayjs";
-import {userListNoPage} from "@/api/system/user.js";
-
-const data = reactive({
-  searchForm: {
-    supplier: "",
-    entryDate: undefined, // 褰曞叆鏃ユ湡
-    entryDateStart: undefined,
-    entryDateEnd: undefined,
-  },
-  rules: {
-    checkName: [{required: true, message: "璇烽�夋嫨", trigger: "change"}],
-  },
-});
-const {searchForm, rules} = toRefs(data);
-const tableColumn = ref([
-  {
-    label: "妫�娴嬫棩鏈�",
-    prop: "checkTime",
-    width: 120
-  },
-  {
-    label: "渚涘簲鍟�",
-    prop: "supplier",
-    width: 230
-  },
-  {
-    label: "妫�楠屽憳",
-    prop: "checkName",
-  },
-  {
-    label: "浜у搧鍚嶇О",
-    prop: "productName",
-  },
-  {
-    label: "瑙勬牸鍨嬪彿",
-    prop: "model",
-  },
-  {
-    label: "鍗曚綅",
-    prop: "unit",
-  },
-  {
-    label: "鏁伴噺",
-    prop: "quantity",
-    width: 120
-  },
-  {
-    label: "妫�娴嬪崟浣�",
-    prop: "checkCompany",
-    width: 120
-  },
-  {
-    label: "妫�娴嬬粨鏋�",
-    prop: "checkResult",
-    dataType: "tag",
-    formatType: (params) => {
-      if (params === '涓嶅悎鏍�') {
-        return "danger";
-      } else if (params === '鍚堟牸') {
-        return "success";
-      } else {
-        return null;
-      }
-    },
-  },
-  {
-    label: "鎻愪氦鐘舵��",
-    prop: "inspectState",
-    formatData: (params) => {
-      if (params) {
-        return "宸叉彁浜�";
-      } else {
-        return "鏈彁浜�";
-      }
-    },
-  },
-  {
-    dataType: "action",
-    label: "鎿嶄綔",
-    align: "center",
-    fixed: "right",
-    width: 280,
-    operation: [
-      {
-        name: "缂栬緫",
-        type: "text",
-        clickFun: (row) => {
-          openForm("edit", row);
-        },
-				disabled: (row) => {
-					return row.inspectState == 1;
-				}
-      },
-      {
-        name: "闄勪欢",
-        type: "text",
-        clickFun: (row) => {
-          openFilesFormDia(row);
-        },
-      },
-      {
-        name: "鎻愪氦",
-        type: "text",
-        clickFun: (row) => {
-          submit(row.id);
-        },
-				disabled: (row) => {
-					return row.inspectState == 1;
-				}
-      },
-      {
-        name: "鍒嗛厤妫�楠屽憳",
-        type: "text",
-        clickFun: (row) => {
-          if (!row.checkName) {
-            open(row)
-          } else {
-            proxy.$modal.msgError("妫�楠屽憳宸插瓨鍦�");
-          }
-        },
-				disabled: (row) => {
-					return row.inspectState == 1 || row.checkName;
-				}
-      },
-      {
-        name: "涓嬭浇",
-        type: "text",
-        clickFun: (row) => {
-          downLoadFile(row);
-        },
-      },
-    ],
-  },
-]);
-const tableData = ref([]);
-const selectedRows = ref([]);
-const tableLoading = ref(false);
-const userList = ref([]);
-const dialogFormVisible = ref(false);
-const form = ref({
-  checkName: ""
-});
-const page = reactive({
-  current: 1,
-  size: 100,
-  total: 0
-});
-const currentRow = ref(null)
-const formDia = ref()
-const filesDia = ref()
-const inspectionFormDia = ref()
-const {proxy} = getCurrentInstance()
-const changeDaterange = (value) => {
-  searchForm.value.entryDateStart = undefined;
-  searchForm.value.entryDateEnd = undefined;
-  if (value) {
-    searchForm.value.entryDateStart = dayjs(value[0]).format("YYYY-MM-DD");
-    searchForm.value.entryDateEnd = dayjs(value[1]).format("YYYY-MM-DD");
-  }
-  getList();
-};
-// 鏌ヨ鍒楄〃
-/** 鎼滅储鎸夐挳鎿嶄綔 */
-const handleQuery = () => {
-  page.current = 1;
-  getList();
-};
-const pagination = (obj) => {
-  page.current = obj.page;
-  page.size = obj.limit;
-  getList();
-};
-const getList = () => {
-  tableLoading.value = true;
-  const params = {...searchForm.value, ...page};
-  params.entryDate = undefined
-  qualityInspectListPage({...params, inspectType: 0}).then(res => {
-    tableLoading.value = false;
-    tableData.value = res.data.records
-    page.total = res.data.total;
-  }).catch(err => {
-    tableLoading.value = false;
-  })
-};
-// 琛ㄦ牸閫夋嫨鏁版嵁
-const handleSelectionChange = (selection) => {
-  selectedRows.value = selection;
-};
-
-// 鎵撳紑寮规
-const openForm = (type, row) => {
-  nextTick(() => {
-    formDia.value?.openDialog(type, row)
-  })
-};
-// 鎵撳紑闄勪欢寮规
-const openFilesFormDia = (type, row) => {
-  nextTick(() => {
-    filesDia.value?.openDialog(type, row)
-  })
-};
-
-// 鍒犻櫎
-const handleDelete = () => {
-  let ids = [];
-  if (selectedRows.value.length > 0) {
-    ids = selectedRows.value.map((item) => item.id);
-  } else {
-    proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
-    return;
-  }
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  })
-      .then(() => {
-        qualityInspectDel(ids).then((res) => {
-          proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-          getList();
-        });
-      })
-      .catch(() => {
-        proxy.$modal.msg("宸插彇娑�");
-      });
-};
-// 瀵煎嚭
-const handleOut = () => {
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  })
-      .then(() => {
-        proxy.download("/quality/qualityInspect/export", {inspectType: 0}, "鍘熸潗鏂欐楠�.xlsx");
-      })
-      .catch(() => {
-        proxy.$modal.msg("宸插彇娑�");
-      });
-};
-
-// 鎻愪环
-const submit = async (id) => {
-  const res = await submitQualityInspect({id: id})
-  if (res.code === 200) {
-    proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-    getList();
-  }
-}
-
-// 鍏抽棴寮规
-const closeDia = () => {
-  proxy.resetForm("formRef");
-  dialogFormVisible.value = false;
-};
-
-const submitForm = () => {
-  if (currentRow.value) {
-    const data = {
-      ...form.value,
-      id: currentRow.value.id
-    }
-    qualityInspectUpdate(data).then(res => {
-      proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-      closeDia();
-      getList();
-    })
-  }
-};
-
-const open = async (row) => {
-  let userLists = await userListNoPage();
-  userList.value = userLists.data;
-  currentRow.value = row
-  dialogFormVisible.value = true
-}
-
-const downLoadFile = (row) => {
-  downloadQualityInspect({ id: row.id }).then((blobData) => {
-    const blob = new Blob([blobData], {
-      type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
-    })
-    const downloadUrl = window.URL.createObjectURL(blob)
-
-    const link = document.createElement('a')
-    link.href = downloadUrl
-    link.download = '鍘熸潗鏂欐楠屾姤鍛�.docx'
-    document.body.appendChild(link)
-    link.click()
-
-    document.body.removeChild(link)
-    window.URL.revokeObjectURL(downloadUrl)
-  })
-};
-
-onMounted(() => {
-  getList();
-});
-</script>
-
-<style scoped></style>
diff --git a/src/views/qualityManagement/visualization/qualityDashboard.vue b/src/views/qualityManagement/visualization/qualityDashboard.vue
deleted file mode 100644
index 57462b7..0000000
--- a/src/views/qualityManagement/visualization/qualityDashboard.vue
+++ /dev/null
@@ -1,307 +0,0 @@
-<template>
-  <div class="quality-dashboard">
-    <el-row :gutter="16">
-      <el-col :xs="24" :sm="12">
-        <el-card shadow="hover" class="panel">
-          <template #header>
-            <div class="panel-title">
-              妫�娴嬫牱鍝佸姩鎬佺姸鎬�
-              <div class="actions">
-                <el-switch v-model="voiceEnabled" active-text="璇煶棰勮" inactive-text="闈欓煶" />
-              </div>
-            </div>
-          </template>
-          <div class="status-list">
-            <div v-for="item in sampleStatus" :key="item.id" class="status-item" :class="item.status">
-              <div class="left">
-                <span class="dot" :class="item.status"></span>
-                <span class="name">{{ item.name }}</span>
-              </div>
-              <div class="right">
-                <el-tag :type="statusTagType(item.status)" size="small">{{ statusLabel(item.status) }}</el-tag>
-                <span class="time">{{ item.time }}</span>
-              </div>
-            </div>
-          </div>
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="12">
-        <el-card shadow="hover" class="panel">
-          <template #header>
-            <div class="panel-title">浠诲姟鎺掕锛圱op 10锛�</div>
-          </template>
-          <EChart :xAxis="tasksXAxis" :yAxis="[{ type: 'value' }]" :series="tasksSeries" :grid="{ left: 40, right: 20, top: 20, bottom: 40 }" :tooltip="{ trigger: 'axis' }" :barColors="['#3b82f6']" :chartStyle="{ height: '320px', width: '100%' }" />
-        </el-card>
-      </el-col>
-    </el-row>
-
-    <el-row :gutter="16" style="margin-top: 16px;">
-      <el-col :xs="24" :sm="14">
-        <el-card shadow="hover" class="panel">
-          <template #header>
-            <div class="panel-title">鍘嗗彶瓒嬪娍</div>
-          </template>
-          <EChart :xAxis="[{ type: 'category', data: trendXAxis }]" :yAxis="[{ type: 'value', name: '鏁伴噺' }]" :series="trendSeries" :tooltip="{ trigger: 'axis' }" :legend="{ top: 0 }" :lineColors="['#10b981', '#f59e0b']" :chartStyle="{ height: '340px', width: '100%' }" />
-        </el-card>
-      </el-col>
-      <el-col :xs="24" :sm="10">
-        <el-card shadow="hover" class="panel">
-          <template #header>
-            <div class="panel-title">鍚堟牸鐜囧垎鏋�</div>
-          </template>
-          <EChart :series="passRateSeries" :legend="{ show: false }" :chartStyle="{ height: '340px', width: '100%' }" />
-          <div class="passrate-text">
-            褰撳墠鍚堟牸鐜囷細<b>{{ (passRate * 100).toFixed(1) }}%</b>
-          </div>
-        </el-card>
-      </el-col>
-    </el-row>
-
-    <el-row :gutter="16" style="margin-top: 16px;">
-      <el-col :xs="24">
-        <el-card shadow="hover" class="panel">
-          <template #header>
-            <div class="panel-title">SPC 鎺у埗鍥撅紙Xbar锛�</div>
-          </template>
-          <EChart :xAxis="[{ type: 'category', data: spcXAxis }]" :yAxis="[{ type: 'value', name: '娴嬮噺鍊�' }]" :series="spcSeries" :legend="{ top: 0 }" :tooltip="{ trigger: 'axis' }" :lineColors="['#2563eb', '#ef4444', '#f97316', '#22c55e']" :chartStyle="{ height: '380px', width: '100%' }" />
-        </el-card>
-      </el-col>
-    </el-row>
-  </div>
-  
-</template>
-
-<script setup>
-import { onMounted, onBeforeUnmount, reactive, ref } from 'vue'
-import EChart from '@/components/Echarts/echarts.vue'
-
-const voiceEnabled = ref(true)
-let dataTimer = null
-
-// 1) 鏍峰搧鍔ㄦ�佺姸鎬侊紙婊氬姩鏇存柊锛�
-const sampleStatus = ref([])
-const statusPool = ['processing', 'warning', 'error', 'success']
-function statusLabel(s) {
-  return s === 'processing' ? '妫�娴嬩腑' : s === 'warning' ? '棰勮' : s === 'error' ? '涓嶅悎鏍�' : '鍚堟牸'
-}
-function statusTagType(s) {
-  return s === 'processing' ? 'info' : s === 'warning' ? 'warning' : s === 'error' ? 'danger' : 'success'
-}
-function randomSample() {
-  const id = Math.random().toString(36).slice(2, 8)
-  const status = statusPool[Math.floor(Math.random() * statusPool.length)]
-  const name = `鏍峰搧-${Math.floor(Math.random() * 900 + 100)}`
-  const time = new Date().toLocaleTimeString('zh-CN', { hour12: false })
-  return { id, name, status, time }
-}
-
-// 2) 浠诲姟鎺掕锛堟煴鐘跺浘锛�
-const tasksXAxis = reactive([{ type: 'category', data: [] }])
-const tasksSeries = ref([
-  {
-    type: 'bar',
-    data: [],
-    label: { show: true, position: 'inside', align: 'center', verticalAlign: 'middle', color: '#fff' },
-    encode: undefined,
-  },
-])
-
-// 3) 鍘嗗彶瓒嬪娍锛堟姌绾匡級
-const trendXAxis = ref([])
-const trendSeries = ref([
-  { name: '鏉ユ牱鏁�', type: 'line', smooth: true, data: [] },
-  { name: '瀹屾垚鏁�', type: 'line', smooth: true, data: [] },
-])
-
-// 4) 鍚堟牸鐜囧垎鏋愶紙浠〃鐩橈級
-const passRate = ref(0.92)
-const passRateSeries = ref([
-  {
-    type: 'gauge',
-    progress: { show: true, width: 12 },
-    axisLine: { lineStyle: { width: 12 } },
-    pointer: { show: true },
-    detail: { valueAnimation: true, formatter: (v) => `${(v * 100).toFixed(1)}%` },
-    data: [{ value: passRate.value }],
-  },
-])
-
-// 5) SPC 鎺у埗鍥�
-const spcXAxis = ref([])
-const spcData = ref([]) // 瀹為檯娴嬮噺鍊�
-const CL = ref(50)
-const UCL = ref(55)
-const LCL = ref(45)
-const spcSeries = ref([
-  {
-    name: '娴嬮噺鍧囧��',
-    type: 'line',
-    smooth: false,
-    symbol: 'circle',
-    data: [],
-    markLine: {
-      symbol: 'none',
-      lineStyle: { type: 'dashed', color: '#999' },
-      data: [
-        { yAxis: () => UCL.value, name: 'UCL' },
-        { yAxis: () => CL.value, name: 'CL' },
-        { yAxis: () => LCL.value, name: 'LCL' },
-      ],
-      label: { formatter: ({ name }) => name },
-    },
-  },
-  { name: 'UCL', type: 'line', data: [], symbol: 'none', lineStyle: { type: 'dashed', color: '#ef4444' } },
-  { name: 'CL', type: 'line', data: [], symbol: 'none', lineStyle: { type: 'dashed', color: '#f97316' } },
-  { name: 'LCL', type: 'line', data: [], symbol: 'none', lineStyle: { type: 'dashed', color: '#22c55e' } },
-])
-
-// 璇煶鎾姤
-function speak(text) {
-  if (!voiceEnabled.value) return
-  if (!('speechSynthesis' in window)) return
-  const utter = new SpeechSynthesisUtterance(text)
-  utter.lang = 'zh-CN'
-  try {
-    window.speechSynthesis.cancel()
-    window.speechSynthesis.speak(utter)
-  } catch (e) {
-    // ignore
-  }
-}
-
-function refreshFakeData() {
-  // 鏍峰搧鐘舵�佹粴鍔�
-  const next = randomSample()
-  sampleStatus.value = [next, ...sampleStatus.value].slice(0, 8)
-
-  // 浠诲姟鎺掕
-  const tasks = Array.from({ length: 10 }).map((_, i) => ({ name: `浠诲姟-${i + 1}`, count: Math.floor(Math.random() * 100 + 20) }))
-  tasks.sort((a, b) => a.count - b.count)
-  tasksXAxis.data = tasks.map(t => t.name)
-  tasksSeries.value[0].data = tasks.map(t => t.count)
-
-  // 鍘嗗彶瓒嬪娍锛堣拷鍔犵偣锛�
-  const nowLabel = new Date().toLocaleTimeString('zh-CN', { minute: '2-digit', second: '2-digit' })
-  if (trendXAxis.value.length > 15) {
-    trendXAxis.value.shift()
-    trendSeries.value[0].data.shift()
-    trendSeries.value[1].data.shift()
-  }
-  trendXAxis.value.push(nowLabel)
-  const incoming = Math.floor(Math.random() * 30 + 20)
-  const finished = Math.max(0, incoming - Math.floor(Math.random() * 10))
-  trendSeries.value[0].data.push(incoming)
-  trendSeries.value[1].data.push(finished)
-
-  // 鍚堟牸鐜囷紙杞诲井娉㈠姩锛�
-  const delta = (Math.random() - 0.5) * 0.02
-  passRate.value = Math.min(0.99, Math.max(0.6, passRate.value + delta))
-  passRateSeries.value[0].data[0].value = passRate.value
-
-  // SPC 鏁版嵁锛堢獥鍙gЩ鍔級
-  const nextVal = CL.value + (Math.random() - 0.5) * 8 // 娉㈠姩
-  if (spcXAxis.value.length > 30) {
-    spcXAxis.value.shift()
-    spcData.value.shift()
-  }
-  spcXAxis.value.push(`${spcXAxis.value.length + 1}`)
-  spcData.value.push(parseFloat(nextVal.toFixed(2)))
-  spcSeries.value[0].data = [...spcData.value]
-  spcSeries.value[1].data = new Array(spcData.value.length).fill(UCL.value)
-  spcSeries.value[2].data = new Array(spcData.value.length).fill(CL.value)
-  spcSeries.value[3].data = new Array(spcData.value.length).fill(LCL.value)
-
-  // 瑙﹀彂鎾姤锛氬悎鏍肩巼杩囦綆鎴� SPC 瓒呴檺
-  if (passRate.value < 0.8) {
-    speak(`棰勮锛屽綋鍓嶅悎鏍肩巼涓� ${(passRate.value * 100).toFixed(0)}%锛屼綆浜� 80% 闃堝�糮)
-  }
-  const last = spcData.value[spcData.value.length - 1]
-  if (last > UCL.value) {
-    speak(`棰勮锛屾渶鏂版祴閲忓�� ${last.toFixed(2)} 瓒呰繃涓婇檺`)
-  }
-  if (last < LCL.value) {
-    speak(`棰勮锛屾渶鏂版祴閲忓�� ${last.toFixed(2)} 浣庝簬涓嬮檺`)
-  }
-}
-
-onMounted(() => {
-  // 鍒濆鍖栧嚑鏉″亣鏁版嵁
-  sampleStatus.value = Array.from({ length: 5 }).map(() => randomSample())
-  for (let i = 0; i < 10; i++) {
-    trendXAxis.value.push(`T-${i}`)
-    trendSeries.value[0].data.push(Math.floor(Math.random() * 30 + 20))
-    trendSeries.value[1].data.push(Math.floor(Math.random() * 25 + 15))
-  }
-  for (let i = 0; i < 20; i++) {
-    spcXAxis.value.push(`${i + 1}`)
-    const v = CL.value + (Math.random() - 0.5) * 6
-    spcData.value.push(parseFloat(v.toFixed(2)))
-  }
-  spcSeries.value[0].data = [...spcData.value]
-  spcSeries.value[1].data = new Array(spcData.value.length).fill(UCL.value)
-  spcSeries.value[2].data = new Array(spcData.value.length).fill(CL.value)
-  spcSeries.value[3].data = new Array(spcData.value.length).fill(LCL.value)
-
-  dataTimer = setInterval(refreshFakeData, 10000)
-})
-
-onBeforeUnmount(() => {
-  if (dataTimer) clearInterval(dataTimer)
-  try { window.speechSynthesis && window.speechSynthesis.cancel() } catch (e) {}
-})
-</script>
-
-<style scoped>
-.quality-dashboard {
-  padding: 8px;
-}
-.panel-title {
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-  font-weight: 600;
-}
-.status-list {
-  display: flex;
-  flex-direction: column;
-  gap: 8px;
-  max-height: 320px;
-  overflow: auto;
-}
-.status-item {
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-  padding: 8px 10px;
-  border-radius: 6px;
-  background: var(--el-fill-color-light);
-}
-.status-item .left {
-  display: flex;
-  align-items: center;
-  gap: 8px;
-}
-.status-item .right {
-  display: flex;
-  align-items: center;
-  gap: 10px;
-}
-.status-item .name { font-weight: 500; }
-.status-item .time { color: var(--el-text-color-secondary); font-size: 12px; }
-.dot {
-  width: 8px;
-  height: 8px;
-  border-radius: 50%;
-  display: inline-block;
-}
-.dot.processing { background: #60a5fa; }
-.dot.warning { background: #f59e0b; }
-.dot.error { background: #ef4444; }
-.dot.success { background: #10b981; }
-.passrate-text {
-  text-align: center;
-  margin-top: 8px;
-}
-</style>
-
-

--
Gitblit v1.9.3