\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./tree.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./tree.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./tree.vue?vue&type=template&id=727b4fd7&scoped=true&\"\nimport script from \"./tree.vue?vue&type=script&lang=js&\"\nexport * from \"./tree.vue?vue&type=script&lang=js&\"\nimport style0 from \"./tree.vue?vue&type=style&index=0&id=727b4fd7&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"727b4fd7\",\n null\n \n)\n\nexport default component.exports","\n
\n \n \n \n \n \n \n
\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3701519e&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3701519e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3701519e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"create-dialog-container\"},[(_vm.API.createDialog.dialogVisible)?_c('el-dialog',{attrs:{\"visible\":_vm.API.createDialog.dialogVisible,\"title\":\"挂载设备\",\"width\":\"500px\"},on:{\"update:visible\":function($event){return _vm.$set(_vm.API.createDialog, \"dialogVisible\", $event)}}},[_c('div',[_c('el-select',{model:{value:(_vm.selectedDevice),callback:function ($$v) {_vm.selectedDevice=$$v},expression:\"selectedDevice\"}},_vm._l((_vm.deviceList),function(item,index){return _c('el-option',{key:index,attrs:{\"label\":item.name,\"value\":item.id.id}})}),1),_c('el-button',{on:{\"click\":_vm.mount}},[_vm._v(\"挂载\")]),_c('br'),_c('br'),_c('el-button',{on:{\"click\":_vm.submit}},[_vm._v(\"完成\")])],1)]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n
\n \n
\n \n \n \n 挂载\n \n \n 完成\n
\n \n
\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mountDeviceDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mountDeviceDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./mountDeviceDialog.vue?vue&type=template&id=786cd894&scoped=true&\"\nimport script from \"./mountDeviceDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./mountDeviceDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"786cd894\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/lib/loader.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/lib/loader.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\"","import { removeSlash } from './removeIdSlash'\nconst uuid = require('uuid/v1')\nconst moment = require('moment')\n\nexport function ThingsBoardTenantListParser (list) {\n const resultList = list.data.data.map(listItem => {\n const resultItem = {}\n for (const item in listItem) {\n // if (item !== 'id') {\n resultItem[item] = listItem[item]\n // }\n }\n // resultItem.id = listItem.id.id\n // resultItem.name = listItem.name\n // resultItem.title = listItem.title\n return resultItem\n })\n return resultList\n}\n\nexport function ThingsBoardDeviceListParser (list) {\n const resultList = list.data.data.map(listItem => {\n const resultItem = {}\n for (const item in listItem) {\n resultItem[item] = listItem[item]\n // }\n }\n const additionalInfo = JSON.parse(resultItem.additionalInfo || '{}')\n resultItem.color = additionalInfo.isVirtualDevice ? '#66ccff' : undefined\n resultItem.label = listItem.name\n resultItem.allowDelete = true\n resultItem.allowMod = true\n resultItem.allowCopy = true\n resultItem.children = []\n resultItem.children[0] = {}\n resultItem.children[0].label = '开关量'\n resultItem.children[0].children = []\n resultItem.children[1] = {}\n resultItem.children[1].label = '变量'\n resultItem.children[1]['data-key'] = 'variables'\n resultItem.children[1]['data-device-id'] = listItem.id\n resultItem.children[1].allowAdd = true\n resultItem.children[1].children = []\n resultItem.children[2] = {}\n resultItem.children[2].label = '控制量'\n resultItem.children[2].children = []\n // resultItem.id = listItem.id.id\n // resultItem.name = listItem.name\n // resultItem.additionalInfo = {}\n // resultItem.additionalInfo.type = listItem.type\n return resultItem\n })\n return resultList\n}\n\nexport function ThingsBoardTenantManagerListParser (list) {\n const resultList = list.data.data.map(listItem => {\n const resultItem = {}\n // const rules = [\n // 'id',\n // 'createdTime',\n // 'authority'\n // ]\n for (const item in listItem) {\n resultItem[item] = listItem[item]\n }\n // resultItem.id = listItem.id.id\n // resultItem.name = listItem.name\n // resultItem.email = listItem.email\n return resultItem\n })\n return resultList\n}\n\nexport function ThingsBoardTenantUserListParser (list) {\n const resultList = list.data.data.map(listItem => {\n const resultItem = {}\n // const rules = [\n // 'id',\n // 'createdTime',\n // 'authority'\n // ]\n for (const item in listItem) {\n if (item === 'additionalInfo') {\n const append = JSON.parse(listItem[item])\n resultItem[item] = append\n for (const val in append) {\n resultItem[val] = append[val]\n if (val === 'alarmFromEmail') {\n append[val] ? resultItem[val] = '是' : resultItem[val] = '否'\n }\n if (val === 'alarmFromSms') {\n append[val] ? resultItem[val] = '是' : resultItem[val] = '否'\n }\n }\n } else {\n resultItem[item] = listItem[item]\n }\n }\n // resultItem.id = listItem.id.id\n // resultItem.name = listItem.name\n // resultItem.email = listItem.email\n return resultItem\n })\n return resultList\n}\n\n// 虚拟表解析\nexport function ThingsBoardVirtualTableParser (list) {\n const resultList = list.data.map(listItem => {\n const resultItem = {}\n // const rules = [\n // 'id',\n // 'createdTime',\n // 'authority'\n // ]\n for (const item in listItem) {\n // if (!rules.includes(item)) {\n resultItem[item] = listItem[item]\n resultItem.typeInZh = listItem.type === 'inputValue' ? '输入值' : '计算值'\n if (listItem.virtualGroup) {\n resultItem.group = listItem.virtualGroup\n if (!resultItem.group) {\n resultItem.group = ''\n }\n resultItem.virtualGroup = listItem.virtualGroup.split(',')\n if (!resultItem.virtualGroup) {\n resultItem.virtualGroup = []\n }\n }\n // }\n }\n // resultItem.id = listItem.id.id\n // resultItem.name = listItem.name\n // resultItem.email = listItem.email\n return resultItem\n })\n resultList.reverse()\n return resultList\n}\n\nexport function timeSharingParser (val) {\n let timeSharing = []\n for (const item of val.data) {\n if (item.key === 'timeSharing') {\n timeSharing = JSON.parse(item.value) || []\n timeSharing = timeSharing.filter(v => v.name)\n // let resultTree = []\n for (const item of timeSharing) {\n item.label = item.name\n item.children = item.data\n item.allowDelete = true\n item.id = uuid()\n item.allowAdd = true\n for (const timeList of item.children) {\n timeList.timeSharingType = item.type\n timeList.label = timeList.key\n timeList.allowDelete = true\n timeList.id = uuid()\n\n if (item.type === 'time') {\n const tempTimeValue = []\n for (const timeItem of timeList.value) {\n const tempTimeItem = []\n tempTimeItem[0] = timeItem.substring(0, 5)\n tempTimeItem[1] = timeItem.substring(6, 11)\n tempTimeValue.push(tempTimeItem)\n }\n timeList.value = tempTimeValue\n }\n }\n }\n return timeSharing || []\n }\n }\n}\n\nexport function gatewayParser (list) {\n const origData = list.data\n const result = origData.map(gateway => {\n gateway.label = gateway.name\n gateway.loading = false\n gateway.children = []\n gateway.allowAdd = true\n gateway.allowDelete = true\n gateway.shortId = removeSlash(gateway.id.id)\n gateway.isLeaf = false\n gateway.lazy = true\n gateway.createdTimeParsed = moment(gateway.createdTime).format('YYYY-MM-DD HH:mm')\n return gateway\n })\n return result\n}\n\nexport function devicePropsRegister (reg) {\n const preProcessData = (reg[0] || { value: '' }).value\n // const result = []\n return JSON.parse(preProcessData)\n}\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/lib/loader.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3701519e&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/lib/loader.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3701519e&lang=scss&scoped=true&\"","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/broofa/node-uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"create-dialog-container\"},[(_vm.API.createDialog.dialogVisible)?_c('el-dialog',{attrs:{\"visible\":_vm.API.createDialog.dialogVisible,\"title\":\"新建网关\",\"width\":\"500px\"}},[_c('el-select',{model:{value:(_vm.gatewayType),callback:function ($$v) {_vm.gatewayType=$$v},expression:\"gatewayType\"}},[_c('el-option',{attrs:{\"label\":\"DTU\",\"value\":\"DTU\"}}),_c('el-option',{attrs:{\"label\":\"MODBUS\",\"value\":\"MODBUS\"}})],1),_c('br'),_c('br'),_c('el-input',{attrs:{\"placeholder\":\"网关名称\"},model:{value:(_vm.gatewayName),callback:function ($$v) {_vm.gatewayName=$$v},expression:\"gatewayName\"}}),_c('br'),_c('br'),_c('el-button',{attrs:{\"disabled\":_vm.disableButton},on:{\"click\":_vm.createGateway}},[_vm._v(\"新建\")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n
\n \n \n \n \n \n \n \n \n \n \n 新建\n \n
\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./createNewGatewayDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./createNewGatewayDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./createNewGatewayDialog.vue?vue&type=template&id=f638cd4a&scoped=true&\"\nimport script from \"./createNewGatewayDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./createNewGatewayDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f638cd4a\",\n null\n \n)\n\nexport default component.exports","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n"],"sourceRoot":""}