21869670793b9739375aef15a6b89a5a.json 12 KB

1
  1. {"remainingRequest":"/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/operlog/index.vue?vue&type=script&lang=js&","dependencies":[{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/src/views/system/operlog/index.vue","mtime":1618041508000},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQpleHBvcnQgZGVmYXVsdCB7DQogIG5hbWU6ICJTeXNPcGVyUmVjb3JkIiwNCiAgZGF0YSgpIHsNCiAgICByZXR1cm4gew0KICAgICAgdGFibGU6IHt1cmw6ICcvYWN0aW9ubG9nL2luZGV4Jywgd2hlcmU6IHt9fSwgIC8vIOihqOagvOmFjee9rg0KICAgICAgc2hvd1ZpZXc6IGZhbHNlLCAgLy8g5piv5ZCm5pi+56S65p+l55yL5by556qXDQogICAgICB2aWV3Rm9ybToge30sICAvLyDooajljZXmlbDmja4NCiAgICAgIGRhdGVyYW5nZTogJycsICAvLyDnrZvpgInml6XmnJ/ojIPlm7QNCiAgICAgIHBpY2tlck9wdGlvbnM6IHsgIC8vIOaXpeacn+aXtumXtOmAieaLqeWZqOW/q+aNt+mhuQ0KICAgICAgICBzaG9ydGN1dHM6IFt7DQogICAgICAgICAgdGV4dDogJ+acgOi/keS4gOWRqCcsDQogICAgICAgICAgb25DbGljayhwaWNrZXIpIHsNCiAgICAgICAgICAgIGNvbnN0IGVuZCA9IG5ldyBEYXRlKCk7DQogICAgICAgICAgICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKCk7DQogICAgICAgICAgICBzdGFydC5zZXRUaW1lKHN0YXJ0LmdldFRpbWUoKSAtIDM2MDAgKiAxMDAwICogMjQgKiA3KTsNCiAgICAgICAgICAgIHBpY2tlci4kZW1pdCgncGljaycsIFtzdGFydCwgZW5kXSk7DQogICAgICAgICAgfQ0KICAgICAgICB9LCB7DQogICAgICAgICAgdGV4dDogJ+acgOi/keS4gOS4quaciCcsDQogICAgICAgICAgb25DbGljayhwaWNrZXIpIHsNCiAgICAgICAgICAgIGNvbnN0IGVuZCA9IG5ldyBEYXRlKCk7DQogICAgICAgICAgICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKCk7DQogICAgICAgICAgICBzdGFydC5zZXRUaW1lKHN0YXJ0LmdldFRpbWUoKSAtIDM2MDAgKiAxMDAwICogMjQgKiAzMCk7DQogICAgICAgICAgICBwaWNrZXIuJGVtaXQoJ3BpY2snLCBbc3RhcnQsIGVuZF0pOw0KICAgICAgICAgIH0NCiAgICAgICAgfSwgew0KICAgICAgICAgIHRleHQ6ICfmnIDov5HkuInkuKrmnIgnLA0KICAgICAgICAgIG9uQ2xpY2socGlja2VyKSB7DQogICAgICAgICAgICBjb25zdCBlbmQgPSBuZXcgRGF0ZSgpOw0KICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSgpOw0KICAgICAgICAgICAgc3RhcnQuc2V0VGltZShzdGFydC5nZXRUaW1lKCkgLSAzNjAwICogMTAwMCAqIDI0ICogOTApOw0KICAgICAgICAgICAgcGlja2VyLiRlbWl0KCdwaWNrJywgW3N0YXJ0LCBlbmRdKTsNCiAgICAgICAgICB9DQogICAgICAgIH1dDQogICAgICB9DQogICAgfQ0KICB9LA0KICBtZXRob2RzOiB7DQogICAgLyog6K+m5oOFICovDQogICAgdmlldyhyb3cpIHsNCiAgICAgIHRoaXMudmlld0Zvcm0gPSBPYmplY3QuYXNzaWduKHt9LCByb3cpOw0KICAgICAgdGhpcy5zaG93VmlldyA9IHRydWU7DQogICAgfSwNCiAgICAvKiDml6XmnJ/pgInmi6nmlLnlj5jlm57osIMgKi8NCiAgICBvbkRhdGVSYW5nZUNob29zZSgpIHsNCiAgICAgIGlmICh0aGlzLmRhdGVyYW5nZSkgew0KICAgICAgICB0aGlzLnRhYmxlLndoZXJlLmNyZWF0ZVRpbWVTdGFydCA9IHRoaXMuZGF0ZXJhbmdlWzBdOw0KICAgICAgICB0aGlzLnRhYmxlLndoZXJlLmNyZWF0ZVRpbWVFbmQgPSB0aGlzLmRhdGVyYW5nZVsxXTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHRoaXMudGFibGUud2hlcmUuY3JlYXRlVGltZVN0YXJ0ID0gbnVsbDsNCiAgICAgICAgdGhpcy50YWJsZS53aGVyZS5jcmVhdGVUaW1lRW5kID0gbnVsbDsNCiAgICAgIH0NCiAgICB9LA0KICAgIC8qIOWIt+aWsCAqLw0KICAgIHJlbG9hZCgpIHsNCiAgICAgIHRoaXMuZGF0ZXJhbmdlID0gbnVsbDsNCiAgICAgIHRoaXMudGFibGUud2hlcmUgPSB7fTsNCiAgICAgIHRoaXMuJHJlZnMudGFibGUucmVsb2FkKCk7DQogICAgfQ0KICB9DQp9DQo="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/views/system/operlog","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=\"reload\">重置</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=\"90px\" align=\"center\" :resizable=\"false\" fixed=\"right\">\r\n <template slot-scope=\"{row}\">\r\n <el-link @click=\"view(row)\" icon=\"el-icon-view\" type=\"primary\" :underline=\"false\">详情</el-link>\r\n </template>\r\n </el-table-column>\r\n </template>\r\n </ele-data-table>\r\n </el-card>\r\n <!-- 详情弹窗 -->\r\n <el-dialog title=\"详情\" :visible.sync=\"showView\" width=\"600px\" :destroy-on-close=\"true\" :lock-scroll=\"false\">\r\n <el-form label-width=\"82px\" size=\"mini\" class=\"ele-form-detail\">\r\n <el-row :gutter=\"15\">\r\n <el-col :sm=\"12\">\r\n <el-form-item label=\"操作账号:\" prop=\"username\">\r\n <div class=\"ele-text-secondary\">{{ viewForm.username }}</div>\r\n </el-form-item>\r\n <el-form-item label=\"请求方式:\" prop=\"method\">\r\n <div class=\"ele-text-secondary\">{{ viewForm.method }}</div>\r\n </el-form-item>\r\n <el-form-item label=\"操作方法:\" prop=\"action\">\r\n <div class=\"ele-text-secondary\">{{ viewForm.action }}</div>\r\n </el-form-item>\r\n <el-form-item label=\"操作类型:\" prop=\"type\">\r\n <el-tag :type=\"['', 'success'][viewForm.type]\" size=\"mini\">\r\n {{ ['登录系统', '注销系统'][viewForm.type] }}\r\n </el-tag>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :sm=\"12\">\r\n <el-form-item label=\"日志标题:\" prop=\"title\">\r\n <div class=\"ele-text-secondary\">{{ viewForm.title }}</div>\r\n </el-form-item>\r\n <el-form-item label=\"操作模块:\" prop=\"module\">\r\n <div class=\"ele-text-secondary\">{{ viewForm.module }}</div>\r\n </el-form-item>\r\n <el-form-item label=\"操作IP:\" prop=\"ip\">\r\n <div class=\"ele-text-secondary\">{{ viewForm.ip }}</div>\r\n </el-form-item>\r\n <el-form-item label=\"操作时间:\" prop=\"create_time\">\r\n <div class=\"ele-text-secondary\">{{ viewForm.create_time | toDateString }}</div>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <div style=\"margin: 12px 0;\">\r\n <el-divider/>\r\n </div>\r\n <el-form-item label=\"操作URL:\" prop=\"url\">\r\n <div class=\"ele-text-secondary\">{{ viewForm.url }}</div>\r\n </el-form-item>\r\n <el-form-item label=\"请求参数:\" prop=\"operParam\">\r\n <div class=\"ele-text-secondary\">{{ viewForm.param }}</div>\r\n </el-form-item>\r\n </el-form>\r\n <div slot=\"footer\">\r\n <el-button @click=\"showView=false\">关闭</el-button>\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: \"SysOperRecord\",\r\n data() {\r\n return {\r\n table: {url: '/actionlog/index', where: {}}, // 表格配置\r\n showView: false, // 是否显示查看弹窗\r\n viewForm: {}, // 表单数据\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 methods: {\r\n /* 详情 */\r\n view(row) {\r\n this.viewForm = Object.assign({}, row);\r\n this.showView = true;\r\n },\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 reload() {\r\n this.daterange = null;\r\n this.table.where = {};\r\n this.$refs.table.reload();\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>"]}]}