Browse Source

1. 报表导出功能测试; 2. 统一鉴权隐藏添加用户,修复用户添加bug

Bella 2 years ago
parent
commit
45d5bea93b

+ 135 - 64
package-lock.json

@@ -14,7 +14,6 @@
         "echarts": "^5.4.1",
         "echarts-liquidfill": "^3.1.0",
         "element-resize-detector": "^1.2.4",
-        "file-saver": "^2.0.5",
         "hikvs-web": "^1.0.4",
         "moment": "^2.29.4",
         "pinia": "^2.0.16",
@@ -23,7 +22,7 @@
         "three": "^0.151.2",
         "vue": "^2.7.14",
         "vue-router": "^3.5.4",
-        "xlsx": "^0.18.5"
+        "xlsx": "^0.16.0"
       },
       "devDependencies": {
         "@antfu/eslint-config": "^0.34.1",
@@ -1075,9 +1074,16 @@
       }
     },
     "node_modules/adler-32": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
-      "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==",
+      "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==",
+      "dependencies": {
+        "exit-on-epipe": "~1.0.1",
+        "printj": "~1.1.0"
+      },
+      "bin": {
+        "adler32": "bin/adler32.njs"
+      },
       "engines": {
         "node": ">=0.8"
       }
@@ -1434,6 +1440,14 @@
         "node": ">=0.8"
       }
     },
+    "node_modules/cfb/node_modules/adler-32": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
+      "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/chalk": {
       "version": "4.1.2",
       "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
@@ -1558,13 +1572,25 @@
       }
     },
     "node_modules/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==",
+      "version": "1.14.0",
+      "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.14.0.tgz",
+      "integrity": "sha512-iz3zJLhlrg37/gYRWgEPkaFTtzmnEv1h+r7NgZum2lFElYQPi0/5bnmuDfODHxfp0INEfnRqyfyeIJDbb7ahRw==",
+      "dependencies": {
+        "commander": "~2.14.1",
+        "exit-on-epipe": "~1.0.1"
+      },
+      "bin": {
+        "codepage": "bin/codepage.njs"
+      },
       "engines": {
         "node": ">=0.8"
       }
     },
+    "node_modules/codepage/node_modules/commander": {
+      "version": "2.14.1",
+      "resolved": "https://registry.npmmirror.com/commander/-/commander-2.14.1.tgz",
+      "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw=="
+    },
     "node_modules/color-convert": {
       "version": "2.0.1",
       "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
@@ -3019,6 +3045,14 @@
         "node": ">=10"
       }
     },
+    "node_modules/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==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/fast-deep-equal": {
       "version": "3.1.3",
       "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -3086,11 +3120,6 @@
         "node": "^10.12.0 || >=12.0.0"
       }
     },
-    "node_modules/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=="
-    },
     "node_modules/fill-range": {
       "version": "7.0.1",
       "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
@@ -4911,6 +4940,17 @@
         "node": ">= 0.8.0"
       }
     },
+    "node_modules/printj": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/printj/-/printj-1.1.2.tgz",
+      "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==",
+      "bin": {
+        "printj": "bin/printj.njs"
+      },
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/proxy-from-env": {
       "version": "1.1.0",
       "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
@@ -5450,12 +5490,15 @@
       "dev": true
     },
     "node_modules/ssf": {
-      "version": "0.11.2",
-      "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
-      "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+      "version": "0.10.3",
+      "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.10.3.tgz",
+      "integrity": "sha512-pRuUdW0WwyB2doSqqjWyzwCD6PkfxpHAHdZp39K3dp/Hq7f+xfMwNAWIi16DyrRg4gg9c/RvLYkJTSawTPTm1w==",
       "dependencies": {
         "frac": "~1.1.2"
       },
+      "bin": {
+        "ssf": "bin/ssf.njs"
+      },
       "engines": {
         "node": ">=0.8"
       }
@@ -6422,14 +6465,6 @@
         "node": ">=0.8"
       }
     },
-    "node_modules/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==",
-      "engines": {
-        "node": ">=0.8"
-      }
-    },
     "node_modules/word-wrap": {
       "version": "1.2.3",
       "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz",
@@ -6460,17 +6495,18 @@
       "dev": true
     },
     "node_modules/xlsx": {
-      "version": "0.18.5",
-      "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
-      "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
-      "dependencies": {
-        "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"
+      "version": "0.16.0",
+      "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.16.0.tgz",
+      "integrity": "sha512-W/LQZjh6o7WDGmCIUXp2FUPSej2XRdaiTgZN31Oh68JlL7jpm796p3eI5zOpphYNT12qkgnXYaCysAsoiyZvOQ==",
+      "dependencies": {
+        "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",
+        "ssf": "~0.10.3",
+        "wmf": "~1.0.1"
       },
       "bin": {
         "xlsx": "bin/xlsx.njs"
@@ -6479,6 +6515,11 @@
         "node": ">=0.8"
       }
     },
+    "node_modules/xlsx/node_modules/commander": {
+      "version": "2.17.1",
+      "resolved": "https://registry.npmmirror.com/commander/-/commander-2.17.1.tgz",
+      "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg=="
+    },
     "node_modules/xml-name-validator": {
       "version": "4.0.0",
       "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
@@ -7406,9 +7447,13 @@
       }
     },
     "adler-32": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
-      "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
+      "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"
+      }
     },
     "ajv": {
       "version": "6.12.6",
@@ -7708,6 +7753,13 @@
       "requires": {
         "adler-32": "~1.3.0",
         "crc-32": "~1.2.0"
+      },
+      "dependencies": {
+        "adler-32": {
+          "version": "1.3.1",
+          "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
+          "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
+        }
       }
     },
     "chalk": {
@@ -7812,9 +7864,20 @@
       }
     },
     "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=="
+      "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=="
+        }
+      }
     },
     "color-convert": {
       "version": "2.0.1",
@@ -8863,6 +8926,11 @@
         "strip-final-newline": "^2.0.0"
       }
     },
+    "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=="
+    },
     "fast-deep-equal": {
       "version": "3.1.3",
       "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -8923,11 +8991,6 @@
         "flat-cache": "^3.0.4"
       }
     },
-    "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=="
-    },
     "fill-range": {
       "version": "7.0.1",
       "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
@@ -10376,6 +10439,11 @@
       "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
       "dev": true
     },
+    "printj": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/printj/-/printj-1.1.2.tgz",
+      "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
+    },
     "proxy-from-env": {
       "version": "1.1.0",
       "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
@@ -10810,9 +10878,9 @@
       "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==",
+      "version": "0.10.3",
+      "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.10.3.tgz",
+      "integrity": "sha512-pRuUdW0WwyB2doSqqjWyzwCD6PkfxpHAHdZp39K3dp/Hq7f+xfMwNAWIi16DyrRg4gg9c/RvLYkJTSawTPTm1w==",
       "requires": {
         "frac": "~1.1.2"
       }
@@ -11541,11 +11609,6 @@
       "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
       "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
     },
-    "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=="
-    },
     "word-wrap": {
       "version": "1.2.3",
       "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz",
@@ -11570,17 +11633,25 @@
       "dev": true
     },
     "xlsx": {
-      "version": "0.18.5",
-      "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
-      "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
+      "version": "0.16.0",
+      "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.16.0.tgz",
+      "integrity": "sha512-W/LQZjh6o7WDGmCIUXp2FUPSej2XRdaiTgZN31Oh68JlL7jpm796p3eI5zOpphYNT12qkgnXYaCysAsoiyZvOQ==",
       "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"
+        "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",
+        "ssf": "~0.10.3",
+        "wmf": "~1.0.1"
+      },
+      "dependencies": {
+        "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": {

+ 1 - 2
package.json

@@ -14,7 +14,6 @@
     "echarts": "^5.4.1",
     "echarts-liquidfill": "^3.1.0",
     "element-resize-detector": "^1.2.4",
-    "file-saver": "^2.0.5",
     "hikvs-web": "^1.0.4",
     "moment": "^2.29.4",
     "pinia": "^2.0.16",
@@ -23,7 +22,7 @@
     "three": "^0.151.2",
     "vue": "^2.7.14",
     "vue-router": "^3.5.4",
-    "xlsx": "^0.18.5"
+    "xlsx": "^0.16.0"
   },
   "devDependencies": {
     "@antfu/eslint-config": "^0.34.1",

+ 4 - 3
src/components/auth/authAction.vue

@@ -510,6 +510,7 @@ export default {
         label: groupName,
         type: "group",
       });
+      
     },
     addUserEvent() {
       this.visible.user = false;
@@ -751,7 +752,7 @@ export default {
               >
               </a-tree-select>
             </div>
-            <div class="top-section-inner-button">
+            <!-- <div class="top-section-inner-button">
               <div class="add-user-btn" @click="createUserDialog">
                 <div class="add-user-btn-icon"><div class="img"></div></div>
                 <div class="add-user-btn-text">添加用户</div>
@@ -761,7 +762,7 @@ export default {
                 title="添加用户"
                 @ok="addUserEvent"
               ></a-modal>
-            </div>
+            </div> -->
           </div>
         </div>
         <div class="bottom-section">
@@ -1108,7 +1109,7 @@ export default {
             justify-content: center;
           }
           &-select {
-            width: 82%;
+            width: 87%;
             height: 100%;
             display: flex;
             align-items: center;

+ 3 - 3
src/components/auth/authRole.vue

@@ -584,7 +584,7 @@ export default {
                 tree-default-expand-all
               ></a-tree-select>
             </div>
-            <div class="top-section-inner-button">
+            <!-- <div class="top-section-inner-button">
               <div class="add-user-btn" @click="createUserDialog">
                 <div class="add-user-btn-icon"><div class="img"></div></div>
                 <div class="add-user-btn-text">添加用户</div>
@@ -594,7 +594,7 @@ export default {
                 title="添加用户"
                 @ok="addUserEvent"
               ></a-modal>
-            </div>
+            </div> -->
           </div>
         </div>
         <div class="bottom-section">
@@ -878,7 +878,7 @@ export default {
             justify-content: center;
           }
           &-select {
-            width: 82%;
+            width: 87%;
             height: 100%;
             display: flex;
             align-items: center;

+ 64 - 40
src/components/report/table/reportTableCustom.vue

@@ -8,9 +8,13 @@
       <Card title="报告预览">
         <template #title-extra>
           <div style="padding-right: 20px">
-            <span style="color: #B2B2B2;font-size: 12px">支持 pdf,word,excel</span>
-            <a-button type="link" size="small" @click="exportFunc">导出</a-button>
-            <a-button type="link" size="small" >打印</a-button>
+            <span style="color: #b2b2b2; font-size: 12px"
+              >支持 pdf,word,excel</span
+            >
+            <a-button type="link" size="small" @click="exportFunc"
+              >导出</a-button
+            >
+            <a-button type="link" size="small">打印</a-button>
           </div>
         </template>
         <reportDataTable :data="tableData" :time-range="timeRange" />
@@ -23,7 +27,7 @@
 import Query from "@/components/common/query.vue";
 import Card from "@/components/common/card.vue";
 import reportDataTable from "@/components/report/data/tables/reportDataTable.vue";
-
+import * as XLSX from "xlsx";
 export default {
   components: {
     Card,
@@ -33,18 +37,19 @@ export default {
   data() {
     let timeRange = this.$util.dateUtil.getNearlyMonthRange();
     return {
-      timeRange: '',
+      timeRange: "",
       queryData: {
-        timeRange: timeRange
+        timeRange: timeRange,
       },
       oriTableData: [],
       tableData: [
         {
-          building: '主语国际',
-          tjwd: '事项总计',
+          building: "主语国际",
+          tjwd: "事项总计",
           undervoltage: 0,
-        },{
-          tjwd: '分项总计',
+        },
+        {
+          tjwd: "分项总计",
           undervoltage: 0,
           overvoltage: 0,
           overcurrent: 0,
@@ -54,9 +59,10 @@ export default {
           shortcircuit: 0,
           breakele: 0,
           underline: 0,
-        },{
-          tjwd: '1层',
-          eventObj: '1F 插座动力',
+        },
+        {
+          tjwd: "1层",
+          eventObj: "1F 插座动力",
           undervoltage: 0,
           overvoltage: 0,
           overcurrent: 0,
@@ -66,9 +72,10 @@ export default {
           shortcircuit: 0,
           breakele: 0,
           underline: 0,
-        },{
-          tjwd: '规划院',
-          eventObj: '7F 一般照明',
+        },
+        {
+          tjwd: "规划院",
+          eventObj: "7F 一般照明",
           undervoltage: 0,
           overvoltage: 0,
           overcurrent: 0,
@@ -78,8 +85,9 @@ export default {
           shortcircuit: 0,
           breakele: 0,
           underline: 0,
-        },{
-          eventObj: '8F 插座动力',
+        },
+        {
+          eventObj: "8F 插座动力",
           undervoltage: 0,
           overvoltage: 0,
           overcurrent: 0,
@@ -89,8 +97,9 @@ export default {
           shortcircuit: 0,
           breakele: 0,
           underline: 0,
-        },{
-          eventObj: '8F 应急照明',
+        },
+        {
+          eventObj: "8F 应急照明",
           undervoltage: 0,
           overvoltage: 0,
           overcurrent: 0,
@@ -100,8 +109,9 @@ export default {
           shortcircuit: 0,
           breakele: 0,
           underline: 0,
-        },{
-          eventObj: '8F 一般照明',
+        },
+        {
+          eventObj: "8F 一般照明",
           undervoltage: 0,
           overvoltage: 0,
           overcurrent: 0,
@@ -111,8 +121,9 @@ export default {
           shortcircuit: 0,
           breakele: 0,
           underline: 0,
-        },{
-          eventObj: '9F 一般照明',
+        },
+        {
+          eventObj: "9F 一般照明",
           undervoltage: 0,
           overvoltage: 0,
           overcurrent: 0,
@@ -124,32 +135,45 @@ export default {
           underline: 0,
         },
       ],
-    }
+    };
   },
   mounted() {
     this.oriTableData = JSON.parse(JSON.stringify(this.tableData));
     this.search();
   },
   methods: {
-    exportFunc(){
+    exportFunc() {
       console.log("打印报表");
+      const data = [
+        ["姓名", "年龄", "性别", "毕业院校"],
+        ["张三", 18, "男", "清华大学"],
+        ["李四", 22, "女", "北京大学"],
+        ["王五", 20, "男", "上海交通大学"],
+      ];
+      const worksheet = XLSX.utils.aoa_to_sheet(data);
+      const workbook = XLSX.utils.book_new();
+      XLSX.utils.book_append_sheet(workbook, worksheet, "表格名字");
+      XLSX.writeFile(workbook, "能源报警报表.xlsx");
     },
-    getRandom(m,n) {
-      let val = Math.random()*(m-n)+n
+    getRandom(m, n) {
+      let val = Math.random() * (m - n) + n;
       return Math.ceil(val);
     },
     search() {
-      let value = this.queryData.timeRange.startDate+' ~ '+this.queryData.timeRange.endDate
+      let value =
+        this.queryData.timeRange.startDate +
+        " ~ " +
+        this.queryData.timeRange.endDate;
       this.timeRange = value;
-      this.tableData = JSON.parse(JSON.stringify(this.oriTableData))
+      this.tableData = JSON.parse(JSON.stringify(this.oriTableData));
       for (let i = 0; i < 4; i++) {
-        let index = this.getRandom(2,7);
+        let index = this.getRandom(2, 7);
         let obj = this.tableData[index];
         let i = 0;
-        let keyIndex = this.getRandom(0,9);
+        let keyIndex = this.getRandom(0, 9);
         for (const key in obj) {
-          let num = this.getRandom(0,5);
-          if (key == 'eventObj') {
+          let num = this.getRandom(0, 5);
+          if (key == "eventObj") {
             continue;
           } else if (keyIndex == i) {
             obj[key] = num;
@@ -159,7 +183,7 @@ export default {
       }
       // 计算总数
       let obj = {
-        tjwd: '分项总计',
+        tjwd: "分项总计",
         undervoltage: 0,
         overvoltage: 0,
         overcurrent: 0,
@@ -169,7 +193,7 @@ export default {
         shortcircuit: 0,
         breakele: 0,
         underline: 0,
-      }
+      };
       for (let i = 2; i < 8; i++) {
         obj.undervoltage += this.tableData[i].undervoltage;
         obj.overvoltage += this.tableData[i].overvoltage;
@@ -182,9 +206,9 @@ export default {
         obj.underline += this.tableData[i].underline;
       }
       this.tableData[1] = obj;
-    }
-  }
-}
+    },
+  },
+};
 </script>
 
 <style lang="less" scoped>
@@ -202,4 +226,4 @@ export default {
     background-color: #ffffff;
   }
 }
-</style>
+</style>