1 line
29 KiB
JSON
1 line
29 KiB
JSON
{"remainingRequest":"G:\\project\\smart-power-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!G:\\project\\smart-power-ui\\src\\views\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"G:\\project\\smart-power-ui\\src\\views\\index.vue","mtime":1619401065674},{"path":"G:\\project\\smart-power-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1591751767036},{"path":"G:\\project\\smart-power-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":1610504270305},{"path":"G:\\project\\smart-power-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1591751767036},{"path":"G:\\project\\smart-power-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":1610504274351}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBpbmRleFRpcHMgZnJvbSAiLi9iYXNoYm9hcmRjb20vaW5kZXhUaXBzIjsKaW1wb3J0IHBhbmNha2UgZnJvbSAiLi9iYXNoYm9hcmRjb20vcGFuY2FrZV9lY2hhcnRzIjsKaW1wb3J0IHsgaG9tZUNvdW50IH0gZnJvbSAiQC9hcGkvc3lzdGVtL2hvbWUiOwppbXBvcnQgeyBuZXdVcGxvZyB9IGZyb20gJ0AvYXBpL3N5c3RlbS91cGxvZycKaW1wb3J0IHsgbGlzdE5vdGljZSB9IGZyb20gIkAvYXBpL3N5c3RlbS9ub3RpY2UiOwppbXBvcnQgZ3pocXIgZnJvbSAiQC9hc3NldHMvaW1hZ2VzL2d6aHFyLmpwZyIKaW1wb3J0IHlkeGN4IGZyb20gIkAvYXNzZXRzL2ltYWdlcy95ZHhjeC5qcGciCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiY2xvdWQiLAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBhY3RpdmVOYW1lczogWyIxIiwgIjIiLCAiMyIsICI0Il0sCiAgICAgIERBVEE6IFtdLAogICAgICB0ZXh0OiAiIiwKICAgICAgYWN0b3I6ICIiLAogICAgICBjb3VudDogMCwKICAgICAgaXNUZXh0OiBmYWxzZSwKICAgICAgY3VycmVudFJvbGU6ICJhZG1pbkRhc2hib2FyZCIsCiAgICAgIGhlYWRlck9iajogIiIsCiAgICAgIHZlcnNpb25PYmo6IHt9LAogICAgICBuZXdzTGlzdDogW10sCiAgICAgIHRlbXBPYmplY3Q6IHsKICAgICAgICBvbmxpbmVDb3VudDogIjAiLAogICAgICAgIGFjdGl2ZUNvdW50OiAiMCIsCiAgICAgICAgZGV2aWNlQ291bnQ6ICIwIiwKICAgICAgICBtb2RlbENvdW50OiAiMCIsCiAgICAgICAgb2ZmbGluZUNvdW50OiAiMCIsCiAgICAgICAgdXNlcklkOiAiIiwKICAgICAgICB1c2VyTmFtZTogIiIKICAgICAgfSwKICAgICAgYWxhcm1Db3VudDogewogICAgICAgIHByb2Nlc3NDb3VudDogIjAiLAogICAgICAgIHVuUHJvY2Vzc0NvdW50OiAiMCIsCiAgICAgICAgYWxhcm1Db3VudDogIjAiCiAgICAgIH0sCiAgICAgIGRldmljZUNvbmZpZzogewogICAgICAgIHRvb2x0aXA6IHsKICAgICAgICAgIGZvcm1hdHRlcjogInthfSA8YnIvPntifToge2N9ICh7ZH0lKSIKICAgICAgICB9LAogICAgICAgIHNlcmllczogewogICAgICAgICAgcmFkaXVzOiBbIjUwJSIsICI3NSUiXQogICAgICAgIH0sCiAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICBub3JtYWw6IHsKICAgICAgICAgICAgY29sb3I6IGZ1bmN0aW9uKHBhcmFtcykgewogICAgICAgICAgICAgIHZhciBjb2xvckxpc3QgPSBbIiMwMGNlZmMiLCAicmdiKDIxMSwgMjUxLCAyNTMpIl07CiAgICAgICAgICAgICAgcmV0dXJuIGNvbG9yTGlzdFtwYXJhbXMuZGF0YUluZGV4XTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgYWxhcm1Db25maWc6IHsKICAgICAgICB0b29sdGlwOiB7CiAgICAgICAgICBmb3JtYXR0ZXI6ICJ7YX0gPGJyLz57Yn06IHtjfSAoe2R9JSkiCiAgICAgICAgfSwKICAgICAgICBzZXJpZXM6IHsKICAgICAgICAgIHJhZGl1czogWyI1MCUiLCAiNzUlIl0KICAgICAgICB9LAogICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgbm9ybWFsOiB7CiAgICAgICAgICAgIGNvbG9yOiBmdW5jdGlvbihwYXJhbXMpIHsKICAgICAgICAgICAgICB2YXIgY29sb3JMaXN0ID0gWyJyZ2IoMjU1LCAxNTgsIDk4KSIsICJyZ2IoMjU1LCAyMzMsIDIxMykiXTsKICAgICAgICAgICAgICByZXR1cm4gY29sb3JMaXN0W3BhcmFtcy5kYXRhSW5kZXhdOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9LAogICAgICBvcHRpb24xOiBbCiAgICAgICAgewogICAgICAgICAgaW1nOiB5ZHhjeCwKICAgICAgICAgIGxhYmxlOiAi5b6u5L+h5bCP56iL5bqPIiwKICAgICAgICAgIGRlc2NyaWJlOiAi5LyB5Lia55So5oi35ZKM5Liq5Lq655So5oi36YCa6L+H5b6u5L+h5bCP56iL5bqP77yM5Y+v5Lul5p+l55yL6K6+5aSH77yM5o6n5Yi26K6+5aSH77yM5p+l55yL6K6+5aSH5a6e5pe25pWw5o2u5ZKM5Y6G5Y+y5pWw5o2u77yb5p+l55yL5oql6K2m5L+h5oGv77yM5aSE55CG5oql6K2m5L+h5oGv77yM5p+l55yL6aG555uu5L+h5oGv562J44CCIgogICAgICAgIH0KICAgICAgXSwKICAgICAgb3B0aW9uMjogWwogICAgICAgIHsKICAgICAgICAgIGltZzogZ3pocXIsCiAgICAgICAgICBsYWJsZTogIuW+ruS/oeWFrOS8l+WPtyIsCiAgICAgICAgICBkZXNjcmliZTogIumAmui/h+WFs+azqOW+ruS/oeWFrOS8l+WPt++8jOWPr+S7peWunuaXtuaOpeaUtuWIsOezu+e7n+mAmuefpe+8jOinpuWPkeWZqOa2iOaBr+etieOAgiIKICAgICAgICB9CiAgICAgIF0sCiAgICAgIGluZGV4X21fdHpnZzogZmFsc2UsCiAgICAgIGhlYWRfYnRuX2dqams6IGZhbHNlLAogICAgICBoZWFkX2J0bl9zYmprOiBmYWxzZSwKICAgICAgaW5kZXhfbV95ZHhjeDogZmFsc2UsCiAgICAgIHVzZXJUeXBlOiBudWxsCiAgICB9OwogIH0sCiAgY29tcG9uZW50czogewogICAgaW5kZXhUaXBzLAogICAgcGFuY2FrZQogIH0sCiAgY3JlYXRlZCgpIHsKICAgIHRoaXMuaW5pdCgpOwogIH0sCiAgbWV0aG9kczogewogICAgaW5pdCgpIHsKICAgICAgdGhpcy51c2VyVHlwZSA9IHRoaXMuJHN0b3JlLmdldHRlcnMudXNlclR5cGU7CiAgICAgIHRoaXMuZ2V0Q291bnQoKTsKICAgICAgdGhpcy5nZXRWZXJzaW9uTGlzdCgpOwogICAgICB0aGlzLmdldE5vdGljZUxpc3QoKTsKICAgIH0sCiAgICB2ZXJzaW9uU2VlTW9yZUNsaWNrKCkgewogICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7CiAgICAgICAgcGF0aDogIi91cGxvZy9saXN0IgogICAgICB9KTsKICAgIH0sCiAgICBub3RpY2VTZWVNb3JlQ2xpY2soKSB7CiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHsgcGF0aDogIi9uZXdzIiB9KTsKICAgICAgLy8gdGhpcy4kcm91dGVyLnB1c2goewogICAgICAvLyAgIHBhdGg6ICIvYWRtaW4vbm90aWNlcy9saXN0IgogICAgICAvLyB9KTsKICAgIH0sCiAgICBnZXROb3RpY2VMaXN0KCkgewogICAgICBsaXN0Tm90aWNlKHsKICAgICAgICAgIHBhZ2VOdW06IDEsCiAgICAgICAgICBwYWdlU2l6ZTogNQogICAgICB9KS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICAgIHRoaXMubmV3c0xpc3QgPSByZXNwb25zZS5yb3dzCiAgICAgIH0pLmNhdGNoKGVyciA9PiB7fSkKICAgIH0sCiAgICBnZXRWZXJzaW9uTGlzdCgpIHsKICAgICAgbmV3VXBsb2coKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLnZlcnNpb25PYmogPSByZXNwb25zZS5kYXRhCiAgICAgIH0pLmNhdGNoKGVyciA9PiB7fSkKICAgIH0sCiAgICBub3RpY2VDbGljayhyb3cpIHsKICAgICAgdGhpcy4kcm91dGVyLnB1c2goeyBwYXRoOiAiL25ld3MiLCBxdWVyeTogeyBuZXdJZDogcm93Lm5vdGljZUlkIH0gfSk7CiAgICB9LAogICAgY29udGVudFRvU3RyaW5nKHZhbCkgewogICAgICBsZXQgc3RyID0gIiI7CiAgICAgIGlmICh2YWwpIHsKICAgICAgICBsZXQgbGlzdCA9IG5ldyBBcnJheSgpOwogICAgICAgIGxpc3QgPSB2YWwuc3BsaXQoIjsiKTsKICAgICAgICBsaXN0LmZvckVhY2goKHYsIGluZGV4KSA9PiB7CiAgICAgICAgICAvLyBpZiAoaW5kZXggIT09IGxpc3QubGVuZ3RoIC0xKSB7CiAgICAgICAgICBzdHIgKz0gdiArICIgPGJyPiI7CiAgICAgICAgICAvLyB9CiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIHJldHVybiBzdHI7CiAgICB9LAogICAgZGV2aWNlUmF0ZShjb3VudCwgemspIHsKICAgICAgbGV0IG51bSA9ICgocGFyc2VJbnQoemspIC8gcGFyc2VJbnQoY291bnQpKSAqIDEwMCkudG9GaXhlZCgwKTsKICAgICAgaWYgKG51bSAhPT0gIk5hTiIpIHsKICAgICAgICByZXR1cm4gbnVtICsgIiAlIjsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gIjAgJSI7CiAgICAgIH0KICAgIH0sCiAgICBhbGFybVJhdGUoY291bnQsIHprKSB7CiAgICAgIGxldCBudW0gPSAoKHBhcnNlSW50KHprKSAvIHBhcnNlSW50KGNvdW50KSkgKiAxMDApLnRvRml4ZWQoMCk7CiAgICAgIGlmIChudW0gIT09ICJOYU4iKSB7CiAgICAgICAgcmV0dXJuIG51bSArICIgJSI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuICIwICUiOwogICAgICB9CiAgICB9LAogICAgZ2V0QWxhcm1Db3VudCgpIHsKICAgIH0sCiAgICBnZXRDb3VudCgpIHsKICAgICAgaG9tZUNvdW50KCkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgICB0aGlzLnRlbXBPYmplY3QgPSB7CiAgICAgICAgICAgICAgb25saW5lQ291bnQ6IHJlc3BvbnNlLmRhdGEub25saW5lRGV2aWNlVG90YWwsCiAgICAgICAgICAgICAgYWN0aXZlQ291bnQ6IHJlc3BvbnNlLmRhdGEuYWN0aXZlQ291bnQsCiAgICAgICAgICAgICAgZGV2aWNlQ291bnQ6IHJlc3BvbnNlLmRhdGEuZGV2aWNlVG90YWwsCiAgICAgICAgICAgICAgbW9kZWxDb3VudDogcmVzcG9uc2UuZGF0YS5wcm9qZWN0VG90YWwsCiAgICAgICAgICAgICAgb2ZmbGluZUNvdW50OiAocmVzcG9uc2UuZGF0YS5kZXZpY2VUb3RhbCAtIHJlc3BvbnNlLmRhdGEub25saW5lRGV2aWNlVG90YWwpIHx8IDAKICAgICAgICAgIH0KICAgICAgICAgIHRoaXMuYWxhcm1Db3VudCA9IHsKICAgICAgICAgICAgcHJvY2Vzc0NvdW50OiByZXNwb25zZS5kYXRhLnByb2Nlc3NlZCwKICAgICAgICAgICAgdW5Qcm9jZXNzQ291bnQ6IHJlc3BvbnNlLmRhdGEudW5Qcm9jZXNzZWQsCiAgICAgICAgICAgIGFsYXJtQ291bnQ6IHJlc3BvbnNlLmRhdGEuYWxhcm1Ub3RhbAogICAgICAgICAgfTsKICAgICAgfSkuY2F0Y2goZXJyID0+IHsKICAgICAgICAgIGNvbnNvbGUubG9nKGVycikKICAgICAgfSkKICAgIH0sCiAgICB0b0RldmljZUZ1KCkgewogICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7CiAgICAgICAgcGF0aDogIi9pb3QvZGV2aWNlcyIKICAgICAgfSk7CiAgICB9LAogICAgdG9Qcm9kRnUoKSB7CiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHsKICAgICAgICBwYXRoOiAiL2lvdC9wcm9kIgogICAgICB9KTsKICAgIH0sCiAgICB0b0FsYXJtRnUoKSB7CiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHsKICAgICAgICBwYXRoOiAiL3RyaWdnZXIvdHJpZ2dlci9sb2ciCiAgICAgIH0pOwogICAgfSwKICAgIGdldERhdGEoKSB7CiAgICAgIGlmICh0aGlzLmNvdW50IDwgdGhpcy5EQVRBLmxlbmd0aCAtIDEpIHsKICAgICAgICB0aGlzLmNvdW50Kys7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5jb3VudCA9IDA7CiAgICAgIH0KICAgICAgdGhpcy5pc1RleHQgPSB0cnVlOwogICAgICB0aGlzLmFjdG9yID0gdGhpcy5EQVRBW3RoaXMuY291bnRdOwogICAgfSwKICAgIHNldERhdGEoKSB7CiAgICAgIGxldCBudW0gPSAwOwogICAgICBsZXQgY291bnQgPSAwOwogICAgICBsZXQgYWN0aXZlID0gZmFsc2U7CiAgICAgIGxldCB0aW1lb3V0c3RhcnQgPSA1MDAwOwogICAgICBsZXQgdGltZW91dGVuZCA9IDEwMDA7CiAgICAgIGxldCB0aW1lc3BlZWQgPSAxMDsKICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4gewogICAgICAgIGlmICh0aGlzLmlzVGV4dCkgewogICAgICAgICAgaWYgKGNvdW50ID09IHRoaXMuYWN0b3IubGVuZ3RoKSB7CiAgICAgICAgICAgIGFjdGl2ZSA9IHRydWU7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBhY3RpdmUgPSBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChhY3RpdmUpIHsKICAgICAgICAgICAgbnVtLS07CiAgICAgICAgICAgIHRoaXMudGV4dCA9IHRoaXMuYWN0b3Iuc3Vic3RyKDAsIG51bSk7CiAgICAgICAgICAgIGlmIChudW0gPT0gMCkgewogICAgICAgICAgICAgIHRoaXMuaXNUZXh0ID0gZmFsc2U7CiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAgICBjb3VudCA9IDA7CiAgICAgICAgICAgICAgICB0aGlzLmdldERhdGEoKTsKICAgICAgICAgICAgICB9LCB0aW1lb3V0ZW5kKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgbnVtKys7CiAgICAgICAgICAgIHRoaXMudGV4dCA9IHRoaXMuYWN0b3Iuc3Vic3RyKDAsIG51bSk7CiAgICAgICAgICAgIGlmIChudW0gPT0gdGhpcy5hY3Rvci5sZW5ndGgpIHsKICAgICAgICAgICAgICB0aGlzLmlzVGV4dCA9IGZhbHNlOwogICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgdGhpcy5pc1RleHQgPSB0cnVlOwogICAgICAgICAgICAgICAgY291bnQgPSB0aGlzLmFjdG9yLmxlbmd0aDsKICAgICAgICAgICAgICB9LCB0aW1lb3V0c3RhcnQpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9LCB0aW1lc3BlZWQpOwogICAgfQogIH0KfTsK"},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/views","sourcesContent":["<template>\n <div class=\"page-cloud\">\n <div class=\"public-nav-div\">\n <div :style=\"'width: calc(100% - 280px); float: left;'\">\n <div class=\"genert-div button-div\">\n <div class=\"title\" >云端数据概况</div>\n <div class=\"content-div buttom-div\" v-if=\"userType === 'SYSTEM'\">\n <i class=\"iconfont icon-chanpinC fontsize\"></i>\n <p class=\"buttom-div-p\">{{tempObject.modelCount}}</p>\n <p>全部型号数量</p>\n <el-button type=\"text\" :disabled=\"true\" @click=\"toProdFu\">管理型号</el-button>\n </div>\n <div class=\"content-div buttom-div\" v-else-if=\"userType === 'TENANT'\">\n <i class=\"iconfont icon-chanpinC fontsize\"></i>\n <p class=\"buttom-div-p\">{{tempObject.modelCount}}</p>\n <p>全部项目数量</p>\n <el-button type=\"text\" :disabled=\"true\" @click=\"toProdFu\">管理项目</el-button>\n </div>\n <div class=\"content-div buttom-div\" v-else>\n <i class=\"iconfont icon-chanpinC fontsize\"></i>\n <p class=\"buttom-div-p\">0</p>\n <p>全部项目数量</p>\n <el-button type=\"text\" :disabled=\"true\" @click=\"toProdFu\">管理项目</el-button>\n </div>\n <div class=\"content-div buttom-div\">\n <i class=\"iconfont icon-shebeishuliang fontsize\"></i>\n <p class=\"buttom-div-p\">{{tempObject.deviceCount}}</p>\n <p>全部设备数量</p>\n\n <el-button type=\"text\" :disabled=\"true\" @click=\"toDeviceFu\">管理设备</el-button>\n </div>\n <div class=\"content-div buttom-div\">\n <i class=\"iconfont icon-chufaqi fontsize\"></i>\n <p class=\"buttom-div-p\">{{tempObject.onlineCount}}</p>\n <p>在线设备数量</p>\n\n <el-button type=\"text\" :disabled=\"true\" @click=\"toDeviceFu\">管理设备</el-button>\n </div>\n <div class=\"content-div buttom-div\">\n <div style=\" width: 100%; height: 160px; position: relative; top: 32px;\">\n <span\n style=\"font-size: 14px; font-family: 'Microsoft YaHei'; font-weight: bold; position: relative;top: 35px;left: 20px;\"\n >在线率</span>\n <span\n style=\"font-size: 17px; font-family: 'Microsoft YaHei'; font-weight: bold; color: #30ff00; position: relative;top: 20px;left: -20px;\"\n >{{deviceRate( tempObject.deviceCount, tempObject.onlineCount)}}</span>\n <pancake\n styles=\"width: 100%; height: 160px; width: 158px; border-radius: 50%; border: 1px solid; height: 158px;\"\n id=\"pancake026\"\n :config=\"deviceConfig\"\n :option=\"{ data: [{value: tempObject.onlineCount, name:'在线'}, {value: tempObject.offlineCount, name:'离线'}], title: '设备状态' }\"\n ></pancake>\n </div>\n </div>\n\n <div class=\"content-div buttom-div\">\n <i class=\"iconfont icon-baojing fontsize\"></i>\n <p class=\"buttom-div-p\">{{alarmCount.alarmCount}}</p>\n <p>报警总数</p>\n\n <el-button type=\"text\" :disabled=\"true\" @click=\"toAlarmFu\">管理报警</el-button>\n </div>\n <div class=\"content-div buttom-div\">\n <i class=\"iconfont icon-gaojingyichuli fontsize\"></i>\n <p class=\"buttom-div-p\">{{alarmCount.processCount}}</p>\n <p>已处理</p>\n <el-button type=\"text\" :disabled=\"true\" @click=\"toAlarmFu\">管理报警</el-button>\n </div>\n <div class=\"content-div buttom-div\">\n <i class=\"iconfont icon-weichuligaojing fontsize\"></i>\n <p class=\"buttom-div-p\">{{alarmCount.unProcessCount}}</p>\n <p>未处理</p>\n <el-button type=\"text\" :disabled=\"true\" @click=\"toAlarmFu\">管理报警</el-button>\n </div>\n\n <div class=\"content-div buttom-div\">\n <div style=\" width: 100%; height: 160px; position: relative; top: 32px;\">\n <span\n style=\"font-size: 14px; font-family: 'Microsoft YaHei'; font-weight: bold; position: relative;top: 35px;left: 18px;\"\n >处理率</span>\n <span\n style=\"font-size: 17px; font-family: 'Microsoft YaHei'; font-weight: bold; color: #30ff00; position: relative;top: 20px;left: -20px;\"\n >{{alarmRate(alarmCount.alarmCount, alarmCount.processCount)}}</span>\n <pancake\n styles=\"width: 100%; height: 160px; height: 160px; width: 158px; border-radius: 50%; border: 1px solid; height: 158px;\"\n :config=\"alarmConfig\"\n id=\"pancake157\"\n :option=\"{ data: [{value: alarmCount.processCount, name:'已处理'}, {value: alarmCount.unProcessCount, name:'未处理'}], title: '报警处理' }\"\n ></pancake>\n </div>\n </div>\n </div>\n\n <div class=\"genert-div\" v-if=\"index_m_tzgg\">\n <div class=\"title\">云端设备组态流程</div>\n <div class=\"content\">\n <div class=\"content-div\" @click=\"toProdFu\">\n <i class=\"iconfont icon-chanpinC fontsize\"></i>\n <p>添加产品</p>\n <p>定义产品属性</p>\n </div>\n <div class=\"right-icon\">\n <i class=\"iconfont icon-right-fill youjiantou\"></i>\n </div>\n <div class=\"content-div\" @click=\"toDeviceFu\">\n <i class=\"iconfont icon-tianjiashebei fontsize\"></i>\n <p>添加设备</p>\n <p>创建设备与实物对应</p>\n </div>\n <div class=\"right-icon\">\n <i class=\"iconfont icon-right-fill youjiantou\"></i>\n </div>\n <div class=\"content-div\">\n <i class=\"iconfont icon-icon_xinyong_xianxing_jijin- fontsize\"></i>\n <p>数据上报</p>\n <p>设备实时数据上传云端</p>\n </div>\n <div class=\"right-icon\">\n <i class=\"iconfont icon-right-fill youjiantou\"></i>\n </div>\n <div class=\"content-div\">\n <i class=\"iconfont icon-lishijilu fontsize\"></i>\n <p>云端查看</p>\n <p>云端查看设备历史数据</p>\n </div>\n </div>\n </div>\n\n <div\n class=\"genert-div button-div\"\n style=\"width: calc((100% - 30px) / 2); margin-right: 30px;\"\n >\n <div class=\"title\">\n 更新日志\n <div class=\"see-more\" @click=\"versionSeeMoreClick()\">查看更多</div>\n </div>\n <div class=\"new-div-wrap\">\n <div\n style=\"font-size: 20px; line-height: 24px; margin-bottom: 3px;\"\n >更新内容 ( {{versionObj.version}} )</div>\n <div\n style=\"font-size: 16px; line-height: 25px; padding-left: 0px; height: 140px; overflow: auto;\"\n class=\"new-info-wrap\"\n v-html=\"versionObj.content\"\n >\n <!-- <el-input v-model=\"versionObj.content\" :readonly=\"true\" type=\"textarea\" class=\"version-input\" :rows=\"6\"></el-input> -->\n </div>\n </div>\n </div>\n\n <div class=\"genert-div button-div\" style=\"width: calc((100% - 30px) / 2)\">\n <div class=\"title\">\n 通知公告\n <div class=\"see-more\" @click=\"noticeSeeMoreClick()\">查看更多</div>\n </div>\n <div style=\"padding: 20px 5px; \" class=\"new-div-wrap\">\n <div v-for=\"(item, index) in newsList\" :key=\"index\" class=\"news-item\">\n <span class=\"ontice-span\"></span>\n <span @click=\"noticeClick(item)\">{{item.noticeTitle}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"dashboard-tips\">\n <indexTips title=\"微信小程序\" :option=\"option1\"></indexTips>\n <indexTips title=\"微信公众号\" :option=\"option2\"></indexTips>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport indexTips from \"./bashboardcom/indexTips\";\nimport pancake from \"./bashboardcom/pancake_echarts\";\nimport { homeCount } from \"@/api/system/home\";\nimport { newUplog } from '@/api/system/uplog'\nimport { listNotice } from \"@/api/system/notice\";\nimport gzhqr from \"@/assets/images/gzhqr.jpg\"\nimport ydxcx from \"@/assets/images/ydxcx.jpg\"\nexport default {\n name: \"cloud\",\n data() {\n return {\n activeNames: [\"1\", \"2\", \"3\", \"4\"],\n DATA: [],\n text: \"\",\n actor: \"\",\n count: 0,\n isText: false,\n currentRole: \"adminDashboard\",\n headerObj: \"\",\n versionObj: {},\n newsList: [],\n tempObject: {\n onlineCount: \"0\",\n activeCount: \"0\",\n deviceCount: \"0\",\n modelCount: \"0\",\n offlineCount: \"0\",\n userId: \"\",\n userName: \"\"\n },\n alarmCount: {\n processCount: \"0\",\n unProcessCount: \"0\",\n alarmCount: \"0\"\n },\n deviceConfig: {\n tooltip: {\n formatter: \"{a} <br/>{b}: {c} ({d}%)\"\n },\n series: {\n radius: [\"50%\", \"75%\"]\n },\n itemStyle: {\n normal: {\n color: function(params) {\n var colorList = [\"#00cefc\", \"rgb(211, 251, 253)\"];\n return colorList[params.dataIndex];\n }\n }\n }\n },\n alarmConfig: {\n tooltip: {\n formatter: \"{a} <br/>{b}: {c} ({d}%)\"\n },\n series: {\n radius: [\"50%\", \"75%\"]\n },\n itemStyle: {\n normal: {\n color: function(params) {\n var colorList = [\"rgb(255, 158, 98)\", \"rgb(255, 233, 213)\"];\n return colorList[params.dataIndex];\n }\n }\n }\n },\n option1: [\n {\n img: ydxcx,\n lable: \"微信小程序\",\n describe: \"企业用户和个人用户通过微信小程序,可以查看设备,控制设备,查看设备实时数据和历史数据;查看报警信息,处理报警信息,查看项目信息等。\"\n }\n ],\n option2: [\n {\n img: gzhqr,\n lable: \"微信公众号\",\n describe: \"通过关注微信公众号,可以实时接收到系统通知,触发器消息等。\"\n }\n ],\n index_m_tzgg: false,\n head_btn_gjjk: false,\n head_btn_sbjk: false,\n index_m_ydxcx: false,\n userType: null\n };\n },\n components: {\n indexTips,\n pancake\n },\n created() {\n this.init();\n },\n methods: {\n init() {\n this.userType = this.$store.getters.userType;\n this.getCount();\n this.getVersionList();\n this.getNoticeList();\n },\n versionSeeMoreClick() {\n this.$router.push({\n path: \"/uplog/list\"\n });\n },\n noticeSeeMoreClick() {\n this.$router.push({ path: \"/news\" });\n // this.$router.push({\n // path: \"/admin/notices/list\"\n // });\n },\n getNoticeList() {\n listNotice({\n pageNum: 1,\n pageSize: 5\n }).then(response => {\n this.newsList = response.rows\n }).catch(err => {})\n },\n getVersionList() {\n newUplog().then(response => {\n this.versionObj = response.data\n }).catch(err => {})\n },\n noticeClick(row) {\n this.$router.push({ path: \"/news\", query: { newId: row.noticeId } });\n },\n contentToString(val) {\n let str = \"\";\n if (val) {\n let list = new Array();\n list = val.split(\";\");\n list.forEach((v, index) => {\n // if (index !== list.length -1) {\n str += v + \" <br>\";\n // }\n });\n }\n\n return str;\n },\n deviceRate(count, zk) {\n let num = ((parseInt(zk) / parseInt(count)) * 100).toFixed(0);\n if (num !== \"NaN\") {\n return num + \" %\";\n } else {\n return \"0 %\";\n }\n },\n alarmRate(count, zk) {\n let num = ((parseInt(zk) / parseInt(count)) * 100).toFixed(0);\n if (num !== \"NaN\") {\n return num + \" %\";\n } else {\n return \"0 %\";\n }\n },\n getAlarmCount() {\n },\n getCount() {\n homeCount().then(response => {\n this.tempObject = {\n onlineCount: response.data.onlineDeviceTotal,\n activeCount: response.data.activeCount,\n deviceCount: response.data.deviceTotal,\n modelCount: response.data.projectTotal,\n offlineCount: (response.data.deviceTotal - response.data.onlineDeviceTotal) || 0\n }\n this.alarmCount = {\n processCount: response.data.processed,\n unProcessCount: response.data.unProcessed,\n alarmCount: response.data.alarmTotal\n };\n }).catch(err => {\n console.log(err)\n })\n },\n toDeviceFu() {\n this.$router.push({\n path: \"/iot/devices\"\n });\n },\n toProdFu() {\n this.$router.push({\n path: \"/iot/prod\"\n });\n },\n toAlarmFu() {\n this.$router.push({\n path: \"/trigger/trigger/log\"\n });\n },\n getData() {\n if (this.count < this.DATA.length - 1) {\n this.count++;\n } else {\n this.count = 0;\n }\n this.isText = true;\n this.actor = this.DATA[this.count];\n },\n setData() {\n let num = 0;\n let count = 0;\n let active = false;\n let timeoutstart = 5000;\n let timeoutend = 1000;\n let timespeed = 10;\n setInterval(() => {\n if (this.isText) {\n if (count == this.actor.length) {\n active = true;\n } else {\n active = false;\n }\n if (active) {\n num--;\n this.text = this.actor.substr(0, num);\n if (num == 0) {\n this.isText = false;\n setTimeout(() => {\n count = 0;\n this.getData();\n }, timeoutend);\n }\n } else {\n num++;\n this.text = this.actor.substr(0, num);\n if (num == this.actor.length) {\n this.isText = false;\n setTimeout(() => {\n this.isText = true;\n count = this.actor.length;\n }, timeoutstart);\n }\n }\n }\n }, timespeed);\n }\n }\n};\n</script>\n\n<style lang=\"scss\">\n.page-cloud {\n padding: 20px;\n height: calc(100vh - 84px);\n width: 100%;\n padding: 20px;\n background: #f0f2f5;\n overflow: auto;\n\n .public-nav-div {\n // 最小宽度\n width: 100%;\n min-width: 1100px;\n }\n\n .genert-div {\n border: 0px;\n border-radius: 5px;\n box-shadow: 0px 1px 3px 1px;\n background-color: white;\n font: 14px/16px \"Roboto\", sans-serif;\n color: #666666;\n width: 100%;\n float: left;\n margin-bottom: 20px;\n cursor: default;\n }\n\n .new-div-wrap {\n height: 200px;\n width: calc(100% - 35px);\n overflow: auto;\n padding: 20px 5px 10px 30px;\n padding-left: 30px;\n }\n\n .title {\n height: 50px;\n border-bottom: 1px solid #c4c4c4;\n padding: 21px 10px 10px 30px;\n font-size: 18px;\n }\n\n .content {\n height: 160px;\n padding: 30px 20px 30px 30px;\n color: #999;\n }\n\n .content-div {\n float: left;\n width: 160px;\n min-height: 150px;\n font-size: 16px;\n text-align: center;\n padding-top: 25px;\n border-radius: 5px;\n\n p {\n margin-top: 10px;\n }\n }\n\n .content-div:hover {\n box-shadow: 0 0 10px #09c;\n color: #09c;\n }\n\n .buttom-div {\n margin: 20px 20px 20px 20px;\n margin-left: calc((100% - (170px * 4)) / 8);\n margin-right: calc((100% - (170px * 4)) / 8);\n }\n\n .fontsize {\n font-size: 64px;\n line-height: 1;\n }\n\n .dashboard-tips {\n width: 260px;\n float: left;\n margin-left: 20px;\n }\n\n .youjiantou {\n font-size: 18px;\n }\n\n .right-icon {\n width: calc((100% - (170px * 4)) / 3);\n float: left;\n padding-top: 65px;\n margin-right: 10px;\n text-align: center;\n }\n}\n\n.wel-contailer {\n position: relative;\n}\n\n.banner-text {\n position: relative;\n padding: 0 20px;\n font-size: 20px;\n text-align: center;\n color: #333;\n}\n\n.buttom-div-p {\n font-size: 22px;\n}\n\n.news-item {\n position: relative;\n left: 20px;\n line-height: 30px;\n font-size: 16px;\n width: calc(100% - 20px);\n overflow: hidden;\n}\n\n.news-item:hover {\n color: #1890ff;\n}\n\n.ontice-span {\n display: inline-block;\n width: 6px;\n height: 6px;\n border-radius: 6px;\n background: #1890ff;\n margin-right: 20px;\n position: relative;\n top: -1px;\n}\n\n.see-more {\n position: relative;\n // left: 10px;\n float: right;\n font-size: 12px;\n // top: 10px;\n}\n\n.see-more:hover {\n color: #1890ff;\n}\n.new-div-wrap .new-info-wrap::-webkit-scrollbar {\n /*滚动条整体样式*/\n width: 8px; /*高宽分别对应横竖滚动条的尺寸*/\n height: 3px;\n}\n.new-div-wrap .new-info-wrap::-webkit-scrollbar-thumb {\n /*滚动条里面小方块*/\n border-radius: 10px;\n box-shadow: inset 0 0 5px #9e9d9d;\n background: #ffffff;\n}\n.new-div-wrap .new-info-wrap::-webkit-scrollbar-track {\n /*滚动条里面轨道*/\n box-shadow: inset 0 0 5px #f6f6f6;\n border-radius: 10px;\n background: #ffffff;\n}\n\n.page-cloud::-webkit-scrollbar {\n /*滚动条整体样式*/\n width: 8px; /*高宽分别对应横竖滚动条的尺寸*/\n height: 3px;\n}\n.page-cloud::-webkit-scrollbar-thumb {\n /*滚动条里面小方块*/\n border-radius: 10px;\n box-shadow: inset 0 0 5px #9e9d9d;\n background: #ffffff;\n}\n.page-cloud::-webkit-scrollbar-track {\n /*滚动条里面轨道*/\n box-shadow: inset 0 0 5px #f6f6f6;\n border-radius: 10px;\n background: #ffffff;\n}\n</style>\n<style>\n.version-input .el-textarea__inner {\n border: 0px;\n cursor: default;\n}\n</style>\n"]}]} |