f0f22956cbd40ab3ecf7adf3e0eb211e.json 33 KB

1
  1. {"remainingRequest":"D:\\test\\ssi-satoken\\ui\\node_modules\\babel-loader\\lib\\index.js!D:\\test\\ssi-satoken\\ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\test\\ssi-satoken\\ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\test\\ssi-satoken\\ui\\src\\layout\\components\\TagsView\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\test\\ssi-satoken\\ui\\src\\layout\\components\\TagsView\\index.vue","mtime":1697787637637},{"path":"D:\\test\\ssi-satoken\\ui\\babel.config.js","mtime":1696909835000},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1669864538178},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\babel-loader\\lib\\index.js","mtime":1669864538095},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1669864538178},{"path":"D:\\test\\ssi-satoken\\ui\\node_modules\\vue-loader\\lib\\index.js","mtime":1697679531049}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:InVzZSBzdHJpY3QiOwoKdmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKCJEOi90ZXN0L3NzaS1zYXRva2VuL3VpL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdC5qcyIpLmRlZmF1bHQ7Ck9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAiX19lc01vZHVsZSIsIHsKICB2YWx1ZTogdHJ1ZQp9KTsKZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwOwp2YXIgX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCJEOi90ZXN0L3NzaS1zYXRva2VuL3VpL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIuanMiKSk7CnZhciBfdG9Db25zdW1hYmxlQXJyYXkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCJEOi90ZXN0L3NzaS1zYXRva2VuL3VpL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvQ29uc3VtYWJsZUFycmF5LmpzIikpOwp2YXIgX29iamVjdFNwcmVhZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoIkQ6L3Rlc3Qvc3NpLXNhdG9rZW4vdWkvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0U3ByZWFkMi5qcyIpKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmNvbmNhdC5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLmxpbmsuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZpbmQuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNsaWNlLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnJlcGxhY2UuanMiKTsKdmFyIF9TY3JvbGxQYW5lID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCIuL1Njcm9sbFBhbmUiKSk7CnZhciBfcGF0aCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZSgicGF0aCIpKTsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KdmFyIF9kZWZhdWx0ID0gewogIGNvbXBvbmVudHM6IHsKICAgIFNjcm9sbFBhbmU6IF9TY3JvbGxQYW5lLmRlZmF1bHQKICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICB2aXNpYmxlOiBmYWxzZSwKICAgICAgdG9wOiAwLAogICAgICBsZWZ0OiAwLAogICAgICBzZWxlY3RlZFRhZzoge30sCiAgICAgIGFmZml4VGFnczogW10KICAgIH07CiAgfSwKICBjb21wdXRlZDogewogICAgdmlzaXRlZFZpZXdzOiBmdW5jdGlvbiB2aXNpdGVkVmlld3MoKSB7CiAgICAgIHZhciB2aWV3ID0gdGhpcy4kc3RvcmUuc3RhdGUudGFnc1ZpZXcudmlzaXRlZFZpZXdzOwogICAgICB2YXIgZmlubmFsVmlldyA9IFtdOwogICAgICB2aWV3LmZvckVhY2goZnVuY3Rpb24gKHZhbHVlLCBpbmRleCwgYXJyYXkpIHsKICAgICAgICBpZiAodmFsdWUubmFtZSA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICBmaW5uYWxWaWV3LnB1c2godmFsdWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAodmFsdWUubmFtZSAhPT0gIummlumhtSIpIHsKICAgICAgICAgICAgZmlubmFsVmlldy5wdXNoKHZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgICByZXR1cm4gZmlubmFsVmlldzsKICAgICAgLy9yZXR1cm4gdGhpcy4kc3RvcmUuc3RhdGUudGFnc1ZpZXcudmlzaXRlZFZpZXdzCiAgICB9LAogICAgcm91dGVzOiBmdW5jdGlvbiByb3V0ZXMoKSB7CiAgICAgIHZhciBmaW5uYWxSb3V0ZXMgPSBbXTsKICAgICAgdmFyIHJvdXRlcyA9IHRoaXMuJHJvdXRlci5vcHRpb25zLnJvdXRlczsKICAgICAgcm91dGVzLmZvckVhY2goZnVuY3Rpb24gKHZhbHVlLCBpbmRleCwgYXJyYXkpIHsKICAgICAgICBpZiAodmFsdWUucmVkaXJlY3QgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgZmlubmFsUm91dGVzLnB1c2godmFsdWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAodmFsdWUucmVkaXJlY3QgIT09ICIvZGFzaGJvYXJkIikgewogICAgICAgICAgICBmaW5uYWxSb3V0ZXMucHVzaCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgICAgLy8gY29uc29sZS5sb2coZmlubmFsUm91dGVzKQogICAgICByZXR1cm4gZmlubmFsUm91dGVzOwogICAgICAvLyByZXR1cm4gdGhpcy4kcm91dGVyLm9wdGlvbnMucm91dGVzCiAgICAgIC8vIHJldHVybiB0aGlzLiRzdG9yZS5zdGF0ZS5wZXJtaXNzaW9uLnJvdXRlcwogICAgfSwKICAgIHRoZW1lOiBmdW5jdGlvbiB0aGVtZSgpIHsKICAgICAgcmV0dXJuIHRoaXMuJHN0b3JlLnN0YXRlLnNldHRpbmdzLnRoZW1lOwogICAgfQogIH0sCiAgd2F0Y2g6IHsKICAgICRyb3V0ZTogZnVuY3Rpb24gJHJvdXRlKCkgewogICAgICB0aGlzLmFkZFRhZ3MoKTsKICAgICAgdGhpcy5tb3ZlVG9DdXJyZW50VGFnKCk7CiAgICB9LAogICAgdmlzaWJsZTogZnVuY3Rpb24gdmlzaWJsZSh2YWx1ZSkgewogICAgICBpZiAodmFsdWUpIHsKICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5jbG9zZU1lbnUpOwogICAgICB9IGVsc2UgewogICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsb3NlTWVudSk7CiAgICAgIH0KICAgIH0KICB9LAogIGRlc3Ryb3llZDogZnVuY3Rpb24gZGVzdHJveWVkKCkgewogICAgdGhpcy4kc3RvcmUuZGlzcGF0Y2goJ3RhZ3NWaWV3L2RlbEFsbFZpc2l0ZWRWaWV3cycsIHRoaXMuJHJvdXRlKTsKICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB0aGlzLmluaXRUYWdzKCk7CiAgICB0aGlzLmFkZFRhZ3MoKTsKICB9LAogIG1ldGhvZHM6IHsKICAgIGlzQWN0aXZlOiBmdW5jdGlvbiBpc0FjdGl2ZShyb3V0ZSkgewogICAgICByZXR1cm4gcm91dGUucGF0aCA9PT0gdGhpcy4kcm91dGUucGF0aDsKICAgIH0sCiAgICBhY3RpdmVTdHlsZTogZnVuY3Rpb24gYWN0aXZlU3R5bGUodGFnKSB7CiAgICAgIGlmICghdGhpcy5pc0FjdGl2ZSh0YWcpKSByZXR1cm4ge307CiAgICAgIHJldHVybiB7CiAgICAgICAgImJhY2tncm91bmQtY29sb3IiOiB0aGlzLnRoZW1lLAogICAgICAgICJib3JkZXItY29sb3IiOiB0aGlzLnRoZW1lCiAgICAgIH07CiAgICB9LAogICAgaXNBZmZpeDogZnVuY3Rpb24gaXNBZmZpeCh0YWcpIHsKICAgICAgcmV0dXJuIHRhZy5tZXRhICYmIHRhZy5tZXRhLmFmZml4OwogICAgfSwKICAgIGlzRmlyc3RWaWV3OiBmdW5jdGlvbiBpc0ZpcnN0VmlldygpIHsKICAgICAgdHJ5IHsKICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFRhZy5mdWxsUGF0aCA9PT0gJy9pbmRleCcgfHwgdGhpcy5zZWxlY3RlZFRhZy5mdWxsUGF0aCA9PT0gdGhpcy52aXNpdGVkVmlld3NbMV0uZnVsbFBhdGg7CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfSwKICAgIGlzTGFzdFZpZXc6IGZ1bmN0aW9uIGlzTGFzdFZpZXcoKSB7CiAgICAgIHRyeSB7CiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRUYWcuZnVsbFBhdGggPT09IHRoaXMudmlzaXRlZFZpZXdzW3RoaXMudmlzaXRlZFZpZXdzLmxlbmd0aCAtIDFdLmZ1bGxQYXRoOwogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0sCiAgICBmaWx0ZXJBZmZpeFRhZ3M6IGZ1bmN0aW9uIGZpbHRlckFmZml4VGFncyhyb3V0ZXMpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgdmFyIGJhc2VQYXRoID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAnLyc7CiAgICAgIHZhciB0YWdzID0gW107CiAgICAgIHJvdXRlcy5mb3JFYWNoKGZ1bmN0aW9uIChyb3V0ZSkgewogICAgICAgIGlmIChyb3V0ZS5tZXRhICYmIHJvdXRlLm1ldGEuYWZmaXgpIHsKICAgICAgICAgIHZhciB0YWdQYXRoID0gX3BhdGguZGVmYXVsdC5yZXNvbHZlKGJhc2VQYXRoLCByb3V0ZS5wYXRoKTsKICAgICAgICAgIHRhZ3MucHVzaCh7CiAgICAgICAgICAgIGZ1bGxQYXRoOiB0YWdQYXRoLAogICAgICAgICAgICBwYXRoOiB0YWdQYXRoLAogICAgICAgICAgICBuYW1lOiByb3V0ZS5uYW1lLAogICAgICAgICAgICBtZXRhOiAoMCwgX29iamVjdFNwcmVhZDIuZGVmYXVsdCkoe30sIHJvdXRlLm1ldGEpCiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgaWYgKHJvdXRlLmNoaWxkcmVuKSB7CiAgICAgICAgICB2YXIgdGVtcFRhZ3MgPSBfdGhpcy5maWx0ZXJBZmZpeFRhZ3Mocm91dGUuY2hpbGRyZW4sIHJvdXRlLnBhdGgpOwogICAgICAgICAgaWYgKHRlbXBUYWdzLmxlbmd0aCA+PSAxKSB7CiAgICAgICAgICAgIHRhZ3MgPSBbXS5jb25jYXQoKDAsIF90b0NvbnN1bWFibGVBcnJheTIuZGVmYXVsdCkodGFncyksICgwLCBfdG9Db25zdW1hYmxlQXJyYXkyLmRlZmF1bHQpKHRlbXBUYWdzKSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgICAgcmV0dXJuIHRhZ3M7CiAgICB9LAogICAgaW5pdFRhZ3M6IGZ1bmN0aW9uIGluaXRUYWdzKCkgewogICAgICB2YXIgYWZmaXhUYWdzID0gdGhpcy5hZmZpeFRhZ3MgPSB0aGlzLmZpbHRlckFmZml4VGFncyh0aGlzLnJvdXRlcyk7CiAgICAgIHZhciBfaXRlcmF0b3IgPSAoMCwgX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIyLmRlZmF1bHQpKGFmZml4VGFncyksCiAgICAgICAgX3N0ZXA7CiAgICAgIHRyeSB7CiAgICAgICAgZm9yIChfaXRlcmF0b3IucygpOyAhKF9zdGVwID0gX2l0ZXJhdG9yLm4oKSkuZG9uZTspIHsKICAgICAgICAgIHZhciB0YWcgPSBfc3RlcC52YWx1ZTsKICAgICAgICAgIC8vIE11c3QgaGF2ZSB0YWcgbmFtZQogICAgICAgICAgaWYgKHRhZy5uYW1lKSB7CiAgICAgICAgICAgIHRoaXMuJHN0b3JlLmRpc3BhdGNoKCd0YWdzVmlldy9hZGRWaXNpdGVkVmlldycsIHRhZyk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBfaXRlcmF0b3IuZShlcnIpOwogICAgICB9IGZpbmFsbHkgewogICAgICAgIF9pdGVyYXRvci5mKCk7CiAgICAgIH0KICAgIH0sCiAgICBhZGRUYWdzOiBmdW5jdGlvbiBhZGRUYWdzKCkgewogICAgICB2YXIgbmFtZSA9IHRoaXMuJHJvdXRlLm5hbWU7CiAgICAgIGlmIChuYW1lKSB7CiAgICAgICAgdGhpcy4kc3RvcmUuZGlzcGF0Y2goJ3RhZ3NWaWV3L2FkZFZpZXcnLCB0aGlzLiRyb3V0ZSk7CiAgICAgICAgaWYgKHRoaXMuJHJvdXRlLm1ldGEubGluaykgewogICAgICAgICAgdGhpcy4kc3RvcmUuZGlzcGF0Y2goJ3RhZ3NWaWV3L2FkZElmcmFtZVZpZXcnLCB0aGlzLiRyb3V0ZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0sCiAgICBtb3ZlVG9DdXJyZW50VGFnOiBmdW5jdGlvbiBtb3ZlVG9DdXJyZW50VGFnKCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgdmFyIHRhZ3MgPSB0aGlzLiRyZWZzLnRhZzsKICAgICAgLy8gY29uc29sZS5sb2codGhpcy4kcm91dGUpCiAgICAgIGlmICh0YWdzID09PSB1bmRlZmluZWQpIHsKICAgICAgICB0aGlzLiRzdG9yZS5kaXNwYXRjaCgndGFnc1ZpZXcvdXBkYXRlVmlzaXRlZFZpZXcnLCB0aGlzLiRyb3V0ZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIF9pdGVyYXRvcjIgPSAoMCwgX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIyLmRlZmF1bHQpKHRhZ3MpLAogICAgICAgICAgICBfc3RlcDI7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBmb3IgKF9pdGVyYXRvcjIucygpOyAhKF9zdGVwMiA9IF9pdGVyYXRvcjIubigpKS5kb25lOykgewogICAgICAgICAgICAgIHZhciB0YWcgPSBfc3RlcDIudmFsdWU7CiAgICAgICAgICAgICAgaWYgKHRhZy50by5wYXRoID09PSBfdGhpczIuJHJvdXRlLnBhdGgpIHsKICAgICAgICAgICAgICAgIF90aGlzMi4kcmVmcy5zY3JvbGxQYW5lLm1vdmVUb1RhcmdldCh0YWcpOwogICAgICAgICAgICAgICAgLy8gd2hlbiBxdWVyeSBpcyBkaWZmZXJlbnQgdGhlbiB1cGRhdGUKICAgICAgICAgICAgICAgIGlmICh0YWcudG8uZnVsbFBhdGggIT09IF90aGlzMi4kcm91dGUuZnVsbFBhdGgpIHsKICAgICAgICAgICAgICAgICAgX3RoaXMyLiRzdG9yZS5kaXNwYXRjaCgndGFnc1ZpZXcvdXBkYXRlVmlzaXRlZFZpZXcnLCBfdGhpczIuJHJvdXRlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIF9pdGVyYXRvcjIuZShlcnIpOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgX2l0ZXJhdG9yMi5mKCk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICByZWZyZXNoU2VsZWN0ZWRUYWc6IGZ1bmN0aW9uIHJlZnJlc2hTZWxlY3RlZFRhZyh2aWV3KSB7CiAgICAgIHRoaXMuJHRhYi5yZWZyZXNoUGFnZSh2aWV3KTsKICAgICAgaWYgKHRoaXMuJHJvdXRlLm1ldGEubGluaykgewogICAgICAgIHRoaXMuJHN0b3JlLmRpc3BhdGNoKCd0YWdzVmlldy9kZWxJZnJhbWVWaWV3JywgdGhpcy4kcm91dGUpOwogICAgICB9CiAgICB9LAogICAgY2xvc2VTZWxlY3RlZFRhZzogZnVuY3Rpb24gY2xvc2VTZWxlY3RlZFRhZyh2aWV3KSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICB0aGlzLiR0YWIuY2xvc2VQYWdlKHZpZXcpLnRoZW4oZnVuY3Rpb24gKF9yZWYpIHsKICAgICAgICB2YXIgdmlzaXRlZFZpZXdzID0gX3JlZi52aXNpdGVkVmlld3M7CiAgICAgICAgaWYgKF90aGlzMy5pc0FjdGl2ZSh2aWV3KSkgewogICAgICAgICAgX3RoaXMzLnRvTGFzdFZpZXcodmlzaXRlZFZpZXdzLCB2aWV3KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIGNsb3NlUmlnaHRUYWdzOiBmdW5jdGlvbiBjbG9zZVJpZ2h0VGFncygpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIHRoaXMuJHRhYi5jbG9zZVJpZ2h0UGFnZSh0aGlzLnNlbGVjdGVkVGFnKS50aGVuKGZ1bmN0aW9uICh2aXNpdGVkVmlld3MpIHsKICAgICAgICBpZiAoIXZpc2l0ZWRWaWV3cy5maW5kKGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICByZXR1cm4gaS5mdWxsUGF0aCA9PT0gX3RoaXM0LiRyb3V0ZS5mdWxsUGF0aDsKICAgICAgICB9KSkgewogICAgICAgICAgX3RoaXM0LnRvTGFzdFZpZXcodmlzaXRlZFZpZXdzKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIGNsb3NlTGVmdFRhZ3M6IGZ1bmN0aW9uIGNsb3NlTGVmdFRhZ3MoKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICB0aGlzLiR0YWIuY2xvc2VMZWZ0UGFnZSh0aGlzLnNlbGVjdGVkVGFnKS50aGVuKGZ1bmN0aW9uICh2aXNpdGVkVmlld3MpIHsKICAgICAgICBpZiAoIXZpc2l0ZWRWaWV3cy5maW5kKGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICByZXR1cm4gaS5mdWxsUGF0aCA9PT0gX3RoaXM1LiRyb3V0ZS5mdWxsUGF0aDsKICAgICAgICB9KSkgewogICAgICAgICAgX3RoaXM1LnRvTGFzdFZpZXcodmlzaXRlZFZpZXdzKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIGNsb3NlT3RoZXJzVGFnczogZnVuY3Rpb24gY2xvc2VPdGhlcnNUYWdzKCkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgdGhpcy4kcm91dGVyLnB1c2godGhpcy5zZWxlY3RlZFRhZykuY2F0Y2goZnVuY3Rpb24gKCkge30pOwogICAgICB0aGlzLiR0YWIuY2xvc2VPdGhlclBhZ2UodGhpcy5zZWxlY3RlZFRhZykudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXM2Lm1vdmVUb0N1cnJlbnRUYWcoKTsKICAgICAgfSk7CiAgICB9LAogICAgY2xvc2VBbGxUYWdzOiBmdW5jdGlvbiBjbG9zZUFsbFRhZ3ModmlldykgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgICAgdGhpcy4kdGFiLmNsb3NlQWxsUGFnZSgpLnRoZW4oZnVuY3Rpb24gKF9yZWYyKSB7CiAgICAgICAgdmFyIHZpc2l0ZWRWaWV3cyA9IF9yZWYyLnZpc2l0ZWRWaWV3czsKICAgICAgICBpZiAoX3RoaXM3LmFmZml4VGFncy5zb21lKGZ1bmN0aW9uICh0YWcpIHsKICAgICAgICAgIHJldHVybiB0YWcucGF0aCA9PT0gX3RoaXM3LiRyb3V0ZS5wYXRoOwogICAgICAgIH0pKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIF90aGlzNy50b0xhc3RWaWV3KHZpc2l0ZWRWaWV3cywgdmlldyk7CiAgICAgIH0pOwogICAgfSwKICAgIHRvTGFzdFZpZXc6IGZ1bmN0aW9uIHRvTGFzdFZpZXcodmlzaXRlZFZpZXdzLCB2aWV3KSB7CiAgICAgIHZhciBsYXRlc3RWaWV3ID0gdmlzaXRlZFZpZXdzLnNsaWNlKC0xKVswXTsKICAgICAgaWYgKGxhdGVzdFZpZXcpIHsKICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaChsYXRlc3RWaWV3LmZ1bGxQYXRoKTsKICAgICAgfSBlbHNlIHsKICAgICAgICAvLyBub3cgdGhlIGRlZmF1bHQgaXMgdG8gcmVkaXJlY3QgdG8gdGhlIGhvbWUgcGFnZSBpZiB0aGVyZSBpcyBubyB0YWdzLXZpZXcsCiAgICAgICAgLy8geW91IGNhbiBhZGp1c3QgaXQgYWNjb3JkaW5nIHRvIHlvdXIgbmVlZHMuCiAgICAgICAgaWYgKHZpZXcubmFtZSA9PT0gJ0Rhc2hib2FyZCcpIHsKICAgICAgICAgIC8vIHRvIHJlbG9hZCBob21lIHBhZ2UKICAgICAgICAgIHRoaXMuJHJvdXRlci5yZXBsYWNlKHsKICAgICAgICAgICAgcGF0aDogJy9yZWRpcmVjdCcgKyB2aWV3LmZ1bGxQYXRoCiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kcm91dGVyLnB1c2goJy8nKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICBvcGVuTWVudTogZnVuY3Rpb24gb3Blbk1lbnUodGFnLCBlKSB7CiAgICAgIHZhciBtZW51TWluV2lkdGggPSAxMDU7CiAgICAgIHZhciBvZmZzZXRMZWZ0ID0gdGhpcy4kZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDsgLy8gY29udGFpbmVyIG1hcmdpbiBsZWZ0CiAgICAgIHZhciBvZmZzZXRXaWR0aCA9IHRoaXMuJGVsLm9mZnNldFdpZHRoOyAvLyBjb250YWluZXIgd2lkdGgKICAgICAgdmFyIG1heExlZnQgPSBvZmZzZXRXaWR0aCAtIG1lbnVNaW5XaWR0aDsgLy8gbGVmdCBib3VuZGFyeQogICAgICB2YXIgbGVmdCA9IGUuY2xpZW50WCAtIG9mZnNldExlZnQgKyAxNTsgLy8gMTU6IG1hcmdpbiByaWdodAoKICAgICAgaWYgKGxlZnQgPiBtYXhMZWZ0KSB7CiAgICAgICAgdGhpcy5sZWZ0ID0gbWF4TGVmdDsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmxlZnQgPSBsZWZ0OwogICAgICB9CiAgICAgIHRoaXMudG9wID0gZS5jbGllbnRZOwogICAgICB0aGlzLnZpc2libGUgPSB0cnVlOwogICAgICB0aGlzLnNlbGVjdGVkVGFnID0gdGFnOwogICAgfSwKICAgIGNsb3NlTWVudTogZnVuY3Rpb24gY2xvc2VNZW51KCkgewogICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTsKICAgIH0sCiAgICBoYW5kbGVTY3JvbGw6IGZ1bmN0aW9uIGhhbmRsZVNjcm9sbCgpIHsKICAgICAgdGhpcy5jbG9zZU1lbnUoKTsKICAgIH0KICB9Cn07CmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0Ow=="},{"version":3,"names":["_ScrollPane","_interopRequireDefault","require","_path","components","ScrollPane","data","visible","top","left","selectedTag","affixTags","computed","visitedViews","view","$store","state","tagsView","finnalView","forEach","value","index","array","name","undefined","push","routes","finnalRoutes","$router","options","redirect","theme","settings","watch","$route","addTags","moveToCurrentTag","document","body","addEventListener","closeMenu","removeEventListener","destroyed","dispatch","mounted","initTags","methods","isActive","route","path","activeStyle","tag","isAffix","meta","affix","isFirstView","fullPath","err","isLastView","length","filterAffixTags","_this","basePath","arguments","tags","tagPath","resolve","_objectSpread2","default","children","tempTags","concat","_toConsumableArray2","_iterator","_createForOfIteratorHelper2","_step","s","n","done","e","f","link","_this2","$refs","$nextTick","_iterator2","_step2","to","scrollPane","moveToTarget","refreshSelectedTag","$tab","refreshPage","closeSelectedTag","_this3","closePage","then","_ref","toLastView","closeRightTags","_this4","closeRightPage","find","i","closeLeftTags","_this5","closeLeftPage","closeOthersTags","_this6","catch","closeOtherPage","closeAllTags","_this7","closeAllPage","_ref2","some","latestView","slice","replace","openMenu","menuMinWidth","offsetLeft","$el","getBoundingClientRect","offsetWidth","maxLeft","clientX","clientY","handleScroll","exports","_default"],"sources":["src/layout/components/TagsView/index.vue"],"sourcesContent":["<template>\r\n <div id=\"tags-view-container\" class=\"tags-view-container\">\r\n <scroll-pane ref=\"scrollPane\" class=\"tags-view-wrapper\" @scroll=\"handleScroll\">\r\n <router-link\r\n v-for=\"tag in visitedViews\"\r\n ref=\"tag\"\r\n :key=\"tag.path\"\r\n :class=\"isActive(tag)?'active':''\"\r\n :to=\"{ path: tag.path, query: tag.query, fullPath: tag.fullPath }\"\r\n tag=\"span\"\r\n class=\"tags-view-item\"\r\n :style=\"activeStyle(tag)\"\r\n @click.middle.native=\"!isAffix(tag)?closeSelectedTag(tag):''\"\r\n @contextmenu.prevent.native=\"openMenu(tag,$event)\"\r\n >\r\n {{ tag.title }}\r\n <span v-if=\"!isAffix(tag)\" class=\"el-icon-close\" @click.prevent.stop=\"closeSelectedTag(tag)\" />\r\n </router-link>\r\n </scroll-pane>\r\n <ul v-show=\"visible\" :style=\"{left:left+'px',top:top+'px'}\" class=\"contextmenu\">\r\n <li @click=\"refreshSelectedTag(selectedTag)\"><i class=\"el-icon-refresh-right\"></i> 刷新页面</li>\r\n <li v-if=\"!isAffix(selectedTag)\" @click=\"closeSelectedTag(selectedTag)\"><i class=\"el-icon-close\"></i> 关闭当前</li>\r\n <li @click=\"closeOthersTags\"><i class=\"el-icon-circle-close\"></i> 关闭其他</li>\r\n <li v-if=\"!isFirstView()\" @click=\"closeLeftTags\"><i class=\"el-icon-back\"></i> 关闭左侧</li>\r\n <li v-if=\"!isLastView()\" @click=\"closeRightTags\"><i class=\"el-icon-right\"></i> 关闭右侧</li>\r\n <li @click=\"closeAllTags(selectedTag)\"><i class=\"el-icon-circle-close\"></i> 全部关闭</li>\r\n </ul>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport ScrollPane from './ScrollPane'\r\nimport path from 'path'\r\n\r\nexport default {\r\n components: { ScrollPane },\r\n data() {\r\n return {\r\n visible: false,\r\n top: 0,\r\n left: 0,\r\n selectedTag: {},\r\n affixTags: []\r\n }\r\n },\r\n computed: {\r\n visitedViews() {\r\n let view = this.$store.state.tagsView.visitedViews\r\n let finnalView = []\r\n view.forEach((value,index,array)=>{\r\n if(value.name === undefined){\r\n finnalView.push(value)\r\n }else{\r\n if(value.name !== \"首页\")\r\n {\r\n finnalView.push(value)\r\n }\r\n }\r\n })\r\n return finnalView\r\n //return this.$store.state.tagsView.visitedViews\r\n },\r\n routes() {\r\n let finnalRoutes = []\r\n let routes = this.$router.options.routes\r\n routes.forEach((value,index,array)=>{\r\n if(value.redirect === undefined){\r\n finnalRoutes.push(value)\r\n }else{\r\n if(value.redirect !== \"/dashboard\")\r\n {\r\n finnalRoutes.push(value)\r\n }\r\n }\r\n })\r\n // console.log(finnalRoutes)\r\n return finnalRoutes\r\n // return this.$router.options.routes\r\n // return this.$store.state.permission.routes\r\n },\r\n theme() {\r\n return this.$store.state.settings.theme;\r\n }\r\n },\r\n watch: {\r\n $route() {\r\n this.addTags()\r\n this.moveToCurrentTag()\r\n },\r\n visible(value) {\r\n if (value) {\r\n document.body.addEventListener('click', this.closeMenu)\r\n } else {\r\n document.body.removeEventListener('click', this.closeMenu)\r\n }\r\n }\r\n },\r\n destroyed() {\r\n this.$store.dispatch('tagsView/delAllVisitedViews', this.$route)\r\n },\r\n mounted() {\r\n this.initTags()\r\n this.addTags()\r\n },\r\n methods: {\r\n isActive(route) {\r\n return route.path === this.$route.path\r\n },\r\n activeStyle(tag) {\r\n if (!this.isActive(tag)) return {};\r\n return {\r\n \"background-color\": this.theme,\r\n \"border-color\": this.theme\r\n };\r\n },\r\n isAffix(tag) {\r\n return tag.meta && tag.meta.affix\r\n },\r\n isFirstView() {\r\n try {\r\n return this.selectedTag.fullPath === '/index' || this.selectedTag.fullPath === this.visitedViews[1].fullPath\r\n } catch (err) {\r\n return false\r\n }\r\n },\r\n isLastView() {\r\n try {\r\n return this.selectedTag.fullPath === this.visitedViews[this.visitedViews.length - 1].fullPath\r\n } catch (err) {\r\n return false\r\n }\r\n },\r\n filterAffixTags(routes, basePath = '/') {\r\n let tags = []\r\n routes.forEach(route => {\r\n if (route.meta && route.meta.affix) {\r\n const tagPath = path.resolve(basePath, route.path)\r\n tags.push({\r\n fullPath: tagPath,\r\n path: tagPath,\r\n name: route.name,\r\n meta: { ...route.meta }\r\n })\r\n }\r\n if (route.children) {\r\n const tempTags = this.filterAffixTags(route.children, route.path)\r\n if (tempTags.length >= 1) {\r\n tags = [...tags, ...tempTags]\r\n }\r\n }\r\n })\r\n return tags\r\n },\r\n initTags() {\r\n const affixTags = this.affixTags = this.filterAffixTags(this.routes)\r\n for (const tag of affixTags) {\r\n // Must have tag name\r\n if (tag.name) {\r\n this.$store.dispatch('tagsView/addVisitedView', tag)\r\n }\r\n }\r\n },\r\n addTags() {\r\n const { name } = this.$route\r\n if (name) {\r\n this.$store.dispatch('tagsView/addView', this.$route)\r\n if (this.$route.meta.link) {\r\n this.$store.dispatch('tagsView/addIframeView', this.$route)\r\n }\r\n }\r\n return false\r\n },\r\n moveToCurrentTag() {\r\n const tags = this.$refs.tag\r\n // console.log(this.$route)\r\n if(tags === undefined){\r\n this.$store.dispatch('tagsView/updateVisitedView', this.$route)\r\n }else{\r\n this.$nextTick(() => {\r\n for (const tag of tags) {\r\n if (tag.to.path === this.$route.path) {\r\n this.$refs.scrollPane.moveToTarget(tag)\r\n // when query is different then update\r\n if (tag.to.fullPath !== this.$route.fullPath) {\r\n this.$store.dispatch('tagsView/updateVisitedView', this.$route)\r\n }\r\n break\r\n }\r\n }\r\n })\r\n }\r\n\r\n },\r\n refreshSelectedTag(view) {\r\n this.$tab.refreshPage(view);\r\n if (this.$route.meta.link) {\r\n this.$store.dispatch('tagsView/delIframeView', this.$route)\r\n }\r\n },\r\n closeSelectedTag(view) {\r\n this.$tab.closePage(view).then(({ visitedViews }) => {\r\n if (this.isActive(view)) {\r\n this.toLastView(visitedViews, view)\r\n }\r\n })\r\n },\r\n closeRightTags() {\r\n this.$tab.closeRightPage(this.selectedTag).then(visitedViews => {\r\n if (!visitedViews.find(i => i.fullPath === this.$route.fullPath)) {\r\n this.toLastView(visitedViews)\r\n }\r\n })\r\n },\r\n closeLeftTags() {\r\n this.$tab.closeLeftPage(this.selectedTag).then(visitedViews => {\r\n if (!visitedViews.find(i => i.fullPath === this.$route.fullPath)) {\r\n this.toLastView(visitedViews)\r\n }\r\n })\r\n },\r\n closeOthersTags() {\r\n this.$router.push(this.selectedTag).catch(()=>{});\r\n this.$tab.closeOtherPage(this.selectedTag).then(() => {\r\n this.moveToCurrentTag()\r\n })\r\n },\r\n closeAllTags(view) {\r\n this.$tab.closeAllPage().then(({ visitedViews }) => {\r\n if (this.affixTags.some(tag => tag.path === this.$route.path)) {\r\n return\r\n }\r\n this.toLastView(visitedViews, view)\r\n })\r\n },\r\n toLastView(visitedViews, view) {\r\n const latestView = visitedViews.slice(-1)[0]\r\n if (latestView) {\r\n this.$router.push(latestView.fullPath)\r\n } else {\r\n // now the default is to redirect to the home page if there is no tags-view,\r\n // you can adjust it according to your needs.\r\n if (view.name === 'Dashboard') {\r\n // to reload home page\r\n this.$router.replace({ path: '/redirect' + view.fullPath })\r\n } else {\r\n this.$router.push('/')\r\n }\r\n }\r\n },\r\n openMenu(tag, e) {\r\n const menuMinWidth = 105\r\n const offsetLeft = this.$el.getBoundingClientRect().left // container margin left\r\n const offsetWidth = this.$el.offsetWidth // container width\r\n const maxLeft = offsetWidth - menuMinWidth // left boundary\r\n const left = e.clientX - offsetLeft + 15 // 15: margin right\r\n\r\n if (left > maxLeft) {\r\n this.left = maxLeft\r\n } else {\r\n this.left = left\r\n }\r\n\r\n this.top = e.clientY\r\n this.visible = true\r\n this.selectedTag = tag\r\n },\r\n closeMenu() {\r\n this.visible = false\r\n },\r\n handleScroll() {\r\n this.closeMenu()\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.tags-view-container {\r\n height: 34px;\r\n width: 100%;\r\n background: #fff;\r\n border-bottom: 1px solid #d8dce5;\r\n box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04);\r\n .tags-view-wrapper {\r\n .tags-view-item {\r\n display: inline-block;\r\n position: relative;\r\n cursor: pointer;\r\n height: 26px;\r\n line-height: 26px;\r\n border: 1px solid #d8dce5;\r\n color: #495060;\r\n background: #fff;\r\n padding: 0 8px;\r\n font-size: 12px;\r\n margin-left: 5px;\r\n margin-top: 4px;\r\n &:first-of-type {\r\n margin-left: 15px;\r\n }\r\n &:last-of-type {\r\n margin-right: 15px;\r\n }\r\n &.active {\r\n background-color: #42b983;\r\n color: #fff;\r\n border-color: #42b983;\r\n &::before {\r\n content: '';\r\n background: #fff;\r\n display: inline-block;\r\n width: 8px;\r\n height: 8px;\r\n border-radius: 50%;\r\n position: relative;\r\n margin-right: 2px;\r\n }\r\n }\r\n }\r\n }\r\n .contextmenu {\r\n margin: 0;\r\n background: #fff;\r\n z-index: 3000;\r\n position: absolute;\r\n list-style-type: none;\r\n padding: 5px 0;\r\n border-radius: 4px;\r\n font-size: 12px;\r\n font-weight: 400;\r\n color: #333;\r\n box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, .3);\r\n li {\r\n margin: 0;\r\n padding: 7px 16px;\r\n cursor: pointer;\r\n &:hover {\r\n background: #eee;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n\r\n<style lang=\"scss\">\r\n//reset element css of el-icon-close\r\n.tags-view-wrapper {\r\n .tags-view-item {\r\n .el-icon-close {\r\n width: 16px;\r\n height: 16px;\r\n vertical-align: 2px;\r\n border-radius: 50%;\r\n text-align: center;\r\n transition: all .3s cubic-bezier(.645, .045, .355, 1);\r\n transform-origin: 100% 50%;\r\n &:before {\r\n transform: scale(.6);\r\n display: inline-block;\r\n vertical-align: -3px;\r\n }\r\n &:hover {\r\n background-color: #b4bccc;\r\n color: #fff;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n"],"mappings":"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"}]}