王震
2023-09-25 c0bc2331e9abb2ae003c8dc0ab4524d6101493a1
Merge remote-tracking branch 'origin/master'
已修改7个文件
已删除2个文件
3097 ■■■■■ 文件已修改
package-lock.json 1017 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/api/controller.js 256 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/Processingproducts.vue 639 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/processInspection.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/raw-ins.vue 391 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/rawUnqualified/raw.vue 304 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/rawUnqualifiedBox.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/unqualifiedManagement.vue 458 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | 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
@@ -1,43 +1,43 @@
// æŠ€æœ¯ç®¡ç†-标准Bom
const standard = {
    // æŠ€æœ¯ç®¡ç†-标准Bom
    selectTreeByMaterial: "material/selectTreeByMaterial", //查询物料的树
    selectVersion: "/material/selectVersion", //右侧版本
    selectProductByMaterial: "product/selectTreeByMaterial", //根据物料查询项目表格
    selectTechnologyByMaterial: "technology/select",
    selectAll: "/material/selectAll", //右侧数据
    technologyWrite: "/technology/write", //工艺路线,移开保存生产定额
    writeDevice: "/technology/writeDevice", //工艺路线,选择设备组,移开保存
    productWrite: "/product/write", //技术指标,移开保存内控值和标准值
    chooseFather: "/technology/chooseFather", //获取工序列表
    chooseDevice: "/technology/chooseDevice", //获取设备组列表
    addTechnology: "/technology/add", //添加工艺路线
    leftAddOneTwo: "/material/add", //左侧新增1,2级
    leftAddThree: "/standard/add", //左侧三级新增
    leftAddFour: "/specifications/add", //左侧四级新增
    chooseTechByStandard: "/product/chooseTech", //右上角新增-->技术指标-->选择工序,工艺
    chooseFatherByStandard: "/product/chooseFather", //右上角新增-->技术指标-->选择项目父类
    addProductByStandard: "/product/add", //右上角新增-->技术指标
    addMBomByStandard: "/mbom/add", //右上角新增-->物料清单
    chooseTechByMBom: "/mbom/chooseTech", //右上角新增-->物料清单-->选择工序,工艺
    mBomWrite: "/mbom/write", //物料清单-->数量,移开保存
    chooseTechByProduct: "/technique/chooseTech", //右上角新增-->生产工艺-->选择工序,工艺
    addTechniqueByStandard: "/technique/add", //右上角新增-->生产工艺
    chooseProByProduct: "/technique/choosePro", //右上角新增-->生产工艺-->选择项目(父子),单位
    chooseDevByProduct: "/technique/chooseDev", //右上角新增-->生产工艺-->选择设备
    addVersion: "/material/addVersion", //添加同一个型号工艺路线,技术指标,物料清单,生产工艺的版本
    delAllByTechnology: "/technology/delAllTech", //工艺路线-批量删除
    delAllByTarget: "/product/delAllPro", //技术指标-批量删除
    delAllByMBom: "/mbom/delAllMbom", //物料清单-批量删除
    delAllByProduct: "/technique/delAllTeq", //生产工艺-批量删除
    // æŠ€æœ¯ç®¡ç†-技术文件
    selectAllOrder: "/orders/selectAllOrder", //查询所有订单列表
    selectOrderById: "/orders/selectOrderById", //根据订单id查询订单详情
    // æŠ€æœ¯ç®¡ç†-标准Bom
    selectTreeByMaterial: "material/selectTreeByMaterial", //查询物料的树
    selectVersion: "/material/selectVersion", //右侧版本
    selectProductByMaterial: "product/selectTreeByMaterial", //根据物料查询项目表格
    selectTechnologyByMaterial: "technology/select",
    selectAll: "/material/selectAll", //右侧数据
    technologyWrite: "/technology/write", //工艺路线,移开保存生产定额
    writeDevice: "/technology/writeDevice", //工艺路线,选择设备组,移开保存
    productWrite: "/product/write", //技术指标,移开保存内控值和标准值
    chooseFather: "/technology/chooseFather", //获取工序列表
    chooseDevice: "/technology/chooseDevice", //获取设备组列表
    addTechnology: "/technology/add", //添加工艺路线
    leftAddOneTwo: "/material/add", //左侧新增1,2级
    leftAddThree: "/standard/add", //左侧三级新增
    leftAddFour: "/specifications/add", //左侧四级新增
    chooseTechByStandard: "/product/chooseTech", //右上角新增-->技术指标-->选择工序,工艺
    chooseFatherByStandard: "/product/chooseFather", //右上角新增-->技术指标-->选择项目父类
    addProductByStandard: "/product/add", //右上角新增-->技术指标
    addMBomByStandard: "/mbom/add", //右上角新增-->物料清单
    chooseTechByMBom: "/mbom/chooseTech", //右上角新增-->物料清单-->选择工序,工艺
    mBomWrite: "/mbom/write", //物料清单-->数量,移开保存
    chooseTechByProduct: "/technique/chooseTech", //右上角新增-->生产工艺-->选择工序,工艺
    addTechniqueByStandard: "/technique/add", //右上角新增-->生产工艺
    chooseProByProduct: "/technique/choosePro", //右上角新增-->生产工艺-->选择项目(父子),单位
    chooseDevByProduct: "/technique/chooseDev", //右上角新增-->生产工艺-->选择设备
    addVersion: "/material/addVersion", //添加同一个型号工艺路线,技术指标,物料清单,生产工艺的版本
    delAllByTechnology: "/technology/delAllTech", //工艺路线-批量删除
    delAllByTarget: "/product/delAllPro", //技术指标-批量删除
    delAllByMBom: "/mbom/delAllMbom", //物料清单-批量删除
    delAllByProduct: "/technique/delAllTeq", //生产工艺-批量删除
    // æŠ€æœ¯ç®¡ç†-技术文件
    selectAllOrder: "/orders/selectAllOrder", //查询所有订单列表
    selectOrderById: "/orders/selectOrderById", //根据订单id查询订单详情
    //订单BOM
    delDevice: "/device/delDeviceById", //订单Bom
    compile: "/orders/compile", //编制
    //订单BOM
    delDevice: "/device/delDeviceById", //订单Bom
    compile: "/orders/compile", //编制
}
// åŽŸææ–™æ£€éªŒ
const raw = {
@@ -50,123 +50,118 @@
    updateDevByRpId: "/rawInsProduct/updateDevByRpId", // æ›´æ”¹è®¾å¤‡
    rawInspectChooseIFS: "/rawInspect/chooseIFS",//通过设备编码得到信息
}
//不合格原材料
const unqualifiedaa = {
    selectUnRawInspectsList: "/inspectUnaccepted/selectURawMaterials", // æŸ¥è¯¢åŽŸææ–™ä¸åˆæ ¼å“æ£€éªŒå•åˆ—è¡¨
    evaluatePassOrNo: "/inspectUnaccepted/evaluatePassOrNo" // è¯„审
}
// æŸ¥è¯¢æˆå“ä¸åˆæ ¼å“ç®¡ç†
const unRawInspects = {
    inspectUnaccepted: "/inspectUnaccepted/selectUnRawInspectsList"
    inspectUnaccepted: "/inspectUnaccepted/selectUnRawInspectsList", // æŸ¥è¯¢ä¸åˆæ ¼å“ç®¡ç†æ£€éªŒå•列表
    evaluatePassOrNo: "/inspectUnaccepted/evaluatePassOrNo" // è¯„审
}
//不合格品处置
const dispose = {
    getTable: "/inspectUnaccepted/selectDisposal", // ä¸åˆæ ¼å“åˆ†é¡µåˆ—表
    descriptionUpdate: "/inspectUnaccepted/descriptionUpdate", // å¤±ç„¦æ›´æ–°çŽ°åƒæè¿°
    viewEditorial: "/inspectUnaccepted/viewEditorial", // æŸ¥çœ‹ç¼–辑意见
    clickEditing: "/inspectUnaccepted/clickEditing", // ç‚¹å‡»ç¼–辑意见触发查询
    addOpinion: "/inspectUnaccepted/addOpinion" // ç¼–辑意见-->确定按钮
    getTable: "/inspectUnaccepted/selectDisposal", // ä¸åˆæ ¼å“åˆ†é¡µåˆ—表
    descriptionUpdate: "/inspectUnaccepted/descriptionUpdate", // å¤±ç„¦æ›´æ–°çŽ°åƒæè¿°
    editDisposalOpinion: "/inspectUnaccepted/editDisposalOpinion", // ç¼–辑处置意见确定按钮
}
// æˆå“æ£€éªŒ
const finishedIns = {
    finishedInsListPage: "/finished-inspect/list_page", //获取成品检验列表
    // listMaterial:"/finished-inspect/list_material",//添加检验单时的项目列表
    finishedInspectUser: "/finished-inspect/page_user", //获取所有主机工
    projectListByfinishId: "/inspection-item/list_user", //根据id查询所有项目
    processInspectAddProcess: "/processInspect/addProcess", //新增检验
    inspectionItemListUser: "/inspection-item/list_user", //查询所有检验项目
    finishedInspectChooseMater: "/finished-inspect/chooseMater", //根据订单号得到信息
    finishedInspectAddFinish: "/finished-inspect/addFinish", //新增成品检验
    finishedInspectUpdateFinishInspectsById: "/finished-inspect/updateFinishInspectsById", //上报
    finishedInspectSelectFinishInspectsListById: "/finished-inspect/selectFinishInspectsListById"
    finishedInsListPage: "/finished-inspect/list_page", //获取成品检验列表
    // listMaterial:"/finished-inspect/list_material",//添加检验单时的项目列表
    finishedInspectUser: "/finished-inspect/page_user", //获取所有主机工
    projectListByfinishId: "/inspection-item/list_user", //根据id查询所有项目
    processInspectAddProcess: "/processInspect/addProcess", //新增检验
    inspectionItemListUser: "/inspection-item/list_user", //查询所有检验项目
    finishedInspectChooseMater: "/finished-inspect/chooseMater", //根据订单号得到信息
    finishedInspectAddFinish: "/finished-inspect/addFinish", //新增成品检验
    finishedInspectUpdateFinishInspectsById: "/finished-inspect/updateFinishInspectsById", //上报
    finishedInspectSelectFinishInspectsListById: "/finished-inspect/selectFinishInspectsListById"
}
// è¿‡ç¨‹æ£€éªŒ
const processInspection = {
    selectProcessInspectsList: "/processInspect/selectProcessInspectsList", // åˆ†é¡µæŸ¥è¯¢è¿‡ç¨‹æ£€éªŒå•列表
    chooseMaterProcessInspect: "/processInspect/chooseMater", //根据订单号选择产品和工艺
    inspectionItemUpdateDevByInsId: "/inspection-item/updateDevByInsId", //更改设备
    inspectionItemlose_focus_update: "/inspection-item/lose_focus_update", //检验值
    processInspectUpdateProcessInspectsById: "/processInspect/updateProcessInspectsById", //上报
    inspectionItemChooseDev: "/inspection-item/chooseDev",
    processInspectSelectProcessInspectsListById: "/processInspect/selectProcessInspectsListById"
    selectProcessInspectsList: "/processInspect/selectProcessInspectsList", // åˆ†é¡µæŸ¥è¯¢è¿‡ç¨‹æ£€éªŒå•列表
    chooseMaterProcessInspect: "/processInspect/chooseMater", //根据订单号选择产品和工艺
    inspectionItemUpdateDevByInsId: "/inspection-item/updateDevByInsId", //更改设备
    inspectionItemlose_focus_update: "/inspection-item/lose_focus_update", //检验值
    processInspectUpdateProcessInspectsById: "/processInspect/updateProcessInspectsById", //上报
    inspectionItemChooseDev: "/inspection-item/chooseDev",
    processInspectSelectProcessInspectsListById: "/processInspect/selectProcessInspectsListById"
}
// QMS实验室管理
const laboratory = {
    delDeviceById: "/device/delDeviceById", //删除
    addApi: "/device/add", //新增
    listgroup: "/device/list_group",
    selectDevice: "/device/selectDevice", //右边展示
    addDeviceInspectDownBox: "/device/listInspect", // æ–°å¢žä»ªå™¨è®¾å¤‡ï¼šæ£€éªŒé¡¹ç›®ä¸‹æ‹‰æ¡†
    selectDeviceInspectMessage: "/device/inspectId", // æ–°å¢žä»ªå™¨è®¾å¤‡ï¼šæ ¹æ®æ£€éªŒé¡¹ç›®ID查询数据
    addDeviceKeeper: "/device/list_user", // æ–°å¢žä»ªå™¨è®¾å¤‡ï¼šä¿ç®¡äººä¸‹æ‹‰æ¡†
    addDeviceParentClassification: "/device/parent_classification", // æ–°å¢žä»ªå™¨è®¾å¤‡ï¼šæŸ¥è¯¢çˆ¶çº§åˆ†ç±»
    addDeviceInstrument: "/device/add", // æ–°å¢žä»ªå™¨è®¾å¤‡
    towTree: "/device/two_tree", //二级树
    tableDeviceList: "/device/table_list", // å®žéªŒå®¤æ¨¡å—表格数据
    deleteDevice: "/device/delete", // åˆ é™¤å®žéªŒå®¤è®¾å¤‡
    deleteIdorFather: "/device/deleteIdorFather" // åˆ é™¤æ ‘模块数据
    delDeviceById: "/device/delDeviceById", //删除
    addApi: "/device/add", //新增
    listgroup: "/device/list_group",
    selectDevice: "/device/selectDevice", //右边展示
    addDeviceInspectDownBox: "/device/listInspect", // æ–°å¢žä»ªå™¨è®¾å¤‡ï¼šæ£€éªŒé¡¹ç›®ä¸‹æ‹‰æ¡†
    selectDeviceInspectMessage: "/device/inspectId", // æ–°å¢žä»ªå™¨è®¾å¤‡ï¼šæ ¹æ®æ£€éªŒé¡¹ç›®ID查询数据
    addDeviceKeeper: "/device/list_user", // æ–°å¢žä»ªå™¨è®¾å¤‡ï¼šä¿ç®¡äººä¸‹æ‹‰æ¡†
    addDeviceParentClassification: "/device/parent_classification", // æ–°å¢žä»ªå™¨è®¾å¤‡ï¼šæŸ¥è¯¢çˆ¶çº§åˆ†ç±»
    addDeviceInstrument: "/device/add", // æ–°å¢žä»ªå™¨è®¾å¤‡
    towTree: "/device/two_tree", //二级树
    tableDeviceList: "/device/table_list", // å®žéªŒå®¤æ¨¡å—表格数据
    deleteDevice: "/device/delete", // åˆ é™¤å®žéªŒå®¤è®¾å¤‡
    deleteIdorFather: "/device/deleteIdorFather" // åˆ é™¤æ ‘模块数据
}
//search_class:codeNameModel
// QMS计量管理
const measure = {
    measureLedgerPageTable: "/measureLedger/metering_table", // è®¡é‡é¢„测-->分页表格
    meteringPlanPageTable: "/meteringPlan/metering_table", // è®¡é‡è®¡åˆ’-->分页表格
    meteringPlanListRecord: "/meteringPlan/list_record", // è®¡é‡è®¡åˆ’<-->计量台账:查看计量履历
    meterPlanListDevice: "/meteringPlan/list_device", //新增计划设备下拉框
    createPerson: "/meteringPlan/list_user", //创建人下拉框
    meteringPlanDevicePlan: "/meteringPlan/add_plan", // è®¡é‡è®¡åˆ’-->新增按钮
    measureLedgerPageTable: "/measureLedger/metering_table", // è®¡é‡é¢„测-->分页表格
    meteringPlanPageTable: "/meteringPlan/metering_table", // è®¡é‡è®¡åˆ’-->分页表格
    meteringPlanListRecord: "/meteringPlan/list_record", // è®¡é‡è®¡åˆ’<-->计量台账:查看计量履历
    meterPlanListDevice: "/meteringPlan/list_device", //新增计划设备下拉框
    createPerson: "/meteringPlan/list_user", //创建人下拉框
    meteringPlanDevicePlan: "/meteringPlan/add_plan", // è®¡é‡è®¡åˆ’-->新增按钮
}
//基础数据
const Basicdata = {
    selectAllTechNam: "/technologyTemplate/selectAllTechNam", //工艺路线-->右边
    selectAllTechTem: "/technologyTemplate/selectAllTechTem", //工艺路线-->左边
    chooseDevGroup: "/technologyTemplate/chooseDevGroup", //新增工艺路线--》选择设备组
    chooseElement: "/technologyTemplate/chooseElement", //新增工艺路线-->选择元件
    addTechTemp: "/technologyTemplate/addTechTemp", //新增工艺路线==>新增
    chooseTech: "/technologyTemplate/chooseTech", //新增工艺路线--》选则工序
    writeTechById: "/technologyTemplate/writeTechById", //新增工艺路线-->编辑传参
    delTechById: "/technologyTemplate/delTechById", //新增工艺路线==>删除
    selecTechById: "/technologyTemplate/selecTechById", //新增工艺路线--》编辑
    delAllTech: "/technologyTemplate/delAllTech", //批量删除
    selectAllTechNam: "/technologyTemplate/selectAllTechNam", //工艺路线-->右边
    selectAllTechTem: "/technologyTemplate/selectAllTechTem", //工艺路线-->左边
    chooseDevGroup: "/technologyTemplate/chooseDevGroup", //新增工艺路线--》选择设备组
    chooseElement: "/technologyTemplate/chooseElement", //新增工艺路线-->选择元件
    addTechTemp: "/technologyTemplate/addTechTemp", //新增工艺路线==>新增
    chooseTech: "/technologyTemplate/chooseTech", //新增工艺路线--》选则工序
    writeTechById: "/technologyTemplate/writeTechById", //新增工艺路线-->编辑传参
    delTechById: "/technologyTemplate/delTechById", //新增工艺路线==>删除
    selecTechById: "/technologyTemplate/selecTechById", //新增工艺路线--》编辑
    delAllTech: "/technologyTemplate/delAllTech", //批量删除
    addTechMode: "/technicalModel/addTechMode", //技术指标---》新增
    delTechBy: "/technicalModel/delTechById", //技术--.删除
    delAllTechskill: "/technicalModel/delAllTech", //批量删除
    selectAllleft: "/technicalModel/selectAllTechTem", //技术指标-->左边
    selectAllright: "/technicalModel/selectAllTechNam", //技术指标--》右边
    chooseProFath: "/technicalModel/chooseProFath", //技术指标---》父类选择
    chooseTechFath: "/technicalModel/chooseTechFath", // æŠ€æœ¯--->工序工艺
    selecTech: "/technicalModel/selecTechById", //技术--->编辑
    writeTechByIdskill: "/technicalModel/writeTechById", //编辑传
    addTechMode: "/technicalModel/addTechMode", //技术指标---》新增
    delTechBy: "/technicalModel/delTechById", //技术--.删除
    delAllTechskill: "/technicalModel/delAllTech", //批量删除
    selectAllleft: "/technicalModel/selectAllTechTem", //技术指标-->左边
    selectAllright: "/technicalModel/selectAllTechNam", //技术指标--》右边
    chooseProFath: "/technicalModel/chooseProFath", //技术指标---》父类选择
    chooseTechFath: "/technicalModel/chooseTechFath", // æŠ€æœ¯--->工序工艺
    selecTech: "/technicalModel/selecTechById", //技术--->编辑
    writeTechByIdskill: "/technicalModel/writeTechById", //编辑传
    selectAllMbom: "/mbomModel/selectAllMbom", //物料维护--》右边
    addMbom: "/mbomModel/addMbom", //物料--->新增
    material: "/mbomModel/delMbomById", //物料清单删除
    delAllMbom: "/mbomModel/delAllMbom", //批量删除
    selectAllMbom: "/mbomModel/selectAllMbom", //物料维护--》右边
    addMbom: "/mbomModel/addMbom", //物料--->新增
    material: "/mbomModel/delMbomById", //物料清单删除
    delAllMbom: "/mbomModel/delAllMbom", //批量删除
    selectAllTeque: "/techniqueModel/selectAllTeque", //生产工艺维护---。右边
    selectAllTeque: "/techniqueModel/selectAllTeque", //生产工艺维护---。右边
    selectAllSelf: "/selfcheckModel/selectAllSelf", //自建维护-----》右边
    addSelfcheck: "/selfcheckModel/addSelfcheck", //自检  ------》新增
    delSelfcheck: "/selfcheckModel/delSelfcheckById", //自检----.删除
    delAll: "selfcheckModel/delAllTech", //批量删除---.自检
    selectAllSelf: "/selfcheckModel/selectAllSelf", //自建维护-----》右边
    addSelfcheck: "/selfcheckModel/addSelfcheck", //自检  ------》新增
    delSelfcheck: "/selfcheckModel/delSelfcheckById", //自检----.删除
    delAll: "selfcheckModel/delAllTech", //批量删除---.自检
    selectjilu: "/recordModel/selectAllRecord", //生产记录维护---》右边
    selecRecord: "/recordModel/selecRecordById", //生产记录----.新增
    writeRecordById: "/recordModel/writeRecordById", //编辑
    delQueByIdapi: "/recordModel/delQueById", //删除---.记录内容
    selectjilu: "/recordModel/selectAllRecord", //生产记录维护---》右边
    selecRecord: "/recordModel/selecRecordById", //生产记录----.新增
    writeRecordById: "/recordModel/writeRecordById", //编辑
    delQueByIdapi: "/recordModel/delQueById", //删除---.记录内容
    delAllRecord: "/recordModel/delAllRecord", //删除批量--->记录
    addRecord: "/recordModel/addRecord", //生产记录-------.新增
    delAllRecord: "/recordModel/delAllRecord", //删除批量--->记录
    addRecord: "/recordModel/addRecord", //生产记录-------.新增
    choosePro: "/techniqueModel/choosePro", //新增生产工艺维护---》选择父类
    chooseDeiv: "/techniqueModel/chooseDeiv", //新增----->设备
    addQeMode: "/techniqueModel/addQeMode", //新增----》传参
    delQueById: "/techniqueModel/delQueById", //删除
    delAllQue: "/techniqueModel/delAllQue", //批量删除
    selecQueById: "/techniqueModel/selecQueById", //编辑
    writeQueById: "/techniqueModel/writeQueById", //编辑传参
    choosePro: "/techniqueModel/choosePro", //新增生产工艺维护---》选择父类
    chooseDeiv: "/techniqueModel/chooseDeiv", //新增----->设备
    addQeMode: "/techniqueModel/addQeMode", //新增----》传参
    delQueById: "/techniqueModel/delQueById", //删除
    delAllQue: "/techniqueModel/delAllQue", //批量删除
    selecQueById: "/techniqueModel/selecQueById", //编辑
    writeQueById: "/techniqueModel/writeQueById", //编辑传参
}
const url = {
@@ -176,7 +171,6 @@
    ...laboratory,
    ...measure,
    ...finishedIns,
    ...unqualifiedaa,
    ...dispose,
    ...Basicdata,
    ...unRawInspects,
@@ -196,9 +190,9 @@
}
export default function(Vue) {
    //添加全局API
    Vue.prototype.$api = {
        url
    }
}
export default function (Vue) {
    //添加全局API
    Vue.prototype.$api = {
        url
    }
}
src/components/view/Processingproducts.vue
@@ -1,410 +1,285 @@
<template>
  <div class="unqualifiedBox">
    <el-row>
      <el-col :span="12" style="line-height: 32px;">不合格品处置</el-col>
      <el-col :span="12" style="text-align: right;">
        <el-button icon="el-icon-download" size="mini" @click="() => {}"
          >导出</el-button
        >
      </el-col>
    </el-row>
    <div style="margin-top: 10px;">
      <el-card shadow="hover" class="margin-30" style="height: 80px;">
        <div class="choose">
          <span>产品名称:</span>
          <el-input
            size="small"
            v-model="search.productName"
            style="width: 13vw;margin-right: 5px;"
            placeholder="请输入"
            clearable
          ></el-input>
          <span>规格型号:</span>
          <el-input
            size="small"
            v-model="search.specificationModel"
            style="width: 13vw;margin-right: 5px;"
            placeholder="请输入"
            clearable
          ></el-input>
          <span>产品大类:</span>
          <el-select
            v-model="search.productCategories"
            size="small"
            placeholder="请选择"
            style="width: 13vw;margin-right: 5px;"
          >
            <el-option label="原材料" :value="0"></el-option>
            <el-option label="成品" :value="1"></el-option>
            <el-option label="半成品" :value="2"></el-option>
          </el-select>
          <span>状态:</span>
          <el-select
            v-model="search.state"
            size="small"
            placeholder="请选择"
            style="width: 13vw;margin-right: 5px;"
          >
            <el-option label="返修中" :value="1"></el-option>
            <el-option label="待处理" :value="0"></el-option>
          </el-select>
          <el-button size="mini" @click="clean()"><span>重 ç½®</span></el-button>
          <el-button
            size="mini"
            type="primary"
            style="background: #004EA2;"
            @click="
              unqualifiedTable = [];
              getDetailInfo();
            "
            ><span>查 è¯¢</span></el-button
          >
        </div>
      </el-card>
    </div>
    <div class="tableno" style="height:300px">
      <el-card shadow="hover" class="margin-30">
        <el-table
          :data="unqualifiedTable"
          border
          ref="multipleTable"
          tooltip-effect="dark"
          height="calc(100vh - 340px)"
          style="width: 100%"
        >
          <el-table-column type="selection" min-width="50"> </el-table-column>
          <el-table-column type="index" label="序号" width="60">
            <template slot-scope="scope">
              {{ (search.pageSize - 1) * search.countSize + scope.$index + 1 }}
            </template>
          </el-table-column>
          <el-table-column prop="dateArrival" label="产品大类">
            <template slot-scope="scope">
              <span v-if="scope.row.type == 0">原材料</span>
              <span v-if="scope.row.type == 1">成品</span>
              <span v-if="scope.row.type == 2">半成品</span>
            </template>
          </el-table-column>
          <el-table-column
            prop="productName"
            label="产品名称"
            min-width="90"
            show-overflow-tooltip
          >
          </el-table-column>
          <el-table-column prop="specifications" label="规格型号">
          </el-table-column>
          <el-table-column prop="number" label="不合格品数量">
          </el-table-column>
          <el-table-column label="现像描述" min-width="150">
            <template slot-scope="scope">
              <el-input
                size="small"
                v-model="scope.row.description"
                @blur="outOfFocusDescription(scope)"
              ></el-input>
            </template>
          </el-table-column>
          <el-table-column label="处置意见">
            <template slot-scope="scope">
              <el-button type="text" @click="showDisposalOpinions(scope)"
                >查看处置意见</el-button
              >
            </template>
          </el-table-column>
          <el-table-column prop="user_name" label="申请人"> </el-table-column>
          <el-table-column prop="date" label="日期"> </el-table-column>
          <el-table-column prop="deal_state" label="状态">
            <template slot-scope="scope">
              <span style="color:#34BD66;" v-if="scope.row.deal_state == 1"
                >已处理</span
              >
              <span style="color:#E84738;" v-else-if="scope.row.deal_state == 0"
                >待处理</span
              >
            </template>
          </el-table-column>
          <el-table-column label="操作" width="130">
            <template slot-scope="scope">
              <div style="display: flex;">
                <el-button type="text" siae="small" size="mini">附件</el-button>
                <el-button
                  type="text"
                  siae="small"
                  size="mini"
                  style=" color:87, 138, 193 ;"
                  @click="clickEditorialOpinion(scope)"
                  >编辑意见</el-button
                >
              </div>
            </template>
          </el-table-column>
        </el-table>
        <el-col
          style="height: 50px;display: flex;align-items: center;justify-content: right;"
        >
          <el-pagination
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :current-page="search.pageSize"
            :page-sizes="[10, 15, 20, 30, 50]"
            :page-size="search.countSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="total"
          >
          </el-pagination>
        </el-col>
      </el-card>
    </div>
    <el-dialog title="提示" :visible.sync="dialogVisible" width="30%">
      <el-form label-width="130px" style="height: 500px; overflow: auto ;">
        <el-empty
          v-if="updateEditList.length == 0"
          :image-size="200"
        ></el-empty>
        <div v-for="item in updateEditList" :key="item.$index">
          <el-form-item
            :label="
              item.type == 0
                ? '技术部处置意见:'
                : item.type == 1
                ? '生产部处置意见:'
                : item.type == 2
                ? '质量部处置意见:'
                : '总经办处置意见:'
            "
          >
            <el-input
              type="textarea"
              :rows="2"
              placeholder="请输入内容"
              v-model="item.tell"
            >
            </el-input>
          </el-form-item>
          <el-row v-if="isShow == true">
            <el-col :span="12">
              <el-form-item label="填写人:" v-if="isShow == true">
                {{ item.name }}
              </el-form-item>
    <div class="unqualifiedBox">
        <el-row>
            <el-col :span="12" style="line-height: 32px;">不合格品处置</el-col>
            <el-col :span="12" style="text-align: right;">
                <el-button icon="el-icon-download" size="mini" @click="() => { }">导出</el-button>
            </el-col>
            <el-col :span="12">
              <el-form-item label="填写日期:" v-if="isShow == true">
                {{ item.fillDate }}
              </el-form-item>
            </el-col>
          </el-row>
          <el-form-item label="处置方式:">
            <el-radio-group v-model="item.way">
              <el-radio :label="0">返工</el-radio>
              <el-radio :label="1">返修</el-radio>
              <el-radio :label="2">让步接收</el-radio>
              <el-radio :label="3">拒收</el-radio>
              <el-radio :label="4">降级使用</el-radio>
              <el-radio :label="5">报废</el-radio>
            </el-radio-group>
          </el-form-item>
          <el-divider v-if="item.type != 3"></el-divider>
        </el-row>
        <div style="margin-top: 1em;">
            <el-card shadow="hover" style="height: 6em; display: flex;align-items: center;">
                <div class="choose">
                    <span>产品名称:</span>
                    <el-input size="small" v-model="search.productName" style="width: 13vw;margin-right: 5px;" placeholder="请输入" clearable></el-input>
                    <span>规格型号:</span>
                    <el-input size="small" v-model="search.specificationModel" style="width: 13vw;margin-right: 5px;" placeholder="请输入" clearable></el-input>
                    <span>产品大类:</span>
                    <el-select v-model="search.productCategories" size="small" placeholder="请选择" style="width: 13vw;margin-right: 5px;">
                        <el-option label="原材料" :value="0"></el-option>
                        <el-option label="半成品" :value="1"></el-option>
                        <el-option label="在制品" :value="2"></el-option>
                    </el-select>
                    <span>状态:</span>
                    <el-select v-model="search.state" size="small" placeholder="请选择" style="width: 13vw;margin-right: 5px;">
                        <el-option label="返修中" :value="1"></el-option>
                        <el-option label="待处理" :value="0"></el-option>
                    </el-select>
                    <el-button size="mini" @click="clean()"><span>重 ç½®</span></el-button>
                    <el-button size="mini" type="primary" style="background: #004EA2;" @click="unqualifiedTable = [];getDetailInfo();"><span>查 è¯¢</span></el-button>
                </div>
            </el-card>
        </div>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 æ¶ˆ</el-button>
        <el-button type="primary" @click="updateEditDevided()">ç¡® å®š</el-button>
      </span>
    </el-dialog>
  </div>
        <div class="tableno" style="height:300px">
            <el-card shadow="hover">
                <el-table :data="unqualifiedTable" border tooltip-effect="dark" height="calc(100vh - 340px)" style="width: 100%" :header-cell-style="{height: '50px'}">
                    <el-table-column type="index" label="序号" width="60">
                        <template slot-scope="scope">
                            {{ (search.pageSize - 1) * search.countSize + scope.$index + 1 }}
                        </template>
                    </el-table-column>
                    <el-table-column prop="dateArrival" label="产品大类" min-width="100">
                        <template slot-scope="scope">
                            <span v-if="scope.row.type == 0">原材料</span>
                            <span v-if="scope.row.type == 1">半成品</span>
                            <span v-if="scope.row.type == 2">在制品</span>
                        </template>
                    </el-table-column>
                    <el-table-column prop="productName" label="产品名称" min-width="100" show-overflow-tooltip>
                    </el-table-column>
                    <el-table-column prop="specifications" label="规格型号" min-width="100">
                    </el-table-column>
                    <el-table-column prop="number" label="不合格品数量" min-width="150">
                    </el-table-column>
                    <el-table-column label="现像描述" min-width="150">
                        <template slot-scope="scope">
                            <el-input size="small" v-model="scope.row.description" @blur="outOfFocusDescription(scope)"></el-input>
                        </template>
                    </el-table-column>
                    <el-table-column label="处置意见" min-width="100">
                        1232
                    </el-table-column>
                    <el-table-column prop="user_name" label="申请人" min-width="80"> </el-table-column>
                    <el-table-column prop="date" label="日期" min-width="150"> </el-table-column>
                    <el-table-column prop="deal_state" label="状态">
                        <template slot-scope="scope">
                            <span style="color:#34BD66;" v-if="scope.row.deal_state == 1">已处理</span>
                            <span style="color:#E84738;" v-else-if="scope.row.deal_state == 0">待处理</span>
                        </template>
                    </el-table-column>
                    <el-table-column label="操作" min-width="130" fixed="right">
                        <template slot-scope="scope">
                            <div style="display: flex;">
                                <el-button type="text" siae="small" size="mini">附件</el-button>
                                <el-button type="text" siae="small" size="mini" style=" color:87, 138, 193 ;" @click="clickEditorialOpinion(scope)">编辑意见</el-button>
                            </div>
                        </template>
                    </el-table-column>
                </el-table>
                <el-col style="height: 50px;display: flex;align-items: center;justify-content: right;">
                    <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="search.pageSize" :page-sizes="[10, 15, 20, 30, 50]" :page-size="search.countSize" layout="total, sizes, prev, pager, next, jumper" :total="total">
                    </el-pagination>
                </el-col>
            </el-card>
        </div>
        <el-dialog title="最终处置意见" :visible.sync="dialogVisible" width="30%">
            <el-form label-width="120px">
                <div>
                    <el-form-item label="最终处置意见:">
                        <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="clickEditOpinion.opinion_tell" />
                    </el-form-item>
                    <el-form-item label="处置方式:">
                        <el-radio-group v-model="clickEditOpinion.way">
                            <el-radio :label="3">接收</el-radio>
                            <el-radio v-if="clickEditOpinion.type == 0" :label="2">让步接收</el-radio>
                            <el-radio v-if="clickEditOpinion.type !== 0" :label="4">降级使用</el-radio>
                            <el-radio v-if="clickEditOpinion.type == 0" :label="7">换货</el-radio>
                            <el-radio v-if="clickEditOpinion.type == 0" :label="6">退货</el-radio>
                            <el-radio :label="1">返工返修</el-radio>
                            <el-radio v-if="clickEditOpinion.type !== 0" :label="5">报废</el-radio>
                        </el-radio-group>
                    </el-form-item>
                </div>
            </el-form>
            <span slot="footer" class="dialog-footer">
                <el-button @click="dialogVisible = false">取 æ¶ˆ</el-button>
                <el-button type="primary" @click="updateEditDevided()">ç¡® å®š</el-button>
            </span>
        </el-dialog>
    </div>
</template>
<script>
import { watch } from "vue";
export default {
  data() {
    return {
      isShow: false,
      search: {
        countSize: 10, // æ¡æ•°/页
        pageSize: 1, // èµ·å§‹é¡µ
        productCategories: "", // äº§å“å¤§ç±»
        productName: "", // äº§å“åç§°
        specificationModel: "", // è§„格型号
        state: "" // çŠ¶æ€
      },
      unqualifiedTable: [], // é¡µé¢è¡¨æ ¼æ•°æ®
      total: 0, // æ€»æ¡æ•°
      dialogVisible: false, // æ˜¾ç¤ºå¼¹å‡ºæ¡†
      updateEditList: []
    };
  },
  mounted() {
    this.getDetailInfo();
  },
  methods: {
    // åˆ†é¡µ
    handleSizeChange(val) {
      this.search.countSize = val;
      this.getDetailInfo();
    data() {
        return {
            isShow: false,
            search: {
                countSize: 10, // æ¡æ•°/页
                pageSize: 1, // èµ·å§‹é¡µ
                productCategories: "", // äº§å“å¤§ç±»
                productName: "", // äº§å“åç§°
                specificationModel: "", // è§„格型号
                state: "", // çŠ¶æ€
            },
            unqualifiedTable: [], // é¡µé¢è¡¨æ ¼æ•°æ®
            total: 0, // æ€»æ¡æ•°
            dialogVisible: false, // æ˜¾ç¤ºå¼¹å‡ºæ¡†
            clickEditOpinion: "", // ç‚¹å‡»ç¼–辑意见临时存储该行数据
        };
    },
    // åˆ†é¡µ
    handleCurrentChange(val) {
      this.search.pageSize = val;
      this.getDetailInfo();
    mounted() {
        this.getDetailInfo();
    },
    // åˆ†é¡µè¡¨æ ¼æ•°æ®
    getDetailInfo() {
      this.axios
        .get(this.$api.url.getTable, {
          params: this.search
        })
        .then(res => {
          this.unqualifiedTable = res.data.row;
          this.total = res.data.total;
        });
    methods: {
        // åˆ†é¡µ
        handleSizeChange(val) {
            this.search.countSize = val;
            this.getDetailInfo();
        },
        // åˆ†é¡µ
        handleCurrentChange(val) {
            this.search.pageSize = val;
            this.getDetailInfo();
        },
        // åˆ†é¡µè¡¨æ ¼æ•°æ®
        getDetailInfo() {
            this.axios
                .get(this.$api.url.getTable, {
                    params: this.search,
                })
                .then((res) => {
                    this.unqualifiedTable = res.data.row;
                    this.total = res.data.total;
                });
        },
        // é‡ç½®æŒ‰é’®
        clean() {
            this.search = {
                countSize: 10, // æ¡æ•°/页
                pageSize: 1, // èµ·å§‹é¡µ
                productCategories: "", // äº§å“å¤§ç±»
                productName: "", // äº§å“åç§°
                specificationModel: "", // è§„格型号
                state: "", // çŠ¶æ€
            };
            this.getDetailInfo();
        },
        // ç‚¹å‡»ç¼–辑意见
        clickEditorialOpinion(scope) {
            this.dialogVisible = true;
            this.clickEditOpinion = scope.row;
        },
        // å¤±åŽ»çŽ°åƒæè¿°ç„¦ç‚¹è§¦å‘
        outOfFocusDescription(scope) {
            this.axios
                .get(this.$api.url.descriptionUpdate, {
                    params: {
                        rawUnacceptedId: scope.row.id,
                        tell: scope.row.description,
                    },
                })
                .then((res) => {
                    this.$message({
                        message: res.message,
                        type: "success",
                    });
                });
        },
        // ç‚¹å‡»ç¡®å®šæŒ‰é’®
        updateEditDevided() {
            console.log(`output->this.clickEditOpinion`, this.clickEditOpinion);
            this.axios
                .post(this.$api.url.editDisposalOpinion, {
                    opinionTell: this.clickEditOpinion.opinion_tell,
                    rawUnacceptedId: this.clickEditOpinion.id,
                    way: this.clickEditOpinion.way,
                    type: this.clickEditOpinion.type,
                })
                .then((res) => {
                    this.dialogVisible = false;
                    this.$message({
                        message: res.message,
                        type: "success",
                    });
                });
        },
    },
    // é‡ç½®æŒ‰é’®
    clean() {
      this.search = {
        countSize: 10, // æ¡æ•°/页
        pageSize: 1, // èµ·å§‹é¡µ
        productCategories: "", // äº§å“å¤§ç±»
        productName: "", // äº§å“åç§°
        specificationModel: "", // è§„格型号
        state: "" // çŠ¶æ€
      };
      this.getDetailInfo();
    watch: {
        dialogVisible: {
            handler(newVal, oldVal) {
                if (newVal == false) {
                    this.isShow = false;
                }
            },
        },
    },
    // ç‚¹å‡»æŸ¥çœ‹å¤„置意见
    showDisposalOpinions(scope) {
      this.isShow = true;
      this.dialogVisible = true;
      this.$axios
        .get(this.$api.url.viewEditorial, {
          params: {
            rawUnacceptedId: scope.row.id
          }
        })
        .then(res => {
          this.updateEditList = res.data;
          this.getDetailInfo();
        });
    },
    // ç‚¹å‡»ç¼–辑意见
    clickEditorialOpinion(scope) {
      this.dialogVisible = true;
      this.axios
        .get(this.$api.url.clickEditing, {
          params: { rawUnacceptedId: scope.row.id }
        })
        .then(res => {
          this.updateEditList = res.data;
        });
    },
    // å¤±åŽ»çŽ°åƒæè¿°ç„¦ç‚¹è§¦å‘
    outOfFocusDescription(scope) {
      this.axios
        .get(this.$api.url.descriptionUpdate, {
          params: {
            rawUnacceptedId: scope.row.id,
            tell: scope.row.description
          }
        })
        .then(res => {
          this.$message({
            message: res.message,
            type: "success"
          });
        });
    },
    // ç‚¹å‡»ç¡®å®šæŒ‰é’®
    updateEditDevided() {
      this.$axios
        .post(
          this.$api.url.addOpinion,
          { opinion: this.updateEditList },
          {
            headers: { "Content-Type": "application/json" }
          }
        )
        .then(res => {
          console.log(`output->res`, res);
          this.dialogVisible = false;
          this.getDetailInfo();
        });
    }
  },
  watch: {
    dialogVisible: {
      handler(newVal, oldVal) {
        if (newVal == false) {
          this.isShow = false;
        }
      }
    }
  }
};
</script>
<style scoped>
.main_div {
  padding-top: 15px;
}
.el-radio__label {
  font-size: 16px;
}
.el-radio {
  margin-right: 60px;
  margin-top: 10px;
}
.el-form-item {
  margin-bottom: 6px;
  font-size: 16px;
}
.unqualifiedBox {
  width: 100%;
  max-height: 100%;
  display: flex;
  flex-direction: column;
  /* overflow-y: scroll; */
}
.unqualifiedBox .title .el-button {
  height: 32px;
  border: 1px solid rgba(190, 190, 190, 0.44);
  box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
  padding: 0 12px;
}
/deep/ .el-table__cell {
  padding: 5px 0;
}
.unqualifiedBox .title {
  margin-bottom: 10px;
  padding: 0 20px;
}
<!-- /* æ¡ä»¶æŸ¥è¯¢å¤´éƒ¨æ ·å¼ */ -->
    .choose {
  padding: 21px 24px;
  display: flex;
  align-items: center;
  background-color: #fff;
  border-bottom: 3px solid rgb(245, 247, 251);
    padding-top: 15px;
}
.el-radio__label {
    font-size: 16px;
}
.el-radio {
    margin-right: 60px;
    margin-top: 10px;
}
.el-form-item {
    margin-bottom: 6px;
    font-size: 16px;
}
.unqualifiedBox {
    width: 100%;
    max-height: 100%;
    display: flex;
    flex-direction: column;
}
.unqualifiedBox .title .el-button {
    height: 32px;
    border: 1px solid rgba(190, 190, 190, 0.44);
    box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
    padding: 0 12px;
}
/deep/ .el-table__cell {
    padding: 5px 0;
}
.unqualifiedBox .title {
    margin-bottom: 10px;
    padding: 0 20px;
}
/* æ¡ä»¶æŸ¥è¯¢å¤´éƒ¨æ ·å¼ */
.choose {
  font-size: 14px;
    display: flex;
    align-items: center;
    background-color: #fff;
    border-bottom: 3px solid rgb(245, 247, 251);
    font-size: 14px;
}
.choose .el-button {
  height: 32px;
  border: 1px solid rgba(190, 190, 190, 0.44);
  box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
  padding: 0 12px;
    height: 32px;
    border: 1px solid rgba(190, 190, 190, 0.44);
    box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
    padding: 0 12px;
}
<!-- /* ä¸åˆæ ¼è¡¨æ ¼æ ·å¼ */
    .unqualifiedTable {
  flex: 1;
  background: #fff;
  margin-top: 11px;
  padding: 23px 21px;
.choose span {
    /* span内容强制不换行 */
    white-space: nowrap;
}
.tableno {
  margin-top: 10px;
    margin-top: 10px;
}
</style>
src/components/view/processInspection.vue
@@ -249,7 +249,7 @@
     title="过程检验报告" :visible.sync="reportlook"  width="40%">
     <template>
    <div ref="print">
      <div style="margin:0 auto;">
          <!-- <div style="text-align:center;margin-top:10px;">过程检验报告</div> -->
    <table class="table table-striped table-bordered" align="center" border style="width: 100%;height: 700px;" valign="center">
@@ -295,13 +295,13 @@
        <td class="value" ></td>
        <td class="column"></td>
        <td class="value" ></td>
      </tr>
      <tr>
        <td class="column"></td>
        <td class="value" colspan="3"></td>
        <td class="column"></td>
      </tr>
      <tr>
        <td class="value" colspan="2"></td>
@@ -313,7 +313,7 @@
        <td class="value" colspan="2"></td>
        <td class="value" colspan="2"></td>
      </tr>
      <tr>
        <td class="column" colspan="6"></td>
      </tr>
@@ -337,7 +337,7 @@
        <td class="value" colspan="2"></td>
        <td class="value" colspan="2"></td>
      </tr>
      <tr>
        <td class="column">材质</td>
        <td class="value" colspan="5"></td>
@@ -360,8 +360,8 @@
          <br>
        </td>
      </tr>
    </table>
      </div>
    </div>
@@ -485,7 +485,7 @@
      this.reportlook = true
      // this.$nextTick(() => {
      //          this.$print(this.$refs.print);
      //      })
      //      })
    },
    handleClick(row) {
      this.rowInfp = row
src/components/view/raw-ins.vue
@@ -1,221 +1,214 @@
<style scoped>
    .raw_ins {
        height: 100%;
    }
.raw_ins {
    height: 100%;
}
    .raw_ins .title .el-button {
        height: 32px;
        border: 1px solid rgba(190, 190, 190, 0.44);
        box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
        padding: 0 12px;
    }
.raw_ins .title .el-button {
    height: 32px;
    border: 1px solid rgba(190, 190, 190, 0.44);
    box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
    padding: 0 12px;
}
    .raw_ins .title {
        margin-bottom: 10px;
        padding: 0 20px;
    }
.raw_ins .title {
    margin-bottom: 10px;
    padding: 0 20px;
}
    .choose {
        padding: 21px 24px;
        display: flex;
        align-items: center;
        background-color: #fff;
        border-bottom: 3px solid rgb(245, 247, 251);
    }
.choose {
    padding: 21px 24px;
    display: flex;
    align-items: center;
    background-color: #fff;
    border-bottom: 3px solid rgb(245, 247, 251);
}
    .choose * {
        font-size: 14px;
    }
.choose * {
    font-size: 14px;
}
    .choose .el-button {
        height: 32px;
        border: 1px solid rgba(190, 190, 190, 0.44);
        box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
        padding: 0 12px;
    }
.choose .el-button {
    height: 32px;
    border: 1px solid rgba(190, 190, 190, 0.44);
    box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
    padding: 0 12px;
}
    .thing {
        width: calc(100% - 44px);
        height: calc(100% - 42px - 82px - 66px);
        background-color: #fff;
        overflow: auto;
        padding: 33px 22px;
    }
.choose span {
    /* span内容强制不换行 */
    white-space: nowrap;
}
    .table_do {
        color: #004ea0;
        cursor: pointer;
    }
.thing {
    width: calc(100% - 44px);
    height: calc(100% - 42px - 82px - 66px);
    background-color: #fff;
    overflow: auto;
    padding: 33px 22px;
}
.table_do {
    color: #004ea0;
    cursor: pointer;
}
</style>
<style>
    .raw_ins .thing * {
        font-size: 14px;
    }
.raw_ins .thing * {
    font-size: 14px;
}
    .raw_ins .has-gutter .el-table__cell {
        background-color: #f0f1f5 !important;
        color: #333;
    }
.raw_ins .has-gutter .el-table__cell {
    background-color: #f0f1f5 !important;
    color: #333;
}
    .raw_ins .has-gutter .el-table__cell .cell {
        font-size: 16px;
        font-weight: 500;
    }
.raw_ins .has-gutter .el-table__cell .cell {
    font-size: 16px;
    font-weight: 500;
}
    .raw_ins .cell {
        color: #333;
        padding-left: 17px !important;
    }
.raw_ins .cell {
    color: #333;
    padding-left: 17px !important;
}
    .raw_ins .el-table__body-wrapper {
        height: 100%;
    }
.raw_ins .el-table__body-wrapper {
    height: 100%;
}
    .raw_ins .el-table__body {
        height: 100%;
    }
.raw_ins .el-table__body {
    height: 100%;
}
</style>
<template>
    <div class="raw_ins">
        <div class="title">
            <el-row>
                <el-col :span="12" style="line-height: 32px;">原材料检验</el-col>
                <el-col :span="12" style="text-align: right;">
                    <el-button type="primary" icon="el-icon-plus" style="background: #004EA2;"
                        @click="goDetail(null)">新增</el-button>
                    <el-button icon="el-icon-download">导出</el-button>
                </el-col>
            </el-row>
        </div>
        <div class="choose">
            <span>来料日期:</span>
            <el-date-picker v-model="search.formTime" size="small" placeholder="请输入" style="width: 13vw;margin-right: 5px;"
                clearable value-format="yyyy-MM-dd"></el-date-picker>
            <span>原材料编码:</span>
            <el-input v-model="search.code" placeholder="请输入" size="small" style="width: 13vw;margin-right: 5px;"
                clearable></el-input>
            <span>检测状态:</span>
            <el-select v-model="search.insState" size="small" placeholder="请选择" style="width: 13vw;margin-right: 5px;">
                <el-option label="全部" :value="2"></el-option>
                <el-option label="未检测" :value="0"></el-option>
                <el-option label="已检测" :value="1"></el-option>
            </el-select>
            <span>原材料名称:</span>
            <el-input v-model="search.name" size="small" placeholder="请输入" style="width: 13vw;margin-right: 5px;"
                clearable></el-input>
            <el-button size="mini" @click="clean()"><span>重 ç½®</span></el-button>
            <el-button size="mini" type="primary" style="background: #004EA2;" @click="selectRawInspectsList()"><span>查
                    è¯¢</span></el-button>
        </div>
        <div class="thing">
            <el-table :data="tableData" border style="width: 100%;overflow-y: auto;min-height: calc(100% - 50px)"
                max-height="calc(100% - 50px)" @selection-change="handleSelectionChange" default-expand-all
                :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" row-key="id">
                <el-table-column type="selection" width="50"> </el-table-column>
                <el-table-column type="index" label="序号" width="70">
                </el-table-column>
                <el-table-column prop="formTime" label="来料日期"> </el-table-column>
                <el-table-column prop="code" label="原材料编码"> </el-table-column>
                <el-table-column prop="name" label="原材料名称"> </el-table-column>
                <el-table-column prop="specifications" label="规格型号">
                </el-table-column>
                <el-table-column prop="unit" label="单位"> </el-table-column>
                <el-table-column prop="number" label="数量"> </el-table-column>
                <el-table-column prop="createTime" label="报检日期"> </el-table-column>
                <el-table-column prop="user_name" label="报检人"> </el-table-column>
                <el-table-column prop="createTime" label="检验日期"> </el-table-column>
                <el-table-column prop="createTime" label="检测状态" width="100">
                    <template slot-scope="scope">
                        <span style="color: #34BD66;" v-if="scope.row.ins_state == 1">已检测</span>
                        <span style="color: #E84738;" v-else-if="scope.row.ins_state == 0">未检测</span>
                    </template>
                </el-table-column>
                <el-table-column prop="judge_state" label="合格状态" width="100">
                    <template slot-scope="scope">
                        <span style="color: #34BD66;" v-if="scope.row.judge_state == 1">合格</span>
                        <span style="color: #E84738;" v-else-if="scope.row.judge_state == 0">不合格</span>
                    </template>
                </el-table-column>
                <el-table-column label="操作" width="100">
                    <template slot-scope="scope">
                        <span class="table_do" @click="changeShowDetail(scope.row)">查看</span>
                        <span class="table_do">打印</span>
                    </template>
                </el-table-column>
            </el-table>
            <el-col style="height: 50px;display: flex;align-items: center;justify-content: right;">
                <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="1"
                    :page-sizes="[10, 15, 20, 30, 50]" :page-size="search.co" layout="total, sizes, prev, pager, next, jumper"
                    :total="total">
                </el-pagination>
            </el-col>
        </div>
    </div>
    <div class="raw_ins">
        <div class="title">
            <el-row>
                <el-col :span="12" style="line-height: 32px;">原材料检验</el-col>
                <el-col :span="12" style="text-align: right;">
                    <el-button type="primary" icon="el-icon-plus" style="background: #004EA2;" @click="goDetail(null)">新增</el-button>
                    <el-button icon="el-icon-download">导出</el-button>
                </el-col>
            </el-row>
        </div>
        <div class="choose">
            <span>来料日期:</span>
            <el-date-picker v-model="search.formTime" size="small" placeholder="请输入" style="width: 13vw;margin-right: 5px;" clearable value-format="yyyy-MM-dd"></el-date-picker>
            <span>原材料编码:</span>
            <el-input v-model="search.code" placeholder="请输入" size="small" style="width: 13vw;margin-right: 5px;" clearable></el-input>
            <span>检测状态:</span>
            <el-select v-model="search.insState" size="small" placeholder="请选择" style="width: 13vw;margin-right: 5px;">
                <el-option label="全部" :value="2"></el-option>
                <el-option label="未检测" :value="0"></el-option>
                <el-option label="已检测" :value="1"></el-option>
            </el-select>
            <span>原材料名称:</span>
            <el-input v-model="search.name" size="small" placeholder="请输入" style="width: 13vw;margin-right: 5px;" clearable></el-input>
            <el-button size="mini" @click="clean()"><span>重 ç½®</span></el-button>
            <el-button size="mini" type="primary" style="background: #004EA2;" @click="selectRawInspectsList()"><span>查 è¯¢</span></el-button>
        </div>
        <div class="thing">
            <el-table :data="tableData" border style="width: 100%;" height="calc(100% - 50px)" @selection-change="handleSelectionChange" default-expand-all :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" row-key="id">
                <el-table-column type="index" label="序号" width="60">
                </el-table-column>
                <el-table-column prop="formTime" label="来料日期" min-width="110"> </el-table-column>
                <el-table-column prop="code" label="原材料编码" min-width="110"> </el-table-column>
                <el-table-column prop="name" label="原材料名称" min-width="110"> </el-table-column>
                <el-table-column prop="specifications" label="规格型号" min-width="100">
                </el-table-column>
                <el-table-column prop="unit" label="单位" min-width="60"> </el-table-column>
                <el-table-column prop="number" label="数量" min-width="60"> </el-table-column>
                <el-table-column prop="createTime" label="报检日期" min-width="110"> </el-table-column>
                <el-table-column prop="user_name" label="报检人" min-width="80"> </el-table-column>
                <el-table-column prop="createTime" label="检验日期" min-width="110"> </el-table-column>
                <el-table-column prop="createTime" label="检测状态" min-width="100">
                    <template slot-scope="scope">
                        <span style="color: #34BD66;" v-if="scope.row.ins_state == 1">已检测</span>
                        <span style="color: #E84738;" v-else-if="scope.row.ins_state == 0">未检测</span>
                    </template>
                </el-table-column>
                <el-table-column prop="judge_state" label="合格状态" min-width="100">
                    <template slot-scope="scope">
                        <span style="color: #34BD66;" v-if="scope.row.judge_state == 1">合格</span>
                        <span style="color: #E84738;" v-else-if="scope.row.judge_state == 0">不合格</span>
                    </template>
                </el-table-column>
                <el-table-column label="操作" min-width="100" fixed="right">
                    <template slot-scope="scope">
                        <span class="table_do" @click="changeShowDetail(scope.row)">查看</span>
                        <span class="table_do">打印</span>
                    </template>
                </el-table-column>
            </el-table>
            <el-col style="height: 50px;display: flex;align-items: center;justify-content: right;">
                <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="1" :page-sizes="[10, 15, 20, 30, 50]" :page-size="search.co" layout="total, sizes, prev, pager, next, jumper" :total="total">
                </el-pagination>
            </el-col>
        </div>
    </div>
</template>
<script>
    export default {
        data() {
            return {
                search: {
                    formTime: "", // æ¥æ–™æ—¶é—´
                    code: "", // åŽŸææ–™ç¼–ç 
                    insState: "", // æ£€æµ‹çŠ¶æ€
                    name: "", //
                    countSize: 10, // æ¡æ•°/页
                    pageSize: 1 // é¡µæ•°
                },
                total: 0,
                tableData: [],
                selects: []
            };
        },
        props: ["goDetail"],
        mounted() {
            this.selectRawInspectsList();
        },
        methods: {
            handleSelectionChange(val) {
                this.selects = val;
            },
            handleSizeChange(val) {
                this.search.countSize = val;
                this.selectRawInspectsList();
            },
            handleCurrentChange(val) {
                this.search.pageSize = val;
                this.selectRawInspectsList();
            },
            selectRawInspectsList() {
                this.$axios
                    .get(this.$api.url.selectRawInspectsList, {
                        params: this.search
                    })
                    .then(res => {
                        this.tableData = res.data.row;
                        this.total = res.data.total;
                    });
            },
            clean() {
                this.search = {
                    formTime: "", // æ¥æ–™æ—¶é—´
                    code: "", // åŽŸææ–™ç¼–ç 
                    insState: "", // æ£€æµ‹çŠ¶æ€
                    name: "", //
                    countSize: 10, // æ¡æ•°/页
                    pageSize: 1 // é¡µæ•°
                };
                this.selectRawInspectsList();
            },
            changeShowDetail({
                id
            }) {
                this.goDetail(id);
                // console.log(id)
                // const res = await this.$axios.post(this.$api.url.selectRawInspectsListById,{params:{id}})
                // console.log(res)
            }
        }
    };
export default {
    data() {
        return {
            search: {
                formTime: "", // æ¥æ–™æ—¶é—´
                code: "", // åŽŸææ–™ç¼–ç 
                insState: "", // æ£€æµ‹çŠ¶æ€
                name: "", //
                countSize: 10, // æ¡æ•°/页
                pageSize: 1, // é¡µæ•°
            },
            total: 0,
            tableData: [],
            selects: [],
        };
    },
    props: ["goDetail"],
    mounted() {
        this.selectRawInspectsList();
    },
    methods: {
        handleSelectionChange(val) {
            this.selects = val;
        },
        handleSizeChange(val) {
            this.search.countSize = val;
            this.selectRawInspectsList();
        },
        handleCurrentChange(val) {
            this.search.pageSize = val;
            this.selectRawInspectsList();
        },
        selectRawInspectsList() {
            this.$axios
                .get(this.$api.url.selectRawInspectsList, {
                    params: this.search,
                })
                .then((res) => {
                    this.tableData = res.data.row;
                    this.total = res.data.total;
                });
        },
        clean() {
            this.search = {
                formTime: "", // æ¥æ–™æ—¶é—´
                code: "", // åŽŸææ–™ç¼–ç 
                insState: "", // æ£€æµ‹çŠ¶æ€
                name: "", //
                countSize: 10, // æ¡æ•°/页
                pageSize: 1, // é¡µæ•°
            };
            this.selectRawInspectsList();
        },
        changeShowDetail({ id }) {
            this.goDetail(id);
            // console.log(id)
            // const res = await this.$axios.post(this.$api.url.selectRawInspectsListById,{params:{id}})
            // console.log(res)
        },
    },
};
</script>
src/components/view/rawUnqualified/raw.vue
ÎļþÒÑɾ³ý
src/components/view/rawUnqualifiedBox.vue
ÎļþÒÑɾ³ý
src/components/view/unqualifiedManagement.vue
@@ -1,300 +1,218 @@
<template>
  <div class="unqualifiedBox">
    <el-row>
      <el-col :span="12" style="line-height: 32px;">不合格管理</el-col>
      <el-col :span="12" style="text-align: right;">
        <el-button icon="el-icon-download" size="mini" @click="() => {}"
          >导出</el-button
        >
      </el-col>
    </el-row>
    <div style="margin-top: 10px;">
      <el-card shadow="hover" class="margin-30" style="height: 80px;">
        <div class="choose">
          <span>处理状态:</span>
          <el-select
            v-model="search.dealState"
            size="small"
            placeholder="请选择"
            style="width: 224px;margin-right: 30px;"
          >
            <el-option label="已处理" :value="1"></el-option>
            <el-option label="待处理" :value="0"></el-option>
          </el-select>
          <span>来料日期:</span>
          <el-date-picker
            v-model="search.formTime"
            size="small"
            placeholder="请输入"
            style="width: 224px;margin-right: 30px;"
            clearable
            value-format="yyyy-MM-dd"
          ></el-date-picker>
          <span>产品大类:</span>
          <el-select
            v-model="search.productCategories"
            size="small"
            placeholder="请选择"
            style="width: 224px;margin-right: 30px;"
          >
            <el-option label="全部" :value="''"></el-option>
            <el-option label="成品" :value="1"></el-option>
            <el-option label="半成品" :value="2"></el-option>
          </el-select>
          <el-button size="mini" @click="clean()"><span>重 ç½®</span></el-button>
          <el-button
            size="mini"
            type="primary"
            style="background: #004EA2;"
            @click="
              unqualifiedTable = [];
              getDetailInfo();
            "
            ><span>查 è¯¢</span></el-button
          >
    <div class="unqualifiedBox">
        <el-row>
            <el-col :span="12" style="line-height: 32px;">不合格管理</el-col>
            <el-col :span="12" style="text-align: right;">
                <el-button icon="el-icon-download" size="mini" @click="() => { }">导出</el-button>
            </el-col>
        </el-row>
        <div style="margin-top: 10px;">
            <el-card shadow="hover" style="height: 6em;display: flex;align-items: center;">
                <div class="choose">
                    <span>处理状态:</span>
                    <el-select v-model="search.dealState" size="small" placeholder="请选择" style="width: 13vw;margin-right: 30px;">
                        <el-option label="已处理" :value="1"></el-option>
                        <el-option label="待处理" :value="0"></el-option>
                    </el-select>
                    <span>来料日期:</span>
                    <el-date-picker v-model="search.formTime" size="small" placeholder="请输入" style="width: 13vw;margin-right: 30px;" clearable value-format="yyyy-MM-dd"></el-date-picker>
                    <span>产品大类:</span>
                    <el-select v-model="search.productCategories" size="small" placeholder="请选择" style="width: 13vw;margin-right: 30px;">
                        <el-option label="全部" :value="''"></el-option>
                        <el-option label="成品" :value="1"></el-option>
                        <el-option label="半成品" :value="2"></el-option>
                    </el-select>
                    <el-button size="mini" @click="clean()"><span>重 ç½®</span></el-button>
                    <el-button size="mini" type="primary" style="background: #004EA2;" @click="
                        unqualifiedTable = [];
                    getDetailInfo();
                    "><span>查 è¯¢</span></el-button>
                </div>
            </el-card>
        </div>
      </el-card>
        <div class="tableno" style="height:300px">
            <el-card shadow="hover">
                <el-table :data="unqualifiedTable" border ref="multipleTable" tooltip-effect="dark" height="calc(100vh - 340px)" style="width: 100%">
                    <el-table-column type="index" label="序号" width="60">
                        <template slot-scope="scope">
                            {{ (search.pageSize - 1) * search.countSize + scope.$index + 1 }}
                        </template>
                    </el-table-column>
                    <el-table-column prop="dateArrival" label="来料日期" min-width="110">
                    </el-table-column>
                    <el-table-column prop="reason" label="缺陷名称" min-width="100" show-overflow-tooltip>
                    </el-table-column>
                    <el-table-column prop="material_code" label="材料编码" min-width="150" show-overflow-tooltip>
                    </el-table-column>
                    <el-table-column prop="project_name" label="材料名称" min-width="150">
                    </el-table-column>
                    <el-table-column prop="specifications_model" label="规格型号" min-width="100">
                    </el-table-column>
                    <el-table-column prop="unit" label="单位" min-width="60"> </el-table-column>
                    <el-table-column prop="quantity" label="数量" min-width="60"> </el-table-column>
                    <el-table-column prop="inspectionDate" label="报检日期" min-width="110">
                    </el-table-column>
                    <el-table-column prop="name" label="报检人" min-width="80"> </el-table-column>
                    <el-table-column prop="processingDate" label="检验日期" min-width="110">
                    </el-table-column>
                    <el-table-column prop="deal_state" label="处理状态" min-width="100">
                        <template slot-scope="scope">
                            <span style="color:#34BD66;" v-if="scope.row.deal_state == 1">已处理</span>
                            <span style="color:#E84738;" v-else-if="scope.row.deal_state == 0">待处理</span>
                        </template>
                    </el-table-column>
                    <el-table-column prop="deal_reasult" label="评审结果" min-width="100">
                        <template slot-scope="scope">
                            <span style="color:#E84738;" v-if="scope.row.deal_reasult == 0">不通过</span>
                            <span style="color:#34BD66;" v-else-if="scope.row.deal_reasult == 1">通过</span>
                        </template>
                    </el-table-column>
                    <el-table-column label="操作" min-width="100" fixed="right">
                        <template slot-scope="scope">
                            <div style="display: flex;">
                                <el-popover placement="left" width="160" :ref="`popover-${scope.$index}`">
                                    <div style="padding: 6px">评审是否通过?</div>
                                    <div style="text-align: right; margin: 6px;">
                                        <el-button size="mini" type="text" style="color: #E84738;" @click="
                                            scope._self.$refs[`popover-${scope.$index}`].doClose();
                                        rawEvaluate(scope.row, 0);
                                        ">不通过</el-button>
                                        <el-button type="text" style="color: #34bd66;" size="mini" @click="
                                            scope._self.$refs[`popover-${scope.$index}`].doClose();
                                        rawEvaluate(scope.row, 1);
                                        ">通过</el-button>
                                    </div>
                                    <el-button slot="reference" type="text" siae="small" size="mini">评审</el-button>
                                </el-popover>
                                <el-button type="text" siae="small" size="mini" style=" color:87, 138, 193 ;margin-left: 10px;">查看</el-button>
                            </div>
                        </template>
                    </el-table-column>
                </el-table>
                <el-col style="height: 50px;display: flex;align-items: center;justify-content: right;">
                    <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="search.pageSize" :page-sizes="[10, 15, 20, 30, 50]" :page-size="search.countSize" layout="total, sizes, prev, pager, next, jumper" :total="total">
                    </el-pagination>
                </el-col>
            </el-card>
        </div>
    </div>
    <div class="tableno" style="height:300px">
      <el-card shadow="hover" class="margin-30">
        <el-table
          :data="unqualifiedTable"
          border
          ref="multipleTable"
          tooltip-effect="dark"
          height="calc(100vh - 340px)"
          style="width: 100%"
        >
          <el-table-column type="selection" width="50"> </el-table-column>
          <el-table-column type="index" label="序号" width="60">
            <template slot-scope="scope">
              {{ (search.pageSize - 1) * search.countSize + scope.$index + 1 }}
            </template>
          </el-table-column>
          <el-table-column prop="dateArrival" label="来料日期">
          </el-table-column>
          <el-table-column
            prop="reason"
            label="缺陷名称"
            min-width="120"
            show-overflow-tooltip
          >
          </el-table-column>
          <el-table-column prop="material_code" label="材料编码">
          </el-table-column>
          <el-table-column prop="project_name" label="材料名称">
          </el-table-column>
          <el-table-column
            prop="specifications_model"
            label="规格型号"
            min-width="120"
          >
          </el-table-column>
          <el-table-column prop="unit" label="单位"> </el-table-column>
          <el-table-column prop="quantity" label="数量"> </el-table-column>
          <el-table-column prop="inspectionDate" label="报检日期">
          </el-table-column>
          <el-table-column prop="name" label="报检人"> </el-table-column>
          <el-table-column prop="processingDate" label="检验日期">
          </el-table-column>
          <el-table-column prop="deal_state" label="处理状态" width="100">
            <template slot-scope="scope">
              <span style="color:#34BD66;" v-if="scope.row.deal_state == 1"
                >已处理</span
              >
              <span style="color:#E84738;" v-else-if="scope.row.deal_state == 0"
                >待处理</span
              >
            </template>
          </el-table-column>
          <el-table-column prop="deal_reasult" label="评审结果" width="100">
            <template slot-scope="scope">
              <span style="color:#E84738;" v-if="scope.row.deal_reasult == 0"
                >不通过</span
              >
              <span
                style="color:#34BD66;"
                v-else-if="scope.row.deal_reasult == 1"
                >通过</span
              >
            </template>
          </el-table-column>
          <el-table-column label="操作" width="100">
            <template slot-scope="scope">
              <div style="display: flex;">
                <el-popover
                  placement="left"
                  width="160"
                  :ref="`popover-${scope.$index}`"
                >
                  <div style="padding: 6px">评审是否通过?</div>
                  <div style="text-align: right; margin: 6px;">
                    <el-button
                      size="mini"
                      type="text"
                      style="color: #E84738;"
                      @click="
                        scope._self.$refs[`popover-${scope.$index}`].doClose();
                        rawEvaluate(scope.row, 0);
                      "
                      >不通过</el-button
                    >
                    <el-button
                      type="text"
                      style="color: #34bd66;"
                      size="mini"
                      @click="
                        scope._self.$refs[`popover-${scope.$index}`].doClose();
                        rawEvaluate(scope.row, 1);
                      "
                      >通过</el-button
                    >
                  </div>
                  <el-button
                    slot="reference"
                    type="text"
                    siae="small"
                    size="mini"
                    >评审</el-button
                  >
                </el-popover>
                <el-button
                  type="text"
                  siae="small"
                  size="mini"
                  style=" color:87, 138, 193 ;margin-left: 10px;"
                  >查看</el-button
                >
              </div>
            </template>
          </el-table-column>
        </el-table>
        <el-col
          style="height: 50px;display: flex;align-items: center;justify-content: right;"
        >
          <el-pagination
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :current-page="search.pageSize"
            :page-sizes="[10, 15, 20, 30, 50]"
            :page-size="search.countSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="total"
          >
          </el-pagination>
        </el-col>
      </el-card>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      search: {
        countSize: 10, // æ¡æ•°/页
        pageSize: 1, // èµ·å§‹é¡µ
        formTime: "", // æ¥æ–™æ—¥æœŸ
        productCategories: "", // äº§å“å¤§ç±»
        dealState: "" // å¤„理状态
      },
      unqualifiedTable: [], // é¡µé¢è¡¨æ ¼æ•°æ®
      total: 0
    };
  },
  mounted() {
    this.getDetailInfo();
  },
  methods: {
    handleSizeChange(val) {
      this.search.countSize = val;
      this.getDetailInfo();
    data() {
        return {
            search: {
                countSize: 10, // æ¡æ•°/页
                pageSize: 1, // èµ·å§‹é¡µ
                formTime: "", // æ¥æ–™æ—¥æœŸ
                productCategories: "", // äº§å“å¤§ç±»
                dealState: "", // å¤„理状态
            },
            unqualifiedTable: [], // é¡µé¢è¡¨æ ¼æ•°æ®
            total: 0,
        };
    },
    handleCurrentChange(val) {
      this.search.pageSize = val;
      this.getDetailInfo();
    mounted() {
        this.getDetailInfo();
    },
    getDetailInfo() {
      this.axios
        .get(this.$api.url.inspectUnaccepted, {
          params: this.search
        })
        .then(res => {
          this.unqualifiedTable = res.data.row;
          this.total = res.data.total;
        });
    methods: {
        handleSizeChange(val) {
            this.search.countSize = val;
            this.getDetailInfo();
        },
        handleCurrentChange(val) {
            this.search.pageSize = val;
            this.getDetailInfo();
        },
        getDetailInfo() {
            this.axios
                .get(this.$api.url.inspectUnaccepted, {
                    params: this.search,
                })
                .then((res) => {
                    this.unqualifiedTable = res.data.row;
                    this.total = res.data.total;
                });
        },
        clean() {
            this.search = {
                countSize: 10, // æ¡æ•°/页
                pageSize: 1, // èµ·å§‹é¡µ
                formTime: "", // æ¥æ–™æ—¥æœŸ
                dealState: "", // å¤„理状态
            };
            this.getDetailInfo();
        },
        rawEvaluate(row, passOrNo) {
            this.$axios
                .post(this.$api.url.evaluatePassOrNo, {
                    rawId: row.id,
                    passOrNo: passOrNo,
                })
                .then((res) => {
                    this.unqualifiedTable = [];
                    this.getDetailInfo();
                    this.$parent.removeAllTab();
                });
        },
    },
    clean() {
      this.search = {
        countSize: 10, // æ¡æ•°/页
        pageSize: 1, // èµ·å§‹é¡µ
        formTime: "", // æ¥æ–™æ—¥æœŸ
        dealState: "" // å¤„理状态
      };
      this.getDetailInfo();
    },
    rawEvaluate(row, passOrNo) {
      this.$axios
        .post(this.$api.url.evaluatePassOrNo, {
          rawId: row.id,
          passOrNo: passOrNo
        })
        .then(res => {
          this.unqualifiedTable = [];
          this.getDetailInfo();
          this.$parent.removeAllTab()
        });
    }
  }
};
</script>
<style scoped>
.unqualifiedBox {
  width: 100%;
  max-height: 100%;
  display: flex;
  flex-direction: column;
  /* overflow-y: scroll; */
    width: 100%;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    /* overflow-y: scroll; */
}
.unqualifiedBox .title .el-button {
  height: 32px;
  border: 1px solid rgba(190, 190, 190, 0.44);
  box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
  padding: 0 12px;
    height: 32px;
    border: 1px solid rgba(190, 190, 190, 0.44);
    box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
    padding: 0 12px;
}
.unqualifiedBox .title {
  margin-bottom: 10px;
  padding: 0 20px;
}
<!-- /* æ¡ä»¶æŸ¥è¯¢å¤´éƒ¨æ ·å¼ */ -->
  .choose {
  padding: 21px 24px;
  display: flex;
  align-items: center;
  background-color: #fff;
  border-bottom: 3px solid rgb(245, 247, 251);
    margin-bottom: 10px;
    padding: 0 20px;
}
.choose {
  font-size: 14px;
    display: flex;
    align-items: center;
    background-color: #fff;
    border-bottom: 3px solid rgb(245, 247, 251);
}
.choose {
    font-size: 14px;
}
.choose .el-button {
  height: 32px;
  border: 1px solid rgba(190, 190, 190, 0.44);
  box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
  padding: 0 12px;
    height: 32px;
    border: 1px solid rgba(190, 190, 190, 0.44);
    box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
    padding: 0 12px;
}
<!-- /* ä¸åˆæ ¼è¡¨æ ¼æ ·å¼ */
  .unqualifiedTable {
  flex: 1;
  background: #fff;
  margin-top: 11px;
  padding: 23px 21px;
.choose span {
    /* span内容强制不换行 */
    white-space: nowrap;
}
/* ä¸åˆæ ¼è¡¨æ ¼æ ·å¼ */
.unqualifiedTable {
    flex: 1;
    background: #fff;
    margin-top: 11px;
    padding: 23px 21px;
}
.tableno {
  margin-top: 10px;
    margin-top: 10px;
}
</style>
src/view/index.vue
@@ -583,4 +583,4 @@
            }
        }
    };
</script>
</script>