1 line
16 KiB
JSON
1 line
16 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\\personal\\device\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"G:\\project\\smart-power-ui\\src\\views\\personal\\device\\index.vue","mtime":1620981768845},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7IGxpc3REZXZpY2UsIGV4cG9ydERldmljZSwgbGlzdERldmljZVR5cGVMaXN0IH0gZnJvbSAiQC9hcGkvcGVyc29uYWwvZGV2aWNlIjsKLy8gaW1wb3J0IHsgbGlzdERldmljZVR5cGVMaXN0IH0gZnJvbSAiQC9hcGkvdGVuYW50L2RldmljZSI7CmltcG9ydCBEZXRhaWxzV3JhcCBmcm9tICIuL3Byb2ZpbGUvZGV0YWlscyI7CmNvbnN0IGRldmljZVN0YXR1c09wdCA9IHsKICBPTkxJTkU6ICLlnKjnur8iLAogIE9GRkxJTkU6ICLnprvnur8iLAogIE9VVExJTkU6ICLohLHnur8iLAogIFVOQUNUSVZFOiAi5pyq5r+A5rS7Igp9Owpjb25zdCBsaW5lVHlwZU9wdCA9IHsKICBNQUlOOiAi5oC76LevIiwKICBCUkFOQ0g6ICLmlK/ot68iCn07CgpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogIkRldmljZSIsCiAgY29tcG9uZW50czogewogICAgRGV0YWlsc1dyYXAKICB9LAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBkZXZpY2VTdGF0dXNPcHQsCiAgICAgIGxpbmVUeXBlT3B0LAogICAgICBzb3VyY2VJZDogIiIsCiAgICAgIGNvbXBvbmVjdFZhbDogIiIsCiAgICAgIHNlbGVjdFRhYmxlU2hvdzogZmFsc2UsCiAgICAgIHRhYmxlU2VsZWN0T3B0aW9uOiB7fSwKICAgICAgc2VsZWN0UmVzdWx0OiB7fSwKICAgICAgcXVlcnlNb2RlbE9wdDogW10sCiAgICAgIC8vIOmBrue9qeWxggogICAgICBsb2FkaW5nOiB0cnVlLAogICAgICAvLyDpgInkuK3mlbDnu4QKICAgICAgaWRzOiBbXSwKICAgICAgLy8g6Z2e5Y2V5Liq56aB55SoCiAgICAgIHNpbmdsZTogdHJ1ZSwKICAgICAgLy8g6Z2e5aSa5Liq56aB55SoCiAgICAgIG11bHRpcGxlOiB0cnVlLAogICAgICAvLyDmmL7npLrmkJzntKLmnaHku7YKICAgICAgc2hvd1NlYXJjaDogdHJ1ZSwKICAgICAgLy8g5oC75p2h5pWwCiAgICAgIHRvdGFsOiAwLAogICAgICAvLyDorr7lpIfooajmoLzmlbDmja4KICAgICAgZGV2aWNlTGlzdDogW10sCiAgICAgIC8vIOW8ueWHuuWxguagh+mimAogICAgICAvLyDmn6Xor6Llj4LmlbAKICAgICAgcXVlcnlQYXJhbXM6IHsKICAgICAgICBwYWdlTnVtOiAxLAogICAgICAgIHBhZ2VTaXplOiAxMCwKICAgICAgICBtb2RlbElkOiBudWxsLAogICAgICAgIHBhcmVudElkOiBudWxsLAogICAgICAgIGRldmljZU5hbWU6IG51bGwsCiAgICAgICAgZGV2aWNlU3RhdGU6IG51bGwsCiAgICAgICAgZGV2aWNlVHlwZTogbnVsbCwKICAgICAgICBvcmRlckJ5Q29sdW1uOiAiY3JlYXRlVGltZSIsCiAgICAgICAgaXNBc2M6ICJkZXNjIgogICAgICB9LAogICAgICAvLyDooajljZXmoKHpqowKICAgICAgZGV2aWNlVHlwZUxpc3Q6IHt9CiAgICB9OwogIH0sCiAgY3JlYXRlZCgpIHsKICAgIHRoaXMuZ2V0RGV2aWNlVHlwZUxpc3QoKTsKICAgIHRoaXMuZ2V0TGlzdCgpOwogIH0sCiAgbWV0aG9kczogewogICAgc29ydENoYW5nZShjb2x1bW4pIHsKICAgICAgY29uc3Qgc29ydCA9IHsKICAgICAgICBpc0FzYzogY29sdW1uLm9yZGVyID09PSAiZGVzY2VuZGluZyIgPyAiZGVzYyIgOiAiYXNjIiwKICAgICAgICBvcmRlckJ5Q29sdW1uOiBjb2x1bW4ucHJvcAogICAgICB9OwogICAgICB0aGlzLnF1ZXJ5UGFyYW1zID0gT2JqZWN0LmFzc2lnbih0aGlzLnF1ZXJ5UGFyYW1zLCBzb3J0KTsKICAgICAgdGhpcy5oYW5kbGVRdWVyeSgpOwogICAgfSwKICAgIGluZGV4Rm9ybWF0dGVyKHZhbCkgewogICAgICByZXR1cm4gKAogICAgICAgIHZhbCArIDEgKyAodGhpcy5xdWVyeVBhcmFtcy5wYWdlTnVtIC0gMSkgKiB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VTaXplCiAgICAgICk7CiAgICB9LAogICAgaGFuZGxlRGV0YWlscyhyb3cpIHsKICAgICAgdGhpcy5zb3VyY2VJZCA9IHJvdy5kZXZpY2VJZDsKICAgICAgdGhpcy5jb21wb25lY3RWYWwgPSAiRGV0YWlsc1dyYXAiOwogICAgfSwKICAgIC8vIOi3s+i9rOivpuaDhemhtQogICAgdG9UYWJsZUNsaWNrKCkgewogICAgICB0aGlzLmNvbXBvbmVjdFZhbCA9ICIiOwogICAgfSwKICAgIGRldmljZVR5cGVDaGFuZ2UodmFsKSB7CiAgICAgIGlmICh2YWwgIT09ICJNSU5JQVRVUkVfQlJFQUtFUiIpIHsKICAgICAgICB0aGlzLmZvcm0ucGFyZW50SWQgPSAwOwogICAgICAgIHRoaXMuZm9ybS5wYXJlbnROYW1lID0gIiI7CiAgICAgIH0gZWxzZSBpZiAoIXZhbCkgewogICAgICAgIHRoaXMuZm9ybS5wYXJlbnRJZCA9ICIiOwogICAgICAgIHRoaXMuZm9ybS5wYXJlbnROYW1lID0gIiI7CiAgICAgIH0KICAgIH0sCiAgICAvLyDmn6Xor6Lorr7lpIfnsbvlnovliJfooagKICAgIGdldERldmljZVR5cGVMaXN0KCkgewogICAgICBsaXN0RGV2aWNlVHlwZUxpc3QoKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLmRldmljZVR5cGVMaXN0ID0gcmVzcG9uc2UuZGF0YTsKICAgICAgfSk7CiAgICB9LAogICAgLyoqIOafpeivouiuvuWkh+WIl+ihqCAqLwogICAgZ2V0TGlzdCgpIHsKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgbGlzdERldmljZSh0aGlzLnF1ZXJ5UGFyYW1zKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLmRldmljZUxpc3QgPSByZXNwb25zZS5yb3dzOwogICAgICAgIHRoaXMudG90YWwgPSByZXNwb25zZS50b3RhbDsKICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgfSk7CiAgICB9LAogICAgLyoqIOaQnOe0ouaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlUXVlcnkoKSB7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZU51bSA9IDE7CiAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgfSwKICAgIC8qKiDph43nva7mjInpkq7mk43kvZwgKi8KICAgIHJlc2V0UXVlcnkoKSB7CiAgICAgIHRoaXMucmVzZXRGb3JtKCJxdWVyeUZvcm0iKTsKICAgICAgdGhpcy5oYW5kbGVRdWVyeSgpOwogICAgfSwKICAgIC8qKiDlr7zlh7rmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZUV4cG9ydCgpIHsKICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSB0aGlzLnF1ZXJ5UGFyYW1zOwogICAgICB0aGlzLiRjb25maXJtKCLmmK/lkKbnoa7orqTlr7zlh7rmiYDmnInorr7lpIfmlbDmja7pobk/IiwgIuitpuWRiiIsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumiIsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIuWPlua2iCIsCiAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgIH0pCiAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gZXhwb3J0RGV2aWNlKHF1ZXJ5UGFyYW1zKTsKICAgICAgICB9KQogICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICAgIHRoaXMuZG93bmxvYWQocmVzcG9uc2UubXNnKTsKICAgICAgICB9KTsKICAgIH0KICB9Cn07Cg=="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4HA;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;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/personal/device","sourcesContent":["<template>\n <div class=\"app-container iot-device\">\n <component :is=\"componectVal\" :sourceId=\"sourceId\"></component>\n <div v-show=\"componectVal === ''\">\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=\"deviceName\">\n <el-input\n v-model=\"queryParams.deviceName\"\n placeholder=\"请输入设备名称\"\n clearable\n size=\"small\"\n @keyup.enter.native=\"handleQuery\"\n />\n </el-form-item>\n <el-form-item label=\"设备状态\" prop=\"deviceState\">\n <el-select v-model=\"queryParams.deviceState\" placeholder=\"请选择设备状态\" clearable size=\"small\">\n <el-option\n :label=\"keys\"\n v-for=\"(keys, vals) in deviceStatusOpt\"\n :key=\"vals\"\n :value=\"vals\"\n />\n </el-select>\n </el-form-item>\n <el-form-item label=\"设备类型\" prop=\"deviceType\">\n <el-select v-model=\"queryParams.deviceType\" placeholder=\"请选择设备类型\" clearable size=\"small\">\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 <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=\"warning\"\n plain\n icon=\"el-icon-download\"\n size=\"mini\"\n @click=\"handleExport\"\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=\"deviceList\"\n :default-sort=\"{prop: 'createTime', order: 'descending'}\"\n @sort-change=\"sortChange\"\n >\n <el-table-column\n type=\"index\"\n label=\"序号\"\n align=\"center\"\n :index=\"indexFormatter\"\n width=\"80px\"\n ></el-table-column>\n <el-table-column label=\"设备名称\" align=\"left\" prop=\"deviceName\" />\n <el-table-column label=\"所属型号\" align=\"left\" prop=\"modelName\" />\n <el-table-column label=\"设备key\" align=\"left\" prop=\"deviceKey\" />\n <el-table-column label=\"设备类型\" align=\"left\" width=\"120px\" prop=\"deviceTypeName\" />\n <el-table-column label=\"设备状态\" align=\"center\" width=\"120\" prop=\"deviceState\">\n <template slot-scope=\"scope\">\n <el-tag type=\"success\" v-if=\"scope.row.deviceState === 'ONLINE'\">在线</el-tag>\n <el-tag type=\"danger\" v-else-if=\"scope.row.deviceState === 'OFFLINE'\">离线</el-tag>\n <el-tag type=\"danger\" v-else-if=\"scope.row.deviceState === 'OUTLINE'\">脱线</el-tag>\n <el-tag type=\"info\" v-else-if=\"scope.row.deviceState === 'UNACTIVE'\">未激活</el-tag>\n </template>\n </el-table-column>\n <el-table-column\n label=\"创建时间\"\n align=\"center\"\n sortable=\"custom\"\n width=\"160px\"\n prop=\"createTime\"\n />\n <el-table-column\n label=\"操作\"\n align=\"center\"\n width=\"200px\"\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-search\"\n @click=\"handleDetails(scope.row)\"\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 </div>\n\n <div class=\"to-home-wrap2\" @click=\"toTableClick\" v-show=\"componectVal !== ''\">\n <el-button icon=\"el-icon-d-arrow-left\" title=\"返回列表\" circle>返回列表</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { listDevice, exportDevice, listDeviceTypeList } from \"@/api/personal/device\";\n// import { listDeviceTypeList } from \"@/api/tenant/device\";\nimport DetailsWrap from \"./profile/details\";\nconst deviceStatusOpt = {\n ONLINE: \"在线\",\n OFFLINE: \"离线\",\n OUTLINE: \"脱线\",\n UNACTIVE: \"未激活\"\n};\nconst lineTypeOpt = {\n MAIN: \"总路\",\n BRANCH: \"支路\"\n};\n\nexport default {\n name: \"Device\",\n components: {\n DetailsWrap\n },\n data() {\n return {\n deviceStatusOpt,\n lineTypeOpt,\n sourceId: \"\",\n componectVal: \"\",\n selectTableShow: false,\n tableSelectOption: {},\n selectResult: {},\n queryModelOpt: [],\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 deviceList: [],\n // 弹出层标题\n // 查询参数\n queryParams: {\n pageNum: 1,\n pageSize: 10,\n modelId: null,\n parentId: null,\n deviceName: null,\n deviceState: null,\n deviceType: null,\n orderByColumn: \"createTime\",\n isAsc: \"desc\"\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 handleDetails(row) {\n this.sourceId = row.deviceId;\n this.componectVal = \"DetailsWrap\";\n },\n // 跳转详情页\n toTableClick() {\n this.componectVal = \"\";\n },\n deviceTypeChange(val) {\n if (val !== \"MINIATURE_BREAKER\") {\n this.form.parentId = 0;\n this.form.parentName = \"\";\n } else if (!val) {\n this.form.parentId = \"\";\n this.form.parentName = \"\";\n }\n },\n // 查询设备类型列表\n getDeviceTypeList() {\n listDeviceTypeList().then(response => {\n this.deviceTypeList = response.data;\n });\n },\n /** 查询设备列表 */\n getList() {\n this.loading = true;\n listDevice(this.queryParams).then(response => {\n this.deviceList = response.rows;\n this.total = response.total;\n this.loading = false;\n });\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 handleExport() {\n const queryParams = this.queryParams;\n this.$confirm(\"是否确认导出所有设备数据项?\", \"警告\", {\n confirmButtonText: \"确定\",\n cancelButtonText: \"取消\",\n type: \"warning\"\n })\n .then(function() {\n return exportDevice(queryParams);\n })\n .then(response => {\n this.download(response.msg);\n });\n }\n }\n};\n</script>\n\n<style lang=\"scss\">\n.iot-device {\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: 35px;\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 .to-home-wrap2 {\n width: 100px;\n height: 20px;\n position: absolute;\n right: 30px;\n top: 30px;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 100;\n color: #656363;\n font-size: 20px;\n cursor: default;\n .el-button--medium.is-circle {\n width: 25px;\n height: 20px;\n padding: 0;\n background: #f26a6a;\n color: #fff;\n font-size: 16px;\n border-radius: 5px;\n height: 30px;\n width: 100%;\n font-size: 14px;\n }\n }\n .to-home-wrap2:hover {\n color: #1890ff;\n font-size: 30px;\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"]}]} |