liusuyi
2024-10-10 38f29e38fcc668171dc05c53d40a36b895c86102
1
{"remainingRequest":"D:\\Workspaces\\ard\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!D:\\Workspaces\\ard\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\Workspaces\\ard\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\Workspaces\\ard\\RuoYi-Vue-master\\ruoyi-ui\\src\\views\\device\\cameras\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\Workspaces\\ard\\RuoYi-Vue-master\\ruoyi-ui\\src\\views\\device\\cameras\\index.vue","mtime":1678517028384},{"path":"D:\\Workspaces\\ard\\RuoYi-Vue-master\\ruoyi-ui\\babel.config.js","mtime":1675221397043},{"path":"D:\\Workspaces\\ard\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1678842086999},{"path":"D:\\Workspaces\\ard\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":1678842088721},{"path":"D:\\Workspaces\\ard\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1678842086999},{"path":"D:\\Workspaces\\ard\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":1678842089772}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:InVzZSBzdHJpY3QiOwoKdmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKCJEOi9Xb3Jrc3BhY2VzL2FyZC9SdW9ZaS1WdWUtbWFzdGVyL3J1b3lpLXVpL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdC5qcyIpLmRlZmF1bHQ7Ck9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAiX19lc01vZHVsZSIsIHsKICB2YWx1ZTogdHJ1ZQp9KTsKZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwOwp2YXIgX29iamVjdFNwcmVhZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoIkQ6L1dvcmtzcGFjZXMvYXJkL1J1b1lpLVZ1ZS1tYXN0ZXIvcnVveWktdWkvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0U3ByZWFkMi5qcyIpKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZpbHRlci5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIik7CnZhciBfY2FtZXJhcyA9IHJlcXVpcmUoIkAvYXBpL2RldmljZS9jYW1lcmFzIik7CnZhciBfdXNlciA9IHJlcXVpcmUoIkAvYXBpL3N5c3RlbS91c2VyIik7CnZhciBfdnVlVHJlZXNlbGVjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZSgiQHJpb3BoYWUvdnVlLXRyZWVzZWxlY3QiKSk7CnJlcXVpcmUoIkByaW9waGFlL3Z1ZS10cmVlc2VsZWN0L2Rpc3QvdnVlLXRyZWVzZWxlY3QuY3NzIik7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCnZhciBfZGVmYXVsdCA9IHsKICBuYW1lOiAiQ2FtZXJhcyIsCiAgZGljdHM6IFsiY2FtZXJhX3R5cGUiLCAiVHJlZXNlbGVjdCJdLAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICAvLyDpga7nvanlsYIKICAgICAgbG9hZGluZzogdHJ1ZSwKICAgICAgLy8g6YCJ5Lit5pWw57uECiAgICAgIGlkczogW10sCiAgICAgIC8vIOmdnuWNleS4quemgeeUqAogICAgICBzaW5nbGU6IHRydWUsCiAgICAgIC8vIOmdnuWkmuS4quemgeeUqAogICAgICBtdWx0aXBsZTogdHJ1ZSwKICAgICAgLy8g5pi+56S65pCc57Si5p2h5Lu2CiAgICAgIHNob3dTZWFyY2g6IHRydWUsCiAgICAgIC8vIOaAu+adoeaVsAogICAgICB0b3RhbDogMCwKICAgICAgLy8g55u45py66K6+5aSH6KGo5qC85pWw5o2uCiAgICAgIGNhbWVyYXNMaXN0OiBbXSwKICAgICAgLy8g5by55Ye65bGC5qCH6aKYCiAgICAgIHRpdGxlOiAiIiwKICAgICAgLy8g5piv5ZCm5pi+56S65by55Ye65bGCCiAgICAgIG9wZW46IGZhbHNlLAogICAgICAvLyDmn6Xor6Llj4LmlbAKICAgICAgcXVlcnlQYXJhbXM6IHsKICAgICAgICBwYWdlTnVtOiAxLAogICAgICAgIHBhZ2VTaXplOiAxMCwKICAgICAgICBuYW1lOiBudWxsLAogICAgICAgIGlwOiBudWxsLAogICAgICAgIHBvcnQ6IG51bGwsCiAgICAgICAgdXNlcm5hbWU6IG51bGwsCiAgICAgICAgcGFzc3dvcmQ6IG51bGwsCiAgICAgICAgZ2R0eXBlOiBudWxsLAogICAgICAgIGNoYW5uZWw6IG51bGwsCiAgICAgICAgcGFuOiBudWxsLAogICAgICAgIHRpbHQ6IG51bGwsCiAgICAgICAgbG9uZ2l0dWRlOiBudWxsLAogICAgICAgIGxhdGl0dWRlOiBudWxsLAogICAgICAgIGFsdGl0dWRlOiBudWxsCiAgICAgIH0sCiAgICAgIC8vIOihqOWNleWPguaVsAogICAgICBmb3JtOiB7fSwKICAgICAgLy8g6KGo5Y2V5qCh6aqMCiAgICAgIHJ1bGVzOiB7fSwKICAgICAgLy8g6YOo6Zeo5qCR6YCJ6aG5CiAgICAgIGRlcHRPcHRpb25zOiB1bmRlZmluZWQsCiAgICAgIC8vIOmDqOmXqOWQjeensAogICAgICBkZXB0TmFtZTogdW5kZWZpbmVkCiAgICB9OwogIH0sCiAgd2F0Y2g6IHsKICAgIC8vIOagueaNruWQjeensOetm+mAiemDqOmXqOagkQogICAgZGVwdE5hbWU6IGZ1bmN0aW9uIGRlcHROYW1lKHZhbCkgewogICAgICB0aGlzLiRyZWZzLnRyZWUuZmlsdGVyKHZhbCk7CiAgICB9CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgdGhpcy5nZXRMaXN0KCk7CiAgICB0aGlzLmdldERlcHRUcmVlKCk7CiAgfSwKICBtZXRob2RzOiB7CiAgICAvKiog5p+l6K+i55u45py66K6+5aSH5YiX6KGoICovZ2V0TGlzdDogZnVuY3Rpb24gZ2V0TGlzdCgpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgKDAsIF9jYW1lcmFzLmxpc3RDYW1lcmFzKSh0aGlzLnF1ZXJ5UGFyYW1zKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIF90aGlzLmNhbWVyYXNMaXN0ID0gcmVzcG9uc2Uucm93czsKICAgICAgICBfdGhpcy50b3RhbCA9IHJlc3BvbnNlLnRvdGFsOwogICAgICAgIF90aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g5Y+W5raI5oyJ6ZKuCiAgICBjYW5jZWw6IGZ1bmN0aW9uIGNhbmNlbCgpIHsKICAgICAgdGhpcy5vcGVuID0gZmFsc2U7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgIH0sCiAgICAvLyDooajljZXph43nva4KICAgIHJlc2V0OiBmdW5jdGlvbiByZXNldCgpIHsKICAgICAgdGhpcy5mb3JtID0gewogICAgICAgIGlkOiBudWxsLAogICAgICAgIG5hbWU6IG51bGwsCiAgICAgICAgaXA6IG51bGwsCiAgICAgICAgcG9ydDogbnVsbCwKICAgICAgICB1c2VybmFtZTogbnVsbCwKICAgICAgICBwYXNzd29yZDogbnVsbCwKICAgICAgICBnZHR5cGU6IG51bGwsCiAgICAgICAgY2hhbm5lbDogbnVsbCwKICAgICAgICBwYW46IG51bGwsCiAgICAgICAgdGlsdDogbnVsbCwKICAgICAgICBsb25naXR1ZGU6IG51bGwsCiAgICAgICAgbGF0aXR1ZGU6IG51bGwsCiAgICAgICAgYWx0aXR1ZGU6IG51bGwKICAgICAgfTsKICAgICAgdGhpcy5yZXNldEZvcm0oImZvcm0iKTsKICAgIH0sCiAgICAvKiog5pCc57Si5oyJ6ZKu5pON5L2cICovaGFuZGxlUXVlcnk6IGZ1bmN0aW9uIGhhbmRsZVF1ZXJ5KCkgewogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VOdW0gPSAxOwogICAgICB0aGlzLmdldExpc3QoKTsKICAgIH0sCiAgICAvKiog6YeN572u5oyJ6ZKu5pON5L2cICovcmVzZXRRdWVyeTogZnVuY3Rpb24gcmVzZXRRdWVyeSgpIHsKICAgICAgdGhpcy5yZXNldEZvcm0oInF1ZXJ5Rm9ybSIpOwogICAgICB0aGlzLmhhbmRsZVF1ZXJ5KCk7CiAgICB9LAogICAgLy8g5aSa6YCJ5qGG6YCJ5Lit5pWw5o2uCiAgICBoYW5kbGVTZWxlY3Rpb25DaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZVNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb24pIHsKICAgICAgdGhpcy5pZHMgPSBzZWxlY3Rpb24ubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7CiAgICAgIH0pOwogICAgICB0aGlzLnNpbmdsZSA9IHNlbGVjdGlvbi5sZW5ndGggIT09IDE7CiAgICAgIHRoaXMubXVsdGlwbGUgPSAhc2VsZWN0aW9uLmxlbmd0aDsKICAgIH0sCiAgICAvKiog5paw5aKe5oyJ6ZKu5pON5L2cICovaGFuZGxlQWRkOiBmdW5jdGlvbiBoYW5kbGVBZGQoKSB7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgdGhpcy5vcGVuID0gdHJ1ZTsKICAgICAgdGhpcy50aXRsZSA9ICLmt7vliqDnm7jmnLrorr7lpIciOwogICAgfSwKICAgIC8qKiDkv67mlLnmjInpkq7mk43kvZwgKi9oYW5kbGVVcGRhdGU6IGZ1bmN0aW9uIGhhbmRsZVVwZGF0ZShyb3cpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgdmFyIGlkID0gcm93LmlkIHx8IHRoaXMuaWRzOwogICAgICAoMCwgX2NhbWVyYXMuZ2V0Q2FtZXJhcykoaWQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXMyLmZvcm0gPSByZXNwb25zZS5kYXRhOwogICAgICAgIF90aGlzMi5vcGVuID0gdHJ1ZTsKICAgICAgICBfdGhpczIudGl0bGUgPSAi5L+u5pS555u45py66K6+5aSHIjsKICAgICAgfSk7CiAgICB9LAogICAgLyoqIOaPkOS6pOaMiemSriAqL3N1Ym1pdEZvcm06IGZ1bmN0aW9uIHN1Ym1pdEZvcm0oKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICB0aGlzLiRyZWZzWyJmb3JtIl0udmFsaWRhdGUoZnVuY3Rpb24gKHZhbGlkKSB7CiAgICAgICAgaWYgKHZhbGlkKSB7CiAgICAgICAgICBpZiAoX3RoaXMzLmZvcm0uaWQgIT0gbnVsbCkgewogICAgICAgICAgICAoMCwgX2NhbWVyYXMudXBkYXRlQ2FtZXJhcykoX3RoaXMzLmZvcm0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgICAgICAgX3RoaXMzLiRtb2RhbC5tc2dTdWNjZXNzKCLkv67mlLnmiJDlip8iKTsKICAgICAgICAgICAgICBfdGhpczMub3BlbiA9IGZhbHNlOwogICAgICAgICAgICAgIF90aGlzMy5nZXRMaXN0KCk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgKDAsIF9jYW1lcmFzLmFkZENhbWVyYXMpKF90aGlzMy5mb3JtKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgICAgICAgIF90aGlzMy4kbW9kYWwubXNnU3VjY2Vzcygi5paw5aKe5oiQ5YqfIik7CiAgICAgICAgICAgICAgX3RoaXMzLm9wZW4gPSBmYWxzZTsKICAgICAgICAgICAgICBfdGhpczMuZ2V0TGlzdCgpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIC8qKiDliKDpmaTmjInpkq7mk43kvZwgKi9oYW5kbGVEZWxldGU6IGZ1bmN0aW9uIGhhbmRsZURlbGV0ZShyb3cpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIHZhciBpZHMgPSByb3cuaWQgfHwgdGhpcy5pZHM7CiAgICAgIHRoaXMuJG1vZGFsLmNvbmZpcm0oJ+aYr+WQpuehruiupOWIoOmZpOebuOacuuiuvuWkh+e8luWPt+S4uiInICsgaWRzICsgJyLnmoTmlbDmja7pobnvvJ8nKS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gKDAsIF9jYW1lcmFzLmRlbENhbWVyYXMpKGlkcyk7CiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNC5nZXRMaXN0KCk7CiAgICAgICAgX3RoaXM0LiRtb2RhbC5tc2dTdWNjZXNzKCLliKDpmaTmiJDlip8iKTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge30pOwogICAgfSwKICAgIC8qKiDlr7zlh7rmjInpkq7mk43kvZwgKi9oYW5kbGVFeHBvcnQ6IGZ1bmN0aW9uIGhhbmRsZUV4cG9ydCgpIHsKICAgICAgdGhpcy5kb3dubG9hZCgnc2Nob29sL2NhbWVyYXMvZXhwb3J0JywgKDAsIF9vYmplY3RTcHJlYWQyLmRlZmF1bHQpKHt9LCB0aGlzLnF1ZXJ5UGFyYW1zKSwgImNhbWVyYXNfIi5jb25jYXQobmV3IERhdGUoKS5nZXRUaW1lKCksICIueGxzeCIpKTsKICAgIH0sCiAgICAvKiog5p+l6K+i6YOo6Zeo5LiL5ouJ5qCR57uT5p6EICovZ2V0RGVwdFRyZWU6IGZ1bmN0aW9uIGdldERlcHRUcmVlKCkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgKDAsIF91c2VyLmRlcHRUcmVlU2VsZWN0KSgpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOwogICAgICAgIF90aGlzNS5kZXB0T3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOetm+mAieiKgueCuQogICAgZmlsdGVyTm9kZTogZnVuY3Rpb24gZmlsdGVyTm9kZSh2YWx1ZSwgZGF0YSkgewogICAgICBpZiAoIXZhbHVlKSByZXR1cm4gdHJ1ZTsKICAgICAgcmV0dXJuIGRhdGEubGFiZWwuaW5kZXhPZih2YWx1ZSkgIT09IC0xOwogICAgfSwKICAgIC8vIOiKgueCueWNleWHu+S6i+S7tgogICAgaGFuZGxlTm9kZUNsaWNrOiBmdW5jdGlvbiBoYW5kbGVOb2RlQ2xpY2soZGF0YSkgewogICAgICBjb25zb2xlLmxvZyhkYXRhKTsKICAgICAgdGhpcy5xdWVyeVBhcmFtcy5kZXB0SWQgPSBkYXRhLmlkOwogICAgICB0aGlzLmhhbmRsZVF1ZXJ5KCk7CiAgICB9CiAgfQp9OwpleHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDs="},{"version":3,"mappings":";;;;;;;;;;;AAqPA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eACA;EACAA;EACAC;EACAC;IACA;MACA;MACAC;MACA;MACAC;MACA;MACAC;MACA;MACAC;MACA;MACAC;MACA;MACAC;MACA;MACAC;MACA;MACAC;MACA;MACAC;MACA;MACAC;QACAC;QACAC;QACAd;QACAe;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;MACA;MACA;MACAC;MACA;MACAC;MACA;MACAC;MACA;MACAC;IACA;EACA;EACAC;IACA;IACAD;MACA;IACA;EACA;EACAE;IACA;IACA;EACA;EACAC;IACA,eACAC;MAAA;MACA;MACA;QACA;QACA;QACA;MACA;IACA;IACA;IACAC;MACA;MACA;IACA;IACA;IACAC;MACA;QACAC;QACApC;QACAe;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;MACA;MACA;IACA;IACA,aACAY;MACA;MACA;IACA;IACA,aACAC;MACA;MACA;IACA;IACA;IACAC;MACA;QAAA;MAAA;MACA;MACA;IACA;IACA,aACAC;MACA;MACA;MACA;IACA;IACA,aACAC;MAAA;MACA;MACA;MACA;QACA;QACA;QACA;MACA;IACA;IACA,WACAC;MAAA;MACA;QACA;UACA;YACA;cACA;cACA;cACA;YACA;UACA;YACA;cACA;cACA;cACA;YACA;UACA;QACA;MACA;IACA;IACA,aACAC;MAAA;MACA;MACA;QACA;MACA;QACA;QACA;MACA,sBACA;IACA;IACA,aACAC;MACA,uEACA,qCACA;IACA;IACA,gBACAC;MAAA;MACA;QACAC;QACA;MACA;IACA;IACA;IACAC;MACA;MACA;IACA;IACA;IACAC;MACAF;MACA;MACA;IACA;EACA;AACA;AAAA","names":["name","dicts","data","loading","ids","single","multiple","showSearch","total","camerasList","title","open","queryParams","pageNum","pageSize","ip","port","username","password","gdtype","channel","pan","tilt","longitude","latitude","altitude","form","rules","deptOptions","deptName","watch","created","methods","getList","cancel","reset","id","handleQuery","resetQuery","handleSelectionChange","handleAdd","handleUpdate","submitForm","handleDelete","handleExport","getDeptTree","console","filterNode","handleNodeClick"],"sourceRoot":"src/views/device/cameras","sources":["index.vue"],"sourcesContent":["<template>\n  <div class=\"app-container\">\n    <el-card id=\"left-card\" class=\"left-card\" :style=\"{width: leftWidth, height: viewerHeight}\">\n      <!--部门数据-->\n      <div v-if=\"!open\">\n        <el-row :gutter=\"20\">\n          <el-col :span=\"5\" :xs=\"24\">\n            <div class=\"head-container\">\n              <el-input\n                v-model=\"deptName\"\n                placeholder=\"请输入部门名称\"\n                clearable\n                size=\"small\"\n                prefix-icon=\"el-icon-search\"\n                style=\"margin-bottom: 20px\"\n              />\n            </div>\n            <div class=\"head-container\">\n              <el-tree\n                :data=\"deptOptions\"\n                :props=\"defaultProps\"\n                :expand-on-click-node=\"false\"\n                :filter-node-method=\"filterNode\"\n                ref=\"tree\"\n                node-key=\"id\"\n                default-expand-all\n                highlight-current\n                @node-click=\"handleNodeClick\"\n              />\n            </div>\n          </el-col>\n          <el-col :span=\"19\" :xs=\"24\">\n            <el-form :model=\"queryParams\" ref=\"queryForm\" size=\"small\" :inline=\"true\" v-show=\"showSearch\"\n                     label-width=\"68px\">\n              <el-form-item label=\"名称\" prop=\"name\">\n                <el-input\n                  v-model=\"queryParams.name\"\n                  placeholder=\"请输入名称\"\n                  clearable\n                  @keyup.enter.native=\"handleQuery\"\n                />\n              </el-form-item>\n              <el-form-item label=\"ip\" prop=\"ip\">\n                <el-input\n                  v-model=\"queryParams.ip\"\n                  placeholder=\"请输入ip\"\n                  clearable\n                  @keyup.enter.native=\"handleQuery\"\n                />\n              </el-form-item>\n              <el-form-item label=\"用户名\" prop=\"username\">\n                <el-input\n                  v-model=\"queryParams.username\"\n                  placeholder=\"请输入用户名\"\n                  clearable\n                  @keyup.enter.native=\"handleQuery\"\n                />\n              </el-form-item>\n              <el-form-item label=\"密码\" prop=\"password\">\n                <el-input\n                  v-model=\"queryParams.password\"\n                  placeholder=\"请输入密码\"\n                  clearable\n                  @keyup.enter.native=\"handleQuery\"\n                />\n              </el-form-item>\n              <el-form-item label=\"光电类型\" prop=\"gdtype\">\n                <el-select v-model=\"queryParams.gdtype\" placeholder=\"请选择光电类型\" clearable>\n                  <el-option\n                    v-for=\"dict in dict.type.camera_type\"\n                    :key=\"dict.value\"\n                    :label=\"dict.label\"\n                    :value=\"dict.value\"\n                  />\n                </el-select>\n              </el-form-item>\n              <el-form-item>\n                <el-button type=\"primary\" icon=\"el-icon-search\" size=\"mini\" @click=\"handleQuery\">搜索</el-button>\n                <el-button icon=\"el-icon-refresh\" size=\"mini\" @click=\"resetQuery\">重置</el-button>\n              </el-form-item>\n            </el-form>\n\n            <el-row :gutter=\"10\" class=\"mb8\">\n              <el-col :span=\"1.5\">\n                <el-button\n                  type=\"primary\"\n                  plain\n                  icon=\"el-icon-plus\"\n                  size=\"mini\"\n                  @click=\"handleAdd\"\n                  v-hasPermi=\"['school:cameras:add']\"\n                >新增\n                </el-button>\n              </el-col>\n              <el-col :span=\"1.5\">\n                <el-button\n                  type=\"success\"\n                  plain\n                  icon=\"el-icon-edit\"\n                  size=\"mini\"\n                  :disabled=\"single\"\n                  @click=\"handleUpdate\"\n                  v-hasPermi=\"['school:cameras:edit']\"\n                >修改\n                </el-button>\n              </el-col>\n              <el-col :span=\"1.5\">\n                <el-button\n                  type=\"danger\"\n                  plain\n                  icon=\"el-icon-delete\"\n                  size=\"mini\"\n                  :disabled=\"multiple\"\n                  @click=\"handleDelete\"\n                  v-hasPermi=\"['school:cameras:remove']\"\n                >删除\n                </el-button>\n              </el-col>\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                  v-hasPermi=\"['school:cameras:export']\"\n                >导出\n                </el-button>\n              </el-col>\n              <right-toolbar :showSearch.sync=\"showSearch\" @queryTable=\"getList\"></right-toolbar>\n            </el-row>\n\n            <el-table v-loading=\"loading\" :data=\"camerasList\" @selection-change=\"handleSelectionChange\">\n              <el-table-column type=\"selection\" width=\"55\" align=\"center\"/>\n              <el-table-column label=\"id\" align=\"center\" prop=\"id\">\n              </el-table-column>\n              <el-table-column label=\"名称\" align=\"center\" prop=\"name\">\n              </el-table-column>\n              <el-table-column label=\"ip\" align=\"center\" prop=\"ip\">\n              </el-table-column>\n              <el-table-column label=\"端口\" align=\"center\" prop=\"port\">\n              </el-table-column>\n              <el-table-column label=\"用户名\" align=\"center\" prop=\"username\">\n              </el-table-column>\n              <el-table-column label=\"密码\" align=\"center\" prop=\"password\">\n              </el-table-column>\n              <el-table-column label=\"光电类型\" align=\"center\" prop=\"gdtype\">\n                <template slot-scope=\"scope\">\n                  <dict-tag :options=\"dict.type.camera_type\" :value=\"scope.row.gdtype\"/>\n                </template>\n              </el-table-column>\n              <el-table-column label=\"通道号\" align=\"center\" prop=\"channel\">\n              </el-table-column>\n              <el-table-column label=\"水平角\" align=\"center\" prop=\"pan\">\n              </el-table-column>\n              <el-table-column label=\"俯仰角\" align=\"center\" prop=\"tilt\">\n              </el-table-column>\n              <el-table-column label=\"焦距\" align=\"center\" prop=\"zoom\">\n              </el-table-column>\n              <el-table-column label=\"经度\" align=\"center\" prop=\"longitude\">\n              </el-table-column>\n              <el-table-column label=\"纬度\" align=\"center\" prop=\"latitude\">\n              </el-table-column>\n              <el-table-column label=\"高度\" align=\"center\" prop=\"altitude\">\n              </el-table-column>\n              <el-table-column label=\"操作\" align=\"center\" class-name=\"small-padding fixed-width\">\n                <template slot-scope=\"scope\">\n                  <el-button\n                    size=\"mini\"\n                    type=\"text\"\n                    icon=\"el-icon-edit\"\n                    @click=\"handleUpdate(scope.row)\"\n                    v-hasPermi=\"['school:cameras:edit']\"\n                  >修改\n                  </el-button>\n                  <el-button\n                    size=\"mini\"\n                    type=\"text\"\n                    icon=\"el-icon-delete\"\n                    @click=\"handleDelete(scope.row)\"\n                    v-hasPermi=\"['school:cameras:remove']\"\n                  >删除\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          </el-col>\n        </el-row>\n      </div>\n      <!-- 添加或修改相机设备对话框 -->\n      <el-dialog :title=\"title\" :visible.sync=\"open\" width=\"500px\" append-to-body>\n        <el-form ref=\"form\" :model=\"form\" :rules=\"rules\" label-width=\"80px\">\n          <el-form-item label=\"名称\" prop=\"name\">\n            <el-input v-model=\"form.name\" placeholder=\"请输入名称\"/>\n          </el-form-item>\n          <el-form-item label=\"ip\" prop=\"ip\">\n            <el-input v-model=\"form.ip\" placeholder=\"请输入ip\"/>\n          </el-form-item>\n          <el-form-item label=\"端口\" prop=\"port\">\n            <el-input v-model=\"form.port\" placeholder=\"请输入port\"/>\n          </el-form-item>\n          <el-form-item label=\"用户名\" prop=\"username\">\n            <el-input v-model=\"form.username\" placeholder=\"请输入用户名\"/>\n          </el-form-item>\n          <el-form-item label=\"密码\" prop=\"password\">\n            <el-input v-model=\"form.password\" placeholder=\"请输入密码\"/>\n          </el-form-item>\n          <el-form-item label=\"经度\" prop=\"longitude\">\n            <el-input v-model=\"form.longitude\" placeholder=\"请输入经度\"/>\n          </el-form-item>\n          <el-form-item label=\"纬度\" prop=\"latitude\">\n            <el-input v-model=\"form.latitude\" placeholder=\"请输入纬度\"/>\n          </el-form-item>\n          <el-form-item label=\"高度\" prop=\"altitude\">\n            <el-input v-model=\"form.altitude\" placeholder=\"请输入高度\"/>\n          </el-form-item>\n          <el-form-item label=\"光电类型\" prop=\"gdtype\">\n            <el-select v-model=\"form.gdtype\" placeholder=\"请选择光电类型\">\n              <el-option\n                v-for=\"dict in dict.type.camera_type\"\n                :key=\"dict.value\"\n                :label=\"dict.label\"\n                :value=\"dict.value\"\n              ></el-option>\n            </el-select>\n          </el-form-item>\n        </el-form>\n        <div slot=\"footer\" class=\"dialog-footer\">\n          <el-button type=\"primary\" @click=\"submitForm\">确 定</el-button>\n          <el-button @click=\"cancel\">取 消</el-button>\n        </div>\n      </el-dialog>\n    </el-card>\n  </div>\n</template>\n\n<script>\nimport {listCameras, getCameras, delCameras, addCameras, updateCameras} from \"@/api/device/cameras\";\nimport { deptTreeSelect } from \"@/api/system/user\";\nimport Treeselect from \"@riophae/vue-treeselect\";\nimport \"@riophae/vue-treeselect/dist/vue-treeselect.css\";\nexport default {\n  name: \"Cameras\",\n  dicts: [\"camera_type\",\"Treeselect\"],\n  data() {\n    return {\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      camerasList: [],\n      // 弹出层标题\n      title: \"\",\n      // 是否显示弹出层\n      open: false,\n      // 查询参数\n      queryParams: {\n        pageNum: 1,\n        pageSize: 10,\n        name: null,\n        ip: null,\n        port: null,\n        username: null,\n        password: null,\n        gdtype: null,\n        channel: null,\n        pan: null,\n        tilt: null,\n        longitude: null,\n        latitude: null,\n        altitude: null\n      },\n      // 表单参数\n      form: {},\n      // 表单校验\n      rules: {},\n      // 部门树选项\n      deptOptions: undefined,\n      // 部门名称\n      deptName: undefined,\n    };\n  },\n  watch: {\n    // 根据名称筛选部门树\n    deptName(val) {\n      this.$refs.tree.filter(val);\n    }\n  },\n  created() {\n    this.getList();\n    this.getDeptTree();\n  },\n  methods: {\n    /** 查询相机设备列表 */\n    getList() {\n      this.loading = true;\n      listCameras(this.queryParams).then(response => {\n        this.camerasList = response.rows;\n        this.total = response.total;\n        this.loading = false;\n      });\n    },\n    // 取消按钮\n    cancel() {\n      this.open = false;\n      this.reset();\n    },\n    // 表单重置\n    reset() {\n      this.form = {\n        id: null,\n        name: null,\n        ip: null,\n        port: null,\n        username: null,\n        password: null,\n        gdtype: null,\n        channel: null,\n        pan: null,\n        tilt: null,\n        longitude: null,\n        latitude: null,\n        altitude: null\n      };\n      this.resetForm(\"form\");\n    },\n    /** 搜索按钮操作 */\n    handleQuery() {\n      this.queryParams.pageNum = 1;\n      this.getList();\n    },\n    /** 重置按钮操作 */\n    resetQuery() {\n      this.resetForm(\"queryForm\");\n      this.handleQuery();\n    },\n    // 多选框选中数据\n    handleSelectionChange(selection) {\n      this.ids = selection.map(item => item.id)\n      this.single = selection.length !== 1\n      this.multiple = !selection.length\n    },\n    /** 新增按钮操作 */\n    handleAdd() {\n      this.reset();\n      this.open = true;\n      this.title = \"添加相机设备\";\n    },\n    /** 修改按钮操作 */\n    handleUpdate(row) {\n      this.reset();\n      const id = row.id || this.ids\n      getCameras(id).then(response => {\n        this.form = response.data;\n        this.open = true;\n        this.title = \"修改相机设备\";\n      });\n    },\n    /** 提交按钮 */\n    submitForm() {\n      this.$refs[\"form\"].validate(valid => {\n        if (valid) {\n          if (this.form.id != null) {\n            updateCameras(this.form).then(response => {\n              this.$modal.msgSuccess(\"修改成功\");\n              this.open = false;\n              this.getList();\n            });\n          } else {\n            addCameras(this.form).then(response => {\n              this.$modal.msgSuccess(\"新增成功\");\n              this.open = false;\n              this.getList();\n            });\n          }\n        }\n      });\n    },\n    /** 删除按钮操作 */\n    handleDelete(row) {\n      const ids = row.id || this.ids;\n      this.$modal.confirm('是否确认删除相机设备编号为\"' + ids + '\"的数据项?').then(function () {\n        return delCameras(ids);\n      }).then(() => {\n        this.getList();\n        this.$modal.msgSuccess(\"删除成功\");\n      }).catch(() => {\n      });\n    },\n    /** 导出按钮操作 */\n    handleExport() {\n      this.download('school/cameras/export', {\n        ...this.queryParams\n      }, `cameras_${new Date().getTime()}.xlsx`)\n    },\n    /** 查询部门下拉树结构 */\n    getDeptTree() {\n      deptTreeSelect().then(response => {\n        console.log(response)\n        this.deptOptions = response.data;\n      });\n    },\n    // 筛选节点\n    filterNode(value, data) {\n      if (!value) return true;\n      return data.label.indexOf(value) !== -1;\n    },\n    // 节点单击事件\n    handleNodeClick(data) {\n      console.log(data)\n      this.queryParams.deptId = data.id;\n      this.handleQuery();\n    },\n  }\n};\n</script>\n"]}]}