1 line
44 KiB
JSON
1 line
44 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\\iot\\model\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"G:\\project\\smart-power-ui\\src\\views\\iot\\model\\index.vue","mtime":1618897971217},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7CiAgbGlzdE1vZGVsLAogIGdldE1vZGVsLAogIGRlbE1vZGVsLAogIGFkZE1vZGVsLAogIHVwZGF0ZU1vZGVsLAogIGV4cG9ydE1vZGVsLAogIGxpc3RQcm9kdWN0TGlzdAp9IGZyb20gIkAvYXBpL2lvdC9tb2RlbCI7CmltcG9ydCB7IGxpc3RWZW5kb3IgfSBmcm9tICJAL2FwaS9pb3QvdmVuZG9yIjsKaW1wb3J0IHsgbGlzdERldmljZVR5cGVMaXN0IH0gZnJvbSAiQC9hcGkvaW90L2RldmljZSI7CmltcG9ydCBTZWxlY3RUYWJsZVdyYXAgZnJvbSAiQC9jb21wb25lbnRzL1NlbGVjdFRhYmxlL2luZGV4IjsKaW1wb3J0IFBhcmFtV3JhcCBmcm9tICJAL2NvbXBvbmVudHMvUGFyYW1XcmFwL2RldmljZVBhcmFtIjsKCmNvbnN0IGRldmljZVN0YXJ0c09wdCA9IHsKICAwOiAi56aB55SoIiwKICAxOiAi5ZCv55SoIgp9OwoKY29uc3QgcHJvdG9jb2xUeXBlT3B0ID0gewogIElPVE9TOiAiaW905bmz5Y+wIiwKICBPTkVORVQ6ICJPTkVORVQiCn07CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiTW9kZWwiLAogIGNvbXBvbmVudHM6IHsKICAgIFNlbGVjdFRhYmxlV3JhcCwKICAgIFBhcmFtV3JhcAogIH0sCiAgZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIHByb3RvY29sVHlwZU9wdCwKICAgICAgc2VsZWN0VGFibGVTaG93OiBmYWxzZSwKICAgICAgdGFibGVTZWxlY3RPcHRpb246IHt9LAogICAgICBzZWxlY3RSZXN1bHQ6IHt9LAogICAgICBkZXZpY2VTdGFydHNPcHQsCiAgICAgIC8vIOmBrue9qeWxggogICAgICBsb2FkaW5nOiB0cnVlLAogICAgICAvLyDpgInkuK3mlbDnu4QKICAgICAgaWRzOiBbXSwKICAgICAgLy8g6Z2e5Y2V5Liq56aB55SoCiAgICAgIHNpbmdsZTogdHJ1ZSwKICAgICAgLy8g6Z2e5aSa5Liq56aB55SoCiAgICAgIG11bHRpcGxlOiB0cnVlLAogICAgICAvLyDmmL7npLrmkJzntKLmnaHku7YKICAgICAgc2hvd1NlYXJjaDogdHJ1ZSwKICAgICAgLy8g5oC75p2h5pWwCiAgICAgIHRvdGFsOiAwLAogICAgICAvLyDlnovlj7fooajmoLzmlbDmja4KICAgICAgbW9kZWxMaXN0OiBbXSwKICAgICAgLy8g5by55Ye65bGC5qCH6aKYCiAgICAgIHRpdGxlOiAiIiwKICAgICAgLy8g5piv5ZCm5pi+56S65by55Ye65bGCCiAgICAgIG9wZW46IGZhbHNlLAogICAgICAvLyDmn6Xor6Llj4LmlbAKICAgICAgcXVlcnlQYXJhbXM6IHsKICAgICAgICBwYWdlTnVtOiAxLAogICAgICAgIHBhZ2VTaXplOiAxMCwKICAgICAgICB2ZW5kb3JJZDogbnVsbCwKICAgICAgICBtb2RlbE5hbWU6IG51bGwsCiAgICAgICAgbW9kZWxDb2RlOiBudWxsLAogICAgICAgIHByb2RLZXk6IG51bGwsCiAgICAgICAgcHJvZFNlY3JldDogbnVsbCwKICAgICAgICBwcm90b2NvbFR5cGU6IG51bGwsCiAgICAgICAgb3JkZXJCeUNvbHVtbjogImNyZWF0ZVRpbWUiLAogICAgICAgIGlzQXNjOiAiZGVzYyIKICAgICAgfSwKICAgICAgLy8g6KGo5Y2V5Y+C5pWwCiAgICAgIGZvcm06IHt9LAogICAgICAvLyDooajljZXmoKHpqowKICAgICAgcnVsZXM6IHsKICAgICAgICB2ZW5kb3JJZDogWwogICAgICAgICAgeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogIuWOguWVhuS4jeiDveS4uuepuiIsIHRyaWdnZXI6ICJibHVyIiB9CiAgICAgICAgXSwKICAgICAgICBwcm9kS2V5OiBbCiAgICAgICAgICB7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAi5Lqn5ZOBUEvkuI3og73kuLrnqboiLCB0cmlnZ2VyOiAiYmx1ciIgfQogICAgICAgIF0sCiAgICAgICAgbW9kZWxOYW1lOiBbCiAgICAgICAgICB7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAi5Z6L5Y+35ZCN56ew5LiN6IO95Li656m6IiwgdHJpZ2dlcjogImJsdXIiIH0KICAgICAgICBdLAogICAgICAgIGRldmljZVR5cGU6IFsKICAgICAgICAgIHsgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICLorr7lpIfnsbvlnovkuI3og73kuLrnqboiLCB0cmlnZ2VyOiAiYmx1ciIgfQogICAgICAgIF0KICAgICAgfSwKICAgICAgZGV2aWNlVHlwZUxpc3Q6IHt9CiAgICB9OwogIH0sCiAgY3JlYXRlZCgpIHsKICAgIHRoaXMuZ2V0RGV2aWNlVHlwZUxpc3QoKTsKICAgIHRoaXMuZ2V0TGlzdCgpOwogIH0sCiAgbWV0aG9kczogewogICAgc29ydENoYW5nZShjb2x1bW4pIHsKICAgICAgY29uc3Qgc29ydCA9IHsKICAgICAgICBpc0FzYzogY29sdW1uLm9yZGVyID09PSAiZGVzY2VuZGluZyIgPyAiZGVzYyIgOiAiYXNjIiwKICAgICAgICBvcmRlckJ5Q29sdW1uOiBjb2x1bW4ucHJvcAogICAgICB9OwogICAgICB0aGlzLnF1ZXJ5UGFyYW1zID0gT2JqZWN0LmFzc2lnbih0aGlzLnF1ZXJ5UGFyYW1zLCBzb3J0KTsKICAgICAgdGhpcy5oYW5kbGVRdWVyeSgpOwogICAgfSwKICAgIGluZGV4Rm9ybWF0dGVyKHZhbCkgewogICAgICByZXR1cm4gKAogICAgICAgIHZhbCArIDEgKyAodGhpcy5xdWVyeVBhcmFtcy5wYWdlTnVtIC0gMSkgKiB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VTaXplCiAgICAgICk7CiAgICB9LAogICAgLy8g5p+l6K+i6K6+5aSH57G75Z6L5YiX6KGoCiAgICBnZXREZXZpY2VUeXBlTGlzdCgpIHsKICAgICAgbGlzdERldmljZVR5cGVMaXN0KCkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgdGhpcy5kZXZpY2VUeXBlTGlzdCA9IHJlc3BvbnNlLmRhdGE7CiAgICAgIH0pOwogICAgfSwKICAgIG9wZW5Qcm9kdWN0VGFibGVTZWxlY3REaWFsb2coKSB7CiAgICAgIHRoaXMuc2VsZWN0UmVzdWx0ID0ge307CiAgICAgIHRoaXMudGFibGVTZWxlY3RPcHRpb24gPSB7CiAgICAgICAgb3RoZXJPcHRpb246IHsKICAgICAgICAgIHRhYmxlVHlwZTogInByb2R1Y3QiCiAgICAgICAgfSwKICAgICAgICBxdWVyeU9wdDogewogICAgICAgICAgZGlzYWJsZTogZmFsc2UsCiAgICAgICAgICBsYWJlbFdpZHRoOiAiNjhweCIsCiAgICAgICAgICBwYXJhbXM6IHsKICAgICAgICAgICAgcHJvdG9jb2xUeXBlOiB0aGlzLmZvcm0ucHJvdG9jb2xUeXBlCiAgICAgICAgICB9LAogICAgICAgICAgcGFnZTogewogICAgICAgICAgICBwYWdlU2l6ZTogMTAsCiAgICAgICAgICAgIHBhZ2VOdW06IDEsCiAgICAgICAgICAgIHRvdGFsOiAwCiAgICAgICAgICB9LAogICAgICAgICAgaW5saW5lOiB0cnVlLAogICAgICAgICAgcXVlcnlDaGlsZHM6IFsKICAgICAgICAgICAgLy8gewogICAgICAgICAgICAvLyAgIHN0eWxlOiAiIiwKICAgICAgICAgICAgLy8gICBwbGFjZWhvbGRlcjogIuS6p+WTgeWQjeensCIsCiAgICAgICAgICAgIC8vICAgY2xlYXJhYmxlOiB0cnVlLAogICAgICAgICAgICAvLyAgIGxhYmVsOiAi5Lqn5ZOB5ZCN56ewIiwKICAgICAgICAgICAgLy8gICB0eXBlOiAiaW5wdXQiLAogICAgICAgICAgICAvLyAgIGtleTogInByb2ROYW1lIiwKICAgICAgICAgICAgLy8gICBzaXplOiAic21hbGwiLAogICAgICAgICAgICAvLyAgIHZhbHVlOiAiIgogICAgICAgICAgICAvLyB9CiAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICB0YWJsZU9wdDogewogICAgICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgICAgICByb3dLZXk6ICJwcm9kSWQiLAogICAgICAgICAgc2VsZWN0aW9uOiBmYWxzZSwKICAgICAgICAgIG1heEhlaWdodDogIjQ1dmgiLAogICAgICAgICAgY2hpbGRzOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBzdHlsZTogIiIsCiAgICAgICAgICAgICAgbGFiZWw6ICLkuqflk4HlkI3np7AiLAogICAgICAgICAgICAgIHR5cGU6ICIiLAogICAgICAgICAgICAgIHByb3A6ICJwcm9kTmFtZSIsCiAgICAgICAgICAgICAgYWxpZ246ICJsZWZ0IiwKICAgICAgICAgICAgICB3aWR0aDogIiIsCiAgICAgICAgICAgICAgInNob3ctb3ZlcmZsb3ctdG9vbHRpcCI6IGZhbHNlLAogICAgICAgICAgICAgIHRlbXBUeXBlOiAic3BhbiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgIHN0eWxlOiAiIiwKICAgICAgICAgICAgICBsYWJlbDogIuS6p+WTgVBLIiwKICAgICAgICAgICAgICB0eXBlOiAiIiwKICAgICAgICAgICAgICBwcm9wOiAicHJvZElkIiwKICAgICAgICAgICAgICBhbGlnbjogImxlZnQiLAogICAgICAgICAgICAgIHdpZHRoOiAiIiwKICAgICAgICAgICAgICAic2hvdy1vdmVyZmxvdy10b29sdGlwIjogZmFsc2UsCiAgICAgICAgICAgICAgdGVtcFR5cGU6ICJzcGFuIgogICAgICAgICAgICB9LAogICAgICAgICAgICAvLyB7CiAgICAgICAgICAgIC8vICAgc3R5bGU6ICIiLAogICAgICAgICAgICAvLyAgIGxhYmVsOiAiUHJvZFNlY3JldCIsCiAgICAgICAgICAgIC8vICAgdHlwZTogIiIsCiAgICAgICAgICAgIC8vICAgcHJvcDogInByb2RTZWNyZXQiLAogICAgICAgICAgICAvLyAgIGFsaWduOiAibGVmdCIsCiAgICAgICAgICAgIC8vICAgd2lkdGg6ICIiLAogICAgICAgICAgICAvLyAgICJzaG93LW92ZXJmbG93LXRvb2x0aXAiOiBmYWxzZSwKICAgICAgICAgICAgLy8gICB0ZW1wVHlwZTogInNwYW4iCiAgICAgICAgICAgIC8vIH0sCiAgICAgICAgICAgIC8vIHsKICAgICAgICAgICAgLy8gICBzdHlsZTogIiIsCiAgICAgICAgICAgIC8vICAgbGFiZWw6ICLoioLngrnnsbvlnosiLAogICAgICAgICAgICAvLyAgIHR5cGU6ICIiLAogICAgICAgICAgICAvLyAgIHByb3A6ICJwcm9kTm9kZVR5cGVOYW1lIiwKICAgICAgICAgICAgLy8gICBhbGlnbjogImxlZnQiLAogICAgICAgICAgICAvLyAgIHdpZHRoOiAiIiwKICAgICAgICAgICAgLy8gICAic2hvdy1vdmVyZmxvdy10b29sdGlwIjogZmFsc2UsCiAgICAgICAgICAgIC8vICAgdGVtcFR5cGU6ICJzcGFuIgogICAgICAgICAgICAvLyB9CiAgICAgICAgICBdLAogICAgICAgICAgdGFibGVMaXN0OiB7CiAgICAgICAgICAgIHR5cGU6IEFycmF5CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB0YWJsZUxpc3Q6IFtdCiAgICAgIH07CiAgICAgIHRoaXMuc2VsZWN0VGFibGVTaG93ID0gdHJ1ZTsKICAgIH0sCiAgICAvLyDmiZPlvIDljoLllYbpgInmi6nnqpflj6Mg4oCU4oCU6KGo5qC8CiAgICBvcGVuVGFibGVTZWxlY3REaWFsb2coKSB7CiAgICAgIHRoaXMuc2VsZWN0UmVzdWx0ID0ge307CiAgICAgIHRoaXMudGFibGVTZWxlY3RPcHRpb24gPSB7CiAgICAgICAgb3RoZXJPcHRpb246IHsKICAgICAgICAgIHRhYmxlVHlwZTogInZlbmRvciIKICAgICAgICB9LAogICAgICAgIHF1ZXJ5T3B0OiB7CiAgICAgICAgICBkaXNhYmxlOiBmYWxzZSwKICAgICAgICAgIGxhYmVsV2lkdGg6ICI2OHB4IiwKICAgICAgICAgIHBhcmFtczogewogICAgICAgICAgICB2ZW5kb3JOYW1lOiAiIiwKICAgICAgICAgICAgdmVuZG9yQWRkcmVzczogIiIsCiAgICAgICAgICAgIHZlbmRvckNvbnRhY3Q6ICIiCiAgICAgICAgICB9LAogICAgICAgICAgcGFnZTogewogICAgICAgICAgICBwYWdlU2l6ZTogMTAsCiAgICAgICAgICAgIHBhZ2VOdW06IDEsCiAgICAgICAgICAgIHRvdGFsOiAwCiAgICAgICAgICB9LAogICAgICAgICAgaW5saW5lOiB0cnVlLAogICAgICAgICAgcXVlcnlDaGlsZHM6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgIHN0eWxlOiAiIiwKICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogIuWOguWVhuWQjeensCIsCiAgICAgICAgICAgICAgY2xlYXJhYmxlOiB0cnVlLAogICAgICAgICAgICAgIGxhYmVsOiAi5Y6C5ZWG5ZCN56ewIiwKICAgICAgICAgICAgICB0eXBlOiAiaW5wdXQiLAogICAgICAgICAgICAgIGtleTogInZlbmRvck5hbWUiLAogICAgICAgICAgICAgIHNpemU6ICJzbWFsbCIsCiAgICAgICAgICAgICAgdmFsdWU6ICIiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBzdHlsZTogIiIsCiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICLljoLllYblnLDlnYAiLAogICAgICAgICAgICAgIGNsZWFyYWJsZTogdHJ1ZSwKICAgICAgICAgICAgICBsYWJlbDogIuWOguWVhuWcsOWdgCIsCiAgICAgICAgICAgICAgdHlwZTogImlucHV0IiwKICAgICAgICAgICAgICBrZXk6ICJ2ZW5kb3JBZGRyZXNzIiwKICAgICAgICAgICAgICBzaXplOiAic21hbGwiLAogICAgICAgICAgICAgIHZhbHVlOiAiIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgc3R5bGU6ICIiLAogICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAi6IGU57O75pa55byPIiwKICAgICAgICAgICAgICBjbGVhcmFibGU6IHRydWUsCiAgICAgICAgICAgICAgbGFiZWw6ICLogZTns7vmlrnlvI8iLAogICAgICAgICAgICAgIHR5cGU6ICJpbnB1dCIsCiAgICAgICAgICAgICAga2V5OiAidmVuZG9yQ29udGFjdCIsCiAgICAgICAgICAgICAgc2l6ZTogInNtYWxsIiwKICAgICAgICAgICAgICB2YWx1ZTogIiIKICAgICAgICAgICAgfQogICAgICAgICAgXQogICAgICAgIH0sCiAgICAgICAgdGFibGVPcHQ6IHsKICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICAgICAgcm93S2V5OiAiZGV2aWNlSWQiLAogICAgICAgICAgc2VsZWN0aW9uOiBmYWxzZSwKICAgICAgICAgIG1heEhlaWdodDogIjQ1dmgiLAogICAgICAgICAgY2hpbGRzOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBzdHlsZTogIiIsCiAgICAgICAgICAgICAgbGFiZWw6ICLljoLllYblkI3np7AiLAogICAgICAgICAgICAgIHR5cGU6ICIiLAogICAgICAgICAgICAgIHByb3A6ICJ2ZW5kb3JOYW1lIiwKICAgICAgICAgICAgICBhbGlnbjogImxlZnQiLAogICAgICAgICAgICAgIHdpZHRoOiAiIiwKICAgICAgICAgICAgICAic2hvdy1vdmVyZmxvdy10b29sdGlwIjogZmFsc2UsCiAgICAgICAgICAgICAgdGVtcFR5cGU6ICJzcGFuIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgc3R5bGU6ICIiLAogICAgICAgICAgICAgIGxhYmVsOiAiIOiBlOezu+aWueW8jyIsCiAgICAgICAgICAgICAgdHlwZTogIiIsCiAgICAgICAgICAgICAgcHJvcDogInZlbmRvckNvbnRhY3QiLAogICAgICAgICAgICAgIGFsaWduOiAibGVmdCIsCiAgICAgICAgICAgICAgd2lkdGg6ICIiLAogICAgICAgICAgICAgICJzaG93LW92ZXJmbG93LXRvb2x0aXAiOiBmYWxzZSwKICAgICAgICAgICAgICB0ZW1wVHlwZTogInNwYW4iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBzdHlsZTogIiIsCiAgICAgICAgICAgICAgbGFiZWw6ICLljoLllYblnLDlnYAiLAogICAgICAgICAgICAgIHR5cGU6ICIiLAogICAgICAgICAgICAgIHByb3A6ICJ2ZW5kb3JBZGRyZXNzIiwKICAgICAgICAgICAgICBhbGlnbjogImxlZnQiLAogICAgICAgICAgICAgIHdpZHRoOiAiIiwKICAgICAgICAgICAgICAic2hvdy1vdmVyZmxvdy10b29sdGlwIjogZmFsc2UsCiAgICAgICAgICAgICAgdGVtcFR5cGU6ICJzcGFuIgogICAgICAgICAgICB9CiAgICAgICAgICBdLAogICAgICAgICAgdGFibGVMaXN0OiB7CiAgICAgICAgICAgIHR5cGU6IEFycmF5CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB0YWJsZUxpc3Q6IFtdCiAgICAgIH07CiAgICAgIHRoaXMuc2VsZWN0VGFibGVTaG93ID0gdHJ1ZTsKICAgIH0sCiAgICAvLyDmn6Xor6Llm57osIMKICAgIGNoaWxkR2V0TGlzdChkYXRhKSB7CiAgICAgIGlmIChkYXRhLm90aGVyT3B0aW9uLnRhYmxlVHlwZSA9PT0gInZlbmRvciIpIHsKICAgICAgICB0aGlzLnZlbmRvckNoaWxkTGlzdChkYXRhKTsKICAgICAgfSBlbHNlIGlmIChkYXRhLm90aGVyT3B0aW9uLnRhYmxlVHlwZSA9PT0gInByb2R1Y3QiKSB7CiAgICAgICAgdGhpcy5wcm9kdWN0Q2hpbGRMaXN0KGRhdGEpOwogICAgICB9CiAgICB9LAogICAgcHJvZHVjdENoaWxkTGlzdChkYXRhKSB7CiAgICAgIGxpc3RQcm9kdWN0TGlzdCgKICAgICAgICBPYmplY3QuYXNzaWduKGRhdGEucGFnZSwgZGF0YS5wYXJhbSwgeyBzZWxlY3RlZDogMSB9KQogICAgICApLnRoZW4ocmVzcG9uc2UgPT4gewogICAgICAgIHRoaXMudGFibGVTZWxlY3RPcHRpb24udGFibGVMaXN0ID0gcmVzcG9uc2UuZGF0YTsKICAgICAgICAvLyB0aGlzLnRhYmxlU2VsZWN0T3B0aW9uLnF1ZXJ5T3B0LnBhZ2UudG90YWwgPSBOdW1iZXIocmVzcG9uc2UudG90YWwpOwogICAgICB9KTsKICAgIH0sCiAgICB2ZW5kb3JDaGlsZExpc3QoZGF0YSkgewogICAgICBsaXN0VmVuZG9yKE9iamVjdC5hc3NpZ24oZGF0YS5wYWdlLCBkYXRhLnBhcmFtLCB7IHNlbGVjdGVkOiAxIH0pKS50aGVuKAogICAgICAgIHJlc3BvbnNlID0+IHsKICAgICAgICAgIHRoaXMudGFibGVTZWxlY3RPcHRpb24udGFibGVMaXN0ID0gcmVzcG9uc2Uucm93czsKICAgICAgICAgIHRoaXMudGFibGVTZWxlY3RPcHRpb24ucXVlcnlPcHQucGFnZS50b3RhbCA9IE51bWJlcihyZXNwb25zZS50b3RhbCk7CiAgICAgICAgfQogICAgICApOwogICAgfSwKICAgIC8vIOeCueWHu+aIluiAheWPjOWHu+aVsOaNruWbnuiwgwogICAgcmV0dXJuRXZlbnQoZGF0YSkgewogICAgICB0aGlzLnNlbGVjdFJlc3VsdCA9IHt9OwogICAgICBpZiAoZGF0YS50eXBlID09PSAiZGJsY2xpY2siKSB7CiAgICAgICAgaWYgKGRhdGEub3RoZXJPcHRpb24udGFibGVUeXBlID09PSAidmVuZG9yIikgewogICAgICAgICAgdGhpcy5mb3JtLnZlbmRvcklkID0gZGF0YS52YWx1ZS52ZW5kb3JJZDsKICAgICAgICAgIHRoaXMuZm9ybS52ZW5kb3JOYW1lID0gZGF0YS52YWx1ZS52ZW5kb3JOYW1lOwogICAgICAgIH0gZWxzZSBpZiAoZGF0YS5vdGhlck9wdGlvbi50YWJsZVR5cGUgPT09ICJwcm9kdWN0IikgewogICAgICAgICAgdGhpcy5mb3JtLnByb2RLZXkgPSBkYXRhLnZhbHVlLnByb2RJZDsKICAgICAgICAgIHRoaXMuZm9ybS5wcm9kU2VjcmV0ID0gZGF0YS52YWx1ZS5wcm9kU2VjcmV0OwogICAgICAgIH0KICAgICAgICB0aGlzLnNlbGVjdFRhYmxlU2hvdyA9IGZhbHNlOwogICAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9PT0gImNsaWNrIikgewogICAgICAgIGlmIChkYXRhLm90aGVyT3B0aW9uLnRhYmxlVHlwZSA9PT0gInZlbmRvciIpIHsKICAgICAgICAgIHRoaXMuc2VsZWN0UmVzdWx0LnZlbmRvcklkID0gZGF0YS52YWx1ZS52ZW5kb3JJZDsKICAgICAgICAgIHRoaXMuc2VsZWN0UmVzdWx0LnZlbmRvck5hbWUgPSBkYXRhLnZhbHVlLnZlbmRvck5hbWU7CiAgICAgICAgfSBlbHNlIGlmIChkYXRhLm90aGVyT3B0aW9uLnRhYmxlVHlwZSA9PT0gInByb2R1Y3QiKSB7CiAgICAgICAgICB0aGlzLnNlbGVjdFJlc3VsdC5wcm9kS2V5ID0gZGF0YS52YWx1ZS5wcm9kSWQ7CiAgICAgICAgICB0aGlzLnNlbGVjdFJlc3VsdC5wcm9kU2VjcmV0ID0gZGF0YS52YWx1ZS5wcm9kU2VjcmV0OwogICAgICAgIH0KICAgICAgICB0aGlzLnNlbGVjdFJlc3VsdC50YWJsZVR5cGUgPSBkYXRhLm90aGVyT3B0aW9uLnRhYmxlVHlwZTsKICAgICAgfQogICAgfSwKICAgIC8vIOeCueWHu+ehruWumuaMiemSrgogICAgcmVzdWxlQ2xpY2soKSB7CiAgICAgIGlmICh0aGlzLnNlbGVjdFJlc3VsdC50YWJsZVR5cGUgPT09ICJ2ZW5kb3IiKSB7CiAgICAgICAgdGhpcy5mb3JtLnZlbmRvcklkID0gdGhpcy5zZWxlY3RSZXN1bHQudmVuZG9ySWQ7CiAgICAgICAgdGhpcy5mb3JtLnZlbmRvck5hbWUgPSB0aGlzLnNlbGVjdFJlc3VsdC52ZW5kb3JOYW1lOwogICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0UmVzdWx0LnRhYmxlVHlwZSA9PT0gInByb2R1Y3QiKSB7CiAgICAgICAgdGhpcy5mb3JtLnByb2RLZXkgPSB0aGlzLnNlbGVjdFJlc3VsdC5wcm9kS2V5OwogICAgICAgIHRoaXMuZm9ybS5wcm9kU2VjcmV0ID0gdGhpcy5zZWxlY3RSZXN1bHQucHJvZFNlY3JldDsKICAgICAgfQogICAgICB0aGlzLnNlbGVjdFRhYmxlU2hvdyA9IGZhbHNlOwogICAgfSwKICAgIC8qKiDmn6Xor6Llnovlj7fliJfooaggKi8KICAgIGdldExpc3QoKSB7CiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CiAgICAgIGxpc3RNb2RlbCh0aGlzLnF1ZXJ5UGFyYW1zKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLm1vZGVsTGlzdCA9IHJlc3BvbnNlLnJvd3M7CiAgICAgICAgdGhpcy50b3RhbCA9IHJlc3BvbnNlLnRvdGFsOwogICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDlj5bmtojmjInpkq4KICAgIGNhbmNlbCgpIHsKICAgICAgdGhpcy5vcGVuID0gZmFsc2U7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgIH0sCiAgICAvLyDooajljZXph43nva4KICAgIHJlc2V0KCkgewogICAgICB0aGlzLmZvcm0gPSB7CiAgICAgICAgdmVuZG9ySWQ6IG51bGwsCiAgICAgICAgbW9kZWxOYW1lOiBudWxsLAogICAgICAgIHZlbmRvck5hbWU6ICIiLAogICAgICAgIHByb2RLZXk6ICIiLAogICAgICAgIGRldmljZVR5cGU6ICIiLAogICAgICAgIHBhcmFtTGlzdDogW10sCiAgICAgICAgcHJvdG9jb2xUeXBlOiAnSU9UT1MnCiAgICAgIH07CiAgICAgIHRoaXMucmVzZXRGb3JtKCJmb3JtIik7CiAgICB9LAogICAgLyoqIOaQnOe0ouaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlUXVlcnkoKSB7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZU51bSA9IDE7CiAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgfSwKICAgIC8qKiDph43nva7mjInpkq7mk43kvZwgKi8KICAgIHJlc2V0UXVlcnkoKSB7CiAgICAgIHRoaXMucmVzZXRGb3JtKCJxdWVyeUZvcm0iKTsKICAgICAgdGhpcy5oYW5kbGVRdWVyeSgpOwogICAgfSwKICAgIC8vIOWkmumAieahhumAieS4reaVsOaNrgogICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGlvbikgewogICAgICB0aGlzLmlkcyA9IHNlbGVjdGlvbi5tYXAoaXRlbSA9PiBpdGVtLm1vZGVsSWQpOwogICAgICB0aGlzLnNpbmdsZSA9IHNlbGVjdGlvbi5sZW5ndGggIT09IDE7CiAgICAgIHRoaXMubXVsdGlwbGUgPSAhc2VsZWN0aW9uLmxlbmd0aDsKICAgIH0sCiAgICAvKiog5paw5aKe5oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVBZGQoKSB7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgdGhpcy5vcGVuID0gdHJ1ZTsKICAgICAgdGhpcy50aXRsZSA9ICLmt7vliqDlnovlj7ciOwogICAgfSwKICAgIC8qKiDkv67mlLnmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZVVwZGF0ZShyb3cpIHsKICAgICAgdGhpcy5yZXNldCgpOwogICAgICBjb25zdCBtb2RlbElkID0gcm93Lm1vZGVsSWQgfHwgdGhpcy5pZHM7CiAgICAgIGNvbnN0IF90aGlzID0gdGhpczsKICAgICAgZ2V0TW9kZWwobW9kZWxJZCkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgX3RoaXMuZm9ybSA9IHJlc3BvbnNlLmRhdGE7CiAgICAgICAgX3RoaXMub3BlbiA9IHRydWU7CiAgICAgICAgX3RoaXMudGl0bGUgPSAi5L+u5pS55Z6L5Y+3IjsKICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgIF90aGlzLiRyZWZzLnBhcmFtV3JhcC5zZXRMaXN0KHJlc3BvbnNlLmRhdGEucGFyYW1MaXN0IHx8IFtdKTsKICAgICAgICB9LCAxMDApOwogICAgICB9KTsKICAgIH0sCiAgICAvKiog5o+Q5Lqk5oyJ6ZKuICovCiAgICBzdWJtaXRGb3JtKCkgewogICAgICB0aGlzLiRyZWZzWyJmb3JtIl0udmFsaWRhdGUodmFsaWQgPT4gewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgdGhpcy5mb3JtLnBhcmFtTGlzdCA9IHRoaXMuJHJlZnMucGFyYW1XcmFwLmdldFJlc3VsdCgpOwogICAgICAgICAgaWYgKHRoaXMuZm9ybS5tb2RlbElkICE9IG51bGwpIHsKICAgICAgICAgICAgdXBkYXRlTW9kZWwodGhpcy5mb3JtKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICAgICAgICB0aGlzLm1zZ1N1Y2Nlc3MoIuS/ruaUueaIkOWKnyIpOwogICAgICAgICAgICAgIHRoaXMub3BlbiA9IGZhbHNlOwogICAgICAgICAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGFkZE1vZGVsKHRoaXMuZm9ybSkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCLmlrDlop7miJDlip8iKTsKICAgICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTsKICAgICAgICAgICAgICB0aGlzLmdldExpc3QoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICAvKiog5Yig6Zmk5oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVEZWxldGUocm93KSB7CiAgICAgIGNvbnN0IG1vZGVsSWRzID0gcm93Lm1vZGVsSWQgfHwgdGhpcy5pZHM7CiAgICAgIHRoaXMuJGNvbmZpcm0oIuaYr+WQpuWIoOmZpOivpemAiemhuT8iLCAi6K2m5ZGKIiwgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgfSkKICAgICAgICAudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBkZWxNb2RlbChtb2RlbElkcyk7CiAgICAgICAgfSkKICAgICAgICAudGhlbigoKSA9PiB7CiAgICAgICAgICB0aGlzLmdldExpc3QoKTsKICAgICAgICAgIHRoaXMubXNnU3VjY2Vzcygi5Yig6Zmk5oiQ5YqfIik7CiAgICAgICAgfSk7CiAgICB9LAogICAgLyoqIOWvvOWHuuaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlRXhwb3J0KCkgewogICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHRoaXMucXVlcnlQYXJhbXM7CiAgICAgIHRoaXMuJGNvbmZpcm0oIuaYr+WQpuehruiupOWvvOWHuuaJgOacieWei+WPt+aVsOaNrumhuT8iLCAi6K2m5ZGKIiwgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgfSkKICAgICAgICAudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBleHBvcnRNb2RlbChxdWVyeVBhcmFtcyk7CiAgICAgICAgfSkKICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgICB0aGlzLmRvd25sb2FkKHJlc3BvbnNlLm1zZyk7CiAgICAgICAgfSk7CiAgICB9CiAgfQp9Owo="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;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;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;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/iot/model","sourcesContent":["<template>\n <div class=\"app-container iot-model\">\n <el-form\n :model=\"queryParams\"\n ref=\"queryForm\"\n :inline=\"true\"\n v-show=\"showSearch\"\n label-width=\"68px\"\n >\n <el-form-item label=\"型号名称\" prop=\"modelName\">\n <el-input\n v-model=\"queryParams.modelName\"\n placeholder=\"型号名称\"\n clearable\n size=\"small\"\n @keyup.enter.native=\"handleQuery\"\n />\n </el-form-item>\n <el-form-item label=\"产品PK\" prop=\"prodKey\">\n <el-input\n v-model=\"queryParams.prodKey\"\n placeholder=\"产品PK\"\n clearable\n size=\"small\"\n @keyup.enter.native=\"handleQuery\"\n />\n </el-form-item>\n\n <el-form-item label=\"协议类型\" prop=\"protocolType\">\n <el-select v-model=\"queryParams.protocolType\" @change=\"handleQuery\" placeholder=\"请选择协议类型\" clearable size=\"small\">\n <el-option\n :label=\"keys\"\n :value=\"vals\"\n v-for=\"(keys, vals) in protocolTypeOpt\"\n :key=\"keys\"\n />\n </el-select>\n </el-form-item>\n <el-form-item>\n <el-button type=\"primary\" icon=\"el-icon-search\" size=\"mini\" @click=\"handleQuery\">搜索</el-button>\n <el-button icon=\"el-icon-refresh\" size=\"mini\" @click=\"resetQuery\">重置</el-button>\n </el-form-item>\n </el-form>\n\n <el-row :gutter=\"10\" class=\"mb8\">\n <el-col :span=\"1.5\">\n <el-button\n type=\"primary\"\n plain\n icon=\"el-icon-plus\"\n size=\"mini\"\n @click=\"handleAdd\"\n v-hasPermi=\"['iot:model:add']\"\n >新增</el-button>\n </el-col>\n <right-toolbar :showSearch.sync=\"showSearch\" @queryTable=\"getList\"></right-toolbar>\n </el-row>\n\n <el-table\n v-loading=\"loading\"\n :data=\"modelList\"\n :default-sort=\"{prop: 'createTime', order: 'descending'}\"\n @sort-change=\"sortChange\"\n >\n <el-table-column type=\"index\" label=\"序号\" align=\"center\" :index=\"indexFormatter\" width=\"80px\"></el-table-column>\n <el-table-column label=\"型号名称\" align=\"left\" width=\"200px\" prop=\"modelName\" />\n <el-table-column label=\"厂商名称\" align=\"left\" width=\"200px\" prop=\"vendorName\" />\n <el-table-column label=\"产品PK\" align=\"left\" width=\"200px\" prop=\"prodKey\" />\n <el-table-column label=\"产品密钥\" align=\"left\" prop=\"prodSecret\" />\n\n <el-table-column label=\"设备类型\" align=\"center\" prop=\"deviceType\" width=\"120px\">\n <template slot-scope=\"scope\">\n <span v-text=\"deviceTypeList[scope.row.deviceType]\"></span>\n </template>\n </el-table-column>\n\n <el-table-column label=\"协议类型\" align=\"center\" prop=\"protocolType\" width=\"120px\">\n <template slot-scope=\"scope\">\n <span v-text=\"protocolTypeOpt[scope.row.protocolType]\"></span>\n </template>\n </el-table-column>\n\n <el-table-column label=\"设备状态\" align=\"center\" prop=\"modelStatus\" width=\"100px\">\n <template slot-scope=\"scope\">\n <el-tag type=\"success\" v-if=\"scope.row.modelStatus === '0'\">启用</el-tag>\n <el-tag type=\"danger\" v-else>禁用</el-tag>\n </template>\n </el-table-column>\n\n <el-table-column\n label=\" 创建时间\"\n align=\"center\"\n sortable=\"custom\"\n prop=\"createTime\"\n width=\"150px\"\n />\n <el-table-column\n width=\"160px\"\n label=\"操作\"\n align=\"center\"\n class-name=\"small-padding fixed-width\"\n >\n <template slot-scope=\"scope\">\n <el-button\n size=\"mini\"\n type=\"text\"\n icon=\"el-icon-edit\"\n @click=\"handleUpdate(scope.row)\"\n v-hasPermi=\"['iot:model:edit']\"\n >修改</el-button>\n <el-button\n size=\"mini\"\n type=\"text\"\n icon=\"el-icon-delete\"\n @click=\"handleDelete(scope.row)\"\n v-hasPermi=\"['iot:model:remove']\"\n >删除</el-button>\n </template>\n </el-table-column>\n </el-table>\n\n <pagination\n v-show=\"total > 0\"\n :total=\"total\"\n :page.sync=\"queryParams.pageNum\"\n :limit.sync=\"queryParams.pageSize\"\n @pagination=\"getList\"\n />\n\n <!-- 添加或修改型号对话框 -->\n <el-dialog class=\"eldialog-wrap\" :close-on-click-modal=\"false\" :title=\"title\" :visible.sync=\"open\" width=\"500px\">\n <el-form ref=\"form\" :model=\"form\" :rules=\"rules\" label-width=\"100px\">\n <el-form-item label=\"厂商:\" prop=\"vendorId\">\n <el-input\n v-model=\"form.vendorName\"\n placeholder=\"点击选择厂商\"\n @focus=\"openTableSelectDialog()\"\n />\n </el-form-item>\n\n <el-form-item label=\"协议类型:\" prop=\"protocolType\">\n <el-select\n v-model=\"form.protocolType\"\n style=\"width: 100%;\"\n placeholder=\"请选择协议类型\"\n size=\"small\"\n >\n <el-option\n :label=\"keys\"\n :value=\"vals\"\n v-for=\"(keys, vals) in protocolTypeOpt\"\n :key=\"vals\"\n />\n </el-select>\n </el-form-item>\n\n <el-form-item label=\"产品PK:\" prop=\"prodKey\">\n <el-input\n v-model=\"form.prodKey\"\n placeholder=\"点击选择产品\"\n @focus=\"openProductTableSelectDialog()\"\n />\n </el-form-item>\n\n <el-form-item label=\"型号名称:\" prop=\"modelName\">\n <el-input v-model=\"form.modelName\" placeholder=\"请输入型号名称\" />\n </el-form-item>\n\n\n <el-form-item label=\"设备类型:\" prop=\"deviceType\">\n <el-select\n v-model=\"form.deviceType\"\n style=\"width: 100%;\"\n placeholder=\"请选择设备类型\"\n clearable\n size=\"small\"\n >\n <el-option\n :label=\"keys\"\n :value=\"vals\"\n v-for=\"(keys, vals) in deviceTypeList\"\n :key=\"vals\"\n />\n </el-select>\n </el-form-item>\n\n <el-form-item label=\"参数设置:\" v-show=\"form.deviceType\">\n <span style=\"color: red; font-size: 12px;\">*注意:锁定即参数不可修改;未锁则可以修改。</span>\n <div class=\"form-params-wrap\">\n <param-wrap ref=\"paramWrap\" :typeKeys=\"form.deviceType\"></param-wrap>\n </div>\n </el-form-item>\n </el-form>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button type=\"primary\" size=\"mini\" @click=\"submitForm\">确 定</el-button>\n <el-button @click=\"cancel\" size=\"mini\">取 消</el-button>\n </div>\n </el-dialog>\n\n <el-dialog\n title=\"选择\"\n :visible.sync=\"selectTableShow\"\n width=\"75%\"\n top=\"10vh\"\n class=\"select-table-dialog\"\n :close-on-click-modal=\"false\"\n >\n <select-table-wrap\n v-if=\"selectTableShow\"\n :tableOption=\"tableSelectOption.tableOpt\"\n :queryOption=\"tableSelectOption.queryOpt\"\n :tableList=\"tableSelectOption.tableList\"\n @parentGetList=\"childGetList($event)\"\n :otherOption=\"tableSelectOption.otherOption\"\n @returnEvent=\"returnEvent($event)\"\n />\n\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button size=\"mini\" type=\"primary\" @click=\"resuleClick\">确 定</el-button>\n <el-button size=\"mini\" @click=\"() =>{selectTableShow = false}\">取 消</el-button>\n </div>\n </el-dialog>\n </div>\n</template>\n\n<script>\nimport {\n listModel,\n getModel,\n delModel,\n addModel,\n updateModel,\n exportModel,\n listProductList\n} from \"@/api/iot/model\";\nimport { listVendor } from \"@/api/iot/vendor\";\nimport { listDeviceTypeList } from \"@/api/iot/device\";\nimport SelectTableWrap from \"@/components/SelectTable/index\";\nimport ParamWrap from \"@/components/ParamWrap/deviceParam\";\n\nconst deviceStartsOpt = {\n 0: \"禁用\",\n 1: \"启用\"\n};\n\nconst protocolTypeOpt = {\n IOTOS: \"iot平台\",\n ONENET: \"ONENET\"\n};\nexport default {\n name: \"Model\",\n components: {\n SelectTableWrap,\n ParamWrap\n },\n data() {\n return {\n protocolTypeOpt,\n selectTableShow: false,\n tableSelectOption: {},\n selectResult: {},\n deviceStartsOpt,\n // 遮罩层\n loading: true,\n // 选中数组\n ids: [],\n // 非单个禁用\n single: true,\n // 非多个禁用\n multiple: true,\n // 显示搜索条件\n showSearch: true,\n // 总条数\n total: 0,\n // 型号表格数据\n modelList: [],\n // 弹出层标题\n title: \"\",\n // 是否显示弹出层\n open: false,\n // 查询参数\n queryParams: {\n pageNum: 1,\n pageSize: 10,\n vendorId: null,\n modelName: null,\n modelCode: null,\n prodKey: null,\n prodSecret: null,\n protocolType: null,\n orderByColumn: \"createTime\",\n isAsc: \"desc\"\n },\n // 表单参数\n form: {},\n // 表单校验\n rules: {\n vendorId: [\n { required: true, message: \"厂商不能为空\", trigger: \"blur\" }\n ],\n prodKey: [\n { required: true, message: \"产品PK不能为空\", trigger: \"blur\" }\n ],\n modelName: [\n { required: true, message: \"型号名称不能为空\", trigger: \"blur\" }\n ],\n deviceType: [\n { required: true, message: \"设备类型不能为空\", trigger: \"blur\" }\n ]\n },\n deviceTypeList: {}\n };\n },\n created() {\n this.getDeviceTypeList();\n this.getList();\n },\n methods: {\n sortChange(column) {\n const sort = {\n isAsc: column.order === \"descending\" ? \"desc\" : \"asc\",\n orderByColumn: column.prop\n };\n this.queryParams = Object.assign(this.queryParams, sort);\n this.handleQuery();\n },\n indexFormatter(val) {\n return (\n val + 1 + (this.queryParams.pageNum - 1) * this.queryParams.pageSize\n );\n },\n // 查询设备类型列表\n getDeviceTypeList() {\n listDeviceTypeList().then(response => {\n this.deviceTypeList = response.data;\n });\n },\n openProductTableSelectDialog() {\n this.selectResult = {};\n this.tableSelectOption = {\n otherOption: {\n tableType: \"product\"\n },\n queryOpt: {\n disable: false,\n labelWidth: \"68px\",\n params: {\n protocolType: this.form.protocolType\n },\n page: {\n pageSize: 10,\n pageNum: 1,\n total: 0\n },\n inline: true,\n queryChilds: [\n // {\n // style: \"\",\n // placeholder: \"产品名称\",\n // clearable: true,\n // label: \"产品名称\",\n // type: \"input\",\n // key: \"prodName\",\n // size: \"small\",\n // value: \"\"\n // }\n ]\n },\n tableOpt: {\n loading: false,\n rowKey: \"prodId\",\n selection: false,\n maxHeight: \"45vh\",\n childs: [\n {\n style: \"\",\n label: \"产品名称\",\n type: \"\",\n prop: \"prodName\",\n align: \"left\",\n width: \"\",\n \"show-overflow-tooltip\": false,\n tempType: \"span\"\n },\n {\n style: \"\",\n label: \"产品PK\",\n type: \"\",\n prop: \"prodId\",\n align: \"left\",\n width: \"\",\n \"show-overflow-tooltip\": false,\n tempType: \"span\"\n },\n // {\n // style: \"\",\n // label: \"ProdSecret\",\n // type: \"\",\n // prop: \"prodSecret\",\n // align: \"left\",\n // width: \"\",\n // \"show-overflow-tooltip\": false,\n // tempType: \"span\"\n // },\n // {\n // style: \"\",\n // label: \"节点类型\",\n // type: \"\",\n // prop: \"prodNodeTypeName\",\n // align: \"left\",\n // width: \"\",\n // \"show-overflow-tooltip\": false,\n // tempType: \"span\"\n // }\n ],\n tableList: {\n type: Array\n }\n },\n tableList: []\n };\n this.selectTableShow = true;\n },\n // 打开厂商选择窗口 ——表格\n openTableSelectDialog() {\n this.selectResult = {};\n this.tableSelectOption = {\n otherOption: {\n tableType: \"vendor\"\n },\n queryOpt: {\n disable: false,\n labelWidth: \"68px\",\n params: {\n vendorName: \"\",\n vendorAddress: \"\",\n vendorContact: \"\"\n },\n page: {\n pageSize: 10,\n pageNum: 1,\n total: 0\n },\n inline: true,\n queryChilds: [\n {\n style: \"\",\n placeholder: \"厂商名称\",\n clearable: true,\n label: \"厂商名称\",\n type: \"input\",\n key: \"vendorName\",\n size: \"small\",\n value: \"\"\n },\n {\n style: \"\",\n placeholder: \"厂商地址\",\n clearable: true,\n label: \"厂商地址\",\n type: \"input\",\n key: \"vendorAddress\",\n size: \"small\",\n value: \"\"\n },\n {\n style: \"\",\n placeholder: \"联系方式\",\n clearable: true,\n label: \"联系方式\",\n type: \"input\",\n key: \"vendorContact\",\n size: \"small\",\n value: \"\"\n }\n ]\n },\n tableOpt: {\n loading: false,\n rowKey: \"deviceId\",\n selection: false,\n maxHeight: \"45vh\",\n childs: [\n {\n style: \"\",\n label: \"厂商名称\",\n type: \"\",\n prop: \"vendorName\",\n align: \"left\",\n width: \"\",\n \"show-overflow-tooltip\": false,\n tempType: \"span\"\n },\n {\n style: \"\",\n label: \" 联系方式\",\n type: \"\",\n prop: \"vendorContact\",\n align: \"left\",\n width: \"\",\n \"show-overflow-tooltip\": false,\n tempType: \"span\"\n },\n {\n style: \"\",\n label: \"厂商地址\",\n type: \"\",\n prop: \"vendorAddress\",\n align: \"left\",\n width: \"\",\n \"show-overflow-tooltip\": false,\n tempType: \"span\"\n }\n ],\n tableList: {\n type: Array\n }\n },\n tableList: []\n };\n this.selectTableShow = true;\n },\n // 查询回调\n childGetList(data) {\n if (data.otherOption.tableType === \"vendor\") {\n this.vendorChildList(data);\n } else if (data.otherOption.tableType === \"product\") {\n this.productChildList(data);\n }\n },\n productChildList(data) {\n listProductList(\n Object.assign(data.page, data.param, { selected: 1 })\n ).then(response => {\n this.tableSelectOption.tableList = response.data;\n // this.tableSelectOption.queryOpt.page.total = Number(response.total);\n });\n },\n vendorChildList(data) {\n listVendor(Object.assign(data.page, data.param, { selected: 1 })).then(\n response => {\n this.tableSelectOption.tableList = response.rows;\n this.tableSelectOption.queryOpt.page.total = Number(response.total);\n }\n );\n },\n // 点击或者双击数据回调\n returnEvent(data) {\n this.selectResult = {};\n if (data.type === \"dblclick\") {\n if (data.otherOption.tableType === \"vendor\") {\n this.form.vendorId = data.value.vendorId;\n this.form.vendorName = data.value.vendorName;\n } else if (data.otherOption.tableType === \"product\") {\n this.form.prodKey = data.value.prodId;\n this.form.prodSecret = data.value.prodSecret;\n }\n this.selectTableShow = false;\n } else if (data.type === \"click\") {\n if (data.otherOption.tableType === \"vendor\") {\n this.selectResult.vendorId = data.value.vendorId;\n this.selectResult.vendorName = data.value.vendorName;\n } else if (data.otherOption.tableType === \"product\") {\n this.selectResult.prodKey = data.value.prodId;\n this.selectResult.prodSecret = data.value.prodSecret;\n }\n this.selectResult.tableType = data.otherOption.tableType;\n }\n },\n // 点击确定按钮\n resuleClick() {\n if (this.selectResult.tableType === \"vendor\") {\n this.form.vendorId = this.selectResult.vendorId;\n this.form.vendorName = this.selectResult.vendorName;\n } else if (this.selectResult.tableType === \"product\") {\n this.form.prodKey = this.selectResult.prodKey;\n this.form.prodSecret = this.selectResult.prodSecret;\n }\n this.selectTableShow = false;\n },\n /** 查询型号列表 */\n getList() {\n this.loading = true;\n listModel(this.queryParams).then(response => {\n this.modelList = response.rows;\n this.total = response.total;\n this.loading = false;\n });\n },\n // 取消按钮\n cancel() {\n this.open = false;\n this.reset();\n },\n // 表单重置\n reset() {\n this.form = {\n vendorId: null,\n modelName: null,\n vendorName: \"\",\n prodKey: \"\",\n deviceType: \"\",\n paramList: [],\n protocolType: 'IOTOS'\n };\n this.resetForm(\"form\");\n },\n /** 搜索按钮操作 */\n handleQuery() {\n this.queryParams.pageNum = 1;\n this.getList();\n },\n /** 重置按钮操作 */\n resetQuery() {\n this.resetForm(\"queryForm\");\n this.handleQuery();\n },\n // 多选框选中数据\n handleSelectionChange(selection) {\n this.ids = selection.map(item => item.modelId);\n this.single = selection.length !== 1;\n this.multiple = !selection.length;\n },\n /** 新增按钮操作 */\n handleAdd() {\n this.reset();\n this.open = true;\n this.title = \"添加型号\";\n },\n /** 修改按钮操作 */\n handleUpdate(row) {\n this.reset();\n const modelId = row.modelId || this.ids;\n const _this = this;\n getModel(modelId).then(response => {\n _this.form = response.data;\n _this.open = true;\n _this.title = \"修改型号\";\n setTimeout(() => {\n _this.$refs.paramWrap.setList(response.data.paramList || []);\n }, 100);\n });\n },\n /** 提交按钮 */\n submitForm() {\n this.$refs[\"form\"].validate(valid => {\n if (valid) {\n this.form.paramList = this.$refs.paramWrap.getResult();\n if (this.form.modelId != null) {\n updateModel(this.form).then(response => {\n this.msgSuccess(\"修改成功\");\n this.open = false;\n this.getList();\n });\n } else {\n addModel(this.form).then(response => {\n this.msgSuccess(\"新增成功\");\n this.open = false;\n this.getList();\n });\n }\n }\n });\n },\n /** 删除按钮操作 */\n handleDelete(row) {\n const modelIds = row.modelId || this.ids;\n this.$confirm(\"是否删除该选项?\", \"警告\", {\n confirmButtonText: \"确定\",\n cancelButtonText: \"取消\",\n type: \"warning\"\n })\n .then(function() {\n return delModel(modelIds);\n })\n .then(() => {\n this.getList();\n this.msgSuccess(\"删除成功\");\n });\n },\n /** 导出按钮操作 */\n handleExport() {\n const queryParams = this.queryParams;\n this.$confirm(\"是否确认导出所有型号数据项?\", \"警告\", {\n confirmButtonText: \"确定\",\n cancelButtonText: \"取消\",\n type: \"warning\"\n })\n .then(function() {\n return exportModel(queryParams);\n })\n .then(response => {\n this.download(response.msg);\n });\n }\n }\n};\n</script>\n<style lang=\"scss\">\n.iot-model {\n .eldialog-wrap {\n .el-dialog__header {\n border-bottom: 1px solid #747373;\n }\n .el-dialog__body {\n padding: 0px;\n }\n .el-form {\n padding: 20px;\n padding-right: 40px;\n }\n .el-dialog__footer {\n height: 60px;\n border-top: 1px solid #747373;\n text-align: right;\n width: 100%;\n padding: 0px;\n padding-top: 15px;\n .el-button + .el-button {\n margin-right: 10px;\n }\n .el-button {\n padding-top: 8px;\n }\n }\n .form-params-wrap {\n height: 100%;\n width: calc(100% + 110px);\n position: relative;\n top: 15px;\n left: -90px;\n max-height: 250px;\n overflow: auto;\n padding: 10px;\n border: 1px solid #009688;\n border-radius: 5px;\n }\n }\n}\n.form-params-wrap::-webkit-scrollbar {\n /*滚动条整体样式*/\n width: 8px; /*高宽分别对应横竖滚动条的尺寸*/\n height: 5px;\n}\n.form-params-wrap::-webkit-scrollbar-thumb {\n /*滚动条里面小方块*/\n border-radius: 10px;\n box-shadow: inset 0 0 5px #c4c4c4;\n background: #dededea6;\n}\n.form-params-wrap::-webkit-scrollbar-track {\n /*滚动条里面轨道*/\n box-shadow: inset 0 0 5px #f6f6f6;\n border-radius: 10px;\n background: #ffffff;\n}\n</style>\n"]}]} |