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