1 |
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/views/layout/layout.vue?d057","webpack:///./src/App.vue?e3db","webpack:///./src/App.vue","webpack:///./src/App.vue?889f","webpack:///./src/views/login/login.vue","webpack:///./src/static/js/token.js","webpack:///./src/views/login/login.vue?43bd","webpack:///./src/views/layout/layout.vue","webpack:///./src/views/layout/layout.vue?2a97","webpack:///./src/views/monitor/logs.vue","webpack:///./src/views/monitor/logs.vue?0ead","webpack:///./src/views/system/item.vue","webpack:///./src/views/system/group.vue","webpack:///./src/views/system/group.vue?31a1","webpack:///./src/views/devices/lp.vue","webpack:///./src/views/devices/lp.vue?d16f","webpack:///./src/views/devices/ubi.vue","webpack:///./src/views/devices/ubi.vue?e289","webpack:///./src/views/map/lp.vue","webpack:///./src/views/map/lp.vue?2274","webpack:///./src/views/system/users.vue","webpack:///./src/views/system/users.vue?2315","webpack:///./src/router/index.js","webpack:///./src/static/js/global.js","webpack:///./src/static/js/axiosCfg.js","webpack:///./src/static/js/http.js","webpack:///./src/main.js","webpack:///./src/views/map/lp.vue?ee59","webpack:///./src/views/layout/static/logo.png","webpack:///./src/views/login/login.vue?51b7"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","id","script","__exports__","render","class","ref","model","form","label-width","rules","label","prop","username","type","password","submitForm","TokenManager","setToken","tokenAndName","localStorage","setItem","JSON","stringify","getToken","getItem","removeToken","removeItem","required","message","trigger","methods","formName","this","$refs","validate","valid","$http","Post","$global","login","then","res","$router","replace","src","alt","width","default-active","background-color","text-color","index","title","to","style","dropdown","logout","nickname","Component","mounted","initToken","Get","verify","obj","parse","query","openNum","size","clearable","placeholder","mList","item","code","remark","submit","page","records","header-cell-class-name","cell-class-name","stripe","default","scope","row","placement","content","reference","min-width","background","layout","current-page","current","total","page-size","pagination","getAllInstruction","getListPage","param","params","logs","listPage","console","log","instructions","addDialog","max-height","handleUpdate","footer","addSubmit","addForm","maxlength","updateDialog","updateSubmit","updateForm","itemId","status","group","save","$message","success","refresh","update","groupId","filterable","groups","detailHandler","detailDialog","column","border","detail","wakeInt","thresh","temp","battery","s4g","dataType","x","y","z","anglex","angley","anglexz","lon","lat","getDevicesList","getGroupList","getDeviceDetail","lp","listAll","arr","forEach","height","powerVolt","toFixed","effect","signal4g","parseInt","editRemark","ubi","deviceBase","updateRemark","openNumList","device","anglez","updateTime","site","map","markers","icon","deviceList","activated","initMap","getDeviceList","option","zoom","AMap","Map","Icon","image","imageSize","latGcj","lonGcj","setZoomAndCenter","warning","addMarkers","devices","that","remove","buildMarker","add","Marker","position","deviceId","animation","on","admin","edit","setGroups","setAdmin","groupDialog","setGroupSubmit","groupList","show-checkbox","node-key","highlight-current","props","defaultProps","accordion","children","selUserId","getUserList","users","userId","adminAccess","getNoAccessGroups","tree","getCheckedKeys","error","substr","saveGroupAccess","routes","path","component","Layout","Logs","DevicesLp","DevicesUbi","MapLp","Group","Users","Login","router","createRouter","history","createWebHashHistory","server","URL","webSocket","Axios","defaults","headers","interceptors","request","use","config","tokenStr","token","response","ElMessage","msg","loading","openLoad","close","ElLoading","service","text","closeLoad","Http","url","Promise","resolve","reject","post","Qs","Download","fileName","responseType","link","document","createElement","display","href","createObjectURL","Blob","setAttribute","body","appendChild","click","revokeObjectURL","removeChild","app","createApp","App","globalProperties","Global","ElementPlus","mount"],"mappings":"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","file":"js/app.5ae097f3.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./layout.vue?vue&type=style&index=0&id=00ea7316&scoped=true&lang=scss\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./App.vue?vue&type=style&index=0&id=1fe9bf02&lang=scss\"","<template>\n <div id=\"app\">\n <router-view/>\n </div>\n</template>\n\n<style lang=\"scss\">\n #app {\n width: 100%;\n height: 100%;\n }\n</style>\n","import { render } from \"./App.vue?vue&type=template&id=1fe9bf02\"\nconst script = {}\n\nimport \"./App.vue?vue&type=style&index=0&id=1fe9bf02&lang=scss\"\n\nimport exportComponent from \"/Users/smzdm/Documents/HBuilderProjects/bms-web/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n\t<div class=\"zy-template\">\n\t\t<div class=\"login\">\n\t\t\t<div class=\"login__left\"></div>\n\t\t\t<div class=\"login__right\">\n\t\t\t\t<div class=\"login__right__box\">\n\t\t\t\t\t<h1>登录您的账户</h1>\n\t\t\t\t\t<el-form ref=\"loginForm\" :model=\"form\" label-width=\"60px\" :rules=\"rules\">\n\t\t\t\t\t\t<el-form-item label=\"账号:\" prop=\"username\">\n\t\t\t\t\t\t\t<el-input v-model=\"form.username\"></el-input>\n\t\t\t\t\t\t</el-form-item>\n\t\t\t\t\t\t<el-form-item label=\"密码:\" prop=\"password\">\n\t\t\t\t\t\t\t<el-input type=\"password\" v-model=\"form.password\"></el-input>\n\t\t\t\t\t\t</el-form-item>\n\t\t\t\t\t\t<el-button type=\"primary\" @click=\"submitForm('loginForm')\">登录</el-button>\n\t\t\t\t\t</el-form>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\n\timport TokenManager from '../../static/js/token.js'\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tform: {\n\t\t\t\t\tusername: \"\",\n\t\t\t\t\tpassword: \"\"\n\t\t\t\t},\n\t\t\t\trules: {\n\t\t\t\t\tusername: [{\n\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\tmessage: '请输入用户名',\n\t\t\t\t\t\ttrigger: 'blur'\n\t\t\t\t\t}],\n\t\t\t\t\tpassword: [{\n\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\tmessage: '请输入密码',\n\t\t\t\t\t\ttrigger: 'blur'\n\t\t\t\t\t}]\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\t/**\n\t\t\t * 提交表单时间\n\t\t\t */\n\t\t\tsubmitForm(formName) {\n\t\t\t\tthis.$refs[formName].validate((valid) => {\n\t\t\t\t\tif (!valid) return false;\n\t\t\t\t\t//提交表单\n\t\t\t\t\tthis.$http.Post(this.$global.login, this.form).then(res => {\n\t\t\t\t\t\tTokenManager.setToken(res.data);\n\t\t\t\t\t\tthis.$router.replace(\"/\")\n\t\t\t\t\t})\n\t\t\t\t});\n\t\t\t},\n\t\t}\n\t}\n</script>\n\n<style scoped lang=\"scss\">\n\t.zy-template {\n\t\tbackground-size: cover;\n\t\tbackground: rgb(218, 234, 251) url(\"./static/bg.png\") no-repeat center;\n\t\toverflow: hidden;\n\t\theight: 100%;\n\n\t\t& .login {\n\t\t\tbackground: white;\n\t\t\toverflow: hidden;\n\t\t\tborder-radius: 15px;\n\t\t\tmargin: 5% auto;\n\t\t\twidth: 80%;\n\t\t\theight: 80%;\n\t\t\tbox-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);\n\n\t\t\t&__left {\n\t\t\t\tfloat: left;\n\t\t\t\ttransform: rotateY(180deg);\n\t\t\t\twidth: 60%;\n\t\t\t\theight: 100%;\n\t\t\t\tbackground-size: 85%;\n\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\tbackground-image: url(static/satellite.png);\n\t\t\t\tbackground-position: center;\n\t\t\t}\n\n\t\t\t&__right {\n\t\t\t\twidth: 40%;\n\t\t\t\tfloat: left;\n\n\t\t\t\t&__box {\n\t\t\t\t\tmargin: 30% auto;\n\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\twidth: 300px;\n\n\t\t\t\t\t& h1 {\n\t\t\t\t\t\tmargin: 30px 0;\n\t\t\t\t\t\tfont-size: 28px;\n\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\tcolor: #1F2533;\n\t\t\t\t\t}\n\n\t\t\t\t\t& .el-button {\n\t\t\t\t\t\twidth: 300px;\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tmargin: 0 auto;\n\t\t\t\t\t}\n\n\t\t\t\t\t& .el-form-item {\n\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\tpadding: 5px 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n</style>\n","const TokenManager = {\n\t/**\n\t * localStorage 存放token\n\t */\n\tsetToken: function(tokenAndName) {\n\t\twindow.localStorage.setItem(\"BMS_TOKEN\", JSON.stringify(tokenAndName));\n\t},\n\n\t/**\n\t * 获取Token\n\t */\n\tgetToken: function() {\n\t\treturn window.localStorage.getItem(\"BMS_TOKEN\");\n\t},\n\n\t/**\n\t * 注销登录\n\t */\n\tremoveToken: function() {\n\t\twindow.localStorage.removeItem(\"BMS_TOKEN\");\n\t}\n};\nexport default TokenManager;\n","import { render } from \"./login.vue?vue&type=template&id=1f087cb8&scoped=true\"\nimport script from \"./login.vue?vue&type=script&lang=js\"\nexport * from \"./login.vue?vue&type=script&lang=js\"\n\nimport \"./login.vue?vue&type=style&index=0&id=1f087cb8&scoped=true&lang=scss\"\n\nimport exportComponent from \"/Users/smzdm/Documents/HBuilderProjects/bms-web/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1f087cb8\"]])\n\nexport default __exports__","<template>\r\n\t<el-container class=\"container\">\r\n\t\t<el-aside width=\"200px\">\r\n\t\t\t<div class=\"logo\">\r\n\t\t\t\t<img src=\"./static/logo.png\" alt=\"logo\">\r\n\t\t\t</div>\r\n\t\t\t<el-menu default-active=\"1\" background-color=\"#141B2E\" text-color=\"#E4ECFF\">\r\n\t\t\t\t<el-submenu index=\"1\">\r\n\t\t\t\t\t<template #title><i class=\"el-icon-monitor\"></i>设备管理</template>\r\n\t\t\t\t\t<router-link to=\"/map/lp\">\r\n\t\t\t\t\t\t<el-menu-item index=\"1-1\">位置分布</el-menu-item>\r\n\t\t\t\t\t</router-link>\r\n\t\t\t\t\t<router-link to=\"/devices/lp\">\r\n\t\t\t\t\t\t<el-menu-item index=\"1-2\">设备列表-路牌</el-menu-item>\r\n\t\t\t\t\t</router-link>\n\t\t\t\t\t<router-link to=\"/devices/ubi\">\n\t\t\t\t\t\t<el-menu-item index=\"1-3\">设备列表-普适型</el-menu-item>\n\t\t\t\t\t</router-link>\r\n\t\t\t\t</el-submenu>\r\n\r\n\t\t\t\t<el-submenu index=\"2\">\r\n\t\t\t\t\t<template #title><i class=\"el-icon-monitor\"></i>设备监控</template>\r\n\t\t\t\t\t<router-link to=\"/logs\">\r\n\t\t\t\t\t\t<el-menu-item index=\"2-1\">MQTT消息日志</el-menu-item>\r\n\t\t\t\t\t</router-link>\r\n\t\t\t\t</el-submenu>\r\n\r\n\t\t\t\t<el-submenu index=\"3\">\r\n\t\t\t\t\t<template #title><i class=\"el-icon-setting\"></i>系统设置</template>\r\n\t\t\t\t\t<router-link to=\"/users\">\r\n\t\t\t\t\t\t<el-menu-item index=\"3-1\">用户管理</el-menu-item>\r\n\t\t\t\t\t</router-link>\r\n\t\t\t\t\t<router-link to=\"/groups\">\r\n\t\t\t\t\t\t<el-menu-item index=\"3-2\">设备组管理</el-menu-item>\r\n\t\t\t\t\t</router-link>\r\n\t\t\t\t</el-submenu>\r\n\r\n\t\t\t</el-menu>\r\n\t\t</el-aside>\r\n\t\t<el-container>\r\n\t\t\t<el-header class='header' style=\"height: 50px;\">\r\n\t\t\t\t<div class=\"dropdown\">\r\n\t\t\t\t\t<el-dropdown trigger=\"click\">\r\n\t\t\t\t\t\t<span class=\"el-dropdown-link\">\r\n\t\t\t\t\t\t\t{{nickname}}<i class=\"el-icon-arrow-down el-icon--right\"></i>\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t<template #dropdown>\r\n\t\t\t\t\t\t\t<el-dropdown-menu>\r\n\t\t\t\t\t\t\t\t<el-dropdown-item @click=\"logout\">退出登录</el-dropdown-item>\r\n\t\t\t\t\t\t\t</el-dropdown-menu>\r\n\t\t\t\t\t\t</template>\r\n\t\t\t\t\t</el-dropdown>\r\n\t\t\t\t</div>\r\n\t\t\t</el-header>\r\n\t\t\t<el-main>\r\n\t\t\t\t<!-- vue3.0配置-->\r\n\t\t\t\t<router-view v-slot=\"{Component}\">\r\n\t\t\t\t\t<keep-alive>\r\n\t\t\t\t\t\t<component :is=\"Component\" />\r\n\t\t\t\t\t</keep-alive>\r\n\t\t\t\t</router-view>\r\n\t\t\t</el-main>\r\n\t\t</el-container>\r\n\t</el-container>\r\n</template>\r\n\r\n<script>\r\n\timport TokenManager from '../../static/js/token.js'\r\n\r\n\texport default {\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tnickname: '管理员',\r\n\t\t\t};\r\n\t\t},\r\n\t\tmounted() {\r\n\t\t\tthis.initToken();\r\n\t\t},\r\n\t\tmethods: {\r\n\t\t\t/**\r\n\t\t\t * 查看token信息\r\n\t\t\t */\r\n\t\t\tinitToken: function() {\r\n\t\t\t\tthis.$http.Get(this.$global.verify, {}).then(res => {\r\n\t\t\t\t\tconst obj = JSON.parse(TokenManager.getToken());\r\n\t\t\t\t\tthis.nickname = obj.nickname;\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\t/**\r\n\t\t\t * 退出\r\n\t\t\t */\r\n\t\t\tlogout: function() {\r\n\t\t\t\tthis.$http.Get(this.$global.logout, {}).then(res => {\n\t\t\t\t\tthis.$router.replace(\"/login\");\n\t\t\t\t\tTokenManager.removeToken();\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n\t.container {\r\n\t\theight: 100%;\r\n\r\n\t\t& .logo {\r\n\t\t\tbox-sizing: border-box;\r\n\t\t\tpadding-top: 10px;\r\n\t\t\tpadding-left: 20px;\r\n\t\t\twidth: 100%;\r\n\t\t\theight: 60px;\r\n\r\n\t\t\t& img {\r\n\t\t\t\twidth: 40px;\r\n\t\t\t\theight: 40px;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t& .header {\r\n\t\t\tbackground: #f3f5f9;\r\n\r\n\t\t\t& .dropdown {\r\n\t\t\t\tfloat: right;\r\n\t\t\t\tmargin-right: 30px;\r\n\t\t\t\tcursor: pointer;\r\n\t\t\t\tline-height: 50px;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t& .el-main {\r\n\t\t\tbackground: #f3f5f9;\r\n\t\t\theight: 100%;\r\n\t\t\toverflow-x: hidden;\r\n\t\t\toverflow-y: scroll;\r\n\t\t\tbox-sizing: border-box;\r\n\t\t\tpadding: 0 15px 20px 20px;\r\n\r\n\t\t}\r\n\r\n\t\t& .el-aside {\r\n\t\t\theight: 100%;\r\n\t\t\tbackground: #141b2e;\r\n\r\n\t\t\t& .el-menu {\r\n\t\t\t\tborder: none;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</style>\n","import { render } from \"./layout.vue?vue&type=template&id=00ea7316&scoped=true\"\nimport script from \"./layout.vue?vue&type=script&lang=js\"\nexport * from \"./layout.vue?vue&type=script&lang=js\"\n\nimport \"./layout.vue?vue&type=style&index=0&id=00ea7316&scoped=true&lang=scss\"\n\nimport exportComponent from \"/Users/smzdm/Documents/HBuilderProjects/bms-web/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-00ea7316\"]])\n\nexport default __exports__","<template>\r\n\t<div class=\"zy-template\">\r\n\t\t<div class=\"zy-main-title\">MQTT消息日志</div>\r\n\t\t<div class=\"zy-module\">\r\n\t\t\t<el-form ref=\"form\" :model=\"query\" label-width=\"60px\">\r\n\t\t\t\t<el-form-item label=\"设备码:\" class=\"zy-search-form-item\">\r\n\t\t\t\t\t<el-input v-model=\"query.openNum\" size=\"mini\" clearable></el-input>\r\n\t\t\t\t</el-form-item>\r\n\r\n\t\t\t\t<el-form-item label=\"类型:\" class=\"zy-search-form-item\">\r\n\t\t\t\t\t<el-select v-model=\"query.type\" size=\"mini\" value=\"\" placeholder=\" \" clearable>\r\n\t\t\t\t\t\t<el-option value=\"0\" label=\"服务器接收\" />\r\n\t\t\t\t\t\t<el-option value=\"1\" label=\"服务器发送\" />\r\n\t\t\t\t\t</el-select>\r\n\t\t\t\t</el-form-item>\r\n\r\n\t\t\t\t<el-form-item label=\"指令:\" class=\"zy-search-form-item\">\r\n\t\t\t\t\t<el-select v-model=\"query.m\" size=\"mini\" value=\"\" placeholder=\" \" clearable>\r\n\t\t\t\t\t\t<el-option :value=\"item.code\" :label=\"item.remark\" v-for=\"item in mList\" />\r\n\t\t\t\t\t</el-select>\r\n\t\t\t\t</el-form-item>\r\n\r\n\t\t\t\t<el-button type=\"primary\" size=\"mini\" @click=\"submit\">查询</el-button>\r\n\t\t\t</el-form>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"zy-module\">\r\n\t\t\t<el-table :data=\"page.records\" header-cell-class-name=\"zy-table-header-cell\" cell-class-name='zy-table-cell'\r\n\t\t\t\tstripe>\r\n\t\t\t\t<el-table-column prop=\"openNum\" label=\"设备ID\" width=\"150\" />\r\n\t\t\t\t<el-table-column label=\"类型\" width=\"80\">\r\n\t\t\t\t\t<template #default=\"scope\">{{scope.row.type==0?'接收':'发送'}}</template>\r\n\t\t\t\t</el-table-column>\r\n\t\t\t\t<el-table-column label=\"指令\" width=\"80\">\r\n\t\t\t\t\t<template #default=\"scope\">\r\n\t\t\t\t\t\t<el-popover placement=\"bottom\" :width=\"120\" trigger=\"click\" :content=\"scope.row.remark\">\r\n\t\t\t\t\t\t\t<template #reference>\r\n\t\t\t\t\t\t\t\t<el-tag style=\"cursor: pointer;\">{{scope.row.m}}</el-tag>\r\n\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t</el-popover>\r\n\t\t\t\t\t</template>\r\n\t\t\t\t</el-table-column>\r\n\t\t\t\t<el-table-column prop=\"content\" label=\"内容\" min-width=\"500\" />\r\n\t\t\t\t<el-table-column prop=\"createTime\" label=\"时间\" width=\"180\" />\r\n\t\t\t</el-table>\r\n\r\n\t\t\t<el-pagination class=\"zy-table-pagination\" background layout=\"prev, pager, next\"\r\n\t\t\t\t:current-page=\"page.current\" :total=\"page.total\" :page-size=\"page.size\" @current-change=\"pagination\" />\r\n\t\t</div>\r\n\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\n\texport default {\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tquery: {\r\n\t\t\t\t\topenNum: \"\",\r\n\t\t\t\t\ttype: null,\r\n\t\t\t\t\tm: null\r\n\t\t\t\t},\r\n\t\t\t\tmList: null, //指令列表\r\n\t\t\t\tpage: {\r\n\t\t\t\t\tcurrent: 1,\r\n\t\t\t\t\tsize: 20,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t},\r\n\t\tmounted() {\r\n\t\t\tthis.getAllInstruction();\r\n\t\t\tthis.getListPage();\r\n\t\t},\r\n\t\tmethods: {\r\n\t\t\t/**\r\n\t\t\t * 提交查询条件\r\n\t\t\t */\r\n\t\t\tsubmit: function() {\r\n\t\t\t\tconst param = {\r\n\t\t\t\t\tcurrent: 1,\r\n\t\t\t\t\tsize: this.page.size,\r\n\t\t\t\t\topenNum: this.query.openNum,\r\n\t\t\t\t\ttype: this.query.type,\r\n\t\t\t\t\tm: this.query.m,\r\n\t\t\t\t};\r\n\t\t\t\tthis.getListPage(param);\r\n\t\t\t},\r\n\t\t\t/**\r\n\t\t\t * 分页点击事件\r\n\t\t\t */\r\n\t\t\tpagination: function(current) {\r\n\t\t\t\tconst param = {\r\n\t\t\t\t\tcurrent: current,\r\n\t\t\t\t\tsize: this.page.size,\r\n\t\t\t\t\topenNum: this.query.openNum,\r\n\t\t\t\t\ttype: this.query.type,\r\n\t\t\t\t\tm: this.query.m,\r\n\t\t\t\t};\r\n\t\t\t\tthis.getListPage(param);\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * 获取日志列表\r\n\t\t\t */\r\n\t\t\tgetListPage: function(params) {\r\n\t\t\t\tthis.$http.Post(this.$global.logs.listPage, params).then(res => {\r\n\t\t\t\t\tthis.page = res.data;\r\n\t\t\t\t\tconsole.log(res.data)\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\t/**\r\n\t\t\t * 获取全部的指令\r\n\t\t\t */\r\n\t\t\tgetAllInstruction() {\r\n\t\t\t\tthis.$http.Get(this.$global.logs.instructions, {}).then(res => {\r\n\t\t\t\t\tthis.mList = res.data;\r\n\t\t\t\t\tconsole.log(res.data)\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n</style>\n","import { render } from \"./logs.vue?vue&type=template&id=d79a7bc0\"\nimport script from \"./logs.vue?vue&type=script&lang=js\"\nexport * from \"./logs.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/smzdm/Documents/HBuilderProjects/bms-web/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./item.vue?vue&type=template&id=4d6459ae&scoped=true\"\nimport script from \"./item.vue?vue&type=script&lang=js\"\nexport * from \"./item.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/smzdm/Documents/HBuilderProjects/bms-web/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4d6459ae\"]])\n\nexport default __exports__","<template>\n\t<div class=\"zy-template\">\n\t\t<div class=\"zy-main-title\">设备组管理</div>\n\t\t<div class=\"zy-module\">\n\t\t\t<el-form :model=\"query\" label-width=\"80px\">\n\t\t\t\t<el-form-item label=\"关键字\" class=\"zy-search-form-item\">\n\t\t\t\t\t<el-input v-model=\"query.name\" size=\"mini\" placeholder=\"编号/名称/备注\" clearable></el-input>\n\t\t\t\t</el-form-item>\n\n\t\t\t\t<el-button type=\"primary\" size=\"mini\" @click=\"submit\">查询</el-button>\n\t\t\t</el-form>\n\t\t</div>\n\n\t\t<div class=\"zy-module\">\n\t\t\t<el-button type=\"primary\" size=\"small\" style=\"margin-bottom: 20px;\" @click=\"addDialog = true\">增加</el-button>\n\t\t\t<el-table :data=\"page.records\" max-height=\"800\" stripe size=\"small\"\n\t\t\t\theader-cell-class-name=\"zy-table-header-cell\" cell-class-name='zy-table-cell'>\n\t\t\t\t<el-table-column prop=\"code\" label=\"设备组编号\" width=\"100\" />\n\t\t\t\t<el-table-column prop=\"type\" label=\"所属设备类型\" width=\"100\" />\n\t\t\t\t<el-table-column prop=\"name\" label=\"设备组名称\" width=\"120\" />\n\t\t\t\t<el-table-column prop=\"item\" label=\"所属项目\" width=\"150\" />\n\t\t\t\t<el-table-column label=\"备注\" min-width=\"500\">\n\t\t\t\t\t<template #default=\"scope\">\n\t\t\t\t\t\t{{scope.row.remark}}\n\t\t\t\t\t</template>\n\t\t\t\t</el-table-column>\n\t\t\t\t<el-table-column prop=\"createTime\" label=\"创建时间\" width=\"180\" />\n\t\t\t\t<el-table-column label=\"操作\" width=\"100\" min-width=\"10%\">\n\t\t\t\t\t<template #default=\"scope\">\n\t\t\t\t\t\t<el-button @click=\"handleUpdate(scope.row)\" type=\"text\" size=\"small\">编辑</el-button>\n\t\t\t\t\t</template>\n\t\t\t\t</el-table-column>\n\t\t\t</el-table>\n\t\t\t<el-pagination class=\"zy-table-pagination\" background layout=\"prev, pager, next\"\n\t\t\t\t:current-page=\"page.current\" :total=\"page.total\" :page-size=\"page.size\" @current-change=\"pagination\" />\n\t\t</div>\n\n\t\t<el-dialog title=\"添加设备组\" v-model=\"addDialog\" width=\"500px\">\n\t\t\t<el-form ref=\"addForm\" :model=\"addForm\" label-width=\"100px\" :rules=\"rules\">\n\t\t\t\t<el-form-item label=\"设备组编号:\" prop=\"code\">\n\t\t\t\t\t<el-input v-model=\"addForm.code\" maxlength=\"30\" placeholder=\"不可重复\"></el-input>\n\t\t\t\t</el-form-item>\n\n\t\t\t\t<el-form-item label=\"设备组名称:\">\n\t\t\t\t\t<el-input v-model=\"addForm.name\" maxlength=\"30\"></el-input>\n\t\t\t\t</el-form-item>\n\n <el-form-item label=\"设备类型:\" prop=\"type\">\n <el-select v-model=\"addForm.type\" size=\"mini\" placeholder=\"请选择\">\n <el-option label=\"普适型\" value=\"gnss\"/>\n <el-option label=\"路牌\" value=\"lupai\"/>\n </el-select>\n </el-form-item>\n\n\t\t\t\t<el-form-item label=\"备注:\">\n\t\t\t\t\t<el-input type=\"textarea\" v-model=\"addForm.remark\" maxlength=\"100\"></el-input>\n\t\t\t\t</el-form-item>\n\t\t\t</el-form>\n\t\t\t\n\t\t\t<template #footer>\n\t\t\t\t<span class=\"dialog-footer\">\n\t\t\t\t\t<el-button @click=\"addDialog = false\">取 消</el-button>\n\t\t\t\t\t<el-button type=\"primary\" @click=\"addSubmit('addForm')\">提 交</el-button>\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t</el-dialog>\n\n\t\t<el-dialog title=\"修改设备组\" v-model=\"updateDialog\" width=\"500px\">\n\t\t\t<el-form ref=\"updateForm\" :model=\"updateForm\" label-width=\"100px\" :rules=\"rules\">\n\t\t\t\t<el-form-item label=\"设备组编号:\" prop=\"code\">\n\t\t\t\t\t<el-input v-model=\"updateForm.code\" maxlength=\"30\" placeholder=\"不可重复\"></el-input>\n\t\t\t\t</el-form-item>\n\n\t\t\t\t<el-form-item label=\"设备组名称:\">\n\t\t\t\t\t<el-input v-model=\"updateForm.name\" maxlength=\"30\"></el-input>\n\t\t\t\t</el-form-item>\n\n <el-form-item label=\"设备类型:\" prop=\"type\">\n <el-select v-model=\"updateForm.type\" size=\"mini\" placeholder=\"请选择\">\n <el-option label=\"普适型\" value=\"gnss\"/>\n <el-option label=\"路牌\" value=\"lupai\"/>\n </el-select>\n </el-form-item>\n\n\t\t\t\t<el-form-item label=\"备注:\">\n\t\t\t\t\t<el-input type=\"textarea\" v-model=\"updateForm.remark\" maxlength=\"100\"></el-input>\n\t\t\t\t</el-form-item>\n\t\t\t</el-form>\n\t\t\t<template #footer>\n\t\t\t\t<span class=\"dialog-footer\">\n\t\t\t\t\t<el-button @click=\"updateDialog = false\">取 消</el-button>\n\t\t\t\t\t<el-button type=\"primary\" @click=\"updateSubmit('updateForm')\">提 交</el-button>\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t</el-dialog>\n\t</div>\n</template>\n\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tquery: {\n\t\t\t\t\tkey: null,\n\t\t\t\t},\n\t\t\t\tpage: {\n\t\t\t\t\tcurrent: 1,\n\t\t\t\t\tsize: 20,\n\t\t\t\t},\n\t\t\t\taddDialog: false, //增加表单\n\t\t\t\tupdateDialog: false, //更新表单\n\t\t\t\tupdateForm: {}, //更新表单\n\t\t\t\taddForm: { //添加表单\n\t\t\t\t\tcode: null,\n\t\t\t\t\tname: null,\n\t\t\t\t\ttype: null,\n\t\t\t\t\tremark: null\n\t\t\t\t},\n\t\t\t\trules: {\n\t\t\t\t\tcode: [{\n\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\tmessage: '项目编号必填',\n\t\t\t\t\t\ttrigger: 'blur'\n\t\t\t\t\t}],\n type: [{\n required: true,\n message: '所属设备类型必选',\n trigger: 'change'\n }],\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t\tmounted() {\n\t\t\tthis.getListPage(this.page);\n\t\t},\n\t\tmethods: {\n\t\t\t/**\n\t\t\t * 提交查询条件\n\t\t\t */\n\t\t\tsubmit: function() {\n\t\t\t\tconst params = {\n\t\t\t\t\tname: this.query.name,\n\t\t\t\t\titemId: this.query.itemId,\n\t\t\t\t\tstatus: this.query.status\n\t\t\t\t};\n\t\t\t\tthis.getListPage(params);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * 分页点击事件\n\t\t\t */\n\t\t\tpagination: function(current) {\n\t\t\t\tconst params = {\n\t\t\t\t\tname: this.query.name,\n\t\t\t\t\tcurrent: current,\n\t\t\t\t\tsize: this.page.size,\n\t\t\t\t};\n\t\t\t\tthis.getListPage(params);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * 获取设备列表\n\t\t\t */\n\t\t\tgetListPage: function(params) {\n\t\t\t\tthis.$http.Get(this.$global.group.listPage, params).then(res => {\n\t\t\t\t\tthis.page = res.data;\n\t\t\t\t})\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * 更新设备组\n\t\t\t */\n\t\t\thandleUpdate: function(obj) {\n\t\t\t\tthis.updateForm = {\n\t\t\t\t\tid: obj.id,\n\t\t\t\t\tcode: obj.code,\n\t\t\t\t\tname: obj.name,\n\t\t\t\t\ttype: obj.type,\n\t\t\t\t\tremark: obj.remark\n\t\t\t\t};\n\t\t\t\tconsole.log(this.updateForm);\n\t\t\t\tthis.updateDialog = true;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * 提交增加表单\n\t\t\t */\n\t\t\taddSubmit: function(formName) {\n\t\t\t\tthis.$refs[formName].validate((valid) => {\n\t\t\t\t\tif (!valid) return false;\n\t\t\t\t\t//提交表单\n\t\t\t\t\tthis.$http.Post(this.$global.group.save, this.addForm).then(res => {\n\t\t\t\t\t\tthis.$message.success(\"添加成功!\");\n\t\t\t\t\t\tthis.refresh();\n\t\t\t\t\t})\n\t\t\t\t});\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * 提交更新表单\n\t\t\t */\n\t\t\tupdateSubmit: function(formName) {\n\t\t\t\tthis.$refs[formName].validate((valid) => {\n\t\t\t\t\tif (!valid) return false;\n\t\t\t\t\t//提交表单\n\t\t\t\t\tthis.$http.Post(this.$global.group.update, this.updateForm).then(res => {\n\t\t\t\t\t\tthis.$message.success(\"修改成功!\");\n\t\t\t\t\t\tthis.refresh();\n\t\t\t\t\t})\n\t\t\t\t});\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * 刷新列表\n\t\t\t */\n\t\t\trefresh: function() {\n\t\t\t\tthis.addDialog = false;\n\t\t\t\tthis.updateDialog = false;\n\t\t\t\tconst params = {\n\t\t\t\t\tkey: this.query.key,\n\t\t\t\t\tcurrent: this.page.current,\n\t\t\t\t\tsize: this.page.size,\n\t\t\t\t};\n\t\t\t\tthis.getListPage(params);\n\t\t\t}\n\t\t}\n\t};\n</script>\n\n<style lang=\"scss\" scoped>\n\n</style>\n","import { render } from \"./group.vue?vue&type=template&id=25f9e008&scoped=true\"\nimport script from \"./group.vue?vue&type=script&lang=js\"\nexport * from \"./group.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/smzdm/Documents/HBuilderProjects/bms-web/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-25f9e008\"]])\n\nexport default __exports__","<template>\n\t<div class=\"zy-template\">\n\t\t<div class=\"zy-main-title\">设备列表-路牌</div>\n\t\t<div class=\"zy-module\">\n\t\t\t<el-form ref=\"form\" :model=\"query\" label-width=\"60px\">\n\t\t\t\t<el-form-item label=\"设备码:\" class=\"zy-search-form-item\">\n\t\t\t\t\t<el-input v-model=\"query.openNum\" size=\"mini\" clearable></el-input>\n\t\t\t\t</el-form-item>\n\t\t\t\t<el-form-item label=\"设备组:\" class=\"zy-search-form-item\">\n\t\t\t\t\t<el-select v-model=\"query.groupId\" filterable clearable placeholder=\" \" size=\"mini\">\n\t\t\t\t\t\t<el-option v-for=\"item in groups\" :key=\"item\" :value=\"item\" />\n\t\t\t\t\t</el-select>\n\t\t\t\t</el-form-item>\n\t\t\t\t<el-button type=\"primary\" size=\"mini\" @click=\"submit\">查询</el-button>\n\t\t\t</el-form>\n\t\t</div>\n\n\t\t<div class=\"zy-module\">\n\t\t\t<el-table :data=\"page.records\" header-cell-class-name=\"zy-table-header-cell\" cell-class-name='zy-table-cell'\n\t\t\t\tstripe>\n\t\t\t\t<el-table-column prop=\"openNum\" label=\"设备码\" min-width=\"180\">\n\t\t\t\t\t<template #default=\"scope\">IMEI{{scope.row.openNum}}</template>\n\t\t\t\t</el-table-column>\n\t\t\t\t<el-table-column prop=\"groupId\" label=\"设备组\" min-width=\"120\" />\n\t\t\t\t<el-table-column prop=\"createTime\" label=\"创建时间\" min-width=\"180\" />\n\t\t\t\t<el-table-column prop=\"battery\" label=\"电量\" min-width=\"80\" />\n\t\t\t\t<el-table-column prop=\"s4g\" label=\"信号\" min-width=\"80\" />\n\t\t\t\t<el-table-column label=\"状态\" min-width=\"100\">\n\t\t\t\t\t<template #default=\"scope\">\n\t\t\t\t\t\t<el-tag type=\"success\" v-if=\"scope.row.status===1\" size=\"small\">在线</el-tag>\n\t\t\t\t\t\t<el-tag type=\"danger\" v-if=\"scope.row.status===0\" size=\"small\">离线</el-tag>\n\t\t\t\t\t</template>\n\t\t\t\t</el-table-column>\n\t\t\t\t<el-table-column prop=\"updateTime\" label=\"最近通讯时间\" min-width=\"180\" />\n\t\t\t\t<el-table-column label=\"操作\" min-width=\"80\">\n\t\t\t\t\t<template #default=\"scope\">\n\t\t\t\t\t\t<el-button @click=\"detailHandler(scope.row.openNum)\" type=\"text\" size=\"small\">详情</el-button>\n\t\t\t\t\t</template>\n\t\t\t\t</el-table-column>\n\t\t\t</el-table>\n\t\t\t<el-pagination class=\"zy-table-pagination\" background layout=\"prev, pager, next\"\n\t\t\t\t:current-page=\"page.current\" :total=\"page.total\" :page-size=\"page.size\" @current-change=\"pagination\" />\n\t\t</div>\n\n\t\t<el-dialog title=\"设备详情\" v-model=\"detailDialog\" width=\"500px\">\n\t\t\t<el-descriptions :column=\"2\" border>\n\t\t\t\t<el-descriptions-item label=\"设备码:\">{{detail.openNum}}</el-descriptions-item>\n\t\t\t\t<el-descriptions-item label=\"唤醒间隔:\">{{detail.wakeInt}}</el-descriptions-item>\n\t\t\t\t<el-descriptions-item label=\"阈值:\">{{detail.thresh}}</el-descriptions-item>\n\t\t\t\t<el-descriptions-item label=\"温度:\">{{detail.temp}}</el-descriptions-item>\n\t\t\t\t<el-descriptions-item label=\"电量:\">{{detail.battery}}</el-descriptions-item>\n\t\t\t\t<el-descriptions-item label=\"信号:\">{{detail.s4g}}</el-descriptions-item>\n\t\t\t\t<el-descriptions-item label=\"上传类型:\">{{detail.dataType}}</el-descriptions-item>\n\t\t\t\t<el-descriptions-item label=\"X:\">{{detail.x}}</el-descriptions-item>\n\t\t\t\t<el-descriptions-item label=\"Y:\">{{detail.y}}</el-descriptions-item>\n\t\t\t\t<el-descriptions-item label=\"Z:\">{{detail.z}}</el-descriptions-item>\n\t\t\t\t<el-descriptions-item label=\"angleX:\">{{detail.anglex}}</el-descriptions-item>\n\t\t\t\t<el-descriptions-item label=\"angleY:\">{{detail.angley}}</el-descriptions-item>\n\t\t\t\t<el-descriptions-item label=\"angleZ:\">{{detail.anglexz}}</el-descriptions-item>\n\t\t\t\t<el-descriptions-item label=\"经度:\">{{detail.lon}}</el-descriptions-item>\n\t\t\t\t<el-descriptions-item label=\"纬度:\">{{detail.lat}}</el-descriptions-item>\n\t\t\t\t<el-descriptions-item label=\"定位模式:\">{{detail.mode==1?'GPS':'基站'}}</el-descriptions-item>\n\t\t\t</el-descriptions>\n\t\t</el-dialog>\n\n\t</div>\n</template>\n\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tquery: {\n\t\t\t\t\topenNum: \"\",\n\t\t\t\t\ttype: null,\n\t\t\t\t},\n\t\t\t\tpage: {\n\t\t\t\t\tcurrent: 1,\n\t\t\t\t\tsize: 20,\n\t\t\t\t},\n\t\t\t\tgroups: [], //设备组\n\t\t\t\tdetailDialog: false, //详情弹出框\n\t\t\t\tdetail: {}, //设备详情\n\t\t\t};\n\t\t},\n\t\tmounted() {\n\t\t\tthis.getDevicesList();\n\t\t\tthis.getGroupList();\n\t\t},\n\t\tmethods: {\n\t\t\t/**\n\t\t\t * 提交查询条件\n\t\t\t */\n\t\t\tsubmit: function() {\n\t\t\t\tconst param = {\n\t\t\t\t\tcurrent: 1,\n\t\t\t\t\tsize: this.page.size,\n\t\t\t\t\tgroupId: this.query.groupId,\n\t\t\t\t\topenNum: this.query.openNum,\n\t\t\t\t};\n\t\t\t\tthis.getDevicesList(param);\n\t\t\t},\n\t\t\t/**\n\t\t\t * 分页点击事件\n\t\t\t */\n\t\t\tpagination: function(current) {\n\t\t\t\tconst param = {\n\t\t\t\t\tcurrent: current,\n\t\t\t\t\tsize: this.page.size,\n\t\t\t\t\tgroupId: this.query.groupId,\n\t\t\t\t\topenNum: this.query.openNum,\n\t\t\t\t};\n\t\t\t\tthis.getDevicesList(param);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * 查看详情\n\t\t\t */\n\t\t\tdetailHandler: function(openNum) {\n\t\t\t\tthis.detailDialog = true;\n\t\t\t\tthis.getDeviceDetail(openNum);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * 获取设备列表\n\t\t\t */\n\t\t\tgetDevicesList: function(params) {\n\t\t\t\tthis.$http.Get(this.$global.lp.listPage, params).then(res => {\n\t\t\t\t\tthis.page = res.data;\n\t\t\t\t})\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * 获取设备详情\n\t\t\t */\n\t\t\tgetDeviceDetail: function(openNum) {\n\t\t\t\tconst params = {\n\t\t\t\t\topenNum: openNum\n\t\t\t\t}\n\t\t\t\tthis.$http.Get(this.$global.lp.detail, params).then(res => {\n\t\t\t\t\tthis.detail = res.data;\n\t\t\t\t})\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * 获取设备组\n\t\t\t */\n\t\t\tgetGroupList() {\n\t\t\t\tthis.$http.Get(this.$global.group.listAll, {}).then(res => {\n\t\t\t\t\tconst arr = [];\n\t\t\t\t\tthis.groups = res.data.forEach(item => {\n\t\t\t\t\t\tif (item.type == 'lupai') {\n\t\t\t\t\t\t\tarr.push(item.code)\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tthis.groups = arr;\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t};\n</script>\n","import { render } from \"./lp.vue?vue&type=template&id=283bbb41\"\nimport script from \"./lp.vue?vue&type=script&lang=js\"\nexport * from \"./lp.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/smzdm/Documents/HBuilderProjects/bms-web/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"zy-template\">\n <div class=\"zy-main-title\">设备列表-普适型</div>\n <div class=\"zy-module\">\n <el-form ref=\"form\" :model=\"query\" label-width=\"60px\">\n <el-form-item label=\"设备码:\" class=\"zy-search-form-item\">\n <el-input v-model=\"query.openNum\" size=\"mini\" clearable></el-input>\n </el-form-item>\n <el-form-item label=\"设备组:\" class=\"zy-search-form-item\">\n <el-select v-model=\"query.groupId\" filterable clearable placeholder=\" \" size=\"mini\">\n <el-option v-for=\"item in groups\" :key=\"item\" :value=\"item\"/>\n </el-select>\n </el-form-item>\n <el-button type=\"primary\" size=\"mini\" @click=\"submit\">查询</el-button>\n </el-form>\n </div>\n\n <div class=\"zy-module\">\n <el-table :data=\"page.records\" header-cell-class-name=\"zy-table-header-cell\" cell-class-name='zy-table-cell'\n stripe>\n <el-table-column prop=\"openNum\" label=\"设备码\" min-width=\"180\">\n <template #default=\"scope\">IMEI{{scope.row.openNum}}</template>\n </el-table-column>\n <el-table-column prop=\"groupId\" label=\"设备组\" min-width=\"120\"/>\n <el-table-column label=\"状态\" min-width=\"100\">\n <template #default=\"scope\">\n <el-tag type=\"success\" v-if=\"scope.row.status===1\" size=\"small\">在线</el-tag>\n <el-tag type=\"danger\" v-if=\"scope.row.status===0\" size=\"small\">离线</el-tag>\n </template>\n </el-table-column>\n <el-table-column label=\"设备二维码\" min-width=\"120\">\n <el-popover placement=\"right\" :width=\"200\" trigger=\"click\">\n <template #reference>\n <el-button type=\"text\">点击查看</el-button>\n </template>\n <img src=\"http://lq.ailishi.org:4032/chenyi/static/bg.59f1ed01.png\" alt=\"二维码\" width=\"200\"\n height=\"200\">\n </el-popover>\n </el-table-column>\n <el-table-column label=\"电池电压\" min-width=\"80\">\n <template #default=\"scope\">\n {{scope.row.powerVolt==null?'':scope.row.powerVolt.toFixed(2)}}\n <el-tooltip effect=\"dark\" content=\"电压低于10V\" placement=\"right-start\"\n v-if=\"scope.row.powerVolt!=null && scope.row.powerVolt.toFixed(2)<10\">\n <i class=\"el-icon-warning warning\"/>\n </el-tooltip>\n </template>\n </el-table-column>\n <el-table-column label=\"4G信号\" min-width=\"80\">\n <template #default=\"scope\">\n {{scope.row.signal4g}}\n <el-tooltip effect=\"dark\" content=\"信号值低于18\" placement=\"right-start\"\n v-if=\"scope.row.signal4g != null && scope.row.signal4g!==''&& parseInt(scope.row.signal4g)<18\">\n <i class=\"el-icon-warning warning\"/>\n </el-tooltip>\n </template>\n </el-table-column>\n <el-table-column prop=\"oemType\" label=\"板卡类型\" min-width=\"100\"/>\n <el-table-column prop=\"version\" label=\"软件版本号\" min-width=\"100\"/>\n <el-table-column prop=\"lon\" label=\"经度\" min-width=\"120\"/>\n <el-table-column prop=\"lat\" label=\"纬度\" min-width=\"120\"/>\n <el-table-column prop=\"satNum\" label=\"卫星颗数\" min-width=\"80\"/>\n <el-table-column prop=\"sim\" label=\"卡号\" min-width=\"120\"/>\n <el-table-column prop=\"freq\" label=\"上传频率(秒)\" min-width=\"120\"/>\n <el-table-column prop=\"updateTime\" label=\"最近通讯时间\" min-width=\"180\"/>\n <el-table-column prop=\"createTime\" label=\"创建时间\" min-width=\"180\"/>\n <el-table-column prop=\"remark\" label=\"备注\" min-width=\"240\"/>\n <el-table-column label=\"操作\" min-width=\"80\">\n <template #default=\"scope\">\n <el-button @click=\"editRemark(scope.row)\" type=\"text\" size=\"small\">备注</el-button>\n </template>\n </el-table-column>\n </el-table>\n <el-pagination class=\"zy-table-pagination\" background layout=\"prev, pager, next\"\n :current-page=\"page.current\" :total=\"page.total\" :page-size=\"page.size\"\n @current-change=\"pagination\"/>\n </div>\n\n <el-dialog title=\"设备详情\" v-model=\"detailDialog\" width=\"500px\">\n <el-descriptions :column=\"2\" border>\n <el-descriptions-item label=\"设备码:\">{{detail.openNum}}</el-descriptions-item>\n <el-descriptions-item label=\"定位模式:\">{{detail.mode==1?'GPS':'基站'}}</el-descriptions-item>\n </el-descriptions>\n </el-dialog>\n\n <el-dialog title=\"编辑\" v-model=\"updateDialog\" width=\"500px\">\n <el-form ref=\"updateForm\" :model=\"updateForm\" label-width=\"100px\" :rules=\"rules\">\n <el-form-item label=\"备注:\">\n <el-input type=\"textarea\" v-model=\"updateForm.remark\" maxlength=\"100\"></el-input>\n </el-form-item>\n </el-form>\n <template #footer>\n\t\t\t\t<span class=\"dialog-footer\">\n\t\t\t\t\t<el-button @click=\"updateDialog = false\">取 消</el-button>\n\t\t\t\t\t<el-button type=\"primary\" @click=\"updateSubmit('updateForm')\">提 交</el-button>\n\t\t\t\t</span>\n </template>\n </el-dialog>\n\n </div>\n</template>\n\n<script>\n export default {\n data() {\n return {\n query: {\n openNum: \"\",\n type: null,\n },\n page: {\n current: 1,\n size: 20,\n },\n groups: [], //设备组\n detailDialog: false, //详情弹出框\n updateDialog: false, //更新表单\n updateForm: {}, //更新表单\n detail: {}, //设备详情\n };\n },\n mounted() {\n this.getListPage();\n this.getGroupList();\n },\n methods: {\n /**\n * 提交查询条件\n */\n submit: function () {\n const param = {\n current: 1,\n size: this.page.size,\n groupId: this.query.groupId,\n openNum: this.query.openNum,\n };\n this.getListPage(param);\n },\n\n /**\n * 分页点击事件\n */\n pagination: function (current) {\n const param = {\n current: current,\n size: this.page.size,\n groupId: this.query.groupId,\n openNum: this.query.openNum,\n };\n this.getListPage(param);\n },\n\n /**\n * 编辑备注\n */\n editRemark: function (obj) {\n this.updateForm = {\n openNum: obj.openNum,\n remark: obj.remark\n };\n this.updateDialog = true;\n },\n\n /**\n * 获取设备列表\n */\n getListPage: function (params) {\n this.$http.Get(this.$global.ubi.listPage, params).then(res => {\n this.page = res.data;\n })\n },\n\n /**\n * 提交更新表单\n */\n updateSubmit: function (formName) {\n this.$refs[formName].validate((valid) => {\n if (!valid) return false;\n //提交表单\n this.$http.Post(this.$global.deviceBase.updateRemark, this.updateForm).then(res => {\n this.$message.success(\"修改成功!\");\n this.refresh();\n })\n });\n },\n\n /**\n * 获取设备组\n */\n getGroupList() {\n this.$http.Get(this.$global.group.listAll, {}).then(res => {\n const arr = [];\n this.groups = res.data.forEach(item => {\n if (item.type == 'gnss') {\n arr.push(item.code)\n }\n });\n this.groups = arr;\n })\n },\n\n /**\n * 刷新列表\n */\n refresh: function () {\n this.updateDialog = false;\n const params = {\n current: this.page.current,\n size: this.page.size,\n groupId: this.query.groupId,\n openNum: this.query.openNum,\n };\n this.getListPage(params);\n }\n }\n };\n</script>\n","import { render } from \"./ubi.vue?vue&type=template&id=c9d2b8b2\"\nimport script from \"./ubi.vue?vue&type=script&lang=js\"\nexport * from \"./ubi.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/smzdm/Documents/HBuilderProjects/bms-web/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\r\n\t<div class=\"zy-template\">\r\n\t\t<div class=\"zy-main-title title\">设备列表-路牌</div>\r\n\t\t<div class=\"zy-module search\">\r\n\t\t\t<el-form ref=\"form\" :model=\"form\" label-width=\"60px\">\r\n\t\t\t\t<el-form-item label=\"设备码:\" class=\"zy-search-form-item\">\r\n\t\t\t\t\t<el-select v-model=\"form.openNum\" filterable clearable placeholder=\" \" size=\"mini\">\r\n\t\t\t\t\t\t<el-option v-for=\"item in openNumList\" :key=\"item\" :value=\"item\" />\r\n\t\t\t\t\t</el-select>\r\n\t\t\t\t</el-form-item>\r\n\t\t\t\t<el-button type=\"primary\" size=\"mini\" @click=\"submit\">查询</el-button>\r\n\t\t\t</el-form>\r\n\t\t</div>\r\n\r\n\t\t<div id=\"map\" class=\"map\">\r\n\t\t\t<div class=\"map__panel\" v-if=\"device != null\">\r\n\t\t\t\t<p>设 备 号: {{device.openNum}}</p>\r\n\t\t\t\t<p>设 备 组: {{device.groupId}}</p>\r\n\t\t\t\t<p>状 态: {{device.status==1?\"在线\":\"离线\"}}</p>\r\n\t\t\t\t<p>电 量: {{device.battery}}</p>\r\n\t\t\t\t<p>温 度: {{device.temp}}</p>\r\n\t\t\t\t<p>信号强度: {{device.s4g}}</p>\r\n\t\t\t\t<p>唤醒间隔(小时): {{device.wakeInt}}</p>\r\n\t\t\t\t<p>阈值: {{device.thresh}}</p>\r\n\t\t\t\t<p>X: {{device.x}}</p>\r\n\t\t\t\t<p>Y: {{device.y}}</p>\r\n\t\t\t\t<p>Z: {{device.z}}</p>\r\n\t\t\t\t<p>angleX: {{device.anglex}}</p>\r\n\t\t\t\t<p>angleY: {{device.angley}}</p>\r\n\t\t\t\t<p>angleZ: {{device.anglez}}</p>\r\n\t\t\t\t<p>经 度: {{device.lon}}</p>\r\n\t\t\t\t<p>纬 度: {{device.lat}}</p>\r\n\t\t\t\t<p>定位模式: {{device.mode==1?\"GPS\":\"基站\"}}</p>\r\n\t\t\t\t<p>上传时间: {{device.updateTime}}</p>\r\n\t\t\t\t<p>位置: {{device.site}}</p>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\n\texport default {\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tmap: null, //地图对象\r\n\t\t\t\tmarkers: [], //地图中已经有的标记\r\n\t\t\t\ticon: '', //地图中的图标\r\n\t\t\t\tform: {\r\n\t\t\t\t\topenNum: \"\"\r\n\t\t\t\t}, //搜索选择的设备号\r\n\t\t\t\topenNumList: [], // 选择框匹配的设备号\r\n\t\t\t\tdeviceList: [], //全部的设备集合\r\n\t\t\t\tdevice: null, //选中的设备对象\r\n\t\t\t}\r\n\t\t},\r\n\t\tactivated() {\r\n\t\t\tthis.initMap();\r\n\t\t\tthis.getDeviceList();\r\n\t\t},\r\n\t\tmethods: {\r\n\r\n\t\t\t/**\r\n\t\t\t * 初始化地图\r\n\t\t\t */\r\n\t\t\tinitMap: function() {\r\n\t\t\t\tconst option = {\r\n\t\t\t\t\tzoom: 6\r\n\t\t\t\t};\r\n\t\t\t\tthis.map = new AMap.Map('map', option);\r\n\t\t\t\t//默认图标样式\r\n\t\t\t\tthis.icon = new AMap.Icon({\r\n\t\t\t\t\timage: \"/static/img/point.png\",\r\n\t\t\t\t\tsize: [40, 40],\r\n\t\t\t\t\timageSize: [40, 40]\r\n\t\t\t\t})\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * 提交搜索\r\n\t\t\t */\r\n\t\t\tsubmit: function() {\r\n\t\t\t\tif (this.form.openNum === \"\") return;\r\n\t\t\t\tthis.deviceList.forEach(item => {\r\n\t\t\t\t\tif (this.form.openNum === item.openNum) {\r\n\t\t\t\t\t\tif (item.latGcj != null && item.lonGcj != null) {\r\n\t\t\t\t\t\t\tthis.map.setZoomAndCenter(16, [item.lonGcj, item.latGcj]);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.$message.warning(\"该设备暂无定位信息\")\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.device = item;\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * 向地图中添加标记\r\n\t\t\t */\r\n\t\t\taddMarkers: function(devices) {\r\n\t\t\t\tconst that = this;\r\n\t\t\t\tconst markers = [];\r\n\t\t\t\t//清空原来的标记点\r\n\t\t\t\tif (this.markers != null && this.markers.length !== 0) {\r\n\t\t\t\t\tthis.map.remove(this.markers);\r\n\t\t\t\t}\r\n\t\t\t\tdevices.forEach(item => {\r\n\t\t\t\t\tif (item.latGcj != null && item.lonGcj != null) {\r\n\t\t\t\t\t\tmarkers.push(that.buildMarker(item))\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tthis.map.add(markers);\r\n\t\t\t\tthis.markers = markers;\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * 构建 地图标记物\r\n\t\t\t */\r\n\t\t\tbuildMarker: function(item) {\r\n\t\t\t\tconst that = this;\r\n\t\t\t\treturn new AMap.Marker({\r\n\t\t\t\t\tposition: [item.lonGcj, item.latGcj],\r\n\t\t\t\t\ticon: this.icon, // 添加 Icon 图标 URL\r\n\t\t\t\t\ttitle: item.deviceId,\r\n\t\t\t\t\tanimation: \"AMAP_ANIMATION_DROP\"\r\n\t\t\t\t}).on(\"click\", function() {\r\n\t\t\t\t\tthat.map.setZoomAndCenter(16, [item.lonGcj, item.latGcj]);\r\n\t\t\t\t\tthat.device = item;\r\n\t\t\t\t})\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * 获取设备列表\r\n\t\t\t */\r\n\t\t\tgetDeviceList: function() {\r\n\t\t\t\tthis.$http.Get(this.$global.lp.listAll, {}).then(res => {\r\n\t\t\t\t\tthis.deviceList = res.data;\r\n\t\t\t\t\tconsole.log(res.data);\r\n\t\t\t\t\tthis.openNumList = res.data.map(item => {\r\n\t\t\t\t\t\treturn item.openNum;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.addMarkers(this.deviceList);\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n\t.zy-template {\r\n\t\tposition: relative;\r\n\t\tbox-sizing: border-box;\r\n\t\tpadding-top: 150px;\r\n\t\theight: 100%;\r\n\r\n\t\t.title {\r\n\t\t\tposition: absolute;\r\n\t\t\ttop: 0px;\r\n\t\t}\r\n\r\n\t\t.search {\r\n\t\t\tposition: absolute;\r\n\t\t\ttop: 40px;\r\n\t\t}\r\n\r\n\t\t.map {\r\n\t\t\twidth: 100%;\r\n\t\t\theight: 100%;\r\n\t\t\tposition: relative;\r\n\r\n\t\t\t&__panel {\r\n\t\t\t\tcolor: white;\r\n\t\t\t\tbox-sizing: border-box;\r\n\t\t\t\tz-index: 9;\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tright: 10px;\r\n\t\t\t\ttop: 10px;\r\n\t\t\t\twidth: 220px;\r\n\t\t\t\tpadding: 10px;\r\n\t\t\t\tborder-radius: 5px;\r\n\t\t\t\tbackground: rgba(0, 0, 0, .5);\r\n\r\n\t\t\t\t& p {\r\n\t\t\t\t\tfont-size: 14px;\r\n\t\t\t\t\tline-height: 20px;\r\n\t\t\t\t\tmargin: 0 0 3px;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</style>\n","import { render } from \"./lp.vue?vue&type=template&id=4ef70a8e&scoped=true\"\nimport script from \"./lp.vue?vue&type=script&lang=js\"\nexport * from \"./lp.vue?vue&type=script&lang=js\"\n\nimport \"./lp.vue?vue&type=style&index=0&id=4ef70a8e&scoped=true&lang=scss\"\n\nimport exportComponent from \"/Users/smzdm/Documents/HBuilderProjects/bms-web/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4ef70a8e\"]])\n\nexport default __exports__","<template>\n <div class=\"zy-template\">\n <div class=\"zy-main-title\">用户管理</div>\n <div class=\"zy-module\">\n <el-form ref=\"form\" :model=\"query\" label-width=\"60px\">\n <el-form-item label=\"关键字:\" class=\"zy-search-form-item\">\n <el-input v-model=\"query.key\" size=\"mini\" placeholder=\"用户名/昵称/手机号/随机码\"></el-input>\n </el-form-item>\n <el-button type=\"primary\" size=\"mini\" @click=\"submit\">查询</el-button>\n </el-form>\n </div>\n\n <div class=\"zy-module\">\n <el-table :data=\"page.records\" stripe header-cell-class-name=\"zy-table-header-cell\"\n cell-class-name='zy-table-cell'>\n <!--<el-table-column prop=\"openId\" label=\"微信open-id\" width=\"300\" />-->\n <el-table-column prop=\"randomCode\" label=\"随机码\" min-width=\"120\"/>\n <el-table-column label=\"管理员权限\" min-width=\"80\">\n <template #default=\"scope\">\n <el-tag type=\"success\" v-if=\"scope.row.admin===1\" size=\"small\">是</el-tag>\n <el-tag v-if=\"scope.row.admin===0\" size=\"small\">否</el-tag>\n </template>\n </el-table-column>\n <el-table-column prop=\"createTime\" label=\"注册时间\" min-width=\"180\"/>\n <el-table-column prop=\"remark\" label=\"备注\" min-width=\"250\"/>\n <el-table-column label=\"操作\" min-width=\"150\">\n <template #default=\"scope\">\n <el-button @click=\"edit(scope.row)\" type=\"text\" size=\"small\">编辑</el-button>\n <el-button @click=\"setGroups(scope.row.id)\" type=\"text\" size=\"small\">配置设备组</el-button>\n <el-button @click=\"setAdmin(scope.row)\" type=\"text\" size=\"small\"\n :class=\"scope.row.admin===0?'':'red'\">\n {{scope.row.admin===0?'设为管理员':'取消管理员'}}\n </el-button>\n </template>\n </el-table-column>\n </el-table>\n\n <el-pagination class=\"zy-table-pagination\" background layout=\"prev, pager, next\" :total=\"page.total\"\n :page-size=\"page.size\" @current-change=\"pagination\" :current-page=\"page.current\"/>\n </div>\n\n <el-dialog title=\"配置权限\" v-model=\"groupDialog\" width=\"500px\">\n <el-form label-width=\"100px\">\n <el-form-item label=\"配置组:\">\n <el-tree :data=\"groupList\" show-checkbox node-key=\"code\" ref=\"tree\" highlight-current\n :props=\"defaultProps\" accordion>\n </el-tree>\n </el-form-item>\n </el-form>\n <template #footer>\n\t\t\t\t<span class=\"dialog-footer\">\n\t\t\t\t\t<el-button @click=\"groupDialog = false\" size=\"small\">取 消</el-button>\n\t\t\t\t\t<el-button type=\"success\" @click=\"setGroupSubmit\" size=\"small\">提 交</el-button>\n\t\t\t\t</span>\n </template>\n </el-dialog>\n\n <el-dialog title=\"编辑\" v-model=\"updateDialog\" width=\"500px\">\n <el-form ref=\"updateForm\" :model=\"updateForm\" label-width=\"100px\" :rules=\"rules\">\n <el-form-item label=\"备注:\">\n <el-input type=\"textarea\" v-model=\"updateForm.remark\" maxlength=\"100\"></el-input>\n </el-form-item>\n </el-form>\n <template #footer>\n\t\t\t\t<span class=\"dialog-footer\">\n\t\t\t\t\t<el-button @click=\"updateDialog = false\">取 消</el-button>\n\t\t\t\t\t<el-button type=\"primary\" @click=\"updateSubmit('updateForm')\">提 交</el-button>\n\t\t\t\t</span>\n </template>\n </el-dialog>\n\n </div>\n</template>\n\n<script>\n export default {\n data() {\n return {\n query: {\n key: ''\n },\n page: {\n current: 1,\n size: 20,\n },\n defaultProps: {\n children: 'children',\n label: 'name'\n },\n groupDialog: false, //配置设备组权限弹出框\n updateDialog: false, //更新表单\n updateForm: {}, //更新表单\n selUserId: null, //选中的用户的ID\n groupList: null, //设备组权限列表\n };\n },\n mounted() {\n this.getUserList(this.page);\n },\n methods: {\n\n /**\n * 提交查询条件\n */\n submit: function () {\n const param = {\n key: this.query.key\n };\n this.getUserList(param);\n },\n\n /**\n * 分页点击事件\n */\n pagination: function (current) {\n const param = {\n key: this.query.key,\n current: current,\n size: this.page.size,\n };\n this.getUserList(param);\n },\n\n /**\n * 获取用户列表\n */\n getUserList: function (params) {\n const that = this;\n this.$http.Get(this.$global.users.listPage, params).then(res => {\n that.page = res.data;\n })\n },\n\n /**\n * 设置设备组权限\n */\n setGroups: function (id) {\n this.groupDialog = true;\n this.selUserId = id;\n this.getGroupList(id);\n },\n\n /**\n * 设置管理员权限\n */\n setAdmin: function (obj) {\n const param = {\n userId: obj.id,\n admin: obj.admin == 1 ? 0 : 1\n };\n this.$http.Post(this.$global.users.adminAccess, param).then(res => {\n this.$message.success(\"设置成功!\");\n this.refresh();\n })\n },\n\n /**\n * 获取权限列表\n */\n getGroupList: function (userId) {\n const param = {\n userId: userId\n };\n this.$http.Get(this.$global.users.getNoAccessGroups, param).then(res => {\n const arr = [];\n for (let key in res.data) {\n arr.push({\n name: key,\n children: res.data[key]\n })\n }\n console.log(arr);\n this.groupList = arr;\n })\n },\n\n /**\n * 提交设备组权限配置\n */\n setGroupSubmit: function () {\n const arr = this.$refs.tree.getCheckedKeys(true);\n if (arr == null || arr.length <= 0) {\n this.$message.error(\"至少配置一个组!\");\n return;\n }\n let groups = \"\";\n arr.forEach(item => {\n groups += (item + \",\")\n });\n groups = groups.substr(0, groups.length - 1);\n const params = {\n userId: this.selUserId,\n groups: groups\n };\n this.$http.Post(this.$global.users.saveGroupAccess, params).then(res => {\n this.$message.success(\"配置成功!\");\n this.groupDialog = false;\n })\n },\n\n /**\n * 编辑\n */\n edit: function (obj) {\n this.updateForm = {\n id: obj.id,\n remark: obj.remark\n };\n this.updateDialog = true;\n },\n\n /**\n * 提交更新表单\n */\n updateSubmit: function (formName) {\n this.$refs[formName].validate((valid) => {\n if (!valid) return false;\n //提交表单\n this.$http.Post(this.$global.users.updateRemark, this.updateForm).then(res => {\n this.$message.success(\"修改成功!\");\n this.refresh();\n })\n });\n },\n\n /**\n * 刷新列表\n */\n refresh: function () {\n this.updateDialog = false;\n const params = {\n key: this.query.key,\n current: this.page.current,\n size: this.page.size,\n };\n this.getUserList(params);\n },\n\n }\n };\n</script>\n","import { render } from \"./users.vue?vue&type=template&id=1736589e\"\nimport script from \"./users.vue?vue&type=script&lang=js\"\nexport * from \"./users.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/smzdm/Documents/HBuilderProjects/bms-web/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import {\r\n\tcreateRouter,\r\n\tcreateWebHashHistory\r\n} from 'vue-router'\r\nimport Login from \"../views/login/login\";\r\nimport Layout from \"../views/layout/layout\";\r\nimport Logs from \"../views/monitor/logs\";\r\nimport Item from \"../views/system/item\";\r\nimport Group from \"../views/system/group\";\r\nimport DevicesLp from \"../views/devices/lp\";\r\nimport DevicesUbi from \"../views/devices/ubi\";\r\nimport MapLp from \"../views/map/lp\";\r\nimport Users from \"../views/system/users\";\r\n\r\nconst routes = [{\r\n\t\tpath: \"/\",\r\n\t\tname: \"Layout\",\r\n\t\tcomponent: Layout,\r\n\t\tchildren: [{\r\n\t\t\t\tpath: \"/logs\",\r\n\t\t\t\tname: \"Logs\",\r\n\t\t\t\tcomponent: Logs\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"/devices/lp\",\r\n\t\t\t\tname: \"DevicesLp\",\r\n\t\t\t\tcomponent: DevicesLp\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"/devices/ubi\",\r\n\t\t\t\tname: \"DevicesUbi\",\r\n\t\t\t\tcomponent: DevicesUbi\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"/map/lp\",\r\n\t\t\t\tname: \"MapLp\",\r\n\t\t\t\tcomponent: MapLp\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"/groups\",\r\n\t\t\t\tname: \"Group\",\r\n\t\t\t\tcomponent: Group\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"/users\",\r\n\t\t\t\tname: \"Users\",\r\n\t\t\t\tcomponent: Users\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tpath: \"/login\",\r\n\t\tname: \"Login\",\r\n\t\tcomponent: Login,\r\n\t}\r\n];\r\nconst router = createRouter({\r\n\thistory: createWebHashHistory(),\r\n\troutes\r\n});\r\n\r\nexport default router\n","const server = \"http://lq.ailishi.org:4032/bms/api/operate/\";\n// const server = \"http://localhost:8081/bms/api/operate/\";\n\nconst URL = {\n //登录\n login: server + \"admin/login.do\",\n //注销\n logout: server + \"admin/logout.do\",\n //验证token\n verify: server + \"admin/verify.do\",\n\n //用户\n users: {\n //列表\n listPage: server + \"user/listPage.do\",\n //管理员权限\n adminAccess: server + \"user/adminAccess.do\",\n //获取某用户没有权限的设备组\n getNoAccessGroups: server + \"user/getNoAccessGroups.do\",\n //保存设备组权限\n saveGroupAccess: server + \"user/saveGroupAccess.do\",\n //备注\n updateRemark: server + \"user/remark.do\",\n },\n //设备基础信息\n deviceBase: {\n updateRemark: server + \"device/base/remark.do\",\n },\n //路牌\n lp: {\n //分页列表\n listPage: server + \"device/lp/listPage.do\",\n //分布图-列表\n listAll: server + \"device/lp/listAll.do\",\n //设备详情\n detail: server + \"device/lp/detail.do\",\n },\n //普适型\n ubi: {\n //分页列表\n listPage: server + \"device/ubi/listPage.do\",\n //设备详情\n detail: server + \"device/ubi/detail.do\",\n },\n //mqtt日志\n logs: {\n //列表\n listPage: server + \"logs/listPage.do\",\n //全部指令\n instructions: server + \"logs/instruction.do\",\n },\n //设备组管理\n group: {\n //列表\n listPage: server + \"group/listPage.do\",\n //增\n save: server + \"group/save.do\",\n //查询全部设备组\n listAll: server + \"group/listAll.do\",\n //更新\n update: server + \"group/update.do\",\n },\n\n //webSocket 地址\n webSocket: \"wss://www.mang406.top/webSocket/\",\n};\n\nexport default {\n URL\n};\n","//Http配置\nimport Axios from 'axios'\nimport {\n\tElMessage\n} from 'element-plus'\nimport router from \"../../router\"\nimport TokenManager from \"./token\"\nAxios.defaults.headers['channel'] = 'bms';\n\n/**\n * 拦截http请求\n */\nAxios.interceptors.request.use(config => {\n\tconst tokenStr = TokenManager.getToken();\n\tif (tokenStr != null) config.headers['token'] = JSON.parse(TokenManager.getToken()).token;\n\treturn config;\n});\n\n\n/**\n * 拦截http响应\n */\nAxios.interceptors.response.use(res => {\n\t\tswitch (res.data.status) { //状态码\n\t\t\tcase 200:\n\t\t\t\treturn res.data;\n\t\t\tcase 300: //警告\n\t\t\t\tElMessage.error(res.data.msg);\n\t\t\t\tbreak;\n\t\t\tcase 400: //无权限\n\t\t\t\tElMessage.error(\"请先登录\");\n\t\t\t\trouter.replace(\"/login\");\n\t\t\t\tbreak;\n\t\t\tcase 500: //服务器错误\n\t\t\t\tElMessage.error(\"服务器开小差了\");\n\t\t\t\tbreak;\n\t\t\tdefault: //无状态码\n\t\t\t\tElMessage.error(\"请求状态异常\");\n\t\t\t\tbreak;\n\t\t}\n\t\tthrow \"stop\";\n\t},\n\terror => {\n\t\tconsole.log(error);\n\t\tthrow \"stop\";\n\t});\nexport default Axios\n","import Axios from \"./axiosCfg\";\nimport Qs from \"qs\";\nimport {\n\tElLoading\n} from \"element-plus\";\n\nlet loading; //加载框\n/**\n * 打开加载框\n */\nfunction openLoad() {\n\tif (loading != null) loading.close();\n\t//打开加载框\n\tloading = ElLoading.service({\n\t\ttext: \"正在加载\",\n\t});\n}\n\n/**\n * 关闭加载框\n */\nfunction closeLoad() {\n\tif (loading != null) {\n\t\tloading.close();\n\t}\n}\n\nlet Http = {\n\t/**\n\t * Post请求\n\t */\n\tPost: function(url, data) {\n\t\t//打开加载框\n\t\topenLoad();\n\t\t//发送请求\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tAxios.post(url, Qs.stringify(data))\n\t\t\t\t.then(res => {\n\t\t\t\t\tresolve(res);\n\t\t\t\t})\n\t\t\t\t.catch(res => {})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tcloseLoad();\n\t\t\t\t})\n\t\t});\n\t},\n\t/**\n\t * Get请求\n\t */\n\tGet: function(url, data) {\n\t\t//打开加载框\n\t\topenLoad();\n\t\t//请求数据\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tAxios.get(url, {params: data})\n\t\t\t\t.then(res => {\n\t\t\t\t\tresolve(res);\n\t\t\t\t})\n\t\t\t\t.catch(res => {\n\t\t\t\t\tconsole.log(res)\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tcloseLoad();\n\t\t\t\t})\n\t\t});\n\t},\n\t/**\n\t * 下载\n\t */\n\tDownload: function(url, data, fileName) {\n\t\tAxios.post(url, Qs.stringify(data), {\n\t\t\tresponseType: \"blob\"\n\t\t}).then(res => {\n\t\t\tlet link = document.createElement(\"a\");\n\t\t\tlink.style.display = \"none\";\n\t\t\tlink.href = window.URL.createObjectURL(new Blob([res]));\n\t\t\tlink.setAttribute(\"download\", fileName); // 自定义下载文件名(如exemple.txt)\n\t\t\tdocument.body.appendChild(link);\n\t\t\tlink.click();\n\t\t\tURL.revokeObjectURL(link.href); // 释放URL 对象\n\t\t\tdocument.body.removeChild(link);\n\t\t});\n\t}\n};\n\nexport default {\n\tHttp\n};\n","import {createApp} from 'vue'\nimport ElementPlus from 'element-plus';\nimport \"./static/element-ui.css\";\nimport App from \"./App.vue\";\nimport router from \"./router\";\nimport Global from './static/js/global'\nimport Http from './static/js/http'\nimport './static/js/token'\n\nconst app = createApp(App);\napp.config.globalProperties.$http = Http.Http;\napp.config.globalProperties.$global = Global.URL;\napp.use(router).use(ElementPlus).mount('#app');","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./lp.vue?vue&type=style&index=0&id=4ef70a8e&scoped=true&lang=scss\"","module.exports = __webpack_public_path__ + \"img/logo.e8ecd770.png\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./login.vue?vue&type=style&index=0&id=1f087cb8&scoped=true&lang=scss\""],"sourceRoot":""}
|