Bläddra i källkod

Merge branch 'develop_yh58' of http://git.chelingzhu.com/jianguan-web/jg-ocs-html into develop_yh58

chenrui 1 månad sedan
förälder
incheckning
5186ac0caf

+ 152 - 542
package-lock.json

@@ -2355,6 +2355,11 @@
       "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==",
       "dev": true
     },
+    "adler-32": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
+      "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
+    },
     "ajv": {
       "version": "6.10.2",
       "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
@@ -3303,6 +3308,16 @@
       "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
       "dev": true
     },
+    "bindings": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmmirror.com/bindings/-/bindings-1.5.0.tgz",
+      "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "file-uri-to-path": "1.0.0"
+      }
+    },
     "block-stream": {
       "version": "0.0.9",
       "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
@@ -3764,6 +3779,15 @@
         "lazy-cache": "^1.0.3"
       }
     },
+    "cfb": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
+      "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
+      "requires": {
+        "adler-32": "~1.3.0",
+        "crc-32": "~1.2.0"
+      }
+    },
     "chalk": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
@@ -4212,6 +4236,11 @@
       "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
       "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
     },
+    "codepage": {
+      "version": "1.15.0",
+      "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
+      "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
+    },
     "collection-visit": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
@@ -4676,6 +4705,11 @@
         }
       }
     },
+    "crc-32": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
+      "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
+    },
     "create-ecdh": {
       "version": "4.0.3",
       "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
@@ -6845,6 +6879,11 @@
       "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
       "dev": true
     },
+    "exit-on-epipe": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
+      "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="
+    },
     "expand-brackets": {
       "version": "2.1.4",
       "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
@@ -7203,6 +7242,11 @@
       "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz",
       "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg=="
     },
+    "fflate": {
+      "version": "0.3.11",
+      "resolved": "https://registry.npmmirror.com/fflate/-/fflate-0.3.11.tgz",
+      "integrity": "sha512-Rr5QlUeGN1mbOHlaqcSYMKVpPbgLy0AWT/W0EHxA6NGI12yO1jpoui2zBBvU2G824ltM6Ut8BFgfHSBGfkmS0A=="
+    },
     "figgy-pudding": {
       "version": "3.5.1",
       "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
@@ -7239,6 +7283,18 @@
         "schema-utils": "^1.0.0"
       }
     },
+    "file-saver": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz",
+      "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
+    },
+    "file-uri-to-path": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+      "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+      "dev": true,
+      "optional": true
+    },
     "filename-regex": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
@@ -7457,6 +7513,11 @@
       "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
       "dev": true
     },
+    "frac": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
+      "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
+    },
     "fragment-cache": {
       "version": "0.2.1",
       "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
@@ -7511,551 +7572,14 @@
       "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
     },
     "fsevents": {
-      "version": "1.2.9",
-      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
-      "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
+      "version": "1.2.13",
+      "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-1.2.13.tgz",
+      "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
       "dev": true,
       "optional": true,
       "requires": {
-        "nan": "^2.12.1",
-        "node-pre-gyp": "^0.12.0"
-      },
-      "dependencies": {
-        "abbrev": {
-          "version": "1.1.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "ansi-regex": {
-          "version": "2.1.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "aproba": {
-          "version": "1.2.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "are-we-there-yet": {
-          "version": "1.1.5",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "delegates": "^1.0.0",
-            "readable-stream": "^2.0.6"
-          }
-        },
-        "balanced-match": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "brace-expansion": {
-          "version": "1.1.11",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "balanced-match": "^1.0.0",
-            "concat-map": "0.0.1"
-          }
-        },
-        "chownr": {
-          "version": "1.1.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "code-point-at": {
-          "version": "1.1.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "concat-map": {
-          "version": "0.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "console-control-strings": {
-          "version": "1.1.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "core-util-is": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "debug": {
-          "version": "4.1.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "deep-extend": {
-          "version": "0.6.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "delegates": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "detect-libc": {
-          "version": "1.0.3",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "fs-minipass": {
-          "version": "1.2.5",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "minipass": "^2.2.1"
-          }
-        },
-        "fs.realpath": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "gauge": {
-          "version": "2.7.4",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "aproba": "^1.0.3",
-            "console-control-strings": "^1.0.0",
-            "has-unicode": "^2.0.0",
-            "object-assign": "^4.1.0",
-            "signal-exit": "^3.0.0",
-            "string-width": "^1.0.1",
-            "strip-ansi": "^3.0.1",
-            "wide-align": "^1.1.0"
-          }
-        },
-        "glob": {
-          "version": "7.1.3",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "fs.realpath": "^1.0.0",
-            "inflight": "^1.0.4",
-            "inherits": "2",
-            "minimatch": "^3.0.4",
-            "once": "^1.3.0",
-            "path-is-absolute": "^1.0.0"
-          }
-        },
-        "has-unicode": {
-          "version": "2.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "iconv-lite": {
-          "version": "0.4.24",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "safer-buffer": ">= 2.1.2 < 3"
-          }
-        },
-        "ignore-walk": {
-          "version": "3.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "minimatch": "^3.0.4"
-          }
-        },
-        "inflight": {
-          "version": "1.0.6",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "once": "^1.3.0",
-            "wrappy": "1"
-          }
-        },
-        "inherits": {
-          "version": "2.0.3",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "ini": {
-          "version": "1.3.5",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "number-is-nan": "^1.0.0"
-          }
-        },
-        "isarray": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "minimatch": {
-          "version": "3.0.4",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "brace-expansion": "^1.1.7"
-          }
-        },
-        "minimist": {
-          "version": "0.0.8",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "minipass": {
-          "version": "2.3.5",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "safe-buffer": "^5.1.2",
-            "yallist": "^3.0.0"
-          }
-        },
-        "minizlib": {
-          "version": "1.2.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "minipass": "^2.2.1"
-          }
-        },
-        "mkdirp": {
-          "version": "0.5.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "minimist": "0.0.8"
-          }
-        },
-        "ms": {
-          "version": "2.1.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "needle": {
-          "version": "2.3.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "debug": "^4.1.0",
-            "iconv-lite": "^0.4.4",
-            "sax": "^1.2.4"
-          }
-        },
-        "node-pre-gyp": {
-          "version": "0.12.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "detect-libc": "^1.0.2",
-            "mkdirp": "^0.5.1",
-            "needle": "^2.2.1",
-            "nopt": "^4.0.1",
-            "npm-packlist": "^1.1.6",
-            "npmlog": "^4.0.2",
-            "rc": "^1.2.7",
-            "rimraf": "^2.6.1",
-            "semver": "^5.3.0",
-            "tar": "^4"
-          }
-        },
-        "nopt": {
-          "version": "4.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "abbrev": "1",
-            "osenv": "^0.1.4"
-          }
-        },
-        "npm-bundled": {
-          "version": "1.0.6",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "npm-packlist": {
-          "version": "1.4.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ignore-walk": "^3.0.1",
-            "npm-bundled": "^1.0.1"
-          }
-        },
-        "npmlog": {
-          "version": "4.1.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "are-we-there-yet": "~1.1.2",
-            "console-control-strings": "~1.1.0",
-            "gauge": "~2.7.3",
-            "set-blocking": "~2.0.0"
-          }
-        },
-        "number-is-nan": {
-          "version": "1.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "object-assign": {
-          "version": "4.1.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "once": {
-          "version": "1.4.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "wrappy": "1"
-          }
-        },
-        "os-homedir": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "os-tmpdir": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "osenv": {
-          "version": "0.1.5",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "os-homedir": "^1.0.0",
-            "os-tmpdir": "^1.0.0"
-          }
-        },
-        "path-is-absolute": {
-          "version": "1.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "process-nextick-args": {
-          "version": "2.0.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "rc": {
-          "version": "1.2.8",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "deep-extend": "^0.6.0",
-            "ini": "~1.3.0",
-            "minimist": "^1.2.0",
-            "strip-json-comments": "~2.0.1"
-          },
-          "dependencies": {
-            "minimist": {
-              "version": "1.2.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            }
-          }
-        },
-        "readable-stream": {
-          "version": "2.3.6",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "core-util-is": "~1.0.0",
-            "inherits": "~2.0.3",
-            "isarray": "~1.0.0",
-            "process-nextick-args": "~2.0.0",
-            "safe-buffer": "~5.1.1",
-            "string_decoder": "~1.1.1",
-            "util-deprecate": "~1.0.1"
-          }
-        },
-        "rimraf": {
-          "version": "2.6.3",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "glob": "^7.1.3"
-          }
-        },
-        "safe-buffer": {
-          "version": "5.1.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "safer-buffer": {
-          "version": "2.1.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "sax": {
-          "version": "1.2.4",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "semver": {
-          "version": "5.7.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "set-blocking": {
-          "version": "2.0.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "signal-exit": {
-          "version": "3.0.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "string-width": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "code-point-at": "^1.0.0",
-            "is-fullwidth-code-point": "^1.0.0",
-            "strip-ansi": "^3.0.0"
-          }
-        },
-        "string_decoder": {
-          "version": "1.1.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "safe-buffer": "~5.1.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "3.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ansi-regex": "^2.0.0"
-          }
-        },
-        "strip-json-comments": {
-          "version": "2.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "tar": {
-          "version": "4.4.8",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "chownr": "^1.1.1",
-            "fs-minipass": "^1.2.5",
-            "minipass": "^2.3.4",
-            "minizlib": "^1.1.1",
-            "mkdirp": "^0.5.0",
-            "safe-buffer": "^5.1.2",
-            "yallist": "^3.0.2"
-          }
-        },
-        "util-deprecate": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "wide-align": {
-          "version": "1.1.3",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "string-width": "^1.0.2 || 2"
-          }
-        },
-        "wrappy": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "yallist": {
-          "version": "3.0.3",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        }
+        "bindings": "^1.5.0",
+        "nan": "^2.12.1"
       }
     },
     "fstream": {
@@ -14121,6 +13645,11 @@
         }
       }
     },
+    "printj": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/printj/-/printj-1.1.2.tgz",
+      "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
+    },
     "private": {
       "version": "0.1.8",
       "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
@@ -15876,6 +15405,14 @@
       "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
       "dev": true
     },
+    "ssf": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
+      "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+      "requires": {
+        "frac": "~1.1.2"
+      }
+    },
     "sshpk": {
       "version": "1.16.1",
       "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
@@ -18085,11 +17622,21 @@
       "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
       "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
     },
+    "wmf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
+      "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
+    },
     "wolfy87-eventemitter": {
       "version": "5.1.0",
       "resolved": "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-5.1.0.tgz",
       "integrity": "sha1-NcGsDdGsDBXjXZgVCPwiCEoToBE="
     },
+    "word": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
+      "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
+    },
     "wordwrap": {
       "version": "0.0.2",
       "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
@@ -18191,6 +17738,69 @@
         "async-limiter": "~1.0.0"
       }
     },
+    "xlsx": {
+      "version": "0.18.5",
+      "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
+      "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
+      "requires": {
+        "adler-32": "~1.3.0",
+        "cfb": "~1.2.1",
+        "codepage": "~1.15.0",
+        "crc-32": "~1.2.1",
+        "ssf": "~0.11.2",
+        "wmf": "~1.0.1",
+        "word": "~0.3.0"
+      }
+    },
+    "xlsx-js-style": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/xlsx-js-style/-/xlsx-js-style-1.2.0.tgz",
+      "integrity": "sha512-DDT4FXFSWfT4DXMSok/m3TvmP1gvO3dn0Eu/c+eXHW5Kzmp7IczNkxg/iEPnImbG9X0Vb8QhROda5eatSR/97Q==",
+      "requires": {
+        "adler-32": "~1.2.0",
+        "cfb": "^1.1.4",
+        "codepage": "~1.14.0",
+        "commander": "~2.17.1",
+        "crc-32": "~1.2.0",
+        "exit-on-epipe": "~1.0.1",
+        "fflate": "^0.3.8",
+        "ssf": "~0.11.2",
+        "wmf": "~1.0.1",
+        "word": "~0.3.0"
+      },
+      "dependencies": {
+        "adler-32": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.2.0.tgz",
+          "integrity": "sha512-/vUqU/UY4MVeFsg+SsK6c+/05RZXIHZMGJA+PX5JyWI0ZRcBpupnRuPLU/NXXoFwMYCPCoxIfElM2eS+DUXCqQ==",
+          "requires": {
+            "exit-on-epipe": "~1.0.1",
+            "printj": "~1.1.0"
+          }
+        },
+        "codepage": {
+          "version": "1.14.0",
+          "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.14.0.tgz",
+          "integrity": "sha512-iz3zJLhlrg37/gYRWgEPkaFTtzmnEv1h+r7NgZum2lFElYQPi0/5bnmuDfODHxfp0INEfnRqyfyeIJDbb7ahRw==",
+          "requires": {
+            "commander": "~2.14.1",
+            "exit-on-epipe": "~1.0.1"
+          },
+          "dependencies": {
+            "commander": {
+              "version": "2.14.1",
+              "resolved": "https://registry.npmmirror.com/commander/-/commander-2.14.1.tgz",
+              "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw=="
+            }
+          }
+        },
+        "commander": {
+          "version": "2.17.1",
+          "resolved": "https://registry.npmmirror.com/commander/-/commander-2.17.1.tgz",
+          "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg=="
+        }
+      }
+    },
     "xml-name-validator": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",

+ 4 - 1
package.json

@@ -21,6 +21,7 @@
     "core-js": "2.6.9",
     "echarts": "^5.4.0",
     "enquire.js": "^2.1.6",
+    "file-saver": "^2.0.5",
     "lodash": "^4.17.20",
     "lodash.get": "^4.4.2",
     "lodash.pick": "^4.4.0",
@@ -50,7 +51,9 @@
     "vue2.0-zoom": "^2.1.1",
     "vuescroll": "^4.17.3",
     "vuex": "^3.1.1",
-    "wangeditor": "^4.7.15"
+    "wangeditor": "^4.7.15",
+    "xlsx": "^0.18.5",
+    "xlsx-js-style": "^1.2.0"
   },
   "devDependencies": {
     "@ant-design/colors": "^3.2.1",

+ 13 - 0
src/api/reportData.js

@@ -1,4 +1,17 @@
 import { axios } from '@/utils/request'
+
+// 每日报表
+export const salesReportDailyList = (params) => {
+  const url = `/report/reportData/query`
+  return axios({
+    url: url,
+    data: params,
+    method: 'post',
+    headers: {
+      'module': encodeURIComponent('每日报表查询')
+    }
+  })
+}
 // 获取开单退货单表头
 export const salesReportReturnTitle = (params) => {
   return axios({

+ 25 - 0
src/config/report/salesReport.js

@@ -91,6 +91,31 @@ export default {
         }
       ]
     },
+    {
+      path: '/reportData/dailyReport',
+      redirect: '/reportData/dailyReport/list',
+      name: 'dailyReport',
+      component: BlankLayout,
+      meta: {
+        title: '每日报表',
+        icon: 'profile',
+        // permission: 'M_dailyReportList'
+      },
+      hideChildrenInMenu: true,
+      children: [
+        {
+          path: 'list',
+          name: 'dailyReportList',
+          component: () => import(/* webpackChunkName: "reportData" */ '@/views/reportData/dailyReport/index.vue'),
+          meta: {
+            title: '每日报表',
+            icon: 'profile',
+            hidden: true,
+            // permission: 'M_dailyReportList'
+          }
+        }
+      ]
+    },
     {
       path: '/reportData/actualSalesReport',
       redirect: '/reportData/actualSalesReport/list',

+ 260 - 0
src/views/reportData/dailyReport/index.vue

@@ -0,0 +1,260 @@
+<template>
+  <div>
+    <a-spin :spinning="spinning" tip="Loading...">
+      <!-- 选项卡切换 -->
+      <a-tabs v-model="activeKey" @change="callback" :tabBarStyle="{'background':'#fff'}">
+        <a-tab-pane :key="item.id" :tab="item.name" v-for="item in tabsList">
+        </a-tab-pane>
+      </a-tabs>
+      <a-card size="small">
+        <!-- 搜索条件 -->
+        <div class="table-page-search-wrapper newTableSearchName" ref="tableSearch">
+          <a-form-model
+            id="dayReportList-form"
+            ref="ruleForm"
+            class="form-model-con"
+            layout="inline"
+            :rules="rules"
+            :model="queryParam"
+            @keyup.enter.native="handleSearch">
+            <a-row :gutter="15">
+              <a-col :md="6" :sm="24">
+                <a-form-model-item label="月份" prop="month">
+                  <a-month-picker
+                    placeholder="请选择月份"
+                    locale="zh-cn"
+                    id="dayReportList-month"
+                    v-model="queryParam.month"
+                    @change="onChange"
+                    :disabled-date="disabledDate"
+                    style="width: 100%;"/>
+                </a-form-model-item>
+              </a-col>
+              <a-col :md="6" :sm="24" style="margin-bottom: 10px;">
+                <a-button type="primary" @click="handleSearch" :disabled="disabled" id="dayReportList-refresh">查询</a-button>
+                <a-button style="margin-left: 5px" @click="resetSearchForm" :disabled="disabled" id="dayReportList-reset">重置</a-button>
+                <a-button
+                  style="margin-left: 5px"
+                  type="primary"
+                  class="button-warning"
+                  @click="handleExport"
+                  :disabled="disabled"
+                  :loading="exportLoading"
+                  id="dayReportList-export">导出</a-button>
+              </a-col>
+            </a-row>
+          </a-form-model>
+        </div>
+      </a-card>
+      <!-- 列表 -->
+      <a-card size="small" style="margin-top:4px!important">
+        <table0
+          v-if="activeKey == 0"
+          ref="table0"
+          :month="queryParam.month"
+          :columns="columns"
+          :tableData="tableData"
+          :nowDate="nowDate"
+        ></table0>
+        <table1
+          v-if="activeKey == 1"
+          ref="table1"
+          :month="queryParam.month"
+          :columns="columns"
+          :tableData="tableData"
+          :nowDate="nowDate"
+        ></table1>
+        <table2
+          v-if="activeKey == 2"
+          ref="table2"
+          :month="queryParam.month"
+          :columns="columns"
+          :tableData="tableData"
+          :nowDate="nowDate"
+        ></table2>
+        <table3
+          v-if="activeKey == 3"
+          ref="table3"
+          :month="queryParam.month"
+          :columns="columns"
+          :tableData="tableData"
+          :nowDate="nowDate"
+        ></table3>
+      </a-card>
+    </a-spin>
+  </div>
+</template>
+
+<script>
+import { commonMixin } from '@/utils/mixin'
+import XLSX from 'xlsx-js-style'
+// 组件
+import moment from 'moment'
+import table0 from './table0'
+import table1 from './table1'
+import table2 from './table2'
+import table3 from './table3'
+// 接口
+import { salesReportDailyList } from '@/api/reportData.js'
+export default {
+  name: 'RegionTypeSalesReportList',
+  mixins: [commonMixin],
+  components: { table0, table1, table2, table3 },
+  data () {
+    return {
+      spinning: false,
+      activeKey: 0, // 切换显示页面值 0 各分区品类实售明细 1各区域品类实售明细
+      advanced: true, // 高级搜索 展开/关闭
+      disabled: false, //  查询、重置按钮是否可操作
+      exportLoading: false, // 导出按钮加载状态
+      tableHeight: 0, // 表格高度
+      tabsList: [{ id: 0, name: '全国销售日报' }, { id: 1, name: '项目销售日报1' }, { id: 2, name: '项目销售日报2' }, { id: 3, name: '分区销售日报' }], // tab切换data
+      columns: [], // 表头数据
+      tableData: [], // 表格数据
+      totalNums: 0, // 总条数
+      // 查询参数
+      queryParam: {
+        month: moment().format('YYYY-MM') // 月份默认值
+      },
+      rules: {
+        'month': [{ required: true, message: '请选择月份', trigger: 'change' }]
+      },
+      nowDate: ''
+    }
+  },
+  methods: {
+    // 月份 change
+    onChange (date, dateString) {
+      this.queryParam.month = dateString
+    },
+    // 月份选择范围
+    disabledDate (current) {
+      return current && current > moment().endOf('day')
+    },
+    // tabs切换  change时间
+    callback (key) {
+      this.activeKey = key
+      const _this = this
+      _this.$nextTick(() => {
+        this.resetSearchForm()
+      })
+    },
+    // 查询
+    handleSearch () {
+      const _this = this
+      this.$refs.ruleForm.validate(valid => {
+        if (valid) {
+          _this.getTableData()
+        } else {
+          _this.$message.error('请选择月份')
+          return false
+        }
+      })
+    },
+    //  重置
+    resetSearchForm () {
+      this.$refs.ruleForm.resetFields()
+      this.tableData = []
+    },
+    exportTable (dom, title) {
+      const zim = 'A、B、C、D、E、F、G、H、I、J、K、L、M、N、O、P、Q、R、S、T、U、V、W、X、Y、Z‌'.split('、')
+      var ws = XLSX.utils.table_to_sheet(dom)
+      var wb = XLSX.utils.book_new()
+      console.log(ws)
+      // 设置样式
+      Object.keys(ws).forEach(cell => {
+        if (cell[0] !== '!') {
+          ws[cell].s = {
+            alignment: {
+              horizontal: 'center',
+              vertical: 'center'
+            }
+          }
+        }
+      })
+      // 表格1
+      if (this.activeKey == 1 || this.activeKey == 2) {
+        const cols = zim[this.columns.length - 1]
+        Array(this.totalNums).fill().forEach((item, i) => {
+          const a = ws[cols + (i + 2)]
+          if (a) {
+            a.z = (a.v * 100) + '%' // 设置单元格格式为百分比
+          }
+        })
+      }
+      // 4. 设置列宽
+      ws['!cols'] = Array(this.columns.length).fill().map(() => ({ wch: 35 }))
+
+      XLSX.utils.book_append_sheet(wb, ws, 'Sheet1')
+      XLSX.writeFile(wb, this.queryParam.month + title + '.xlsx')
+    },
+    //  导出
+    handleExport () {
+      const excelTitle = this.tabsList.find(item => item.id == this.activeKey)
+      if (this.$refs.table0 && this.activeKey == 0) {
+        this.exportTable(this.$refs.table0.getTable(), excelTitle.name)
+      } else if (this.$refs.table1 && this.activeKey == 1) {
+        this.totalNums = this.$refs.table1.list.length
+        this.exportTable(this.$refs.table1.getTable(), excelTitle.name)
+      } else if (this.$refs.table2 && this.activeKey == 2) {
+        this.exportTable(this.$refs.table2.getTable(), excelTitle.name)
+      } else if (this.$refs.table3 && this.activeKey == 3) {
+        this.exportTable(this.$refs.table3.getTable(), excelTitle.name)
+      }
+    },
+    // 获取表格数据
+    async getTableData () {
+      const url = [salesReportDailyList, salesReportDailyList, salesReportDailyList, salesReportDailyList]
+      const reportType = ['DailyPL', 'DailyPL', 'DailyPLJL', 'DailyPL'][this.activeKey]
+      const reportDate = this.queryParam.month + '-01 00:00:00'
+      this.nowDate = moment().format('DD日HH点mm分')
+      this.spinning = true
+      const data = await url[this.activeKey]({ reportType, reportDate }).then(res => res.data)
+      if (data) {
+        this.tableData = data
+        if (this.activeKey == 1) {
+          this.columns = this.getColumns()
+        }
+        if (this.activeKey == 2) {
+          this.columns = [1, 2, 3, 4, 5]
+        }
+        this.spinning = false
+      }
+    },
+    getColumns () {
+      const row = this.tableData[0]
+      const ret = []
+      if (row) {
+        row.detailList[0].forEach(item => {
+          ret.push(item)
+        })
+        ret.push(row.bymb)
+        ret.push(row.wcl)
+      }
+      return ret
+    },
+    // 初始化
+    pageInit () {
+      this.activeKey = 0
+      this.tableData = []
+    }
+  },
+  mounted () {
+    if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
+      this.pageInit()
+    }
+  },
+  activated () {
+    // 如果是新页签打开,则重置当前页面
+    if (this.$store.state.app.isNewTab) {
+      this.pageInit()
+    }
+  },
+  beforeRouteEnter (to, from, next) {
+    next(vm => {})
+  }
+}
+</script>
+<style lang="less" scoped>
+
+</style>

+ 227 - 0
src/views/reportData/dailyReport/table0.vue

@@ -0,0 +1,227 @@
+<template>
+  <div>
+    <!-- 全国销售日报 -->
+    <h2 class="table-title">2025年3月 全国销售日报(截止22日17点30分)</h2>
+    <table class="table-box" id="day-table-0">
+      <thead>
+        <tr>
+          <th></th>
+          <th></th>
+          <th align="center">销售额</th>
+          <th align="center">东莞服务中心</th>
+          <th align="center">合计</th>
+        </tr>
+      </thead>
+      <tbody>
+        <tr>
+          <td rowspan="12" width="150" align="center" valign="center">品牌</td>
+          <td width="250">年度目标</td>
+          <td align="right">141,150,000.00</td>
+          <td align="right">10,850,000.00</td>
+          <td align="right">152,000,000.00</td>
+        </tr>
+        <tr>
+          <td>截止1-2月销售实际完成</td>
+          <td align="right">11,553,506.00</td>
+          <td align="right">3,199,085.00</td>
+          <td align="right">14,752,590.00</td>
+        </tr>
+        <tr>
+          <td>累计3月销售实际截止完成</td>
+          <td align="right">14,863,711.00</td>
+          <td align="right">3,942,037.00</td>
+          <td align="right">18,805,748.00</td>
+        </tr>
+        <tr>
+          <td>年度完成率</td>
+          <td>12%</td>
+          <td>13%</td>
+          <td>12%</td>
+        </tr>
+        <tr>
+          <td>本月目标</td>
+          <td align="right">9,858,800.00</td>
+          <td align="right">2,481,200.00</td>
+          <td align="right">12,340,000.00</td>
+        </tr>
+        <tr>
+          <td>本月实际销售</td>
+          <td align="right">3,314,024.00</td>
+          <td align="right">743,977.00</td>
+          <td align="right">4,058,001.00</td>
+        </tr>
+        <tr>
+          <td>本月销售实际退货</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>本月销售实际完成</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>本月达成率</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>预估订单</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>预估完成</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>离目标差额</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td rowspan="12" width="100" align="center" valign="center">轮胎</td>
+          <td>年度目标</td>
+          <td align="right">141,150,000.00</td>
+          <td align="right">10,850,000.00</td>
+          <td align="right">152,000,000.00</td>
+        </tr>
+        <tr>
+          <td>截止1-2月销售实际完成</td>
+          <td align="right">11,553,506.00</td>
+          <td align="right">3,199,085.00</td>
+          <td align="right">14,752,590.00</td>
+        </tr>
+        <tr>
+          <td>累计3月销售实际截止完成</td>
+          <td align="right">14,863,711.00</td>
+          <td align="right">3,942,037.00</td>
+          <td align="right">18,805,748.00</td>
+        </tr>
+        <tr>
+          <td>年度完成率</td>
+          <td>12%</td>
+          <td>13%</td>
+          <td>12%</td>
+        </tr>
+        <tr>
+          <td>本月目标</td>
+          <td align="right">9,858,800.00</td>
+          <td align="right">2,481,200.00</td>
+          <td align="right">12,340,000.00</td>
+        </tr>
+        <tr>
+          <td>本月实际销售</td>
+          <td align="right">3,314,024.00</td>
+          <td align="right">743,977.00</td>
+          <td align="right">4,058,001.00</td>
+        </tr>
+        <tr>
+          <td>本月销售实际退货</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>本月销售实际完成</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>本月达成率</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>预估订单</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>预估完成</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>离目标差额</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td rowspan="2" width="100" align="center" valign="center">品牌+轮胎</td>
+          <td>本月实际销售额</td>
+          <td align="right">141,150,000.00</td>
+          <td align="right">10,850,000.00</td>
+          <td align="right">152,000,000.00</td>
+        </tr>
+        <tr>
+          <td>本月预估完成</td>
+          <td align="right">11,553,506.00</td>
+          <td align="right">3,199,085.00</td>
+          <td align="right">14,752,590.00</td>
+        </tr>
+      </tbody>
+    </table>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'Table0',
+  props: {
+    tableData: {
+      type: Array,
+      default: () => []
+    }
+  },
+  methods: {
+    getTable () {
+      return document.getElementById('day-table-0')
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+  .table-title{
+    margin-bottom: 10px;
+    font-size: 16px;
+    font-weight: bold;
+    width: 100%;
+    max-width: 1024px;
+    text-align: center;
+  }
+  .table-box{
+    width: 100%;
+    max-width: 1024px;
+    font-size: 14px;
+    tr > th{
+      padding: 6px 8px;
+      border: 1px solid #eee;
+      text-align: center;
+    }
+    tr > td{
+      padding: 5px;
+      border: 1px solid #eee;
+    }
+    tr{
+      &:hover{
+        td{
+          background-color: #ffd6d4;
+        }
+      }
+    }
+  }
+</style>

+ 121 - 0
src/views/reportData/dailyReport/table1.vue

@@ -0,0 +1,121 @@
+<template>
+  <div>
+    <!-- 项目销售日报 -->
+    <h2 class="table-title" v-if="tableData.length">{{ month.replace('-','年')+'月' }} 项目销售日报(截止{{ nowDate }})</h2>
+    <table class="table-box" id="day-table-1" v-if="tableData.length">
+      <thead>
+        <tr>
+          <th v-for="item in columns" :key="item">{{ item }}</th>
+        </tr>
+      </thead>
+      <tbody>
+        <tr v-for="(sitem,index) in list" :key="index">
+          <td
+            width="150"
+            v-for="(td,tdi) in sitem"
+            :key="tdi+'td'"
+            :rowspan="hasRowspan(td)[1]"
+            :align="typeof td == 'number' ? 'right':'center'"
+            :class="hasRed(td)?'red':''"
+          >
+            {{ hasRowspan(td)[1] ? hasRowspan(td)[0] : td }}
+          </td>
+        </tr>
+      </tbody>
+    </table>
+    <div v-else class="noData">
+      暂无数据,请点击查询
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'Table0',
+  props: {
+    tableData: {
+      type: Array,
+      default: () => []
+    },
+    month: {
+      type: String,
+      default: () => ''
+    },
+    columns: {
+      type: Array,
+      default: () => []
+    },
+    nowDate: {
+      type: String,
+      default: () => ''
+    }
+  },
+  computed: {
+    list () {
+      let rets = []
+      this.tableData.forEach((item, i) => {
+        if (i > 0) {
+          item.detailList[0].push(item.bymb + 'rowspan' + item.detailList.length, item.wcl + 'rowspan' + item.detailList.length)
+          rets = rets.concat(item.detailList)
+        }
+      })
+      return rets
+    }
+  },
+  methods: {
+    hasRowspan (row) {
+      return row.toString().split('rowspan')
+    },
+    hasRed (row) {
+      const arr = ['合计', '箭牌喇叭', '制动系统']
+      return arr.find(item => row.toString().indexOf(item) >= 0)
+    },
+    getTable () {
+      return document.getElementById('day-table-1')
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+  .table-title{
+    margin-bottom: 10px;
+    font-size: 16px;
+    font-weight: bold;
+    width: 100%;
+    max-width: 1024px;
+    text-align: center;
+  }
+  .noData{
+    width: 100%;
+    text-align: center;
+    font-size: 16px;
+    color: #999;
+    min-height: 100px;
+    line-height: 100px;
+  }
+  .table-box{
+    width: 100%;
+    max-width: 1024px;
+    font-size: 14px;
+    .red{
+      color: red;
+    }
+    tr > th{
+      padding: 6px 8px;
+      border: 1px solid #eee;
+      text-align: center;
+    }
+    tr > td{
+      padding: 5px;
+      border: 1px solid #eee;
+    }
+    tr{
+      &:hover{
+        td{
+          background-color: #ffd6d4;
+        }
+      }
+    }
+  }
+</style>

+ 104 - 0
src/views/reportData/dailyReport/table2.vue

@@ -0,0 +1,104 @@
+<template>
+  <div>
+    <div v-if="tableData.length">
+      <!-- 全国销售日报 -->
+      <h2 class="table-title">{{ month.replace('-','年')+'月' }}全国销售日报2(截止{{ nowDate }})</h2>
+      <table class="table-box" id="day-table-2" >
+        <thead>
+          <tr>
+            <th v-for="item in cloumns" :key="item">{{ item }}</th>
+          </tr>
+        </thead>
+        <tbody>
+          <tr v-for="(item,index) in list" :key="index">
+            <td width="150" align="center">{{ item.proName }}</td>
+            <td align="center">{{ item.userName }}</td>
+            <td align="center">{{ item.bymb }}</td>
+            <td align="center">{{ item.amount }}</td>
+            <td align="center" class="red">{{ item.wcl }}</td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    <div v-else class="noData">
+      暂无数据,请点击查询
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'Table0',
+  props: {
+    tableData: {
+      type: Array,
+      default: () => []
+    },
+    month: {
+      type: String,
+      default: () => ''
+    },
+    nowDate: {
+      type: String,
+      default: () => ''
+    }
+  },
+  computed: {
+    list () {
+      return this.tableData
+    },
+    cloumns () {
+      const m = this.month.split('-')
+      return ['项目', '品类经理', m[1] + '月业绩目标', m[1] + '月销售额截止达成', '达成率']
+    }
+  },
+  methods: {
+    getTable () {
+      return document.getElementById('day-table-2')
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+  .table-title{
+    margin-bottom: 10px;
+    font-size: 16px;
+    font-weight: bold;
+    width: 100%;
+    max-width: 1024px;
+    text-align: center;
+  }
+  .noData{
+    width: 100%;
+    text-align: center;
+    font-size: 16px;
+    color: #999;
+    min-height: 100px;
+    line-height: 100px;
+  }
+  .table-box{
+    width: 100%;
+    max-width: 1024px;
+    font-size: 14px;
+    .red{
+      color: red;
+    }
+    tr > th{
+      padding: 6px 8px;
+      border: 1px solid #eee;
+      text-align: center;
+    }
+    tr > td{
+      padding: 5px;
+      border: 1px solid #eee;
+    }
+    tr{
+      &:hover{
+        td{
+          background-color: #ffd6d4;
+        }
+      }
+    }
+  }
+</style>

+ 224 - 0
src/views/reportData/dailyReport/table3.vue

@@ -0,0 +1,224 @@
+<template>
+  <div>
+    <!-- 全国销售日报 -->
+    <h2 class="table-title">2025年3月 全国销售日报(截止22日17点30分)</h2>
+    <table class="table-box">
+      <thead>
+        <tr>
+          <th></th>
+          <th></th>
+          <th>销售额</th>
+          <th>东莞服务中心</th>
+          <th>合计</th>
+        </tr>
+      </thead>
+      <tbody>
+        <tr>
+          <td rowspan="12" width="150" align="center">品牌</td>
+          <td width="250">年度目标</td>
+          <td align="right">141,150,000.00</td>
+          <td align="right">10,850,000.00</td>
+          <td align="right">152,000,000.00</td>
+        </tr>
+        <tr>
+          <td>截止1-2月销售实际完成</td>
+          <td align="right">11,553,506.00</td>
+          <td align="right">3,199,085.00</td>
+          <td align="right">14,752,590.00</td>
+        </tr>
+        <tr>
+          <td>累计3月销售实际截止完成</td>
+          <td align="right">14,863,711.00</td>
+          <td align="right">3,942,037.00</td>
+          <td align="right">18,805,748.00</td>
+        </tr>
+        <tr>
+          <td>年度完成率</td>
+          <td>12%</td>
+          <td>13%</td>
+          <td>12%</td>
+        </tr>
+        <tr>
+          <td>本月目标</td>
+          <td align="right">9,858,800.00</td>
+          <td align="right">2,481,200.00</td>
+          <td align="right">12,340,000.00</td>
+        </tr>
+        <tr>
+          <td>本月实际销售</td>
+          <td align="right">3,314,024.00</td>
+          <td align="right">743,977.00</td>
+          <td align="right">4,058,001.00</td>
+        </tr>
+        <tr>
+          <td>本月销售实际退货</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>本月销售实际完成</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>本月达成率</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>预估订单</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>预估完成</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>离目标差额</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td rowspan="12" width="100" align="center">轮胎</td>
+          <td>年度目标</td>
+          <td align="right">141,150,000.00</td>
+          <td align="right">10,850,000.00</td>
+          <td align="right">152,000,000.00</td>
+        </tr>
+        <tr>
+          <td>截止1-2月销售实际完成</td>
+          <td align="right">11,553,506.00</td>
+          <td align="right">3,199,085.00</td>
+          <td align="right">14,752,590.00</td>
+        </tr>
+        <tr>
+          <td>累计3月销售实际截止完成</td>
+          <td align="right">14,863,711.00</td>
+          <td align="right">3,942,037.00</td>
+          <td align="right">18,805,748.00</td>
+        </tr>
+        <tr>
+          <td>年度完成率</td>
+          <td>12%</td>
+          <td>13%</td>
+          <td>12%</td>
+        </tr>
+        <tr>
+          <td>本月目标</td>
+          <td align="right">9,858,800.00</td>
+          <td align="right">2,481,200.00</td>
+          <td align="right">12,340,000.00</td>
+        </tr>
+        <tr>
+          <td>本月实际销售</td>
+          <td align="right">3,314,024.00</td>
+          <td align="right">743,977.00</td>
+          <td align="right">4,058,001.00</td>
+        </tr>
+        <tr>
+          <td>本月销售实际退货</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>本月销售实际完成</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>本月达成率</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>预估订单</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>预估完成</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td>离目标差额</td>
+          <td align="right">3,818.00</td>
+          <td align="right">1,025.00</td>
+          <td align="right">4,843.00</td>
+        </tr>
+        <tr>
+          <td rowspan="2" width="100" align="center">品牌+轮胎</td>
+          <td>本月实际销售额</td>
+          <td align="right">141,150,000.00</td>
+          <td align="right">10,850,000.00</td>
+          <td align="right">152,000,000.00</td>
+        </tr>
+        <tr>
+          <td>本月预估完成</td>
+          <td align="right">11,553,506.00</td>
+          <td align="right">3,199,085.00</td>
+          <td align="right">14,752,590.00</td>
+        </tr>
+      </tbody>
+    </table>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'Table0',
+  props: {
+    tableData: {
+      type: Array,
+      default: () => []
+    }
+  },
+  methods: {
+  }
+}
+</script>
+
+<style lang="less" scoped>
+  .table-title{
+    margin-bottom: 10px;
+    font-size: 16px;
+    font-weight: bold;
+    width: 100%;
+    max-width: 1024px;
+    text-align: center;
+  }
+  .table-box{
+    width: 100%;
+    max-width: 1024px;
+    font-size: 14px;
+    tr > th{
+      padding: 6px 8px;
+      border: 1px solid #eee;
+      text-align: center;
+    }
+    tr > td{
+      padding: 5px;
+      border: 1px solid #eee;
+    }
+    tr{
+      &:hover{
+        td{
+          background-color: #ffd6d4;
+        }
+      }
+    }
+  }
+</style>

+ 3 - 3
vue.config.js

@@ -54,7 +54,7 @@ const vueConfig = {
       new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/)
     ],
     // if prod is on, add externals
-    externals: isProd() ? prodExternals : {}
+    externals: isProd() ? prodExternals : {},
   },
 
   chainWebpack: (config) => {
@@ -108,9 +108,9 @@ const vueConfig = {
     // If you want to turn on the proxy, please remosve the mockjs /src/main.jsL11
     proxy: {
       '/api': {
-        // target: 'http://192.168.2.103/ocs-admin',
+        target: 'http://192.168.2.132/ocs-admin',
         // target: 'https://t.ocs.360arrow.com/ocs-admin', //  练习
-        target: 'https://p.ocs.360arrow.com/ocs-admin', //  预发布
+        // target: 'https://p.ocs.360arrow.com/ocs-admin', //  预发布
         ws: false,
         changeOrigin: true,
         pathRewrite: {