| 1 |
- {"remainingRequest":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/babel-loader/lib/index.js!/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/src/views/system/loginlog/index.vue?vue&type=script&lang=js&","dependencies":[{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/src/views/system/loginlog/index.vue","mtime":1618041492000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/babel-loader/lib/index.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZm9yLWVhY2giOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoIjsKaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiL3Vzci9sb2NhbC9kZXZlbG9wL3BocC93d3cvd2FpYmFvL3Byb2plY3QvTk4yMDIwMDYwODAxL2FkZG9ucy9hZG1pbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMiI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCmltcG9ydCBYTFNYIGZyb20gJ3hsc3gnOwppbXBvcnQgeyBtYXBHZXR0ZXJzIH0gZnJvbSAidnVleCI7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiU3lzTG9naW5SZWNvcmQiLAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICB0YWJsZTogewogICAgICAgIHVybDogJy9sb2dpbmxvZy9pbmRleCcsCiAgICAgICAgd2hlcmU6IHt9CiAgICAgIH0sCiAgICAgIC8vIOihqOagvOmFjee9rgogICAgICBkYXRlcmFuZ2U6ICcnLAogICAgICAvLyDnrZvpgInml6XmnJ/ojIPlm7QKICAgICAgcGlja2VyT3B0aW9uczogewogICAgICAgIC8vIOaXpeacn+aXtumXtOmAieaLqeWZqOW/q+aNt+mhuQogICAgICAgIHNob3J0Y3V0czogW3sKICAgICAgICAgIHRleHQ6ICfmnIDov5HkuIDlkagnLAogICAgICAgICAgb25DbGljazogZnVuY3Rpb24gb25DbGljayhwaWNrZXIpIHsKICAgICAgICAgICAgdmFyIGVuZCA9IG5ldyBEYXRlKCk7CiAgICAgICAgICAgIHZhciBzdGFydCA9IG5ldyBEYXRlKCk7CiAgICAgICAgICAgIHN0YXJ0LnNldFRpbWUoc3RhcnQuZ2V0VGltZSgpIC0gMzYwMCAqIDEwMDAgKiAyNCAqIDcpOwogICAgICAgICAgICBwaWNrZXIuJGVtaXQoJ3BpY2snLCBbc3RhcnQsIGVuZF0pOwogICAgICAgICAgfQogICAgICAgIH0sIHsKICAgICAgICAgIHRleHQ6ICfmnIDov5HkuIDkuKrmnIgnLAogICAgICAgICAgb25DbGljazogZnVuY3Rpb24gb25DbGljayhwaWNrZXIpIHsKICAgICAgICAgICAgdmFyIGVuZCA9IG5ldyBEYXRlKCk7CiAgICAgICAgICAgIHZhciBzdGFydCA9IG5ldyBEYXRlKCk7CiAgICAgICAgICAgIHN0YXJ0LnNldFRpbWUoc3RhcnQuZ2V0VGltZSgpIC0gMzYwMCAqIDEwMDAgKiAyNCAqIDMwKTsKICAgICAgICAgICAgcGlja2VyLiRlbWl0KCdwaWNrJywgW3N0YXJ0LCBlbmRdKTsKICAgICAgICAgIH0KICAgICAgICB9LCB7CiAgICAgICAgICB0ZXh0OiAn5pyA6L+R5LiJ5Liq5pyIJywKICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2socGlja2VyKSB7CiAgICAgICAgICAgIHZhciBlbmQgPSBuZXcgRGF0ZSgpOwogICAgICAgICAgICB2YXIgc3RhcnQgPSBuZXcgRGF0ZSgpOwogICAgICAgICAgICBzdGFydC5zZXRUaW1lKHN0YXJ0LmdldFRpbWUoKSAtIDM2MDAgKiAxMDAwICogMjQgKiA5MCk7CiAgICAgICAgICAgIHBpY2tlci4kZW1pdCgncGljaycsIFtzdGFydCwgZW5kXSk7CiAgICAgICAgICB9CiAgICAgICAgfV0KICAgICAgfQogICAgfTsKICB9LAogIGNvbXB1dGVkOiBfb2JqZWN0U3ByZWFkKHt9LCBtYXBHZXR0ZXJzKFsicGVybWlzc2lvbiJdKSksCiAgbWV0aG9kczogewogICAgLyog5pel5pyf6YCJ5oup5pS55Y+Y5Zue6LCDICovCiAgICBvbkRhdGVSYW5nZUNob29zZTogZnVuY3Rpb24gb25EYXRlUmFuZ2VDaG9vc2UoKSB7CiAgICAgIGlmICh0aGlzLmRhdGVyYW5nZSkgewogICAgICAgIHRoaXMudGFibGUud2hlcmUuY3JlYXRlVGltZVN0YXJ0ID0gdGhpcy5kYXRlcmFuZ2VbMF07CiAgICAgICAgdGhpcy50YWJsZS53aGVyZS5jcmVhdGVUaW1lRW5kID0gdGhpcy5kYXRlcmFuZ2VbMV07CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy50YWJsZS53aGVyZS5jcmVhdGVUaW1lU3RhcnQgPSBudWxsOwogICAgICAgIHRoaXMudGFibGUud2hlcmUuY3JlYXRlVGltZUVuZCA9IG51bGw7CiAgICAgIH0KICAgIH0sCgogICAgLyog5a+85Ye65pWw5o2uICovCiAgICBleHBvcnREYXRhOiBmdW5jdGlvbiBleHBvcnREYXRhKCkgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwoKICAgICAgdmFyIGFycmF5ID0gW1sn5pel5b+X5qCH6aKYJywgJ+eZu+W9lei0puWPtycsICfor7fmsYLmlrnlvI8nLCAn5pON5L2c5qih5Z2XJywgJ+aTjeS9nOaWueazlScsICfmk43kvZxVUkwnLCAn6K+35rGC5Y+C5pWwJywgJ+aTjeS9nElQJywgJ+aTjeS9nOexu+WeiycsICfnmbvlvZXml7bpl7QnXV07IC8vIOivt+axguafpeivouWFqOmDqCjkuI3liIbpobUp55qE5o6l5Y+jCgogICAgICB2YXIgbG9hZGluZyA9IHRoaXMuJGxvYWRpbmcoewogICAgICAgIGxvY2s6IHRydWUKICAgICAgfSk7CiAgICAgIHRoaXMuJGh0dHAuZ2V0KCcvbG9naW5sb2cvaW5kZXg/cGFnZT0xJmxpbWl0PTIwMDAnKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBsb2FkaW5nLmNsb3NlKCk7CgogICAgICAgIGlmIChyZXMuZGF0YS5jb2RlID09PSAwKSB7CiAgICAgICAgICByZXMuZGF0YS5kYXRhLmZvckVhY2goZnVuY3Rpb24gKGQpIHsKICAgICAgICAgICAgYXJyYXkucHVzaChbZC50aXRsZSwgZC51c2VybmFtZSwgZC5tZXRob2QsIGQubW9kdWxlLCBkLmFjdGlvbiwgZC51cmwsIGQucGFyYW0sIGQuaXAsIFsn55m75b2V57O757ufJywgJ+azqOmUgOezu+e7nyddW2QudHlwZV0sIF90aGlzLiR1dGlsLnRvRGF0ZVN0cmluZyhkLmNyZWF0ZV90aW1lKV0pOwogICAgICAgICAgfSk7CiAgICAgICAgICB2YXIgc2hlZXQgPSBYTFNYLnV0aWxzLmFvYV90b19zaGVldChhcnJheSk7CgogICAgICAgICAgX3RoaXMuJHV0aWwuZXhwb3J0U2hlZXQoWExTWCwgc2hlZXQsICfnmbvlvZXml6Xlv5cnKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXMuJG1lc3NhZ2UuZXJyb3IocmVzLmRhdGEubXNnKTsKICAgICAgICB9CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKSB7CiAgICAgICAgbG9hZGluZy5jbG9zZSgpOwoKICAgICAgICBfdGhpcy4kbWVzc2FnZS5lcnJvcihlLm1lc3NhZ2UpOwogICAgICB9KTsKICAgIH0sCgogICAgLyog5Yig6ZmkICovCiAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZShyb3cpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CgogICAgICB2YXIgbG9hZGluZyA9IHRoaXMuJGxvYWRpbmcoewogICAgICAgIGxvY2s6IHRydWUKICAgICAgfSk7CiAgICAgIHRoaXMuJGh0dHAucG9zdCgnL2xvZ2lubG9nL2RlbGV0ZScsIHsKICAgICAgICBpZDogcm93LmlkCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIGxvYWRpbmcuY2xvc2UoKTsKCiAgICAgICAgaWYgKHJlcy5kYXRhLmNvZGUgPT09IDApIHsKICAgICAgICAgIF90aGlzMi4kbWVzc2FnZSh7CiAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJywKICAgICAgICAgICAgbWVzc2FnZTogcmVzLmRhdGEubXNnCiAgICAgICAgICB9KTsKCiAgICAgICAgICBfdGhpczIuJHJlZnMudGFibGUucmVsb2FkKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF90aGlzMi4kbWVzc2FnZS5lcnJvcihyZXMuZGF0YS5tc2cpOwogICAgICAgIH0KICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGUpIHsKICAgICAgICBsb2FkaW5nLmNsb3NlKCk7CgogICAgICAgIF90aGlzMi4kbWVzc2FnZS5lcnJvcihlLm1lc3NhZ2UpOwogICAgICB9KTsKICAgIH0KICB9Cn07"},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,OAAA,IAAA,MAAA,MAAA;AACA,SAAA,UAAA,QAAA,MAAA;AACA,eAAA;AACA,EAAA,IAAA,EAAA,gBADA;AAEA,EAAA,IAFA,kBAEA;AACA,WAAA;AACA,MAAA,KAAA,EAAA;AAAA,QAAA,GAAA,EAAA,iBAAA;AAAA,QAAA,KAAA,EAAA;AAAA,OADA;AACA;AACA,MAAA,SAAA,EAAA,EAFA;AAEA;AACA,MAAA,aAAA,EAAA;AAAA;AACA,QAAA,SAAA,EAAA,CAAA;AACA,UAAA,IAAA,EAAA,MADA;AAEA,UAAA,OAFA,mBAEA,MAFA,EAEA;AACA,gBAAA,GAAA,GAAA,IAAA,IAAA,EAAA;AACA,gBAAA,KAAA,GAAA,IAAA,IAAA,EAAA;AACA,YAAA,KAAA,CAAA,OAAA,CAAA,KAAA,CAAA,OAAA,KAAA,OAAA,IAAA,GAAA,EAAA,GAAA,CAAA;AACA,YAAA,MAAA,CAAA,KAAA,CAAA,MAAA,EAAA,CAAA,KAAA,EAAA,GAAA,CAAA;AACA;AAPA,SAAA,EAQA;AACA,UAAA,IAAA,EAAA,OADA;AAEA,UAAA,OAFA,mBAEA,MAFA,EAEA;AACA,gBAAA,GAAA,GAAA,IAAA,IAAA,EAAA;AACA,gBAAA,KAAA,GAAA,IAAA,IAAA,EAAA;AACA,YAAA,KAAA,CAAA,OAAA,CAAA,KAAA,CAAA,OAAA,KAAA,OAAA,IAAA,GAAA,EAAA,GAAA,EAAA;AACA,YAAA,MAAA,CAAA,KAAA,CAAA,MAAA,EAAA,CAAA,KAAA,EAAA,GAAA,CAAA;AACA;AAPA,SARA,EAgBA;AACA,UAAA,IAAA,EAAA,OADA;AAEA,UAAA,OAFA,mBAEA,MAFA,EAEA;AACA,gBAAA,GAAA,GAAA,IAAA,IAAA,EAAA;AACA,gBAAA,KAAA,GAAA,IAAA,IAAA,EAAA;AACA,YAAA,KAAA,CAAA,OAAA,CAAA,KAAA,CAAA,OAAA,KAAA,OAAA,IAAA,GAAA,EAAA,GAAA,EAAA;AACA,YAAA,MAAA,CAAA,KAAA,CAAA,MAAA,EAAA,CAAA,KAAA,EAAA,GAAA,CAAA;AACA;AAPA,SAhBA;AADA;AAHA,KAAA;AA+BA,GAlCA;AAmCA,EAAA,QAAA,oBACA,UAAA,CAAA,CAAA,YAAA,CAAA,CADA,CAnCA;AAsCA,EAAA,OAAA,EAAA;AACA;AACA,IAAA,iBAFA,+BAEA;AACA,UAAA,KAAA,SAAA,EAAA;AACA,aAAA,KAAA,CAAA,KAAA,CAAA,eAAA,GAAA,KAAA,SAAA,CAAA,CAAA,CAAA;AACA,aAAA,KAAA,CAAA,KAAA,CAAA,aAAA,GAAA,KAAA,SAAA,CAAA,CAAA,CAAA;AACA,OAHA,MAGA;AACA,aAAA,KAAA,CAAA,KAAA,CAAA,eAAA,GAAA,IAAA;AACA,aAAA,KAAA,CAAA,KAAA,CAAA,aAAA,GAAA,IAAA;AACA;AACA,KAVA;;AAWA;AACA,IAAA,UAZA,wBAYA;AAAA;;AACA,UAAA,KAAA,GAAA,CAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA,CADA,CAEA;;AACA,UAAA,OAAA,GAAA,KAAA,QAAA,CAAA;AAAA,QAAA,IAAA,EAAA;AAAA,OAAA,CAAA;AACA,WAAA,KAAA,CAAA,GAAA,CAAA,mCAAA,EAAA,IAAA,CAAA,UAAA,GAAA,EAAA;AACA,QAAA,OAAA,CAAA,KAAA;;AACA,YAAA,GAAA,CAAA,IAAA,CAAA,IAAA,KAAA,CAAA,EAAA;AACA,UAAA,GAAA,CAAA,IAAA,CAAA,IAAA,CAAA,OAAA,CAAA,UAAA,CAAA,EAAA;AACA,YAAA,KAAA,CAAA,IAAA,CAAA,CACA,CAAA,CAAA,KADA,EACA,CAAA,CAAA,QADA,EACA,CAAA,CAAA,MADA,EAEA,CAAA,CAAA,MAFA,EAEA,CAAA,CAAA,MAFA,EAEA,CAAA,CAAA,GAFA,EAEA,CAAA,CAAA,KAFA,EAEA,CAAA,CAAA,EAFA,EAGA,CAAA,MAAA,EAAA,MAAA,EAAA,CAAA,CAAA,IAAA,CAHA,EAIA,KAAA,CAAA,KAAA,CAAA,YAAA,CAAA,CAAA,CAAA,WAAA,CAJA,CAAA;AAMA,WAPA;AAQA,cAAA,KAAA,GAAA,IAAA,CAAA,KAAA,CAAA,YAAA,CAAA,KAAA,CAAA;;AACA,UAAA,KAAA,CAAA,KAAA,CAAA,WAAA,CAAA,IAAA,EAAA,KAAA,EAAA,MAAA;AACA,SAXA,MAWA;AACA,UAAA,KAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,CAAA,IAAA,CAAA,GAAA;AACA;AACA,OAhBA,EAgBA,KAhBA,CAgBA,UAAA,CAAA,EAAA;AACA,QAAA,OAAA,CAAA,KAAA;;AACA,QAAA,KAAA,CAAA,QAAA,CAAA,KAAA,CAAA,CAAA,CAAA,OAAA;AACA,OAnBA;AAoBA,KApCA;;AAqCA;AACA,IAAA,MAtCA,kBAsCA,GAtCA,EAsCA;AAAA;;AACA,UAAA,OAAA,GAAA,KAAA,QAAA,CAAA;AAAA,QAAA,IAAA,EAAA;AAAA,OAAA,CAAA;AACA,WAAA,KAAA,CAAA,IAAA,CAAA,kBAAA,EAAA;AAAA,QAAA,EAAA,EAAA,GAAA,CAAA;AAAA,OAAA,EAAA,IAAA,CAAA,UAAA,GAAA,EAAA;AACA,QAAA,OAAA,CAAA,KAAA;;AACA,YAAA,GAAA,CAAA,IAAA,CAAA,IAAA,KAAA,CAAA,EAAA;AACA,UAAA,MAAA,CAAA,QAAA,CAAA;AAAA,YAAA,IAAA,EAAA,SAAA;AAAA,YAAA,OAAA,EAAA,GAAA,CAAA,IAAA,CAAA;AAAA,WAAA;;AACA,UAAA,MAAA,CAAA,KAAA,CAAA,KAAA,CAAA,MAAA;AACA,SAHA,MAGA;AACA,UAAA,MAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,CAAA,IAAA,CAAA,GAAA;AACA;AACA,OARA,EAQA,KARA,CAQA,UAAA,CAAA,EAAA;AACA,QAAA,OAAA,CAAA,KAAA;;AACA,QAAA,MAAA,CAAA,QAAA,CAAA,KAAA,CAAA,CAAA,CAAA,OAAA;AACA,OAXA;AAYA;AApDA;AAtCA,CAAA","sourcesContent":["<template>\r\n <div class=\"ele-body\">\r\n <el-card shadow=\"never\">\r\n <!-- 搜索表单 -->\r\n <el-form :model=\"table.where\" label-width=\"77px\" class=\"ele-form-search\"\r\n @keyup.enter.native=\"$refs.table.reload()\" @submit.native.prevent>\r\n <el-row :gutter=\"15\">\r\n <el-col :md=\"6\" :sm=\"12\">\r\n <el-form-item label=\"用户账号:\">\r\n <el-input v-model=\"table.where.username\" placeholder=\"请输入用户账号\" clearable/>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :md=\"6\" :sm=\"12\">\r\n <div class=\"ele-form-actions\">\r\n <el-button type=\"primary\" @click=\"$refs.table.reload()\" icon=\"el-icon-search\" class=\"ele-btn-icon\">查询\r\n </el-button>\r\n <el-button @click=\"exportData\" icon=\"el-icon-download\" type=\"success\" class=\"ele-btn-icon\" v-if=\"permission.includes('sys:loginlog:export')\">导出日志</el-button>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <!-- 数据表格 -->\r\n <ele-data-table ref=\"table\" :config=\"table\" height=\"calc(100vh - 260px)\" highlight-current-row>\r\n <template slot-scope=\"{index}\">\r\n <el-table-column type=\"index\" :index=\"index\" label=\"编号\" width=\"60\" align=\"center\" fixed=\"left\" show-overflow-tooltip/>\r\n <el-table-column prop=\"title\" label=\"日志标题\" align=\"center\" show-overflow-tooltip min-width=\"100\"/>\r\n <el-table-column prop=\"username\" label=\"登录账号\" align=\"center\" show-overflow-tooltip min-width=\"100\"/>\r\n <el-table-column prop=\"method\" label=\"请求方式\" align=\"center\" show-overflow-tooltip min-width=\"100\"/>\r\n <el-table-column prop=\"module\" label=\"操作模块\" align=\"center\" show-overflow-tooltip min-width=\"100\"/>\r\n <el-table-column prop=\"action\" label=\"操作方法\" align=\"center\" show-overflow-tooltip min-width=\"150\"/>\r\n <el-table-column prop=\"url\" label=\"操作URL\" align=\"center\" show-overflow-tooltip min-width=\"200\"/>\r\n <el-table-column prop=\"param\" label=\"请求参数\" align=\"center\" show-overflow-tooltip min-width=\"200\"/>\r\n <el-table-column prop=\"ip\" label=\"操作IP\" align=\"center\" show-overflow-tooltip min-width=\"130\"/>\r\n <el-table-column prop=\"type\" label=\"操作类型\" align=\"center\" min-width=\"110\" show-overflow-tooltip>\r\n <template slot-scope=\"{row}\">\r\n <ele-dot :type=\"['', 'success', 'warning'][row.type-1]\" :ripple=\"row.type===0\"\r\n :text=\"['登录系统','注销系统', '操作日志'][row.type-1]\"/>\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"create_time\" label=\"操作时间\" align=\"center\" min-width=\"160\" show-overflow-tooltip>\r\n <template slot-scope=\"{row}\">{{ row.create_time | toDateString }}</template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" width=\"100px\" align=\"center\" :resizable=\"false\" fixed=\"right\">\r\n <template slot-scope=\"{row}\">\r\n <el-popconfirm title=\"确定要删除此登录日志吗?\" @confirm=\"remove(row)\" class=\"ele-action\">\r\n <el-link slot=\"reference\" icon=\"el-icon-delete\" type=\"danger\" :underline=\"false\" v-if=\"permission.includes('sys:loginlog:delete')\">删除</el-link>\r\n </el-popconfirm>\r\n </template>\r\n </el-table-column>\r\n </template>\r\n </ele-data-table>\r\n </el-card>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport XLSX from 'xlsx'\r\nimport { mapGetters } from \"vuex\";\r\nexport default {\r\n name: \"SysLoginRecord\",\r\n data() {\r\n return {\r\n table: {url: '/loginlog/index', where: {}}, // 表格配置\r\n daterange: '', // 筛选日期范围\r\n pickerOptions: { // 日期时间选择器快捷项\r\n shortcuts: [{\r\n text: '最近一周',\r\n onClick(picker) {\r\n const end = new Date();\r\n const start = new Date();\r\n start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);\r\n picker.$emit('pick', [start, end]);\r\n }\r\n }, {\r\n text: '最近一个月',\r\n onClick(picker) {\r\n const end = new Date();\r\n const start = new Date();\r\n start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);\r\n picker.$emit('pick', [start, end]);\r\n }\r\n }, {\r\n text: '最近三个月',\r\n onClick(picker) {\r\n const end = new Date();\r\n const start = new Date();\r\n start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);\r\n picker.$emit('pick', [start, end]);\r\n }\r\n }]\r\n }\r\n }\r\n },\r\n computed: {\r\n ...mapGetters([\"permission\"]),\r\n },\r\n methods: {\r\n /* 日期选择改变回调 */\r\n onDateRangeChoose() {\r\n if (this.daterange) {\r\n this.table.where.createTimeStart = this.daterange[0];\r\n this.table.where.createTimeEnd = this.daterange[1];\r\n } else {\r\n this.table.where.createTimeStart = null;\r\n this.table.where.createTimeEnd = null;\r\n }\r\n },\r\n /* 导出数据 */\r\n exportData() {\r\n let array = [['日志标题','登录账号', '请求方式', '操作模块', '操作方法', '操作URL', '请求参数', '操作IP', '操作类型', '登录时间']];\r\n // 请求查询全部(不分页)的接口\r\n const loading = this.$loading({lock: true});\r\n this.$http.get('/loginlog/index?page=1&limit=2000').then(res => {\r\n loading.close();\r\n if (res.data.code === 0) {\r\n res.data.data.forEach(d => {\r\n array.push([\r\n d.title, d.username, d.method,\r\n d.module, d.action, d.url,d.param,d.ip,\r\n ['登录系统', '注销系统'][d.type],\r\n this.$util.toDateString(d.create_time)\r\n ]);\r\n });\r\n let sheet = XLSX.utils.aoa_to_sheet(array);\r\n this.$util.exportSheet(XLSX, sheet, '登录日志');\r\n } else {\r\n this.$message.error(res.data.msg);\r\n }\r\n }).catch(e => {\r\n loading.close();\r\n this.$message.error(e.message);\r\n });\r\n },\r\n /* 删除 */\r\n remove(row) {\r\n const loading = this.$loading({lock: true});\r\n this.$http.post('/loginlog/delete', {id:row.id}).then(res => {\r\n loading.close();\r\n if (res.data.code === 0) {\r\n this.$message({type: 'success', message: res.data.msg});\r\n this.$refs.table.reload();\r\n } else {\r\n this.$message.error(res.data.msg);\r\n }\r\n }).catch(e => {\r\n loading.close();\r\n this.$message.error(e.message);\r\n });\r\n },\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>"],"sourceRoot":"src/views/system/loginlog"}]}
|