XiaoRuby
2023-09-24 abba64c23543cd806ed8864a9a976408618a5f45
9-24 加班
已修改8个文件
已删除2个文件
2370 ■■■■■ 文件已修改
package-lock.json 1017 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/api/controller.js 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/Processingproducts.vue 289 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/processInspection.vue 455 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/raw-ins.vue 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/rawUnqualified/raw.vue 304 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/rawUnqualifiedBox.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/unqualifiedManagement.vue 194 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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"
      }
src/assets/api/controller.js
@@ -49,22 +49,17 @@
    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" // ç¼–辑意见-->确定按钮
    editDisposalOpinion: "/inspectUnaccepted/editDisposalOpinion", // ç¼–辑处置意见确定按钮
}
// æˆå“æ£€éªŒ
const finishedIns = {
@@ -175,7 +170,6 @@
    ...laboratory,
    ...measure,
    ...finishedIns,
    ...unqualifiedaa,
    ...dispose,
    ...Basicdata,
    ...unRawInspects,
src/components/view/Processingproducts.vue
@@ -3,208 +3,101 @@
    <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-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 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>
                    <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>
                    <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-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-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-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
          >
                    <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-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="产品大类">
                    <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>
                            <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 prop="productName" label="产品名称" min-width="100" show-overflow-tooltip>
          </el-table-column>
          <el-table-column prop="specifications" label="规格型号">
                    <el-table-column prop="specifications" label="规格型号" min-width="100">
          </el-table-column>
          <el-table-column prop="number" label="不合格品数量">
                    <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>
                            <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 label="处置意见" min-width="100">
                        1232
          </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="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
              >
                            <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">
                    <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
                >
                                <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-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-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-row v-if="isShow == true">
            <el-col :span="12">
              <el-form-item label="填写人:" v-if="isShow == true">
                {{ item.name }}
              </el-form-item>
            </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 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>
          <el-divider v-if="item.type != 3"></el-divider>
        </div>
      </el-form>
      <span slot="footer" class="dialog-footer">
@@ -227,12 +120,12 @@
        productCategories: "", // äº§å“å¤§ç±»
        productName: "", // äº§å“åç§°
        specificationModel: "", // è§„格型号
        state: "" // çŠ¶æ€
                state: "", // çŠ¶æ€
      },
      unqualifiedTable: [], // é¡µé¢è¡¨æ ¼æ•°æ®
      total: 0, // æ€»æ¡æ•°
      dialogVisible: false, // æ˜¾ç¤ºå¼¹å‡ºæ¡†
      updateEditList: []
            clickEditOpinion: "", // ç‚¹å‡»ç¼–辑意见临时存储该行数据
    };
  },
  mounted() {
@@ -253,9 +146,9 @@
    getDetailInfo() {
      this.axios
        .get(this.$api.url.getTable, {
          params: this.search
                    params: this.search,
        })
        .then(res => {
                .then((res) => {
          this.unqualifiedTable = res.data.row;
          this.total = res.data.total;
        });
@@ -268,35 +161,14 @@
        productCategories: "", // äº§å“å¤§ç±»
        productName: "", // äº§å“åç§°
        specificationModel: "", // è§„格型号
        state: "" // çŠ¶æ€
                state: "", // çŠ¶æ€
      };
      this.getDetailInfo();
    },
    // ç‚¹å‡»æŸ¥çœ‹å¤„置意见
    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;
        });
            this.clickEditOpinion = scope.row;
    },
    // å¤±åŽ»çŽ°åƒæè¿°ç„¦ç‚¹è§¦å‘
    outOfFocusDescription(scope) {
@@ -304,32 +176,34 @@
        .get(this.$api.url.descriptionUpdate, {
          params: {
            rawUnacceptedId: scope.row.id,
            tell: scope.row.description
          }
                        tell: scope.row.description,
                    },
        })
        .then(res => {
                .then((res) => {
          this.$message({
            message: res.message,
            type: "success"
                        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);
            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.getDetailInfo();
                    this.$message({
                        message: res.message,
                        type: "success",
        });
    }
                });
        },
  },
  watch: {
    dialogVisible: {
@@ -337,9 +211,9 @@
        if (newVal == false) {
          this.isShow = false;
        }
      }
    }
  }
            },
        },
    },
};
</script>
@@ -347,47 +221,50 @@
.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);
}
.choose {
  font-size: 14px;
}
@@ -397,13 +274,11 @@
  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;
}
src/components/view/processInspection.vue
@@ -5,8 +5,7 @@
        <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 @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>
@@ -19,18 +18,15 @@
          <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>
                <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-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="{
                    <el-table ref="inspectionTable" height="calc(100vh - 290px)" :cell-style="{ textAlign: 'center' }" :header-cell-style="{
              border: '0px',
              background: '#f5f7fa',
              color: '#606266',
@@ -39,37 +35,34 @@
            }" 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">
                        <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="80">
                        <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>
                                <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" />
                    <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>
@@ -82,24 +75,20 @@
            <!-- ç‚¹å‡»è¿”回,当前页面值为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-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">
                <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-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-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>
@@ -107,24 +96,20 @@
              </el-col>
              <el-col :span="7">
                <el-form-item label="产品编码:">
                  <el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.materialCode"
                    placeholder="请输入产品编码" />
                                    <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-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-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>
@@ -132,8 +117,7 @@
              <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 v-for="item in optionTechnology" :key="item.id" :label="item.name" :value="item.id + '-' + item.name">
                    </el-option>
                  </el-select>
                </el-form-item>
@@ -142,8 +126,7 @@
            <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-input style="width: 210px;" size="small" disabled v-model="processInspectVo.unit" placeholder="请输入单位" />
                </el-form-item>
              </el-col>
              <el-col :span="7">
@@ -172,21 +155,17 @@
            > -->
          </el-col>
        </el-row>
        <el-table border :data="inspectionItems" max-height="420" :span-method="handleSpanMethod"
          height="calc(100vh - 550px)" style="width: 100%">
                <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;">
                    <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 :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>
@@ -195,8 +174,7 @@
              <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-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>
@@ -245,12 +223,12 @@
</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
        processInspectionLook,
  },
  data() {
    return {
@@ -264,7 +242,7 @@
        pageSize: 1,
        result: "", // æ£€æµ‹çŠ¶æ€
        name: "", // äº§å“åç§°
        techfather: "" // å·¥åº
                techfather: "", // å·¥åº
      },
      optionsSamplename: [],
      inspectionTable: [],
@@ -289,7 +267,7 @@
        techfather: null,
        techname: null,
        technologyId: null,
        unit: null
                unit: null,
      },
      InspectioniD: null,
      addInspectionform: [
@@ -305,9 +283,9 @@
          quantity: "",
          group: "",
          worker: "",
          machine: ""
        }]
      ,
                    machine: "",
                },
            ],
      inspectionItems: [], // æ–°å¢žæ£€éªŒé¡¹ç›®è¡¨æ ¼
      inspectionResultForm: [
        {
@@ -315,8 +293,8 @@
          name: "",
          inspecter: "",
          conclusion: "",
          operation: ""
        }
                    operation: "",
                },
      ],
      options: [],
      value: "",
@@ -330,16 +308,16 @@
      defaultProps: {
        // è®¾å¤‡æ ‘数据设置
        children: "children",
        label: "name"
                label: "name",
      },
      nodeData: {
        id: 0,
        name: null
                name: null,
      }, // node点击保存当前点击数据
      clickSelectDevice: {
        index: null, // ç‚¹å‡»é€‰æ‹©å­˜å‚¨å½“前行索引
        rpId: null // ç‚¹å‡»é€‰æ‹©å­˜å‚¨å½“前行项目Id
      }
                rpId: null, // ç‚¹å‡»é€‰æ‹©å­˜å‚¨å½“前行项目Id
            },
    };
  },
  watch: {
@@ -353,29 +331,29 @@
  },
  methods: {
    handleClick(row) {
      this.rowInfp = row
      this.showLook = true
            this.rowInfp = row;
            this.showLook = true;
    },
    combackIndex() {
      this.showAddPage = false
      this.defaultInitializationTable()
            this.showAddPage = false;
            this.defaultInitializationTable();
    },
    updateInsInfo(row) {
      this.rowInfp = row
      this.showUp = true
            this.rowInfp = row;
            this.showUp = true;
    },
    combackMain(val) {
      this.showUp = false
      this.showLook = false
            this.showUp = false;
            this.showLook = false;
      this.defaultInitializationTable(); // åˆå§‹åŒ–表格数据
      if (val) {
        this.$parent.removeAllTab()
                this.$parent.removeAllTab();
      }
    },
    searchPro() {
      this.search.countSize = this.pageSize
      this.search.pageSize = this.currentPage
      this.defaultInitializationTable()
            this.search.countSize = this.pageSize;
            this.search.pageSize = this.currentPage;
            this.defaultInitializationTable();
    },
    // ç‚¹å‡»è®¾å¤‡æ ‘保存点击记录
    nodeClick(data) {
@@ -388,65 +366,69 @@
    },
    // èŽ·å–è®¾å¤‡æ ‘å†…å®¹
    getOptions(row) {
      this.$axios.get(this.$api.url.inspectionItemChooseDev, {
            this.$axios
                .get(this.$api.url.inspectionItemChooseDev, {
        params: {
          father: row.father,
          name: row.name,
          technologyId: this.processInspectVo.technologyId
        }
      }).then(res => {
                        technologyId: this.processInspectVo.technologyId,
                    },
                })
                .then((res) => {
        this.materialOptions = res.data;
        if (this.materialOptions.length === 1) {
          this.$message({
            message: '该项目下只有一个试验设备,无需选择!',
            type: 'warning'
                            message: "该项目下只有一个试验设备,无需选择!",
                            type: "warning",
          });
          return
                        return;
        }
        row.isSelectDevice = true
        this.filterText = row.did
                    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.$set(
                    this.inspectionItems[this.clickSelectDevice.index],
                    "isSelectDevice",
                    false
                );
      }
      this.clickSelectDevice.index = scope.$index;
      this.clickSelectDevice.rpId = scope.row.id;
      this.getOptions(scope.row)
            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
            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.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
                        devId: this.nodeData.id,
          })
          .then(res => {
            this.getTableData()
                    .then((res) => {
                        this.getTableData();
            this.centerDialogVisible = false;
          });
      }
    },
    changeState(row, index) {
      if (row.did != null && row.did != '') {
            if (row.did != null && row.did != "") {
        // let val = row.empiricalValueAddss.filter(item => {
        //   return item != '' && item != null
        // })
@@ -460,34 +442,44 @@
        //   });
        //   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
                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, {
                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 === '内控值输入格式有问题!') {
                            inspectionValue: str.slice(0, -1),
                        },
                        {
                            headers: { "Content-Type": "application/json" },
                        }
                    )
                    .then((res) => {
                        if (res.message === "内控值输入格式有问题!") {
            this.$message({
              message: res.message,
              type: 'warning'
                                type: "warning",
            });
            return
                            return;
          }
          row.result = res.data.result
          row.username = res.data.username
        })
                        row.result = res.data.result;
                        row.username = res.data.username;
                    });
      } else {
        this.$message({
          message: '请选择择设备!',
          type: 'warning'
                    message: "请选择择设备!",
                    type: "warning",
        });
      }
    },
@@ -502,29 +494,32 @@
        const _col = _row > 0 ? 1 : 0;
        return {
          rowspan: _row,
          colspan: _col
        }
                    colspan: _col,
                };
      }
      if (columnIndex === 1) {
        const _row = this.spanArr[rowIndex];
        const _col = _row > 0 ? 1 : 0;
        return {
          rowspan: _row,
          colspan: _col
        }
                    colspan: _col,
                };
      }
    },
    // åˆå¹¶è¡¨æ ¼
    mergeTable() {
      this.rowList = []
      this.spanArr = []
      this.position = 0
            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) {
                    if (
                        this.inspectionItems[index].father ===
                        this.inspectionItems[index - 1].father
                    ) {
            this.spanArr[this.position] += 1;
            this.spanArr.push(0);
          } else {
@@ -532,21 +527,24 @@
            this.position = index;
          }
        }
      })
            });
    },
    changeOptionSoptionSprocesses() {
      this.optionTechnology = []
      let working = this.optionSoptionSprocesses.filter(item => {
        return item.name === this.processInspectVo.techfather
      })[0]
      this.optionTechnology = working.children
            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, {
            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,
@@ -556,58 +554,73 @@
        techname: val.techname,
        techId: Number(val.technologyId),
        mtId: Number(val.technologyId),
        unit: val.unit
      }, {
        headers: { "Content-Type": "application/json" }
      }).then(res => {
                        unit: val.unit,
                    },
                    {
                        headers: { "Content-Type": "application/json" },
                    }
                )
                .then((res) => {
        if (res.code === 201) {
          this.$message({
            message: res.message,
            type: 'warning'
                            type: "warning",
          });
          return
                        return;
        }
        this.isAddProject = true
        this.detailId = res.data
        this.inspectionResultForm[0].id = val.materialCode
        this.inspectionResultForm[0].name = val.material
        this.getTableData()
      })
                    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, {
            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 = []
                        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(",");
                    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("")
                                c.empiricalValueAddss.push("");
            }
            uName.push(c['username'])
            c.isSelectDevice = false
            arr.push(c)
          })
        })
        this.inspectionItems = arr
        let arrSort = JSON.parse(JSON.stringify(arr))
                            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) {
                        if (
                            a.empiricalValueAddss.length <
                            b.empiricalValueAddss.length
                        ) {
            return -1; // a排在b前面
          } else if (a.empiricalValueAddss.length > b.empiricalValueAddss.length) {
                        } else if (
                            a.empiricalValueAddss.length >
                            b.empiricalValueAddss.length
                        ) {
            return 1; // a排在b后面
          } else {
            return 0; // ä¿æŒç›¸å¯¹é¡ºåºä¸å˜
@@ -615,44 +628,49 @@
        });
        // 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)
      })
                    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
            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, {
            this.$axios
                .get(this.$api.url.chooseMaterProcessInspect, {
        params: {
          orderNumber: this.processInspectVo.orderNumber
        }
      }).then(res => {
                        orderNumber: this.processInspectVo.orderNumber,
                    },
                })
                .then((res) => {
        if (res.data.length > 0) {
          console.log(res.data);
          this.optionsSamplename = res.data
                        this.optionsSamplename = res.data;
        } else {
          this.$message({
            message: '没有该订单号!',
            type: 'warning'
                            message: "没有该订单号!",
                            type: "warning",
          });
        }
      })
                });
    },
    // å½“前页改变时触发 è·³è½¬å…¶ä»–页
    handleCurrentChange(val) {
@@ -668,7 +686,7 @@
    defaultInitializationTable() {
      this.$axios
        .post(this.$api.url.selectProcessInspectsList, this.search)
        .then(res => {
                .then((res) => {
          this.inspectionTableTotal = res.data.total;
          this.inspectionTable = res.data.row;
        });
@@ -684,7 +702,7 @@
        techfather: "",
        techname: "",
        technologyId: 0,
        unit: ""
                unit: "",
      };
      this.inspectionItems.push(obj);
    },
@@ -696,9 +714,12 @@
    clickDeleteInspectionColumn() {
      if (this.empiricalValueAdd - 1 === 0) {
      } else {
        if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) {
                if (
                    this.empiricalValueAddMaxNumber !=
                    this.empiricalValueAdd - 1
                ) {
          this.empiricalValueAdd = this.empiricalValueAdd - 1;
          this.inspectionItems.forEach(i => {
                    this.inspectionItems.forEach((i) => {
            i.testValueList.splice(this.empiricalValueAdd, 1);
          });
        }
@@ -707,11 +728,11 @@
    // æ·»åŠ æ£€éªŒå€¼åˆ—
    clickAddInspectionColumn() {
      this.empiricalValueAdd = this.empiricalValueAdd + 1;
    }
        },
  },
  created() {
    this.defaultInitializationTable(); // åˆå§‹åŒ–表格数据
  }
    },
};
</script>
@@ -745,6 +766,10 @@
  overflow: hidden;
}
.rawPage span {
    white-space: nowrap;
}
.inspectionTable {
  padding: 20px 20px;
}
src/components/view/raw-ins.vue
@@ -34,6 +34,11 @@
        padding: 0 12px;
    }
.choose span {
    /* span内容强制不换行 */
    white-space: nowrap;
}
    .thing {
        width: calc(100% - 44px);
        height: calc(100% - 42px - 82px - 66px);
@@ -82,19 +87,16 @@
            <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 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>
            <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>
            <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>
@@ -102,42 +104,37 @@
                <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-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>
            <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 :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="来料日期"> </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 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="单位"> </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">
                <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="合格状态" width="100">
                <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="操作" width="100">
                <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>
@@ -145,9 +142,7 @@
                </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 @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>
@@ -164,11 +159,11 @@
                    insState: "", // æ£€æµ‹çŠ¶æ€
                    name: "", //
                    countSize: 10, // æ¡æ•°/页
                    pageSize: 1 // é¡µæ•°
                pageSize: 1, // é¡µæ•°
                },
                total: 0,
                tableData: [],
                selects: []
            selects: [],
            };
        },
        props: ["goDetail"],
@@ -190,9 +185,9 @@
            selectRawInspectsList() {
                this.$axios
                    .get(this.$api.url.selectRawInspectsList, {
                        params: this.search
                    params: this.search,
                    })
                    .then(res => {
                .then((res) => {
                        this.tableData = res.data.row;
                        this.total = res.data.total;
                    });
@@ -204,18 +199,16 @@
                    insState: "", // æ£€æµ‹çŠ¶æ€
                    name: "", //
                    countSize: 10, // æ¡æ•°/页
                    pageSize: 1 // é¡µæ•°
                pageSize: 1, // é¡µæ•°
                };
                this.selectRawInspectsList();
            },
            changeShowDetail({
                id
            }) {
        changeShowDetail({ id }) {
                this.goDetail(id);
                // console.log(id)
                // const res = await this.$axios.post(this.$api.url.selectRawInspectsListById,{params:{id}})
                // console.log(res)
            }
        }
        },
    },
    };
</script>
src/components/view/rawUnqualified/raw.vue
ÎļþÒÑɾ³ý
src/components/view/rawUnqualifiedBox.vue
ÎļþÒÑɾ³ý
src/components/view/unqualifiedManagement.vue
@@ -3,184 +3,94 @@
    <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-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;">
            <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: 224px;margin-right: 30px;"
          >
                    <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: 224px;margin-right: 30px;"
            clearable
            value-format="yyyy-MM-dd"
          ></el-date-picker>
                    <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: 224px;margin-right: 30px;"
          >
                    <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="
                    <el-button size="mini" type="primary" style="background: #004EA2;" @click="
              unqualifiedTable = [];
              getDetailInfo();
            "
            ><span>查 è¯¢</span></el-button
          >
                    "><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-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="来料日期">
                    <el-table-column prop="dateArrival" label="来料日期" min-width="110">
          </el-table-column>
          <el-table-column
            prop="reason"
            label="缺陷名称"
            min-width="120"
            show-overflow-tooltip
          >
                    <el-table-column prop="reason" label="缺陷名称" min-width="100" show-overflow-tooltip>
          </el-table-column>
          <el-table-column prop="material_code" label="材料编码">
                    <el-table-column prop="material_code" label="材料编码" min-width="150" show-overflow-tooltip>
          </el-table-column>
          <el-table-column prop="project_name" label="材料名称">
                    <el-table-column prop="project_name" label="材料名称" min-width="150">
          </el-table-column>
          <el-table-column
            prop="specifications_model"
            label="规格型号"
            min-width="120"
          >
                    <el-table-column prop="specifications_model" label="规格型号" min-width="100">
          </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 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="报检人"> </el-table-column>
          <el-table-column prop="processingDate" label="检验日期">
                    <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="处理状态" width="100">
                    <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
              >
                            <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">
                    <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
              >
                            <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">
                    <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}`"
                >
                                <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="
                                        <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="
                                        ">不通过</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
                    >
                                        ">通过</el-button>
                  </div>
                  <el-button
                    slot="reference"
                    type="text"
                    siae="small"
                    size="mini"
                    >评审</el-button
                  >
                                    <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
                >
                                <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-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>
@@ -197,10 +107,10 @@
        pageSize: 1, // èµ·å§‹é¡µ
        formTime: "", // æ¥æ–™æ—¥æœŸ
        productCategories: "", // äº§å“å¤§ç±»
        dealState: "" // å¤„理状态
                dealState: "", // å¤„理状态
      },
      unqualifiedTable: [], // é¡µé¢è¡¨æ ¼æ•°æ®
      total: 0
            total: 0,
    };
  },
  mounted() {
@@ -218,9 +128,9 @@
    getDetailInfo() {
      this.axios
        .get(this.$api.url.inspectUnaccepted, {
          params: this.search
                    params: this.search,
        })
        .then(res => {
                .then((res) => {
          this.unqualifiedTable = res.data.row;
          this.total = res.data.total;
        });
@@ -230,7 +140,7 @@
        countSize: 10, // æ¡æ•°/页
        pageSize: 1, // èµ·å§‹é¡µ
        formTime: "", // æ¥æ–™æ—¥æœŸ
        dealState: "" // å¤„理状态
                dealState: "", // å¤„理状态
      };
      this.getDetailInfo();
    },
@@ -238,15 +148,15 @@
      this.$axios
        .post(this.$api.url.evaluatePassOrNo, {
          rawId: row.id,
          passOrNo: passOrNo
                    passOrNo: passOrNo,
        })
        .then(res => {
                .then((res) => {
          this.unqualifiedTable = [];
          this.getDetailInfo();
          this.$parent.removeAllTab()
                    this.$parent.removeAllTab();
        });
    }
  }
        },
    },
};
</script>
@@ -258,19 +168,20 @@
  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;
@@ -287,13 +198,20 @@
  box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
  padding: 0 12px;
}
<!-- /* ä¸åˆæ ¼è¡¨æ ¼æ ·å¼ */
.choose span {
    /* span内容强制不换行 */
    white-space: nowrap;
}
/* ä¸åˆæ ¼è¡¨æ ¼æ ·å¼ */
  .unqualifiedTable {
  flex: 1;
  background: #fff;
  margin-top: 11px;
  padding: 23px 21px;
}
.tableno {
  margin-top: 10px;
}
src/main.js
@@ -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/'
src/view/index.vue
@@ -388,12 +388,6 @@
                                u: "rawInsBox"
                            },
                            {
                                k: 4,
                                v: "原材料不合格品",
                                i: "font icon-shouye",
                                u: "rawUnqualifiedBox"
                            },
                            {
                                k: 5,
                                v: "过程检验",
                                i: "font icon-shouye",