فهرست منبع

实验室看板

cyy 3 سال پیش
والد
کامیت
5456a8442b

+ 50 - 64
package-lock.json

@@ -4229,7 +4229,7 @@
       "version": "3.1.2",
       "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
       "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "normalize-path": "^3.0.0",
         "picomatch": "^2.0.4"
@@ -4497,7 +4497,7 @@
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
       "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
-      "dev": true
+      "devOptional": true
     },
     "node_modules/async-limiter": {
       "version": "1.0.1",
@@ -5085,7 +5085,7 @@
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
       "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
-      "dev": true,
+      "devOptional": true,
       "engines": {
         "node": ">=8"
       }
@@ -5094,7 +5094,7 @@
       "version": "1.5.0",
       "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
       "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "file-uri-to-path": "1.0.0"
       }
@@ -5799,7 +5799,7 @@
       "version": "3.5.3",
       "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
       "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
-      "dev": true,
+      "devOptional": true,
       "funding": [
         {
           "type": "individual",
@@ -5826,7 +5826,7 @@
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
       "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "fill-range": "^7.0.1"
       },
@@ -5838,7 +5838,7 @@
       "version": "7.0.1",
       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
       "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "to-regex-range": "^5.0.1"
       },
@@ -5864,7 +5864,7 @@
       "version": "5.1.2",
       "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
       "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "is-glob": "^4.0.1"
       },
@@ -5876,7 +5876,7 @@
       "version": "7.0.0",
       "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
       "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
-      "dev": true,
+      "devOptional": true,
       "engines": {
         "node": ">=0.12.0"
       }
@@ -5885,7 +5885,7 @@
       "version": "5.0.1",
       "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
       "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "is-number": "^7.0.0"
       },
@@ -9747,7 +9747,7 @@
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
       "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
-      "dev": true
+      "devOptional": true
     },
     "node_modules/filesize": {
       "version": "3.6.1",
@@ -10083,7 +10083,6 @@
       "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
       "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
       "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.",
-      "dev": true,
       "hasInstallScript": true,
       "optional": true,
       "os": [
@@ -10235,7 +10234,7 @@
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
       "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "is-glob": "^3.1.0",
         "path-dirname": "^1.0.0"
@@ -10245,7 +10244,7 @@
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
       "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "is-extglob": "^2.1.0"
       },
@@ -11015,6 +11014,7 @@
       "version": "0.5.5",
       "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
       "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
+      "devOptional": true,
       "bin": {
         "image-size": "bin/image-size.js"
       },
@@ -11389,7 +11389,7 @@
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
       "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "binary-extensions": "^2.0.0"
       },
@@ -11545,7 +11545,7 @@
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
       "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
-      "dev": true,
+      "devOptional": true,
       "engines": {
         "node": ">=0.10.0"
       }
@@ -11577,7 +11577,7 @@
       "version": "4.0.3",
       "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
       "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "is-extglob": "^2.1.1"
       },
@@ -13994,6 +13994,7 @@
       "version": "1.6.0",
       "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
       "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+      "devOptional": true,
       "bin": {
         "mime": "cli.js"
       },
@@ -14378,7 +14379,6 @@
       "version": "2.15.0",
       "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz",
       "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==",
-      "dev": true,
       "optional": true
     },
     "node_modules/nanomatch": {
@@ -14672,7 +14672,7 @@
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
       "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
-      "dev": true,
+      "devOptional": true,
       "engines": {
         "node": ">=0.10.0"
       }
@@ -15436,7 +15436,7 @@
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
       "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
-      "dev": true
+      "devOptional": true
     },
     "node_modules/path-exists": {
       "version": "3.0.0",
@@ -15538,7 +15538,7 @@
       "version": "2.3.1",
       "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
       "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-      "dev": true,
+      "devOptional": true,
       "engines": {
         "node": ">=8.6"
       },
@@ -17042,7 +17042,7 @@
       "version": "3.6.0",
       "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
       "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
-      "dev": true,
+      "devOptional": true,
       "dependencies": {
         "picomatch": "^2.2.1"
       },
@@ -17199,7 +17199,7 @@
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
       "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
-      "dev": true
+      "devOptional": true
     },
     "node_modules/renderkid": {
       "version": "2.0.7",
@@ -20257,7 +20257,7 @@
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
       "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
-      "dev": true,
+      "devOptional": true,
       "engines": {
         "node": ">=4",
         "yarn": "*"
@@ -21206,7 +21206,6 @@
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz",
       "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==",
-      "dev": true,
       "optional": true,
       "dependencies": {
         "chokidar": "^2.1.8"
@@ -21216,7 +21215,6 @@
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
       "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
-      "dev": true,
       "optional": true,
       "dependencies": {
         "micromatch": "^3.1.4",
@@ -21227,7 +21225,6 @@
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
       "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
-      "dev": true,
       "optional": true,
       "dependencies": {
         "remove-trailing-separator": "^1.0.1"
@@ -21240,7 +21237,6 @@
       "version": "1.13.1",
       "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
       "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
-      "dev": true,
       "optional": true,
       "engines": {
         "node": ">=0.10.0"
@@ -21251,7 +21247,6 @@
       "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
       "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
       "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies",
-      "dev": true,
       "optional": true,
       "dependencies": {
         "anymatch": "^2.0.0",
@@ -21274,7 +21269,6 @@
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
       "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
-      "dev": true,
       "optional": true,
       "dependencies": {
         "binary-extensions": "^1.0.0"
@@ -21287,7 +21281,6 @@
       "version": "2.2.1",
       "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
       "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
-      "dev": true,
       "optional": true,
       "dependencies": {
         "graceful-fs": "^4.1.11",
@@ -25767,7 +25760,7 @@
       "version": "3.1.2",
       "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
       "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
-      "dev": true,
+      "devOptional": true,
       "requires": {
         "normalize-path": "^3.0.0",
         "picomatch": "^2.0.4"
@@ -25979,7 +25972,7 @@
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
       "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
-      "dev": true
+      "devOptional": true
     },
     "async-limiter": {
       "version": "1.0.1",
@@ -26460,13 +26453,13 @@
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
       "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
-      "dev": true
+      "devOptional": true
     },
     "bindings": {
       "version": "1.5.0",
       "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
       "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
-      "dev": true,
+      "devOptional": true,
       "requires": {
         "file-uri-to-path": "1.0.0"
       }
@@ -27065,7 +27058,7 @@
       "version": "3.5.3",
       "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
       "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
-      "dev": true,
+      "devOptional": true,
       "requires": {
         "anymatch": "~3.1.2",
         "braces": "~3.0.2",
@@ -27081,7 +27074,7 @@
           "version": "3.0.2",
           "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
           "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
-          "dev": true,
+          "devOptional": true,
           "requires": {
             "fill-range": "^7.0.1"
           }
@@ -27090,7 +27083,7 @@
           "version": "7.0.1",
           "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
           "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
-          "dev": true,
+          "devOptional": true,
           "requires": {
             "to-regex-range": "^5.0.1"
           }
@@ -27106,7 +27099,7 @@
           "version": "5.1.2",
           "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
           "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-          "dev": true,
+          "devOptional": true,
           "requires": {
             "is-glob": "^4.0.1"
           }
@@ -27115,13 +27108,13 @@
           "version": "7.0.0",
           "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
           "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
-          "dev": true
+          "devOptional": true
         },
         "to-regex-range": {
           "version": "5.0.1",
           "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
           "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
-          "dev": true,
+          "devOptional": true,
           "requires": {
             "is-number": "^7.0.0"
           }
@@ -30191,7 +30184,7 @@
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
       "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
-      "dev": true
+      "devOptional": true
     },
     "filesize": {
       "version": "3.6.1",
@@ -30454,7 +30447,6 @@
       "version": "1.2.13",
       "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
       "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
-      "dev": true,
       "optional": true,
       "requires": {
         "bindings": "^1.5.0",
@@ -30566,7 +30558,7 @@
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
       "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
-      "dev": true,
+      "devOptional": true,
       "requires": {
         "is-glob": "^3.1.0",
         "path-dirname": "^1.0.0"
@@ -30576,7 +30568,7 @@
           "version": "3.1.0",
           "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
           "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
-          "dev": true,
+          "devOptional": true,
           "requires": {
             "is-extglob": "^2.1.0"
           }
@@ -31177,7 +31169,8 @@
     "image-size": {
       "version": "0.5.5",
       "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
-      "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w="
+      "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
+      "devOptional": true
     },
     "import-cwd": {
       "version": "2.1.0",
@@ -31468,7 +31461,7 @@
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
       "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
-      "dev": true,
+      "devOptional": true,
       "requires": {
         "binary-extensions": "^2.0.0"
       }
@@ -31576,7 +31569,7 @@
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
       "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
-      "dev": true
+      "devOptional": true
     },
     "is-fullwidth-code-point": {
       "version": "3.0.0",
@@ -31599,7 +31592,7 @@
       "version": "4.0.3",
       "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
       "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
-      "dev": true,
+      "devOptional": true,
       "requires": {
         "is-extglob": "^2.1.1"
       }
@@ -33518,7 +33511,8 @@
     "mime": {
       "version": "1.6.0",
       "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
-      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+      "devOptional": true
     },
     "mime-db": {
       "version": "1.51.0",
@@ -33835,7 +33829,6 @@
       "version": "2.15.0",
       "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz",
       "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==",
-      "dev": true,
       "optional": true
     },
     "nanomatch": {
@@ -34089,7 +34082,7 @@
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
       "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
-      "dev": true
+      "devOptional": true
     },
     "normalize-range": {
       "version": "0.1.2",
@@ -34686,7 +34679,7 @@
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
       "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
-      "dev": true
+      "devOptional": true
     },
     "path-exists": {
       "version": "3.0.0",
@@ -34772,7 +34765,7 @@
       "version": "2.3.1",
       "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
       "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-      "dev": true
+      "devOptional": true
     },
     "pify": {
       "version": "4.0.1",
@@ -36051,7 +36044,7 @@
       "version": "3.6.0",
       "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
       "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
-      "dev": true,
+      "devOptional": true,
       "requires": {
         "picomatch": "^2.2.1"
       }
@@ -36174,7 +36167,7 @@
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
       "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
-      "dev": true
+      "devOptional": true
     },
     "renderkid": {
       "version": "2.0.7",
@@ -38667,7 +38660,7 @@
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
       "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
-      "dev": true
+      "devOptional": true
     },
     "upper-case": {
       "version": "1.1.3",
@@ -39505,7 +39498,6 @@
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz",
       "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==",
-      "dev": true,
       "optional": true,
       "requires": {
         "chokidar": "^2.1.8"
@@ -39515,7 +39507,6 @@
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
           "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
-          "dev": true,
           "optional": true,
           "requires": {
             "micromatch": "^3.1.4",
@@ -39526,7 +39517,6 @@
               "version": "2.1.1",
               "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
               "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
-              "dev": true,
               "optional": true,
               "requires": {
                 "remove-trailing-separator": "^1.0.1"
@@ -39538,14 +39528,12 @@
           "version": "1.13.1",
           "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
           "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
-          "dev": true,
           "optional": true
         },
         "chokidar": {
           "version": "2.1.8",
           "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
           "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
-          "dev": true,
           "optional": true,
           "requires": {
             "anymatch": "^2.0.0",
@@ -39566,7 +39554,6 @@
           "version": "1.0.1",
           "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
           "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
-          "dev": true,
           "optional": true,
           "requires": {
             "binary-extensions": "^1.0.0"
@@ -39576,7 +39563,6 @@
           "version": "2.2.1",
           "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
           "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
-          "dev": true,
           "optional": true,
           "requires": {
             "graceful-fs": "^4.1.11",

+ 2 - 2
src/views/statistics/index.vue

@@ -48,7 +48,7 @@
             <s3tousu :width="static=='row' ? '20%': '100%'"
             v-if="showAll || showComponents[6]" :data = "getS3tousu()"/>
             <s13shengwuCol :width="static=='row' ? '20%': '100%'"
-            v-if="showAll || showComponents[17]"/>
+            v-if="showAll || showComponents[17]" :data = "getS3tousu()"/>
             <!-- <s1zhiLiang1 :width="static=='row' ? '20%': '100%'"
             v-if="showAll || showComponents[2]"    />
             <s1zhiLiang2 :width="static=='row' ? '20%': '100%'"
@@ -148,7 +148,7 @@
   import s10waiBuNengLi from './item/s10waiBuNengLi.vue'
   import s11biaoZhunWu from './item/s11biaoZhunWu.vue'
   import s12fengXian from './item/s12fengXian.vue'
-  import s13shengwuCol from './item/s13shengwuCol.vue'
+  import s13shengwuCol from './item/s13shengWu.vue'
 
   import none from './item/none.vue'
 

+ 1 - 1
src/views/statistics/indexold.vue

@@ -148,7 +148,7 @@
   import s10waiBuNengLi from './item/s10waiBuNengLi.vue'
   import s11biaoZhunWu from './item/s11biaoZhunWu.vue'
   import s12fengXian from './item/s12fengXian.vue'
-  import s13shengwuCol from './item/s13shengwuCol.vue'
+  import s13shengwuCol from './item/s13shengWu.vue'
 
   import none from './item/none.vue'
 

+ 125 - 0
src/views/statistics/item/s13shengWu.vue

@@ -0,0 +1,125 @@
+<template>
+  <div @click="toDetailed()" class="statisticsPage" :style="{width:width}">
+    <div :id="id" :style="{height:height}"/>
+    <!-- 打开详情弹窗-->
+    <div v-if="dialogOff">
+      <dialogView
+        :dialogOff = "dialogOff"
+        @close = "close"
+        :title="title"
+        :data="data"
+      />
+    </div>
+  </div>
+</template>
+
+<script>
+  import echarts from 'echarts'
+  import dialogView from '../properties/s13shengWuPro.vue'
+  import {GetPercent,GetMax} from  '../js/config.js'
+  export default {
+    components:{
+      dialogView
+    },
+    props: {
+      data: {
+        type: Object,
+      },
+      width:{
+        type:String,
+        default:"20%"
+      },
+      height:{
+        type:String,
+        default: window.screen.height/5+"px"
+      },
+      id:{
+        type:String,
+        default:"s13shengWu"
+      },
+      click:{
+        type:String,
+        default:'true'
+      },
+    },
+    data () {
+      return {
+        title:'投诉回复及时率',
+        dialogOff:false,
+        measured:[]
+      }
+    },
+    mounted(){
+      this.drawLine();
+    },
+    methods: {
+      close(){
+        this.dialogOff = false
+      },
+      /* 跳转统计页面*/
+      toDetailed(){
+        if(this.click == "true"){
+        this.dialogOff = true
+       }
+      },
+      drawLine(){
+
+        // let beginInof = Number(this.data.t_complaintBegin.number)
+        // let endInof = Number(this.data.t_complaintEnd.number)
+        let s13shengWu = echarts.init(document.getElementById(this.id))
+        // let beingDate=this.data.t_complaintBegin.date
+        // let endDate=this.data.t_complaintEnd.date
+        var option;
+
+        //v3
+        // let e=[this.data.t_mjsyshdfxsbykzjhxbNum.number[0],this.data.t_mjsyshdfxsbykzjhxbNum.numberAll[0],this.data.t_mjsyshdfxsbykzjhxbNum.res[0]]
+        let e = 100 -this.data.t_complaintNum.res1[0]
+
+
+        option = {
+          title: {
+            text: this.title,
+            // subtext: 'Fake Data',
+            left: 'left',
+            textStyle:{ fontSize:14 }
+          },
+          tooltip: {
+            trigger: 'item'
+          },
+          series: [
+            {
+              type: 'pie',
+              radius: '50%',
+              label: {
+                formatter: '{b}: {d}%'
+              },
+              data: [
+                { value: this.data.t_complaintNum.res1[0], name: '投诉回复及时率' },
+                { value: e, name: '投诉回复不及时率' }
+              ],
+              emphasis: {
+                itemStyle: {
+                  shadowBlur: 10,
+                  shadowOffsetX: 0,
+                  shadowColor: 'rgba(0, 0, 0, 0.5)'
+                }
+              }
+            }
+          ]
+        };
+
+        option && s13shengWu.setOption(option);
+      }
+    }
+  }
+</script>
+<style scoped>
+  #s13shengWu:hover{
+    transition: all 0.5s;
+    transform:scale(1.03);
+  }
+  .statisticsPage{
+     box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+     float: left;
+  }
+</style>

+ 14 - 12
src/views/statistics/item/s13shengwuCol.vue

@@ -15,7 +15,7 @@
 
 <script>
   import echarts from 'echarts'
-  import dialogView from '../properties/s3tousuPro.vue'
+  import dialogView from '../properties/s13shengWuPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {
     components:{
@@ -44,7 +44,7 @@
     },
     data () {
       return {
-        title:'生物安全事故',
+        title:'投诉回复及时率',
         dialogOff:false,
         measured:[]
       }
@@ -83,7 +83,7 @@
         //   // console.log(that.data.t_complaintNum.number[i], that.data.t_mjwtsqbNum.number[i], result, 'res')
         // }
         //v3
-        //  let e=[this.data.t_complaintNum.number[0],this.data.t_complaintNum.numberAll[0],this.data.t_complaintNum.res[0]]
+         let e=[this.data.t_complaintNum.number[0],this.data.t_complaintNum.num48[0]]
 
         option = {
           //v3
@@ -100,15 +100,15 @@
             // dataset: {
             //   source: barData
             // },
-            xAxis: { type: 'category',data:['安全事故数量']},
+            xAxis: { type: 'category',data:['有效投诉总次数','投诉后48h内达成一致解决方案次数']},
             yAxis: [
               {
                 type: 'value',
                 scale: true,
                 name: '数量',
-                // max: this.data.t_complaintNum.number[0]>this.data.t_complaintNum.numberAll[0]?this.data.t_complaintNum.number[0]+1:this.data.t_complaintNum.numberAll[0]+1,
-                // min: 0,
-                // boundaryGap: [0.2, 0.2]
+                max: this.data.t_complaintNum.number[0]>this.data.t_complaintNum.num48[0]?this.data.t_complaintNum.number[0]+1:this.data.t_complaintNum.num48[0]+1,
+                min: 0,
+                boundaryGap: [0.2, 0.2]
               },
               // {
               //   type: 'value',
@@ -126,15 +126,17 @@
             // series: [{ type: 'bar' }],
             series: [
               {
-                data: [0],
+                data: e,
                 type: 'bar',
+                barWidth: '20%',
+
                 itemStyle: {
-                  color: '#cccc33'
+                  color: '#cc6633'
                 },
                 label: {
-                  show: true,
-                  position: 'top'
-                },
+                show: true,
+                position: 'top'
+              },
               }
             ],
             grid: {

+ 2 - 2
src/views/statistics/item/s2manYiDuPro.vue

@@ -87,7 +87,7 @@
         //   }
         //   barData.push(e)
         // }
-        let e=[this.data.t_khmydtjbNum.numberAll[0],this.data.t_khmydtjbNum.number[0]]
+        let e=[this.data.t_khmydtjbNum.num,this.data.t_khmydtjbNum.number[0]]
         // let e=100-this.data.t_khmydtjbNum.res[0]
 
         let beingDate=this.data.t_myddc2Begin.date
@@ -142,7 +142,7 @@
             xAxis: { 
               type: 'category',
               // data:['满意份数', '调查份数', '满意度']
-              data:['调查份数','满意份数']
+              data:['有效问卷总分','评分得分']
             },
             yAxis: [
               {

+ 0 - 1
src/views/statistics/item/s3tousu.vue

@@ -85,7 +85,6 @@
         //v3
         //  let e=[this.data.t_complaintNum.number[0],this.data.t_complaintNum.numberAll[0],this.data.t_complaintNum.res[0]]
         let e = 100-this.data.t_complaintNum.res[0]
-
         option = {
           title: {
             text: this.title,

+ 15 - 13
src/views/statistics/js/selectDB.js

@@ -15,11 +15,11 @@ export const gethechaObj = (end)=>{
 }
 export const getnengliObj = (end)=>{
   // return "select a.t_mjsbjdxzjhzbName,a.t_mjsbjdxzjhzb,b.t_mjsbjdxzjhzbS FROM (select she_bei_ming_chen as t_mjsbjdxzjhzbName, COUNT(she_bei_ming_chen) as t_mjsbjdxzjhzb from t_mjsbjdxzjhzb where YEAR(create_time_)='2022' GROUP BY she_bei_ming_chen HAVING COUNT(she_bei_ming_chen)>=1) as a left join  (select she_bei_ming_chen, COUNT(she_bei_ming_chen) as t_mjsbjdxzjhzbS from t_mjsbjdxzjhzb where YEAR(create_time_)= '2022' AND DATE(yi_jian_xiao_ri_q) >= DATE(ji_hua_ri_qi_) GROUP BY she_bei_ming_chen HAVING COUNT(she_bei_ming_chen)>=1 )as b on a.t_mjsbjdxzjhzbName=b.she_bei_ming_chen"
-  return "select a.enname,a.zhname,ifnull(a.num,0) as num,  ifnull(b.num,0) as numS from(select she_bei_bian_hao_ as enname, suo_yong_she_bei_ as zhname, COUNT(she_bei_bian_hao_) as num from t_nlsysxb where YEAR(yu_ji_shi_jian_)="+end+" GROUP BY she_bei_bian_hao_ HAVING COUNT(she_bei_bian_hao_)>=1) as a LEFT JOIN (select she_bei_bian_hao_ as enname, suo_yong_she_bei_ as zhname, COUNT(she_bei_bian_hao_) as num from t_nlsysxb as c LEFT JOIN t_sysbdhnlyzjh as d on c.parent_id_ = d.id_ where YEAR(c.create_time_)="+end+" and d.shi_fou_guo_shen_='1' GROUP BY she_bei_bian_hao_ HAVING COUNT(she_bei_bian_hao_)>=1) as b on a.enname = b.enname"
+  return "select a.enname,ifnull(a.num,0) as num,  ifnull(b.num,0) as numS from(select jian_ce_biao_zhun as enname, COUNT(jian_ce_biao_zhun) as num from t_ndnlyzsysjbdjhzb where YEAR(yu_ji_shi_jian_)="+end+" GROUP BY jian_ce_biao_zhun HAVING COUNT(jian_ce_biao_zhun)>=1) as a LEFT JOIN (select jian_ce_biao_zhun as enname, COUNT(jian_ce_biao_zhun) as num from t_ndnlyzsysjbdjhzb as c LEFT JOIN t_ndnlyzsysjbdjhb as d on c.parent_id_ = d.id_ where YEAR(c.create_time_)="+end+" and d.shi_fou_guo_shen_='1' GROUP BY jian_ce_biao_zhun HAVING COUNT(jian_ce_biao_zhun)>=1) as b on a.enname = b.enname"
 }
 export const getbiaozhunObj = (end)=>{
   // return "select a.t_mjsbjdxzjhzbName,a.t_mjsbjdxzjhzb,b.t_mjsbjdxzjhzbS FROM (select she_bei_ming_chen as t_mjsbjdxzjhzbName, COUNT(she_bei_ming_chen) as t_mjsbjdxzjhzb from t_mjsbjdxzjhzb where YEAR(create_time_)='2022' GROUP BY she_bei_ming_chen HAVING COUNT(she_bei_ming_chen)>=1) as a left join  (select she_bei_ming_chen, COUNT(she_bei_ming_chen) as t_mjsbjdxzjhzbS from t_mjsbjdxzjhzb where YEAR(create_time_)= '2022' AND DATE(yi_jian_xiao_ri_q) >= DATE(ji_hua_ri_qi_) GROUP BY she_bei_ming_chen HAVING COUNT(she_bei_ming_chen)>=1 )as b on a.t_mjsbjdxzjhzbName=b.she_bei_ming_chen"
-  return "select a.name as name, a.num ,IFNULL(b.numS,0) as numS from(select biao_wu_ming_chen as name, COUNT(biao_wu_ming_chen) as num from t_bzwzhcjhxxb where YEAR(create_time_)="+end+" GROUP BY biao_wu_ming_chen HAVING COUNT(biao_wu_ming_chen)>=1) as a LEFT JOIN (select biao_wu_ming_chen as name, COUNT(biao_wu_ming_chen) as numS from t_bzwzhcjhxxb as c LEFT JOIN t_bzwzhcjhb as d on c.parent_id_ = d.id_ where YEAR(c.create_time_)="+end+" and d.shi_fou_guo_shen_='1' GROUP BY biao_wu_ming_chen HAVING COUNT(biao_wu_ming_chen)>=1) as b on a.name = b.name"
+  return "select a.name as name, a.num ,IFNULL(b.numS,0) as numS from(select zhuan_huan_ as name, COUNT(zhuan_huan_) as num from t_bzwzqjhcjhzb where YEAR(create_time_)="+end+" GROUP BY zhuan_huan_ HAVING COUNT(zhuan_huan_)>=1) as a LEFT JOIN (select zhuan_huan_ as name, COUNT(zhuan_huan_) as numS from t_bzwzqjhcjhzb as c LEFT JOIN t_bzwzqjhcjhb as d on c.parent_id_ = d.id_ where YEAR(c.create_time_)="+end+" and d.shi_fou_guo_shen_='1' GROUP BY zhuan_huan_ HAVING COUNT(zhuan_huan_)>=1) as b on a.name = b.name"
 }
 export const DBData = (begin,end,scope)=>{
   // return "select tt.*,cast(1-(t_gdyrqcwt4"+begin+"/t_gdyrqcwt"+begin+")  AS decimal(32,2)) as t_gdyrqcwt6"+begin+
@@ -121,8 +121,8 @@ function toolSame(val,tableName,where,join){
 }
 /* 任务完成 */
 function s1renwu(begin,end,scope){
-  return "( SELECT COUNT( id_ ) AS t_jchzb"+end+" FROM t_jchzb "+ "WHERE shi_fou_guo_shen_ = '1' AND YEAR( create_time_ ) = "+end+") s1renwu1  JOIN"+
-  "( SELECT COUNT( id_ ) AS t_jchzbS"+end+" FROM t_jchzb WHERE shi_fou_guo_shen_ = '1' AND YEAR ( create_time_ ) = "+end+" ) s1renwu2  "
+  return "( SELECT COUNT( id_ ) AS t_lhjczb"+end+" FROM t_lhjczb "+ "WHERE zhuang_tai_ = '已完成' AND YEAR( create_time_ ) = "+end+") s1renwu1  JOIN"+
+  "( SELECT COUNT( id_ ) AS t_lhjczbS"+end+" FROM t_lhjczb WHERE YEAR ( create_time_ ) = "+end+" ) s1renwu2  "
  
   }
 /* 检测 */
@@ -152,8 +152,8 @@ function s1jianCe(begin,end){
   /* 检测 */
 function s2jianCe(begin,end){
   //v3
-  return "( SELECT COUNT( id_ ) AS t_mjjcbg"+end+" FROM t_mjjcbg "+ "WHERE shi_fou_guo_shen_ = '已退回' AND YEAR( create_time_ ) = "+end+" ) s2jianCe1 JOIN"+
-  "( SELECT COUNT( id_ ) AS t_mjjcbgS"+end+" FROM t_mjjcbg WHERE  YEAR ( create_time_ ) = "+end+" ) s2jianCe2 "
+  return "( SELECT COUNT( id_ ) AS t_mjjcbg"+end+" FROM t_lhjcbgb "+ "WHERE trim(tui_hui_ci_shu_) != '' AND YEAR( create_time_ ) = "+end+" ) s2jianCe1 JOIN"+
+  "( SELECT COUNT( id_ ) AS t_mjjcbgS"+end+" FROM t_lhjcbgb WHERE  YEAR ( create_time_ ) = "+end+" ) s2jianCe2 "
   //委托检测数
   // return "SELECT *  FROM (select COUNT( id_ ) AS t_gdyrqcwt"+begin+" from t_gdyrgpjc WHERE YEAR( create_time_ ) = "+begin+" union all select id_ from t_gdyrqcjc WHERE YEAR( create_time_ ) = "+begin+") s1jianCe1  JOIN "+
   // "(SELECT COUNT( id_ ) AS t_gdyrqcwt"+end+" FROM (select id_ from t_gdyrgpjc WHERE YEAR( create_time_ ) = '"+end+"' union all select id_ from t_gdyrqcjc WHERE YEAR( create_time_ ) = '"+end+"') a0) s1jianCe2 on 1=1 join "+
@@ -193,7 +193,7 @@ function s2jianCe(begin,end){
   // }
   // let sqlAll = sql + sql1
   // return sqlAll
-  return "( SELECT COUNT( id_ ) AS t_khmydtjb"+end+" FROM t_khmydtjb "+ "WHERE man_yi_du_ = '满意' AND YEAR( create_time_ ) = "+end+" ) s2manYiDu1  JOIN"+
+  return "( SELECT COUNT(id_) as t_khmydtjbnum"+end+",sum(ping_fen_1_)+sum(ping_fen_2_)+sum(ping_fen_3_)+sum(ping_fen_4_)+sum(ping_fen_5_)  AS t_khmydtjb"+end+" FROM t_khmyddcb WHERE YEAR( create_time_ ) = "+end+" ) s2manYiDu1  JOIN"+
   "( SELECT COUNT( id_ ) AS t_khmydtjbS"+end+" FROM t_khmydtjb WHERE  YEAR ( create_time_ ) = "+end+" ) s2manYiDu2 "
    //调查表总数
   // return "( SELECT COUNT( id_ ) AS t_myddc"+begin+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = "+begin+" ) s2manYiDu1  JOIN "+
@@ -220,8 +220,9 @@ function s2jianCe(begin,end){
 }
 /* 投诉 */
 function s3tousu(begin,end,scope){
-  return "( SELECT COUNT( id_ ) AS t_complaint"+end+" FROM t_complaint WHERE YEAR ( create_time_ ) = "+end+" ) s3tousu1  JOIN "+
-  "( SELECT COUNT( id_ ) AS t_mjwtsqb"+end+" FROM t_mjwtsqb WHERE  YEAR ( create_time_ ) = "+end+" ) s3weituo1"
+  return "( SELECT COUNT( id_ ) AS t_complaint"+end+" FROM t_complaint WHERE you_wu_you_xiao_ = '有效投诉' and YEAR ( create_time_ ) = "+end+" ) s3tousu1  JOIN "+
+  "( SELECT COUNT( id_ ) AS t_complaintS"+end+" FROM t_complaint WHERE you_wu_you_xiao_ = '有效投诉' and chu_li_shi_jian_='<48h' and shi_fou_tong_yi_='同意' and YEAR ( create_time_ ) = "+end+" ) s3tousu2  JOIN "+
+  "( SELECT COUNT( id_ ) AS t_mjwtsqb"+end+" FROM t_lhjczb WHERE  YEAR ( create_time_ ) = "+end+" ) s3weituo1"
   // let sql = "( SELECT COUNT( id_ ) AS t_complaint"+begin+" FROM t_complaint WHERE YEAR ( create_time_ ) = "+begin+" ) s3tousu1  JOIN "
   // for (let i = 1; i < scope.length; i++) {
   //   if(i === scope.length - 1){
@@ -248,8 +249,8 @@ function s3tousu(begin,end,scope){
  }
  /* 人员培训 */
 function s4renYuanPeiXun(begin,end,scope){
-  return "( SELECT COUNT( id_ ) AS t_ryywpxjl"+end+" FROM t_ryywpxjl WHERE shi_fou_guo_shen_ = '1' AND YEAR ( create_time_ ) = "+end+" ) s4renYuanPeiXun1  JOIN "+
-  "( SELECT COUNT( id_ ) AS t_ryywpxjlS"+end+" FROM t_ryywpxjl WHERE  YEAR ( create_time_ ) = "+end+" ) s4renYuanPeiXun2"
+  return "( SELECT COUNT( id_ ) AS t_ryywpxjl"+end+" FROM t_lhrypxjlb WHERE shi_fou_guo_shen_ = '1' AND YEAR ( create_time_ ) = "+end+" ) s4renYuanPeiXun1  JOIN "+
+  "( SELECT COUNT( id_ ) AS t_ryywpxjlS"+end+" FROM t_lhrypxjlb WHERE  YEAR ( create_time_ ) = "+end+" ) s4renYuanPeiXun2"
   // let sql = "( SELECT COUNT( id_ ) AS t_ryywpxjl"+begin+" FROM t_ryywpxjl WHERE zhuang_tai_ = '已完成' AND YEAR ( create_time_ ) = "+begin+" ) s4renYuanPeiXun1  JOIN "
   // for (let i = 1; i < scope.length; i++) {
   //   if(i === scope.length - 1){
@@ -275,8 +276,8 @@ function s4renYuanPeiXun(begin,end,scope){
  }
  /* 人员监督 */
 function s5renYuanJianDu(begin,end, scope){
-  return "( SELECT COUNT( id_ ) AS t_zljd"+end+" FROM t_zljd WHERE shi_fou_guo_shen_= '1' AND YEAR ( create_time_ ) = "+end+" ) s5renYuanJianDu1  JOIN "+
-  "( SELECT COUNT( id_ ) AS t_zljdS"+end+" FROM t_zljd WHERE  YEAR ( create_time_ ) = "+end+" ) s5renYuanJianDu2"
+  return "( SELECT COUNT( id_ ) AS t_zljd"+end+" FROM t_lhryjdjlb WHERE shi_fou_guo_shen_= '1' AND YEAR ( create_time_ ) = "+end+" ) s5renYuanJianDu1  JOIN "+
+  "( SELECT COUNT( id_ ) AS t_zljdS"+end+" FROM t_lhryjdjlb WHERE  YEAR ( create_time_ ) = "+end+" ) s5renYuanJianDu2"
   // let sql = "( SELECT COUNT( id_ ) AS t_zljd"+begin+" FROM t_zljd WHERE shi_fou_guo_shen_= '1' AND YEAR ( create_time_ ) = "+begin+" ) s5renYuanJianDu1  JOIN "
   // for (let i = 1; i < scope.length; i++) {
   //   if(i === scope.length - 1){
@@ -350,3 +351,4 @@ function s9neiBu(begin,end,scope){
   "(select COUNT(t_mjsyshdfxsbykzjhxb.id_) as t_mjsyshdfxsbykzjhxbS"+end+" from t_mjsyshdfxsbykzjhxb INNER JOIN t_mjsyshdfxsbykzjhb on t_mjsyshdfxsbykzjhxb.parent_id_ = t_mjsyshdfxsbykzjhb.id_  where YEAR(t_mjsyshdfxsbykzjhxb.shi_shi_ri_qi_)="+end+" and t_mjsyshdfxsbykzjhb.shi_fou_guo_shen_ = '1') s12fengxian2 "
 
  }
+

+ 119 - 0
src/views/statistics/properties/s13shengWuPro.vue

@@ -0,0 +1,119 @@
+<template>
+    <el-dialog
+      :visible.sync="visible"
+      ref="dialog"
+      :title="title+'详情'"
+      width="100%"
+      lock-scroll
+      append-to-body
+      fullscreen
+      close-on-press-escape
+      destroy-on-close
+      v-if="visible"
+      @close="handleClose">
+
+      <div>
+
+    <el-container>
+      <!-- <el-aside style="border:0px;width: 13%;"></el-aside> -->
+      <!-- 放统计内容-->
+      <el-aside style="border:0px;width: 70%;margin-top: 2%;">
+          <s13shengWuItem
+            :data="data"
+            width="50%"
+            :height="height"
+            id="s13shengWuPro"
+            click="false"
+          />
+          <s13shengWuCItem
+            :data="data"
+            width="50%"
+            :height="height"
+            id="s13shengWuCPro"
+            click="false"
+          />
+      </el-aside>
+        <!-- 参数页面列 -->
+        <el-aside style="border:0px;width: 30%;">
+           <div class="dataCont" style="font-size: 14px;">
+            <el-divider content-position="left">{{data.t_complaintNum.date}} 年度</el-divider>
+              投诉后48h内达成一致解决方案次数 :<el-tag>{{data.t_complaintNum.number[0]}} 次</el-tag>
+              <br>
+              有效投诉总次数 :<el-tag>{{data.t_complaintNum.numberAll[0]}} 次</el-tag>
+              <br>
+              投诉回复及时率 :<el-tag>{{data.t_complaintNum.res[0]}} %</el-tag>
+            <br>
+              <!-- <div v-for="(item,i) in data.t_complaintNum.number" :key="i">
+                  <el-divider content-position="left">{{data.t_complaintNum.date[i]}} 年度</el-divider>
+                  投诉总数次数 :<el-tag>{{data.t_complaintNum.number[i]}} 次</el-tag>
+                  <br>
+                  委托总数次数 :<el-tag>{{data.t_mjwtsqbNum.number[i]}} 次</el-tag>
+                  <br>
+              </div> -->
+
+           </div>
+
+        </el-aside>
+
+      </el-container>
+
+
+      </div>
+    </el-dialog>
+</template>
+
+<script>
+  export default {
+    props:{
+        dialogOff:{ //当前表单示例
+            type: Boolean,
+            default:false,
+          },
+        title:{ type:String},
+        data:{
+          type:Object
+        },
+        height:{
+          type:String,
+          default:window.screen.height * 0.5 +'px'
+        }
+      },
+      beforeCreate: function () {
+          // 官方文档给出的是require
+           this.$options.components.s13shengWuItem = () => import('../item/s13shengWu.vue')
+           this.$options.components.s13shengWuCItem = () => import('../item/s13shengWuCol.vue')
+          },
+
+    watch:{
+     dialogOff: {
+       handler: function(val, oldVal) {
+        this.visible = JSON.parse(JSON.stringify(val));
+        this.itemShow = true
+        },
+        immediate: true
+      }
+    },
+    data() {
+      return {
+        visible:false,
+        itemShow:false,
+
+      }
+    },
+    methods:{
+       // 关闭窗口
+      handleClose(){
+       this.$emit('close', false)
+      }
+    }
+  }
+</script>
+
+<style scoped>
+  .dataCont{
+    border:0px;
+    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+    height: calc(100vh * 0.85);
+    padding:20px;
+  }
+</style>

+ 2 - 2
src/views/statistics/properties/s2manYiDuPro.vue

@@ -38,9 +38,9 @@
         <el-aside style="border:0px;width: 30%;">
            <div  class="dataCont" style="font-size: 14px;">
               <el-divider content-position="left">{{data.t_khmydtjbNum.date}} 年度</el-divider>
-              调查表满意份数 :<el-tag>{{data.t_khmydtjbNum.number[0]}} 次</el-tag>
+              评分得分 :<el-tag>{{data.t_khmydtjbNum.number[0]}} </el-tag>
               <br>
-              收回调查表有效总份数 :<el-tag>{{data.t_khmydtjbNum.numberAll[0]}} 次</el-tag>
+              有效问卷总分 :<el-tag>{{data.t_khmydtjbNum.numberAll[0]}} </el-tag>
               <br>
               客户满意度 :<el-tag>{{data.t_khmydtjbNum.res[0]}} %</el-tag>
               <br>

+ 19 - 6
src/views/statistics/sendDatas.js

@@ -258,8 +258,8 @@ export default {
                         }
                 },
                 getS1renwu(){
-                        let jchzbNum = this.getMatchingData('t_jchzb')
-                        let jchzbSNum = this.getMatchingDataSame('t_jchzb')
+                        let jchzbNum = this.getMatchingData('t_lhjczb')
+                        let jchzbSNum = this.getMatchingDataSame('t_lhjczb')
                         let barData = []
                         // for (let i = 0; i < this.dataScope.length; i++) {
                                 let e=0
@@ -270,6 +270,7 @@ export default {
                                 }
                                 barData.push(e)
                         // }
+                        console.log(jchzbNum,jchzbSNum,'hsuihsahiu')
                         return {
                                 "t_jchzbNum" :{"date": this.endDate,"number": jchzbNum, "numberAll": jchzbSNum, "res": barData},
                                 "config":this.getMyConfig("检测") //返回需要的对应参数
@@ -315,15 +316,17 @@ export default {
                 },
                 getS2manYiDu(){
                         let khmydtjbNum = this.getMatchingData('t_khmydtjb')
+                        let khmydtjbNumN = this.getMatchingData('t_khmydtjbnum') * 50
                         let khmydtjbSNum = this.getMatchingDataSame('t_khmydtjb')
                         let barData = []
                         // for (let i = 0; i < this.dataScope.length; i++) {
                                 let e=0
-                                if (khmydtjbSNum[0]===0) {
+                                if (khmydtjbNumN===0) {
                                         e =0
                                 } else {
-                                        e =Math.floor(khmydtjbNum[0]/khmydtjbSNum[0] * 10000) / 100
+                                        e =Math.floor(khmydtjbNum[0]/khmydtjbNumN * 10000) / 100
                                 }
+                                console.log(e,'eeeeee')
                                 barData.push(e)
                         // }
                         return {
@@ -341,23 +344,33 @@ export default {
                                 "t_myddc5End" :{"date": this.endDate,"number": this.relData['t_myddc5'+this.endDate]},
                                 "t_myddc6Begin" :{"date": this.BeginDate,"number": this.relData['t_myddc6'+this.BeginDate]},
                                 "t_myddc6End" :{"date": this.endDate,"number": this.relData['t_myddc6'+this.endDate]},
-                                "t_khmydtjbNum" :{"date": this.endDate,"number": khmydtjbNum, "numberAll": khmydtjbSNum, "res": barData},
+                                "t_khmydtjbNum" :{"date": this.endDate,"number": khmydtjbNum, "numberAll": khmydtjbSNum, "res": barData,'num':khmydtjbNumN},
                                 "config":this.getMyConfig("客户满意度") //返回需要的对应参数
                         }
                 },
                 getS3tousu(){
                         let complaintNum = this.getMatchingData('t_complaint')
+                        let complaintNumS = this.getMatchingDataSame('t_complaint')
                         let mjwtsqbNum = this.getMatchingData('t_mjwtsqb')
                         let e=0
                         let barData =[]
+                        let e1=0
+                        let barData1 =[]
                         if (mjwtsqbNum[0]===0) {
                                 e =0
                         } else {
                                 e =Math.floor(complaintNum[0]/mjwtsqbNum[0] * 10000) / 100
                         }
+                        if (complaintNum[0]===0) {
+                                e1 =0
+                        } else {
+                                e1 =Math.floor(complaintNumS[0]/complaintNum[0] * 10000) / 100
+                        }
                         barData.push(e)
+                        barData1.push(e1)
+                        
                         return {
-                                "t_complaintNum" :{"date": this.endDate,"number": complaintNum,"numberAll":mjwtsqbNum,"res":barData},
+                                "t_complaintNum" :{"date": this.endDate,"number": complaintNum,"numberAll":mjwtsqbNum,"res":barData,"num48":complaintNumS,"res1":barData1},
                                 "t_mjwtsqbNum" :{"date": this.dataScope,"number": mjwtsqbNum},
                                 "config":this.getMyConfig("客户投诉率") //返回需要的对应参数
                         }