f08f88e01127c53edc6a0aa66fefdd72.json 26 KB

1
  1. {"remainingRequest":"D:\\test\\ssi-satoken\\ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\test\\ssi-satoken\\ui\\src\\views\\sysManager\\ipBlacklist\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\test\\ssi-satoken\\ui\\src\\views\\sysManager\\ipBlacklist\\index.vue","mtime":1696909835000},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1697005520931},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\babel-loader\\lib\\index.js","mtime":1697005523218},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1697005520931},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\vue-loader\\lib\\index.js","mtime":1697005524089}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQge2RlYm91bmNlfSBmcm9tICdsb2Rhc2gnDQoNCmV4cG9ydCBkZWZhdWx0IHsNCiAgbmFtZTogImlwQmxhY2tsaXN0IiwNCiAgZGF0YSgpIHsNCiAgICByZXR1cm4gew0KICAgICAgaXNTaG93OmZhbHNlLA0KICAgICAgLy8g6YGu572p5bGCDQogICAgICBsb2FkaW5nOiB0cnVlLA0KICAgICAgc2hvd1RhYmxlOiB0cnVlLA0KICAgICAgLy8g6YCJ5Lit5pWw57uEDQogICAgICBpZHM6IFtdLA0KICAgICAgLy8g6Z2e5Y2V5Liq56aB55SoDQogICAgICBzaW5nbGU6IHRydWUsDQogICAgICAvLyDpnZ7lpJrkuKrnpoHnlKgNCiAgICAgIG11bHRpcGxlOiB0cnVlLA0KICAgICAgY3VycmVudFBhZ2U6IDEsDQogICAgICBwYWdlU2l6ZTogMTAsDQogICAgICAvLyDmgLvmnaHmlbANCiAgICAgIHRvdGFsOiAwLA0KICAgICAgLy8g55So5oi36KGo5qC85pWw5o2uDQogICAgICB1c2VyTGlzdDogbnVsbCwNCiAgICAgIC8vIOW8ueWHuuWxguagh+mimA0KICAgICAgdGl0bGU6ICJJUOm7keWQjeWNlSIsDQogICAgICAvLyDmmK/lkKbmmL7npLrlvLnlh7rlsYINCiAgICAgIG9wZW46IGZhbHNlLA0KICAgICAgLy8g6buY6K6k5a+G56CBDQogICAgICBpbml0UGFzc3dvcmQ6IHVuZGVmaW5lZCwNCiAgICAgIC8vIOinkuiJsumAiemhuQ0KICAgICAgcm9sZU9wdGlvbnM6IFtdLA0KICAgICAgLy8g6KGo5Y2V5Y+C5pWwDQogICAgICBmb3JtOiB7DQogICAgICAgIHR5cGU6ICIwIiwNCiAgICAgIH0sDQogICAgICAvLyDmn6Xor6Llj4LmlbANCiAgICAgIHF1ZXJ5UGFyYW1zOiB7DQogICAgICAgIGlwOiB1bmRlZmluZWQNCiAgICAgIH0sDQogICAgICB0eXBlT3B0aW9uczogWw0KICAgICAgICB7dmFsdWU6ICcwJywgbGFiZWw6ICfmsLjkuYUnfSwNCiAgICAgICAge3ZhbHVlOiAnMScsIGxhYmVsOiAn5pe26Ze06IyD5Zu0J30NCiAgICAgIF0sDQogICAgICAvLyDooajljZXmoKHpqowNCiAgICAgIHJ1bGVzOiB7DQogICAgICAgIGlwOiBbDQogICAgICAgICAge3JlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAiaXDkuI3og73kuLrnqboiLCB0cmlnZ2VyOiAiYmx1ciJ9LA0KICAgICAgICAgIHtwYXR0ZXJuOiAvWzAtOV17MSwzfVwuWzAtOV17MSwzfVwuWzAtOV17MSwzfVwuWzAtOV17MSwzfSQvLCBtZXNzYWdlOiAi6K+36L6T5YWl5q2j56Gu55qESVAiLCB0cmlnZ2VyOiAiYmx1ciJ9DQogICAgICAgIF0NCiAgICAgIH0NCiAgICB9Ow0KICB9LA0KICB3YXRjaDoge30sDQogIGNyZWF0ZWQoKSB7DQogICAgdGhpcy5nZXRMaXN0KCkNCiAgfSwNCiAgbWV0aG9kczogew0KICAgIGNoYW5nZVR5cGUodmFsKXsNCiAgICAgIGlmICh2YWw9PSIwIil7DQogICAgICAgIHRoaXMuaXNTaG93ID0gZmFsc2U7DQogICAgICB9DQogICAgICBlbHNlew0KICAgICAgICB0aGlzLmlzU2hvdyA9IHRydWU7DQogICAgICB9DQogICAgfSwNCiAgICAvKiog5o+Q5Lqk5oyJ6ZKuICovDQogICAgc3VibWl0Rm9ybTogZGVib3VuY2UoZnVuY3Rpb24gKCkgew0KICAgICAgdGhpcy4kcmVmc1siZm9ybSJdLnZhbGlkYXRlKGFzeW5jIHZhbGlkID0+IHsNCiAgICAgICAgaWYgKHZhbGlkKSB7DQogICAgICAgICAgaWYgKHRoaXMuZm9ybS50eXBlPT0iMSIpew0KICAgICAgICAgICAgaWYgKHRoaXMuZm9ybS5saW1pdFRpbWU9PXVuZGVmaW5lZCl7DQogICAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoew0KICAgICAgICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJywNCiAgICAgICAgICAgICAgICBtZXNzYWdlOiAn6K+35b2V5YWl6ZmQ5Yi25pe26Ze0IScNCiAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgIHJldHVybg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZXsNCiAgICAgICAgICAgICAgdGhpcy5mb3JtLmxpbWl0U3RhcnRUaW1lID0gdGhpcy5mb3JtLmxpbWl0VGltZVswXQ0KICAgICAgICAgICAgICB0aGlzLmZvcm0ubGltaXRFbmRUaW1lID0gdGhpcy5mb3JtLmxpbWl0VGltZVsxXQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCg0KICAgICAgICAgIGxldCBzeXNUaW1lDQogICAgICAgICAgbGV0IGxrDQogICAgICAgICAgYXdhaXQgdGhpcy4kYXhpb3MuZ2V0KCcvc3lzUG9saWN5Q29udHJvbGxlci9nZXRMaWNlbnNlS2V5JykudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgICBzeXNUaW1lID0gcmVzLmRhdGEuc3lzVGltZQ0KICAgICAgICAgICAgbGsgPSByZXMuZGF0YS5saw0KICAgICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4gew0KICAgICAgICAgIH0pDQoNCiAgICAgICAgICB0aGlzLmZvcm0uc3lzVGltZSA9IHN5c1RpbWUNCiAgICAgICAgICB0aGlzLmZvcm0ubGsgPSBsaw0KDQogICAgICAgICAgYXdhaXQgdGhpcy4kYXhpb3MucG9zdCgnL2lwQmxhY2tsaXN0Q29udHJvbGxlci9hZGRJcCcsIHRoaXMuZm9ybSkudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgICBpZiAocmVzLmNvZGUgPT0gMCkgew0KICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsNCiAgICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsDQogICAgICAgICAgICAgICAgbWVzc2FnZTogJ+a3u+WKoOaIkOWKnyEnDQogICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTsNCiAgICAgICAgICAgICAgdGhpcy5nZXRMaXN0KCk7DQogICAgICAgICAgICAgIHRoaXMucmVzZXQoKTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoew0KICAgICAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsDQogICAgICAgICAgICAgICAgbWVzc2FnZTogcmVzLmRhdGENCiAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7DQogICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsNCiAgICAgICAgICAgICAgdHlwZTogJ2Vycm9yJywNCiAgICAgICAgICAgICAgbWVzc2FnZTogJ+a3u+WKoOWksei0pSEnDQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlDQogICAgICAgICAgfSkNCiAgICAgICAgfQ0KICAgICAgfSk7DQogICAgfSwgMTAwMCksDQogICAgLy8g6KGo5Y2V6YeN572uDQogICAgcmVzZXQoKSB7DQogICAgICB0aGlzLmZvcm0gPSB7DQogICAgICAgIGlwOiB1bmRlZmluZWQsDQogICAgICAgIHR5cGU6ICIwIiwNCiAgICAgICAgbGltaXRUaW1lOiB1bmRlZmluZWQsDQogICAgICAgIGxpbWl0U3RhcnRUaW1lOiB1bmRlZmluZWQsDQogICAgICAgIGxpbWl0RW5kVGltZTogdW5kZWZpbmVkLA0KICAgICAgICBzeXNUaW1lOiB1bmRlZmluZWQsDQogICAgICAgIGxrOiB1bmRlZmluZWQNCiAgICAgIH07DQogICAgICB0aGlzLmlzU2hvdyA9IGZhbHNlOw0KICAgIH0sDQogICAgLy8g5Y+W5raI5oyJ6ZKuDQogICAgY2FuY2VsKCkgew0KICAgICAgdGhpcy5vcGVuID0gZmFsc2U7DQogICAgICB0aGlzLnJlc2V0KCk7DQogICAgfSwNCiAgICAvLyDliJfooajnirbmgIHmoLzlvI/ljJYNCiAgICB0eXBlRm9ybWF0KHtjZWxsVmFsdWV9KSB7DQogICAgICBsZXQgYmVsb25nVG8gPSAn5pyq55+l55qE57G75Z6LJw0KICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnR5cGVPcHRpb25zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjZWxsVmFsdWUgPT0gIjAiKSB7DQogICAgICAgICAgYmVsb25nVG8gPSAi5rC45LmFIg0KICAgICAgICB9IGVsc2UgaWYgKGNlbGxWYWx1ZSA9PSAiMSIpIHsNCiAgICAgICAgICBiZWxvbmdUbyA9ICLml7bpl7TojIPlm7QiDQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIHJldHVybiBiZWxvbmdUbw0KICAgIH0sDQogICAgaGFuZGxlUGFnZUNoYW5nZSh7Y3VycmVudFBhZ2UsIHBhZ2VTaXplfSkgew0KICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IGN1cnJlbnRQYWdlDQogICAgICB0aGlzLnBhZ2VTaXplID0gcGFnZVNpemUNCiAgICAgIHRoaXMuZ2V0TGlzdCgpDQogICAgfSwNCiAgICAvKiog5p+l6K+i55So5oi35YiX6KGoICovDQogICAgYXN5bmMgZ2V0TGlzdCgpIHsNCiAgICAgIGxldCBzeXNUaW1lDQogICAgICBsZXQgbGsNCiAgICAgIGF3YWl0IHRoaXMuJGF4aW9zLmdldCgnL3N5c1BvbGljeUNvbnRyb2xsZXIvZ2V0TGljZW5zZUtleScpLnRoZW4oKHJlcykgPT4gew0KICAgICAgICBzeXNUaW1lID0gcmVzLmRhdGEuc3lzVGltZQ0KICAgICAgICBsayA9IHJlcy5kYXRhLmxrDQogICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHsNCiAgICAgIH0pDQoNCiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7DQogICAgICB2YXIgc2VhcmNoUGFyYW1zID0gew0KICAgICAgICBjdXJyZW50UGFnZTogdGhpcy5jdXJyZW50UGFnZSwNCiAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsDQogICAgICAgIGlwOiB0aGlzLnF1ZXJ5UGFyYW1zLmlwLA0KICAgICAgICBzeXNUaW1lOiBzeXNUaW1lLA0KICAgICAgICBsazogbGsNCiAgICAgIH0NCiAgICAgIGF3YWl0IHRoaXMuJGF4aW9zLmdldCgnL2lwQmxhY2tsaXN0Q29udHJvbGxlci9nZXRBbGwnLA0KICAgICAgICB7cGFyYW1zOiBzZWFyY2hQYXJhbXN9KS50aGVuKChyZXMpID0+IHsNCiAgICAgICAgaWYgKHJlcy5jb2RlID09IDApIHsNCiAgICAgICAgICB0aGlzLnVzZXJMaXN0ID0gcmVzLmRhdGEucmVjb3Jkcw0KICAgICAgICAgIHRoaXMudG90YWwgPSByZXMuZGF0YS50b3RhbA0KICAgICAgICAgIGlmIChyZXMuZGF0YS5yZWNvcmRzID09ICcnKSB7DQogICAgICAgICAgICB0aGlzLnNob3dUYWJsZSA9IGZhbHNlDQogICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIHRoaXMuc2hvd1RhYmxlID0gdHJ1ZQ0KICAgICAgICAgIH0NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAvLyDovpPlh7rlkI7nq6/ov5Tlm57kv6Hmga8NCiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsNCiAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsDQogICAgICAgICAgICBtZXNzYWdlOiByZXMuZGF0YQ0KICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlDQogICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHsNCiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2UNCiAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihlcnJvcikNCiAgICAgIH0pDQogICAgfSwNCiAgICAvKiog5pCc57Si5oyJ6ZKu5pON5L2cICovDQogICAgaGFuZGxlUXVlcnk6IGRlYm91bmNlKGZ1bmN0aW9uICgpIHsNCiAgICAgIC8vIOmqjOivgeafpeivouadoeS7tmlw5piv5ZCm5ZCI55CGDQogICAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy5pcCAhPSB1bmRlZmluZWQgJiYgdGhpcy5xdWVyeVBhcmFtcy5pcCAhPSAnJykgew0KICAgICAgICB2YXIgcmVnID0gL14oXGR7MSwyfXwxXGRcZHwyWzAtNF1cZHwyNVswLTVdKVwuKFxkezEsMn18MVxkXGR8MlswLTRdXGR8MjVbMC01XSlcLihcZHsxLDJ9fDFcZFxkfDJbMC00XVxkfDI1WzAtNV0pXC4oXGR7MSwyfXwxXGRcZHwyWzAtNF1cZHwyNVswLTVdKSQvDQogICAgICAgIGlmICghcmVnLnRlc3QodGhpcy5xdWVyeVBhcmFtcy5pcCkpIHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsNCiAgICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJywNCiAgICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXmraPnoa5pcOWcsOWdgCEnDQogICAgICAgICAgfSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxDQogICAgICB0aGlzLnBhZ2VTaXplID0gMTANCiAgICAgIHRoaXMuZ2V0TGlzdCgpOw0KICAgIH0sIDEwMDApLA0KICAgIC8qKiDph43nva7mjInpkq7mk43kvZwgKi8NCiAgICByZXNldFF1ZXJ5KCkgew0KICAgICAgdGhpcy5yZXNldEZvcm0oInF1ZXJ5Rm9ybSIpOw0KICAgIH0sDQogICAgLyoqIOa3u+WKoOaMiemSruaTjeS9nCAqLw0KICAgIGhhbmRsZUFkZCgpIHsNCiAgICAgIHRoaXMub3BlbiA9IHRydWU7DQogICAgfSwNCiAgICAvKiog5Yig6Zmk5oyJ6ZKu5pON5L2cICovDQogICAgaGFuZGxlRGVsZXRlKCkgew0KICAgICAgY29uc3QgX3NlbGVjdERhdGEgPSB0aGlzLiRyZWZzLnhUYWJsZS5nZXRSYWRpb1JlY29yZCh0cnVlKQ0KICAgICAgaWYgKF9zZWxlY3REYXRhID09IG51bGwpIHsNCiAgICAgICAgdGhpcy4kbWVzc2FnZSh7DQogICAgICAgICAgdHlwZTogJ3dhcm5pbmcnLA0KICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6norrDlvZUhJw0KICAgICAgICB9KTsNCiAgICAgICAgcmV0dXJuDQogICAgICB9DQogICAgICB0aGlzLiRjb25maXJtKCfmmK/lkKbliKDpmaTmraRJUD8nLCAn5o+Q56S6Jywgew0KICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsDQogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLA0KICAgICAgICB0eXBlOiAnd2FybmluZycNCiAgICAgIH0pLnRoZW4oKCkgPT4gew0KICAgICAgICB0aGlzLmRvRGVsZXRlKF9zZWxlY3REYXRhKQ0KICAgICAgfSkuY2F0Y2goKCkgPT4gew0KICAgICAgfSk7DQogICAgfSwNCiAgICAvKioNCiAgICAgKiDliKDpmaTmj5DkuqQNCiAgICAgKi8NCiAgICBkb0RlbGV0ZTogZGVib3VuY2UoYXN5bmMgZnVuY3Rpb24gKF9zZWxlY3REYXRhKSB7DQogICAgICBsZXQgc3lzVGltZQ0KICAgICAgbGV0IGxrDQogICAgICBhd2FpdCB0aGlzLiRheGlvcy5nZXQoJy9zeXNQb2xpY3lDb250cm9sbGVyL2dldExpY2Vuc2VLZXknKS50aGVuKChyZXMpID0+IHsNCiAgICAgICAgc3lzVGltZSA9IHJlcy5kYXRhLnN5c1RpbWUNCiAgICAgICAgbGsgPSByZXMuZGF0YS5saw0KICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7DQogICAgICB9KQ0KDQogICAgICBjb25zdCBwYXJhbSA9IHsNCiAgICAgICAgaWQ6IF9zZWxlY3REYXRhLmlkLA0KICAgICAgICBzeXNUaW1lOiBzeXNUaW1lLA0KICAgICAgICBsazogbGsNCiAgICAgIH0NCiAgICAgIHRoaXMuJGF4aW9zLnBvc3QoJy9pcEJsYWNrbGlzdENvbnRyb2xsZXIvZGVsSXAnLCBwYXJhbSkudGhlbigocmVzKSA9PiB7DQogICAgICAgIGlmIChyZXMuY29kZSA9PSAwKSB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZSh7DQogICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsDQogICAgICAgICAgICBtZXNzYWdlOiAn5Yig6Zmk5oiQ5YqfIScNCiAgICAgICAgICB9KTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsNCiAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsDQogICAgICAgICAgICBtZXNzYWdlOiByZXMuZGF0YQ0KICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIHRoaXMuZ2V0TGlzdCgpOw0KICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7DQogICAgICAgIHRoaXMuJG1lc3NhZ2Uoew0KICAgICAgICAgIHR5cGU6ICdlcnJvcicsDQogICAgICAgICAgbWVzc2FnZTogJ+WIoOmZpOWksei0pSEnDQogICAgICAgIH0pOw0KICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZQ0KICAgICAgfSkNCiAgICB9LCAxMDAwKQ0KICB9DQp9Ow0K"},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoIA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;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;;AAEA;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/sysManager/ipBlacklist","sourcesContent":["<template>\r\n <div class=\"app-container\">\r\n <el-row :gutter=\"24\">\r\n <!--用户数据-->\r\n <el-col :span=\"24\" :xs=\"24\">\r\n <el-form :model=\"queryParams\" ref=\"queryForm\" size=\"small\" :inline=\"true\" label-width=\"68px\">\r\n <el-form-item label=\"IP地址\" prop=\"ip\">\r\n <el-input\r\n maxlength=\"15\"\r\n v-model=\"queryParams.ip\"\r\n placeholder=\"请输入IP地址\"\r\n clearable\r\n style=\"width: 240px\"\r\n @keyup.enter.native=\"handleQuery\"\r\n />\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button type=\"primary\" icon=\"el-icon-search\" size=\"mini\" @click=\"handleQuery\">搜索</el-button>\r\n <el-button icon=\"el-icon-refresh\" size=\"mini\" @click=\"resetQuery\">重置</el-button>\r\n </el-form-item>\r\n </el-form>\r\n <el-row :gutter=\"10\" class=\"mb8\">\r\n <el-col :span=\"1.5\">\r\n <el-button\r\n type=\"primary\"\r\n plain\r\n icon=\"el-icon-plus\"\r\n size=\"mini\"\r\n @click=\"handleAdd\"\r\n v-hasPermi=\"['system:ipblacklist:add']\"\r\n >新增\r\n </el-button>\r\n </el-col>\r\n <el-col :span=\"1.5\">\r\n <el-button\r\n type=\"danger\"\r\n plain\r\n icon=\"el-icon-delete\"\r\n size=\"mini\"\r\n @click=\"handleDelete\"\r\n v-hasPermi=\"['system:ipblacklist:remove']\"\r\n >删除\r\n </el-button>\r\n </el-col>\r\n </el-row>\r\n <div style=\"padding-top: 10px\">\r\n <vxe-table\r\n ref=\"xTable\"\r\n align=\"center\"\r\n :loading=\"loading\"\r\n class=\"mytable-style\"\r\n auto-resize\r\n border\r\n resizable\r\n export-config\r\n highlight-current-row\r\n show-overflow\r\n max-height=\"700\"\r\n :data=\"userList\"\r\n :radio-config=\"{trigger: 'row'}\"\r\n >\r\n <vxe-column type=\"radio\" width=\"60\"/>\r\n <vxe-table-column field=\"ip\" title=\"IP地址\"/>\r\n <vxe-table-column field=\"type\" title=\"限制类型\" :formatter=\"typeFormat\"/>\r\n <vxe-table-column field=\"limitStartTime\" title=\"限制开始时间\"/>\r\n <vxe-table-column field=\"limitEndTime\" title=\"限制结束时间\"/>\r\n <vxe-table-column field=\"ipTime\" title=\"添加时间\"/>\r\n <vxe-table-column field=\"addBy\" title=\"添加人\"/>\r\n </vxe-table>\r\n <vxe-pager\r\n v-show=\"showTable\"\r\n perfect\r\n :current-page.sync=\"currentPage\"\r\n :page-size.sync=\"pageSize\"\r\n :total=\"total\"\r\n :page-sizes=\"[10,50,100]\"\r\n :layouts=\"['PrevJump', 'PrevPage','JumpNumber', 'NextPage', 'NextJump', 'Sizes', 'FullJump', 'Total']\"\r\n @page-change=\"handlePageChange\"\r\n >\r\n </vxe-pager>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n\r\n <!-- 添加对话框 -->\r\n <el-dialog :title=\"title\" :visible.sync=\"open\" width=\"650px\" append-to-body>\r\n <el-form ref=\"form\" :model=\"form\" :rules=\"rules\" width=\"630px\" label-width=\"80px\">\r\n <el-row>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"IP地址\" prop=\"ip\">\r\n <el-input id=\"ip\" ref=\"ip\" style=\"width: 220px\" v-model=\"form.ip\" placeholder=\"请输入IP\"/>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"限制类型\">\r\n <el-select style=\"width: 220px\" v-model=\"form.type\" placeholder=\"请选择类型\" @change=\"changeType\">\r\n <el-option\r\n v-for=\"item in typeOptions\"\r\n :key=\"item.value\"\r\n :label=\"item.label\"\r\n :value=\"item.value\"\r\n ></el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row v-show=\"isShow\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"限制时间\">\r\n <el-date-picker\r\n value-format=\"yyyy-MM-dd HH:mm:ss\"\r\n v-model=\"form.limitTime\"\r\n type=\"datetimerange\"\r\n range-separator=\"至\"\r\n start-placeholder=\"开始时间\"\r\n end-placeholder=\"结束时间\">\r\n </el-date-picker>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <el-button type=\"primary\" @click=\"submitForm\">确 定</el-button>\r\n <el-button @click=\"cancel\">取 消</el-button>\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {debounce} from 'lodash'\r\n\r\nexport default {\r\n name: \"ipBlacklist\",\r\n data() {\r\n return {\r\n isShow:false,\r\n // 遮罩层\r\n loading: true,\r\n showTable: true,\r\n // 选中数组\r\n ids: [],\r\n // 非单个禁用\r\n single: true,\r\n // 非多个禁用\r\n multiple: true,\r\n currentPage: 1,\r\n pageSize: 10,\r\n // 总条数\r\n total: 0,\r\n // 用户表格数据\r\n userList: null,\r\n // 弹出层标题\r\n title: \"IP黑名单\",\r\n // 是否显示弹出层\r\n open: false,\r\n // 默认密码\r\n initPassword: undefined,\r\n // 角色选项\r\n roleOptions: [],\r\n // 表单参数\r\n form: {\r\n type: \"0\",\r\n },\r\n // 查询参数\r\n queryParams: {\r\n ip: undefined\r\n },\r\n typeOptions: [\r\n {value: '0', label: '永久'},\r\n {value: '1', label: '时间范围'}\r\n ],\r\n // 表单校验\r\n rules: {\r\n ip: [\r\n {required: true, message: \"ip不能为空\", trigger: \"blur\"},\r\n {pattern: /[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$/, message: \"请输入正确的IP\", trigger: \"blur\"}\r\n ]\r\n }\r\n };\r\n },\r\n watch: {},\r\n created() {\r\n this.getList()\r\n },\r\n methods: {\r\n changeType(val){\r\n if (val==\"0\"){\r\n this.isShow = false;\r\n }\r\n else{\r\n this.isShow = true;\r\n }\r\n },\r\n /** 提交按钮 */\r\n submitForm: debounce(function () {\r\n this.$refs[\"form\"].validate(async valid => {\r\n if (valid) {\r\n if (this.form.type==\"1\"){\r\n if (this.form.limitTime==undefined){\r\n this.$message({\r\n type: 'warning',\r\n message: '请录入限制时间!'\r\n });\r\n return\r\n }\r\n else{\r\n this.form.limitStartTime = this.form.limitTime[0]\r\n this.form.limitEndTime = this.form.limitTime[1]\r\n }\r\n }\r\n\r\n let sysTime\r\n let lk\r\n await this.$axios.get('/sysPolicyController/getLicenseKey').then((res) => {\r\n sysTime = res.data.sysTime\r\n lk = res.data.lk\r\n }).catch((error) => {\r\n })\r\n\r\n this.form.sysTime = sysTime\r\n this.form.lk = lk\r\n\r\n await this.$axios.post('/ipBlacklistController/addIp', this.form).then((res) => {\r\n if (res.code == 0) {\r\n this.$message({\r\n type: 'success',\r\n message: '添加成功!'\r\n });\r\n this.open = false;\r\n this.getList();\r\n this.reset();\r\n } else {\r\n this.$message({\r\n type: 'error',\r\n message: res.data\r\n });\r\n }\r\n }).catch((error) => {\r\n this.$message({\r\n type: 'error',\r\n message: '添加失败!'\r\n });\r\n this.loading = false\r\n })\r\n }\r\n });\r\n }, 1000),\r\n // 表单重置\r\n reset() {\r\n this.form = {\r\n ip: undefined,\r\n type: \"0\",\r\n limitTime: undefined,\r\n limitStartTime: undefined,\r\n limitEndTime: undefined,\r\n sysTime: undefined,\r\n lk: undefined\r\n };\r\n this.isShow = false;\r\n },\r\n // 取消按钮\r\n cancel() {\r\n this.open = false;\r\n this.reset();\r\n },\r\n // 列表状态格式化\r\n typeFormat({cellValue}) {\r\n let belongTo = '未知的类型'\r\n for (let i = 0; i < this.typeOptions.length; i++) {\r\n if (cellValue == \"0\") {\r\n belongTo = \"永久\"\r\n } else if (cellValue == \"1\") {\r\n belongTo = \"时间范围\"\r\n }\r\n }\r\n return belongTo\r\n },\r\n handlePageChange({currentPage, pageSize}) {\r\n this.currentPage = currentPage\r\n this.pageSize = pageSize\r\n this.getList()\r\n },\r\n /** 查询用户列表 */\r\n async getList() {\r\n let sysTime\r\n let lk\r\n await this.$axios.get('/sysPolicyController/getLicenseKey').then((res) => {\r\n sysTime = res.data.sysTime\r\n lk = res.data.lk\r\n }).catch((error) => {\r\n })\r\n\r\n this.loading = true;\r\n var searchParams = {\r\n currentPage: this.currentPage,\r\n pageSize: this.pageSize,\r\n ip: this.queryParams.ip,\r\n sysTime: sysTime,\r\n lk: lk\r\n }\r\n await this.$axios.get('/ipBlacklistController/getAll',\r\n {params: searchParams}).then((res) => {\r\n if (res.code == 0) {\r\n this.userList = res.data.records\r\n this.total = res.data.total\r\n if (res.data.records == '') {\r\n this.showTable = false\r\n } else {\r\n this.showTable = true\r\n }\r\n } else {\r\n // 输出后端返回信息\r\n this.$message({\r\n type: 'error',\r\n message: res.data\r\n });\r\n }\r\n this.loading = false\r\n }).catch((error) => {\r\n this.loading = false\r\n this.$message.error(error)\r\n })\r\n },\r\n /** 搜索按钮操作 */\r\n handleQuery: debounce(function () {\r\n // 验证查询条件ip是否合理\r\n if (this.queryParams.ip != undefined && this.queryParams.ip != '') {\r\n var reg = /^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$/\r\n if (!reg.test(this.queryParams.ip)) {\r\n this.$message({\r\n type: 'warning',\r\n message: '请输入正确ip地址!'\r\n });\r\n return\r\n }\r\n }\r\n this.currentPage = 1\r\n this.pageSize = 10\r\n this.getList();\r\n }, 1000),\r\n /** 重置按钮操作 */\r\n resetQuery() {\r\n this.resetForm(\"queryForm\");\r\n },\r\n /** 添加按钮操作 */\r\n handleAdd() {\r\n this.open = true;\r\n },\r\n /** 删除按钮操作 */\r\n handleDelete() {\r\n const _selectData = this.$refs.xTable.getRadioRecord(true)\r\n if (_selectData == null) {\r\n this.$message({\r\n type: 'warning',\r\n message: '请选择记录!'\r\n });\r\n return\r\n }\r\n this.$confirm('是否删除此IP?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n }).then(() => {\r\n this.doDelete(_selectData)\r\n }).catch(() => {\r\n });\r\n },\r\n /**\r\n * 删除提交\r\n */\r\n doDelete: debounce(async function (_selectData) {\r\n let sysTime\r\n let lk\r\n await this.$axios.get('/sysPolicyController/getLicenseKey').then((res) => {\r\n sysTime = res.data.sysTime\r\n lk = res.data.lk\r\n }).catch((error) => {\r\n })\r\n\r\n const param = {\r\n id: _selectData.id,\r\n sysTime: sysTime,\r\n lk: lk\r\n }\r\n this.$axios.post('/ipBlacklistController/delIp', param).then((res) => {\r\n if (res.code == 0) {\r\n this.$message({\r\n type: 'success',\r\n message: '删除成功!'\r\n });\r\n } else {\r\n this.$message({\r\n type: 'error',\r\n message: res.data\r\n });\r\n }\r\n this.getList();\r\n }).catch((error) => {\r\n this.$message({\r\n type: 'error',\r\n message: '删除失败!'\r\n });\r\n this.loading = false\r\n })\r\n }, 1000)\r\n }\r\n};\r\n</script>\r\n"]}]}