فهرست منبع

钉钉第二期 最终版本(PC)

347617796@qq.com 4 سال پیش
والد
کامیت
b0454cf9ad

+ 180 - 209
package-lock.json

@@ -1069,21 +1069,6 @@
       "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=",
       "dev": true
     },
-    "@npmcli/move-file": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/@npmcli/move-file/download/@npmcli/move-file-1.0.1.tgz",
-      "integrity": "sha1-3hAwcNrA9IzknPZpPCOvWcD3BGQ=",
-      "requires": {
-        "mkdirp": "^1.0.4"
-      },
-      "dependencies": {
-        "mkdirp": {
-          "version": "1.0.4",
-          "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz",
-          "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34="
-        }
-      }
-    },
     "@polka/url": {
       "version": "1.0.0-next.11",
       "resolved": "https://registry.npm.taobao.org/@polka/url/download/@polka/url-1.0.0-next.11.tgz",
@@ -1925,6 +1910,7 @@
       "version": "3.0.1",
       "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.0.1.tgz",
       "integrity": "sha1-2y/nJG5Tb0DZtUQqOeEX191qJOA=",
+      "dev": true,
       "requires": {
         "clean-stack": "^2.0.0",
         "indent-string": "^4.0.0"
@@ -1951,7 +1937,8 @@
     "ajv-keywords": {
       "version": "3.5.2",
       "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1595907068314&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz",
-      "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0="
+      "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=",
+      "dev": true
     },
     "alphanum-sort": {
       "version": "1.0.2",
@@ -2322,7 +2309,8 @@
     "balanced-match": {
       "version": "1.0.0",
       "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz",
-      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+      "dev": true
     },
     "base": {
       "version": "0.11.2",
@@ -2519,6 +2507,7 @@
       "version": "1.1.11",
       "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz",
       "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=",
+      "dev": true,
       "requires": {
         "balanced-match": "^1.0.0",
         "concat-map": "0.0.1"
@@ -3067,7 +3056,8 @@
     "clean-stack": {
       "version": "2.2.0",
       "resolved": "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz?cache=0&sync_timestamp=1592035200599&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz",
-      "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs="
+      "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=",
+      "dev": true
     },
     "cli-cursor": {
       "version": "2.1.0",
@@ -3286,7 +3276,8 @@
     "commondir": {
       "version": "1.0.1",
       "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz",
-      "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
+      "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+      "dev": true
     },
     "component-emitter": {
       "version": "1.3.0",
@@ -3342,189 +3333,183 @@
       }
     },
     "compression-webpack-plugin": {
-      "version": "6.1.1",
-      "resolved": "https://registry.npm.taobao.org/compression-webpack-plugin/download/compression-webpack-plugin-6.1.1.tgz?cache=0&sync_timestamp=1610367212945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression-webpack-plugin%2Fdownload%2Fcompression-webpack-plugin-6.1.1.tgz",
-      "integrity": "sha1-ro5LL/23OWu3duZpGNdRog2Mzw4=",
+      "version": "1.1.12",
+      "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-1.1.12.tgz",
+      "integrity": "sha512-UpBXSHbrCSdSZieAffqXlAQpLO2fikVVRYibrWlbHYzKpOw1Y4jwkVZ/+S91GzWuJvXSbc8SBy/e8fQJh8uEMQ==",
+      "dev": true,
       "requires": {
-        "cacache": "^15.0.5",
-        "find-cache-dir": "^3.3.1",
-        "schema-utils": "^3.0.0",
-        "serialize-javascript": "^5.0.1",
-        "webpack-sources": "^1.4.3"
+        "cacache": "^10.0.1",
+        "find-cache-dir": "^1.0.0",
+        "neo-async": "^2.5.0",
+        "serialize-javascript": "^1.4.0",
+        "webpack-sources": "^1.0.1"
       },
       "dependencies": {
-        "@types/json-schema": {
-          "version": "7.0.6",
-          "resolved": "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.6.tgz?cache=0&sync_timestamp=1605053861867&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.6.tgz",
-          "integrity": "sha1-9MfsQ+gbMZqYFRFQMXCfJph4kfA="
-        },
-        "ajv": {
-          "version": "6.12.6",
-          "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1609583946707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
-          "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
-          "requires": {
-            "fast-deep-equal": "^3.1.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
         "cacache": {
-          "version": "15.0.5",
-          "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-15.0.5.tgz?cache=0&sync_timestamp=1594429684526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-15.0.5.tgz",
-          "integrity": "sha1-aRYoM9opFw1nMjNGQ8YOAF9fF9A=",
+          "version": "10.0.4",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
+          "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
+          "dev": true,
           "requires": {
-            "@npmcli/move-file": "^1.0.1",
-            "chownr": "^2.0.0",
-            "fs-minipass": "^2.0.0",
-            "glob": "^7.1.4",
-            "infer-owner": "^1.0.4",
-            "lru-cache": "^6.0.0",
-            "minipass": "^3.1.1",
-            "minipass-collect": "^1.0.2",
-            "minipass-flush": "^1.0.5",
-            "minipass-pipeline": "^1.2.2",
-            "mkdirp": "^1.0.3",
-            "p-map": "^4.0.0",
+            "bluebird": "^3.5.1",
+            "chownr": "^1.0.1",
+            "glob": "^7.1.2",
+            "graceful-fs": "^4.1.11",
+            "lru-cache": "^4.1.1",
+            "mississippi": "^2.0.0",
+            "mkdirp": "^0.5.1",
+            "move-concurrently": "^1.0.1",
             "promise-inflight": "^1.0.1",
-            "rimraf": "^3.0.2",
-            "ssri": "^8.0.0",
-            "tar": "^6.0.2",
-            "unique-filename": "^1.1.1"
+            "rimraf": "^2.6.2",
+            "ssri": "^5.2.4",
+            "unique-filename": "^1.1.0",
+            "y18n": "^4.0.0"
           }
         },
-        "chownr": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-2.0.0.tgz",
-          "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4="
-        },
         "find-cache-dir": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz",
-          "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=",
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
+          "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+          "dev": true,
           "requires": {
             "commondir": "^1.0.1",
-            "make-dir": "^3.0.2",
-            "pkg-dir": "^4.1.0"
+            "make-dir": "^1.0.0",
+            "pkg-dir": "^2.0.0"
           }
         },
         "find-up": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169795121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz",
-          "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=",
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+          "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+          "dev": true,
           "requires": {
-            "locate-path": "^5.0.0",
-            "path-exists": "^4.0.0"
+            "locate-path": "^2.0.0"
           }
         },
         "locate-path": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz",
-          "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=",
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+          "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+          "dev": true,
           "requires": {
-            "p-locate": "^4.1.0"
+            "p-locate": "^2.0.0",
+            "path-exists": "^3.0.0"
           }
         },
         "lru-cache": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz?cache=0&sync_timestamp=1594427582110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-6.0.0.tgz",
-          "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=",
+          "version": "4.1.5",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+          "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+          "dev": true,
           "requires": {
-            "yallist": "^4.0.0"
+            "pseudomap": "^1.0.2",
+            "yallist": "^2.1.2"
           }
         },
         "make-dir": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz?cache=0&sync_timestamp=1587567572251&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz",
-          "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=",
+          "version": "1.3.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+          "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+          "dev": true,
           "requires": {
-            "semver": "^6.0.0"
+            "pify": "^3.0.0"
           }
         },
-        "mkdirp": {
-          "version": "1.0.4",
-          "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz",
-          "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34="
-        },
-        "p-locate": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1597081369770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz",
-          "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=",
+        "mississippi": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
+          "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==",
+          "dev": true,
           "requires": {
-            "p-limit": "^2.2.0"
+            "concat-stream": "^1.5.0",
+            "duplexify": "^3.4.2",
+            "end-of-stream": "^1.1.0",
+            "flush-write-stream": "^1.0.0",
+            "from2": "^2.1.0",
+            "parallel-transform": "^1.1.0",
+            "pump": "^2.0.1",
+            "pumpify": "^1.3.3",
+            "stream-each": "^1.1.0",
+            "through2": "^2.0.0"
           }
         },
-        "p-map": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-4.0.0.tgz",
-          "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=",
+        "p-limit": {
+          "version": "1.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+          "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+          "dev": true,
           "requires": {
-            "aggregate-error": "^3.0.0"
+            "p-try": "^1.0.0"
           }
         },
-        "path-exists": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz",
-          "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM="
-        },
-        "pkg-dir": {
-          "version": "4.2.0",
-          "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz",
-          "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=",
+        "p-locate": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+          "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+          "dev": true,
           "requires": {
-            "find-up": "^4.0.0"
+            "p-limit": "^1.1.0"
           }
         },
-        "rimraf": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz",
-          "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=",
-          "requires": {
-            "glob": "^7.1.3"
-          }
+        "p-try": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+          "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+          "dev": true
         },
-        "schema-utils": {
+        "pify": {
           "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-3.0.0.tgz",
-          "integrity": "sha1-Z1AvaqK2ai1AMrQnmilEl4oJE+8=",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+          "dev": true
+        },
+        "pkg-dir": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
+          "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+          "dev": true,
           "requires": {
-            "@types/json-schema": "^7.0.6",
-            "ajv": "^6.12.5",
-            "ajv-keywords": "^3.5.2"
+            "find-up": "^2.1.0"
           }
         },
-        "semver": {
-          "version": "6.3.0",
-          "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606853731020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
-          "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0="
-        },
-        "serialize-javascript": {
-          "version": "5.0.1",
-          "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-5.0.1.tgz",
-          "integrity": "sha1-eIbshIBJpGJGepfT2Rjrsqr5NPQ=",
+        "pump": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+          "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+          "dev": true,
           "requires": {
-            "randombytes": "^2.1.0"
+            "end-of-stream": "^1.1.0",
+            "once": "^1.3.1"
           }
         },
+        "serialize-javascript": {
+          "version": "1.9.1",
+          "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz",
+          "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==",
+          "dev": true
+        },
         "ssri": {
-          "version": "8.0.0",
-          "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.0.tgz",
-          "integrity": "sha1-ecp04h+M6u3fy0uQFDxFi42YiAg=",
+          "version": "5.3.0",
+          "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
+          "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
+          "dev": true,
           "requires": {
-            "minipass": "^3.1.1"
+            "safe-buffer": "^5.1.1"
           }
         },
         "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz",
-          "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI="
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+          "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+          "dev": true
         }
       }
     },
     "concat-map": {
       "version": "0.0.1",
       "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz",
-      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+      "dev": true
     },
     "concat-stream": {
       "version": "1.6.2",
@@ -5292,7 +5277,8 @@
     "fast-deep-equal": {
       "version": "3.1.3",
       "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599697571&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz",
-      "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU="
+      "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=",
+      "dev": true
     },
     "fast-glob": {
       "version": "2.2.7",
@@ -5334,7 +5320,8 @@
     "fast-json-stable-stringify": {
       "version": "2.1.0",
       "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz?cache=0&sync_timestamp=1576340291001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz",
-      "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM="
+      "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=",
+      "dev": true
     },
     "fast-levenshtein": {
       "version": "2.0.6",
@@ -5586,6 +5573,7 @@
       "version": "2.1.0",
       "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz?cache=0&sync_timestamp=1579628575109&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz",
       "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=",
+      "dev": true,
       "requires": {
         "minipass": "^3.0.0"
       }
@@ -5605,7 +5593,8 @@
     "fs.realpath": {
       "version": "1.0.0",
       "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz",
-      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+      "dev": true
     },
     "fsevents": {
       "version": "2.1.3",
@@ -5666,6 +5655,7 @@
       "version": "7.1.6",
       "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz?cache=0&sync_timestamp=1573078121947&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz",
       "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=",
+      "dev": true,
       "requires": {
         "fs.realpath": "^1.0.0",
         "inflight": "^1.0.4",
@@ -6217,12 +6207,14 @@
     "imurmurhash": {
       "version": "0.1.4",
       "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz",
-      "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
+      "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+      "dev": true
     },
     "indent-string": {
       "version": "4.0.0",
       "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz",
-      "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE="
+      "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=",
+      "dev": true
     },
     "indexes-of": {
       "version": "1.0.1",
@@ -6233,12 +6225,14 @@
     "infer-owner": {
       "version": "1.0.4",
       "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz",
-      "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc="
+      "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=",
+      "dev": true
     },
     "inflight": {
       "version": "1.0.6",
       "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz",
       "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+      "dev": true,
       "requires": {
         "once": "^1.3.0",
         "wrappy": "1"
@@ -6247,7 +6241,8 @@
     "inherits": {
       "version": "2.0.4",
       "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz",
-      "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w="
+      "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=",
+      "dev": true
     },
     "inquirer": {
       "version": "7.3.3",
@@ -6813,7 +6808,8 @@
     "json-schema-traverse": {
       "version": "0.4.1",
       "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
-      "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA="
+      "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+      "dev": true
     },
     "json-stable-stringify-without-jsonify": {
       "version": "1.0.1",
@@ -7322,6 +7318,7 @@
       "version": "3.0.4",
       "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz",
       "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
+      "dev": true,
       "requires": {
         "brace-expansion": "^1.1.7"
       }
@@ -7336,6 +7333,7 @@
       "version": "3.1.3",
       "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-3.1.3.tgz",
       "integrity": "sha1-fUL/HzljVILhX5zbUxhN7r1YFf0=",
+      "dev": true,
       "requires": {
         "yallist": "^4.0.0"
       },
@@ -7343,7 +7341,8 @@
         "yallist": {
           "version": "4.0.0",
           "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz",
-          "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI="
+          "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=",
+          "dev": true
         }
       }
     },
@@ -7351,6 +7350,7 @@
       "version": "1.0.2",
       "resolved": "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz",
       "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=",
+      "dev": true,
       "requires": {
         "minipass": "^3.0.0"
       }
@@ -7359,6 +7359,7 @@
       "version": "1.0.5",
       "resolved": "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz",
       "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=",
+      "dev": true,
       "requires": {
         "minipass": "^3.0.0"
       }
@@ -7367,26 +7368,11 @@
       "version": "1.2.4",
       "resolved": "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.4.tgz?cache=0&sync_timestamp=1595998621838&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-pipeline%2Fdownload%2Fminipass-pipeline-1.2.4.tgz",
       "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=",
+      "dev": true,
       "requires": {
         "minipass": "^3.0.0"
       }
     },
-    "minizlib": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npm.taobao.org/minizlib/download/minizlib-2.1.2.tgz",
-      "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=",
-      "requires": {
-        "minipass": "^3.0.0",
-        "yallist": "^4.0.0"
-      },
-      "dependencies": {
-        "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz",
-          "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI="
-        }
-      }
-    },
     "mississippi": {
       "version": "3.0.0",
       "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz",
@@ -7832,6 +7818,7 @@
       "version": "1.4.0",
       "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz",
       "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+      "dev": true,
       "requires": {
         "wrappy": "1"
       }
@@ -7939,6 +7926,7 @@
       "version": "2.3.0",
       "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594559734248&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz",
       "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=",
+      "dev": true,
       "requires": {
         "p-try": "^2.0.0"
       }
@@ -7973,7 +7961,8 @@
     "p-try": {
       "version": "2.2.0",
       "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz",
-      "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY="
+      "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=",
+      "dev": true
     },
     "pako": {
       "version": "1.0.11",
@@ -8092,7 +8081,8 @@
     "path-is-absolute": {
       "version": "1.0.1",
       "resolved": "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz",
-      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+      "dev": true
     },
     "path-is-inside": {
       "version": "1.0.2",
@@ -8928,7 +8918,8 @@
     "promise-inflight": {
       "version": "1.0.1",
       "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz",
-      "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM="
+      "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
+      "dev": true
     },
     "promise-polyfill": {
       "version": "7.1.2",
@@ -9021,7 +9012,8 @@
     "punycode": {
       "version": "2.1.1",
       "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz",
-      "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew="
+      "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=",
+      "dev": true
     },
     "q": {
       "version": "1.5.1",
@@ -9031,7 +9023,7 @@
     },
     "qrcodejs2": {
       "version": "0.0.2",
-      "resolved": "https://registry.npm.taobao.org/qrcodejs2/download/qrcodejs2-0.0.2.tgz",
+      "resolved": "https://registry.npmjs.org/qrcodejs2/-/qrcodejs2-0.0.2.tgz",
       "integrity": "sha1-Rlr+Xjnxn6zsuTLBH3oYYQkUauE="
     },
     "qs": {
@@ -9072,6 +9064,7 @@
       "version": "2.1.0",
       "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz",
       "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=",
+      "dev": true,
       "requires": {
         "safe-buffer": "^5.1.0"
       }
@@ -9476,7 +9469,8 @@
     "safe-buffer": {
       "version": "5.1.2",
       "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz",
-      "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0="
+      "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=",
+      "dev": true
     },
     "safe-regex": {
       "version": "1.1.0",
@@ -10009,7 +10003,8 @@
     "source-list-map": {
       "version": "2.0.1",
       "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz",
-      "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ="
+      "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=",
+      "dev": true
     },
     "source-map": {
       "version": "0.5.7",
@@ -10683,36 +10678,6 @@
       "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=",
       "dev": true
     },
-    "tar": {
-      "version": "6.1.0",
-      "resolved": "https://registry.npm.taobao.org/tar/download/tar-6.1.0.tgz?cache=0&sync_timestamp=1610045450553&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-6.1.0.tgz",
-      "integrity": "sha1-0XJOm8wEuXexjVxXOzM6IgcimoM=",
-      "requires": {
-        "chownr": "^2.0.0",
-        "fs-minipass": "^2.0.0",
-        "minipass": "^3.0.0",
-        "minizlib": "^2.1.1",
-        "mkdirp": "^1.0.3",
-        "yallist": "^4.0.0"
-      },
-      "dependencies": {
-        "chownr": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-2.0.0.tgz",
-          "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4="
-        },
-        "mkdirp": {
-          "version": "1.0.4",
-          "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz",
-          "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34="
-        },
-        "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz",
-          "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI="
-        }
-      }
-    },
     "terser": {
       "version": "4.8.0",
       "resolved": "https://registry.npm.taobao.org/terser/download/terser-4.8.0.tgz?cache=0&sync_timestamp=1593953638544&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz",
@@ -11098,6 +11063,7 @@
       "version": "1.1.1",
       "resolved": "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz",
       "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=",
+      "dev": true,
       "requires": {
         "unique-slug": "^2.0.0"
       }
@@ -11106,6 +11072,7 @@
       "version": "2.0.2",
       "resolved": "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz",
       "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=",
+      "dev": true,
       "requires": {
         "imurmurhash": "^0.1.4"
       }
@@ -11184,6 +11151,7 @@
       "version": "4.2.2",
       "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz",
       "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=",
+      "dev": true,
       "requires": {
         "punycode": "^2.1.0"
       }
@@ -12103,6 +12071,7 @@
       "version": "1.4.3",
       "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz",
       "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=",
+      "dev": true,
       "requires": {
         "source-list-map": "^2.0.0",
         "source-map": "~0.6.1"
@@ -12111,7 +12080,8 @@
         "source-map": {
           "version": "0.6.1",
           "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM="
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+          "dev": true
         }
       }
     },
@@ -12201,7 +12171,8 @@
     "wrappy": {
       "version": "1.0.2",
       "resolved": "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz",
-      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+      "dev": true
     },
     "write": {
       "version": "1.0.3",

+ 1 - 1
package.json

@@ -12,7 +12,6 @@
   },
   "dependencies": {
     "axios": "^0.19.2",
-    "compression-webpack-plugin": "^6.1.1",
     "core-js": "^3.6.5",
     "cross-env": "^7.0.3",
     "dingtalk-jsapi": "^2.13.20",
@@ -33,6 +32,7 @@
     "@vue/cli-plugin-vuex": "~4.4.0",
     "@vue/cli-service": "~4.4.0",
     "babel-eslint": "^10.1.0",
+    "compression-webpack-plugin": "^1.1.12",
     "eslint": "^6.7.2",
     "eslint-plugin-vue": "^6.2.2",
     "sass": "^1.26.5",

+ 1 - 0
src/components/season.vue

@@ -118,6 +118,7 @@
     box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
     background: #fff;
     padding: 5px;
+    padding-right: 20px;
   }
 
   .show1 p:nth-child(1) {

+ 0 - 86
src/home.vue

@@ -1277,92 +1277,6 @@ export default {
 		window.removeEventListener('resize', this.selfAdaption); //取消echarts自适应
 	},
 	created() {
-	var user = {
-      accedence_time: "2020-12-26 15:04:33",
-      company_id: '',
-      company_info: { creator_ids: [167], id: 15, industry: '计算机软件', is_official: 1, logo_url: '', name: '测试组织', status: 1, user_count_max: 50 },
-      employee_detail: {
-        dept_list: [],
-        manage_scope: [{"id": 164,"name": "刘瑞欣"},{"id": 165,"name": "方慧毅"},{"id": 166,"name": "郭家裕(创始人)"},{"id": 184,"name": "莫仕钊"},{"id": 185,"name": "秦杨升"}],
-        permission_list: [],
-        role_list: [
-          { id: 15, name: 'employee', remark: '员工' },
-          { id: 12, name: 'admin', remark: '公司管理员' },
-        //   { id: 14, name: 'dept_manager', remark: '部门管理者' },
-        //   { id: 13, name: 'point_manager', remark: '积分管理员' },
-        //   { id: 11, name: 'creator', remark: '创始人' }
-        ],
-        superior_list: [{id: 164,name: "刘瑞欣"},
-				{id: 165,name: "方慧毅"},
-				{id: 166,name: "郭家裕(创始人)"},
-				{id: 184,name: "莫仕钊"},
-				{id: 185,name: "秦杨升"},
-				{id: 187,name: "梁丽焕"},
-				{id: 188,name: "刘俊华"},{id: 167,name: "蔡文"}]
-      },
-      id: 186,
-      img_url: "https://static-legacy.dingtalk.com/media/lADPBE1Xcf-wCfbNAwvNAwA_768_779.jpg",
-      is_admin: 0,
-      is_creator: 0,
-      is_official: 1,
-      is_scope: 1,
-      letter_index: 'C',
-      name: '程健',
-      point_config: {
-        deduct_task_monthly: [
-          {
-            name: "A分",
-            point: "0",
-            pt_id: 2
-          },
-          {
-            name: "B分",
-            point: "0",
-            pt_id: 3
-          }
-        ],
-        reward_ratio: 0,
-        exec_count: 0,
-        exec_count_point: 0,
-        reward_ratio_point: 0,
-        service_point: 0,
-        entry_limit: 1000,
-        point_limit: [
-          {
-            name: "A分",
-            point: "200",
-            pt_id: 2
-          },
-          {
-            name: "B分",
-            point: "100",
-            pt_id: 3
-          }
-        ],
-        reward_task_monthly: [
-          {
-            name: "A分",
-            point: "0",
-            pt_id: 2
-          },
-          {
-            name: "B分",
-            point: "0",
-            pt_id: 3
-          }
-        ],
-      },
-      post: '',
-      site_config: {
-        base_point: 120,
-        rule_limit_check: 1,
-        task_review: 0,
-        service_point: 120,
-        a2b: 0
-      },
-      site_id: 15
-    };
-    // localStorage.setItem('userData',JSON.stringify(user));
 	}
 };
 </script>

+ 17 - 16
src/views/abPoint/apply_list.vue

@@ -23,9 +23,9 @@
 			</el-table-column>
 			<el-table-column label="积分" prop="review_point" width="120">
 				<template slot-scope="scope">
-					<span :class="{ color_green: scope.row.point < 0, color_red: scope.row.point > 0 }">
-						<span v-show="scope.row.point > 0">+</span>
-						{{ scope.row.point }} {{ scope.row.pt_id == 3 ? 'B分' : scope.row.pt_id == 2 ? 'A分' : scope.row.pt_id == 1 ? '绩效分' : '' }}
+					<span :class="{ color_green: scope.row.review_point < 0, color_red: scope.row.review_point > 0 }">
+						<span v-show="scope.row.review_point > 0">+</span>
+						{{ scope.row.review_point }} {{ scope.row.pt_id == 3 ? 'B分' : scope.row.pt_id == 2 ? 'A分' : scope.row.pt_id == 1 ? '绩效分' : '' }}
 					</span>
 				</template>
 			</el-table-column>
@@ -45,20 +45,20 @@
 			</template>
 		</el-table>
 
-		<el-table :data="dataList" stripe fit v-loading="table_loading" v-if="tabs == 'waiting'" @row-click="openDetail">
+		<el-table :data="dataList" stripe fit v-loading="table_loading" v-show="tabs == 'waiting'" @row-click="openDetail">
 			<el-table-column label="申请内容" prop="remark">
 				<template slot-scope="scope">
 					{{ scope.row.remark.customize || scope.row.remark.rule }}
 				</template>
 			</el-table-column>
-			<el-table-column label="积分" prop="review_point" width="120">
+			<!-- <el-table-column label="积分" prop="review_point" width="120">
 				<template slot-scope="scope">
 					<span>
 						<span v-show="scope.row.point > 0">+</span>
 						{{ scope.row.point }} B分
 					</span>
 				</template>
-			</el-table-column>
+			</el-table-column> -->
 			<el-table-column label="时间" prop="event_time" width="150"></el-table-column>
 			<template slot="empty">
 				<div class="nopoint_box" v-if="!formData.keyword">
@@ -119,7 +119,8 @@
 						<div class="user_text">
 							<p style="margin-left: 10px;">{{detail_info.employee_name}}</p>
 							<!-- 优化 -->
-							<div v-for="(item, index) in detail_info.process" :key="index" v-show="item.review_point != 0">
+							<!-- <div v-for="(item, index) in detail_info.process" :key="index" v-show="item.review_point != 0"> -->
+							<div v-show="detail_info.review_point != 0">
 								<p v-if="detail_info.status == 1">
 									<!-- <span
 										v-show="
@@ -143,25 +144,25 @@
 									</span> -->
 									<span
 										v-show="
-											(item.review_point >= 0 && detail_info.item_prize_type == 1) ||
-												(item.review_point >= 0 && detail_info.item_prize_type == -1) ||
-												(item.review_point >= 0 && detail_info.item_prize_type == 0)
+											(detail_info.review_point >= 0 && detail_info.item_prize_type == 1) ||
+												(detail_info.review_point >= 0 && detail_info.item_prize_type == -1) ||
+												(detail_info.review_point >= 0 && detail_info.item_prize_type == 0)
 										"
 										style="color:#f56c6c;font-size:16px;padding-left:8px"
 									>
-										+{{ item.review_point }}
+										+{{ detail_info.review_point }}
 									</span>
 									<span
 										v-show="
-											(item.review_point <= 0 && detail_info.item_prize_type == 2) ||
-												(item.review_point <= 0 && detail_info.item_prize_type == -1) ||
-												(item.review_point <= 0 && detail_info.item_prize_type == 0)
+											(detail_info.review_point <= 0 && detail_info.item_prize_type == 2) ||
+												(detail_info.review_point <= 0 && detail_info.item_prize_type == -1) ||
+												(detail_info.review_point <= 0 && detail_info.item_prize_type == 0)
 										"
 										style="color:#67C23A;font-size:16px;padding-left:8px"
 									>
-										{{ item.review_point }}
+										{{ detail_info.review_point }}
 									</span>
-									<span v-show="detail_info.point">
+									<span>
 										{{ detail_info.pt_id == 1 ? '绩效分' : detail_info.pt_id == 2 ? 'A分' : detail_info.pt_id == 3 ? 'B分' : '' }}
 									</span>
 								</p>

+ 1 - 1
src/views/abPoint/award_punish.vue

@@ -179,7 +179,7 @@
 								</template>
 								<template slot="description" style="display:flex;">
 									<div style="color:rgb(130 130 130);">{{ item.time }}</div>
-									<div style="color:rgb(113 113 113);font-size:14px;">{{item.review_remark}}</div>
+									<div style="color:rgb(113 113 113);font-size:14px;margin-bottom:15px;">{{item.review_remark}}</div>
 								</template>
 							</el-step>
 						</el-steps>

+ 1017 - 0
src/views/ranking/custom_rank code.vue

@@ -0,0 +1,1017 @@
+<template>
+	<div class="all-box">
+		<div class="all">
+			<div class="flex-box" v-loading="groups_loading">
+				<div class="terr-left">
+					<el-button v-if="employeeOrdept" size="medium" @click="addGroup" type="primary">新建分组</el-button>
+					<el-menu default-active="0" class="el-menu-vertical-demo" style="border: none" v-if="groups_list.length>0">
+						<el-menu-item
+							style="height: 47px;line-height: 47px;"
+							:index="index.toString()"
+							class="font-flex-word"
+							v-for="(item, index) in groups_list"
+							:key="index"
+							@click="open_right(item)"
+							v-show="item.code !== 'employee'"
+						>
+							<i class="el-icon-document-copy"></i>
+							<span slot="title">{{ item.name }}</span>
+						</el-menu-item>
+					</el-menu>
+					<div v-else style="text-align: center;margin-top: 10%;" class="fontColorF">
+						<img src="@/assets/image/nodata.png" style="width: 180px;height: 120px;margin: 30px auto;">
+						还没有自定义分组
+					</div>
+				</div>
+				<div class="terr-right border-right flex-1" v-loading="table_loading">
+					<div class="listData" v-if="table_list.length > 0">
+						<div class="flex-box">
+							<div class="flex-box flex-v-ce margin-bottom">
+								<div class="groupsName">{{groups_info.name}}<span class="blue">({{total}}人)</span></div>
+								<el-button v-if="employeeOrdept" @click="editGroup" size="medium">编辑</el-button>
+							</div>
+						</div>
+						<!-- form -->
+						<el-form :model="params" :inline="true" ref="params">
+							<!-- <el-form-item label="时间" label-width="40px">
+								<el-date-picker v-model="params.month"  size="medium" type="month" placeholder="请选择月份" value-format="yyyy-MM"></el-date-picker>
+							</el-form-item> -->
+
+							<el-form-item label="月份" label-width="40px" v-if="newGroupForm.date_interval == 1">
+								<el-date-picker v-model="time.month" type="month" :clearable="false" placeholder="请选择月份" value-format="yyyy-MM"></el-date-picker>
+							</el-form-item>
+
+							<el-form-item label="年份" label-width="40px" v-if="newGroupForm.date_interval == 3">
+								<el-date-picker v-model="time.year" type="year" :clearable="false" placeholder="请选择年份" value-format="yyyy"></el-date-picker>
+							</el-form-item>
+							<el-form-item label="季度" label-width="40px" v-if="newGroupForm.date_interval == 2">
+								<!-- <el-date-picker
+								v-model="time.quarter"
+								type="month"
+								placeholder="请选择季度"
+								value-format="Q"
+								></el-date-picker> -->
+
+								<Season :defaultHint="true" :isActive="true" class="date-picker-width" @confirm="export_quarter_confirm"></Season>
+							</el-form-item>
+
+							<el-form-item>
+								<el-checkbox v-model="sort" size="medium" label="由低到高" border></el-checkbox>
+							</el-form-item>
+						</el-form>
+						<!-- 表格 -->
+						<el-table :data="table_list" style="width: 100%" >
+							<el-table-column label="名次" width="80" align="center">
+								<template slot-scope="scope">
+									<img v-if="scope.row.rank === 1" src="@/assets/image/statistics_NO1.png" alt="" />
+									<img v-if="scope.row.rank === 2" src="@/assets/image/statistics_NO2.png" alt="" />
+									<img v-if="scope.row.rank === 3" src="@/assets/image/statistics_NO3.png" alt="" />
+									<span v-if="scope.row.rank > 3">{{ scope.row.rank }}</span>
+								</template>
+							</el-table-column>
+							<el-table-column label="姓名" align="left">
+								<template slot-scope="scope">
+									<div class="flex-box">
+										<userImage	class="fl" :user_name="scope.row.name"	:img_url="scope.row.img_url" width="50px" height="50px"></userImage>
+										<span style="line-height: 50px; padding-left: 10px;">{{ scope.row.name }}</span>
+									</div>
+								</template>
+							</el-table-column>
+							<el-table-column label="B分" align="left" prop="point"></el-table-column>
+							<template slot="empty">
+								<noData></noData>
+							</template>
+						</el-table>
+						<center style="padding: 20px 0;">
+							<el-pagination
+								background
+								@size-change="handleSizeChange"
+								@current-change="handleCurrentChange"
+								:page-sizes="[10, 20, 30, 40, 50, 100]"
+								layout="total, sizes, prev, pager, next"
+								:page-size="params.page_size"
+								:current-page="params.page"
+								:total="total">
+							</el-pagination>
+						</center>
+					</div>
+					<div v-else style="margin-top: 10%;">
+						<noData :isSolt="true">
+							<template v-slot:default>
+								<div style="text-align: center;">还没有分组<span v-if="employeeOrdept">,</span><span v-if="employeeOrdept" style="color:#26A2FF;cursor:pointer" @click="addGroup">去添加 >></span></div>
+							</template>
+						</noData>
+					</div>
+				</div>
+			</div>
+		</div>
+		<!-- 新增编辑分组 -->
+		<el-dialog	:title="popupType? '新增分组':'编辑分组'" width="660px"  top="5%" :visible.sync="groupShow" @close="resetForm('newGroupForm')" :close-on-click-modal="false">
+			<el-form  ref="newGroupForm" :model="newGroupForm" :rules="rules" label-width="85px" @submit.native.prevent>
+				<el-form-item label="分组名称" prop="group_name">
+					<el-input v-model="newGroupForm.group_name" placeholder="请输入分组名称" :clearable="true"></el-input>
+				</el-form-item>
+				<el-form-item label="分组成员">
+				  <el-input v-model="employeeNames" placeholder="全部成员"></el-input>
+				  <div @click="isEmployeeShow=true" style="height:36px; position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;cursor:pointer"></div>
+				  <el-dialog title="选择人员" width="700px" :visible.sync="isEmployeeShow"  append-to-body :before-close="handleClose">
+					<EmployeeSelector
+						v-if="isEmployeeShow"
+						ref="Employee"
+						:user_no_select="false"
+						:can_select_dept="true"
+						:selected="employees_selected"
+						:close_clear_data="true"
+						@confirm="move_employee_confirm"/>
+						<span slot="footer" class="dialog-footer">
+							<el-button @click="isEmployeeShow = false">取 消</el-button>
+							<el-button type="primary" @click="submitEmployee()">确 定</el-button>
+						</span>
+				   </el-dialog>
+				   
+				</el-form-item> 
+				<el-form-item label="积分规则">
+				  <el-input v-model="newGroupFormRules" placeholder="全部规则分类"></el-input>
+				  <div @click="ruleDialogTableVisibles" style="height:36px; position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;cursor:pointer"></div>
+				  <div style="margin-bottom:12px;">
+				    <span style="font-size:13px;color:rgb(138 138 138);position: absolute; top: 30px; left: 0;">{{ruleHint}}</span>
+				  </div>
+				  <el-dialog title="选择规则" width="800px" :visible.sync="ruleDialogTableVisible" append-to-body :before-close="handleClose">
+					  <div style="display:flex;position: relative;width:100%;height:40px">
+						<span style="position: absolute;line-height:40px;left:20px">已选:{{ valuesOrLength.length }}条</span>
+						<el-input type="text" class="search" style="position: absolute;right:20px;width:20%" placeholder="输入关键字搜索" v-model.trim="keyword" />
+					  </div>
+					  <el-row class="architecture">
+						<el-col :span="8" class="RuleLeft" style="height:500px">
+						  <div  class="rule_class_box">
+							<el-tree
+							  ref="menum"
+							  class="cate-tree"
+							  node-key="id"
+							  :accordion="true"
+							  :highlight-current="true"
+							  :data="rule_trees"
+							  :default-expand-all="false"
+							  :props="defaultProps"
+							  :expand-on-click-node="false"
+							  @node-click="handleNodeClick"
+							>
+							  <div content="tree"  v-if="!data.dis"  v-show="rule_trees.length != 0"  slot-scope="{ node, data }">
+								<span class="name">{{ data.name }}</span>
+							  </div>
+							</el-tree>
+						  </div>
+						</el-col>
+						<el-col :span="16" class="RuleRight" v-loading="tableLoadingRule" style="height:500px;overflow-y:auto">
+						  <el-table
+							ref="multipleTable"
+							:data="tableData_rule"
+							tooltip-effect="dark"
+							style="width: 100%;cursor:pointer"
+							@select="onTableSelect"
+							@select-all="selectAll"
+							@cell-click="clicktable"
+						  >
+							<el-table-column type="selection" width="55"></el-table-column>
+							<el-table-column prop="remark" :label="'全选'" show-overflow-tooltip></el-table-column>
+						  </el-table>
+						</el-col>
+					  </el-row>
+					  <span slot="footer" class="dialog-footer">
+						<el-button @click="ruleDialogTableVisible = false">取 消</el-button>
+						<el-button type="primary" @click="ruleDialogTableVisibleQD">确 定</el-button>
+					  </span>
+				   </el-dialog>
+				</el-form-item>
+				
+				<el-form-item label="统计周期" label-width="85px" prop="date_interval" :show-message="false">
+				  <el-select v-model="newGroupForm.date_interval" placeholder="请选择周期">
+					<el-option v-for="item in options_time" :key="item.value" :label="item.label" :value="item.value"></el-option>
+				  </el-select>
+				</el-form-item>
+			</el-form>
+			<div class="flex-box flex-v-ce">
+				<el-button type="danger" v-if="!popupType" :disabled="delLoad" :loading="delLoad" @click="delItem">删除</el-button>
+				<div class="flex-1"></div>
+				<el-button @click="resetForm('newGroupForm')">取 消</el-button>
+				<el-button type="primary" :loading="saveLoad" :disabled="saveLoad" @click="subGroupForm('newGroupForm')">确 定</el-button>
+			</div>
+		</el-dialog>
+		
+	
+	</div>
+</template>
+
+<script>
+import EmployeeSelector from '@/components/EmployeeSelector.vue';
+import noData from '@/components/noData';
+import moment from 'moment'
+var selecteds = [];
+let selectionID = [];
+export default {
+	components: { EmployeeSelector, noData },
+	data() {
+		return {
+			page: 1,
+			page_size: 10,
+			total: null,
+			tips_show:false,
+			groups_list:[],
+			groups_loading:false,
+			table_loading:false,
+			table_list:[],
+			time: {
+				year: moment().format('YYYY'), //年
+				quarter: moment().format('YYYYQ'), //季度
+				month: moment().format('YYYY-MM') //月
+			},
+			groups_info: {
+				name:'',
+				employees: []
+			},
+			// 
+			params:{
+				page: 1,
+				page_size: 10,
+				group_id: '',
+				// month: moment().format('YYYY-MM'),
+				sort: 'asc',
+				// rule_id: '',
+			},
+			rule_trees: [],
+      		clickItem: null,
+			groupShow: false,
+			rules: { 
+				group_name: [{ required: true, message: '请输入分组名称', trigger: 'blur' },{ min: 2, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }],
+				date_interval: [{ required: true, message: '请选择周期', trigger: 'change' }],
+			},
+			newGroupForm:{
+				group_name: "",
+				employees: [],
+				items:[],
+				date_interval:"1",
+			},
+			saveLoad: false,
+			delLoad: false,
+			show_employee_selector: false,
+			employee_not_select: [],
+			employees_selected: {employee:[], dept: []},
+			props:{checkStrictly: true,value: 'id', label: 'name',children:'child'},
+			sort: false,
+			
+			popupType: false,
+			
+			// 添加分组(第二期内容添加)
+			ruleDialogTableVisible:false,
+			defaultProps: {
+			  children: 'child',
+			  label: 'name'
+			},
+			tableLoadingRule:false,
+			tableData_rule: [],
+			options_time_value: '',
+			options_time: [
+			  {
+			    value: '1',
+			    label: '月度'
+			  },
+			  {
+			    value: '2',
+			    label: '季度'
+			  },
+			  {
+			    value: '3',
+			    label: '年度'
+			  }
+			],
+			newGroupFormRules:'',
+			ruleHint:'统计所有积分(基础分和工龄分除外)',
+			valuesOrLength: [],
+			keyword:'',
+			treedata: [],
+			isEmployeeShow:false,
+			employeeNames:'',
+			employeeOrdept:!this.$authoritys('employee') && !this.$authoritys('dept_manager'),
+		};
+	},
+	created() {
+		this.getRuleList();
+		this.get_groups_list(true);
+	},
+	watch:{
+		'params.rule_id'(){
+			this.$refs.rule.dropDownVisible = false;
+		},
+		
+		'time.month'(val, old_val) {
+			this.time.month = val;
+			this.params.page = 1;
+			this.open_right(this.clickItem);
+		},
+		'time.year'(val, old_val) {
+			this.time.year = val;
+			this.params.page = 1;
+			this.open_right(this.clickItem);
+		},
+		// 'params.month'(val,old_val){
+		// 	this.page = 1
+		// 	this.open_right()
+		// },
+		'sort'(val){
+			this.params.page = 1;
+			val ? (this.params.sort = 'desc') : (this.params.sort = 'asc');
+			this.open_right(this.clickItem);
+		},
+		keyword() {
+		  //函数节流
+		  if (this.timer) {
+		    clearTimeout(this.timer);
+		  }
+		  //清空 全部
+		  if (!this.keyword) {
+		    this.tableData_rule = this.tableData_rule2;
+		    this.ifPitchOnChild(this.tableData_rule, selecteds);
+		    return;
+		  }
+		  this.timer = setTimeout(() => {
+		    const result = [];
+		    this.tableData_rule2.forEach(val => {
+		      if (val.remark.indexOf(this.keyword) > -1) {
+		        result.push(val);
+		      }
+		    });
+		    this.tableData_rule = result;
+		    this.ifPitchOnChild(this.tableData_rule, selecteds);
+		  }, 100);
+		}
+	},
+	mounted() {
+
+	},
+	methods: {
+		// 第二期内容
+		
+		//
+		submitEmployee(){
+			this.$refs.Employee.confirm();//调用组件的confirm();
+		},
+		//点击规则弹出窗口
+		ruleDialogTableVisibles() {
+		  this.tableLoadingRule = true;
+		  selecteds = this.valuesOrLength;
+		  //点击弹出窗口并展示所有数据
+		  let tableData_r = [];
+		  for (let i in this.itemList) {
+		    for (let a in this.itemList[i]) {
+		      tableData_r.push(this.itemList[i][a]);
+		    }
+		  }
+		  this.tableData_rule2 = tableData_r; //赋予筛选数据
+		  this.tableData_rule = tableData_r;
+		  this.ruleDialogTableVisible = true;
+		  this.ifPitchOnChild(this.tableData_rule, selecteds);
+		},
+		
+		//规则弹窗确定
+		ruleDialogTableVisibleQD() {
+		  let valuesLengths = [];
+		  for (let i in selecteds) {
+		    valuesLengths.push(selecteds[i]);
+		  }
+		  this.valuesOrLength = valuesLengths;
+		  this.newGroupForm.items = this.valuesOrLength;
+		  if (this.valuesOrLength.length >= 1) {
+		    this.newGroupFormRules = this.valuesOrLength.length + '条规则';
+		    this.ruleHint = '统计已选规则的积分(只选分类不指定规则的积分除外)'
+		  } else {
+		    this.newGroupFormRules = '';
+		    this.ruleHint = '统计所有积分(基础分和工龄分除外)'
+		  }
+		  this.ruleDialogTableVisible = false;
+		},
+		//点击某行
+		clicktable(row, column, cell, event) {
+		  let selectedsif = false;
+		  for (let i in selecteds) {
+		    if (row.id == selecteds[i]) {
+		      selectedsif = true;
+		      selecteds.splice(i, 1);
+		      this.toggleSelection([row], false);
+		    }
+		  }
+		  if (selectedsif == false) {
+		    selecteds.push(row.id);
+		    this.ifPitchOnChild(this.tableData_rule, selecteds);
+		  }
+		},
+		//全选
+		selectAll(selection) {
+		  for (let i in selection) {
+		    selectionID.push(selection[i].id);
+		  }
+		  let tableData_rules = []; //当前分页id
+		  for (let i in this.tableData_rule) {
+		    tableData_rules.push(this.tableData_rule[i].id);
+		  }
+		  selectionID = [...new Set(selectionID)];
+		  if (selection.length == 0) {
+		    //全不选
+		    var diff = [];
+		    var tmp = tableData_rules;
+		    selectionID.forEach(function(val1, i) {
+		      if (tableData_rules.indexOf(val1) < 0) {
+		        diff.push(val1);
+		      } else {
+		        tmp.splice(tmp.indexOf(val1), 1);
+		      }
+		    });
+		    selectionID = diff.concat(tmp);
+		  }
+		  selecteds = [...new Set(selectionID)];
+		  this.valuesOrLength = selecteds;
+		},
+		onTableSelect(rows, row) {
+		  let selected = rows.length && rows.indexOf(row) !== -1;
+		  if (selected) {
+		    selecteds.push(row.id);
+		  } else {
+		    for (let i in selecteds) {
+		      if (row.id == selecteds[i]) {
+		        selecteds.splice(i, 1);
+		      }
+		    }
+		  }
+		},
+		//关闭
+		handleClose(done) {
+		  done();
+		},
+		// 选择时间-季度
+		export_quarter_confirm(val) {
+		this.time.quarter = val;
+		this.params.page = 1;
+		console.log("1")
+		this.open_right(this.clickItem);
+		},
+		//此方法:拿到当前点击规则分类的所有子节点ID,(为了包含子分类 规则)
+		menuIdInit(menus) {
+		  var _this = this;
+		  var _menu = menus;
+		  var menuId = [];
+		  var len = _menu.length;
+		  for (var i = 0; i < len; i++) {
+		    var item = _menu[i];
+		    if (item.child && item.child.length != 0) {
+		      var child = item.child;
+		      for (var j = 0; j < child.length; j++) {
+		        _menu[len + j] = child[j];
+		      }
+		      len = _menu.length;
+		    }
+		    menuId.push(item.id);
+		  }
+		  return menuId;
+		},
+		//点击规则分类
+		handleNodeClick(data) {
+		  let dataArr = this.menuIdInit([data]); //调用方法
+		  this.tableLoadingRule = true;
+		  this.keyword = ''; //切换规则重置搜索框
+		  let tableData_r = [];
+		  for (let i in this.itemList) {
+		    for (let a in this.itemList[i]) {
+		      for (let x in dataArr) {
+		        if (dataArr[x] == this.itemList[i][a].rule_id) {
+		          tableData_r.push(this.itemList[i][a]);
+		        }
+		      }
+		    }
+		  }
+		  this.tableData_rule2 = tableData_r; //赋予筛选数据
+		  this.tableData_rule = tableData_r;
+		  this.ifPitchOnChild(this.tableData_rule, selecteds);
+		},
+		ifPitchOnChild(item, indexID) {
+		  let pitchOnChild = [];
+		  for (let i in item) {
+		    for (let a in indexID) {
+		      //判断外层的值相不相等
+		      if (indexID[a] == item[i].id) {
+		        pitchOnChild.push(item[i]);
+		      }
+		    }
+		  }
+		  this.toggleSelection(pitchOnChild, true);
+		},
+		//默认选中
+		toggleSelection(rows, selected) {
+		  if (rows) {
+		    this.$nextTick(() => {
+		      rows.forEach(row => {
+		        this.$refs.multipleTable.toggleRowSelection(row, selected);
+		      });
+		    });
+		  } else {
+		    this.$refs.multipleTable.clearSelection();
+		  }
+		  setTimeout(() => {
+		    //给遮到层,让默认选中的有缓冲时间
+		    this.tableLoadingRule = false;
+		  }, 300);
+		},
+		
+
+		// 提交表单
+		subGroupForm(formName){
+		  this.$refs[formName].validate((valid) => {
+		    if (valid) {
+				this.saveFun()
+		    }
+		  });
+		},
+		//获取分组详情
+		getGroupDetail(func){
+			this.$axios('get','/api/integral/statistics/groups/info', {group_id: this.groups_info.id}).then(res => {
+				func(res.data.data);
+			})
+		},
+		//编辑
+		editGroup(){
+			var that=this;
+			this.getGroupDetail(function(res){
+				that.groups_info = res;
+				// 分组名称
+				that.newGroupForm.group_name = res.name;
+				
+				// 规则
+				that.newGroupForm.items = [];
+				for (let i in res.items) {
+				  that.newGroupForm.items.push(res.items[i].id);
+				}
+				that.valuesOrLength = that.newGroupForm.items;
+				if (that.valuesOrLength.length >= 1) {
+				  that.newGroupFormRules = that.valuesOrLength.length + '条规则';
+				  that.ruleHint = '统计已选规则的积分(只选分类不指定规则的积分除外)'
+				} else {
+				  that.newGroupFormRules = '';
+				  that.ruleHint = '统计所有积分(基础分和工龄分除外)'
+				}
+				
+				// 统计周期
+				that.newGroupForm.date_interval = String(res.date_interval);
+				that.options_time_value = res.date_interval == 1 ? '月度' : res.date_interval == 2 ? '季度' : res.date_interval == 3 ? '年度' : '';
+				
+				// 分组人员
+				that.newGroupForm.employees = [];
+				that.employeeNames ="";
+				res.employees.forEach(element => {
+				  that.newGroupForm.employees.push(element.id);
+				  that.employeeNames += element.name + ',';
+				});
+				that.employees_selected.employee=res.employees;
+				
+				
+				that.popupType = false;
+				that.groupShow = true;
+			})
+		},
+		//添加编辑组
+		saveFun(){
+		  this.saveLoad = true;
+		  var url=this.popupType? '/api/integral/statistics/groups/create':'/api/integral/statistics/groups'
+		  this.newGroupForm.group_id=this.groups_info.id;
+		  // return;
+		  var obj={//为编辑时
+			  name:this.newGroupForm.group_name,
+			  id:this.popupType?'':this.groups_info.id,
+			  employees:this.newGroupForm.employees,
+		  }
+		  this.$axios('post',url,this.newGroupForm).then((res) => {
+		    if (res.data.code == 1) {
+				this.$message.success(res.data.msg);
+				if(!this.popupType){//为编辑时
+					this.groups_info=obj;
+				}
+				if(this.groups_list.length==0){
+					this.get_groups_list(true)
+				}else{
+					this.get_groups_list()
+				}
+				this.resetForm('newGroupForm');
+		    }else{
+			  this.saveLoad = false
+		      this.$message.error(res.data.msg)
+		    }
+		  }).finally(()=>{
+				this.saveLoad = false
+		  })
+		},
+		// 重置表单
+		resetForm(formName){
+			this.$refs[formName].resetFields()
+			this.newGroupForm.employees = []
+			this.employee_not_select = []
+			this.employeeNames='';
+			this.employees_selected = {employee:[], dept: []}
+			this.groupShow = false
+		},
+		// 新增分组
+		addGroup(){
+			this.employee_not_select = []
+			this.newGroupFormRules='';
+			this.employees_selected = {employee:[], dept: []}
+			this.newGroupForm = {
+				group_name: "",
+				employees: [],
+				items:[],
+				date_interval:"1",
+			}
+			this.groupShow = true
+			this.popupType = true
+		},
+		// 删除分组
+		delItem(){
+			this.$confirm('确定要删除当前分组吗?, 是否继续?', '删除分组', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning'
+			}).then(() => {
+				let data = {group_id:this.groups_info.id};
+				this.delLoad = true
+				this.$axios('post','/api/integral/statistics/groups/drop',data).then((res) => {
+					if (res.data.code == 1) {
+						this.$message.success(res.data.msg)
+						this.groupShow = false
+						this.get_groups_list(true);
+					}else{
+						this.$message.error(res.data.msg)
+					}
+				}).finally(()=>{
+					this.delLoad = false
+				})
+			})
+		},
+		
+		// 选人组件提交
+		move_employee_confirm(data){
+			this.employeeNames='';
+			this.newGroupForm.employees=[];
+			var employee=data.employee;
+			if(employee.length>0){
+				employee.forEach(item=>{
+					this.employeeNames+=item.name+','
+					this.newGroupForm.employees.push(item.id);
+				})
+			}else{
+				this.newGroupForm.employees=[];
+			}
+			this.employees_selected.employee=employee;
+			this.isEmployeeShow=false;
+		},
+		// 递归判断列表,把最后的children设为undefined
+		getTreeData(data) {
+			for (var i = 0; i < data.length; i++) {
+				if (data[i].child.length < 1) {
+					// children若为空数组,则将children设为undefined
+					data[i].child = undefined;
+				} else {
+					// children若不为空数组,则继续 递归调用 本方法
+					this.getTreeData(data[i].child);
+				}
+			}
+			return data;
+		},
+		//获取规则
+		getRuleList() {
+			this.$axios('get','/api/integral/rule/trees', {cycle_type: 1}).then(res => {
+				this.rule_trees = this.getTreeData(res.data.data.rule_tree || []);
+				this.itemList = res.data.data.item_list; //规则
+			})
+		},
+		// 规则分类改变之后请求数据
+		rule_null(val){
+		  this.params.rule_id=val.length == 0? '': val[val.length -1]
+		  this.$nextTick(()=>{
+				this.page = 1
+				this.open_right()
+			})
+		},
+		//获取初始化数据
+		get_groups_list(isAdd) {
+			this.groups_loading = true;
+			this.$axios('get','/api/integral/statistics/groups').then(res => {
+				if (res.data.code == 1) {
+					let lists = res.data.data.list;
+					if(this.$authoritys('employee')){//员工权限只能查看包含自己的
+						let user = this.$getUserData().id
+						let data = []
+						lists.forEach(item=>{
+							if(item.employees.length == 0){
+								data.push(item)
+							}else{
+								if(item.employees.indexOf(user.toString())!=-1){
+									data.push(item)
+								}
+							}
+						})
+						this.groups_list = data;
+					}else{
+						this.groups_list = lists;
+					}
+					if(this.groups_list[0]){
+						isAdd? this.open_right(this.groups_list[0]):this.open_right();
+					}else{
+						this.table_list=[];
+					}
+				}
+			}).finally(() => {
+				this.groups_loading = false;
+			});
+		},
+		// 打开右边列表
+		open_right(item){
+			console.log(item)
+			this.table_loading = true;
+			this.clickItem = item;
+			  
+			if (!item) {
+				this.table_loading = false;
+				return false;
+			}
+
+			let data = JSON.parse(JSON.stringify(this.params));
+			data.rule ? '' : delete data.rule;
+			data.group_id = item.id;
+			let months;
+			if (this.newGroupForm.date_interval == '1') {
+				months = this.time.month.replace('-', '');
+			}
+			data.date =
+			this.newGroupForm.date_interval == '1' ? months : this.newGroupForm.date_interval == '2' ? this.time.quarter : this.newGroupForm.date_interval == '3' ? this.time.year : '';
+			// var data={};
+			// if(item){
+			// 	this.groups_info=item;
+			// 	data={
+			// 		group_id: item.id,
+			// 		month: this.params.month,
+			// 		sort: this.params.sort,
+			// 		rule_id: this.params.rule_id,
+			// 		pt_id: 3,
+			// 	}
+			// }else{
+			// 	data={
+			// 		group_id: this.groups_info.id,
+			// 		month: this.params.month,
+			// 		sort: this.params.sort,
+			// 		rule_id: this.params.rule_id,
+			// 		pt_id: 3,
+			// 	}
+			// }
+
+			// this.$axios('get','/api/integral/statistics/groups/rank',data).then((res) => {
+			// 	if (res.data.code == 1) {
+			// 			this.table_list = res.data.data.list
+			// 			this.total = res.data.data.total
+			// 	}else{
+			// 	  this.$message.error(res.data.data.msg)
+			// 	}
+		    // }).finally(() => {
+		    //     this.table_loading = false
+			// })
+			this.$axios('get','/api/integral/statistics/groups/rank',data).then(res => {
+				if (res.data.code == 1) {
+					this.table_list = res.data.data.list;
+					this.total = res.data.data.total;
+					// this.lastUpdateTime = res.data.data.update_time;
+				} else {
+					this.$message.error(res.data.data.msg)
+				}
+			}).finally(() => {
+			this.table_loading = false;
+			});
+				// this.$axios('get','/api/integral/statistics/ranking',data,'v2').then((res) => {
+				// 	if (res.data.code == 1) {
+				// 			this.table_list = res.data.data.list
+				// 			this.total = res.data.data.total
+				// 	}else{
+				// 	this.$message.error(res.data.data.msg)
+				// 	}
+				// }).finally(() => {
+				// 	this.table_loading = false
+				// })
+		},
+		// 页码变更
+		handleCurrentChange(val) {
+		  this.params.page = val
+		  this.open_right(this.groups_info)
+		},
+		handleSizeChange(val){
+		  this.params.page_size = val
+		  this.open_right(this.groups_info)
+		},
+	}
+};
+</script>
+
+<style scoped lang="scss">
+.architecture {
+  display: flex;
+  text-align: center;
+  padding-left: 0px;
+  background-color: #fff;
+  width: 100%;
+  overflow: hidden;
+  cursor: default;
+  min-height: calc(60vh - 160px);
+}
+.architecture .RuleLine {
+  display: table-cell;
+  width: 1px;
+  min-height: 600px;
+  background: hsl(0, 2%, 76%);
+}
+.architecture .RuleLeft {
+  display: block;
+  text-align: center;
+  padding: 20px 10px;
+  border-right: none;
+  overflow-y: auto;
+  overflow-x: none;
+}
+/*滚动条的宽度*/
+
+.architecture .RuleLeft::-webkit-scrollbar {
+  width: 9px;
+  height: 9px;
+}
+.architecture .RuleRight::-webkit-scrollbar {
+  width: 9px;
+  height: 9px;
+}
+
+/*外层轨道。可以用display:none让其不显示,也可以添加背景图片,颜色改变显示效果*/
+
+.architecture .RuleLeft::-webkit-scrollbar-track {
+  width: 6px;
+  background-color: #fff0;
+  -webkit-border-radius: 2em;
+  -moz-border-radius: 2em;
+  border-radius: 2em;
+}
+.architecture .RuleRight::-webkit-scrollbar-track {
+  width: 6px;
+  background-color: #fff0;
+  -webkit-border-radius: 2em;
+  -moz-border-radius: 2em;
+  border-radius: 2em;
+}
+
+/*滚动条的设置*/
+
+.architecture .RuleLeft::-webkit-scrollbar-thumb {
+  background-color: #fff0;
+  background-clip: padding-box;
+  min-height: 28px;
+  -webkit-border-radius: 2em;
+  -moz-border-radius: 2em;
+  border-radius: 2em;
+}
+.architecture .RuleRight::-webkit-scrollbar-thumb {
+  background-color: #fff0;
+  background-clip: padding-box;
+  min-height: 28px;
+  -webkit-border-radius: 2em;
+  -moz-border-radius: 2em;
+  border-radius: 2em;
+}
+/*滚动条移上去的背景*/
+
+.architecture .RuleLeft:hover::-webkit-scrollbar-thumb {
+  overflow-x: none;
+  background-color: rgba(144, 147, 153, 0.3);
+}
+.architecture .RuleRight:hover::-webkit-scrollbar-thumb {
+  background-color: rgba(115, 118, 124, 0.3);
+}
+
+.architecture .RuleLeft .company_name {
+  position: relative;
+  display: block;
+  font-family: 'Microsoft YaHei';
+  text-align: left;
+  padding: 15px 28px 17px;
+  cursor: pointer;
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+  border-bottom: 1px #f8f8f8 solid;
+}
+.architecture .RuleLeft .company_name img {
+  position: relative;
+  display: inline-block;
+  top: 2px;
+  width: 18px;
+  height: 18px;
+  margin-right: 4px;
+}
+.architecture .RuleLeft ::v-deep .el-button {
+  margin-bottom: 16px !important;
+}
+.architecture .RuleRight {
+  position: relative;
+  display: table-cell;
+  text-align: left;
+  padding: 20px;
+}
+.architecture .RuleRight .title span .sapn {
+  display: inline-block;
+  vertical-align: middle;
+  max-width: 600px;
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+}
+.architecture .RuleRight:after {
+  content: ' ';
+  position: absolute;
+  top: 0;
+  left: 0;
+  bottom: 0;
+  width: 1px;
+  background: #ebeef5;
+}
+.architecture .RuleRight .list_box {
+  width: 100%;
+  background: #fff;
+}
+.architecture .RuleRight .list_box ::v-deep table {
+  font-family: 'Microsoft YaHei';
+  width: 100% !important;
+}
+::v-deep .el-radio .el-radio__label {
+	display: none;
+}
+.tips {
+	background: #dcdfe6;
+	border-radius: 50%;
+	width: 14px;
+	height: 14px;
+	color: #fff;
+	display: inline-block;
+	font-size: 12px;
+	line-height: 14px;
+	text-align: center;
+}
+.groupsName {
+	font-size: 18px;
+	margin-right:20px
+}
+.groupsName span{
+	margin-left:5px
+}
+
+.user_text {
+	font-size: 12px;
+}
+.cursor_pointer {
+	cursor: pointer;
+}
+.terr-left button{
+    margin: 0 auto;
+    display: block;
+    margin-bottom: 20px;
+}
+::v-deep .el-menu-item{
+	padding:0 10px !important;
+}
+.rule_class_box {
+	::v-deep .el-tree-node {
+		border-bottom: 1px #f8f8f8 solid;
+	}
+	::v-deep .el-tree-node__content {
+		padding: 10px 0;
+		// border-bottom: 1px #f8f8f8 solid;
+	}
+	::v-deep .el-tree-node__content:hover {
+		background: #ecf5ff;
+		border-radius: 4px;
+	}
+	::v-deep .is-current .el-tree-node__content .el-icon-caret-right {
+		color: #409eff !important;
+	}
+	::v-deep .is-current .el-tree-node__content .el-tree-node__label {
+		color: #409eff !important;
+	}
+	::v-deep .is-current .el-tree-node__children .el-icon-caret-right {
+		color: #c0c4cc !important;
+	}
+	::v-deep .is-current .el-tree-node__children .el-tree-node__label {
+		color: #606266 !important;
+	}
+	::v-deep .el-tree-node__label {
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+	}
+}
+</style>

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1007 - 720
src/views/ranking/custom_rank.vue


+ 3 - 3
src/views/ranking/manager_statistics.vue

@@ -27,8 +27,8 @@
               <el-date-picker
                 class="date-picker-width"
                 v-model="condition.month"
-                clearable
-				size="medium"
+                :clearable="false"
+				        size="medium"
                 width="100%"
                 type="month"
                 placeholder="请选择月份"
@@ -143,7 +143,7 @@
               <el-date-picker
                 class="date-picker-width"
                 v-model="formData.month"
-                clearable
+                :clearable="false"
                 width="100%"
                 type="month"
 				size="medium"

+ 25 - 1
src/views/set/rule.vue

@@ -351,7 +351,8 @@ export default {
 			import_btn_show: false,
 			fileList: [],
 			file: null,
-			flName: ''
+			flName: '',
+			// item_lists:[],
 		};
 	},
 	components: {
@@ -882,6 +883,15 @@ export default {
 					that.rule_tree = res.data.data.rule_tree || [];
 					that.item_list = list;
 					that.all_item_list = list;
+					
+					// for(let i in item_list){
+					// 	item_list[i].forEach(arr=>{
+					// 		this.item_lists.push(arr)
+					// 	})
+					// }
+					// this.traverse(res.data.data.rule_tree)
+					// console.log(this.item_lists)
+
 					if (is) {
 						that.handleNodeClick(that.selectItem);
 					} else {
@@ -892,6 +902,20 @@ export default {
 					this.rule_loading = false;
 				});
 		},
+		// traverse(rule_tree){
+		// 	// debugger
+		// 	rule_tree.forEach(item=>{
+		// 		if(item.child){
+		// 			for(let i in this.item_lists){
+		// 				if(this.item_lists[i].rule_id == item.id){
+		// 					this.item_lists[i].ruleName = item.name
+		// 					// break
+		// 				}
+		// 			}
+		// 			this.traverse(item.child)
+		// 		}
+		// 	})
+		// },
 		//编辑分组
 		edit_class() {
 			this.class_show = true;

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است