From abba64c23543cd806ed8864a9a976408618a5f45 Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期日, 24 九月 2023 23:15:54 +0800
Subject: [PATCH] 9-24 加班

---
 /dev/null                                     |   14 
 src/components/view/raw-ins.vue               |  391 ++--
 package-lock.json                             | 1017 ++++++++++
 src/main.js                                   |  128 
 src/components/view/Processingproducts.vue    |  639 ++----
 src/components/view/processInspection.vue     | 1455 ++++++++-------
 src/components/view/unqualifiedManagement.vue |  458 ++--
 src/view/index.vue                            | 1034 +++++-----
 src/assets/api/controller.js                  |  308 +-
 9 files changed, 3,044 insertions(+), 2,400 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 2c25e5d..5dcd4b0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -88,15 +88,318 @@
         "npm": ">= 3.0.0"
       }
     },
-    "node_modules/@babel/helper-module-imports": {
-      "version": "7.21.4",
-      "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz",
-      "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==",
+    "node_modules/@ampproject/remapping": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
+      "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+      "peer": true,
       "dependencies": {
-        "@babel/types": "^7.21.4"
+        "@jridgewell/gen-mapping": "^0.3.0",
+        "@jridgewell/trace-mapping": "^0.3.9"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@babel/code-frame": {
+      "version": "7.22.13",
+      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
+      "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+      "peer": true,
+      "dependencies": {
+        "@babel/highlight": "^7.22.13",
+        "chalk": "^2.4.2"
       },
       "engines": {
         "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/compat-data": {
+      "version": "7.22.20",
+      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz",
+      "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==",
+      "peer": true,
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/core": {
+      "version": "7.22.20",
+      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.20.tgz",
+      "integrity": "sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA==",
+      "peer": true,
+      "dependencies": {
+        "@ampproject/remapping": "^2.2.0",
+        "@babel/code-frame": "^7.22.13",
+        "@babel/generator": "^7.22.15",
+        "@babel/helper-compilation-targets": "^7.22.15",
+        "@babel/helper-module-transforms": "^7.22.20",
+        "@babel/helpers": "^7.22.15",
+        "@babel/parser": "^7.22.16",
+        "@babel/template": "^7.22.15",
+        "@babel/traverse": "^7.22.20",
+        "@babel/types": "^7.22.19",
+        "convert-source-map": "^1.7.0",
+        "debug": "^4.1.0",
+        "gensync": "^1.0.0-beta.2",
+        "json5": "^2.2.3",
+        "semver": "^6.3.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/babel"
+      }
+    },
+    "node_modules/@babel/core/node_modules/debug": {
+      "version": "4.3.4",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+      "peer": true,
+      "dependencies": {
+        "ms": "2.1.2"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@babel/core/node_modules/json5": {
+      "version": "2.2.3",
+      "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+      "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+      "peer": true,
+      "bin": {
+        "json5": "lib/cli.js"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/@babel/core/node_modules/ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+      "peer": true
+    },
+    "node_modules/@babel/core/node_modules/semver": {
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+      "peer": true,
+      "bin": {
+        "semver": "bin/semver.js"
+      }
+    },
+    "node_modules/@babel/generator": {
+      "version": "7.22.15",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz",
+      "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==",
+      "peer": true,
+      "dependencies": {
+        "@babel/types": "^7.22.15",
+        "@jridgewell/gen-mapping": "^0.3.2",
+        "@jridgewell/trace-mapping": "^0.3.17",
+        "jsesc": "^2.5.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/generator/node_modules/jsesc": {
+      "version": "2.5.2",
+      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+      "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+      "peer": true,
+      "bin": {
+        "jsesc": "bin/jsesc"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/@babel/helper-compilation-targets": {
+      "version": "7.22.15",
+      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz",
+      "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==",
+      "peer": true,
+      "dependencies": {
+        "@babel/compat-data": "^7.22.9",
+        "@babel/helper-validator-option": "^7.22.15",
+        "browserslist": "^4.21.9",
+        "lru-cache": "^5.1.1",
+        "semver": "^6.3.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-compilation-targets/node_modules/browserslist": {
+      "version": "4.21.11",
+      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.11.tgz",
+      "integrity": "sha512-xn1UXOKUz7DjdGlg9RrUr0GGiWzI97UQJnugHtH0OLDfJB7jMgoIkYvRIEO1l9EeEERVqeqLYOcFBW9ldjypbQ==",
+      "funding": [
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/browserslist"
+        },
+        {
+          "type": "tidelift",
+          "url": "https://tidelift.com/funding/github/npm/browserslist"
+        },
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ],
+      "peer": true,
+      "dependencies": {
+        "caniuse-lite": "^1.0.30001538",
+        "electron-to-chromium": "^1.4.526",
+        "node-releases": "^2.0.13",
+        "update-browserslist-db": "^1.0.13"
+      },
+      "bin": {
+        "browserslist": "cli.js"
+      },
+      "engines": {
+        "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+      }
+    },
+    "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+      "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+      "peer": true,
+      "dependencies": {
+        "yallist": "^3.0.2"
+      }
+    },
+    "node_modules/@babel/helper-compilation-targets/node_modules/node-releases": {
+      "version": "2.0.13",
+      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz",
+      "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==",
+      "peer": true
+    },
+    "node_modules/@babel/helper-compilation-targets/node_modules/picocolors": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+      "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+      "peer": true
+    },
+    "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+      "peer": true,
+      "bin": {
+        "semver": "bin/semver.js"
+      }
+    },
+    "node_modules/@babel/helper-compilation-targets/node_modules/update-browserslist-db": {
+      "version": "1.0.13",
+      "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+      "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+      "funding": [
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/browserslist"
+        },
+        {
+          "type": "tidelift",
+          "url": "https://tidelift.com/funding/github/npm/browserslist"
+        },
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ],
+      "peer": true,
+      "dependencies": {
+        "escalade": "^3.1.1",
+        "picocolors": "^1.0.0"
+      },
+      "bin": {
+        "update-browserslist-db": "cli.js"
+      },
+      "peerDependencies": {
+        "browserslist": ">= 4.21.0"
+      }
+    },
+    "node_modules/@babel/helper-compilation-targets/node_modules/yallist": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+      "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+      "peer": true
+    },
+    "node_modules/@babel/helper-environment-visitor": {
+      "version": "7.22.20",
+      "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+      "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
+      "peer": true,
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-function-name": {
+      "version": "7.22.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz",
+      "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==",
+      "peer": true,
+      "dependencies": {
+        "@babel/template": "^7.22.5",
+        "@babel/types": "^7.22.5"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-hoist-variables": {
+      "version": "7.22.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+      "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+      "peer": true,
+      "dependencies": {
+        "@babel/types": "^7.22.5"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-module-imports": {
+      "version": "7.22.15",
+      "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+      "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+      "dependencies": {
+        "@babel/types": "^7.22.15"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-module-transforms": {
+      "version": "7.22.20",
+      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.20.tgz",
+      "integrity": "sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A==",
+      "peer": true,
+      "dependencies": {
+        "@babel/helper-environment-visitor": "^7.22.20",
+        "@babel/helper-module-imports": "^7.22.15",
+        "@babel/helper-simple-access": "^7.22.5",
+        "@babel/helper-split-export-declaration": "^7.22.6",
+        "@babel/helper-validator-identifier": "^7.22.20"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
       }
     },
     "node_modules/@babel/helper-plugin-utils": {
@@ -107,26 +410,93 @@
         "node": ">=6.9.0"
       }
     },
+    "node_modules/@babel/helper-simple-access": {
+      "version": "7.22.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+      "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+      "peer": true,
+      "dependencies": {
+        "@babel/types": "^7.22.5"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-split-export-declaration": {
+      "version": "7.22.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+      "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+      "peer": true,
+      "dependencies": {
+        "@babel/types": "^7.22.5"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
     "node_modules/@babel/helper-string-parser": {
-      "version": "7.19.4",
-      "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
-      "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
+      "version": "7.22.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
+      "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helper-validator-identifier": {
-      "version": "7.19.1",
-      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
-      "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+      "version": "7.22.20",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+      "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
       "engines": {
         "node": ">=6.9.0"
       }
     },
+    "node_modules/@babel/helper-validator-option": {
+      "version": "7.22.15",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz",
+      "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==",
+      "peer": true,
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helpers": {
+      "version": "7.22.15",
+      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.15.tgz",
+      "integrity": "sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==",
+      "peer": true,
+      "dependencies": {
+        "@babel/template": "^7.22.15",
+        "@babel/traverse": "^7.22.15",
+        "@babel/types": "^7.22.15"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/highlight": {
+      "version": "7.22.20",
+      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
+      "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
+      "peer": true,
+      "dependencies": {
+        "@babel/helper-validator-identifier": "^7.22.20",
+        "chalk": "^2.4.2",
+        "js-tokens": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/highlight/node_modules/js-tokens": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+      "peer": true
+    },
     "node_modules/@babel/parser": {
-      "version": "7.21.4",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz",
-      "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==",
+      "version": "7.22.16",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz",
+      "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==",
       "bin": {
         "parser": "bin/babel-parser.js"
       },
@@ -181,13 +551,80 @@
       "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
       "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
     },
-    "node_modules/@babel/types": {
-      "version": "7.21.4",
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz",
-      "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==",
+    "node_modules/@babel/template": {
+      "version": "7.22.15",
+      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
+      "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
+      "peer": true,
       "dependencies": {
-        "@babel/helper-string-parser": "^7.19.4",
-        "@babel/helper-validator-identifier": "^7.19.1",
+        "@babel/code-frame": "^7.22.13",
+        "@babel/parser": "^7.22.15",
+        "@babel/types": "^7.22.15"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/traverse": {
+      "version": "7.22.20",
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.20.tgz",
+      "integrity": "sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw==",
+      "peer": true,
+      "dependencies": {
+        "@babel/code-frame": "^7.22.13",
+        "@babel/generator": "^7.22.15",
+        "@babel/helper-environment-visitor": "^7.22.20",
+        "@babel/helper-function-name": "^7.22.5",
+        "@babel/helper-hoist-variables": "^7.22.5",
+        "@babel/helper-split-export-declaration": "^7.22.6",
+        "@babel/parser": "^7.22.16",
+        "@babel/types": "^7.22.19",
+        "debug": "^4.1.0",
+        "globals": "^11.1.0"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/traverse/node_modules/debug": {
+      "version": "4.3.4",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+      "peer": true,
+      "dependencies": {
+        "ms": "2.1.2"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@babel/traverse/node_modules/globals": {
+      "version": "11.12.0",
+      "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+      "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+      "peer": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/@babel/traverse/node_modules/ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+      "peer": true
+    },
+    "node_modules/@babel/types": {
+      "version": "7.22.19",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.19.tgz",
+      "integrity": "sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==",
+      "dependencies": {
+        "@babel/helper-string-parser": "^7.22.5",
+        "@babel/helper-validator-identifier": "^7.22.19",
         "to-fast-properties": "^2.0.0"
       },
       "engines": {
@@ -200,6 +637,54 @@
       "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
       "engines": {
         "node": ">=4"
+      }
+    },
+    "node_modules/@jridgewell/gen-mapping": {
+      "version": "0.3.3",
+      "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+      "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+      "peer": true,
+      "dependencies": {
+        "@jridgewell/set-array": "^1.0.1",
+        "@jridgewell/sourcemap-codec": "^1.4.10",
+        "@jridgewell/trace-mapping": "^0.3.9"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@jridgewell/resolve-uri": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
+      "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
+      "peer": true,
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@jridgewell/set-array": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+      "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+      "peer": true,
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@jridgewell/sourcemap-codec": {
+      "version": "1.4.15",
+      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+      "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
+      "peer": true
+    },
+    "node_modules/@jridgewell/trace-mapping": {
+      "version": "0.3.19",
+      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz",
+      "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
+      "peer": true,
+      "dependencies": {
+        "@jridgewell/resolve-uri": "^3.1.0",
+        "@jridgewell/sourcemap-codec": "^1.4.14"
       }
     },
     "node_modules/@mapbox/node-pre-gyp": {
@@ -280,6 +765,16 @@
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
       "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+    },
+    "node_modules/@popperjs/core": {
+      "version": "2.11.8",
+      "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
+      "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
+      "peer": true,
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/popperjs"
+      }
     },
     "node_modules/@transloadit/prettier-bytes": {
       "version": "0.0.7",
@@ -828,7 +1323,6 @@
       "version": "3.2.1",
       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
       "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-      "dev": true,
       "dependencies": {
         "color-convert": "^1.9.0"
       },
@@ -2561,10 +3055,23 @@
       "dev": true
     },
     "node_modules/caniuse-lite": {
-      "version": "1.0.30001477",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001477.tgz",
-      "integrity": "sha512-lZim4iUHhGcy5p+Ri/G7m84hJwncj+Kz7S5aD4hoQfslKZJgt0tHc/hafVbqHC5bbhHb+mrW2JOUHkI5KH7toQ==",
-      "dev": true
+      "version": "1.0.30001538",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001538.tgz",
+      "integrity": "sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==",
+      "funding": [
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/browserslist"
+        },
+        {
+          "type": "tidelift",
+          "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+        },
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ]
     },
     "node_modules/canvas": {
       "version": "2.9.0",
@@ -2617,7 +3124,6 @@
       "version": "2.4.2",
       "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
       "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-      "dev": true,
       "dependencies": {
         "ansi-styles": "^3.2.1",
         "escape-string-regexp": "^1.0.5",
@@ -2886,7 +3392,6 @@
       "version": "1.9.3",
       "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
       "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-      "dev": true,
       "dependencies": {
         "color-name": "1.1.3"
       }
@@ -2894,8 +3399,7 @@
     "node_modules/color-name": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
-      "dev": true
+      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
     },
     "node_modules/color-string": {
       "version": "0.3.0",
@@ -3079,7 +3583,6 @@
       "version": "1.7.0",
       "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
       "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
-      "dev": true,
       "dependencies": {
         "safe-buffer": "~5.1.1"
       }
@@ -4190,10 +4693,9 @@
       }
     },
     "node_modules/electron-to-chromium": {
-      "version": "1.4.356",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.356.tgz",
-      "integrity": "sha512-nEftV1dRX3omlxAj42FwqRZT0i4xd2dIg39sog/CnCJeCcL1TRd2Uh0i9Oebgv8Ou0vzTPw++xc+Z20jzS2B6A==",
-      "dev": true
+      "version": "1.4.528",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.528.tgz",
+      "integrity": "sha512-UdREXMXzLkREF4jA8t89FQjA8WHI6ssP38PMY4/4KhXFQbtImnghh4GkCgrtiZwLKUKVD2iTVXvDVQjfomEQuA=="
     },
     "node_modules/element-resize-detector": {
       "version": "1.2.2",
@@ -4451,7 +4953,6 @@
       "version": "3.1.1",
       "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
       "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
-      "dev": true,
       "engines": {
         "node": ">=6"
       }
@@ -4466,7 +4967,6 @@
       "version": "1.0.5",
       "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
       "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
-      "dev": true,
       "engines": {
         "node": ">=0.8.0"
       }
@@ -5488,6 +5988,15 @@
         "node": ">=8"
       }
     },
+    "node_modules/gensync": {
+      "version": "1.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+      "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+      "peer": true,
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
     "node_modules/get-caller-file": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
@@ -5658,7 +6167,6 @@
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
       "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-      "dev": true,
       "engines": {
         "node": ">=4"
       }
@@ -13720,7 +14228,6 @@
       "version": "5.5.0",
       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
       "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-      "dev": true,
       "dependencies": {
         "has-flag": "^3.0.0"
       },
@@ -16033,12 +16540,218 @@
     }
   },
   "dependencies": {
-    "@babel/helper-module-imports": {
-      "version": "7.21.4",
-      "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz",
-      "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==",
+    "@ampproject/remapping": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
+      "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+      "peer": true,
       "requires": {
-        "@babel/types": "^7.21.4"
+        "@jridgewell/gen-mapping": "^0.3.0",
+        "@jridgewell/trace-mapping": "^0.3.9"
+      }
+    },
+    "@babel/code-frame": {
+      "version": "7.22.13",
+      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
+      "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+      "peer": true,
+      "requires": {
+        "@babel/highlight": "^7.22.13",
+        "chalk": "^2.4.2"
+      }
+    },
+    "@babel/compat-data": {
+      "version": "7.22.20",
+      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz",
+      "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==",
+      "peer": true
+    },
+    "@babel/core": {
+      "version": "7.22.20",
+      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.20.tgz",
+      "integrity": "sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA==",
+      "peer": true,
+      "requires": {
+        "@ampproject/remapping": "^2.2.0",
+        "@babel/code-frame": "^7.22.13",
+        "@babel/generator": "^7.22.15",
+        "@babel/helper-compilation-targets": "^7.22.15",
+        "@babel/helper-module-transforms": "^7.22.20",
+        "@babel/helpers": "^7.22.15",
+        "@babel/parser": "^7.22.16",
+        "@babel/template": "^7.22.15",
+        "@babel/traverse": "^7.22.20",
+        "@babel/types": "^7.22.19",
+        "convert-source-map": "^1.7.0",
+        "debug": "^4.1.0",
+        "gensync": "^1.0.0-beta.2",
+        "json5": "^2.2.3",
+        "semver": "^6.3.1"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "4.3.4",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+          "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+          "peer": true,
+          "requires": {
+            "ms": "2.1.2"
+          }
+        },
+        "json5": {
+          "version": "2.2.3",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+          "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+          "peer": true
+        },
+        "ms": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+          "peer": true
+        },
+        "semver": {
+          "version": "6.3.1",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+          "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+          "peer": true
+        }
+      }
+    },
+    "@babel/generator": {
+      "version": "7.22.15",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz",
+      "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==",
+      "peer": true,
+      "requires": {
+        "@babel/types": "^7.22.15",
+        "@jridgewell/gen-mapping": "^0.3.2",
+        "@jridgewell/trace-mapping": "^0.3.17",
+        "jsesc": "^2.5.1"
+      },
+      "dependencies": {
+        "jsesc": {
+          "version": "2.5.2",
+          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+          "peer": true
+        }
+      }
+    },
+    "@babel/helper-compilation-targets": {
+      "version": "7.22.15",
+      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz",
+      "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==",
+      "peer": true,
+      "requires": {
+        "@babel/compat-data": "^7.22.9",
+        "@babel/helper-validator-option": "^7.22.15",
+        "browserslist": "^4.21.9",
+        "lru-cache": "^5.1.1",
+        "semver": "^6.3.1"
+      },
+      "dependencies": {
+        "browserslist": {
+          "version": "4.21.11",
+          "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.11.tgz",
+          "integrity": "sha512-xn1UXOKUz7DjdGlg9RrUr0GGiWzI97UQJnugHtH0OLDfJB7jMgoIkYvRIEO1l9EeEERVqeqLYOcFBW9ldjypbQ==",
+          "peer": true,
+          "requires": {
+            "caniuse-lite": "^1.0.30001538",
+            "electron-to-chromium": "^1.4.526",
+            "node-releases": "^2.0.13",
+            "update-browserslist-db": "^1.0.13"
+          }
+        },
+        "lru-cache": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+          "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+          "peer": true,
+          "requires": {
+            "yallist": "^3.0.2"
+          }
+        },
+        "node-releases": {
+          "version": "2.0.13",
+          "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz",
+          "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==",
+          "peer": true
+        },
+        "picocolors": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+          "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+          "peer": true
+        },
+        "semver": {
+          "version": "6.3.1",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+          "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+          "peer": true
+        },
+        "update-browserslist-db": {
+          "version": "1.0.13",
+          "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+          "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+          "peer": true,
+          "requires": {
+            "escalade": "^3.1.1",
+            "picocolors": "^1.0.0"
+          }
+        },
+        "yallist": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+          "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+          "peer": true
+        }
+      }
+    },
+    "@babel/helper-environment-visitor": {
+      "version": "7.22.20",
+      "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+      "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
+      "peer": true
+    },
+    "@babel/helper-function-name": {
+      "version": "7.22.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz",
+      "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==",
+      "peer": true,
+      "requires": {
+        "@babel/template": "^7.22.5",
+        "@babel/types": "^7.22.5"
+      }
+    },
+    "@babel/helper-hoist-variables": {
+      "version": "7.22.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+      "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+      "peer": true,
+      "requires": {
+        "@babel/types": "^7.22.5"
+      }
+    },
+    "@babel/helper-module-imports": {
+      "version": "7.22.15",
+      "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+      "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+      "requires": {
+        "@babel/types": "^7.22.15"
+      }
+    },
+    "@babel/helper-module-transforms": {
+      "version": "7.22.20",
+      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.20.tgz",
+      "integrity": "sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A==",
+      "peer": true,
+      "requires": {
+        "@babel/helper-environment-visitor": "^7.22.20",
+        "@babel/helper-module-imports": "^7.22.15",
+        "@babel/helper-simple-access": "^7.22.5",
+        "@babel/helper-split-export-declaration": "^7.22.6",
+        "@babel/helper-validator-identifier": "^7.22.20"
       }
     },
     "@babel/helper-plugin-utils": {
@@ -16046,20 +16759,74 @@
       "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz",
       "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA=="
     },
+    "@babel/helper-simple-access": {
+      "version": "7.22.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+      "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+      "peer": true,
+      "requires": {
+        "@babel/types": "^7.22.5"
+      }
+    },
+    "@babel/helper-split-export-declaration": {
+      "version": "7.22.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+      "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+      "peer": true,
+      "requires": {
+        "@babel/types": "^7.22.5"
+      }
+    },
     "@babel/helper-string-parser": {
-      "version": "7.19.4",
-      "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
-      "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw=="
+      "version": "7.22.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
+      "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw=="
     },
     "@babel/helper-validator-identifier": {
-      "version": "7.19.1",
-      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
-      "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w=="
+      "version": "7.22.20",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+      "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A=="
+    },
+    "@babel/helper-validator-option": {
+      "version": "7.22.15",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz",
+      "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==",
+      "peer": true
+    },
+    "@babel/helpers": {
+      "version": "7.22.15",
+      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.15.tgz",
+      "integrity": "sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==",
+      "peer": true,
+      "requires": {
+        "@babel/template": "^7.22.15",
+        "@babel/traverse": "^7.22.15",
+        "@babel/types": "^7.22.15"
+      }
+    },
+    "@babel/highlight": {
+      "version": "7.22.20",
+      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
+      "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
+      "peer": true,
+      "requires": {
+        "@babel/helper-validator-identifier": "^7.22.20",
+        "chalk": "^2.4.2",
+        "js-tokens": "^4.0.0"
+      },
+      "dependencies": {
+        "js-tokens": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+          "peer": true
+        }
+      }
     },
     "@babel/parser": {
-      "version": "7.21.4",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz",
-      "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw=="
+      "version": "7.22.16",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz",
+      "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA=="
     },
     "@babel/plugin-syntax-jsx": {
       "version": "7.16.7",
@@ -16100,13 +16867,65 @@
         }
       }
     },
-    "@babel/types": {
-      "version": "7.21.4",
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz",
-      "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==",
+    "@babel/template": {
+      "version": "7.22.15",
+      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
+      "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
+      "peer": true,
       "requires": {
-        "@babel/helper-string-parser": "^7.19.4",
-        "@babel/helper-validator-identifier": "^7.19.1",
+        "@babel/code-frame": "^7.22.13",
+        "@babel/parser": "^7.22.15",
+        "@babel/types": "^7.22.15"
+      }
+    },
+    "@babel/traverse": {
+      "version": "7.22.20",
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.20.tgz",
+      "integrity": "sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw==",
+      "peer": true,
+      "requires": {
+        "@babel/code-frame": "^7.22.13",
+        "@babel/generator": "^7.22.15",
+        "@babel/helper-environment-visitor": "^7.22.20",
+        "@babel/helper-function-name": "^7.22.5",
+        "@babel/helper-hoist-variables": "^7.22.5",
+        "@babel/helper-split-export-declaration": "^7.22.6",
+        "@babel/parser": "^7.22.16",
+        "@babel/types": "^7.22.19",
+        "debug": "^4.1.0",
+        "globals": "^11.1.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "4.3.4",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+          "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+          "peer": true,
+          "requires": {
+            "ms": "2.1.2"
+          }
+        },
+        "globals": {
+          "version": "11.12.0",
+          "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+          "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+          "peer": true
+        },
+        "ms": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+          "peer": true
+        }
+      }
+    },
+    "@babel/types": {
+      "version": "7.22.19",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.19.tgz",
+      "integrity": "sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==",
+      "requires": {
+        "@babel/helper-string-parser": "^7.22.5",
+        "@babel/helper-validator-identifier": "^7.22.19",
         "to-fast-properties": "^2.0.0"
       },
       "dependencies": {
@@ -16115,6 +16934,45 @@
           "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
           "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
         }
+      }
+    },
+    "@jridgewell/gen-mapping": {
+      "version": "0.3.3",
+      "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+      "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+      "peer": true,
+      "requires": {
+        "@jridgewell/set-array": "^1.0.1",
+        "@jridgewell/sourcemap-codec": "^1.4.10",
+        "@jridgewell/trace-mapping": "^0.3.9"
+      }
+    },
+    "@jridgewell/resolve-uri": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
+      "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
+      "peer": true
+    },
+    "@jridgewell/set-array": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+      "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+      "peer": true
+    },
+    "@jridgewell/sourcemap-codec": {
+      "version": "1.4.15",
+      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+      "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
+      "peer": true
+    },
+    "@jridgewell/trace-mapping": {
+      "version": "0.3.19",
+      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz",
+      "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
+      "peer": true,
+      "requires": {
+        "@jridgewell/resolve-uri": "^3.1.0",
+        "@jridgewell/sourcemap-codec": "^1.4.14"
       }
     },
     "@mapbox/node-pre-gyp": {
@@ -16178,6 +17036,12 @@
           "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
         }
       }
+    },
+    "@popperjs/core": {
+      "version": "2.11.8",
+      "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
+      "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
+      "peer": true
     },
     "@transloadit/prettier-bytes": {
       "version": "0.0.7",
@@ -16590,7 +17454,6 @@
       "version": "3.2.1",
       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
       "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-      "dev": true,
       "requires": {
         "color-convert": "^1.9.0"
       }
@@ -18188,10 +19051,9 @@
       "dev": true
     },
     "caniuse-lite": {
-      "version": "1.0.30001477",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001477.tgz",
-      "integrity": "sha512-lZim4iUHhGcy5p+Ri/G7m84hJwncj+Kz7S5aD4hoQfslKZJgt0tHc/hafVbqHC5bbhHb+mrW2JOUHkI5KH7toQ==",
-      "dev": true
+      "version": "1.0.30001538",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001538.tgz",
+      "integrity": "sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw=="
     },
     "canvas": {
       "version": "2.9.0",
@@ -18233,7 +19095,6 @@
       "version": "2.4.2",
       "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
       "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-      "dev": true,
       "requires": {
         "ansi-styles": "^3.2.1",
         "escape-string-regexp": "^1.0.5",
@@ -18451,7 +19312,6 @@
       "version": "1.9.3",
       "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
       "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-      "dev": true,
       "requires": {
         "color-name": "1.1.3"
       }
@@ -18459,8 +19319,7 @@
     "color-name": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
-      "dev": true
+      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
     },
     "color-string": {
       "version": "0.3.0",
@@ -18621,7 +19480,6 @@
       "version": "1.7.0",
       "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
       "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
-      "dev": true,
       "requires": {
         "safe-buffer": "~5.1.1"
       }
@@ -19569,10 +20427,9 @@
       "dev": true
     },
     "electron-to-chromium": {
-      "version": "1.4.356",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.356.tgz",
-      "integrity": "sha512-nEftV1dRX3omlxAj42FwqRZT0i4xd2dIg39sog/CnCJeCcL1TRd2Uh0i9Oebgv8Ou0vzTPw++xc+Z20jzS2B6A==",
-      "dev": true
+      "version": "1.4.528",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.528.tgz",
+      "integrity": "sha512-UdREXMXzLkREF4jA8t89FQjA8WHI6ssP38PMY4/4KhXFQbtImnghh4GkCgrtiZwLKUKVD2iTVXvDVQjfomEQuA=="
     },
     "element-resize-detector": {
       "version": "1.2.2",
@@ -19812,8 +20669,7 @@
     "escalade": {
       "version": "3.1.1",
       "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
-      "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
-      "dev": true
+      "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
     },
     "escape-html": {
       "version": "1.0.3",
@@ -19824,8 +20680,7 @@
     "escape-string-regexp": {
       "version": "1.0.5",
       "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
-      "dev": true
+      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
     },
     "escope": {
       "version": "3.6.0",
@@ -20632,6 +21487,12 @@
         }
       }
     },
+    "gensync": {
+      "version": "1.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+      "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+      "peer": true
+    },
     "get-caller-file": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
@@ -20768,8 +21629,7 @@
     "has-flag": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-      "dev": true
+      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
     },
     "has-symbols": {
       "version": "1.0.2",
@@ -27463,7 +28323,6 @@
       "version": "5.5.0",
       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
       "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-      "dev": true,
       "requires": {
         "has-flag": "^3.0.0"
       }
diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index f6adcf8..c8fbad9 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -1,201 +1,195 @@
 // 鎶�鏈鐞�-鏍囧噯Bom
 const standard = {
-	// 鎶�鏈鐞�-鏍囧噯Bom
-	selectTreeByMaterial: "material/selectTreeByMaterial", //鏌ヨ鐗╂枡鐨勬爲
-	selectVersion: "/material/selectVersion", //鍙充晶鐗堟湰
-	selectProductByMaterial: "product/selectTreeByMaterial", //鏍规嵁鐗╂枡鏌ヨ椤圭洰琛ㄦ牸
-	selectTechnologyByMaterial: "technology/select",
-	selectAll: "/material/selectAll", //鍙充晶鏁版嵁
-	technologyWrite: "/technology/write", //宸ヨ壓璺嚎锛岀Щ寮�淇濆瓨鐢熶骇瀹氶
-	writeDevice: "/technology/writeDevice", //宸ヨ壓璺嚎锛岄�夋嫨璁惧缁�,绉诲紑淇濆瓨
-	productWrite: "/product/write", //鎶�鏈寚鏍囷紝绉诲紑淇濆瓨鍐呮帶鍊煎拰鏍囧噯鍊�
-	chooseFather: "/technology/chooseFather", //鑾峰彇宸ュ簭鍒楄〃
-	chooseDevice: "/technology/chooseDevice", //鑾峰彇璁惧缁勫垪琛�
-	addTechnology: "/technology/add", //娣诲姞宸ヨ壓璺嚎
-	leftAddOneTwo: "/material/add", //宸︿晶鏂板1锛�2绾�
-	leftAddThree: "/standard/add", //宸︿晶涓夌骇鏂板
-	leftAddFour: "/specifications/add", //宸︿晶鍥涚骇鏂板
-	chooseTechByStandard: "/product/chooseTech", //鍙充笂瑙掓柊澧�-->鎶�鏈寚鏍�-->閫夋嫨宸ュ簭,宸ヨ壓
-	chooseFatherByStandard: "/product/chooseFather", //鍙充笂瑙掓柊澧�-->鎶�鏈寚鏍�-->閫夋嫨椤圭洰鐖剁被
-	addProductByStandard: "/product/add", //鍙充笂瑙掓柊澧�-->鎶�鏈寚鏍�
-	addMBomByStandard: "/mbom/add", //鍙充笂瑙掓柊澧�-->鐗╂枡娓呭崟
-	chooseTechByMBom: "/mbom/chooseTech", //鍙充笂瑙掓柊澧�-->鐗╂枡娓呭崟-->閫夋嫨宸ュ簭,宸ヨ壓
-	mBomWrite: "/mbom/write", //鐗╂枡娓呭崟-->鏁伴噺,绉诲紑淇濆瓨
-	chooseTechByProduct: "/technique/chooseTech", //鍙充笂瑙掓柊澧�-->鐢熶骇宸ヨ壓-->閫夋嫨宸ュ簭,宸ヨ壓
-	addTechniqueByStandard: "/technique/add", //鍙充笂瑙掓柊澧�-->鐢熶骇宸ヨ壓
-	chooseProByProduct: "/technique/choosePro", //鍙充笂瑙掓柊澧�-->鐢熶骇宸ヨ壓-->閫夋嫨椤圭洰(鐖跺瓙),鍗曚綅
-	chooseDevByProduct: "/technique/chooseDev", //鍙充笂瑙掓柊澧�-->鐢熶骇宸ヨ壓-->閫夋嫨璁惧
-	addVersion: "/material/addVersion", //娣诲姞鍚屼竴涓瀷鍙峰伐鑹鸿矾绾�,鎶�鏈寚鏍�,鐗╂枡娓呭崟,鐢熶骇宸ヨ壓鐨勭増鏈�
-	delAllByTechnology: "/technology/delAllTech", //宸ヨ壓璺嚎-鎵归噺鍒犻櫎
-	delAllByTarget: "/product/delAllPro", //鎶�鏈寚鏍�-鎵归噺鍒犻櫎
-	delAllByMBom: "/mbom/delAllMbom", //鐗╂枡娓呭崟-鎵归噺鍒犻櫎
-	delAllByProduct: "/technique/delAllTeq", //鐢熶骇宸ヨ壓-鎵归噺鍒犻櫎
-	// 鎶�鏈鐞�-鎶�鏈枃浠�
-	selectAllOrder: "/orders/selectAllOrder", //鏌ヨ鎵�鏈夎鍗曞垪琛�
-	selectOrderById: "/orders/selectOrderById", //鏍规嵁璁㈠崟id鏌ヨ璁㈠崟璇︽儏
+    // 鎶�鏈鐞�-鏍囧噯Bom
+    selectTreeByMaterial: "material/selectTreeByMaterial", //鏌ヨ鐗╂枡鐨勬爲
+    selectVersion: "/material/selectVersion", //鍙充晶鐗堟湰
+    selectProductByMaterial: "product/selectTreeByMaterial", //鏍规嵁鐗╂枡鏌ヨ椤圭洰琛ㄦ牸
+    selectTechnologyByMaterial: "technology/select",
+    selectAll: "/material/selectAll", //鍙充晶鏁版嵁
+    technologyWrite: "/technology/write", //宸ヨ壓璺嚎锛岀Щ寮�淇濆瓨鐢熶骇瀹氶
+    writeDevice: "/technology/writeDevice", //宸ヨ壓璺嚎锛岄�夋嫨璁惧缁�,绉诲紑淇濆瓨
+    productWrite: "/product/write", //鎶�鏈寚鏍囷紝绉诲紑淇濆瓨鍐呮帶鍊煎拰鏍囧噯鍊�
+    chooseFather: "/technology/chooseFather", //鑾峰彇宸ュ簭鍒楄〃
+    chooseDevice: "/technology/chooseDevice", //鑾峰彇璁惧缁勫垪琛�
+    addTechnology: "/technology/add", //娣诲姞宸ヨ壓璺嚎
+    leftAddOneTwo: "/material/add", //宸︿晶鏂板1锛�2绾�
+    leftAddThree: "/standard/add", //宸︿晶涓夌骇鏂板
+    leftAddFour: "/specifications/add", //宸︿晶鍥涚骇鏂板
+    chooseTechByStandard: "/product/chooseTech", //鍙充笂瑙掓柊澧�-->鎶�鏈寚鏍�-->閫夋嫨宸ュ簭,宸ヨ壓
+    chooseFatherByStandard: "/product/chooseFather", //鍙充笂瑙掓柊澧�-->鎶�鏈寚鏍�-->閫夋嫨椤圭洰鐖剁被
+    addProductByStandard: "/product/add", //鍙充笂瑙掓柊澧�-->鎶�鏈寚鏍�
+    addMBomByStandard: "/mbom/add", //鍙充笂瑙掓柊澧�-->鐗╂枡娓呭崟
+    chooseTechByMBom: "/mbom/chooseTech", //鍙充笂瑙掓柊澧�-->鐗╂枡娓呭崟-->閫夋嫨宸ュ簭,宸ヨ壓
+    mBomWrite: "/mbom/write", //鐗╂枡娓呭崟-->鏁伴噺,绉诲紑淇濆瓨
+    chooseTechByProduct: "/technique/chooseTech", //鍙充笂瑙掓柊澧�-->鐢熶骇宸ヨ壓-->閫夋嫨宸ュ簭,宸ヨ壓
+    addTechniqueByStandard: "/technique/add", //鍙充笂瑙掓柊澧�-->鐢熶骇宸ヨ壓
+    chooseProByProduct: "/technique/choosePro", //鍙充笂瑙掓柊澧�-->鐢熶骇宸ヨ壓-->閫夋嫨椤圭洰(鐖跺瓙),鍗曚綅
+    chooseDevByProduct: "/technique/chooseDev", //鍙充笂瑙掓柊澧�-->鐢熶骇宸ヨ壓-->閫夋嫨璁惧
+    addVersion: "/material/addVersion", //娣诲姞鍚屼竴涓瀷鍙峰伐鑹鸿矾绾�,鎶�鏈寚鏍�,鐗╂枡娓呭崟,鐢熶骇宸ヨ壓鐨勭増鏈�
+    delAllByTechnology: "/technology/delAllTech", //宸ヨ壓璺嚎-鎵归噺鍒犻櫎
+    delAllByTarget: "/product/delAllPro", //鎶�鏈寚鏍�-鎵归噺鍒犻櫎
+    delAllByMBom: "/mbom/delAllMbom", //鐗╂枡娓呭崟-鎵归噺鍒犻櫎
+    delAllByProduct: "/technique/delAllTeq", //鐢熶骇宸ヨ壓-鎵归噺鍒犻櫎
+    // 鎶�鏈鐞�-鎶�鏈枃浠�
+    selectAllOrder: "/orders/selectAllOrder", //鏌ヨ鎵�鏈夎鍗曞垪琛�
+    selectOrderById: "/orders/selectOrderById", //鏍规嵁璁㈠崟id鏌ヨ璁㈠崟璇︽儏
 
 
-	//璁㈠崟BOM
-	delDevice: "/device/delDeviceById", //璁㈠崟Bom
-	compile: "/orders/compile", //缂栧埗
+    //璁㈠崟BOM
+    delDevice: "/device/delDeviceById", //璁㈠崟Bom
+    compile: "/orders/compile", //缂栧埗
 }
 // 鍘熸潗鏂欐楠�
 const raw = {
-	selectRawInspectsList: "/rawInspect/selectRawInspectsList", //鏌ヨ鍘熸潗鏂欐楠屽崟鍒楄〃
-	selectRawInspectsListById: "/rawInspect/selectRawInspectsListById/", //鏍规嵁妫�楠屽崟id鑾峰彇妫�楠屽崟璇︽儏
-	updaterawInsProduct: '/rawInsProduct/updaterawInsProduct', //淇敼椤圭洰鐨勬楠屽��
-	updateRawInspectsById: "/rawInspect/updateRawInspectsById/", //涓婃姤,
-	rawSelectDevice: "/rawInsProduct/selectDevice", //鏌ヨ璁惧淇℃伅
-	addRawInspects: "/rawInspect/addRawInspects", // 娣诲姞
-	updateDevByRpId: "/rawInsProduct/updateDevByRpId", // 鏇存敼璁惧
+    selectRawInspectsList: "/rawInspect/selectRawInspectsList", //鏌ヨ鍘熸潗鏂欐楠屽崟鍒楄〃
+    selectRawInspectsListById: "/rawInspect/selectRawInspectsListById/", //鏍规嵁妫�楠屽崟id鑾峰彇妫�楠屽崟璇︽儏
+    updaterawInsProduct: '/rawInsProduct/updaterawInsProduct', //淇敼椤圭洰鐨勬楠屽��
+    updateRawInspectsById: "/rawInspect/updateRawInspectsById/", //涓婃姤,
+    rawSelectDevice: "/rawInsProduct/selectDevice", //鏌ヨ璁惧淇℃伅
+    addRawInspects: "/rawInspect/addRawInspects", // 娣诲姞
+    updateDevByRpId: "/rawInsProduct/updateDevByRpId", // 鏇存敼璁惧
 }
-//涓嶅悎鏍煎師鏉愭枡
-const unqualifiedaa = {
-	selectUnRawInspectsList: "/inspectUnaccepted/selectURawMaterials", // 鏌ヨ鍘熸潗鏂欎笉鍚堟牸鍝佹楠屽崟鍒楄〃
-	evaluatePassOrNo: "/inspectUnaccepted/evaluatePassOrNo" // 璇勫
-}
+
 // 鏌ヨ鎴愬搧涓嶅悎鏍煎搧绠$悊
 const unRawInspects = {
-	inspectUnaccepted: "/inspectUnaccepted/selectUnRawInspectsList"
+    inspectUnaccepted: "/inspectUnaccepted/selectUnRawInspectsList", // 鏌ヨ涓嶅悎鏍煎搧绠$悊妫�楠屽崟鍒楄〃
+    evaluatePassOrNo: "/inspectUnaccepted/evaluatePassOrNo" // 璇勫
 }
 //涓嶅悎鏍煎搧澶勭疆
 const dispose = {
-	getTable: "/inspectUnaccepted/selectDisposal", // 涓嶅悎鏍煎搧鍒嗛〉鍒楄〃
-	descriptionUpdate: "/inspectUnaccepted/descriptionUpdate", // 澶辩劍鏇存柊鐜板儚鎻忚堪
-	viewEditorial: "/inspectUnaccepted/viewEditorial", // 鏌ョ湅缂栬緫鎰忚
-	clickEditing: "/inspectUnaccepted/clickEditing", // 鐐瑰嚮缂栬緫鎰忚瑙﹀彂鏌ヨ
-	addOpinion: "/inspectUnaccepted/addOpinion" // 缂栬緫鎰忚-->纭畾鎸夐挳
+    getTable: "/inspectUnaccepted/selectDisposal", // 涓嶅悎鏍煎搧鍒嗛〉鍒楄〃
+    descriptionUpdate: "/inspectUnaccepted/descriptionUpdate", // 澶辩劍鏇存柊鐜板儚鎻忚堪
+    editDisposalOpinion: "/inspectUnaccepted/editDisposalOpinion", // 缂栬緫澶勭疆鎰忚纭畾鎸夐挳
 }
 // 鎴愬搧妫�楠�
 const finishedIns = {
-	finishedInsListPage: "/finished-inspect/list_page", //鑾峰彇鎴愬搧妫�楠屽垪琛�
-	// listMaterial:"/finished-inspect/list_material",//娣诲姞妫�楠屽崟鏃剁殑椤圭洰鍒楄〃
-	finishedInspectUser: "/finished-inspect/page_user", //鑾峰彇鎵�鏈変富鏈哄伐
-	projectListByfinishId: "/inspection-item/list_user", //鏍规嵁id鏌ヨ鎵�鏈夐」鐩�
-	processInspectAddProcess: "/processInspect/addProcess", //鏂板妫�楠�
-	inspectionItemListUser: "/inspection-item/list_user", //鏌ヨ鎵�鏈夋楠岄」鐩�
-	finishedInspectChooseMater: "/finished-inspect/chooseMater", //鏍规嵁璁㈠崟鍙峰緱鍒颁俊鎭�
-	finishedInspectAddFinish: "/finished-inspect/addFinish", //鏂板鎴愬搧妫�楠�
-	finishedInspectUpdateFinishInspectsById: "/finished-inspect/updateFinishInspectsById", //涓婃姤
-	finishedInspectSelectFinishInspectsListById: "/finished-inspect/selectFinishInspectsListById"
+    finishedInsListPage: "/finished-inspect/list_page", //鑾峰彇鎴愬搧妫�楠屽垪琛�
+    // listMaterial:"/finished-inspect/list_material",//娣诲姞妫�楠屽崟鏃剁殑椤圭洰鍒楄〃
+    finishedInspectUser: "/finished-inspect/page_user", //鑾峰彇鎵�鏈変富鏈哄伐
+    projectListByfinishId: "/inspection-item/list_user", //鏍规嵁id鏌ヨ鎵�鏈夐」鐩�
+    processInspectAddProcess: "/processInspect/addProcess", //鏂板妫�楠�
+    inspectionItemListUser: "/inspection-item/list_user", //鏌ヨ鎵�鏈夋楠岄」鐩�
+    finishedInspectChooseMater: "/finished-inspect/chooseMater", //鏍规嵁璁㈠崟鍙峰緱鍒颁俊鎭�
+    finishedInspectAddFinish: "/finished-inspect/addFinish", //鏂板鎴愬搧妫�楠�
+    finishedInspectUpdateFinishInspectsById: "/finished-inspect/updateFinishInspectsById", //涓婃姤
+    finishedInspectSelectFinishInspectsListById: "/finished-inspect/selectFinishInspectsListById"
 }
 // 杩囩▼妫�楠�
 const processInspection = {
-	selectProcessInspectsList: "/processInspect/selectProcessInspectsList", // 鍒嗛〉鏌ヨ杩囩▼妫�楠屽崟鍒楄〃
-	chooseMaterProcessInspect: "/processInspect/chooseMater", //鏍规嵁璁㈠崟鍙烽�夋嫨浜у搧鍜屽伐鑹�
-	inspectionItemUpdateDevByInsId: "/inspection-item/updateDevByInsId", //鏇存敼璁惧
-	inspectionItemlose_focus_update: "/inspection-item/lose_focus_update", //妫�楠屽��
-	processInspectUpdateProcessInspectsById: "/processInspect/updateProcessInspectsById", //涓婃姤
-	inspectionItemChooseDev: "/inspection-item/chooseDev",
-	processInspectSelectProcessInspectsListById: "/processInspect/selectProcessInspectsListById"
+    selectProcessInspectsList: "/processInspect/selectProcessInspectsList", // 鍒嗛〉鏌ヨ杩囩▼妫�楠屽崟鍒楄〃
+    chooseMaterProcessInspect: "/processInspect/chooseMater", //鏍规嵁璁㈠崟鍙烽�夋嫨浜у搧鍜屽伐鑹�
+    inspectionItemUpdateDevByInsId: "/inspection-item/updateDevByInsId", //鏇存敼璁惧
+    inspectionItemlose_focus_update: "/inspection-item/lose_focus_update", //妫�楠屽��
+    processInspectUpdateProcessInspectsById: "/processInspect/updateProcessInspectsById", //涓婃姤
+    inspectionItemChooseDev: "/inspection-item/chooseDev",
+    processInspectSelectProcessInspectsListById: "/processInspect/selectProcessInspectsListById"
 }
 // QMS瀹為獙瀹ょ鐞�
 const laboratory = {
-	delDeviceById: "/device/delDeviceById", //鍒犻櫎
-	addApi: "/device/add", //鏂板
-	listgroup: "/device/list_group",
-	selectDevice: "/device/selectDevice", //鍙宠竟灞曠ず
-	addDeviceInspectDownBox: "/device/listInspect", // 鏂板浠櫒璁惧锛氭楠岄」鐩笅鎷夋
-	selectDeviceInspectMessage: "/device/inspectId", // 鏂板浠櫒璁惧锛氭牴鎹楠岄」鐩甀D鏌ヨ鏁版嵁
-	addDeviceKeeper: "/device/list_user", // 鏂板浠櫒璁惧锛氫繚绠′汉涓嬫媺妗�
-	addDeviceParentClassification: "/device/parent_classification", // 鏂板浠櫒璁惧锛氭煡璇㈢埗绾у垎绫�
-	addDeviceInstrument: "/device/add", // 鏂板浠櫒璁惧
-	towTree: "/device/two_tree", //浜岀骇鏍�
-	tableDeviceList: "/device/table_list", // 瀹為獙瀹ゆā鍧楄〃鏍兼暟鎹�
-	deleteDevice: "/device/delete", // 鍒犻櫎瀹為獙瀹よ澶�
-	deleteIdorFather: "/device/deleteIdorFather" // 鍒犻櫎鏍戞ā鍧楁暟鎹�
+    delDeviceById: "/device/delDeviceById", //鍒犻櫎
+    addApi: "/device/add", //鏂板
+    listgroup: "/device/list_group",
+    selectDevice: "/device/selectDevice", //鍙宠竟灞曠ず
+    addDeviceInspectDownBox: "/device/listInspect", // 鏂板浠櫒璁惧锛氭楠岄」鐩笅鎷夋
+    selectDeviceInspectMessage: "/device/inspectId", // 鏂板浠櫒璁惧锛氭牴鎹楠岄」鐩甀D鏌ヨ鏁版嵁
+    addDeviceKeeper: "/device/list_user", // 鏂板浠櫒璁惧锛氫繚绠′汉涓嬫媺妗�
+    addDeviceParentClassification: "/device/parent_classification", // 鏂板浠櫒璁惧锛氭煡璇㈢埗绾у垎绫�
+    addDeviceInstrument: "/device/add", // 鏂板浠櫒璁惧
+    towTree: "/device/two_tree", //浜岀骇鏍�
+    tableDeviceList: "/device/table_list", // 瀹為獙瀹ゆā鍧楄〃鏍兼暟鎹�
+    deleteDevice: "/device/delete", // 鍒犻櫎瀹為獙瀹よ澶�
+    deleteIdorFather: "/device/deleteIdorFather" // 鍒犻櫎鏍戞ā鍧楁暟鎹�
 }
 
 //search_class:codeNameModel
 // QMS璁¢噺绠$悊
 const measure = {
-	measureLedgerPageTable: "/measureLedger/metering_table", // 璁¢噺棰勬祴-->鍒嗛〉琛ㄦ牸
-	meteringPlanPageTable: "/meteringPlan/metering_table", // 璁¢噺璁″垝-->鍒嗛〉琛ㄦ牸
-	meteringPlanListRecord: "/meteringPlan/list_record", // 璁¢噺璁″垝<-->璁¢噺鍙拌处锛氭煡鐪嬭閲忓饱鍘�
-	meterPlanListDevice: "/meteringPlan/list_device", //鏂板璁″垝璁惧涓嬫媺妗�
-	createPerson: "/meteringPlan/list_user", //鍒涘缓浜轰笅鎷夋
-	meteringPlanDevicePlan: "/meteringPlan/add_plan", // 璁¢噺璁″垝-->鏂板鎸夐挳
+    measureLedgerPageTable: "/measureLedger/metering_table", // 璁¢噺棰勬祴-->鍒嗛〉琛ㄦ牸
+    meteringPlanPageTable: "/meteringPlan/metering_table", // 璁¢噺璁″垝-->鍒嗛〉琛ㄦ牸
+    meteringPlanListRecord: "/meteringPlan/list_record", // 璁¢噺璁″垝<-->璁¢噺鍙拌处锛氭煡鐪嬭閲忓饱鍘�
+    meterPlanListDevice: "/meteringPlan/list_device", //鏂板璁″垝璁惧涓嬫媺妗�
+    createPerson: "/meteringPlan/list_user", //鍒涘缓浜轰笅鎷夋
+    meteringPlanDevicePlan: "/meteringPlan/add_plan", // 璁¢噺璁″垝-->鏂板鎸夐挳
 }
 //鍩虹鏁版嵁
 const Basicdata = {
-	selectAllTechNam: "/technologyTemplate/selectAllTechNam", //宸ヨ壓璺嚎-->鍙宠竟
-	selectAllTechTem: "/technologyTemplate/selectAllTechTem", //宸ヨ壓璺嚎-->宸﹁竟
-	chooseDevGroup: "/technologyTemplate/chooseDevGroup", //鏂板宸ヨ壓璺嚎--銆嬮�夋嫨璁惧缁�
-	chooseElement: "/technologyTemplate/chooseElement", //鏂板宸ヨ壓璺嚎-->閫夋嫨鍏冧欢
-	addTechTemp: "/technologyTemplate/addTechTemp", //鏂板宸ヨ壓璺嚎==>鏂板
-	chooseTech: "/technologyTemplate/chooseTech", //鏂板宸ヨ壓璺嚎--銆嬮�夊垯宸ュ簭
-	writeTechById: "/technologyTemplate/writeTechById", //鏂板宸ヨ壓璺嚎-->缂栬緫浼犲弬
-	delTechById: "/technologyTemplate/delTechById", //鏂板宸ヨ壓璺嚎==>鍒犻櫎
-	selecTechById: "/technologyTemplate/selecTechById", //鏂板宸ヨ壓璺嚎--銆嬬紪杈�
-	delAllTech: "/technologyTemplate/delAllTech", //鎵归噺鍒犻櫎
+    selectAllTechNam: "/technologyTemplate/selectAllTechNam", //宸ヨ壓璺嚎-->鍙宠竟
+    selectAllTechTem: "/technologyTemplate/selectAllTechTem", //宸ヨ壓璺嚎-->宸﹁竟
+    chooseDevGroup: "/technologyTemplate/chooseDevGroup", //鏂板宸ヨ壓璺嚎--銆嬮�夋嫨璁惧缁�
+    chooseElement: "/technologyTemplate/chooseElement", //鏂板宸ヨ壓璺嚎-->閫夋嫨鍏冧欢
+    addTechTemp: "/technologyTemplate/addTechTemp", //鏂板宸ヨ壓璺嚎==>鏂板
+    chooseTech: "/technologyTemplate/chooseTech", //鏂板宸ヨ壓璺嚎--銆嬮�夊垯宸ュ簭
+    writeTechById: "/technologyTemplate/writeTechById", //鏂板宸ヨ壓璺嚎-->缂栬緫浼犲弬
+    delTechById: "/technologyTemplate/delTechById", //鏂板宸ヨ壓璺嚎==>鍒犻櫎
+    selecTechById: "/technologyTemplate/selecTechById", //鏂板宸ヨ壓璺嚎--銆嬬紪杈�
+    delAllTech: "/technologyTemplate/delAllTech", //鎵归噺鍒犻櫎
 
-	addTechMode: "/technicalModel/addTechMode", //鎶�鏈寚鏍�---銆嬫柊澧�
-	delTechBy: "/technicalModel/delTechById", //鎶�鏈�--.鍒犻櫎
-	delAllTechskill: "/technicalModel/delAllTech", //鎵归噺鍒犻櫎
-	selectAllleft: "/technicalModel/selectAllTechTem", //鎶�鏈寚鏍�-->宸﹁竟
-	selectAllright: "/technicalModel/selectAllTechNam", //鎶�鏈寚鏍�--銆嬪彸杈�
-	chooseProFath: "/technicalModel/chooseProFath", //鎶�鏈寚鏍�---銆嬬埗绫婚�夋嫨
-	chooseTechFath: "/technicalModel/chooseTechFath", // 鎶�鏈�--->宸ュ簭宸ヨ壓
-	selecTech: "/technicalModel/selecTechById", //鎶�鏈�--->缂栬緫
-	writeTechByIdskill: "/technicalModel/writeTechById", //缂栬緫浼�
+    addTechMode: "/technicalModel/addTechMode", //鎶�鏈寚鏍�---銆嬫柊澧�
+    delTechBy: "/technicalModel/delTechById", //鎶�鏈�--.鍒犻櫎
+    delAllTechskill: "/technicalModel/delAllTech", //鎵归噺鍒犻櫎
+    selectAllleft: "/technicalModel/selectAllTechTem", //鎶�鏈寚鏍�-->宸﹁竟
+    selectAllright: "/technicalModel/selectAllTechNam", //鎶�鏈寚鏍�--銆嬪彸杈�
+    chooseProFath: "/technicalModel/chooseProFath", //鎶�鏈寚鏍�---銆嬬埗绫婚�夋嫨
+    chooseTechFath: "/technicalModel/chooseTechFath", // 鎶�鏈�--->宸ュ簭宸ヨ壓
+    selecTech: "/technicalModel/selecTechById", //鎶�鏈�--->缂栬緫
+    writeTechByIdskill: "/technicalModel/writeTechById", //缂栬緫浼�
 
-	selectAllMbom: "/mbomModel/selectAllMbom", //鐗╂枡缁存姢--銆嬪彸杈�
-	addMbom: "/mbomModel/addMbom", //鐗╂枡--->鏂板
-	material: "/mbomModel/delMbomById", //鐗╂枡娓呭崟鍒犻櫎
-	delAllMbom: "/mbomModel/delAllMbom", //鎵归噺鍒犻櫎
+    selectAllMbom: "/mbomModel/selectAllMbom", //鐗╂枡缁存姢--銆嬪彸杈�
+    addMbom: "/mbomModel/addMbom", //鐗╂枡--->鏂板
+    material: "/mbomModel/delMbomById", //鐗╂枡娓呭崟鍒犻櫎
+    delAllMbom: "/mbomModel/delAllMbom", //鎵归噺鍒犻櫎
 
-	selectAllTeque: "/techniqueModel/selectAllTeque", //鐢熶骇宸ヨ壓缁存姢---銆傚彸杈�
+    selectAllTeque: "/techniqueModel/selectAllTeque", //鐢熶骇宸ヨ壓缁存姢---銆傚彸杈�
 
-	selectAllSelf: "/selfcheckModel/selectAllSelf", //鑷缓缁存姢-----銆嬪彸杈�
-	addSelfcheck: "/selfcheckModel/addSelfcheck", //鑷  ------銆嬫柊澧�
-	delSelfcheck: "/selfcheckModel/delSelfcheckById", //鑷----.鍒犻櫎
-	delAll: "selfcheckModel/delAllTech", //鎵归噺鍒犻櫎---.鑷
+    selectAllSelf: "/selfcheckModel/selectAllSelf", //鑷缓缁存姢-----銆嬪彸杈�
+    addSelfcheck: "/selfcheckModel/addSelfcheck", //鑷  ------銆嬫柊澧�
+    delSelfcheck: "/selfcheckModel/delSelfcheckById", //鑷----.鍒犻櫎
+    delAll: "selfcheckModel/delAllTech", //鎵归噺鍒犻櫎---.鑷
 
-	selectjilu: "/recordModel/selectAllRecord", //鐢熶骇璁板綍缁存姢---銆嬪彸杈�
-	selecRecord: "/recordModel/selecRecordById", //鐢熶骇璁板綍----.鏂板
-	writeRecordById: "/recordModel/writeRecordById", //缂栬緫
-	delQueByIdapi: "/recordModel/delQueById", //鍒犻櫎---.璁板綍鍐呭
+    selectjilu: "/recordModel/selectAllRecord", //鐢熶骇璁板綍缁存姢---銆嬪彸杈�
+    selecRecord: "/recordModel/selecRecordById", //鐢熶骇璁板綍----.鏂板
+    writeRecordById: "/recordModel/writeRecordById", //缂栬緫
+    delQueByIdapi: "/recordModel/delQueById", //鍒犻櫎---.璁板綍鍐呭
 
-	delAllRecord: "/recordModel/delAllRecord", //鍒犻櫎鎵归噺--->璁板綍
-	addRecord: "/recordModel/addRecord", //鐢熶骇璁板綍-------.鏂板
+    delAllRecord: "/recordModel/delAllRecord", //鍒犻櫎鎵归噺--->璁板綍
+    addRecord: "/recordModel/addRecord", //鐢熶骇璁板綍-------.鏂板
 
-	choosePro: "/techniqueModel/choosePro", //鏂板鐢熶骇宸ヨ壓缁存姢---銆嬮�夋嫨鐖剁被
-	chooseDeiv: "/techniqueModel/chooseDeiv", //鏂板----->璁惧
-	addQeMode: "/techniqueModel/addQeMode", //鏂板----銆嬩紶鍙�
-	delQueById: "/techniqueModel/delQueById", //鍒犻櫎
-	delAllQue: "/techniqueModel/delAllQue", //鎵归噺鍒犻櫎
-	selecQueById: "/techniqueModel/selecQueById", //缂栬緫
-	writeQueById: "/techniqueModel/writeQueById", //缂栬緫浼犲弬
+    choosePro: "/techniqueModel/choosePro", //鏂板鐢熶骇宸ヨ壓缁存姢---銆嬮�夋嫨鐖剁被
+    chooseDeiv: "/techniqueModel/chooseDeiv", //鏂板----->璁惧
+    addQeMode: "/techniqueModel/addQeMode", //鏂板----銆嬩紶鍙�
+    delQueById: "/techniqueModel/delQueById", //鍒犻櫎
+    delAllQue: "/techniqueModel/delAllQue", //鎵归噺鍒犻櫎
+    selecQueById: "/techniqueModel/selecQueById", //缂栬緫
+    writeQueById: "/techniqueModel/writeQueById", //缂栬緫浼犲弬
 
 }
 const url = {
-	enter: "user/enter", //鐧诲綍
-	...standard,
-	...raw,
-	...laboratory,
-	...measure,
-	...finishedIns,
-	...unqualifiedaa,
-	...dispose,
-	...Basicdata,
-	...unRawInspects,
-	...processInspection,
-	// ...gettable,
-	selectSaleList: "sale/selectSaleList", //鏌ヨ閿�鍞崟鍒楄〃
-	selectSaleDatilById: "sale/selectSaleDatilById", //鏍规嵁閿�鍞崟id鏌ョ湅璇︽儏,
-	addSale: "sale/addSale", //鏂板閿�鍞崟
-	saleCheck: "sale/check", //瀹℃牳閿�鍞崟
-	synchronization: "sale/synchronization", //鍚屾
-	updateSaleById: "sale/updateSaleById", //鏍规嵁閿�鍞崟id淇敼璇︽儏淇℃伅
-	delSale: "sale/delSale", //鏍规嵁閿�鍞崟id鍒犻櫎
-	delAllSale: "sale/delAllSale", //鎵归噺鍒犻櫎閿�鍞崟锛�
-	chooseType: "technologyTemplate/chooseType", //鏌ヨ绫诲瀷
+    enter: "user/enter", //鐧诲綍
+    ...standard,
+    ...raw,
+    ...laboratory,
+    ...measure,
+    ...finishedIns,
+    ...dispose,
+    ...Basicdata,
+    ...unRawInspects,
+    ...processInspection,
+    // ...gettable,
+    selectSaleList: "sale/selectSaleList", //鏌ヨ閿�鍞崟鍒楄〃
+    selectSaleDatilById: "sale/selectSaleDatilById", //鏍规嵁閿�鍞崟id鏌ョ湅璇︽儏,
+    addSale: "sale/addSale", //鏂板閿�鍞崟
+    saleCheck: "sale/check", //瀹℃牳閿�鍞崟
+    synchronization: "sale/synchronization", //鍚屾
+    updateSaleById: "sale/updateSaleById", //鏍规嵁閿�鍞崟id淇敼璇︽儏淇℃伅
+    delSale: "sale/delSale", //鏍规嵁閿�鍞崟id鍒犻櫎
+    delAllSale: "sale/delAllSale", //鎵归噺鍒犻櫎閿�鍞崟锛�
+    chooseType: "technologyTemplate/chooseType", //鏌ヨ绫诲瀷
 }
 
 
-export default function(Vue) {
-	//娣诲姞鍏ㄥ眬API
-	Vue.prototype.$api = {
-		url
-	}
+export default function (Vue) {
+    //娣诲姞鍏ㄥ眬API
+    Vue.prototype.$api = {
+        url
+    }
 }
\ No newline at end of file
diff --git a/src/components/view/Processingproducts.vue b/src/components/view/Processingproducts.vue
index 4530c83..24828f7 100644
--- a/src/components/view/Processingproducts.vue
+++ b/src/components/view/Processingproducts.vue
@@ -1,410 +1,285 @@
 <template>
-  <div class="unqualifiedBox">
-    <el-row>
-      <el-col :span="12" style="line-height: 32px;">涓嶅悎鏍煎搧澶勭疆</el-col>
-      <el-col :span="12" style="text-align: right;">
-        <el-button icon="el-icon-download" size="mini" @click="() => {}"
-          >瀵煎嚭</el-button
-        >
-      </el-col>
-    </el-row>
-    <div style="margin-top: 10px;">
-      <el-card shadow="hover" class="margin-30" style="height: 80px;">
-        <div class="choose">
-          <span>浜у搧鍚嶇О锛�</span>
-          <el-input
-            size="small"
-            v-model="search.productName"
-            style="width: 13vw;margin-right: 5px;"
-            placeholder="璇疯緭鍏�"
-            clearable
-          ></el-input>
-          <span>瑙勬牸鍨嬪彿锛�</span>
-          <el-input
-            size="small"
-            v-model="search.specificationModel"
-            style="width: 13vw;margin-right: 5px;"
-            placeholder="璇疯緭鍏�"
-            clearable
-          ></el-input>
-          <span>浜у搧澶х被锛�</span>
-          <el-select
-            v-model="search.productCategories"
-            size="small"
-            placeholder="璇烽�夋嫨"
-            style="width: 13vw;margin-right: 5px;"
-          >
-            <el-option label="鍘熸潗鏂�" :value="0"></el-option>
-            <el-option label="鎴愬搧" :value="1"></el-option>
-            <el-option label="鍗婃垚鍝�" :value="2"></el-option>
-          </el-select>
-          <span>鐘舵�侊細</span>
-          <el-select
-            v-model="search.state"
-            size="small"
-            placeholder="璇烽�夋嫨"
-            style="width: 13vw;margin-right: 5px;"
-          >
-            <el-option label="杩斾慨涓�" :value="1"></el-option>
-            <el-option label="寰呭鐞�" :value="0"></el-option>
-          </el-select>
-          <el-button size="mini" @click="clean()"><span>閲� 缃�</span></el-button>
-          <el-button
-            size="mini"
-            type="primary"
-            style="background: #004EA2;"
-            @click="
-              unqualifiedTable = [];
-              getDetailInfo();
-            "
-            ><span>鏌� 璇�</span></el-button
-          >
-        </div>
-      </el-card>
-    </div>
-    <div class="tableno" style="height:300px">
-      <el-card shadow="hover" class="margin-30">
-        <el-table
-          :data="unqualifiedTable"
-          border
-          ref="multipleTable"
-          tooltip-effect="dark"
-          height="calc(100vh - 340px)"
-          style="width: 100%"
-        >
-          <el-table-column type="selection" min-width="50"> </el-table-column>
-          <el-table-column type="index" label="搴忓彿" width="60">
-            <template slot-scope="scope">
-              {{ (search.pageSize - 1) * search.countSize + scope.$index + 1 }}
-            </template>
-          </el-table-column>
-          <el-table-column prop="dateArrival" label="浜у搧澶х被">
-            <template slot-scope="scope">
-              <span v-if="scope.row.type == 0">鍘熸潗鏂�</span>
-              <span v-if="scope.row.type == 1">鎴愬搧</span>
-              <span v-if="scope.row.type == 2">鍗婃垚鍝�</span>
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="productName"
-            label="浜у搧鍚嶇О"
-            min-width="90"
-            show-overflow-tooltip
-          >
-          </el-table-column>
-          <el-table-column prop="specifications" label="瑙勬牸鍨嬪彿">
-          </el-table-column>
-          <el-table-column prop="number" label="涓嶅悎鏍煎搧鏁伴噺">
-          </el-table-column>
-          <el-table-column label="鐜板儚鎻忚堪" min-width="150">
-            <template slot-scope="scope">
-              <el-input
-                size="small"
-                v-model="scope.row.description"
-                @blur="outOfFocusDescription(scope)"
-              ></el-input>
-            </template>
-          </el-table-column>
-          <el-table-column label="澶勭疆鎰忚">
-            <template slot-scope="scope">
-              <el-button type="text" @click="showDisposalOpinions(scope)"
-                >鏌ョ湅澶勭疆鎰忚</el-button
-              >
-            </template>
-          </el-table-column>
-          <el-table-column prop="user_name" label="鐢宠浜�"> </el-table-column>
-          <el-table-column prop="date" label="鏃ユ湡"> </el-table-column>
-          <el-table-column prop="deal_state" label="鐘舵��">
-            <template slot-scope="scope">
-              <span style="color:#34BD66;" v-if="scope.row.deal_state == 1"
-                >宸插鐞�</span
-              >
-              <span style="color:#E84738;" v-else-if="scope.row.deal_state == 0"
-                >寰呭鐞�</span
-              >
-            </template>
-          </el-table-column>
-          <el-table-column label="鎿嶄綔" width="130">
-            <template slot-scope="scope">
-              <div style="display: flex;">
-                <el-button type="text" siae="small" size="mini">闄勪欢</el-button>
-                <el-button
-                  type="text"
-                  siae="small"
-                  size="mini"
-                  style=" color:87, 138, 193 ;"
-                  @click="clickEditorialOpinion(scope)"
-                  >缂栬緫鎰忚</el-button
-                >
-              </div>
-            </template>
-          </el-table-column>
-        </el-table>
-        <el-col
-          style="height: 50px;display: flex;align-items: center;justify-content: right;"
-        >
-          <el-pagination
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-            :current-page="search.pageSize"
-            :page-sizes="[10, 15, 20, 30, 50]"
-            :page-size="search.countSize"
-            layout="total, sizes, prev, pager, next, jumper"
-            :total="total"
-          >
-          </el-pagination>
-        </el-col>
-      </el-card>
-    </div>
-    <el-dialog title="鎻愮ず" :visible.sync="dialogVisible" width="30%">
-      <el-form label-width="130px" style="height: 500px; overflow: auto ;">
-        <el-empty
-          v-if="updateEditList.length == 0"
-          :image-size="200"
-        ></el-empty>
-        <div v-for="item in updateEditList" :key="item.$index">
-          <el-form-item
-            :label="
-              item.type == 0
-                ? '鎶�鏈儴澶勭疆鎰忚锛�'
-                : item.type == 1
-                ? '鐢熶骇閮ㄥ缃剰瑙侊細'
-                : item.type == 2
-                ? '璐ㄩ噺閮ㄥ缃剰瑙侊細'
-                : '鎬荤粡鍔炲缃剰瑙侊細'
-            "
-          >
-            <el-input
-              type="textarea"
-              :rows="2"
-              placeholder="璇疯緭鍏ュ唴瀹�"
-              v-model="item.tell"
-            >
-            </el-input>
-          </el-form-item>
-          <el-row v-if="isShow == true">
-            <el-col :span="12">
-              <el-form-item label="濉啓浜猴細" v-if="isShow == true">
-                {{ item.name }}
-              </el-form-item>
+    <div class="unqualifiedBox">
+        <el-row>
+            <el-col :span="12" style="line-height: 32px;">涓嶅悎鏍煎搧澶勭疆</el-col>
+            <el-col :span="12" style="text-align: right;">
+                <el-button icon="el-icon-download" size="mini" @click="() => { }">瀵煎嚭</el-button>
             </el-col>
-            <el-col :span="12">
-              <el-form-item label="濉啓鏃ユ湡锛�" v-if="isShow == true">
-                {{ item.fillDate }}
-              </el-form-item>
-            </el-col>
-          </el-row>
-          <el-form-item label="澶勭疆鏂瑰紡锛�">
-            <el-radio-group v-model="item.way">
-              <el-radio :label="0">杩斿伐</el-radio>
-              <el-radio :label="1">杩斾慨</el-radio>
-              <el-radio :label="2">璁╂鎺ユ敹</el-radio>
-              <el-radio :label="3">鎷掓敹</el-radio>
-              <el-radio :label="4">闄嶇骇浣跨敤</el-radio>
-              <el-radio :label="5">鎶ュ簾</el-radio>
-            </el-radio-group>
-          </el-form-item>
-          <el-divider v-if="item.type != 3"></el-divider>
+        </el-row>
+        <div style="margin-top: 1em;">
+            <el-card shadow="hover" style="height: 6em; display: flex;align-items: center;">
+                <div class="choose">
+                    <span>浜у搧鍚嶇О锛�</span>
+                    <el-input size="small" v-model="search.productName" style="width: 13vw;margin-right: 5px;" placeholder="璇疯緭鍏�" clearable></el-input>
+                    <span>瑙勬牸鍨嬪彿锛�</span>
+                    <el-input size="small" v-model="search.specificationModel" style="width: 13vw;margin-right: 5px;" placeholder="璇疯緭鍏�" clearable></el-input>
+                    <span>浜у搧澶х被锛�</span>
+                    <el-select v-model="search.productCategories" size="small" placeholder="璇烽�夋嫨" style="width: 13vw;margin-right: 5px;">
+                        <el-option label="鍘熸潗鏂�" :value="0"></el-option>
+                        <el-option label="鍗婃垚鍝�" :value="1"></el-option>
+                        <el-option label="鍦ㄥ埗鍝�" :value="2"></el-option>
+                    </el-select>
+                    <span>鐘舵�侊細</span>
+                    <el-select v-model="search.state" size="small" placeholder="璇烽�夋嫨" style="width: 13vw;margin-right: 5px;">
+                        <el-option label="杩斾慨涓�" :value="1"></el-option>
+                        <el-option label="寰呭鐞�" :value="0"></el-option>
+                    </el-select>
+                    <el-button size="mini" @click="clean()"><span>閲� 缃�</span></el-button>
+                    <el-button size="mini" type="primary" style="background: #004EA2;" @click="unqualifiedTable = [];getDetailInfo();"><span>鏌� 璇�</span></el-button>
+                </div>
+            </el-card>
         </div>
-      </el-form>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
-        <el-button type="primary" @click="updateEditDevided()">纭� 瀹�</el-button>
-      </span>
-    </el-dialog>
-  </div>
+        <div class="tableno" style="height:300px">
+            <el-card shadow="hover">
+                <el-table :data="unqualifiedTable" border tooltip-effect="dark" height="calc(100vh - 340px)" style="width: 100%" :header-cell-style="{height: '50px'}">
+                    <el-table-column type="index" label="搴忓彿" width="60">
+                        <template slot-scope="scope">
+                            {{ (search.pageSize - 1) * search.countSize + scope.$index + 1 }}
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="dateArrival" label="浜у搧澶х被" min-width="100">
+                        <template slot-scope="scope">
+                            <span v-if="scope.row.type == 0">鍘熸潗鏂�</span>
+                            <span v-if="scope.row.type == 1">鍗婃垚鍝�</span>
+                            <span v-if="scope.row.type == 2">鍦ㄥ埗鍝�</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="productName" label="浜у搧鍚嶇О" min-width="100" show-overflow-tooltip>
+                    </el-table-column>
+                    <el-table-column prop="specifications" label="瑙勬牸鍨嬪彿" min-width="100">
+                    </el-table-column>
+                    <el-table-column prop="number" label="涓嶅悎鏍煎搧鏁伴噺" min-width="150">
+                    </el-table-column>
+                    <el-table-column label="鐜板儚鎻忚堪" min-width="150">
+                        <template slot-scope="scope">
+                            <el-input size="small" v-model="scope.row.description" @blur="outOfFocusDescription(scope)"></el-input>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="澶勭疆鎰忚" min-width="100">
+                        1232
+                    </el-table-column>
+                    <el-table-column prop="user_name" label="鐢宠浜�" min-width="80"> </el-table-column>
+                    <el-table-column prop="date" label="鏃ユ湡" min-width="150"> </el-table-column>
+                    <el-table-column prop="deal_state" label="鐘舵��">
+                        <template slot-scope="scope">
+                            <span style="color:#34BD66;" v-if="scope.row.deal_state == 1">宸插鐞�</span>
+                            <span style="color:#E84738;" v-else-if="scope.row.deal_state == 0">寰呭鐞�</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="鎿嶄綔" min-width="130" fixed="right">
+                        <template slot-scope="scope">
+                            <div style="display: flex;">
+                                <el-button type="text" siae="small" size="mini">闄勪欢</el-button>
+                                <el-button type="text" siae="small" size="mini" style=" color:87, 138, 193 ;" @click="clickEditorialOpinion(scope)">缂栬緫鎰忚</el-button>
+                            </div>
+                        </template>
+                    </el-table-column>
+                </el-table>
+                <el-col style="height: 50px;display: flex;align-items: center;justify-content: right;">
+                    <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="search.pageSize" :page-sizes="[10, 15, 20, 30, 50]" :page-size="search.countSize" layout="total, sizes, prev, pager, next, jumper" :total="total">
+                    </el-pagination>
+                </el-col>
+            </el-card>
+        </div>
+        <el-dialog title="鏈�缁堝缃剰瑙�" :visible.sync="dialogVisible" width="30%">
+            <el-form label-width="120px">
+                <div>
+                    <el-form-item label="鏈�缁堝缃剰瑙侊細">
+                        <el-input type="textarea" :rows="3" placeholder="璇疯緭鍏ュ唴瀹�" v-model="clickEditOpinion.opinion_tell" />
+                    </el-form-item>
+                    <el-form-item label="澶勭疆鏂瑰紡锛�">
+                        <el-radio-group v-model="clickEditOpinion.way">
+                            <el-radio :label="3">鎺ユ敹</el-radio>
+                            <el-radio v-if="clickEditOpinion.type == 0" :label="2">璁╂鎺ユ敹</el-radio>
+                            <el-radio v-if="clickEditOpinion.type !== 0" :label="4">闄嶇骇浣跨敤</el-radio>
+                            <el-radio v-if="clickEditOpinion.type == 0" :label="7">鎹㈣揣</el-radio>
+                            <el-radio v-if="clickEditOpinion.type == 0" :label="6">閫�璐�</el-radio>
+                            <el-radio :label="1">杩斿伐杩斾慨</el-radio>
+                            <el-radio v-if="clickEditOpinion.type !== 0" :label="5">鎶ュ簾</el-radio>
+                        </el-radio-group>
+                    </el-form-item>
+                </div>
+            </el-form>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+                <el-button type="primary" @click="updateEditDevided()">纭� 瀹�</el-button>
+            </span>
+        </el-dialog>
+    </div>
 </template>
 
 <script>
 import { watch } from "vue";
 export default {
-  data() {
-    return {
-      isShow: false,
-      search: {
-        countSize: 10, // 鏉℃暟/椤�
-        pageSize: 1, // 璧峰椤�
-        productCategories: "", // 浜у搧澶х被
-        productName: "", // 浜у搧鍚嶇О
-        specificationModel: "", // 瑙勬牸鍨嬪彿
-        state: "" // 鐘舵��
-      },
-      unqualifiedTable: [], // 椤甸潰琛ㄦ牸鏁版嵁
-      total: 0, // 鎬绘潯鏁�
-      dialogVisible: false, // 鏄剧ず寮瑰嚭妗�
-      updateEditList: []
-    };
-  },
-  mounted() {
-    this.getDetailInfo();
-  },
-  methods: {
-    // 鍒嗛〉
-    handleSizeChange(val) {
-      this.search.countSize = val;
-      this.getDetailInfo();
+    data() {
+        return {
+            isShow: false,
+            search: {
+                countSize: 10, // 鏉℃暟/椤�
+                pageSize: 1, // 璧峰椤�
+                productCategories: "", // 浜у搧澶х被
+                productName: "", // 浜у搧鍚嶇О
+                specificationModel: "", // 瑙勬牸鍨嬪彿
+                state: "", // 鐘舵��
+            },
+            unqualifiedTable: [], // 椤甸潰琛ㄦ牸鏁版嵁
+            total: 0, // 鎬绘潯鏁�
+            dialogVisible: false, // 鏄剧ず寮瑰嚭妗�
+            clickEditOpinion: "", // 鐐瑰嚮缂栬緫鎰忚涓存椂瀛樺偍璇ヨ鏁版嵁
+        };
     },
-    // 鍒嗛〉
-    handleCurrentChange(val) {
-      this.search.pageSize = val;
-      this.getDetailInfo();
+    mounted() {
+        this.getDetailInfo();
     },
-    // 鍒嗛〉琛ㄦ牸鏁版嵁
-    getDetailInfo() {
-      this.axios
-        .get(this.$api.url.getTable, {
-          params: this.search
-        })
-        .then(res => {
-          this.unqualifiedTable = res.data.row;
-          this.total = res.data.total;
-        });
+    methods: {
+        // 鍒嗛〉
+        handleSizeChange(val) {
+            this.search.countSize = val;
+            this.getDetailInfo();
+        },
+        // 鍒嗛〉
+        handleCurrentChange(val) {
+            this.search.pageSize = val;
+            this.getDetailInfo();
+        },
+        // 鍒嗛〉琛ㄦ牸鏁版嵁
+        getDetailInfo() {
+            this.axios
+                .get(this.$api.url.getTable, {
+                    params: this.search,
+                })
+                .then((res) => {
+                    this.unqualifiedTable = res.data.row;
+                    this.total = res.data.total;
+                });
+        },
+        // 閲嶇疆鎸夐挳
+        clean() {
+            this.search = {
+                countSize: 10, // 鏉℃暟/椤�
+                pageSize: 1, // 璧峰椤�
+                productCategories: "", // 浜у搧澶х被
+                productName: "", // 浜у搧鍚嶇О
+                specificationModel: "", // 瑙勬牸鍨嬪彿
+                state: "", // 鐘舵��
+            };
+            this.getDetailInfo();
+        },
+        // 鐐瑰嚮缂栬緫鎰忚
+        clickEditorialOpinion(scope) {
+            this.dialogVisible = true;
+            this.clickEditOpinion = scope.row;
+        },
+        // 澶卞幓鐜板儚鎻忚堪鐒︾偣瑙﹀彂
+        outOfFocusDescription(scope) {
+            this.axios
+                .get(this.$api.url.descriptionUpdate, {
+                    params: {
+                        rawUnacceptedId: scope.row.id,
+                        tell: scope.row.description,
+                    },
+                })
+                .then((res) => {
+                    this.$message({
+                        message: res.message,
+                        type: "success",
+                    });
+                });
+        },
+        // 鐐瑰嚮纭畾鎸夐挳
+        updateEditDevided() {
+            console.log(`output->this.clickEditOpinion`, this.clickEditOpinion);
+            this.axios
+                .post(this.$api.url.editDisposalOpinion, {
+                    opinionTell: this.clickEditOpinion.opinion_tell,
+                    rawUnacceptedId: this.clickEditOpinion.id,
+                    way: this.clickEditOpinion.way,
+                    type: this.clickEditOpinion.type,
+                })
+                .then((res) => {
+                    this.dialogVisible = false;
+                    this.$message({
+                        message: res.message,
+                        type: "success",
+                    });
+                });
+        },
     },
-    // 閲嶇疆鎸夐挳
-    clean() {
-      this.search = {
-        countSize: 10, // 鏉℃暟/椤�
-        pageSize: 1, // 璧峰椤�
-        productCategories: "", // 浜у搧澶х被
-        productName: "", // 浜у搧鍚嶇О
-        specificationModel: "", // 瑙勬牸鍨嬪彿
-        state: "" // 鐘舵��
-      };
-      this.getDetailInfo();
+    watch: {
+        dialogVisible: {
+            handler(newVal, oldVal) {
+                if (newVal == false) {
+                    this.isShow = false;
+                }
+            },
+        },
     },
-    // 鐐瑰嚮鏌ョ湅澶勭疆鎰忚
-    showDisposalOpinions(scope) {
-      this.isShow = true;
-      this.dialogVisible = true;
-      this.$axios
-        .get(this.$api.url.viewEditorial, {
-          params: {
-            rawUnacceptedId: scope.row.id
-          }
-        })
-        .then(res => {
-          this.updateEditList = res.data;
-          this.getDetailInfo();
-        });
-    },
-    // 鐐瑰嚮缂栬緫鎰忚
-    clickEditorialOpinion(scope) {
-      this.dialogVisible = true;
-      this.axios
-        .get(this.$api.url.clickEditing, {
-          params: { rawUnacceptedId: scope.row.id }
-        })
-        .then(res => {
-          this.updateEditList = res.data;
-        });
-    },
-    // 澶卞幓鐜板儚鎻忚堪鐒︾偣瑙﹀彂
-    outOfFocusDescription(scope) {
-      this.axios
-        .get(this.$api.url.descriptionUpdate, {
-          params: {
-            rawUnacceptedId: scope.row.id,
-            tell: scope.row.description
-          }
-        })
-        .then(res => {
-          this.$message({
-            message: res.message,
-            type: "success"
-          });
-        });
-    },
-    // 鐐瑰嚮纭畾鎸夐挳
-    updateEditDevided() {
-      this.$axios
-        .post(
-          this.$api.url.addOpinion,
-          { opinion: this.updateEditList },
-          {
-            headers: { "Content-Type": "application/json" }
-          }
-        )
-        .then(res => {
-          console.log(`output->res`, res);
-          this.dialogVisible = false;
-          this.getDetailInfo();
-        });
-    }
-  },
-  watch: {
-    dialogVisible: {
-      handler(newVal, oldVal) {
-        if (newVal == false) {
-          this.isShow = false;
-        }
-      }
-    }
-  }
 };
 </script>
 
 <style scoped>
 .main_div {
-  padding-top: 15px;
-}
-.el-radio__label {
-  font-size: 16px;
-}
-.el-radio {
-  margin-right: 60px;
-  margin-top: 10px;
-}
-.el-form-item {
-  margin-bottom: 6px;
-  font-size: 16px;
-}
-.unqualifiedBox {
-  width: 100%;
-  max-height: 100%;
-  display: flex;
-  flex-direction: column;
-  /* overflow-y: scroll; */
-}
-.unqualifiedBox .title .el-button {
-  height: 32px;
-  border: 1px solid rgba(190, 190, 190, 0.44);
-  box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
-  padding: 0 12px;
-}
-/deep/ .el-table__cell {
-  padding: 5px 0;
-}
-.unqualifiedBox .title {
-  margin-bottom: 10px;
-  padding: 0 20px;
-}
-<!-- /* 鏉′欢鏌ヨ澶撮儴鏍峰紡 */ -->
-    .choose {
-  padding: 21px 24px;
-  display: flex;
-  align-items: center;
-  background-color: #fff;
-  border-bottom: 3px solid rgb(245, 247, 251);
+    padding-top: 15px;
 }
 
+.el-radio__label {
+    font-size: 16px;
+}
+
+.el-radio {
+    margin-right: 60px;
+    margin-top: 10px;
+}
+
+.el-form-item {
+    margin-bottom: 6px;
+    font-size: 16px;
+}
+
+.unqualifiedBox {
+    width: 100%;
+    max-height: 100%;
+    display: flex;
+    flex-direction: column;
+}
+
+.unqualifiedBox .title .el-button {
+    height: 32px;
+    border: 1px solid rgba(190, 190, 190, 0.44);
+    box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
+    padding: 0 12px;
+}
+
+/deep/ .el-table__cell {
+    padding: 5px 0;
+}
+
+.unqualifiedBox .title {
+    margin-bottom: 10px;
+    padding: 0 20px;
+}
+
+/* 鏉′欢鏌ヨ澶撮儴鏍峰紡 */
 .choose {
-  font-size: 14px;
+    display: flex;
+    align-items: center;
+    background-color: #fff;
+    border-bottom: 3px solid rgb(245, 247, 251);
+    font-size: 14px;
 }
 
 .choose .el-button {
-  height: 32px;
-  border: 1px solid rgba(190, 190, 190, 0.44);
-  box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
-  padding: 0 12px;
+    height: 32px;
+    border: 1px solid rgba(190, 190, 190, 0.44);
+    box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
+    padding: 0 12px;
 }
-<!-- /* 涓嶅悎鏍艰〃鏍兼牱寮� */
-    .unqualifiedTable {
-  flex: 1;
-  background: #fff;
-  margin-top: 11px;
-  padding: 23px 21px;
+.choose span {
+    /* span鍐呭寮哄埗涓嶆崲琛� */
+    white-space: nowrap;
 }
+
 .tableno {
-  margin-top: 10px;
+    margin-top: 10px;
 }
 </style>
diff --git a/src/components/view/processInspection.vue b/src/components/view/processInspection.vue
index e804f7e..1da7079 100644
--- a/src/components/view/processInspection.vue
+++ b/src/components/view/processInspection.vue
@@ -1,798 +1,823 @@
 <template>
-  <div class="content-main">
-    <div v-if="!showAddPage && !showUp && !showLook" class="rawPage">
-      <div class="title">
-        <el-row>
-          <el-col :span="12">杩囩▼妫�楠�</el-col>
-          <el-col :span="12" style="text-align: right;">
-            <el-button @click="handleAddNew" type="primary" size="mini" icon="el-icon-plus"
-              style="background: #004EA2; ">鏂板</el-button>
-            <el-button icon="el-icon-download" size="mini">瀵煎嚭</el-button>
-          </el-col>
-        </el-row>
-      </div>
-      <div class="nav">
-        <span>妫�楠岀姸鎬侊細</span>
-        <el-select size="small" v-model="search.result" placeholder="璇烽�夋嫨妫�娴嬬姸鎬�" style="width: 224px;margin-right: 52px;">
-          <el-option :value="''" label="鍏ㄩ儴"></el-option>
-          <el-option :value="1" label="鍚堟牸"></el-option>
-          <el-option :value="0" label="涓嶅悎鏍�"></el-option>
-        </el-select>
-        <span>浜у搧鍚嶇О锛�</span>
-        <el-input size="small" style="width: 224px;margin-right: 30px;" v-model="search.name"
-          placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�"></el-input>
-        <span>宸ュ簭锛�</span>
-        <el-input size="small" style="width: 224px;margin-right: 30px;" v-model="search.techfather"
-          placeholder="璇疯緭鍏ュ伐搴�"></el-input>
-        <el-button size="mini"><span>閲� 缃�</span></el-button>
-        <el-button size="mini" @click="searchPro" type="primary" style="background: #004EA2;"><span>鏌� 璇�</span></el-button>
-      </div>
-      <div class="content-body">
-        <div class="inspectionTable">
-          <el-table ref="inspectionTable" height="calc(100vh - 320px)" :cell-style="{ textAlign: 'center' }"
-            :header-cell-style="{
-              border: '0px',
-              background: '#f5f7fa',
-              color: '#606266',
-              boxShadow: 'inset 0 1px 0 #ebeef5',
-              textAlign: 'center'
-            }" border :data="inspectionTable" style="width: 100%">
-            <el-table-column type="selection" width="50"> </el-table-column>
-            <el-table-column label="搴忓彿" type="index" width="60"></el-table-column>
-            <el-table-column prop="order_number" label="璁㈠崟缂栧彿" min-width="90" />
-            <el-table-column prop="material" label="浜у搧鍚嶇О" min-width="80" />
-            <el-table-column prop="specifications_model" label="瑙勬牸鍨嬪彿" min-width="60" />
-            <el-table-column prop="techfather" label="宸ュ簭" min-width="70" />
-            <el-table-column prop="techname" label="宸ヨ壓鍚嶇О" min-width="70" />
-            <el-table-column prop="unit" label="鍗曚綅" min-width="50" />
-            <el-table-column prop="quantity" label="鏁伴噺" min-width="50" />
-            <el-table-column prop="createTime" label="鎶ユ鏃ユ湡" min-width="60" />
-            <el-table-column prop="name" label="鎶ユ浜�" min-width="50" />
-            <el-table-column prop="updateTime" label="妫�娴嬫棩鏈�" min-width="60" />
-            <el-table-column prop="result" label="鍚堟牸鐘舵��" min-width="80">
-              <template slot-scope="scope">
-                <span style="color: #34BD66;" v-if="scope.row.result == 1">鍚堟牸</span>
-                <span style="color: #E84738;" v-else-if="scope.row.result == 0">涓嶅悎鏍�</span>
-              </template>
-            </el-table-column>
-            <el-table-column label="鎿嶄綔" min-width="80">
-              <template slot-scope="scope">
-                <el-button type="text" size="small" @click="handleClick(scope.row)" style="margin-left: 0;">璇︽儏</el-button>
-                <el-button type="text" size="small">鏌ョ湅</el-button>
-                <el-button v-if="scope.row.result == null" type="text" size="small" style="margin-left: 0;"
-                  @click="updateInsInfo(scope.row)">缂栬緫</el-button>
-              </template>
-            </el-table-column>
-          </el-table>
+    <div class="content-main">
+        <div v-if="!showAddPage && !showUp && !showLook" class="rawPage">
+            <div class="title">
+                <el-row>
+                    <el-col :span="12">杩囩▼妫�楠�</el-col>
+                    <el-col :span="12" style="text-align: right;">
+                        <el-button @click="handleAddNew" type="primary" size="mini" icon="el-icon-plus" style="background: #004EA2; ">鏂板</el-button>
+                        <el-button icon="el-icon-download" size="mini">瀵煎嚭</el-button>
+                    </el-col>
+                </el-row>
+            </div>
+            <div class="nav">
+                <span>妫�楠岀姸鎬侊細</span>
+                <el-select size="small" v-model="search.result" placeholder="璇烽�夋嫨妫�娴嬬姸鎬�" style="width: 224px;margin-right: 52px;">
+                    <el-option :value="''" label="鍏ㄩ儴"></el-option>
+                    <el-option :value="1" label="鍚堟牸"></el-option>
+                    <el-option :value="0" label="涓嶅悎鏍�"></el-option>
+                </el-select>
+                <span>浜у搧鍚嶇О锛�</span>
+                <el-input size="small" style="width: 224px;margin-right: 30px;" v-model="search.name" placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�"></el-input>
+                <span>宸ュ簭锛�</span>
+                <el-input size="small" style="width: 224px;margin-right: 30px;" v-model="search.techfather" placeholder="璇疯緭鍏ュ伐搴�"></el-input>
+                <el-button size="mini"><span>閲� 缃�</span></el-button>
+                <el-button size="mini" @click="searchPro" type="primary" style="background: #004EA2;"><span>鏌� 璇�</span></el-button>
+            </div>
+            <div class="content-body">
+                <div class="inspectionTable">
+                    <el-table ref="inspectionTable" height="calc(100vh - 290px)" :cell-style="{ textAlign: 'center' }" :header-cell-style="{
+                        border: '0px',
+                        background: '#f5f7fa',
+                        color: '#606266',
+                        boxShadow: 'inset 0 1px 0 #ebeef5',
+                        textAlign: 'center'
+                        }" border :data="inspectionTable" style="width: 100%">
+                        <el-table-column type="selection" width="50"> </el-table-column>
+                        <el-table-column label="搴忓彿" type="index" width="60"></el-table-column>
+                        <el-table-column prop="order_number" label="璁㈠崟缂栧彿" min-width="100" />
+                        <el-table-column prop="material" label="浜у搧鍚嶇О" min-width="100" />
+                        <el-table-column prop="specifications_model" label="瑙勬牸鍨嬪彿" min-width="100" />
+                        <el-table-column prop="techfather" label="宸ュ簭" min-width="60" />
+                        <el-table-column prop="techname" label="宸ヨ壓鍚嶇О" min-width="100" />
+                        <el-table-column prop="unit" label="鍗曚綅" min-width="60" />
+                        <el-table-column prop="quantity" label="鏁伴噺" min-width="60" />
+                        <el-table-column prop="createTime" label="鎶ユ鏃ユ湡" min-width="110" />
+                        <el-table-column prop="name" label="鎶ユ浜�" min-width="80" />
+                        <el-table-column prop="updateTime" label="妫�娴嬫棩鏈�" min-width="110" />
+                        <el-table-column prop="result" label="鍚堟牸鐘舵��" min-width="100">
+                            <template slot-scope="scope">
+                                <span style="color: #34BD66;" v-if="scope.row.result == 1">鍚堟牸</span>
+                                <span style="color: #E84738;" v-else-if="scope.row.result == 0">涓嶅悎鏍�</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="鎿嶄綔" min-width="150" fixed="right">
+                            <template slot-scope="scope">
+                                <el-button type="text" size="small" @click="handleClick(scope.row)" style="margin-left: 0;">璇︽儏</el-button>
+                                <el-button type="text" size="small">鏌ョ湅</el-button>
+                                <el-button v-if="scope.row.result == null" type="text" size="small" style="margin-left: 0;" @click="updateInsInfo(scope.row)">缂栬緫</el-button>
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                </div>
+                <!-- 鍒嗛〉鍣� -->
+                <div class="pagination">
+                    <el-pagination :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="inspectionTableTotal" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
+                </div>
+            </div>
         </div>
-        <!-- 鍒嗛〉鍣� -->
-        <div class="pagination">
-          <el-pagination :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize"
-            layout="total, sizes, prev, pager, next, jumper" :total="inspectionTableTotal" @size-change="handleSizeChange"
-            @current-change="handleCurrentChange" />
-        </div>
-      </div>
-    </div>
-    <div class="newPage" v-if="showAddPage">
-      <!-- 鏂板椤甸潰 -->
-      <div class="addInspection">
-        <el-row class="header">
-          <el-col :span="12">鏂板杩囩▼妫�楠屽崟</el-col>
-          <el-col :span="12" style="text-align: right;">
-            <!-- 鐐瑰嚮杩斿洖锛屽綋鍓嶉〉闈㈠�间负false -->
-            <!-- <el-button type="primary" size="mini" style="background: #004EA2; "
+        <div class="newPage" v-if="showAddPage">
+            <!-- 鏂板椤甸潰 -->
+            <div class="addInspection">
+                <el-row class="header">
+                    <el-col :span="12">鏂板杩囩▼妫�楠屽崟</el-col>
+                    <el-col :span="12" style="text-align: right;">
+                        <!-- 鐐瑰嚮杩斿洖锛屽綋鍓嶉〉闈㈠�间负false -->
+                        <!-- <el-button type="primary" size="mini" style="background: #004EA2; "
               icon="el-icon-circle-plus-outline">鏂板</el-button> -->
-            <el-button @click="combackIndex" type="primary" size="mini" icon="el-icon-back"
-              style="background: #004EA2; ">杩斿洖</el-button>
-          </el-col>
-        </el-row>
-        <el-form :model="processInspectVo" ref="addInspectionform" class="addInspectionform" label-position="right"
-          label-width="120px" size="small">
-          <div class="formwrapper">
-            <el-row :gutter="230">
-              <el-col :span="7">
-                <el-form-item label="璁㈠崟鍙凤細">
-                  <el-input @blur="selectInfoByOrderId" style="width: 210px;" size="small"
-                    v-model="processInspectVo.orderNumber" placeholder="璇疯緭鍏ヨ鍗曞彿" />
-                </el-form-item>
-              </el-col>
-              <el-col :span="7">
-                <el-form-item label="浜у搧鍚嶇О锛�">
-                  <el-select style="width: 210px;" size="small" @change="selectSample" v-model="processInspectVo.material"
-                    placeholder="璇烽�夋嫨浜у搧">
-                    <el-option v-for="item in optionsSamplename" :key="item.value" :label="item.name" :value="item.name">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="7">
-                <el-form-item label="浜у搧缂栫爜锛�">
-                  <el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.materialCode"
-                    placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�" />
-                </el-form-item>
-              </el-col>
-            </el-row>
-            <el-row :gutter="230">
-              <el-col :span="7">
-                <el-form-item label="瑙勬牸鍨嬪彿锛�">
-                  <el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.specificationsModel"
-                    placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" />
-                </el-form-item>
-              </el-col>
-              <el-col :span="7">
-                <el-form-item label="宸ュ簭鍚嶇О锛�">
-                  <el-select @change="changeOptionSoptionSprocesses" v-model="processInspectVo.techfather"
-                    placeholder="璇烽�夋嫨" style="width: 210px;" size="small">
-                    <el-option v-for="item in optionSoptionSprocesses" :key="item.name" :label="item.name"
-                      :value="item.name">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="7">
-                <el-form-item label="宸ヨ壓鍚嶇О锛�">
-                  <el-select v-model="processInspectVo.techname" placeholder="璇烽�夋嫨" style="width: 210px;" size="small">
-                    <el-option v-for="item in optionTechnology" :key="item.id" :label="item.name"
-                      :value="item.id + '-' + item.name">
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-            <el-row :gutter="230">
-              <el-col :span="7">
-                <el-form-item label="鍗曚綅锛�">
-                  <el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.unit"
-                    placeholder="璇疯緭鍏ュ崟浣�" />
-                </el-form-item>
-              </el-col>
-              <el-col :span="7">
-                <el-form-item label="鏁伴噺锛�">
-                  <el-input style="width: 210px;" size="small" v-model="processInspectVo.quantity" placeholder="璇疯緭鍏ユ暟閲�" />
-                </el-form-item>
-              </el-col>
-              <el-col :span="10" style="display: flex;justify-content: end;">
-                <el-button type="primary" :disabled="isAddProject" @click="addTestProjevt">鐢熸垚妫�楠岄」鐩�</el-button>
-              </el-col>
-            </el-row>
-          </div>
-        </el-form>
-      </div>
-      <div class="inspectionProject">
-        <el-row>
-          <el-col :span="12" class="inspectionProject_span">妫�楠岄」鐩�</el-col>
-          <el-col :span="12" class="inspectionProject_span">
-            <el-button size="mini" @click="clickDeleteInspectionColumn()">鍒犻櫎妫�楠屽�煎垪</el-button>
-            <el-button style="margin-right: 30px;" size="mini" @click="clickAddInspectionColumn()">娣诲姞妫�楠屽�煎垪</el-button>
-            <!-- <el-button
+                        <el-button @click="combackIndex" type="primary" size="mini" icon="el-icon-back" style="background: #004EA2; ">杩斿洖</el-button>
+                    </el-col>
+                </el-row>
+                <el-form :model="processInspectVo" ref="addInspectionform" class="addInspectionform" label-position="right" label-width="120px" size="small">
+                    <div class="formwrapper">
+                        <el-row :gutter="230">
+                            <el-col :span="7">
+                                <el-form-item label="璁㈠崟鍙凤細">
+                                    <el-input @blur="selectInfoByOrderId" style="width: 210px;" size="small" v-model="processInspectVo.orderNumber" placeholder="璇疯緭鍏ヨ鍗曞彿" />
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="7">
+                                <el-form-item label="浜у搧鍚嶇О锛�">
+                                    <el-select style="width: 210px;" size="small" @change="selectSample" v-model="processInspectVo.material" placeholder="璇烽�夋嫨浜у搧">
+                                        <el-option v-for="item in optionsSamplename" :key="item.value" :label="item.name" :value="item.name">
+                                        </el-option>
+                                    </el-select>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="7">
+                                <el-form-item label="浜у搧缂栫爜锛�">
+                                    <el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.materialCode" placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�" />
+                                </el-form-item>
+                            </el-col>
+                        </el-row>
+                        <el-row :gutter="230">
+                            <el-col :span="7">
+                                <el-form-item label="瑙勬牸鍨嬪彿锛�">
+                                    <el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.specificationsModel" placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" />
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="7">
+                                <el-form-item label="宸ュ簭鍚嶇О锛�">
+                                    <el-select @change="changeOptionSoptionSprocesses" v-model="processInspectVo.techfather" placeholder="璇烽�夋嫨" style="width: 210px;" size="small">
+                                        <el-option v-for="item in optionSoptionSprocesses" :key="item.name" :label="item.name" :value="item.name">
+                                        </el-option>
+                                    </el-select>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="7">
+                                <el-form-item label="宸ヨ壓鍚嶇О锛�">
+                                    <el-select v-model="processInspectVo.techname" placeholder="璇烽�夋嫨" style="width: 210px;" size="small">
+                                        <el-option v-for="item in optionTechnology" :key="item.id" :label="item.name" :value="item.id + '-' + item.name">
+                                        </el-option>
+                                    </el-select>
+                                </el-form-item>
+                            </el-col>
+                        </el-row>
+                        <el-row :gutter="230">
+                            <el-col :span="7">
+                                <el-form-item label="鍗曚綅锛�">
+                                    <el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.unit" placeholder="璇疯緭鍏ュ崟浣�" />
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="7">
+                                <el-form-item label="鏁伴噺锛�">
+                                    <el-input style="width: 210px;" size="small" v-model="processInspectVo.quantity" placeholder="璇疯緭鍏ユ暟閲�" />
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="10" style="display: flex;justify-content: end;">
+                                <el-button type="primary" :disabled="isAddProject" @click="addTestProjevt">鐢熸垚妫�楠岄」鐩�</el-button>
+                            </el-col>
+                        </el-row>
+                    </div>
+                </el-form>
+            </div>
+            <div class="inspectionProject">
+                <el-row>
+                    <el-col :span="12" class="inspectionProject_span">妫�楠岄」鐩�</el-col>
+                    <el-col :span="12" class="inspectionProject_span">
+                        <el-button size="mini" @click="clickDeleteInspectionColumn()">鍒犻櫎妫�楠屽�煎垪</el-button>
+                        <el-button style="margin-right: 30px;" size="mini" @click="clickAddInspectionColumn()">娣诲姞妫�楠屽�煎垪</el-button>
+                        <!-- <el-button
               size="mini"
               style="margin-right: 30px;"
               @click="clickAddLine()"
               >娣诲姞妫�楠岃</el-button
             > -->
-          </el-col>
-        </el-row>
-        <el-table border :data="inspectionItems" max-height="420" :span-method="handleSpanMethod"
-          height="calc(100vh - 550px)" style="width: 100%">
-          <el-table-column type="index" label="搴忓彿" width="60"></el-table-column>
-          <el-table-column label="椤圭洰" prop="father"></el-table-column>
-          <el-table-column prop="name" label="鎸囨爣"></el-table-column>
-          <el-table-column prop="unit" label="鍗曚綅"></el-table-column>
-          <el-table-column prop="required" label="鏍囧噯鍊�"></el-table-column>
-          <el-table-column prop="internal" label="鍐呮祴鍊�"></el-table-column>
-          <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" label="妫�娴嬪��"
-            min-width="100" style="text-align: center;">
-            <template slot-scope="scope">
-              <el-tooltip :disabled="scope.row.dname != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�"
-                placement="top-start">
-                <el-input :disabled="scope.row.dname === null" v-model="scope.row.empiricalValueAddss[index]"
-                  @blur="changeState(scope.row, index)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input>
-              </el-tooltip>
-            </template>
-          </el-table-column>
-          <el-table-column prop="dname" label="璇曢獙璁惧" min-width="100">
-            <template slot-scope="scope">
-              <el-button v-if="!scope.row.isSelectDevice" type="text" @click="clickTableSelect(scope)">{{
+                    </el-col>
+                </el-row>
+                <el-table border :data="inspectionItems" max-height="420" :span-method="handleSpanMethod" height="calc(100vh - 550px)" style="width: 100%">
+                    <el-table-column type="index" label="搴忓彿" width="60"></el-table-column>
+                    <el-table-column label="椤圭洰" prop="father"></el-table-column>
+                    <el-table-column prop="name" label="鎸囨爣"></el-table-column>
+                    <el-table-column prop="unit" label="鍗曚綅"></el-table-column>
+                    <el-table-column prop="required" label="鏍囧噯鍊�"></el-table-column>
+                    <el-table-column prop="internal" label="鍐呮祴鍊�"></el-table-column>
+                    <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" label="妫�娴嬪��" min-width="100" style="text-align: center;">
+                        <template slot-scope="scope">
+                            <el-tooltip :disabled="scope.row.dname != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start">
+                                <el-input :disabled="scope.row.dname === null" v-model="scope.row.empiricalValueAddss[index]" @blur="changeState(scope.row, index)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input>
+                            </el-tooltip>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="dname" label="璇曢獙璁惧" min-width="100">
+                        <template slot-scope="scope">
+                            <el-button v-if="!scope.row.isSelectDevice" type="text" @click="clickTableSelect(scope)">{{
                 scope.row.dname == null ? "璇烽�夋嫨" : scope.row.dname
               }}</el-button>
-              <el-select v-if="scope.row.isSelectDevice" style="width: 100%;" @change="clickNodeSure(scope.row)"
-                v-model="filterText" placeholder="璇烽�夋嫨">
-                <el-option v-for="item in materialOptions" :key="item.id" :label="item.device" :value="item.id">
-                </el-option>
-              </el-select>
-            </template>
-          </el-table-column>
-          <el-table-column label="缁撹">
-            <template slot-scope="scope">
-              <span style="color: #34BD66;" v-if="scope.row.result === 1">鍚堟牸</span>
-              <span style="color: #E84738;" v-else-if="scope.row.result === 0">涓嶅悎鏍�</span>
-              <span v-show="scope.row.result === null">鏆傛湭缁撹</span>
-            </template>
-          </el-table-column>
-          <!-- <el-table-column v-if="detailId == null" label="鎿嶄綔" width="100">
+                            <el-select v-if="scope.row.isSelectDevice" style="width: 100%;" @change="clickNodeSure(scope.row)" v-model="filterText" placeholder="璇烽�夋嫨">
+                                <el-option v-for="item in materialOptions" :key="item.id" :label="item.device" :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="缁撹">
+                        <template slot-scope="scope">
+                            <span style="color: #34BD66;" v-if="scope.row.result === 1">鍚堟牸</span>
+                            <span style="color: #E84738;" v-else-if="scope.row.result === 0">涓嶅悎鏍�</span>
+                            <span v-show="scope.row.result === null">鏆傛湭缁撹</span>
+                        </template>
+                    </el-table-column>
+                    <!-- <el-table-column v-if="detailId == null" label="鎿嶄綔" width="100">
             <template slot-scope="scope">
               <el-button type="text" @click="clickDeleteline(scope)">鍒犻櫎</el-button>
             </template>
           </el-table-column> -->
-        </el-table>
-      </div>
-      <div class="inspectionResult">
-        <span>妫�娴嬬粨鏋�</span>
-        <el-table :data="inspectionResultForm">
-          <el-table-column prop="id" label="鐗╂枡缂栧彿"></el-table-column>
-          <el-table-column prop="name" label="鐗╂枡鍚嶇О"></el-table-column>
-          <el-table-column prop="inspecter" label="妫�楠屽憳"></el-table-column>
-          <el-table-column prop="conclusion" label="妫�楠岀粨璁�"></el-table-column>
-          <el-table-column prop="operation" label="涓婃姤"></el-table-column>
-        </el-table>
-      </div>
-      <el-dialog title="璇烽�夋嫨璁惧" :visible.sync="centerDialogVisible" width="20%">
-        <div class="div_device_dialog">
-          <el-select style="width: 100%;" @change="clickNodeSure()" v-model="filterText" placeholder="璇烽�夋嫨">
-            <el-option v-for="item in materialOptions" :key="item.id" :label="item.device" :value="item.id">
-            </el-option>
-          </el-select>
+                </el-table>
+            </div>
+            <div class="inspectionResult">
+                <span>妫�娴嬬粨鏋�</span>
+                <el-table :data="inspectionResultForm">
+                    <el-table-column prop="id" label="鐗╂枡缂栧彿"></el-table-column>
+                    <el-table-column prop="name" label="鐗╂枡鍚嶇О"></el-table-column>
+                    <el-table-column prop="inspecter" label="妫�楠屽憳"></el-table-column>
+                    <el-table-column prop="conclusion" label="妫�楠岀粨璁�"></el-table-column>
+                    <el-table-column prop="operation" label="涓婃姤"></el-table-column>
+                </el-table>
+            </div>
+            <el-dialog title="璇烽�夋嫨璁惧" :visible.sync="centerDialogVisible" width="20%">
+                <div class="div_device_dialog">
+                    <el-select style="width: 100%;" @change="clickNodeSure()" v-model="filterText" placeholder="璇烽�夋嫨">
+                        <el-option v-for="item in materialOptions" :key="item.id" :label="item.device" :value="item.id">
+                        </el-option>
+                    </el-select>
+                </div>
+            </el-dialog>
         </div>
-      </el-dialog>
+        <div class="newPage" v-if="showUp">
+            <processInspectionUpdate :rowInfo="rowInfp" />
+        </div>
+        <div class="newPage" v-if="showLook">
+            <processInspectionLook :rowInfo="rowInfp" />
+        </div>
     </div>
-    <div class="newPage" v-if="showUp">
-      <processInspectionUpdate :rowInfo="rowInfp" />
-    </div>
-    <div class="newPage" v-if="showLook">
-      <processInspectionLook :rowInfo="rowInfp" />
-    </div>
-  </div>
 </template>
 
 <script>
-import processInspectionUpdate from '../view/processInspectionUpdate.vue'
-import processInspectionLook from '../view/processInspectionLook.vue'
+import processInspectionUpdate from "../view/processInspectionUpdate.vue";
+import processInspectionLook from "../view/processInspectionLook.vue";
 export default {
-  components: {
-    processInspectionUpdate,
-    processInspectionLook
-  },
-  data() {
-    return {
-      showUp: false,
-      isAddProject: false,
-      showLook: false,
-      detailId: 28,
-      rowInfp: {},
-      search: {
-        countSize: 10,
-        pageSize: 1,
-        result: "", // 妫�娴嬬姸鎬�
-        name: "", // 浜у搧鍚嶇О
-        techfather: "" // 宸ュ簭
-      },
-      optionsSamplename: [],
-      inspectionTable: [],
-      tableColumn: [],
-      optionSoptionSprocesses: [],
-      optionTechnology: [],
-      inspectionTableTotal: 0,
-      pageSize: 10,
-      currentPage: 1,
-      treeProject: [],
-      // 娣诲姞鍒�
-      empiricalValueAdd: 1,
-      // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂�
-      empiricalValueAddMaxNumber: 0,
-      showAddPage: false,
-      processInspectVo: {
-        material: null,
-        materialCode: null,
-        orderNumber: "",
-        quantity: null,
-        specificationsModel: null,
-        techfather: null,
-        techname: null,
-        technologyId: null,
-        unit: null
-      },
-      InspectioniD: null,
-      addInspectionform: [
-        {
-          number: "",
-          username: "",
-          projectname: "",
-          tracenumber: "",
-          code: "",
-          class: "",
-          specificationmodel: "",
-          unit: "",
-          quantity: "",
-          group: "",
-          worker: "",
-          machine: ""
-        }]
-      ,
-      inspectionItems: [], // 鏂板妫�楠岄」鐩〃鏍�
-      inspectionResultForm: [
-        {
-          id: "",
-          name: "",
-          inspecter: "",
-          conclusion: "",
-          operation: ""
-        }
-      ],
-      options: [],
-      value: "",
-      rowList: [],
-      spanArr: [],
-      position: 0,
-      // 璁惧閫夋嫨鏍戞樉绀�
-      centerDialogVisible: false,
-      filterText: "",
-      materialOptions: [],
-      defaultProps: {
-        // 璁惧鏍戞暟鎹缃�
-        children: "children",
-        label: "name"
-      },
-      nodeData: {
-        id: 0,
-        name: null
-      }, // node鐐瑰嚮淇濆瓨褰撳墠鐐瑰嚮鏁版嵁
-      clickSelectDevice: {
-        index: null, // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岀储寮�
-        rpId: null // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岄」鐩甀d
-      }
-    };
-  },
-  watch: {
-    // filterText(val) {
-    //   this.$refs.tree.filter(val);
-    // }
-  },
-  mounted() {
-    // this.getTableData()
-    // this.getOptions();
-  },
-  methods: {
-    handleClick(row) {
-      this.rowInfp = row
-      this.showLook = true
+    components: {
+        processInspectionUpdate,
+        processInspectionLook,
     },
-    combackIndex() {
-      this.showAddPage = false
-      this.defaultInitializationTable()
+    data() {
+        return {
+            showUp: false,
+            isAddProject: false,
+            showLook: false,
+            detailId: 28,
+            rowInfp: {},
+            search: {
+                countSize: 10,
+                pageSize: 1,
+                result: "", // 妫�娴嬬姸鎬�
+                name: "", // 浜у搧鍚嶇О
+                techfather: "", // 宸ュ簭
+            },
+            optionsSamplename: [],
+            inspectionTable: [],
+            tableColumn: [],
+            optionSoptionSprocesses: [],
+            optionTechnology: [],
+            inspectionTableTotal: 0,
+            pageSize: 10,
+            currentPage: 1,
+            treeProject: [],
+            // 娣诲姞鍒�
+            empiricalValueAdd: 1,
+            // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂�
+            empiricalValueAddMaxNumber: 0,
+            showAddPage: false,
+            processInspectVo: {
+                material: null,
+                materialCode: null,
+                orderNumber: "",
+                quantity: null,
+                specificationsModel: null,
+                techfather: null,
+                techname: null,
+                technologyId: null,
+                unit: null,
+            },
+            InspectioniD: null,
+            addInspectionform: [
+                {
+                    number: "",
+                    username: "",
+                    projectname: "",
+                    tracenumber: "",
+                    code: "",
+                    class: "",
+                    specificationmodel: "",
+                    unit: "",
+                    quantity: "",
+                    group: "",
+                    worker: "",
+                    machine: "",
+                },
+            ],
+            inspectionItems: [], // 鏂板妫�楠岄」鐩〃鏍�
+            inspectionResultForm: [
+                {
+                    id: "",
+                    name: "",
+                    inspecter: "",
+                    conclusion: "",
+                    operation: "",
+                },
+            ],
+            options: [],
+            value: "",
+            rowList: [],
+            spanArr: [],
+            position: 0,
+            // 璁惧閫夋嫨鏍戞樉绀�
+            centerDialogVisible: false,
+            filterText: "",
+            materialOptions: [],
+            defaultProps: {
+                // 璁惧鏍戞暟鎹缃�
+                children: "children",
+                label: "name",
+            },
+            nodeData: {
+                id: 0,
+                name: null,
+            }, // node鐐瑰嚮淇濆瓨褰撳墠鐐瑰嚮鏁版嵁
+            clickSelectDevice: {
+                index: null, // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岀储寮�
+                rpId: null, // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岄」鐩甀d
+            },
+        };
     },
-    updateInsInfo(row) {
-      this.rowInfp = row
-      this.showUp = true
-    },
-    combackMain(val) {
-      this.showUp = false
-      this.showLook = false
-      this.defaultInitializationTable(); // 鍒濆鍖栬〃鏍兼暟鎹�
-      if (val) {
-        this.$parent.removeAllTab()
-      }
-    },
-    searchPro() {
-      this.search.countSize = this.pageSize
-      this.search.pageSize = this.currentPage
-      this.defaultInitializationTable()
-    },
-    // 鐐瑰嚮璁惧鏍戜繚瀛樼偣鍑昏褰�
-    nodeClick(data) {
-      if (data.id != undefined) this.nodeData = data;
-    },
-    // 璁惧鏍戣繃婊ゆ悳绱�
-    filterNode(value, data) {
-      if (!value) return true;
-      return data.name.indexOf(value) !== -1;
-    },
-    // 鑾峰彇璁惧鏍戝唴瀹�
-    getOptions(row) {
-      this.$axios.get(this.$api.url.inspectionItemChooseDev, {
-        params: {
-          father: row.father,
-          name: row.name,
-          technologyId: this.processInspectVo.technologyId
-        }
-      }).then(res => {
-        this.materialOptions = res.data;
-        if (this.materialOptions.length === 1) {
-          this.$message({
-            message: '璇ラ」鐩笅鍙湁涓�涓瘯楠岃澶囷紝鏃犻渶閫夋嫨锛�',
-            type: 'warning'
-          });
-          return
-        }
-        row.isSelectDevice = true
-        this.filterText = row.did
-      });
-    },
-    // 鐐瑰嚮琛ㄦ牸閫夋嫨瑙﹀彂
-    clickTableSelect(scope) {
-      // this.centerDialogVisible = true;
-      if (this.clickSelectDevice.index != null) {
-        this.$set(this.inspectionItems[this.clickSelectDevice.index], 'isSelectDevice', false)
-      }
-      this.clickSelectDevice.index = scope.$index;
-      this.clickSelectDevice.rpId = scope.row.id;
-      this.getOptions(scope.row)
-    },
-    // 鐐瑰嚮鏍戦噷闈㈢殑纭畾
-    clickNodeSure() {
-      let select = this.materialOptions.filter(item => {
-        return item.id === this.filterText
-      })[0]
-      this.nodeData.id = select.id
-      this.nodeData.name = select.device
-      if (this.detailId == null) {
-        this.inspectionItems[
-          this.clickSelectDevice.index
-        ].did = this.nodeData.id;
-        this.inspectionItems[
-          this.clickSelectDevice.index
-        ].dname = this.nodeData.name;
-        this.centerDialogVisible = false;
-      } else {
-        this.$axios
-          .post(this.$api.url.inspectionItemUpdateDevByInsId, {
-            id: this.clickSelectDevice.rpId,
-            type: 1,
-            devId: this.nodeData.id
-          })
-          .then(res => {
-            this.getTableData()
-            this.centerDialogVisible = false;
-          });
-      }
-    },
-    changeState(row, index) {
-      if (row.did != null && row.did != '') {
-        // let val = row.empiricalValueAddss.filter(item => {
-        //   return item != '' && item != null
-        // })
-        // let eq = val.filter(item => {
-        //   return /^[^><=]/.test(item)
-        // })
-        // if (eq.length > 0) {
-        //   this.$message({
-        //     message: "妫�娴嬪�糩" + eq + "]鏍煎紡棣栦綅搴斿寘鍚�>,<鎴栬��=",
-        //     type: 'warning'
-        //   });
-        //   return
+    watch: {
+        // filterText(val) {
+        //   this.$refs.tree.filter(val);
         // }
-        let str = ""
-        row.empiricalValueAddss.forEach(e => {
-          str += e + ","
-        })
-        if (str.slice(0, -1) === '' || str.slice(0, -1) === null || str.slice(0, -1) === undefined) {
-          return
-        }
-        this.$axios.post(this.$api.url.inspectionItemlose_focus_update, {
-          deviceId: row.did,
-          inspectionItemId: row.id,
-          inspectionValue: str.slice(0, -1)
-        }, {
-          headers: { "Content-Type": "application/json" }
-        }).then(res => {
-          if (res.message === '鍐呮帶鍊艰緭鍏ユ牸寮忔湁闂!') {
-            this.$message({
-              message: res.message,
-              type: 'warning'
-            });
-            return
-          }
-          row.result = res.data.result
-          row.username = res.data.username
-        })
-      } else {
-        this.$message({
-          message: '璇烽�夋嫨鎷╄澶囷紒',
-          type: 'warning'
-        });
-      }
     },
-    // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
-    handleSizeChange(val) {
-      this.search.countSize = val;
-      this.defaultInitializationTable();
+    mounted() {
+        // this.getTableData()
+        // this.getOptions();
     },
-    handleSpanMethod({ row, column, rowIndex, columnIndex }) {
-      if (columnIndex === 0) {
-        const _row = this.spanArr[rowIndex];
-        const _col = _row > 0 ? 1 : 0;
-        return {
-          rowspan: _row,
-          colspan: _col
-        }
-      }
-      if (columnIndex === 1) {
-        const _row = this.spanArr[rowIndex];
-        const _col = _row > 0 ? 1 : 0;
-        return {
-          rowspan: _row,
-          colspan: _col
-        }
-      }
-    },
-    // 鍚堝苟琛ㄦ牸
-    mergeTable() {
-      this.rowList = []
-      this.spanArr = []
-      this.position = 0
-      this.inspectionItems.forEach((item, index) => {
-        if (index === 0) {
-          this.spanArr.push(1);
-          this.position = 0;
-        } else {
-          if (this.inspectionItems[index].father === this.inspectionItems[index - 1].father) {
-            this.spanArr[this.position] += 1;
-            this.spanArr.push(0);
-          } else {
-            this.spanArr.push(1);
-            this.position = index;
-          }
-        }
-      })
-    },
-    changeOptionSoptionSprocesses() {
-      this.optionTechnology = []
-      let working = this.optionSoptionSprocesses.filter(item => {
-        return item.name === this.processInspectVo.techfather
-      })[0]
-      this.optionTechnology = working.children
-    },
-    addTestProjevt() {
-      let val = JSON.parse(JSON.stringify(this.processInspectVo))
-      val.techname = this.processInspectVo.techname.split("-")[1]
-      val.technologyId = this.processInspectVo.techname.split("-")[0]
-      this.processInspectVo.technologyId = val.technologyId
-      this.$axios.post(this.$api.url.processInspectAddProcess, {
-        material: val.material,
-        materialCode: val.materialCode,
-        orderNumber: val.orderNumber,
-        quantity: val.quantity,
-        specificationsModel: val.specificationsModel,
-        techfather: val.techfather,
-        techname: val.techname,
-        techId: Number(val.technologyId),
-        mtId: Number(val.technologyId),
-        unit: val.unit
-      }, {
-        headers: { "Content-Type": "application/json" }
-      }).then(res => {
-        if (res.code === 201) {
-          this.$message({
-            message: res.message,
-            type: 'warning'
-          });
-          return
-        }
-        this.isAddProject = true
-        this.detailId = res.data
-        this.inspectionResultForm[0].id = val.materialCode
-        this.inspectionResultForm[0].name = val.material
-        this.getTableData()
-      })
-    },
-    getTableData() {
-      this.$axios.get(this.$api.url.inspectionItemListUser, {
-        params: {
-          id: this.detailId,
-          type: 1
-        }
-      }).then(res => {
-        this.inspectionItems = res.data
-        let arr = []
-        let val = JSON.parse(JSON.stringify(this.inspectionItems))
-        const uName = []
-        //杞垚涓�缁存暟缁�
-        val.forEach(l => {
-          let father = l.father
-          l.children.forEach(c => {
-            c.father = father
-            c.empiricalValueAddss = []
-            if (c.inspectionValue != '' && c.inspectionValue != null) {
-              c.empiricalValueAddss = c.inspectionValue.split(",");
-            } else {
-              c.empiricalValueAddss.push("")
+    methods: {
+        handleClick(row) {
+            this.rowInfp = row;
+            this.showLook = true;
+        },
+        combackIndex() {
+            this.showAddPage = false;
+            this.defaultInitializationTable();
+        },
+        updateInsInfo(row) {
+            this.rowInfp = row;
+            this.showUp = true;
+        },
+        combackMain(val) {
+            this.showUp = false;
+            this.showLook = false;
+            this.defaultInitializationTable(); // 鍒濆鍖栬〃鏍兼暟鎹�
+            if (val) {
+                this.$parent.removeAllTab();
             }
-            uName.push(c['username'])
-            c.isSelectDevice = false
-            arr.push(c)
-          })
-        })
-        this.inspectionItems = arr
-        let arrSort = JSON.parse(JSON.stringify(arr))
-        //鏍规嵁闆嗗悎瀵硅薄鏁扮粍闀垮害鎺掑簭
-        arrSort.sort((a, b) => {
-          if (a.empiricalValueAddss.length < b.empiricalValueAddss.length) {
-            return -1; // a鎺掑湪b鍓嶉潰
-          } else if (a.empiricalValueAddss.length > b.empiricalValueAddss.length) {
-            return 1; // a鎺掑湪b鍚庨潰
-          } else {
-            return 0; // 淇濇寔鐩稿椤哄簭涓嶅彉
-          }
-        });
-        // console.log(arrSort);
-        console.log(uName);
-        let name = [...new Set(uName)].filter(item => item !== null);
-        let rname = ''
-        name.forEach(m => {
-          rname += m + ","
-        })
-        this.inspectionResultForm[0].inspecter = rname.slice(0, -1)
-        this.empiricalValueAdd = arrSort[arrSort.length - 1].empiricalValueAddss.length
-        this.mergeTable(arr)
-      })
+        },
+        searchPro() {
+            this.search.countSize = this.pageSize;
+            this.search.pageSize = this.currentPage;
+            this.defaultInitializationTable();
+        },
+        // 鐐瑰嚮璁惧鏍戜繚瀛樼偣鍑昏褰�
+        nodeClick(data) {
+            if (data.id != undefined) this.nodeData = data;
+        },
+        // 璁惧鏍戣繃婊ゆ悳绱�
+        filterNode(value, data) {
+            if (!value) return true;
+            return data.name.indexOf(value) !== -1;
+        },
+        // 鑾峰彇璁惧鏍戝唴瀹�
+        getOptions(row) {
+            this.$axios
+                .get(this.$api.url.inspectionItemChooseDev, {
+                    params: {
+                        father: row.father,
+                        name: row.name,
+                        technologyId: this.processInspectVo.technologyId,
+                    },
+                })
+                .then((res) => {
+                    this.materialOptions = res.data;
+                    if (this.materialOptions.length === 1) {
+                        this.$message({
+                            message: "璇ラ」鐩笅鍙湁涓�涓瘯楠岃澶囷紝鏃犻渶閫夋嫨锛�",
+                            type: "warning",
+                        });
+                        return;
+                    }
+                    row.isSelectDevice = true;
+                    this.filterText = row.did;
+                });
+        },
+        // 鐐瑰嚮琛ㄦ牸閫夋嫨瑙﹀彂
+        clickTableSelect(scope) {
+            // this.centerDialogVisible = true;
+            if (this.clickSelectDevice.index != null) {
+                this.$set(
+                    this.inspectionItems[this.clickSelectDevice.index],
+                    "isSelectDevice",
+                    false
+                );
+            }
+            this.clickSelectDevice.index = scope.$index;
+            this.clickSelectDevice.rpId = scope.row.id;
+            this.getOptions(scope.row);
+        },
+        // 鐐瑰嚮鏍戦噷闈㈢殑纭畾
+        clickNodeSure() {
+            let select = this.materialOptions.filter((item) => {
+                return item.id === this.filterText;
+            })[0];
+            this.nodeData.id = select.id;
+            this.nodeData.name = select.device;
+            if (this.detailId == null) {
+                this.inspectionItems[this.clickSelectDevice.index].did =
+                    this.nodeData.id;
+                this.inspectionItems[this.clickSelectDevice.index].dname =
+                    this.nodeData.name;
+                this.centerDialogVisible = false;
+            } else {
+                this.$axios
+                    .post(this.$api.url.inspectionItemUpdateDevByInsId, {
+                        id: this.clickSelectDevice.rpId,
+                        type: 1,
+                        devId: this.nodeData.id,
+                    })
+                    .then((res) => {
+                        this.getTableData();
+                        this.centerDialogVisible = false;
+                    });
+            }
+        },
+        changeState(row, index) {
+            if (row.did != null && row.did != "") {
+                // let val = row.empiricalValueAddss.filter(item => {
+                //   return item != '' && item != null
+                // })
+                // let eq = val.filter(item => {
+                //   return /^[^><=]/.test(item)
+                // })
+                // if (eq.length > 0) {
+                //   this.$message({
+                //     message: "妫�娴嬪�糩" + eq + "]鏍煎紡棣栦綅搴斿寘鍚�>,<鎴栬��=",
+                //     type: 'warning'
+                //   });
+                //   return
+                // }
+                let str = "";
+                row.empiricalValueAddss.forEach((e) => {
+                    str += e + ",";
+                });
+                if (
+                    str.slice(0, -1) === "" ||
+                    str.slice(0, -1) === null ||
+                    str.slice(0, -1) === undefined
+                ) {
+                    return;
+                }
+                this.$axios
+                    .post(
+                        this.$api.url.inspectionItemlose_focus_update,
+                        {
+                            deviceId: row.did,
+                            inspectionItemId: row.id,
+                            inspectionValue: str.slice(0, -1),
+                        },
+                        {
+                            headers: { "Content-Type": "application/json" },
+                        }
+                    )
+                    .then((res) => {
+                        if (res.message === "鍐呮帶鍊艰緭鍏ユ牸寮忔湁闂!") {
+                            this.$message({
+                                message: res.message,
+                                type: "warning",
+                            });
+                            return;
+                        }
+                        row.result = res.data.result;
+                        row.username = res.data.username;
+                    });
+            } else {
+                this.$message({
+                    message: "璇烽�夋嫨鎷╄澶囷紒",
+                    type: "warning",
+                });
+            }
+        },
+        // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
+        handleSizeChange(val) {
+            this.search.countSize = val;
+            this.defaultInitializationTable();
+        },
+        handleSpanMethod({ row, column, rowIndex, columnIndex }) {
+            if (columnIndex === 0) {
+                const _row = this.spanArr[rowIndex];
+                const _col = _row > 0 ? 1 : 0;
+                return {
+                    rowspan: _row,
+                    colspan: _col,
+                };
+            }
+            if (columnIndex === 1) {
+                const _row = this.spanArr[rowIndex];
+                const _col = _row > 0 ? 1 : 0;
+                return {
+                    rowspan: _row,
+                    colspan: _col,
+                };
+            }
+        },
+        // 鍚堝苟琛ㄦ牸
+        mergeTable() {
+            this.rowList = [];
+            this.spanArr = [];
+            this.position = 0;
+            this.inspectionItems.forEach((item, index) => {
+                if (index === 0) {
+                    this.spanArr.push(1);
+                    this.position = 0;
+                } else {
+                    if (
+                        this.inspectionItems[index].father ===
+                        this.inspectionItems[index - 1].father
+                    ) {
+                        this.spanArr[this.position] += 1;
+                        this.spanArr.push(0);
+                    } else {
+                        this.spanArr.push(1);
+                        this.position = index;
+                    }
+                }
+            });
+        },
+        changeOptionSoptionSprocesses() {
+            this.optionTechnology = [];
+            let working = this.optionSoptionSprocesses.filter((item) => {
+                return item.name === this.processInspectVo.techfather;
+            })[0];
+            this.optionTechnology = working.children;
+        },
+        addTestProjevt() {
+            let val = JSON.parse(JSON.stringify(this.processInspectVo));
+            val.techname = this.processInspectVo.techname.split("-")[1];
+            val.technologyId = this.processInspectVo.techname.split("-")[0];
+            this.processInspectVo.technologyId = val.technologyId;
+            this.$axios
+                .post(
+                    this.$api.url.processInspectAddProcess,
+                    {
+                        material: val.material,
+                        materialCode: val.materialCode,
+                        orderNumber: val.orderNumber,
+                        quantity: val.quantity,
+                        specificationsModel: val.specificationsModel,
+                        techfather: val.techfather,
+                        techname: val.techname,
+                        techId: Number(val.technologyId),
+                        mtId: Number(val.technologyId),
+                        unit: val.unit,
+                    },
+                    {
+                        headers: { "Content-Type": "application/json" },
+                    }
+                )
+                .then((res) => {
+                    if (res.code === 201) {
+                        this.$message({
+                            message: res.message,
+                            type: "warning",
+                        });
+                        return;
+                    }
+                    this.isAddProject = true;
+                    this.detailId = res.data;
+                    this.inspectionResultForm[0].id = val.materialCode;
+                    this.inspectionResultForm[0].name = val.material;
+                    this.getTableData();
+                });
+        },
+        getTableData() {
+            this.$axios
+                .get(this.$api.url.inspectionItemListUser, {
+                    params: {
+                        id: this.detailId,
+                        type: 1,
+                    },
+                })
+                .then((res) => {
+                    this.inspectionItems = res.data;
+                    let arr = [];
+                    let val = JSON.parse(JSON.stringify(this.inspectionItems));
+                    const uName = [];
+                    //杞垚涓�缁存暟缁�
+                    val.forEach((l) => {
+                        let father = l.father;
+                        l.children.forEach((c) => {
+                            c.father = father;
+                            c.empiricalValueAddss = [];
+                            if (
+                                c.inspectionValue != "" &&
+                                c.inspectionValue != null
+                            ) {
+                                c.empiricalValueAddss =
+                                    c.inspectionValue.split(",");
+                            } else {
+                                c.empiricalValueAddss.push("");
+                            }
+                            uName.push(c["username"]);
+                            c.isSelectDevice = false;
+                            arr.push(c);
+                        });
+                    });
+                    this.inspectionItems = arr;
+                    let arrSort = JSON.parse(JSON.stringify(arr));
+                    //鏍规嵁闆嗗悎瀵硅薄鏁扮粍闀垮害鎺掑簭
+                    arrSort.sort((a, b) => {
+                        if (
+                            a.empiricalValueAddss.length <
+                            b.empiricalValueAddss.length
+                        ) {
+                            return -1; // a鎺掑湪b鍓嶉潰
+                        } else if (
+                            a.empiricalValueAddss.length >
+                            b.empiricalValueAddss.length
+                        ) {
+                            return 1; // a鎺掑湪b鍚庨潰
+                        } else {
+                            return 0; // 淇濇寔鐩稿椤哄簭涓嶅彉
+                        }
+                    });
+                    // console.log(arrSort);
+                    console.log(uName);
+                    let name = [...new Set(uName)].filter(
+                        (item) => item !== null
+                    );
+                    let rname = "";
+                    name.forEach((m) => {
+                        rname += m + ",";
+                    });
+                    this.inspectionResultForm[0].inspecter = rname.slice(0, -1);
+                    this.empiricalValueAdd =
+                        arrSort[arrSort.length - 1].empiricalValueAddss.length;
+                    this.mergeTable(arr);
+                });
+        },
+        selectSample() {
+            let sample = this.optionsSamplename.filter((item) => {
+                return item.name === this.processInspectVo.material;
+            })[0];
+            this.processInspectVo.techfather = null;
+            this.processInspectVo.techname = null;
+            this.processInspectVo.materialCode = sample.code;
+            this.processInspectVo.specificationsModel = sample.specifications;
+            this.processInspectVo.unit = sample.unit;
+            this.optionSoptionSprocesses = [];
+            this.optionSoptionSprocesses = sample.children;
+        },
+        selectInfoByOrderId() {
+            this.$axios
+                .get(this.$api.url.chooseMaterProcessInspect, {
+                    params: {
+                        orderNumber: this.processInspectVo.orderNumber,
+                    },
+                })
+                .then((res) => {
+                    if (res.data.length > 0) {
+                        console.log(res.data);
+                        this.optionsSamplename = res.data;
+                    } else {
+                        this.$message({
+                            message: "娌℃湁璇ヨ鍗曞彿锛�",
+                            type: "warning",
+                        });
+                    }
+                });
+        },
+        // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
+        handleCurrentChange(val) {
+            this.search.pageSize = val;
+            this.defaultInitializationTable();
+        },
+        // 鏄剧ず鏂板椤甸潰
+        handleAddNew() {
+            this.showAddPage = true;
+            // this.getTableData()
+        },
+        // 琛ㄦ牸鍒濆鍖栨帴鍙�
+        defaultInitializationTable() {
+            this.$axios
+                .post(this.$api.url.selectProcessInspectsList, this.search)
+                .then((res) => {
+                    this.inspectionTableTotal = res.data.total;
+                    this.inspectionTable = res.data.row;
+                });
+        },
+        // 娣诲姞琛�
+        clickAddLine() {
+            let obj = {
+                material: "",
+                materialCode: "",
+                orderNumber: "",
+                quantity: 0,
+                specificationsModel: "",
+                techfather: "",
+                techname: "",
+                technologyId: 0,
+                unit: "",
+            };
+            this.inspectionItems.push(obj);
+        },
+        // 鍒犻櫎琛�
+        clickDeleteline(scope) {
+            this.inspectionItems.splice(scope.$index, 1);
+        },
+        // 鍒犻櫎妫�楠屽�煎垪
+        clickDeleteInspectionColumn() {
+            if (this.empiricalValueAdd - 1 === 0) {
+            } else {
+                if (
+                    this.empiricalValueAddMaxNumber !=
+                    this.empiricalValueAdd - 1
+                ) {
+                    this.empiricalValueAdd = this.empiricalValueAdd - 1;
+                    this.inspectionItems.forEach((i) => {
+                        i.testValueList.splice(this.empiricalValueAdd, 1);
+                    });
+                }
+            }
+        },
+        // 娣诲姞妫�楠屽�煎垪
+        clickAddInspectionColumn() {
+            this.empiricalValueAdd = this.empiricalValueAdd + 1;
+        },
     },
-    selectSample() {
-      let sample = this.optionsSamplename.filter(item => {
-        return item.name === this.processInspectVo.material
-      })[0]
-      this.processInspectVo.techfather = null
-      this.processInspectVo.techname = null
-      this.processInspectVo.materialCode = sample.code
-      this.processInspectVo.specificationsModel = sample.specifications
-      this.processInspectVo.unit = sample.unit
-      this.optionSoptionSprocesses = []
-      this.optionSoptionSprocesses = sample.children
+    created() {
+        this.defaultInitializationTable(); // 鍒濆鍖栬〃鏍兼暟鎹�
     },
-    selectInfoByOrderId() {
-      this.$axios.get(this.$api.url.chooseMaterProcessInspect, {
-        params: {
-          orderNumber: this.processInspectVo.orderNumber
-        }
-      }).then(res => {
-        if (res.data.length > 0) {
-          console.log(res.data);
-          this.optionsSamplename = res.data
-        } else {
-          this.$message({
-            message: '娌℃湁璇ヨ鍗曞彿锛�',
-            type: 'warning'
-          });
-        }
-      })
-    },
-    // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
-    handleCurrentChange(val) {
-      this.search.pageSize = val;
-      this.defaultInitializationTable();
-    },
-    // 鏄剧ず鏂板椤甸潰
-    handleAddNew() {
-      this.showAddPage = true;
-      // this.getTableData()
-    },
-    // 琛ㄦ牸鍒濆鍖栨帴鍙�
-    defaultInitializationTable() {
-      this.$axios
-        .post(this.$api.url.selectProcessInspectsList, this.search)
-        .then(res => {
-          this.inspectionTableTotal = res.data.total;
-          this.inspectionTable = res.data.row;
-        });
-    },
-    // 娣诲姞琛�
-    clickAddLine() {
-      let obj = {
-        material: "",
-        materialCode: "",
-        orderNumber: "",
-        quantity: 0,
-        specificationsModel: "",
-        techfather: "",
-        techname: "",
-        technologyId: 0,
-        unit: ""
-      };
-      this.inspectionItems.push(obj);
-    },
-    // 鍒犻櫎琛�
-    clickDeleteline(scope) {
-      this.inspectionItems.splice(scope.$index, 1);
-    },
-    // 鍒犻櫎妫�楠屽�煎垪
-    clickDeleteInspectionColumn() {
-      if (this.empiricalValueAdd - 1 === 0) {
-      } else {
-        if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) {
-          this.empiricalValueAdd = this.empiricalValueAdd - 1;
-          this.inspectionItems.forEach(i => {
-            i.testValueList.splice(this.empiricalValueAdd, 1);
-          });
-        }
-      }
-    },
-    // 娣诲姞妫�楠屽�煎垪
-    clickAddInspectionColumn() {
-      this.empiricalValueAdd = this.empiricalValueAdd + 1;
-    }
-  },
-  created() {
-    this.defaultInitializationTable(); // 鍒濆鍖栬〃鏍兼暟鎹�
-  }
 };
 </script>
 
 <style>
 .node_i {
-  color: orange;
+    color: orange;
 }
 
 .div_device_dialog {
-  min-height: 400px;
-  overflow: auto;
+    min-height: 400px;
+    overflow: auto;
 }
 
 .nav {
-  display: flex;
-  padding: 20px 20px;
-  align-items: center;
-  background-color: #fff;
+    display: flex;
+    padding: 20px 20px;
+    align-items: center;
+    background-color: #fff;
 }
 
 .table_header {
-  height: calc(100vh - 550px);
+    height: calc(100vh - 550px);
 }
 
 .nav * {
-  font-size: 14px;
+    font-size: 14px;
 }
 
 .content-body .rawPage {
-  background-color: #fff;
-  overflow: hidden;
+    background-color: #fff;
+    overflow: hidden;
+}
+
+.rawPage span {
+    white-space: nowrap;
 }
 
 .inspectionTable {
-  padding: 20px 20px;
+    padding: 20px 20px;
 }
 
 .pagination {
-  float: right;
-  margin-right: 20px;
+    float: right;
+    margin-right: 20px;
 }
 
 .newPage {
-  overflow: hidden;
+    overflow: hidden;
 }
 
 .header {
-  padding: 12px;
+    padding: 12px;
 }
 
 .addInspectionform {
-  background-color: #fff;
+    background-color: #fff;
 }
 
 .addInspectionform .formwrapper {
-  padding: 20px 0px;
-  margin-left: 100px;
+    padding: 20px 0px;
+    margin-left: 100px;
 }
 
 .inspectionProject .el-table {
-  background-color: #fff;
-  padding: 10px 12px;
+    background-color: #fff;
+    padding: 10px 12px;
 }
 
 .inspectionResult span {
-  display: block;
-  padding: 5px 0px;
+    display: block;
+    padding: 5px 0px;
 }
 
 .inspectionResult .el-table {
-  background-color: #fff;
-  padding: 10px 12px;
+    background-color: #fff;
+    padding: 10px 12px;
 }
 
 .inspectionProject_span {
-  line-height: 32px;
-  padding: 10px 20px;
+    line-height: 32px;
+    padding: 10px 20px;
 }
 
 .inspectionProject_span .el-button {
-  float: right;
-  font-size: 13px !important;
+    float: right;
+    font-size: 13px !important;
 }
 </style>
diff --git a/src/components/view/raw-ins.vue b/src/components/view/raw-ins.vue
index 1b96168..e159492 100644
--- a/src/components/view/raw-ins.vue
+++ b/src/components/view/raw-ins.vue
@@ -1,221 +1,214 @@
 <style scoped>
-	.raw_ins {
-		height: 100%;
-	}
+.raw_ins {
+    height: 100%;
+}
 
-	.raw_ins .title .el-button {
-		height: 32px;
-		border: 1px solid rgba(190, 190, 190, 0.44);
-		box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
-		padding: 0 12px;
-	}
+.raw_ins .title .el-button {
+    height: 32px;
+    border: 1px solid rgba(190, 190, 190, 0.44);
+    box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
+    padding: 0 12px;
+}
 
-	.raw_ins .title {
-		margin-bottom: 10px;
-		padding: 0 20px;
-	}
+.raw_ins .title {
+    margin-bottom: 10px;
+    padding: 0 20px;
+}
 
-	.choose {
-		padding: 21px 24px;
-		display: flex;
-		align-items: center;
-		background-color: #fff;
-		border-bottom: 3px solid rgb(245, 247, 251);
-	}
+.choose {
+    padding: 21px 24px;
+    display: flex;
+    align-items: center;
+    background-color: #fff;
+    border-bottom: 3px solid rgb(245, 247, 251);
+}
 
-	.choose * {
-		font-size: 14px;
-	}
+.choose * {
+    font-size: 14px;
+}
 
-	.choose .el-button {
-		height: 32px;
-		border: 1px solid rgba(190, 190, 190, 0.44);
-		box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
-		padding: 0 12px;
-	}
+.choose .el-button {
+    height: 32px;
+    border: 1px solid rgba(190, 190, 190, 0.44);
+    box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
+    padding: 0 12px;
+}
 
-	.thing {
-		width: calc(100% - 44px);
-		height: calc(100% - 42px - 82px - 66px);
-		background-color: #fff;
-		overflow: auto;
-		padding: 33px 22px;
-	}
+.choose span {
+    /* span鍐呭寮哄埗涓嶆崲琛� */
+    white-space: nowrap;
+}
 
-	.table_do {
-		color: #004ea0;
-		cursor: pointer;
-	}
+.thing {
+    width: calc(100% - 44px);
+    height: calc(100% - 42px - 82px - 66px);
+    background-color: #fff;
+    overflow: auto;
+    padding: 33px 22px;
+}
+
+.table_do {
+    color: #004ea0;
+    cursor: pointer;
+}
 </style>
 <style>
-	.raw_ins .thing * {
-		font-size: 14px;
-	}
+.raw_ins .thing * {
+    font-size: 14px;
+}
 
-	.raw_ins .has-gutter .el-table__cell {
-		background-color: #f0f1f5 !important;
-		color: #333;
-	}
+.raw_ins .has-gutter .el-table__cell {
+    background-color: #f0f1f5 !important;
+    color: #333;
+}
 
-	.raw_ins .has-gutter .el-table__cell .cell {
-		font-size: 16px;
-		font-weight: 500;
-	}
+.raw_ins .has-gutter .el-table__cell .cell {
+    font-size: 16px;
+    font-weight: 500;
+}
 
-	.raw_ins .cell {
-		color: #333;
-		padding-left: 17px !important;
-	}
+.raw_ins .cell {
+    color: #333;
+    padding-left: 17px !important;
+}
 
-	.raw_ins .el-table__body-wrapper {
-		height: 100%;
-	}
+.raw_ins .el-table__body-wrapper {
+    height: 100%;
+}
 
-	.raw_ins .el-table__body {
-		height: 100%;
-	}
+.raw_ins .el-table__body {
+    height: 100%;
+}
 </style>
 
 <template>
-	<div class="raw_ins">
-		<div class="title">
-			<el-row>
-				<el-col :span="12" style="line-height: 32px;">鍘熸潗鏂欐楠�</el-col>
-				<el-col :span="12" style="text-align: right;">
-					<el-button type="primary" icon="el-icon-plus" style="background: #004EA2;"
-						@click="goDetail(null)">鏂板</el-button>
-					<el-button icon="el-icon-download">瀵煎嚭</el-button>
-				</el-col>
-			</el-row>
-		</div>
-		<div class="choose">
-			<span>鏉ユ枡鏃ユ湡锛�</span>
-			<el-date-picker v-model="search.formTime" size="small" placeholder="璇疯緭鍏�" style="width: 13vw;margin-right: 5px;"
-				clearable value-format="yyyy-MM-dd"></el-date-picker>
-			<span>鍘熸潗鏂欑紪鐮侊細</span>
-			<el-input v-model="search.code" placeholder="璇疯緭鍏�" size="small" style="width: 13vw;margin-right: 5px;"
-				clearable></el-input>
-			<span>妫�娴嬬姸鎬侊細</span>
-			<el-select v-model="search.insState" size="small" placeholder="璇烽�夋嫨" style="width: 13vw;margin-right: 5px;">
-				<el-option label="鍏ㄩ儴" :value="2"></el-option>
-				<el-option label="鏈娴�" :value="0"></el-option>
-				<el-option label="宸叉娴�" :value="1"></el-option>
-			</el-select>
-			<span>鍘熸潗鏂欏悕绉帮細</span>
-			<el-input v-model="search.name" size="small" placeholder="璇疯緭鍏�" style="width: 13vw;margin-right: 5px;"
-				clearable></el-input>
-			<el-button size="mini" @click="clean()"><span>閲� 缃�</span></el-button>
-			<el-button size="mini" type="primary" style="background: #004EA2;" @click="selectRawInspectsList()"><span>鏌�
-					璇�</span></el-button>
-		</div>
-		<div class="thing">
-			<el-table :data="tableData" border style="width: 100%;overflow-y: auto;min-height: calc(100% - 50px)"
-				max-height="calc(100% - 50px)" @selection-change="handleSelectionChange" default-expand-all
-				:tree-props="{ children: 'children', hasChildren: 'hasChildren' }" row-key="id">
-				<el-table-column type="selection" width="50"> </el-table-column>
-				<el-table-column type="index" label="搴忓彿" width="70">
-				</el-table-column>
-				<el-table-column prop="formTime" label="鏉ユ枡鏃ユ湡"> </el-table-column>
-				<el-table-column prop="code" label="鍘熸潗鏂欑紪鐮�"> </el-table-column>
-				<el-table-column prop="name" label="鍘熸潗鏂欏悕绉�"> </el-table-column>
-				<el-table-column prop="specifications" label="瑙勬牸鍨嬪彿">
-				</el-table-column>
-				<el-table-column prop="unit" label="鍗曚綅"> </el-table-column>
-				<el-table-column prop="number" label="鏁伴噺"> </el-table-column>
-				<el-table-column prop="createTime" label="鎶ユ鏃ユ湡"> </el-table-column>
-				<el-table-column prop="user_name" label="鎶ユ浜�"> </el-table-column>
-				<el-table-column prop="createTime" label="妫�楠屾棩鏈�"> </el-table-column>
-				<el-table-column prop="createTime" label="妫�娴嬬姸鎬�" width="100">
-					<template slot-scope="scope">
-						<span style="color: #34BD66;" v-if="scope.row.ins_state == 1">宸叉娴�</span>
-						<span style="color: #E84738;" v-else-if="scope.row.ins_state == 0">鏈娴�</span>
-					</template>
-				</el-table-column>
-				<el-table-column prop="judge_state" label="鍚堟牸鐘舵��" width="100">
-					<template slot-scope="scope">
-						<span style="color: #34BD66;" v-if="scope.row.judge_state == 1">鍚堟牸</span>
-						<span style="color: #E84738;" v-else-if="scope.row.judge_state == 0">涓嶅悎鏍�</span>
-					</template>
-				</el-table-column>
-				<el-table-column label="鎿嶄綔" width="100">
-					<template slot-scope="scope">
-						<span class="table_do" @click="changeShowDetail(scope.row)">鏌ョ湅</span>
-						<span class="table_do">鎵撳嵃</span>
-					</template>
-				</el-table-column>
-			</el-table>
-			<el-col style="height: 50px;display: flex;align-items: center;justify-content: right;">
-				<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="1"
-					:page-sizes="[10, 15, 20, 30, 50]" :page-size="search.co" layout="total, sizes, prev, pager, next, jumper"
-					:total="total">
-				</el-pagination>
-			</el-col>
-		</div>
-	</div>
+    <div class="raw_ins">
+        <div class="title">
+            <el-row>
+                <el-col :span="12" style="line-height: 32px;">鍘熸潗鏂欐楠�</el-col>
+                <el-col :span="12" style="text-align: right;">
+                    <el-button type="primary" icon="el-icon-plus" style="background: #004EA2;" @click="goDetail(null)">鏂板</el-button>
+                    <el-button icon="el-icon-download">瀵煎嚭</el-button>
+                </el-col>
+            </el-row>
+        </div>
+        <div class="choose">
+            <span>鏉ユ枡鏃ユ湡锛�</span>
+            <el-date-picker v-model="search.formTime" size="small" placeholder="璇疯緭鍏�" style="width: 13vw;margin-right: 5px;" clearable value-format="yyyy-MM-dd"></el-date-picker>
+            <span>鍘熸潗鏂欑紪鐮侊細</span>
+            <el-input v-model="search.code" placeholder="璇疯緭鍏�" size="small" style="width: 13vw;margin-right: 5px;" clearable></el-input>
+            <span>妫�娴嬬姸鎬侊細</span>
+            <el-select v-model="search.insState" size="small" placeholder="璇烽�夋嫨" style="width: 13vw;margin-right: 5px;">
+                <el-option label="鍏ㄩ儴" :value="2"></el-option>
+                <el-option label="鏈娴�" :value="0"></el-option>
+                <el-option label="宸叉娴�" :value="1"></el-option>
+            </el-select>
+            <span>鍘熸潗鏂欏悕绉帮細</span>
+            <el-input v-model="search.name" size="small" placeholder="璇疯緭鍏�" style="width: 13vw;margin-right: 5px;" clearable></el-input>
+            <el-button size="mini" @click="clean()"><span>閲� 缃�</span></el-button>
+            <el-button size="mini" type="primary" style="background: #004EA2;" @click="selectRawInspectsList()"><span>鏌� 璇�</span></el-button>
+        </div>
+        <div class="thing">
+            <el-table :data="tableData" border style="width: 100%;" height="calc(100% - 50px)" @selection-change="handleSelectionChange" default-expand-all :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" row-key="id">
+                <el-table-column type="index" label="搴忓彿" width="60">
+                </el-table-column>
+                <el-table-column prop="formTime" label="鏉ユ枡鏃ユ湡" min-width="110"> </el-table-column>
+                <el-table-column prop="code" label="鍘熸潗鏂欑紪鐮�" min-width="110"> </el-table-column>
+                <el-table-column prop="name" label="鍘熸潗鏂欏悕绉�" min-width="110"> </el-table-column>
+                <el-table-column prop="specifications" label="瑙勬牸鍨嬪彿" min-width="100">
+                </el-table-column>
+                <el-table-column prop="unit" label="鍗曚綅" min-width="60"> </el-table-column>
+                <el-table-column prop="number" label="鏁伴噺" min-width="60"> </el-table-column>
+                <el-table-column prop="createTime" label="鎶ユ鏃ユ湡" min-width="110"> </el-table-column>
+                <el-table-column prop="user_name" label="鎶ユ浜�" min-width="80"> </el-table-column>
+                <el-table-column prop="createTime" label="妫�楠屾棩鏈�" min-width="110"> </el-table-column>
+                <el-table-column prop="createTime" label="妫�娴嬬姸鎬�" min-width="100">
+                    <template slot-scope="scope">
+                        <span style="color: #34BD66;" v-if="scope.row.ins_state == 1">宸叉娴�</span>
+                        <span style="color: #E84738;" v-else-if="scope.row.ins_state == 0">鏈娴�</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="judge_state" label="鍚堟牸鐘舵��" min-width="100">
+                    <template slot-scope="scope">
+                        <span style="color: #34BD66;" v-if="scope.row.judge_state == 1">鍚堟牸</span>
+                        <span style="color: #E84738;" v-else-if="scope.row.judge_state == 0">涓嶅悎鏍�</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="鎿嶄綔" min-width="100" fixed="right">
+                    <template slot-scope="scope">
+                        <span class="table_do" @click="changeShowDetail(scope.row)">鏌ョ湅</span>
+                        <span class="table_do">鎵撳嵃</span>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-col style="height: 50px;display: flex;align-items: center;justify-content: right;">
+                <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="1" :page-sizes="[10, 15, 20, 30, 50]" :page-size="search.co" layout="total, sizes, prev, pager, next, jumper" :total="total">
+                </el-pagination>
+            </el-col>
+        </div>
+    </div>
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-				search: {
-					formTime: "", // 鏉ユ枡鏃堕棿
-					code: "", // 鍘熸潗鏂欑紪鐮�
-					insState: "", // 妫�娴嬬姸鎬�
-					name: "", //
-					countSize: 10, // 鏉℃暟/椤�
-					pageSize: 1 // 椤垫暟
-				},
-				total: 0,
-				tableData: [],
-				selects: []
-			};
-		},
-		props: ["goDetail"],
-		mounted() {
-			this.selectRawInspectsList();
-		},
-		methods: {
-			handleSelectionChange(val) {
-				this.selects = val;
-			},
-			handleSizeChange(val) {
-				this.search.countSize = val;
-				this.selectRawInspectsList();
-			},
-			handleCurrentChange(val) {
-				this.search.pageSize = val;
-				this.selectRawInspectsList();
-			},
-			selectRawInspectsList() {
-				this.$axios
-					.get(this.$api.url.selectRawInspectsList, {
-						params: this.search
-					})
-					.then(res => {
-						this.tableData = res.data.row;
-						this.total = res.data.total;
-					});
-			},
-			clean() {
-				this.search = {
-					formTime: "", // 鏉ユ枡鏃堕棿
-					code: "", // 鍘熸潗鏂欑紪鐮�
-					insState: "", // 妫�娴嬬姸鎬�
-					name: "", //
-					countSize: 10, // 鏉℃暟/椤�
-					pageSize: 1 // 椤垫暟
-				};
-				this.selectRawInspectsList();
-			},
-			changeShowDetail({
-				id
-			}) {
-				this.goDetail(id);
-				// console.log(id)
-				// const res = await this.$axios.post(this.$api.url.selectRawInspectsListById,{params:{id}})
-				// console.log(res)
-			}
-		}
-	};
+export default {
+    data() {
+        return {
+            search: {
+                formTime: "", // 鏉ユ枡鏃堕棿
+                code: "", // 鍘熸潗鏂欑紪鐮�
+                insState: "", // 妫�娴嬬姸鎬�
+                name: "", //
+                countSize: 10, // 鏉℃暟/椤�
+                pageSize: 1, // 椤垫暟
+            },
+            total: 0,
+            tableData: [],
+            selects: [],
+        };
+    },
+    props: ["goDetail"],
+    mounted() {
+        this.selectRawInspectsList();
+    },
+    methods: {
+        handleSelectionChange(val) {
+            this.selects = val;
+        },
+        handleSizeChange(val) {
+            this.search.countSize = val;
+            this.selectRawInspectsList();
+        },
+        handleCurrentChange(val) {
+            this.search.pageSize = val;
+            this.selectRawInspectsList();
+        },
+        selectRawInspectsList() {
+            this.$axios
+                .get(this.$api.url.selectRawInspectsList, {
+                    params: this.search,
+                })
+                .then((res) => {
+                    this.tableData = res.data.row;
+                    this.total = res.data.total;
+                });
+        },
+        clean() {
+            this.search = {
+                formTime: "", // 鏉ユ枡鏃堕棿
+                code: "", // 鍘熸潗鏂欑紪鐮�
+                insState: "", // 妫�娴嬬姸鎬�
+                name: "", //
+                countSize: 10, // 鏉℃暟/椤�
+                pageSize: 1, // 椤垫暟
+            };
+            this.selectRawInspectsList();
+        },
+        changeShowDetail({ id }) {
+            this.goDetail(id);
+            // console.log(id)
+            // const res = await this.$axios.post(this.$api.url.selectRawInspectsListById,{params:{id}})
+            // console.log(res)
+        },
+    },
+};
 </script>
\ No newline at end of file
diff --git a/src/components/view/rawUnqualified/raw.vue b/src/components/view/rawUnqualified/raw.vue
deleted file mode 100644
index 874e48f..0000000
--- a/src/components/view/rawUnqualified/raw.vue
+++ /dev/null
@@ -1,304 +0,0 @@
-<template>
-  <div class="unqualifiedBox">
-    <el-row>
-      <el-col :span="12" style="line-height: 32px;">鍘熸潗鏂欎笉鍚堟牸</el-col>
-      <el-col :span="12" style="text-align: right;">
-        <el-button icon="el-icon-download" size="mini" @click="() => {}"
-          >瀵煎嚭</el-button
-        >
-      </el-col>
-    </el-row>
-    <div style="margin-top: 10px;">
-      <el-card shadow="hover" class="margin-30" style="height: 80px;">
-        <div class="choose">
-          <span>浜у搧鍚嶇О锛�</span>
-          <el-input
-            size="small"
-            v-model="search.productName"
-            style="width: 14vw;margin-right: 5px;"
-            placeholder="璇疯緭鍏�"
-            clearable
-          ></el-input>
-          <span>鏉ユ枡鏃ユ湡锛�</span>
-          <el-date-picker
-            v-model="search.formTime"
-            size="small"
-            placeholder="璇疯緭鍏�"
-            style="width: 12vw"
-            clearable
-            value-format="yyyy-MM-dd"
-          ></el-date-picker>
-          <span>澶勭悊鐘舵�侊細</span>
-          <el-select
-            v-model="search.processingStatus"
-            size="small"
-            placeholder="璇烽�夋嫨"
-            style="width: 12vw"
-          >
-            <el-option label="宸插鐞�" :value="1"></el-option>
-            <el-option label="寰呭鐞�" :value="0"></el-option>
-          </el-select>
-          <span>渚涘簲鍟嗭細</span>
-          <el-input
-            size="small"
-            v-model="search.supplier"
-            style="width: 12vw"
-            placeholder="璇疯緭鍏�"
-          ></el-input>
-          <el-button size="mini" @click="clean()"><span>閲� 缃�</span></el-button>
-          <el-button
-            size="mini"
-            type="primary"
-            style="background: #004EA2;"
-            @click="
-              unqualifiedTable = [];
-              getDetailInfo();
-            "
-            ><span>鏌� 璇�</span></el-button
-          >
-        </div>
-      </el-card>
-    </div>
-    <div class="tableno" style="height:300px">
-      <el-card shadow="hover" class="margin-30">
-        <el-table
-          :data="unqualifiedTable"
-          border
-          ref="multipleTable"
-          tooltip-effect="dark"
-          height="calc(100vh - 340px)"
-          style="width: 100%"
-        >
-          <el-table-column type="selection" width="50"> </el-table-column>
-          <el-table-column type="index" label="搴忓彿" width="60">
-            <template slot-scope="scope">
-              {{ (search.pageSize - 1) * search.countSize + scope.$index + 1 }}
-            </template>
-          </el-table-column>
-          <el-table-column prop="dateArrival" label="鏉ユ枡鏃ユ湡">
-          </el-table-column>
-          <el-table-column prop="supplier" label="渚涘簲鍟�"> </el-table-column>
-          <el-table-column
-            prop="reason"
-            label="缂洪櫡鍚嶇О"
-            min-width="120"
-            show-overflow-tooltip
-          >
-          </el-table-column>
-          <el-table-column prop="code" label="鏉愭枡缂栫爜"> </el-table-column>
-          <el-table-column prop="name" label="鏉愭枡鍚嶇О"> </el-table-column>
-          <el-table-column prop="specifications" label="瑙勬牸鍨嬪彿">
-          </el-table-column>
-          <el-table-column prop="unit" label="鍗曚綅"> </el-table-column>
-          <el-table-column prop="number" label="鏁伴噺"> </el-table-column>
-          <el-table-column prop="inspectionDate" label="鎶ユ鏃ユ湡">
-          </el-table-column>
-          <el-table-column prop="name" label="鎶ユ浜�"> </el-table-column>
-          <el-table-column prop="processingDate" label="妫�楠屾棩鏈�">
-          </el-table-column>
-          <el-table-column prop="deal_state" label="澶勭悊鐘舵��" width="100">
-            <template slot-scope="scope">
-              <span style="color:#34BD66;" v-if="scope.row.deal_state == 1"
-                >宸插鐞�</span
-              >
-              <span style="color:#E84738;" v-else-if="scope.row.deal_state == 0"
-                >寰呭鐞�</span
-              >
-            </template>
-          </el-table-column>
-          <el-table-column prop="deal_reasult" label="璇勫缁撴灉" width="100">
-            <template slot-scope="scope">
-              <span style="color:#E84738;" v-if="scope.row.deal_reasult == 0"
-                >涓嶉�氳繃</span
-              >
-              <span
-                style="color:#34BD66;"
-                v-else-if="scope.row.deal_reasult == 1"
-                >閫氳繃</span
-              >
-            </template>
-          </el-table-column>
-          <el-table-column label="鎿嶄綔" width="100">
-            <template slot-scope="scope">
-              <div style="display: flex;">
-                <el-popover
-                  placement="left"
-                  width="160"
-                  :ref="`popover-${scope.$index}`"
-                >
-                  <div style="padding: 6px">璇勫鏄惁閫氳繃锛�</div>
-                  <div style="text-align: right; margin: 6px;">
-                    <el-button
-                      size="mini"
-                      type="text"
-                      style="color: #E84738;"
-                      @click="
-                        scope._self.$refs[`popover-${scope.$index}`].doClose();
-                        rawEvaluate(scope.row, 0);
-                      "
-                      >涓嶉�氳繃</el-button
-                    >
-                    <el-button
-                      type="text"
-                      style="color: #34bd66;"
-                      size="mini"
-                      @click="
-                        scope._self.$refs[`popover-${scope.$index}`].doClose();
-                        rawEvaluate(scope.row, 1);
-                      "
-                      >閫氳繃</el-button
-                    >
-                  </div>
-                  <el-button
-                    slot="reference"
-                    type="text"
-                    siae="small"
-                    size="mini"
-                    >璇勫</el-button
-                  >
-                </el-popover>
-
-                <el-button
-                  type="text"
-                  siae="small"
-                  size="mini"
-                  style=" color:87, 138, 193 ; margin-left: 10px;"
-                  >鏌ョ湅</el-button
-                >
-              </div>
-            </template>
-          </el-table-column>
-        </el-table>
-        <el-col
-          style="height: 50px;display: flex;align-items: center;justify-content: right;"
-        >
-          <el-pagination
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-            :current-page="search.pageSize"
-            :page-sizes="[10, 15, 20, 30, 50]"
-            :page-size="search.countSize"
-            layout="total, sizes, prev, pager, next, jumper"
-            :total="total"
-          >
-          </el-pagination>
-        </el-col>
-      </el-card>
-    </div>
-  </div>
-</template>
-
-<script>
-export default {
-  data() {
-    return {
-      search: {
-        countSize: 10, // 鏉℃暟/椤�
-        pageSize: 1, // 璧峰椤�
-        formTime: "", // 鏉ユ枡鏃ユ湡
-        processingStatus: "", // 澶勭悊鐘舵��
-        productName: "", // 浜у搧鍚嶇О
-        supplier: "" // 渚涘簲鍟�
-      },
-      unqualifiedTable: [], // 椤甸潰琛ㄦ牸鏁版嵁
-      total: 0,
-      visible: false
-    };
-  },
-  mounted() {
-    this.getDetailInfo();
-  },
-  methods: {
-    handleSizeChange(val) {
-      this.search.countSize = val;
-      this.getDetailInfo();
-    },
-    handleCurrentChange(val) {
-      this.search.pageSize = val;
-      this.getDetailInfo();
-    },
-    getDetailInfo() {
-      this.axios
-        .get(this.$api.url.selectUnRawInspectsList, {
-          params: this.search
-        })
-        .then(res => {
-          this.unqualifiedTable = res.data.row;
-          this.total = res.data.total;
-        });
-    },
-    clean() {
-      this.search = {
-        countSize: 10, // 鏉℃暟/椤�
-        pageSize: 1, // 璧峰椤�
-        formTime: "", // 鏉ユ枡鏃ユ湡
-        processingStatus: "", // 澶勭悊鐘舵��
-        productName: "", // 浜у搧鍚嶇О
-        supplier: "" // 渚涘簲鍟�
-      };
-      this.getDetailInfo();
-    },
-    rawEvaluate(row, passOrNo) {
-      this.$axios
-        .post(this.$api.url.evaluatePassOrNo, {
-          rawId: row.id,
-          passOrNo: passOrNo
-        })
-        .then(res => {
-          this.unqualifiedTable = [];
-          this.getDetailInfo();
-          this.$parent.removeAllTab()
-        });
-    }
-  }
-};
-</script>
-
-<style scoped>
-.unqualifiedBox {
-  width: 100%;
-  max-height: 100%;
-  display: flex;
-  flex-direction: column;
-  /* overflow-y: scroll; */
-}
-.unqualifiedBox .title .el-button {
-  height: 32px;
-  border: 1px solid rgba(190, 190, 190, 0.44);
-  box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
-  padding: 0 12px;
-}
-.unqualifiedBox .title {
-  margin-bottom: 10px;
-  padding: 0 20px;
-}
-<!-- /* 鏉′欢鏌ヨ澶撮儴鏍峰紡 */ -->
-  .choose {
-  padding: 21px 24px;
-  display: flex;
-  align-items: center;
-  background-color: #fff;
-  border-bottom: 3px solid rgb(245, 247, 251);
-}
-
-.choose {
-  font-size: 14px;
-}
-
-.choose .el-button {
-  height: 32px;
-  border: 1px solid rgba(190, 190, 190, 0.44);
-  box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
-  padding: 0 12px;
-}
-<!-- /* 涓嶅悎鏍艰〃鏍兼牱寮� */
-  .unqualifiedTable {
-  flex: 1;
-  background: #fff;
-  margin-top: 11px;
-  padding: 23px 21px;
-}
-.tableno {
-  margin-top: 10px;
-}
-</style>
diff --git a/src/components/view/rawUnqualifiedBox.vue b/src/components/view/rawUnqualifiedBox.vue
deleted file mode 100644
index f43a1fa..0000000
--- a/src/components/view/rawUnqualifiedBox.vue
+++ /dev/null
@@ -1,14 +0,0 @@
-<style scoped></style>
-
-<template>
-  <div class="rawUnqualifiedBox">
-    <Unqualified></Unqualified>
-  </div>
-</template>
-
-<script>
-import Unqualified from "./rawUnqualified/raw.vue";
-export default {
-  components: { Unqualified }
-};
-</script>
diff --git a/src/components/view/unqualifiedManagement.vue b/src/components/view/unqualifiedManagement.vue
index be696d6..0f3d721 100644
--- a/src/components/view/unqualifiedManagement.vue
+++ b/src/components/view/unqualifiedManagement.vue
@@ -1,300 +1,218 @@
 <template>
-  <div class="unqualifiedBox">
-    <el-row>
-      <el-col :span="12" style="line-height: 32px;">涓嶅悎鏍肩鐞�</el-col>
-      <el-col :span="12" style="text-align: right;">
-        <el-button icon="el-icon-download" size="mini" @click="() => {}"
-          >瀵煎嚭</el-button
-        >
-      </el-col>
-    </el-row>
-    <div style="margin-top: 10px;">
-      <el-card shadow="hover" class="margin-30" style="height: 80px;">
-        <div class="choose">
-          <span>澶勭悊鐘舵�侊細</span>
-          <el-select
-            v-model="search.dealState"
-            size="small"
-            placeholder="璇烽�夋嫨"
-            style="width: 224px;margin-right: 30px;"
-          >
-            <el-option label="宸插鐞�" :value="1"></el-option>
-            <el-option label="寰呭鐞�" :value="0"></el-option>
-          </el-select>
-          <span>鏉ユ枡鏃ユ湡锛�</span>
-          <el-date-picker
-            v-model="search.formTime"
-            size="small"
-            placeholder="璇疯緭鍏�"
-            style="width: 224px;margin-right: 30px;"
-            clearable
-            value-format="yyyy-MM-dd"
-          ></el-date-picker>
-          <span>浜у搧澶х被锛�</span>
-          <el-select
-            v-model="search.productCategories"
-            size="small"
-            placeholder="璇烽�夋嫨"
-            style="width: 224px;margin-right: 30px;"
-          >
-            <el-option label="鍏ㄩ儴" :value="''"></el-option>
-            <el-option label="鎴愬搧" :value="1"></el-option>
-            <el-option label="鍗婃垚鍝�" :value="2"></el-option>
-          </el-select>
-          <el-button size="mini" @click="clean()"><span>閲� 缃�</span></el-button>
-          <el-button
-            size="mini"
-            type="primary"
-            style="background: #004EA2;"
-            @click="
-              unqualifiedTable = [];
-              getDetailInfo();
-            "
-            ><span>鏌� 璇�</span></el-button
-          >
+    <div class="unqualifiedBox">
+        <el-row>
+            <el-col :span="12" style="line-height: 32px;">涓嶅悎鏍肩鐞�</el-col>
+            <el-col :span="12" style="text-align: right;">
+                <el-button icon="el-icon-download" size="mini" @click="() => { }">瀵煎嚭</el-button>
+            </el-col>
+        </el-row>
+        <div style="margin-top: 10px;">
+            <el-card shadow="hover" style="height: 6em;display: flex;align-items: center;">
+                <div class="choose">
+                    <span>澶勭悊鐘舵�侊細</span>
+                    <el-select v-model="search.dealState" size="small" placeholder="璇烽�夋嫨" style="width: 13vw;margin-right: 30px;">
+                        <el-option label="宸插鐞�" :value="1"></el-option>
+                        <el-option label="寰呭鐞�" :value="0"></el-option>
+                    </el-select>
+                    <span>鏉ユ枡鏃ユ湡锛�</span>
+                    <el-date-picker v-model="search.formTime" size="small" placeholder="璇疯緭鍏�" style="width: 13vw;margin-right: 30px;" clearable value-format="yyyy-MM-dd"></el-date-picker>
+                    <span>浜у搧澶х被锛�</span>
+                    <el-select v-model="search.productCategories" size="small" placeholder="璇烽�夋嫨" style="width: 13vw;margin-right: 30px;">
+                        <el-option label="鍏ㄩ儴" :value="''"></el-option>
+                        <el-option label="鎴愬搧" :value="1"></el-option>
+                        <el-option label="鍗婃垚鍝�" :value="2"></el-option>
+                    </el-select>
+                    <el-button size="mini" @click="clean()"><span>閲� 缃�</span></el-button>
+                    <el-button size="mini" type="primary" style="background: #004EA2;" @click="
+                        unqualifiedTable = [];
+                    getDetailInfo();
+                    "><span>鏌� 璇�</span></el-button>
+                </div>
+            </el-card>
         </div>
-      </el-card>
+        <div class="tableno" style="height:300px">
+            <el-card shadow="hover">
+                <el-table :data="unqualifiedTable" border ref="multipleTable" tooltip-effect="dark" height="calc(100vh - 340px)" style="width: 100%">
+                    <el-table-column type="index" label="搴忓彿" width="60">
+                        <template slot-scope="scope">
+                            {{ (search.pageSize - 1) * search.countSize + scope.$index + 1 }}
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="dateArrival" label="鏉ユ枡鏃ユ湡" min-width="110">
+                    </el-table-column>
+                    <el-table-column prop="reason" label="缂洪櫡鍚嶇О" min-width="100" show-overflow-tooltip>
+                    </el-table-column>
+                    <el-table-column prop="material_code" label="鏉愭枡缂栫爜" min-width="150" show-overflow-tooltip>
+                    </el-table-column>
+                    <el-table-column prop="project_name" label="鏉愭枡鍚嶇О" min-width="150">
+                    </el-table-column>
+                    <el-table-column prop="specifications_model" label="瑙勬牸鍨嬪彿" min-width="100">
+                    </el-table-column>
+                    <el-table-column prop="unit" label="鍗曚綅" min-width="60"> </el-table-column>
+                    <el-table-column prop="quantity" label="鏁伴噺" min-width="60"> </el-table-column>
+                    <el-table-column prop="inspectionDate" label="鎶ユ鏃ユ湡" min-width="110">
+                    </el-table-column>
+                    <el-table-column prop="name" label="鎶ユ浜�" min-width="80"> </el-table-column>
+                    <el-table-column prop="processingDate" label="妫�楠屾棩鏈�" min-width="110">
+                    </el-table-column>
+                    <el-table-column prop="deal_state" label="澶勭悊鐘舵��" min-width="100">
+                        <template slot-scope="scope">
+                            <span style="color:#34BD66;" v-if="scope.row.deal_state == 1">宸插鐞�</span>
+                            <span style="color:#E84738;" v-else-if="scope.row.deal_state == 0">寰呭鐞�</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="deal_reasult" label="璇勫缁撴灉" min-width="100">
+                        <template slot-scope="scope">
+                            <span style="color:#E84738;" v-if="scope.row.deal_reasult == 0">涓嶉�氳繃</span>
+                            <span style="color:#34BD66;" v-else-if="scope.row.deal_reasult == 1">閫氳繃</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="鎿嶄綔" min-width="100" fixed="right">
+                        <template slot-scope="scope">
+                            <div style="display: flex;">
+                                <el-popover placement="left" width="160" :ref="`popover-${scope.$index}`">
+                                    <div style="padding: 6px">璇勫鏄惁閫氳繃锛�</div>
+                                    <div style="text-align: right; margin: 6px;">
+                                        <el-button size="mini" type="text" style="color: #E84738;" @click="
+                                            scope._self.$refs[`popover-${scope.$index}`].doClose();
+                                        rawEvaluate(scope.row, 0);
+                                        ">涓嶉�氳繃</el-button>
+                                        <el-button type="text" style="color: #34bd66;" size="mini" @click="
+                                            scope._self.$refs[`popover-${scope.$index}`].doClose();
+                                        rawEvaluate(scope.row, 1);
+                                        ">閫氳繃</el-button>
+                                    </div>
+                                    <el-button slot="reference" type="text" siae="small" size="mini">璇勫</el-button>
+                                </el-popover>
+                                <el-button type="text" siae="small" size="mini" style=" color:87, 138, 193 ;margin-left: 10px;">鏌ョ湅</el-button>
+                            </div>
+                        </template>
+                    </el-table-column>
+                </el-table>
+                <el-col style="height: 50px;display: flex;align-items: center;justify-content: right;">
+                    <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="search.pageSize" :page-sizes="[10, 15, 20, 30, 50]" :page-size="search.countSize" layout="total, sizes, prev, pager, next, jumper" :total="total">
+                    </el-pagination>
+                </el-col>
+            </el-card>
+        </div>
     </div>
-    <div class="tableno" style="height:300px">
-      <el-card shadow="hover" class="margin-30">
-        <el-table
-          :data="unqualifiedTable"
-          border
-          ref="multipleTable"
-          tooltip-effect="dark"
-          height="calc(100vh - 340px)"
-          style="width: 100%"
-        >
-          <el-table-column type="selection" width="50"> </el-table-column>
-          <el-table-column type="index" label="搴忓彿" width="60">
-            <template slot-scope="scope">
-              {{ (search.pageSize - 1) * search.countSize + scope.$index + 1 }}
-            </template>
-          </el-table-column>
-          <el-table-column prop="dateArrival" label="鏉ユ枡鏃ユ湡">
-          </el-table-column>
-          <el-table-column
-            prop="reason"
-            label="缂洪櫡鍚嶇О"
-            min-width="120"
-            show-overflow-tooltip
-          >
-          </el-table-column>
-          <el-table-column prop="material_code" label="鏉愭枡缂栫爜">
-          </el-table-column>
-          <el-table-column prop="project_name" label="鏉愭枡鍚嶇О">
-          </el-table-column>
-          <el-table-column
-            prop="specifications_model"
-            label="瑙勬牸鍨嬪彿"
-            min-width="120"
-          >
-          </el-table-column>
-          <el-table-column prop="unit" label="鍗曚綅"> </el-table-column>
-          <el-table-column prop="quantity" label="鏁伴噺"> </el-table-column>
-          <el-table-column prop="inspectionDate" label="鎶ユ鏃ユ湡">
-          </el-table-column>
-          <el-table-column prop="name" label="鎶ユ浜�"> </el-table-column>
-          <el-table-column prop="processingDate" label="妫�楠屾棩鏈�">
-          </el-table-column>
-          <el-table-column prop="deal_state" label="澶勭悊鐘舵��" width="100">
-            <template slot-scope="scope">
-              <span style="color:#34BD66;" v-if="scope.row.deal_state == 1"
-                >宸插鐞�</span
-              >
-              <span style="color:#E84738;" v-else-if="scope.row.deal_state == 0"
-                >寰呭鐞�</span
-              >
-            </template>
-          </el-table-column>
-          <el-table-column prop="deal_reasult" label="璇勫缁撴灉" width="100">
-            <template slot-scope="scope">
-              <span style="color:#E84738;" v-if="scope.row.deal_reasult == 0"
-                >涓嶉�氳繃</span
-              >
-              <span
-                style="color:#34BD66;"
-                v-else-if="scope.row.deal_reasult == 1"
-                >閫氳繃</span
-              >
-            </template>
-          </el-table-column>
-          <el-table-column label="鎿嶄綔" width="100">
-            <template slot-scope="scope">
-              <div style="display: flex;">
-                <el-popover
-                  placement="left"
-                  width="160"
-                  :ref="`popover-${scope.$index}`"
-                >
-                  <div style="padding: 6px">璇勫鏄惁閫氳繃锛�</div>
-                  <div style="text-align: right; margin: 6px;">
-                    <el-button
-                      size="mini"
-                      type="text"
-                      style="color: #E84738;"
-                      @click="
-                        scope._self.$refs[`popover-${scope.$index}`].doClose();
-                        rawEvaluate(scope.row, 0);
-                      "
-                      >涓嶉�氳繃</el-button
-                    >
-                    <el-button
-                      type="text"
-                      style="color: #34bd66;"
-                      size="mini"
-                      @click="
-                        scope._self.$refs[`popover-${scope.$index}`].doClose();
-                        rawEvaluate(scope.row, 1);
-                      "
-                      >閫氳繃</el-button
-                    >
-                  </div>
-                  <el-button
-                    slot="reference"
-                    type="text"
-                    siae="small"
-                    size="mini"
-                    >璇勫</el-button
-                  >
-                </el-popover>
-                <el-button
-                  type="text"
-                  siae="small"
-                  size="mini"
-                  style=" color:87, 138, 193 ;margin-left: 10px;"
-                  >鏌ョ湅</el-button
-                >
-              </div>
-            </template>
-          </el-table-column>
-        </el-table>
-        <el-col
-          style="height: 50px;display: flex;align-items: center;justify-content: right;"
-        >
-          <el-pagination
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-            :current-page="search.pageSize"
-            :page-sizes="[10, 15, 20, 30, 50]"
-            :page-size="search.countSize"
-            layout="total, sizes, prev, pager, next, jumper"
-            :total="total"
-          >
-          </el-pagination>
-        </el-col>
-      </el-card>
-    </div>
-  </div>
 </template>
 
 <script>
 export default {
-  data() {
-    return {
-      search: {
-        countSize: 10, // 鏉℃暟/椤�
-        pageSize: 1, // 璧峰椤�
-        formTime: "", // 鏉ユ枡鏃ユ湡
-        productCategories: "", // 浜у搧澶х被
-        dealState: "" // 澶勭悊鐘舵��
-      },
-      unqualifiedTable: [], // 椤甸潰琛ㄦ牸鏁版嵁
-      total: 0
-    };
-  },
-  mounted() {
-    this.getDetailInfo();
-  },
-  methods: {
-    handleSizeChange(val) {
-      this.search.countSize = val;
-      this.getDetailInfo();
+    data() {
+        return {
+            search: {
+                countSize: 10, // 鏉℃暟/椤�
+                pageSize: 1, // 璧峰椤�
+                formTime: "", // 鏉ユ枡鏃ユ湡
+                productCategories: "", // 浜у搧澶х被
+                dealState: "", // 澶勭悊鐘舵��
+            },
+            unqualifiedTable: [], // 椤甸潰琛ㄦ牸鏁版嵁
+            total: 0,
+        };
     },
-    handleCurrentChange(val) {
-      this.search.pageSize = val;
-      this.getDetailInfo();
+    mounted() {
+        this.getDetailInfo();
     },
-    getDetailInfo() {
-      this.axios
-        .get(this.$api.url.inspectUnaccepted, {
-          params: this.search
-        })
-        .then(res => {
-          this.unqualifiedTable = res.data.row;
-          this.total = res.data.total;
-        });
+    methods: {
+        handleSizeChange(val) {
+            this.search.countSize = val;
+            this.getDetailInfo();
+        },
+        handleCurrentChange(val) {
+            this.search.pageSize = val;
+            this.getDetailInfo();
+        },
+        getDetailInfo() {
+            this.axios
+                .get(this.$api.url.inspectUnaccepted, {
+                    params: this.search,
+                })
+                .then((res) => {
+                    this.unqualifiedTable = res.data.row;
+                    this.total = res.data.total;
+                });
+        },
+        clean() {
+            this.search = {
+                countSize: 10, // 鏉℃暟/椤�
+                pageSize: 1, // 璧峰椤�
+                formTime: "", // 鏉ユ枡鏃ユ湡
+                dealState: "", // 澶勭悊鐘舵��
+            };
+            this.getDetailInfo();
+        },
+        rawEvaluate(row, passOrNo) {
+            this.$axios
+                .post(this.$api.url.evaluatePassOrNo, {
+                    rawId: row.id,
+                    passOrNo: passOrNo,
+                })
+                .then((res) => {
+                    this.unqualifiedTable = [];
+                    this.getDetailInfo();
+                    this.$parent.removeAllTab();
+                });
+        },
     },
-    clean() {
-      this.search = {
-        countSize: 10, // 鏉℃暟/椤�
-        pageSize: 1, // 璧峰椤�
-        formTime: "", // 鏉ユ枡鏃ユ湡
-        dealState: "" // 澶勭悊鐘舵��
-      };
-      this.getDetailInfo();
-    },
-    rawEvaluate(row, passOrNo) {
-      this.$axios
-        .post(this.$api.url.evaluatePassOrNo, {
-          rawId: row.id,
-          passOrNo: passOrNo
-        })
-        .then(res => {
-          this.unqualifiedTable = [];
-          this.getDetailInfo();
-          this.$parent.removeAllTab()
-        });
-    }
-  }
 };
 </script>
 
 <style scoped>
 .unqualifiedBox {
-  width: 100%;
-  max-height: 100%;
-  display: flex;
-  flex-direction: column;
-  /* overflow-y: scroll; */
+    width: 100%;
+    max-height: 100%;
+    display: flex;
+    flex-direction: column;
+    /* overflow-y: scroll; */
 }
+
 .unqualifiedBox .title .el-button {
-  height: 32px;
-  border: 1px solid rgba(190, 190, 190, 0.44);
-  box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
-  padding: 0 12px;
+    height: 32px;
+    border: 1px solid rgba(190, 190, 190, 0.44);
+    box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
+    padding: 0 12px;
 }
+
 .unqualifiedBox .title {
-  margin-bottom: 10px;
-  padding: 0 20px;
-}
-<!-- /* 鏉′欢鏌ヨ澶撮儴鏍峰紡 */ -->
-  .choose {
-  padding: 21px 24px;
-  display: flex;
-  align-items: center;
-  background-color: #fff;
-  border-bottom: 3px solid rgb(245, 247, 251);
+    margin-bottom: 10px;
+    padding: 0 20px;
 }
 
 .choose {
-  font-size: 14px;
+    display: flex;
+    align-items: center;
+    background-color: #fff;
+    border-bottom: 3px solid rgb(245, 247, 251);
+}
+
+.choose {
+    font-size: 14px;
 }
 
 .choose .el-button {
-  height: 32px;
-  border: 1px solid rgba(190, 190, 190, 0.44);
-  box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
-  padding: 0 12px;
+    height: 32px;
+    border: 1px solid rgba(190, 190, 190, 0.44);
+    box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
+    padding: 0 12px;
 }
-<!-- /* 涓嶅悎鏍艰〃鏍兼牱寮� */
-  .unqualifiedTable {
-  flex: 1;
-  background: #fff;
-  margin-top: 11px;
-  padding: 23px 21px;
+
+.choose span {
+    /* span鍐呭寮哄埗涓嶆崲琛� */
+    white-space: nowrap;
 }
+
+/* 涓嶅悎鏍艰〃鏍兼牱寮� */
+.unqualifiedTable {
+    flex: 1;
+    background: #fff;
+    margin-top: 11px;
+    padding: 23px 21px;
+}
+
 .tableno {
-  margin-top: 10px;
+    margin-top: 10px;
 }
 </style>
diff --git a/src/main.js b/src/main.js
index 7fc1e88..8b8170e 100644
--- a/src/main.js
+++ b/src/main.js
@@ -13,7 +13,7 @@
 
 Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80/"; //鍓嶇鏈湴绔彛
 Vue.prototype.HaveJson = (val) => {
-	return JSON.parse(JSON.stringify(val))
+    return JSON.parse(JSON.stringify(val))
 }
 
 Vue.use(VueAxios, axios)
@@ -23,9 +23,9 @@
 Vue.use(qs);
 Vue.use(api);
 
-const javaApi = 'http://192.168.14.249:8001'
+// const javaApi = 'http://192.168.14.249:8001'
 
-// const javaApi = 'http://127.0.0.1:8001/'
+const javaApi = 'http://127.0.0.1:8001/'
 
 
 
@@ -37,71 +37,71 @@
 Vue.prototype.$axios = axios
 
 import {
-	Message
+    Message
 } from 'element-ui';
-axios.interceptors.request.use(function(config) {
-	let tk = sessionStorage.getItem("token")
-	let token;
-	if (tk != undefined && tk != '') {
-		token = tk
-	}
-	if (token) {
-		config.headers['token'] = "" + token
-		// config.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
-		// config.headers['Content-Type'] = 'application/json'
-	}
-	// console.log(config)
-	if (config.method === 'post' || config.method === 'put') {
+axios.interceptors.request.use(function (config) {
+    let tk = sessionStorage.getItem("token")
+    let token;
+    if (tk != undefined && tk != '') {
+        token = tk
+    }
+    if (token) {
+        config.headers['token'] = "" + token
+        // config.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
+        // config.headers['Content-Type'] = 'application/json'
+    }
+    // console.log(config)
+    if (config.method === 'post' || config.method === 'put') {
 
-		config.data = qs.stringify(config.data)
-	}
-	if (config.headers['Content-Type'] == 'application/json') {
-		config.data = qs.parse(config.data)
-		// console.log(config.data)
-	}
+        config.data = qs.stringify(config.data)
+    }
+    if (config.headers['Content-Type'] == 'application/json') {
+        config.data = qs.parse(config.data)
+        // console.log(config.data)
+    }
 
 
-	return config
-}, function(error) {
-	return Promise.reject(error)
+    return config
+}, function (error) {
+    return Promise.reject(error)
 })
 
 axios.interceptors.response.use(res => {
-	return res.data
-}, async function(err) {
-	if (JSON.stringify(err).indexOf('timeout of') > -1) {
-		Message.error('璇锋眰瓒呮椂锛岃妫�鏌ョ綉缁滆缃�')
-	} else if (JSON.stringify(err).indexOf('ERR_CONNECTION_RESET') > -1 || JSON.stringify(err).indexOf(
-			'Network Error') > -1) {
-		Message.error('缃戠粶杩炴帴閿欒')
-	} else if (err.response.status == "503") {
-		Message.error('鏈嶅姟鏈搷搴�')
-	} else if (err.response.status == "404") {
-		Message.error('璇锋眰澶辫触锛岄摼鎺ュ湴鍧�涓嶅瓨鍦�')
-	} else if (err.response.status == "403") {
-		Message.error('token涓嶅瓨鍦�')
-	} else if (err.response.status == "402") {
-		Message.error('鏃犳晥绛惧悕锛岃閲嶆柊鐧诲綍')
-		localStorage.removeItem('autoenter')
-		window.location.href = '/enter'
-	} else if (err.response.status == "401") {
-		await axios.post(javaApi + "user/refresh", {
-			reToken: sessionStorage.getItem('reToken')
-		}).then(res => {
-			if (res.data.code == 201) {
-				Message.error('璁よ瘉澶辫触锛岄渶瑕侀噸鏂扮櫥褰�')
-				localStorage.removeItem('autoenter')
-				window.location.href = '/enter'
-				return Promise.reject(err)
-			}
-			sessionStorage.setItem('token', res.data.token)
-			sessionStorage.setItem('reToken', res.data.reToken)
-		})
-		return axios(err.config)
-	} else if (err.response.status == "500") {
-		Message.error('鏈嶅姟绔嚭鐜伴敊璇�')
-	}
-	return Promise.reject(err)
+    return res.data
+}, async function (err) {
+    if (JSON.stringify(err).indexOf('timeout of') > -1) {
+        Message.error('璇锋眰瓒呮椂锛岃妫�鏌ョ綉缁滆缃�')
+    } else if (JSON.stringify(err).indexOf('ERR_CONNECTION_RESET') > -1 || JSON.stringify(err).indexOf(
+        'Network Error') > -1) {
+        Message.error('缃戠粶杩炴帴閿欒')
+    } else if (err.response.status == "503") {
+        Message.error('鏈嶅姟鏈搷搴�')
+    } else if (err.response.status == "404") {
+        Message.error('璇锋眰澶辫触锛岄摼鎺ュ湴鍧�涓嶅瓨鍦�')
+    } else if (err.response.status == "403") {
+        Message.error('token涓嶅瓨鍦�')
+    } else if (err.response.status == "402") {
+        Message.error('鏃犳晥绛惧悕锛岃閲嶆柊鐧诲綍')
+        localStorage.removeItem('autoenter')
+        window.location.href = '/enter'
+    } else if (err.response.status == "401") {
+        await axios.post(javaApi + "user/refresh", {
+            reToken: sessionStorage.getItem('reToken')
+        }).then(res => {
+            if (res.data.code == 201) {
+                Message.error('璁よ瘉澶辫触锛岄渶瑕侀噸鏂扮櫥褰�')
+                localStorage.removeItem('autoenter')
+                window.location.href = '/enter'
+                return Promise.reject(err)
+            }
+            sessionStorage.setItem('token', res.data.token)
+            sessionStorage.setItem('reToken', res.data.reToken)
+        })
+        return axios(err.config)
+    } else if (err.response.status == "500") {
+        Message.error('鏈嶅姟绔嚭鐜伴敊璇�')
+    }
+    return Promise.reject(err)
 })
 
 // 璺敱鎷︽埅鍣�
@@ -119,7 +119,7 @@
 // });
 
 new Vue({
-	el: '#app',
-	router,
-	render: h => h(App)
+    el: '#app',
+    router,
+    render: h => h(App)
 });
diff --git a/src/view/index.vue b/src/view/index.vue
index 0c7c5f5..eebb722 100644
--- a/src/view/index.vue
+++ b/src/view/index.vue
@@ -1,562 +1,556 @@
 <style scoped>
-	.all {
-		width: 100vw;
-		height: 100vh;
-		background-size: 100% 100%;
-		display: flex;
-		flex-wrap: wrap;
-	}
+.all {
+    width: 100vw;
+    height: 100vh;
+    background-size: 100% 100%;
+    display: flex;
+    flex-wrap: wrap;
+}
 
-	.title {
-		width: 100%;
-		height: 58px;
-		display: flex;
-		align-items: center;
-		padding: 0 30px;
-	}
+.title {
+    width: 100%;
+    height: 58px;
+    display: flex;
+    align-items: center;
+    padding: 0 30px;
+}
 
-	.logo {
-		width: 130px;
-	}
+.logo {
+    width: 130px;
+}
 
-	.logo img {
-		width: 100%;
-		height: 100%;
-	}
+.logo img {
+    width: 100%;
+    height: 100%;
+}
 
-	.title .label {
-		font-size: 18px;
-		text-align: center;
-		width: calc(100% - 130px - 200px);
-	}
+.title .label {
+    font-size: 18px;
+    text-align: center;
+    width: calc(100% - 130px - 200px);
+}
 
-	.user {
-		width: 200px;
-		height: 100%;
-		display: flex;
-		align-items: center;
-		justify-content: right;
-		color: #000;
-	}
+.user {
+    width: 200px;
+    height: 100%;
+    display: flex;
+    align-items: center;
+    justify-content: right;
+    color: #000;
+}
 
-	.user * {
-		margin: 0 5px;
-	}
+.user * {
+    margin: 0 5px;
+}
 
-	.user img {
-		margin-left: 20px;
-		cursor: pointer;
-		width: 14px;
-	}
+.user img {
+    margin-left: 20px;
+    cursor: pointer;
+    width: 14px;
+}
 
-	.user span {
-		font-size: 14px;
-	}
+.user span {
+    font-size: 14px;
+}
 
-	.left {
-		height: calc(100vh - 58px - 40px);
-		background-color: #004ea2;
-		display: flex;
-		align-items: center;
-		flex-direction: column;
-		padding: 20px 0;
-		transition: 0.3s;
-		overflow-y: auto;
-	}
+.left {
+    height: calc(100vh - 58px - 40px);
+    background-color: #004ea2;
+    display: flex;
+    align-items: center;
+    flex-direction: column;
+    padding: 20px 0;
+    transition: 0.3s;
+    overflow-y: auto;
+}
 
-	.left::-webkit-scrollbar {
-		width: 0;
-	}
+.left::-webkit-scrollbar {
+    width: 0;
+}
 
-	.left .box {
-		color: #fff;
-		width: 68px;
-		height: 68px;
-		margin: 8px 0;
-		cursor: pointer;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		flex-direction: column;
-		border-radius: 8px;
-	}
+.left .box {
+    color: #fff;
+    width: 68px;
+    height: 68px;
+    margin: 8px 0;
+    cursor: pointer;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    flex-direction: column;
+    border-radius: 8px;
+}
 
-	.left .box:active {
-		opacity: 0.8;
-	}
+.left .box:active {
+    opacity: 0.8;
+}
 
-	.left .active_box {
-		background-color: #fff;
-		color: #004ea2;
-	}
+.left .active_box {
+    background-color: #fff;
+    color: #004ea2;
+}
 
-	.left .box i {
-		font-size: 24px;
-		margin-bottom: 8px;
-	}
+.left .box i {
+    font-size: 24px;
+    margin-bottom: 8px;
+}
 
-	.left .box div {
-		font-size: 14px;
-	}
+.left .box div {
+    font-size: 14px;
+}
 
-	.small_menu {
-		color: #666;
-	}
+.small_menu {
+    color: #666;
+}
 
-	.small_menu .active_p {
-		color: #004ea2;
-	}
+.small_menu .active_p {
+    color: #004ea2;
+}
 
-	.small_menu p {
-		padding: 12px 15px;
-		cursor: pointer;
-	}
+.small_menu p {
+    padding: 12px 15px;
+    cursor: pointer;
+}
 
-	.small_menu p:hover {
-		background-color: rgba(0, 0, 0, 0.05);
-	}
+.small_menu p:hover {
+    background-color: rgba(0, 0, 0, 0.05);
+}
 
-	.small_menu i {
-		font-size: 16px;
-	}
+.small_menu i {
+    font-size: 16px;
+}
 
-	.small_menu span {
-		font-size: 14px;
-	}
+.small_menu span {
+    font-size: 14px;
+}
 
-	.right {
-		height: calc(100vh - 58px);
-		transition: 0.3s;
-	}
+.right {
+    height: calc(100vh - 58px);
+    transition: 0.3s;
+}
 
-	.tag {
-		width: 100%;
-		height: 36px;
-		background: rgb(255, 255, 255);
-		opacity: 0.8;
-		box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.1);
-		display: flex;
-		align-items: center;
-		color: #999;
-		font-size: 14px;
-	}
+.tag {
+    width: 100%;
+    height: 36px;
+    background: rgb(255, 255, 255);
+    opacity: 0.8;
+    box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.1);
+    display: flex;
+    align-items: center;
+    color: #999;
+    font-size: 14px;
+}
 
-	.tag .el-icon-delete {
-		display: none;
-	}
+.tag .el-icon-delete {
+    display: none;
+}
 
-	.tag .el-icon-delete:hover {
-		color: #F56C6C;
-	}
+.tag .el-icon-delete:hover {
+    color: #F56C6C;
+}
 
-	.tag:hover .el-icon-delete {
-		display: block;
-	}
+.tag:hover .el-icon-delete {
+    display: block;
+}
 
-	.tag>.el-icon-s-unfold,
-	.el-icon-s-fold,
-	.el-icon-delete {
-		font-size: 18px;
-		cursor: pointer;
-		margin: 0 8px;
-	}
+.tag>.el-icon-s-unfold,
+.el-icon-s-fold,
+.el-icon-delete {
+    font-size: 18px;
+    cursor: pointer;
+    margin: 0 8px;
+}
 
-	.tabs {
-		min-width: calc(100% - 68px);
-		height: 100%;
-		align-items: center;
-		display: flex;
-		overflow-x: auto;
-	}
+.tabs {
+    min-width: calc(100% - 68px);
+    height: 100%;
+    align-items: center;
+    display: flex;
+    overflow-x: auto;
+}
 
-	.tab {
-		cursor: pointer;
-		font-size: 14px;
-		margin: 0 8px;
-		line-height: 32px;
-		transition: 0.3s;
-		border-top: 2px solid transparent;
-		border-bottom: 2px solid transparent;
-		user-select: none;
-		flex-shrink: 0;
-	}
+.tab {
+    cursor: pointer;
+    font-size: 14px;
+    margin: 0 8px;
+    line-height: 32px;
+    transition: 0.3s;
+    border-top: 2px solid transparent;
+    border-bottom: 2px solid transparent;
+    user-select: none;
+    flex-shrink: 0;
+}
 
-	.tab i {
-		font-size: 12px;
-		display: none;
-	}
+.tab i {
+    font-size: 12px;
+    display: none;
+}
 
-	.active_tab {
-		border-bottom: 2px solid #004ea2;
-		color: #004ea2;
-	}
+.active_tab {
+    border-bottom: 2px solid #004ea2;
+    color: #004ea2;
+}
 
-	.active_tab i {
-		display: inline;
-		color: #004ea2;
-	}
+.active_tab i {
+    display: inline;
+    color: #004ea2;
+}
 
-	.component_view {
-		height: calc(100vh - 94px - 22px);
-		width: calc(100% - 48px);
-		padding: 11px 24px;
-		background: rgb(245, 247, 251);
-		overflow-y: auto;
-	}
+.component_view {
+    height: calc(100vh - 94px - 22px);
+    width: calc(100% - 48px);
+    padding: 11px 24px;
+    background: rgb(245, 247, 251);
+    overflow-y: auto;
+}
 
-	.com_index {
-		width: 100%;
-		height: 100%;
-	}
+.com_index {
+    width: 100%;
+    height: 100%;
+}
 </style>
 <template>
-	<div class="all">
-		<div class="title">
-			<div class="logo">
-				<img src="../../static/img/logo 1.png" />
-			</div>
-			<div class="label">涓ぉ娴锋磱鏂颁竴浠om绯荤粺</div>
-			<div class="user">
-				<el-avatar :size="24">{{ userName.substring(0, 1) }}</el-avatar>
-				<span>{{ userName }}</span>
-				<img src="../../static/img/閫�鍑�.png" @click="out" />
-			</div>
-		</div>
-		<div class="left" :style="`width: ${leftOpen ? '92' : '0'}px;`">
-			<div :class="`box ${activeBox == 0 ? 'active_box' : ''}`" @click="addTab(menu[0].c[0])">
-				<i class="font icon-shouye"></i>
-				<div>棣栭〉</div>
-			</div>
-			<div :class="`box ${activeBox == 3 ? 'active_box' : ''}`" @click="addTab(menu[1].c[0])">
-				<i class="font icon-jine"></i>
-				<div>閿�鍞鐞�</div>
-			</div>
-			<el-popover placement="right-start" width="90" trigger="click" v-for="(a, ai) in menu" :key="ai"
-				v-if="a.k != '0' && a.k != '3'">
-				<div :class="`box ${activeBox == a.k ? 'active_box' : ''}`" @click="activeBox = a.k" slot="reference">
-					<i :class="a.i"></i>
-					<div>{{ a.v }}</div>
-				</div>
-				<div class="small_menu">
-					<p v-for="(b, bi) in a.c" :key="bi" :class="activeP == b.k ? 'active_p' : ''" @click="addTab(b)">
-						<i :class="b.i"></i>
-						<span>{{ b.v }}</span>
-					</p>
-				</div>
-			</el-popover>
-		</div>
-		<div class="right" :style="`width: calc(100% - ${leftOpen ? '92' : '0'}px);`">
-			<div class="tag">
-				<i :class="`${leftOpen ? 'el-icon-s-unfold' : 'el-icon-s-fold'}`" @click="leftOpen = !leftOpen"></i>
-				<div class="tabs">
-					<div :class="`tab ${tabActive == a.k ? 'active_tab' : ''}`" v-for="(a, ai) in tabs" :key="ai"
-						@click="upTabActive(a.k)">
-						{{ a.v }}
-						<i class="el-icon-close" @click="removeTab(ai)" v-if="tabActive != 0"></i>
-					</div>
-				</div>
-				<i class="el-icon-delete" @click="allDel" title="鍒犻櫎鎵�鏈夋爣绛鹃〉"></i>
-			</div>
-			<div class="component_view">
-				<component class="com_index" v-for="(com, index) in tabs" :is="com.u" :key="upIndex + '|' + index"
-					v-show="com.k == tabActive" @removeAllTab="removeAllTab">
-				</component>
-			</div>
-		</div>
-	</div>
+    <div class="all">
+        <div class="title">
+            <div class="logo">
+                <img src="../../static/img/logo 1.png" />
+            </div>
+            <div class="label">涓ぉ娴锋磱鏂颁竴浠om绯荤粺</div>
+            <div class="user">
+                <el-avatar :size="24">{{ userName.substring(0, 1) }}</el-avatar>
+                <span>{{ userName }}</span>
+                <img src="../../static/img/閫�鍑�.png" @click="out" />
+            </div>
+        </div>
+        <div class="left" :style="`width: ${leftOpen ? '92' : '0'}px;`">
+            <div :class="`box ${activeBox == 0 ? 'active_box' : ''}`" @click="addTab(menu[0].c[0])">
+                <i class="font icon-shouye"></i>
+                <div>棣栭〉</div>
+            </div>
+            <div :class="`box ${activeBox == 3 ? 'active_box' : ''}`" @click="addTab(menu[1].c[0])">
+                <i class="font icon-jine"></i>
+                <div>閿�鍞鐞�</div>
+            </div>
+            <el-popover placement="right-start" width="90" trigger="click" v-for="(a, ai) in menu" :key="ai"
+                v-if="a.k != '0' && a.k != '3'">
+                <div :class="`box ${activeBox == a.k ? 'active_box' : ''}`" @click="activeBox = a.k" slot="reference">
+                    <i :class="a.i"></i>
+                    <div>{{ a.v }}</div>
+                </div>
+                <div class="small_menu">
+                    <p v-for="(b, bi) in a.c" :key="bi" :class="activeP == b.k ? 'active_p' : ''" @click="addTab(b)">
+                        <i :class="b.i"></i>
+                        <span>{{ b.v }}</span>
+                    </p>
+                </div>
+            </el-popover>
+        </div>
+        <div class="right" :style="`width: calc(100% - ${leftOpen ? '92' : '0'}px);`">
+            <div class="tag">
+                <i :class="`${leftOpen ? 'el-icon-s-unfold' : 'el-icon-s-fold'}`" @click="leftOpen = !leftOpen"></i>
+                <div class="tabs">
+                    <div :class="`tab ${tabActive == a.k ? 'active_tab' : ''}`" v-for="(a, ai) in tabs" :key="ai"
+                        @click="upTabActive(a.k)">
+                        {{ a.v }}
+                        <i class="el-icon-close" @click="removeTab(ai)" v-if="tabActive != 0"></i>
+                    </div>
+                </div>
+                <i class="el-icon-delete" @click="allDel" title="鍒犻櫎鎵�鏈夋爣绛鹃〉"></i>
+            </div>
+            <div class="component_view">
+                <component class="com_index" v-for="(com, index) in tabs" :is="com.u" :key="upIndex + '|' + index"
+                    v-show="com.k == tabActive" @removeAllTab="removeAllTab">
+                </component>
+            </div>
+        </div>
+    </div>
 </template>
 
 <script>
-	const requireComponent = require.context("../components/view", false, /\.vue/);
-	var comObj = {};
-	requireComponent.keys().forEach(fileName => {
-		var names = fileName
-			.split("/")
-			.pop()
-			.replace(".vue", "");
-		const componentConfig = requireComponent(fileName);
-		comObj[names] = componentConfig.default || componentConfig;
-	});
-	export default {
-		components: comObj,
-		data() {
-			return {
-				userName: "value",
-				leftOpen: true,
-				menu: [{
-						k: 0,
-						v: "棣栭〉",
-						i: "font icon-shouye",
-						c: [{
-							k: 0,
-							v: "棣栭〉",
-							i: "font icon-shouye",
-							u: "index-index"
-						}]
-					},
-					{
-						k: 3,
-						v: "閿�鍞鐞�",
-						i: "font icon-jine",
-						c: [{
-							k: 11,
-							v: "閿�鍞鐞�",
-							i: "font icon-jine",
-							u: "sale"
-						}]
-					},
-					{
-						k: 1,
-						v: "鎶�鏈鐞�",
-						i: "font icon-ic_form_set24px",
-						c: [{
-								k: 1,
-								v: "鏍囧噯BOM",
-								i: "font icon-shouye",
-								u: "standard"
-							},
-							{
-								k: 2,
-								v: "璁㈠崟BOM",
-								i: "font icon-shouye",
-								u: "technical"
-							}
-						]
-					},
-					{
-						k: 4,
-						v: "鐢熶骇绠$悊",
-						i: "font icon-shengchanguanli",
-						c: [{
-								k: 12,
-								v: "鐢熶骇璁㈠崟",
-								i: "font icon-shouye",
-								u: ""
-							},
-							{
-								k: 13,
-								v: "鐢熶骇璁″垝",
-								i: "font icon-shouye",
-								u: ""
-							},
-							{
-								k: 14,
-								v: "鐢熶骇鎶ュ伐",
-								i: "font icon-shouye",
-								u: ""
-							}
-						]
-					},
-					{
-						k: 5,
-						v: "WMS绠$悊",
-						i: "font icon-a-Inventorydumprequest",
-						c: [{
-								k: 17,
-								v: "鍗婃垚鍝佸簱瀛�",
-								i: "font icon-shouye",
-								u: ""
-							},
-							{
-								k: 18,
-								v: "鎴愬搧搴撳瓨",
-								i: "font icon-shouye",
-								u: ""
-							},
-							{
-								k: 19,
-								v: "鎴愬搧鍙戣揣",
-								i: "font icon-shouye",
-								u: ""
-							},
-							{
-								k: 20,
-								v: "鎴愬搧鍏ュ簱",
-								i: "font icon-shouye",
-								u: ""
-							}
-						]
-					},
-					{
-						k: 2,
-						v: "QMS绠$悊",
-						i: "font icon-xunhuan",
-						c: [{
-								k: 3,
-								v: "鍘熸潗鏂欐楠�",
-								i: "font icon-shouye",
-								u: "rawInsBox"
-							},
-							{
-								k: 4,
-								v: "鍘熸潗鏂欎笉鍚堟牸鍝�",
-								i: "font icon-shouye",
-								u: "rawUnqualifiedBox"
-							},
-							{
-								k: 5,
-								v: "杩囩▼妫�楠�",
-								i: "font icon-shouye",
-								u: "processInspection"
-							},
-							{
-								k: 6,
-								v: "浜у搧妫�楠�",
-								i: "font icon-shouye",
-								u: "finishedProductInspection"
-							},
-							{
-								k: 7,
-								v: "涓嶅悎鏍煎搧绠$悊",
-								i: "font icon-shouye",
-								u: "unqualifiedManagement"
-							},
-							{
-								k: 9,
-								v: "璐ㄩ噺缁熻",
-								i: "font icon-shouye",
-								u: ""
-							},
-							{
-								k: 10,
-								v: "璁¢噺绠$悊",
-								i: "font icon-shouye",
-								u: "measurementManagement"
-							},
-							{
-								k: 10.1,
-								v: "涓嶅悎鏍煎搧澶勭疆",
-								i: "font icon-shouye",
-								u: "Processingproducts"
-							}
-						]
-					},
-					{
-						k: 6,
-						v: "鏍哥畻绠$悊",
-						i: "font icon-caiwuhesuanxitong",
-						c: [{
-								k: 21,
-								v: "浜ч噺宸ヨ祫",
-								i: "font icon-shouye",
-								u: ""
-							},
-							{
-								k: 22,
-								v: "鍛樺伐鍑哄嫟",
-								i: "font icon-shouye",
-								u: ""
-							}
-						]
-					},
-					{
-						k: 7,
-						v: "鍩虹鏁版嵁",
-						i: "font icon-a-ziyuan20",
-						c: [{
-								k: 23,
-								v: "鐢熶骇璁板綍缁存姢",
-								i: "font icon-shouye",
-								u: "record-content"
-							},
-							{
-								k: 25,
-								v: "鎶�鏈寚鏍囩淮鎶�",
-								i: "font icon-shouye",
-								u: "Technicalindex"
-							},
-							{
-								k: 26,
-								v: "宸ヨ壓璺嚎缁存姢",
-								i: "font icon-shouye",
-								u: "technology"
-							},
-							{
-								k: 27,
-								v: "璁惧缁存姢",
-								i: "font icon-shouye",
-								u: "laboratoryManagement"
-							},
-							{
-								k: 28,
-								v: "鐗╂枡娓呭崟缁存姢",
-								i: "font icon-shouye",
-								u: "mbom"
-							}
-						]
-					}
-				],
-				activeBox: 0,
-				activeP: 0,
-				tabActive: 0,
-				tabs: [{
-					k: 0,
-					v: "棣栭〉",
-					i: "font icon-shouye",
-					u: "index-index"
-				}],
-				upIndex: 0
-			};
-		},
-		created() {},
-		mounted() {
-			this.userName = JSON.parse(localStorage.getItem("user")).name;
-		},
-		methods: {
-			addTab(ob) {
-				if (ob.k == 0) this.activeBox = 0;
-				if (ob.k == 11) this.activeBox = 3;
-				this.activeP = ob.k; //0
-				this.tabActive = ob.k; //0
-				let num = -1;
-				this.tabs.forEach((a, ai) => {
-					if (ob.k == a.k) {
-						num = a.k;
-					}
-				});
-				// 濡傛灉娌℃湁閬嶅巻鍒皌abs閲屾病鏈夎ob瀵瑰簲鐨則able锛屽線tabs閲岄潰鍔犲叆璇b
-				if (num == -1) {
-					this.tabs.push(ob);
-				}
-			},
-			removeTab(index) {
-				this.tabs.splice(index, 1);
-				this.activeP = this.tabs[this.tabs.length - 1].k;
-				this.tabActive = this.tabs[this.tabs.length - 1].k;
-			},
-			allDel() {
-				this.activeBox = 0
-				this.activeP = 0
-				this.tabActive = 0
-				this.tabs = [{
-					k: 0,
-					v: " 棣栭〉",
-					i: "font icon-shouye",
-					u: "index-index"
-				}]
-			},
+const requireComponent = require.context("../components/view", false, /\.vue/);
+var comObj = {};
+requireComponent.keys().forEach(fileName => {
+    var names = fileName
+        .split("/")
+        .pop()
+        .replace(".vue", "");
+    const componentConfig = requireComponent(fileName);
+    comObj[names] = componentConfig.default || componentConfig;
+});
+export default {
+    components: comObj,
+    data() {
+        return {
+            userName: "value",
+            leftOpen: true,
+            menu: [{
+                k: 0,
+                v: "棣栭〉",
+                i: "font icon-shouye",
+                c: [{
+                    k: 0,
+                    v: "棣栭〉",
+                    i: "font icon-shouye",
+                    u: "index-index"
+                }]
+            },
+            {
+                k: 3,
+                v: "閿�鍞鐞�",
+                i: "font icon-jine",
+                c: [{
+                    k: 11,
+                    v: "閿�鍞鐞�",
+                    i: "font icon-jine",
+                    u: "sale"
+                }]
+            },
+            {
+                k: 1,
+                v: "鎶�鏈鐞�",
+                i: "font icon-ic_form_set24px",
+                c: [{
+                    k: 1,
+                    v: "鏍囧噯BOM",
+                    i: "font icon-shouye",
+                    u: "standard"
+                },
+                {
+                    k: 2,
+                    v: "璁㈠崟BOM",
+                    i: "font icon-shouye",
+                    u: "technical"
+                }
+                ]
+            },
+            {
+                k: 4,
+                v: "鐢熶骇绠$悊",
+                i: "font icon-shengchanguanli",
+                c: [{
+                    k: 12,
+                    v: "鐢熶骇璁㈠崟",
+                    i: "font icon-shouye",
+                    u: ""
+                },
+                {
+                    k: 13,
+                    v: "鐢熶骇璁″垝",
+                    i: "font icon-shouye",
+                    u: ""
+                },
+                {
+                    k: 14,
+                    v: "鐢熶骇鎶ュ伐",
+                    i: "font icon-shouye",
+                    u: ""
+                }
+                ]
+            },
+            {
+                k: 5,
+                v: "WMS绠$悊",
+                i: "font icon-a-Inventorydumprequest",
+                c: [{
+                    k: 17,
+                    v: "鍗婃垚鍝佸簱瀛�",
+                    i: "font icon-shouye",
+                    u: ""
+                },
+                {
+                    k: 18,
+                    v: "鎴愬搧搴撳瓨",
+                    i: "font icon-shouye",
+                    u: ""
+                },
+                {
+                    k: 19,
+                    v: "鎴愬搧鍙戣揣",
+                    i: "font icon-shouye",
+                    u: ""
+                },
+                {
+                    k: 20,
+                    v: "鎴愬搧鍏ュ簱",
+                    i: "font icon-shouye",
+                    u: ""
+                }
+                ]
+            },
+            {
+                k: 2,
+                v: "QMS绠$悊",
+                i: "font icon-xunhuan",
+                c: [{
+                    k: 3,
+                    v: "鍘熸潗鏂欐楠�",
+                    i: "font icon-shouye",
+                    u: "rawInsBox"
+                },
+                {
+                    k: 5,
+                    v: "杩囩▼妫�楠�",
+                    i: "font icon-shouye",
+                    u: "processInspection"
+                },
+                {
+                    k: 6,
+                    v: "浜у搧妫�楠�",
+                    i: "font icon-shouye",
+                    u: "finishedProductInspection"
+                },
+                {
+                    k: 7,
+                    v: "涓嶅悎鏍煎搧绠$悊",
+                    i: "font icon-shouye",
+                    u: "unqualifiedManagement"
+                },
+                {
+                    k: 9,
+                    v: "璐ㄩ噺缁熻",
+                    i: "font icon-shouye",
+                    u: ""
+                },
+                {
+                    k: 10,
+                    v: "璁¢噺绠$悊",
+                    i: "font icon-shouye",
+                    u: "measurementManagement"
+                },
+                {
+                    k: 10.1,
+                    v: "涓嶅悎鏍煎搧澶勭疆",
+                    i: "font icon-shouye",
+                    u: "Processingproducts"
+                }
+                ]
+            },
+            {
+                k: 6,
+                v: "鏍哥畻绠$悊",
+                i: "font icon-caiwuhesuanxitong",
+                c: [{
+                    k: 21,
+                    v: "浜ч噺宸ヨ祫",
+                    i: "font icon-shouye",
+                    u: ""
+                },
+                {
+                    k: 22,
+                    v: "鍛樺伐鍑哄嫟",
+                    i: "font icon-shouye",
+                    u: ""
+                }
+                ]
+            },
+            {
+                k: 7,
+                v: "鍩虹鏁版嵁",
+                i: "font icon-a-ziyuan20",
+                c: [{
+                    k: 23,
+                    v: "鐢熶骇璁板綍缁存姢",
+                    i: "font icon-shouye",
+                    u: "record-content"
+                },
+                {
+                    k: 25,
+                    v: "鎶�鏈寚鏍囩淮鎶�",
+                    i: "font icon-shouye",
+                    u: "Technicalindex"
+                },
+                {
+                    k: 26,
+                    v: "宸ヨ壓璺嚎缁存姢",
+                    i: "font icon-shouye",
+                    u: "technology"
+                },
+                {
+                    k: 27,
+                    v: "璁惧缁存姢",
+                    i: "font icon-shouye",
+                    u: "laboratoryManagement"
+                },
+                {
+                    k: 28,
+                    v: "鐗╂枡娓呭崟缁存姢",
+                    i: "font icon-shouye",
+                    u: "mbom"
+                }
+                ]
+            }
+            ],
+            activeBox: 0,
+            activeP: 0,
+            tabActive: 0,
+            tabs: [{
+                k: 0,
+                v: "棣栭〉",
+                i: "font icon-shouye",
+                u: "index-index"
+            }],
+            upIndex: 0
+        };
+    },
+    created() { },
+    mounted() {
+        this.userName = JSON.parse(localStorage.getItem("user")).name;
+    },
+    methods: {
+        addTab(ob) {
+            if (ob.k == 0) this.activeBox = 0;
+            if (ob.k == 11) this.activeBox = 3;
+            this.activeP = ob.k; //0
+            this.tabActive = ob.k; //0
+            let num = -1;
+            this.tabs.forEach((a, ai) => {
+                if (ob.k == a.k) {
+                    num = a.k;
+                }
+            });
+            // 濡傛灉娌℃湁閬嶅巻鍒皌abs閲屾病鏈夎ob瀵瑰簲鐨則able锛屽線tabs閲岄潰鍔犲叆璇b
+            if (num == -1) {
+                this.tabs.push(ob);
+            }
+        },
+        removeTab(index) {
+            this.tabs.splice(index, 1);
+            this.activeP = this.tabs[this.tabs.length - 1].k;
+            this.tabActive = this.tabs[this.tabs.length - 1].k;
+        },
+        allDel() {
+            this.activeBox = 0
+            this.activeP = 0
+            this.tabActive = 0
+            this.tabs = [{
+                k: 0,
+                v: " 棣栭〉",
+                i: "font icon-shouye",
+                u: "index-index"
+            }]
+        },
 
-			upTabActive(num) {
-				this.tabActive = num;
-				this.activeP = num;
-				for (var i = 0; i < this.menu.length; i++) {
-					this.menu[i].c.forEach(b => {
-						if (b.k == num) {
-							this.activeBox = this.menu[i].k;
-							return
-						}
-					})
-				}
-			},
-			out() {
-				sessionStorage.clear();
-				localStorage.removeItem("autoenter");
-				this.$router.push("/enter");
-			},
-			removeAllTab() {
-				this.upIndex++
-				this.$message.warning('鏁版嵁鍙樺姩杈冨ぇ,椤甸潰鑷姩鏇存柊!')
-			}
-		}
-	};
+        upTabActive(num) {
+            this.tabActive = num;
+            this.activeP = num;
+            for (var i = 0; i < this.menu.length; i++) {
+                this.menu[i].c.forEach(b => {
+                    if (b.k == num) {
+                        this.activeBox = this.menu[i].k;
+                        return
+                    }
+                })
+            }
+        },
+        out() {
+            sessionStorage.clear();
+            localStorage.removeItem("autoenter");
+            this.$router.push("/enter");
+        },
+        removeAllTab() {
+            this.upIndex++
+            this.$message.warning('鏁版嵁鍙樺姩杈冨ぇ,椤甸潰鑷姩鏇存柊!')
+        }
+    }
+};
 </script>
\ No newline at end of file

--
Gitblit v1.9.3