1 |
- {"remainingRequest":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\boman-framwork\\ruoyi-ui\\src\\components\\MutipleSelectPop\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\boman-framwork\\ruoyi-ui\\src\\components\\MutipleSelectPop\\index.vue","mtime":1619607677279},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCiAgaW1wb3J0IHsKICAgICBhZGRHZW5tdXRpcG9yLAogICAgIGFkZEdlbm11dGlwb3J1ZGVyLAogICAgIGFkZEdlbm11dGlwb3J0cmVlCiAgICB9IGZyb20gIkAvYXBpL2FjdGl2aXRpL2RlZmluaXRpb24iOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogIk11dGlwbGUiLAogIHByb3BzOiB7CiAgICAvLyB0cmVlZGF0YTogewogICAgLy8gICB0eXBlOiBBcnJheSwKICAgIC8vICAgZGVmYXVsdCgpIHsKICAgIC8vICAgICByZXR1cm4gW107CiAgICAvLyAgIH0KICAgIC8vIH0sCiAgICAvLyBjb21wb25lbnREYXRhOiB7CiAgICAvLyAgIHR5cGU6IEFycmF5LAogICAgLy8gICBkZWZhdWx0KCkgewogICAgLy8gICAgIHJldHVybiBbXTsKICAgIC8vICAgfQogICAgLy8gfSwKICAgIHJlc3VsdERhdGE6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0KCkgewogICAgICAgIHJldHVybiB7fTsKICAgICAgfQogICAgfSwKICAgIGxvYWRpbmc6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICAvLyB0cmVlTG9hZGluZzogewogICAgLy8gICB0eXBlOiBCb29sZWFuLAogICAgLy8gICBkZWZhdWx0OiBmYWxzZQogICAgLy8gfSwKICAgIC8vIHRhYmxlTG9hZGluZzogewogICAgLy8gICB0eXBlOiBCb29sZWFuLAogICAgLy8gICBkZWZhdWx0OiBmYWxzZQogICAgLy8gfSwKICAgIG9wZW46IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICBpY29uX2RlbGVjdDogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICJpY29uZm9udCAgaWNvbi1ial9kZWxldGUiCiAgICB9LAogICAgY2hlY2tlZExpc3Q6IHsKICAgICAgdHlwZTogQXJyYXksCiAgICAgIGRlZmF1bHQoKSB7CiAgICAgICAgcmV0dXJuIFtdOwogICAgICB9CiAgICB9LAogICAgLy8gdGFibGVTZWFyY2g6IHsKICAgIC8vICAgdHlwZTogU3RyaW5nLAogICAgLy8gICBkZWZhdWx0OiAiIgogICAgLy8gfSwKICAgIGlzVXNlOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IHRydWUKICAgIH0sCiAgICBpc011dGlwbGU6IHsKICAgICAgLy/mmK/lkKblpJrpgIkKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogdHJ1ZQogICAgfSwKICAgIC8vIGlzUmVzdWx0U2hvdzogewogICAgLy8gICAvL3Jlc3VsdC5saXN05piv5ZCm5Y+N5pi+CiAgICAvLyAgIHR5cGU6IEJvb2xlYW4sCiAgICAvLyAgIGRlZmF1bHQ6IHRydWUKICAgIC8vIH0sCiAgICBpc0NhbGxJbnRlcmZhY2U6IHsKICAgICAgLy/nlKjmnaXmjqfliLbosIPnlKjmjqXlj6Pmi7/liLDmlbDmja4gLy/kuZ/lj6/ku6XnkIbop6PkuLrlvLnmoYblhbPpl63nirbmgIEKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0KICB9LAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICB0YWJsZUxvYWRpbmc6IGZhbHNlLAogICAgICB0cmVlTG9hZGluZzogZmFsc2UsCiAgICAgIHRyZWU6IHsKICAgICAgICBwbGFjZWhvbGRlcjogIuWPr+aQnOe0ouW6l+S7ky/pg6jpl6giLAogICAgICAgIHNlYXJjaDogIiIKICAgICAgfSwKICAgICAgdGFibGU6IHsKICAgICAgICAvL+ihqOagvOaYvuekuumDqOWIhuaQnOe0ogogICAgICAgIHBsYWNlaG9sZGVyOiAi55u05o6l6L6T5YWl5Lq65ZGY5aeT5ZCN5pCc57SiIiwKICAgICAgICBzZWFyY2g6ICIiCiAgICAgIH0sCiAgICAgIGNvbHVtbnM6IFtdLAogICAgICB0cmVlTmV3RGF0YTogW10sCiAgICAgIHNob3dUcmVlOiB0aGlzLm9wZW4sCiAgICAgIGNvbXBvbmVudHQ6IFsKICAgICAgICB7CiAgICAgICAgICB0YWI6ICLnrZvpgInnu5PmnpwiLAogICAgICAgICAgY29sdW1uczogWwogICAgICAgICAgICB7IGtleTogIk5BTUUiLCB0aXRsZTogIueUqOaIt+WQjSIgfSwKICAgICAgICAgICAgeyBrZXk6ICJFTkFNRSIsIHRpdGxlOiAi55So5oi35aeT5ZCNIiB9CiAgICAgICAgICBdLAogICAgICAgICAgbGlzdDogW10sCiAgICAgICAgICB0b3RhbDogMCwKICAgICAgICAgIHBhZ2VTaXplOiAxMCwKICAgICAgICAgIHBhZ2VOdW06IDEsIC8v5b2T5YmN6aG156CBCiAgICAgICAgICBwYWdlT3B0aW9uczogWzEwLCAyMCwgNTAsIDEwMF0sCiAgICAgICAgICBoZWlnaHQ6IDM0MAogICAgICAgIH0KICAgICAgXSwKICAgICAgcmVzdWx0UmlnaHREYXRhOiB7CiAgICAgICAgdG90YWw6IDAsCiAgICAgICAgbGlzdDogW10KICAgICAgfSwKICAgICAgdGVtcGxhdGVOYW1lOiAiIiwKICAgICAgaW5kZXg6IDAsCiAgICAgIHF1ZXJ5U3R5bGU6IHsKICAgICAgICBjb2xvcjogIiNmZDY0NDIiCiAgICAgIH0sCiAgICAgIHNlbGVjdFJvdzogW10sIC8v6KGo5qC86YCJ5Lit55qE5pWw5o2uCiAgICAgIHNlbGVjdERhdGFzOiB7fSwgLy/ljZXooYzpgInkuK0KICAgICAgb2JqOiB7fSAvLwogICAgfTsKICB9LAogIGNvbXB1dGVkOiB7CiAgICB0cmVlTGlzdHMoKSB7CiAgICAgIC8vIHRoaXMudHJlZU5ld0RhdGEgPSB0aGlzLnRyZWVkYXRhOwogICAgICByZXR1cm4gdGhpcy50cmVlTmV3RGF0YTsKICAgIH0sCiAgICBUYWJQYW5lRGF0YSgpIHsKICAgICAgLy8gbGV0IGRhdGEgPSBPYmplY3QuYXNzaWduKHRoaXMuY29tcG9uZW50LCB0aGlzLmNvbXBvbmVudERhdGEpOwogICAgICAvLyByZXR1cm4gZGF0YTsKICAgICAgaWYgKHRoaXMuaXNNdXRpcGxlKSB7CiAgICAgICAgLy8gdGhpcy5jb21wb25lbnR0WzBdLmNvbHVtbnMudW5zaGlmdCh7CiAgICAgICAgLy8gICB0eXBlOiAic2VsZWN0aW9uIiwKICAgICAgICAvLyAgIGFsaWduOiAiY2VudGVyIiwKICAgICAgICAvLyAgIGZpeGVkOiAibGVmdCIsCiAgICAgICAgLy8gICB3aWR0aDogMzAKICAgICAgICAvLyB9KTsKICAgICAgfQogICAgICByZXR1cm4gdGhpcy5jb21wb25lbnR0OwogICAgfSwKICAgIHJlc3VsdE1lc3NhZ2UoKSB7CiAgICAgIC8vIGxldCBkYXRhID0gT2JqZWN0LmFzc2lnbih0aGlzLnJlc3VsdFJpZ2h0RGF0YSwgdGhpcy5yZXN1bHREYXRhKTsKICAgICAgcmV0dXJuIHRoaXMucmVzdWx0UmlnaHREYXRhOwogICAgfQogIH0sCiAgd2F0Y2g6IHsKICAgIGlzQ2FsbEludGVyZmFjZTogewogICAgICBoYW5kbGVyKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgewogICAgICAgIGlmIChuZXdWYWx1ZSkgewogICAgICAgICAgLy/miafooYzor7fmsYIKICAgICAgICAgIHRoaXMuY29tcG9uZW50dFswXS5wYWdlTnVtID0gMQogICAgICAgICAgdGhpcy5nZXRUcmVlRGF0YSgpOwogICAgICAgICAgaWYgKHRoaXMucmVzdWx0RGF0YS5saXN0KSB7CiAgICAgICAgICAgIHRoaXMucmVzdWx0UmlnaHREYXRhID0gdGhpcy5kZWVwQ29weSh0aGlzLnJlc3VsdERhdGEpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAodGhpcy5zZWxlY3RSb3cubGVuZ3RoID4gMCkgewogICAgICAgICAgICB0aGlzLnNlbGVjdFJvdyA9IFtdOwogICAgICAgICAgfQogICAgICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0RGF0YXMpLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgdGhpcy5zZWxlY3REYXRhcyA9IHt9OwogICAgICAgICAgfQogICAgICAgICAgaWYgKHRoaXMudGFibGUuc2VhcmNoKSB7CiAgICAgICAgICAgIHRoaXMudGFibGUuc2VhcmNoID0gIiI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfSwKICBtZXRob2RzOiB7CiAgICBkZWVwQ29weShvYmopIHsKICAgICAgLy/lhZHnjrDmt7Hmi7fotJ0KICAgICAgdmFyIHJlc3VsdCA9IEFycmF5LmlzQXJyYXkob2JqKSA/IFtdIDoge307CiAgICAgIGZvciAodmFyIGtleSBpbiBvYmopIHsKICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHsKICAgICAgICAgIGlmICh0eXBlb2Ygb2JqW2tleV0gPT09ICJvYmplY3QiICYmIG9ialtrZXldICE9PSBudWxsKSB7CiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdGhpcy5kZWVwQ29weShvYmpba2V5XSk7IC8v6YCS5b2S5aSN5Yi2CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXN1bHRba2V5XSA9IG9ialtrZXldOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gcmVzdWx0OwogICAgfSwKICAgIGdldFNlbGVjdGVkTm9kZXModmFsKSB7CiAgICAgIC8vIGlmICh0aGlzLmlzTXV0aXBsZSkgewogICAgICBpZiAodmFsLmxlbmd0aCA+IDApIHsKICAgICAgICB0aGlzLm9iaiA9IHt9OwogICAgICAgIHRoaXMuc2F2ZU9iaiA9IHZhbFswXTsKICAgICAgICBsZXQgc2VsZiA9IHRoaXM7CiAgICAgICAgbGV0IHZhbElEID0gIiI7CiAgICAgICAgaWYgKHZhbFswXS5JRC5pbmRleE9mKCIuIikgIT09IC0xKSB7CiAgICAgICAgICB2YWxJRCA9IHZhbFswXS5JRC5zcGxpdCgiLiIpWzFdOwogICAgICAgICAgdmFsSUQgPSBwYXJzZUludCh2YWxJRCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHZhbElEID0gcGFyc2VJbnQodmFsWzBdLklEKTsKICAgICAgICB9CgogICAgICAgIGlmICh2YWxbMF0uQ1BfQ19PUkdVUF9JRCA9PT0gbnVsbCkgewogICAgICAgICAgLy/moLnoioLngrkKICAgICAgICAgIHRoaXMuZmluZFVzZXIoe30pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAvL+W9k2l0ZW3nmoRUWVBF5Li65bqX5LuT5pe2CiAgICAgICAgICBpZiAodmFsWzBdLlRZUEUgPT09ICJDUF9DX1NUT1JFX0lEIikgewogICAgICAgICAgICB0aGlzLm9iai5DUF9DX1NUT1JFX0lEID0gImluKCIgKyB2YWxJRCArICIpIjsKICAgICAgICAgICAgc2VsZi5maW5kVXNlcihzZWxmLm9iaik7CiAgICAgICAgICB9CiAgICAgICAgICAvL+W9k2l0ZW3nmoRUWVBF5Li65L6b5bqU5ZWG5pe2CiAgICAgICAgICAvLyAg5b2TaXRlbeeahFRZUEXkuLrnu4Tnu4fml7YKICAgICAgICAgIGlmICh2YWxbMF0uVFlQRSA9PT0gIkNQX0NfSFJPUkdfSUQiKSB7CiAgICAgICAgICAgIGFkZEdlbm11dGlwb3IoeyBDUF9DX09SR1VQX0lEOiB2YWxJRCB9KQogICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7CiAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEucmVzdWx0Q29kZSA9PT0gMCkgewogICAgICAgICAgICAgICAgICBsZXQgSFJPUkcgPSAiaW4gKCI7IC8v5YKo5a2Y6ZSu5ZCN5Li6Q1BfQ19IUk9SR19JROWvueixoeeahElECiAgICAgICAgICAgICAgICAgIGxldCBTVE9SRSA9ICJpbiAoIjsgLy/lgqjlrZjplK7lkI3kuLpDUF9DX1NUT1JFX0lE5a+56LGh55qESUQKCiAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICByZXMuZGF0YS5kYXRhLkNQX0NfSFJPUkcgJiYKICAgICAgICAgICAgICAgICAgICByZXMuZGF0YS5kYXRhLkNQX0NfSFJPUkcubGVuZ3RoID4gMAogICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICByZXMuZGF0YS5kYXRhLkNQX0NfSFJPUkcuZm9yRWFjaChpdGVtID0+IHsKICAgICAgICAgICAgICAgICAgICAgIEhST1JHICs9IGl0ZW0uSUQgKyAiLCI7IC8vIGluIDEsMiwzLDUsNiw4Nyw4LDYKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuZGF0YS5DUF9DX0hST1JHLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgIHNlbGYub2JqLkNQX0NfSFJPUkdfSUQgPQogICAgICAgICAgICAgICAgICAgICAgICBIUk9SRy5zdWJzdHJpbmcoMCwgSFJPUkcubGVuZ3RoIC0gMSkgKyAiKSI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICByZXMuZGF0YS5kYXRhLkNQX0NfU1RPUkUgJiYKICAgICAgICAgICAgICAgICAgICByZXMuZGF0YS5kYXRhLkNQX0NfU1RPUkUubGVuZ3RoID4gMAogICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICByZXMuZGF0YS5kYXRhLkNQX0NfU1RPUkUuZm9yRWFjaChpdGVtID0+IHsKICAgICAgICAgICAgICAgICAgICAgIFNUT1JFICs9IGl0ZW0uSUQgKyAiLCI7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLmRhdGEuQ1BfQ19TVE9SRS5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICBzZWxmLm9iai5DUF9DX1NUT1JFX0lEID0KICAgICAgICAgICAgICAgICAgICAgICAgU1RPUkUuc3Vic3RyaW5nKDAsIFNUT1JFLmxlbmd0aCAtIDEpICsgIikiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBzZWxmLmZpbmRVc2VyKHNlbGYub2JqKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIHRoaXMuJE1vZGFsLmZjRXJyb3IoewogICAgICAgICAgICAgICAgICAgIHRpdGxlOiAi6ZSZ6K+v5o+Q56S6IiwKICAgICAgICAgICAgICAgICAgICBjb250ZW50OiByZXMuZGF0YS5yZXN1bHRNc2cKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgICAvLyBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgLy8gICBzZWxmLmZpbmRVc2VyKHNlbGYub2JqKTsKICAgICAgICAgIC8vIH0pOwogICAgICAgIH0KICAgICAgfQogICAgICAvLyB9CiAgICAgIHRoaXMuJGVtaXQoIm9uLXNlbGVjdC10cmVlIiwgdmFsLCB0aGlzKTsKICAgIH0sCiAgICBnZXRDaGVja2VkTm9kZXMob2JqKSB7CiAgICAgIHRoaXMuJGVtaXQoIm9uLWNoYW5nZS10cmVlIiwgb2JqLCB0aGlzKTsKICAgIH0sCiAgICB0YWJDbGljayhpbmRleCkgewogICAgICB0aGlzLmluZGV4ID0gaW5kZXg7CiAgICAgIHRoaXMuJGVtaXQoIm9uLWNsaWNrLXRhYiIsIGluZGV4LCB0aGlzKTsKICAgIH0sCiAgICBwYWdlQ2hhbmdlKGluZGV4KSB7CiAgICAgIHRoaXMuJGVtaXQoIm9uLWNoYW5nZS1wYWdlIiwgaW5kZXgsIHRoaXMpOwogICAgICB0aGlzLmNvbXBvbmVudHRbMF0ucGFnZU51bSA9IGluZGV4OwogICAgICBsZXQgcGFyYW0gPSBPYmplY3QuYXNzaWduKHRoaXMub2JqLCB7IHBhZ2U6IGluZGV4LCBwYWdlU2l6ZTogMTAgfSk7CiAgICAgIGlmICh0aGlzLnRhYmxlLnNlYXJjaCAhPT0gIiIpIHsKICAgICAgICBwYXJhbS5FTkFNRSA9IHRoaXMudGFibGUuc2VhcmNoOwogICAgICB9CiAgICAgIHRoaXMuZmluZFVzZXIocGFyYW0pOwogICAgfSwKICAgIHBhZ2VDaGFuZ2VTaXplKGluZGV4KSB7CiAgICAgIHRoaXMuJGVtaXQoIm9uLWNoYW5nZS1wYWdlU2l6ZSIsIGluZGV4LCB0aGlzKTsKICAgICAgdGhpcy5jb21wb25lbnR0WzBdLnBhZ2VTaXplID0gaW5kZXg7CiAgICAgIGxldCBwYXJhbSA9IE9iamVjdC5hc3NpZ24odGhpcy5vYmosIHsgcGFnZTogMSwgcGFnZVNpemU6IGluZGV4IH0pOwogICAgICBpZiAodGhpcy50YWJsZS5zZWFyY2ggIT09ICIiKSB7CiAgICAgICAgcGFyYW0uRU5BTUUgPSB0aGlzLnRhYmxlLnNlYXJjaDsKICAgICAgfQogICAgICB0aGlzLmZpbmRVc2VyKHBhcmFtKTsKICAgIH0sCiAgICByb3dkYkNsaWNrKHJvdywgaW5kZXgpIHsKICAgICAgbGV0IHNlbGVjdE9iaiA9IE9iamVjdC5hc3NpZ24oe30sIHJvdyk7CiAgICAgIGlmICghdGhpcy5pc011dGlwbGUpIHsKICAgICAgICBzZWxlY3RPYmouc3RyaW5nID0gc2VsZWN0T2JqLkVOQU1FOwogICAgICAgIGlmICh0aGlzLnJlc3VsdFJpZ2h0RGF0YS5saXN0KSB7CiAgICAgICAgICB0aGlzLnJlc3VsdFJpZ2h0RGF0YS5saXN0ID0gW107CiAgICAgICAgICB0aGlzLnJlc3VsdFJpZ2h0RGF0YS5saXN0LnB1c2goc2VsZWN0T2JqKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kc2V0KHRoaXMucmVzdWx0UmlnaHREYXRhLCAibGlzdCIsIFtzZWxlY3RPYmpdKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgbGV0IHNlbGVjdE9iaiA9IE9iamVjdC5hc3NpZ24oeyBhcHByb3ZlX3R5cGU6IDQgfSwgcm93KTsKICAgICAgICBzZWxlY3RPYmouc3RyaW5nID0gc2VsZWN0T2JqLkVOQU1FOwogICAgICAgIGlmICh0aGlzLnJlc3VsdFJpZ2h0RGF0YS5saXN0ICYmIHRoaXMucmVzdWx0UmlnaHREYXRhLmxpc3QubGVuZ3RoID4gMCkgewogICAgICAgICAgbGV0IGZsYWdJbmRleCA9IHRoaXMucmVzdWx0UmlnaHREYXRhLmxpc3QuZmluZEluZGV4KGlubmVyID0+IHsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICBzZWxlY3RPYmouSUQgPT09IGlubmVyLklEIHx8IHNlbGVjdE9iai5JRCA9PT0gTnVtYmVyKGlubmVyLmFwcHJvdmVfdmFsdWUpCiAgICAgICAgICAgICk7CiAgICAgICAgICB9KTsKICAgICAgICAgIGlmIChmbGFnSW5kZXggPT09IC0xKSB7CiAgICAgICAgICAgIC8v5rKh5pyJ5om+5Yiw55u45ZCM55qE5bCx5Yqg5YWlCiAgICAgICAgICAgIHRoaXMucmVzdWx0UmlnaHREYXRhLmxpc3QucHVzaChzZWxlY3RPYmopOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBzZWxlY3RPYmouRU5BTUUgKyAi5bey57uP6YCJ5oup6L+H5LqGLOivt+S4jeimgemHjeWkjemAieaLqe+8gSIsCiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuJHNldCh0aGlzLnJlc3VsdFJpZ2h0RGF0YSwgImxpc3QiLCBbc2VsZWN0T2JqXSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHRoaXMucmVzdWx0UmlnaHREYXRhLnRvdGFsCiAgICAgICAgPyAodGhpcy5yZXN1bHRSaWdodERhdGEudG90YWwgPSB0aGlzLnJlc3VsdFJpZ2h0RGF0YS5saXN0Lmxlbmd0aCkKICAgICAgICA6IHRoaXMuJHNldCgKICAgICAgICAgICAgdGhpcy5yZXN1bHRSaWdodERhdGEsCiAgICAgICAgICAgICJ0b3RhbCIsCiAgICAgICAgICAgIHRoaXMucmVzdWx0UmlnaHREYXRhLmxpc3QubGVuZ3RoCiAgICAgICAgICApOwogICAgICB0aGlzLiRlbWl0KCJnZXRSZXN1bHQiLCB0aGlzLnJlc3VsdFJpZ2h0RGF0YSk7CiAgICAgIHRoaXMuJHJlZnMuVGFibGVbMF0uY2xlYXJDdXJyZW50Um93KCk7CiAgICAgIHRoaXMuJGVtaXQoIm9uLXJvdy1kYmxjbGljayIsIHJvdywgaW5kZXgsIHRoaXMpOwogICAgfSwKICAgIHJvd0NsaWNrKHJvdywgaW5kZXgpIHsKICAgICAgaWYgKCF0aGlzLmlzTXV0aXBsZSkgewogICAgICAgIHRoaXMuc2VsZWN0RGF0YXMgPSBPYmplY3QuYXNzaWduKHRoaXMuc2VsZWN0RGF0YXMsIHJvdyk7CiAgICAgIH0KICAgICAgdGhpcy4kZW1pdCgib24tcm93LWNsaWNrIiwgcm93LCBpbmRleCwgdGhpcyk7CiAgICB9LAogICAgT25zZWxlY3Qoc2VsZWN0aW9uLCByb3cpIHsKICAgICAgaWYgKHRoaXMuaXNNdXRpcGxlKSB7CiAgICAgICAgdGhpcy5jb21wb25lbnR0WzBdLmxpc3QubWFwKGl0ZW0gPT4gewogICAgICAgICAgaWYgKHJvdy5JRCA9PT0gaXRlbS5JRCkgewogICAgICAgICAgICBpdGVtLl9jaGVja2VkID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICB0aGlzLnNlbGVjdFJvdyA9IFtdOwogICAgICAgIHRoaXMuc2VsZWN0Um93ID0gc2VsZWN0aW9uOwogICAgICB9CgogICAgICB0aGlzLiRlbWl0KCJvbi1zZWxlY3QiLCBzZWxlY3Rpb24sIHJvdyk7CiAgICB9LAogICAgb25TZWxlY3RDYW5jZWwoc2VsZWN0aW9uLCByb3cpIHsKICAgICAgdGhpcy5jb21wb25lbnR0WzBdLmxpc3QubWFwKGl0ZW0gPT4gewogICAgICAgIGlmIChyb3cuSUQgPT09IGl0ZW0uSUQpIHsKICAgICAgICAgIGl0ZW0uX2NoZWNrZWQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICB0aGlzLnNlbGVjdFJvdyA9IFtdOwogICAgICB0aGlzLnNlbGVjdFJvdyA9IHNlbGVjdGlvbjsKICAgICAgdGhpcy4kZW1pdCgib24tc2VsZWN0LWNhbmNlbCIsIHNlbGVjdGlvbiwgcm93KTsKICAgIH0sCiAgICBvblNlbGVjdEFsbChzZWxlY3Rpb24pIHsKICAgICAgdGhpcy5zZWxlY3RSb3cgPSBbXTsKICAgICAgdGhpcy5jb21wb25lbnR0WzBdLmxpc3QubWFwKGl0ZW0gPT4gewogICAgICAgIGl0ZW0uX2NoZWNrZWQgPSB0cnVlOwogICAgICB9KTsKICAgICAgdGhpcy5zZWxlY3RSb3cgPSBzZWxlY3Rpb247CiAgICAgIHRoaXMuJGVtaXQoIm9uLXNlbGVjdC1hbGwiLCBzZWxlY3Rpb24pOwogICAgfSwKICAgIG9uU2VsZWN0QWxsQ2FuY2VsKHNlbGVjdGlvbikgewogICAgICB0aGlzLmNvbXBvbmVudHRbMF0ubGlzdC5tYXAoaXRlbSA9PiB7CiAgICAgICAgaXRlbS5fY2hlY2tlZCA9IGZhbHNlOwogICAgICB9KTsKICAgICAgdGhpcy5zZWxlY3RSb3cgPSBbXTsKICAgICAgdGhpcy4kZW1pdCgib24tc2VsZWN0LWFsbC1jYW5jZWwiLCBzZWxlY3Rpb24pOwogICAgfSwKICAgIG9uU2VsZWN0Q2hhbmdlKHNlbGVjdGlvbikgewogICAgICB0aGlzLiRlbWl0KCJvbi1zZWxlY3QtY2hhbmdlIiwgc2VsZWN0aW9uKTsKICAgIH0sCiAgICBpbnB1dGNoYW5nZShldmVudCkgewogICAgICAvLyBpZighdGhpcy5pc1VzZSYmIXRoaXMuaXNNdXRpcGxlKXsKICAgICAgdGhpcy50YWJsZS5zZWFyY2ggPSBldmVudC50YXJnZXQudmFsdWU7CiAgICAgIC8vIH0KICAgICAgdGhpcy4kZW1pdCgib24tY2hhbmdlIiwgZXZlbnQsIHRoaXMpOwogICAgfSwKICAgIGlucHV0a2V5ZG93bihldmVudCkgewogICAgICB0aGlzLiRlbWl0KCJvbi1rZXlkb3duIiwgZXZlbnQsIHRoaXMpOwogICAgfSwKICAgIGlucHV0c2VhcmNoKGV2ZW50KSB7CiAgICAgIGxldCBwYXJhbSA9IE9iamVjdC5hc3NpZ24odGhpcy5vYmosIHsKICAgICAgICBwYWdlOiAxLAogICAgICAgIHBhZ2VTaXplOiAxMCwKICAgICAgICBFTkFNRTogZXZlbnQKICAgICAgfSk7CiAgICAgIHRoaXMuZmluZFVzZXIocGFyYW0pOwogICAgICB0aGlzLiRlbWl0KCJvbi1zZWFyY2giLCBldmVudCwgdGhpcyk7CiAgICB9LAogICAgb3BlcmF0aW9uVHdvKCkgewogICAgICBsZXQgc2VsZWN0Tm9kZSA9IHRoaXMuJHJlZnMuVHJlZS5nZXRDaGVja2VkTm9kZXMoKTsKICAgICAgc2VsZWN0Tm9kZSA9IHNlbGVjdE5vZGUuZmlsdGVyKGl0ZW0gPT4gaXRlbS50aXRsZSAhPT0n5YWo6YOoJykKICAgICAgaWYgKHRoaXMuaXNNdXRpcGxlKSB7CiAgICAgICAgaWYgKHNlbGVjdE5vZGUubGVuZ3RoID4gMCkgewogICAgICAgICAgdGhpcy5yZXN1bHRSaWdodERhdGEudG90YWwKICAgICAgICAgICAgPyB0aGlzLiRzZXQodGhpcy5yZXN1bHRSaWdodERhdGEsICJ0b3RhbCIsIHRoaXMucmVzdWx0RGF0YS50b3RhbCArIHNlbGVjdE5vZGUubGVuZ3RoKQogICAgICAgICAgICA6IHRoaXMuJHNldCh0aGlzLnJlc3VsdFJpZ2h0RGF0YSwgInRvdGFsIiwgc2VsZWN0Tm9kZS5sZW5ndGgpOwogICAgICAgICAgc2VsZWN0Tm9kZS5tYXAoaXRlbSA9PiB7CiAgICAgICAgICAgIGxldCBzZWxlY3RPYmogPSBPYmplY3QuYXNzaWduKHsgYXBwcm92ZV90eXBlOiAyIH0sIGl0ZW0pOwogICAgICAgICAgICBzZWxlY3RPYmouc3RyaW5nID0gaXRlbS5FTkFNRTsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgIHRoaXMucmVzdWx0UmlnaHREYXRhLmxpc3QgJiYKICAgICAgICAgICAgICB0aGlzLnJlc3VsdFJpZ2h0RGF0YS5saXN0Lmxlbmd0aCA+IDAKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgbGV0IGZsYWdJbmRleCA9IHRoaXMucmVzdWx0UmlnaHREYXRhLmxpc3QuZmluZEluZGV4KGlubmVyID0+IHsKICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLklEID09PSBpbm5lci5JRCB8fCBpdGVtLklEID09PSBOdW1iZXIoaW5uZXIuYXBwcm92ZV92YWx1ZSk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgaWYgKGZsYWdJbmRleCA9PT0gLTEpIHsKICAgICAgICAgICAgICAgIC8v5rKh5pyJ5om+5Yiw55u45ZCM55qE5bCx5Yqg5YWlCiAgICAgICAgICAgICAgICB0aGlzLnJlc3VsdFJpZ2h0RGF0YS5saXN0LnB1c2goc2VsZWN0T2JqKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAgaXRlbS5FTkFNRSArICLlt7Lnu4/pgInmi6nov4fkuoYs6K+35LiN6KaB6YeN5aSN6YCJ5oup77yBIiwKICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0aGlzLiRzZXQodGhpcy5yZXN1bHRSaWdodERhdGEsICJsaXN0IiwgW3NlbGVjdE9ial0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaGlzLiRtZXNzYWdlKHsKICAgICAgICAgICAgICAgICAgbWVzc2FnZToi6K+36YCJ5oup6YOo6Zeo77yBIiwKICAgICAgICAgICAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgIC8vIHRoaXMuJE1lc3NhZ2Uud2FybmluZygi6K+36YCJ5oup6YOo6ZeoIik7CiAgICAgICAgfQogICAgICAgIHRoaXMuZ2V0VHJlZURhdGEoKTsKICAgICAgfQogICAgICBpZiAodGhpcy5zZWxlY3RSb3cubGVuZ3RoID4gMCkgewogICAgICAgIC8v6YCJ5Lit54q25oCB55qE5riF6ZmkCiAgICAgICAgdGhpcy5zZWxlY3RSb3cgPSBbXTsKICAgICAgfQogICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5zZWxlY3REYXRhcykubGVuZ3RoID4gMCkgewogICAgICAgIHRoaXMuc2VsZWN0RGF0YXMgPSB7fTsKICAgICAgfQogICAgICB0aGlzLiRlbWl0KCJnZXRSZXN1bHQiLCB0aGlzLnJlc3VsdFJpZ2h0RGF0YSk7CiAgICAgIHRoaXMuJGVtaXQoIm9uLXRyYW5zZmVyLXR3byIsIHNlbGVjdE5vZGUsIHRoaXMpOwogICAgfSwKICAgIG9wZXJhdGlvbigpIHsKICAgICAgaWYgKCF0aGlzLmlzTXV0aXBsZSkgewogICAgICAgIC8v5Y2V6YCJ6YC76L6RCiAgICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0RGF0YXMpLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeS6uuWRmCcsCiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgLy8gdGhpcy4kTWVzc2FnZS53YXJuaW5nKCLor7fpgInmi6nkurrlkZgiKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdGhpcy5yZXN1bHRSaWdodERhdGEudG90YWwKICAgICAgICAgID8gKHRoaXMucmVzdWx0UmlnaHREYXRhLnRvdGFsID0gMSkKICAgICAgICAgIDogdGhpcy4kc2V0KHRoaXMucmVzdWx0UmlnaHREYXRhLCAidG90YWwiLCAxKTsKICAgICAgICBsZXQgc2VsZWN0T2JqID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zZWxlY3REYXRhcyk7CiAgICAgICAgc2VsZWN0T2JqLnN0cmluZyA9IHNlbGVjdE9iai5FTkFNRTsKICAgICAgICBpZiAodGhpcy5yZXN1bHRSaWdodERhdGEubGlzdCkgewogICAgICAgICAgdGhpcy5yZXN1bHRSaWdodERhdGEubGlzdCA9IFtdOwogICAgICAgICAgdGhpcy5yZXN1bHRSaWdodERhdGEubGlzdC5wdXNoKHNlbGVjdE9iaik7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuJHNldCh0aGlzLnJlc3VsdFJpZ2h0RGF0YSwgImxpc3QiLCBbc2VsZWN0T2JqXSk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIC8v5aSa6YCJ6YC76L6RCiAgICAgICAgaWYgKHRoaXMuc2VsZWN0Um93Lmxlbmd0aCA+IDApIHsKICAgICAgICAgIHRoaXMuc2VsZWN0Um93Lm1hcChpdGVtID0+IHsKICAgICAgICAgICAgbGV0IHNlbGVjdE9iaiA9IE9iamVjdC5hc3NpZ24oeyBhcHByb3ZlX3R5cGU6IDQgfSwgaXRlbSk7CiAgICAgICAgICAgIHNlbGVjdE9iai5zdHJpbmcgPSBpdGVtLkVOQU1FOwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgdGhpcy5yZXN1bHRSaWdodERhdGEubGlzdCAmJgogICAgICAgICAgICAgIHRoaXMucmVzdWx0UmlnaHREYXRhLmxpc3QubGVuZ3RoID4gMAogICAgICAgICAgICApIHsKICAgICAgICAgICAgICBsZXQgZmxhZ0luZGV4ID0gdGhpcy5yZXN1bHRSaWdodERhdGEubGlzdC5maW5kSW5kZXgoaW5uZXIgPT4gewogICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uSUQgPT09IGlubmVyLklEIHx8IGl0ZW0uSUQgPT09IE51bWJlcihpbm5lci5hcHByb3ZlX3ZhbHVlKTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBpZiAoZmxhZ0luZGV4ID09PSAtMSkgewogICAgICAgICAgICAgICAgLy/msqHmnInmib7liLDnm7jlkIznmoTlsLHliqDlhaUKICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0UmlnaHREYXRhLmxpc3QucHVzaChzZWxlY3RPYmopOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBpdGVtLkVOQU1FICsgIuW3sue7j+mAieaLqei/h+S6hizor7fkuI3opoHph43lpI3pgInmi6nvvIEiLAogICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIC8vIHRoaXMuJE1lc3NhZ2Uud2FybmluZygKICAgICAgICAgICAgICAgIC8vICAgaXRlbS5FTkFNRSArICLlt7Lnu4/pgInmi6nov4fkuoYs6K+35LiN6KaB6YeN5aSN6YCJ5oup77yBIgogICAgICAgICAgICAgICAgLy8gKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgdGhpcy4kc2V0KHRoaXMucmVzdWx0UmlnaHREYXRhLCAibGlzdCIsIFtzZWxlY3RPYmpdKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICB0aGlzLnJlc3VsdFJpZ2h0RGF0YS50b3RhbAogICAgICAgICAgICA/ICh0aGlzLnJlc3VsdFJpZ2h0RGF0YS50b3RhbCA9IHRoaXMucmVzdWx0UmlnaHREYXRhLmxpc3QubGVuZ3RoKQogICAgICAgICAgICA6IHRoaXMuJHNldCgKICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0UmlnaHREYXRhLAogICAgICAgICAgICAgICAgInRvdGFsIiwKICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0UmlnaHREYXRhLmxpc3QubGVuZ3RoCiAgICAgICAgICAgICAgKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeS6uuWRmCcsCiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgLy8gdGhpcy4kTWVzc2FnZS53YXJuaW5nKCLor7fpgInmi6nkurrlkZgiKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgLy/liLfmlrDooajmoLzmlbDmja4KICAgICAgdGhpcy5jb21wb25lbnR0WzBdLmxpc3QubWFwKGl0ZW0gPT4gewogICAgICAgIGl0ZW0uX2NoZWNrZWQgPSBmYWxzZTsKICAgICAgfSk7CiAgICAgIHRoaXMuY29tcG9uZW50dFswXS5saXN0ID0gdGhpcy5jb21wb25lbnR0WzBdLmxpc3QuY29uY2F0KFtdKTsKICAgICAgaWYgKHRoaXMuc2VsZWN0Um93Lmxlbmd0aCA+IDApIHsKICAgICAgICAvL+mAieS4reeKtuaAgeeahOa4hemZpAogICAgICAgIHRoaXMuc2VsZWN0Um93ID0gW107CiAgICAgIH0KICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0RGF0YXMpLmxlbmd0aCA+IDApIHsKICAgICAgICB0aGlzLnNlbGVjdERhdGFzID0ge307CiAgICAgIH0KICAgICAgdGhpcy4kZW1pdCgiZ2V0UmVzdWx0IiwgdGhpcy5yZXN1bHRSaWdodERhdGEpOwogICAgICB0aGlzLiRlbWl0KCJvbi10cmFuc2ZlciIsIHRoaXMpOwogICAgfSwKICAgIGRlbGV0ZUxpKGluZGV4LCB0ZW0pIHsKICAgICAgbGV0IHNlbGVjdE5vZGUgPSB0aGlzLiRyZWZzLlRyZWUuZ2V0Q2hlY2tlZE5vZGVzKCk7CiAgICAgIGlmIChzZWxlY3ROb2RlICYmIHNlbGVjdE5vZGUubGVuZ3RoID4gMCkgewogICAgICAgIHNlbGVjdE5vZGUubWFwKGluSXRlbSA9PiB7CiAgICAgICAgICBpZiAoaW5JdGVtLklEID09PSB0ZW0uSUQpIHsKICAgICAgICAgICAgdGhpcy4kcmVmcy5UcmVlLmhhbmRsZUNoZWNrKHsKICAgICAgICAgICAgICBjaGVja2VkOiBmYWxzZSwKICAgICAgICAgICAgICBub2RlS2V5OiBpbkl0ZW0ubm9kZUtleQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICBsZXQgc2VsZWN0cm93ID0gdGhpcy5UYWJQYW5lRGF0YVswXS5saXN0OyAvL+ihqOagvOaVsOaNrgogICAgICBzZWxlY3Ryb3cubWFwKChyb3csIEluZGV4KSA9PiB7CiAgICAgICAgaWYgKHJvdy5JRCA9PT0gdGVtLklEKSB7CiAgICAgICAgICByb3cuX2NoZWNrZWQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICB0aGlzLnJlc3VsdFJpZ2h0RGF0YS5saXN0LnNwbGljZShpbmRleCwgMSk7CiAgICAgIHRoaXMucmVzdWx0UmlnaHREYXRhLnRvdGFsID0gdGhpcy5yZXN1bHRSaWdodERhdGEubGlzdC5sZW5ndGg7CiAgICAgIHRoaXMuJGVtaXQoImdldFJlc3VsdCIsIHRoaXMucmVzdWx0UmlnaHREYXRhKTsKICAgICAgdGhpcy4kZW1pdCgib24tZGVsZWN0bGkiLCBpbmRleCwgdGVtLCB0aGlzKTsKICAgIH0sCiAgICB0cmVlT3BlbihjaGVja2VkKSB7CiAgICAgIHRoaXMuc2hvd1RyZWUgPSAhY2hlY2tlZDsKICAgICAgdGhpcy50cmVlTmV3RGF0YS5mb3JFYWNoKGl0ZW0gPT4gewogICAgICAgIGl0ZW0uZXhwYW5kID0gIWl0ZW0uZXhwYW5kOwogICAgICB9KTsKICAgIH0sCiAgICBkZWxlY0Z1bigpIHsKICAgICAgbGV0IHNlbGVjdE5vZGUgPSB0aGlzLiRyZWZzLlRyZWUuZ2V0Q2hlY2tlZE5vZGVzKCk7CiAgICAgIGlmIChzZWxlY3ROb2RlICYmIHNlbGVjdE5vZGUubGVuZ3RoID4gMCkgewogICAgICAgIHNlbGVjdE5vZGUubWFwKGluSXRlbSA9PiB7CiAgICAgICAgICB0aGlzLiRyZWZzLlRyZWUuaGFuZGxlQ2hlY2soewogICAgICAgICAgICBjaGVja2VkOiBmYWxzZSwKICAgICAgICAgICAgbm9kZUtleTogaW5JdGVtLm5vZGVLZXkKICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIGxldCBzZWxlY3Ryb3cgPSB0aGlzLlRhYlBhbmVEYXRhWzBdLmxpc3Q7IC8v6KGo5qC85pWw5o2uCiAgICAgIGlmIChzZWxlY3Ryb3cgJiYgc2VsZWN0cm93Lmxlbmd0aCA+IDApIHsKICAgICAgICBzZWxlY3Ryb3cubWFwKChyb3csIEluZGV4KSA9PiB7CiAgICAgICAgICByb3cuX2NoZWNrZWQgPSBmYWxzZTsKICAgICAgICB9KTsKICAgICAgfQogICAgICB0aGlzLiRlbWl0KCJvbi1kZWxlQnRuIiwgdGhpcyk7CiAgICAgIHRoaXMucmVzdWx0UmlnaHREYXRhLnRvdGFsID0gMDsKICAgICAgdGhpcy5yZXN1bHRSaWdodERhdGEubGlzdCA9IFtdOwogICAgICB0aGlzLmNvbXBvbmVudHRbMF0ubGlzdC5tYXAoaXRlbSA9PiB7CiAgICAgICAgaXRlbS5fY2hlY2tlZCA9IGZhbHNlOwogICAgICB9KTsKICAgICAgdGhpcy5jb21wb25lbnR0WzBdLmxpc3QgPSB0aGlzLmNvbXBvbmVudHRbMF0ubGlzdC5jb25jYXQoW10pOwogICAgICB0aGlzLiRlbWl0KCJnZXRSZXN1bHQiLCB0aGlzLnJlc3VsdFJpZ2h0RGF0YSk7CiAgICB9LAogICAgLy/mn6Xmib7nlKjmiLfkv6Hmga8KICAgIGZpbmRVc2VyKHBhcmFtKSB7CiAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTsKICAgICAgYWRkR2VubXV0aXBvcnVkZXIoIHBhcmFtKS50aGVuKHJlcyA9PiB7CiAgICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTsKICAgICAgICBsZXQgZGF0YSA9IHJlcy5kYXRhOwogICAgICAgIGlmIChkYXRhLmNvZGUgPT09IDApIHsKICAgICAgICAgIGlmIChkYXRhLmRhdGEpIHsKICAgICAgICAgICAgdGhpcy50cmFuc2ZlclRib2R5KGRhdGEuZGF0YSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZGF0YS5kYXRhcykgewogICAgICAgICAgICB0aGlzLnRyYW5zZmVyVGJvZHkoZGF0YS5kYXRhcyk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICAvL+ihqOagvOS9k+aVsOaNrui9rOWMlgogICAgdHJhbnNmZXJUYm9keShkYXRhKSB7CiAgICAgIHRoaXMuY29tcG9uZW50dFswXS50b3RhbCA9IGRhdGEudG90YWxSb3dDb3VudDsKICAgICAgdGhpcy5jb21wb25lbnR0WzBdLnBhZ2VPcHRpb25zID0gZGF0YS5zZWxlY3RyYW5nZTsKICAgICAgdGhpcy5jb21wb25lbnR0WzBdLmxpc3QgPSBbXTsKICAgICAgZGF0YS5yb3cubWFwKGl0ZW0gPT4gewogICAgICAgIGxldCB0ZW0gPSB7fTsKICAgICAgICBsZXQgdGVtdmFsID0ge307CiAgICAgICAgT2JqZWN0LmtleXMoaXRlbSkubWFwKGlubmVyID0+IHsKICAgICAgICAgIHRlbVtpbm5lcl0gPSBpdGVtW2lubmVyXS52YWw7CiAgICAgICAgfSk7CiAgICAgICAgdGVtdmFsID0gT2JqZWN0LmFzc2lnbih7fSwgdGVtKTsKICAgICAgICB0aGlzLmNvbXBvbmVudHRbMF0ubGlzdC5wdXNoKHRlbSk7CiAgICAgIH0pOwogICAgfSwKICAgIC8v6I635Y+W5qCR5pWw5o2uCiAgICAgZ2V0VHJlZURhdGEoKSB7CiAgICAgIHRoaXMudHJlZV9sb2FkaW5nID0gdHJ1ZTsKICAgICAgYWRkR2VubXV0aXBvcnRyZWUoKS50aGVuKHJlcyA9PiB7CiAgICAgICAgdGhpcy50cmVlX2xvYWRpbmcgPSBmYWxzZTsKICAgICAgICBpZiAocmVzLmRhdGEucmVzdWx0Q29kZSA9PT0gMCkgewogICAgICAgICAgdGhpcy50cmVlTmV3RGF0YSA9IFtdOwogICAgICAgICAgbGV0IG5ld0FyciA9IFtdOwogICAgICAgICAgbGV0IHJvb3QgPSB7fTsKICAgICAgICAgIGlmIChyZXMuZGF0YS5kYXRhLnJlY29yZHMubGVuZ3RoID4gMCkgewogICAgICAgICAgICByZXMuZGF0YS5kYXRhLnJlY29yZHMuZm9yRWFjaChpdGVtID0+IHsKICAgICAgICAgICAgICBsZXQgdGVtID0gT2JqZWN0LmFzc2lnbihpdGVtKTsKICAgICAgICAgICAgICBuZXdBcnIucHVzaCh0ZW0pOwogICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgIGl0ZW1bIkNQX0NfT1JHVVBfSUQiXSA9PT0gbnVsbCB8fAogICAgICAgICAgICAgICAgaXRlbVsiQ1BfQ19PUkdVUF9JRCJdID09PSAiIgogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgcm9vdCA9IE9iamVjdC5hc3NpZ24oe30sIGl0ZW0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRoaXMudHJlZU5ld0RhdGEgPSB0aGlzLmFycmF5VHJhbnNUcmVlKG5ld0FyciwgIkNQX0NfT1JHVVBfSUQiKTsKICAgICAgICAgIH0KICAgICAgICAgIHRoaXMuZmluZFVzZXIoe30pOyAvL+aYvuekuuaJgOacieeahOeUqOaItwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAoKICAgIC8v5pS56YCg5qCR5pWw5o2u55qE57uT5p6ECiAgICBhcnJheVRyYW5zVHJlZShsaXN0LCBrZXkpIHsKICAgICAgbGV0IHBhcmVudCA9IFtdOwogICAgICBsZXQgY2hpbGRyZW4gPSBbXTsKICAgICAgbGlzdC5tYXAoaXRlbSA9PiB7CiAgICAgICAgaXRlbS5leHBhbmQgPSBmYWxzZTsKICAgICAgICBpdGVtLnRpdGxlID0gaXRlbS5FTkFNRTsKICAgICAgICBpZiAoCiAgICAgICAgICAhaXRlbVtrZXldfHwKICAgICAgICAgIChpdGVtW2tleV0uaW5kZXhPZignLicpIT09LTEmJiFpdGVtW2tleV0uc3BsaXQoIi4iKVsxXSkKICAgICAgICApIHsKICAgICAgICAgIC8v5qC56IqC54K5CiAgICAgICAgICBwYXJlbnQucHVzaChpdGVtKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgLy/mnInniLboioLngrnnmoQKICAgICAgICAgIGNoaWxkcmVuLnB1c2goaXRlbSk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgaWYgKHBhcmVudC5sZW5ndGggPCAxKSB7CiAgICAgICAgLy/msqHmnInmoLnoioLngrkKICAgICAgICBsZXQgbmV3UGFyZW50ID0gdGhpcy5maW5kVHJlZVJvb3RGaXJzdENoaWxkKGxpc3QsIGtleSk7IC8v5ou/5Yiw5LiA57qn6IqC54K5CiAgICAgICAgbGV0IHJvb3RBcnIgPSBuZXdQYXJlbnQubWFwKGl0ZW0gPT4gewogICAgICAgICAgcmV0dXJuIGl0ZW1ba2V5XTsKICAgICAgICB9KTsKICAgICAgICBsZXQgcm9vdFRlbSA9IEFycmF5LmZyb20obmV3IFNldChbLi4ucm9vdEFycl0pKTsKICAgICAgICBpZiAocm9vdFRlbS5sZW5ndGggPT09IDEpIHsKICAgICAgICAgIHBhcmVudCA9IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgIENQX0NfT1JHVVBfSUQ6IG51bGwsCiAgICAgICAgICAgICAgRUNPREU6ICIwMDAwMCIsCiAgICAgICAgICAgICAgRU5BTUU6ICLlhajpg6giLAogICAgICAgICAgICAgIElEOiByb290VGVtWzBdLAogICAgICAgICAgICAgIE1JWE5BTUU6ICJbMDAwMDBd5YWo6YOoIiwKICAgICAgICAgICAgICBPUkdUWVBFOiAiSU4iLAogICAgICAgICAgICAgIFRZUEU6ICJDUF9DX0hST1JHX0lEIiwKICAgICAgICAgICAgICB0aXRsZTon5YWo6YOoJwogICAgICAgICAgICB9CiAgICAgICAgICBdOwogICAgICAgICAgdGhpcy50cmFuc2xhdG9yKHBhcmVudCwgY2hpbGRyZW4sIGtleSk7CiAgICAgICAgICByZXR1cm4gcGFyZW50OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAn5pWw5o2u5pyJ6Zeu6aKY77yM6K+35qOA5p+lLi4uJywKICAgICAgICAgICAgICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAvLyB0aGlzLiRNZXNzYWdlLndhcm5pbmcoIuaVsOaNruaciemXrumimO+8jOivt+ajgOafpS4uLiIpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnRyYW5zbGF0b3IocGFyZW50LCBjaGlsZHJlbiwga2V5KTsKCiAgICAgICAgcmV0dXJuIHBhcmVudDsKICAgICAgfQogICAgfSwKICAgIHRyYW5zbGF0b3IocGFyZW50cywgY2hpbGRyZW4sIGtleSkgewogICAgICBsZXQgdGVtcCA9IFtdOwogICAgICBjaGlsZHJlbi5tYXAoaXRlbSA9PiB7CiAgICAgICAgLy/lr7nlrZDoioLngrnmlbDmja7ov5vooYzmt7HlpI3liLbvvIzov5nph4zlj6rmlK/mjIHpg6jliIbnsbvlnovnmoTmlbDmja7mt7HlpI3liLYKICAgICAgICBsZXQgdGVtSXRlbSA9IE9iamVjdC5hc3NpZ24oe30sIGl0ZW0pOwogICAgICAgIHRlbXAucHVzaCh0ZW1JdGVtKTsKICAgICAgfSk7CiAgICAgIC8v6YGN5Y6G54i26IqC54K55pWw5o2uCiAgICAgIHBhcmVudHMubWFwKHBhcmVudCA9PiB7CiAgICAgICAgLy/pgY3ljoblrZDoioLngrnmlbDmja4KICAgICAgICBjaGlsZHJlbi5tYXAoKGN1cnJlbnQsIGluZGV4KSA9PiB7CiAgICAgICAgICAvL+atpOaXtuaJvuWIsOeItuiKgueCueWvueW6lOeahOS4gOS4quWtkOiKgueCuQogICAgICAgICAgaWYgKGN1cnJlbnRba2V5XSA9PT0gcGFyZW50LklEKSB7CiAgICAgICAgICAgIC8v6K6p5b2T5YmN5a2Q6IqC54K55LuOdGVtcOS4reenu+mZpO+8jHRlbXDkvZzkuLrmlrDnmoTlrZDoioLngrnmlbDmja7vvIzov5nph4zmmK/kuLrkuoborqnpgJLlvZLml7bvvIzlrZDoioLngrnnmoTpgY3ljobmrKHmlbDmm7TlsJHvvIzlpoLmnpzniLblrZDlhbPns7vnmoTlsYLnuqfotorlpJrvvIzotormnInliKkKICAgICAgICAgICAgdGVtcC5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgICAgICAvL+iuqeW9k+WJjeWtkOiKgueCueS9nOS4uuWUr+S4gOeahOeItuiKgueCue+8jOWOu+mAkuW9kuafpeaJvuWFtuWvueW6lOeahOWtkOiKgueCuQogICAgICAgICAgICB0aGlzLnRyYW5zbGF0b3IoW2N1cnJlbnRdLCB0ZW1wLCBrZXkpOwogICAgICAgICAgICAvL+aKiuaJvuWIsOWtkOiKgueCueaUvuWFpeeItuiKgueCueeahGNoaWxkcmVu5bGe5oCn5LitCiAgICAgICAgICAgIHBhcmVudC5jaGlsZHJlbgogICAgICAgICAgICAgID8gcGFyZW50LmNoaWxkcmVuLnB1c2goY3VycmVudCkKICAgICAgICAgICAgICA6IChwYXJlbnQuY2hpbGRyZW4gPSBbY3VycmVudF0pOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICB0cmVlVHJhbnNBcnJheSh0cmVlLCBrZXkpIHsKICAgICAgcmV0dXJuIHRyZWUKICAgICAgICAucmVkdWNlKGZ1bmN0aW9uIGl0ZXJhdGlvbihjb24sIGl0ZW0pIHsKICAgICAgICAgIGNvbi5wdXNoKGl0ZW0pOwogICAgICAgICAgaWYgKGl0ZW1ba2V5XSAmJiBpdGVtW2tleV0ubGVuZ3RoID4gMCkKICAgICAgICAgICAgaXRlbVtrZXldLnJlZHVjZShpdGVyYXRpb24sIGNvbik7CiAgICAgICAgICByZXR1cm4gY29uOwogICAgICAgIH0sIFtdKQogICAgICAgIC5tYXAoZnVuY3Rpb24oaXRlbSkgewogICAgICAgICAgaXRlbVtrZXldID0gW107CiAgICAgICAgICByZXR1cm4gaXRlbTsKICAgICAgICB9KTsKICAgIH0sCiAgICBmaW5kVHJlZVJvb3RGaXJzdENoaWxkKEFyciwga2V5KSB7CiAgICAgIGxldCBpZEFyciA9IFtdOwogICAgICBsZXQgcmVzdWx0ID0gW107CiAgICAgIGlkQXJyID0gQXJyLm1hcChpdGVtID0+IHsKICAgICAgICByZXR1cm4gaXRlbVsiSUQiXTsKICAgICAgfSk7CiAgICAgIEFyci5tYXAoaXRlbSA9PiB7CiAgICAgICAgaWYgKCFpZEFyci5pbmNsdWRlcyhpdGVtW2tleV0pKSB7CiAgICAgICAgICAvL+S4gOe6p+iKgueCueeahOeJueeCueaYr+WtmOWcqOeItuiKgueCuSDkvYbmmK/lt7LniLboioLngrnkuLpJROeahOiKgueCueaYr+S4jeWtmOWcqOeahAogICAgICAgICAgcmVzdWx0LnB1c2goaXRlbSk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0sCiAgfSwKICBtb3VudGVkKCkgewogICAgLy8gaWYodGhpcy5pc0NhbGxJbnRlcmZhY2UpewogICAgLy8gICB0aGlzLmdldFRyZWVEYXRhKCk7CiAgICAvLyAgIGlmICh0aGlzLnJlc3VsdERhdGEubGlzdCkgewogICAgLy8gICAgIHRoaXMucmVzdWx0UmlnaHREYXRhID0gdGhpcy5kZWVwQ29weSh0aGlzLnJlc3VsdERhdGEpOwogICAgLy8gICB9CiAgICAvLyB9ZWxzZXsKICAgIC8vICAgIGlmICh0aGlzLnNlbGVjdFJvdy5sZW5ndGggPiAwKSB7CiAgICAvLyAgICAgICB0aGlzLnNlbGVjdFJvdyA9IFtdOwogICAgLy8gICAgIH0KICAgIC8vICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5zZWxlY3REYXRhcykubGVuZ3RoID4gMCkgewogICAgLy8gICAgICAgdGhpcy5zZWxlY3REYXRhcyA9IHt9OwogICAgLy8gICAgIH0KICAgIC8vICAgICBpZiAodGhpcy50YWJsZS5zZWFyY2gpIHsKICAgIC8vICAgICAgIHRoaXMudGFibGUuc2VhcmNoID0gIiI7CiAgICAvLyAgICAgfQogICAgLy8gfQoKICB9LAogIGRlc3Ryb3llZCgpIHsKICAgIGlmICh0aGlzLnNlbGVjdFJvdy5sZW5ndGggPiAwKSB7CiAgICAgIHRoaXMuc2VsZWN0Um93ID0gW107CiAgICB9CiAgICBpZiAoT2JqZWN0LmtleXModGhpcy5zZWxlY3REYXRhcykubGVuZ3RoID4gMCkgewogICAgICB0aGlzLnNlbGVjdERhdGFzID0ge307CiAgICB9CiAgICBpZiAodGhpcy50YWJsZS5zZWFyY2gpIHsKICAgICAgdGhpcy50YWJsZS5zZWFyY2ggPSAiIjsKICAgIH0KICB9Cn07Cg=="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+GA;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;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;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;;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;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;;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;;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;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;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;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/components/MutipleSelectPop","sourcesContent":["<template>\r\n <div class=\"MutipleSelectPop\">\r\n <div class=\"dialog_left\">\r\n <div class=\"left_top\">\r\n <Input\r\n @on-change=\"inputchange\"\r\n @on-keydown=\"inputkeydown\"\r\n search\r\n @on-search=\"inputsearch\"\r\n :placeholder=\"tree.placeholder\"\r\n v-model=\"tree.search\"\r\n ></Input>\r\n </div>\r\n <div class=\"left_center\">\r\n <div class=\"complex-spin-fix\" v-if=\"treeLoading\">\r\n <Spin fix>\r\n <Icon type=\"ios-loading\" size=\"30\" class=\"demo-spin-icon-load\"></Icon>\r\n </Spin>\r\n </div>\r\n <Tree\r\n :data=\"treeLists\"\r\n show-checkbox\r\n ref=\"Tree\"\r\n :query=\"tree.search\"\r\n :queryStyle=\"queryStyle\"\r\n @on-select-change=\"getSelectedNodes\"\r\n @on-check-change=\"getCheckedNodes\"\r\n ></Tree>\r\n </div>\r\n </div>\r\n <div class=\"dialog_center\">\r\n <div class=\"complex-spin-fix\" v-if=\"tableLoading\">\r\n <Spin fix>\r\n <Icon type=\"ios-loading\" size=\"30\" class=\"demo-spin-icon-load\"></Icon>\r\n </Spin>\r\n </div>\r\n <div class=\"dialog_center_top\">\r\n <div class=\"dialog_center_top_fix\">\r\n <Input\r\n @on-change=\"inputchange\"\r\n @on-keydown=\"inputkeydown\"\r\n search\r\n @on-search=\"inputsearch\"\r\n :placeholder=\"table.placeholder\"\r\n v-model=\"table.search\"\r\n ></Input>\r\n </div>\r\n </div>\r\n <div>\r\n <Tabs size=\"small\" @on-click=\"tabClick\" :animated=\"false\">\r\n <TabPane v-for=\"(item,key) in TabPaneData\" :key=\"key\" :label=\"item.tab\">\r\n <div class=\"dialog_center_page\">\r\n <div>\r\n <Table\r\n border\r\n :columns=\"item.columns\"\r\n ref=\"Table\"\r\n :highlight-row=\"true\"\r\n :clickTimerTask=\"300\"\r\n :height=\"item.height\"\r\n @on-select=\"Onselect\"\r\n @on-select-cancel=\"onSelectCancel\"\r\n @on-select-all=\"onSelectAll\"\r\n @on-select-all-cancel=\"onSelectAllCancel\"\r\n @on-selection-change=\"onSelectChange\"\r\n @on-row-dblclick=\"rowdbClick\"\r\n @on-row-click=\"rowClick\"\r\n :data=\"item.list\"\r\n ></Table>\r\n </div>\r\n <div class=\"dialog_p10\">\r\n <Page\r\n :total=\"item.total\"\r\n :page-size=\"item.pageSize\"\r\n :current=\"item.pageNum\"\r\n @on-change=\"pageChange\"\r\n :page-size-opts=\"item.pageOptions\"\r\n show-total\r\n size=\"small\"\r\n />\r\n </div>\r\n </div>\r\n </TabPane>\r\n </Tabs>\r\n </div>\r\n </div>\r\n <div class=\"dialog-operation\" v-if=\"index === 0\">\r\n <div>\r\n <Button v-if=\"isUse\" class=\"operatebtn\" type=\"primary\" ghost @click=\"operationTwo\">选择部门</Button>\r\n <Button class=\"operatebtn\" type=\"primary\" ghost @click=\"operation\">选择人员</Button>\r\n </div>\r\n </div>\r\n <div class=\"dialog_right\">\r\n <div class=\"left_top right_top\">\r\n <div>已选中({{resultMessage.total || 0 }})</div>\r\n <div>\r\n <i class=\"iconfont iconios-trash-outline\" @click=\"delecFun\"></i>\r\n </div>\r\n </div>\r\n <div class=\"right_center\">\r\n <ul v-if=\"resultMessage.list.length>0\">\r\n <li v-for=\"(item,index) in resultMessage.list\" :key=\"index\">\r\n <p>{{item.string}}</p>\r\n <i class=\"iconfont iconbj_delete2\" @click=\"deleteLi(index,item)\"></i>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\n import {\r\n addGenmutipor,\r\n addGenmutiporuder,\r\n addGenmutiportree\r\n } from \"@/api/activiti/definition\";\r\nexport default {\r\n name: \"Mutiple\",\r\n props: {\r\n // treedata: {\r\n // type: Array,\r\n // default() {\r\n // return [];\r\n // }\r\n // },\r\n // componentData: {\r\n // type: Array,\r\n // default() {\r\n // return [];\r\n // }\r\n // },\r\n resultData: {\r\n type: Object,\r\n default() {\r\n return {};\r\n }\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false\r\n },\r\n // treeLoading: {\r\n // type: Boolean,\r\n // default: false\r\n // },\r\n // tableLoading: {\r\n // type: Boolean,\r\n // default: false\r\n // },\r\n open: {\r\n type: Boolean,\r\n default: false\r\n },\r\n icon_delect: {\r\n type: String,\r\n default: \"iconfont icon-bj_delete\"\r\n },\r\n checkedList: {\r\n type: Array,\r\n default() {\r\n return [];\r\n }\r\n },\r\n // tableSearch: {\r\n // type: String,\r\n // default: \"\"\r\n // },\r\n isUse: {\r\n type: Boolean,\r\n default: true\r\n },\r\n isMutiple: {\r\n //是否多选\r\n type: Boolean,\r\n default: true\r\n },\r\n // isResultShow: {\r\n // //result.list是否反显\r\n // type: Boolean,\r\n // default: true\r\n // },\r\n isCallInterface: {\r\n //用来控制调用接口拿到数据 //也可以理解为弹框关闭状态\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n data() {\r\n return {\r\n tableLoading: false,\r\n treeLoading: false,\r\n tree: {\r\n placeholder: \"可搜索店仓/部门\",\r\n search: \"\"\r\n },\r\n table: {\r\n //表格显示部分搜索\r\n placeholder: \"直接输入人员姓名搜索\",\r\n search: \"\"\r\n },\r\n columns: [],\r\n treeNewData: [],\r\n showTree: this.open,\r\n componentt: [\r\n {\r\n tab: \"筛选结果\",\r\n columns: [\r\n { key: \"NAME\", title: \"用户名\" },\r\n { key: \"ENAME\", title: \"用户姓名\" }\r\n ],\r\n list: [],\r\n total: 0,\r\n pageSize: 10,\r\n pageNum: 1, //当前页码\r\n pageOptions: [10, 20, 50, 100],\r\n height: 340\r\n }\r\n ],\r\n resultRightData: {\r\n total: 0,\r\n list: []\r\n },\r\n templateName: \"\",\r\n index: 0,\r\n queryStyle: {\r\n color: \"#fd6442\"\r\n },\r\n selectRow: [], //表格选中的数据\r\n selectDatas: {}, //单行选中\r\n obj: {} //\r\n };\r\n },\r\n computed: {\r\n treeLists() {\r\n // this.treeNewData = this.treedata;\r\n return this.treeNewData;\r\n },\r\n TabPaneData() {\r\n // let data = Object.assign(this.component, this.componentData);\r\n // return data;\r\n if (this.isMutiple) {\r\n // this.componentt[0].columns.unshift({\r\n // type: \"selection\",\r\n // align: \"center\",\r\n // fixed: \"left\",\r\n // width: 30\r\n // });\r\n }\r\n return this.componentt;\r\n },\r\n resultMessage() {\r\n // let data = Object.assign(this.resultRightData, this.resultData);\r\n return this.resultRightData;\r\n }\r\n },\r\n watch: {\r\n isCallInterface: {\r\n handler(newValue, oldValue) {\r\n if (newValue) {\r\n //执行请求\r\n this.componentt[0].pageNum = 1\r\n this.getTreeData();\r\n if (this.resultData.list) {\r\n this.resultRightData = this.deepCopy(this.resultData);\r\n }\r\n } else {\r\n if (this.selectRow.length > 0) {\r\n this.selectRow = [];\r\n }\r\n if (Object.keys(this.selectDatas).length > 0) {\r\n this.selectDatas = {};\r\n }\r\n if (this.table.search) {\r\n this.table.search = \"\";\r\n }\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n deepCopy(obj) {\r\n //兑现深拷贝\r\n var result = Array.isArray(obj) ? [] : {};\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n if (typeof obj[key] === \"object\" && obj[key] !== null) {\r\n result[key] = this.deepCopy(obj[key]); //递归复制\r\n } else {\r\n result[key] = obj[key];\r\n }\r\n }\r\n }\r\n return result;\r\n },\r\n getSelectedNodes(val) {\r\n // if (this.isMutiple) {\r\n if (val.length > 0) {\r\n this.obj = {};\r\n this.saveObj = val[0];\r\n let self = this;\r\n let valID = \"\";\r\n if (val[0].ID.indexOf(\".\") !== -1) {\r\n valID = val[0].ID.split(\".\")[1];\r\n valID = parseInt(valID);\r\n } else {\r\n valID = parseInt(val[0].ID);\r\n }\r\n\r\n if (val[0].CP_C_ORGUP_ID === null) {\r\n //根节点\r\n this.findUser({});\r\n } else {\r\n //当item的TYPE为店仓时\r\n if (val[0].TYPE === \"CP_C_STORE_ID\") {\r\n this.obj.CP_C_STORE_ID = \"in(\" + valID + \")\";\r\n self.findUser(self.obj);\r\n }\r\n //当item的TYPE为供应商时\r\n // 当item的TYPE为组织时\r\n if (val[0].TYPE === \"CP_C_HRORG_ID\") {\r\n addGenmutipor({ CP_C_ORGUP_ID: valID })\r\n .then(res => {\r\n if (res.data.resultCode === 0) {\r\n let HRORG = \"in (\"; //储存键名为CP_C_HRORG_ID对象的ID\r\n let STORE = \"in (\"; //储存键名为CP_C_STORE_ID对象的ID\r\n\r\n if (\r\n res.data.data.CP_C_HRORG &&\r\n res.data.data.CP_C_HRORG.length > 0\r\n ) {\r\n res.data.data.CP_C_HRORG.forEach(item => {\r\n HRORG += item.ID + \",\"; // in 1,2,3,5,6,87,8,6\r\n });\r\n if (res.data.data.CP_C_HRORG.length > 0) {\r\n self.obj.CP_C_HRORG_ID =\r\n HRORG.substring(0, HRORG.length - 1) + \")\";\r\n }\r\n }\r\n if (\r\n res.data.data.CP_C_STORE &&\r\n res.data.data.CP_C_STORE.length > 0\r\n ) {\r\n res.data.data.CP_C_STORE.forEach(item => {\r\n STORE += item.ID + \",\";\r\n });\r\n if (res.data.data.CP_C_STORE.length > 0) {\r\n self.obj.CP_C_STORE_ID =\r\n STORE.substring(0, STORE.length - 1) + \")\";\r\n }\r\n }\r\n self.findUser(self.obj);\r\n } else {\r\n this.$Modal.fcError({\r\n title: \"错误提示\",\r\n content: res.data.resultMsg\r\n });\r\n }\r\n });\r\n }\r\n // setTimeout(function() {\r\n // self.findUser(self.obj);\r\n // });\r\n }\r\n }\r\n // }\r\n this.$emit(\"on-select-tree\", val, this);\r\n },\r\n getCheckedNodes(obj) {\r\n this.$emit(\"on-change-tree\", obj, this);\r\n },\r\n tabClick(index) {\r\n this.index = index;\r\n this.$emit(\"on-click-tab\", index, this);\r\n },\r\n pageChange(index) {\r\n this.$emit(\"on-change-page\", index, this);\r\n this.componentt[0].pageNum = index;\r\n let param = Object.assign(this.obj, { page: index, pageSize: 10 });\r\n if (this.table.search !== \"\") {\r\n param.ENAME = this.table.search;\r\n }\r\n this.findUser(param);\r\n },\r\n pageChangeSize(index) {\r\n this.$emit(\"on-change-pageSize\", index, this);\r\n this.componentt[0].pageSize = index;\r\n let param = Object.assign(this.obj, { page: 1, pageSize: index });\r\n if (this.table.search !== \"\") {\r\n param.ENAME = this.table.search;\r\n }\r\n this.findUser(param);\r\n },\r\n rowdbClick(row, index) {\r\n let selectObj = Object.assign({}, row);\r\n if (!this.isMutiple) {\r\n selectObj.string = selectObj.ENAME;\r\n if (this.resultRightData.list) {\r\n this.resultRightData.list = [];\r\n this.resultRightData.list.push(selectObj);\r\n } else {\r\n this.$set(this.resultRightData, \"list\", [selectObj]);\r\n }\r\n } else {\r\n let selectObj = Object.assign({ approve_type: 4 }, row);\r\n selectObj.string = selectObj.ENAME;\r\n if (this.resultRightData.list && this.resultRightData.list.length > 0) {\r\n let flagIndex = this.resultRightData.list.findIndex(inner => {\r\n return (\r\n selectObj.ID === inner.ID || selectObj.ID === Number(inner.approve_value)\r\n );\r\n });\r\n if (flagIndex === -1) {\r\n //没有找到相同的就加入\r\n this.resultRightData.list.push(selectObj);\r\n } else {\r\n this.$message({\r\n message: selectObj.ENAME + \"已经选择过了,请不要重复选择!\",\r\n type: 'warning'\r\n });\r\n\r\n }\r\n } else {\r\n this.$set(this.resultRightData, \"list\", [selectObj]);\r\n }\r\n }\r\n this.resultRightData.total\r\n ? (this.resultRightData.total = this.resultRightData.list.length)\r\n : this.$set(\r\n this.resultRightData,\r\n \"total\",\r\n this.resultRightData.list.length\r\n );\r\n this.$emit(\"getResult\", this.resultRightData);\r\n this.$refs.Table[0].clearCurrentRow();\r\n this.$emit(\"on-row-dblclick\", row, index, this);\r\n },\r\n rowClick(row, index) {\r\n if (!this.isMutiple) {\r\n this.selectDatas = Object.assign(this.selectDatas, row);\r\n }\r\n this.$emit(\"on-row-click\", row, index, this);\r\n },\r\n Onselect(selection, row) {\r\n if (this.isMutiple) {\r\n this.componentt[0].list.map(item => {\r\n if (row.ID === item.ID) {\r\n item._checked = true;\r\n }\r\n });\r\n this.selectRow = [];\r\n this.selectRow = selection;\r\n }\r\n\r\n this.$emit(\"on-select\", selection, row);\r\n },\r\n onSelectCancel(selection, row) {\r\n this.componentt[0].list.map(item => {\r\n if (row.ID === item.ID) {\r\n item._checked = false;\r\n }\r\n });\r\n this.selectRow = [];\r\n this.selectRow = selection;\r\n this.$emit(\"on-select-cancel\", selection, row);\r\n },\r\n onSelectAll(selection) {\r\n this.selectRow = [];\r\n this.componentt[0].list.map(item => {\r\n item._checked = true;\r\n });\r\n this.selectRow = selection;\r\n this.$emit(\"on-select-all\", selection);\r\n },\r\n onSelectAllCancel(selection) {\r\n this.componentt[0].list.map(item => {\r\n item._checked = false;\r\n });\r\n this.selectRow = [];\r\n this.$emit(\"on-select-all-cancel\", selection);\r\n },\r\n onSelectChange(selection) {\r\n this.$emit(\"on-select-change\", selection);\r\n },\r\n inputchange(event) {\r\n // if(!this.isUse&&!this.isMutiple){\r\n this.table.search = event.target.value;\r\n // }\r\n this.$emit(\"on-change\", event, this);\r\n },\r\n inputkeydown(event) {\r\n this.$emit(\"on-keydown\", event, this);\r\n },\r\n inputsearch(event) {\r\n let param = Object.assign(this.obj, {\r\n page: 1,\r\n pageSize: 10,\r\n ENAME: event\r\n });\r\n this.findUser(param);\r\n this.$emit(\"on-search\", event, this);\r\n },\r\n operationTwo() {\r\n let selectNode = this.$refs.Tree.getCheckedNodes();\r\n selectNode = selectNode.filter(item => item.title !=='全部')\r\n if (this.isMutiple) {\r\n if (selectNode.length > 0) {\r\n this.resultRightData.total\r\n ? this.$set(this.resultRightData, \"total\", this.resultData.total + selectNode.length)\r\n : this.$set(this.resultRightData, \"total\", selectNode.length);\r\n selectNode.map(item => {\r\n let selectObj = Object.assign({ approve_type: 2 }, item);\r\n selectObj.string = item.ENAME;\r\n if (\r\n this.resultRightData.list &&\r\n this.resultRightData.list.length > 0\r\n ) {\r\n let flagIndex = this.resultRightData.list.findIndex(inner => {\r\n return item.ID === inner.ID || item.ID === Number(inner.approve_value);\r\n });\r\n if (flagIndex === -1) {\r\n //没有找到相同的就加入\r\n this.resultRightData.list.push(selectObj);\r\n } else {\r\n this.$message({\r\n message: item.ENAME + \"已经选择过了,请不要重复选择!\",\r\n type: 'warning'\r\n });\r\n\r\n }\r\n } else {\r\n this.$set(this.resultRightData, \"list\", [selectObj]);\r\n }\r\n });\r\n } else {\r\n his.$message({\r\n message:\"请选择部门!\",\r\n type: 'warning'\r\n });\r\n // this.$Message.warning(\"请选择部门\");\r\n }\r\n this.getTreeData();\r\n }\r\n if (this.selectRow.length > 0) {\r\n //选中状态的清除\r\n this.selectRow = [];\r\n }\r\n if (Object.keys(this.selectDatas).length > 0) {\r\n this.selectDatas = {};\r\n }\r\n this.$emit(\"getResult\", this.resultRightData);\r\n this.$emit(\"on-transfer-two\", selectNode, this);\r\n },\r\n operation() {\r\n if (!this.isMutiple) {\r\n //单选逻辑\r\n if (Object.keys(this.selectDatas).length === 0) {\r\n this.$message({\r\n message: '请选择人员',\r\n type: 'warning'\r\n });\r\n // this.$Message.warning(\"请选择人员\");\r\n return;\r\n }\r\n this.resultRightData.total\r\n ? (this.resultRightData.total = 1)\r\n : this.$set(this.resultRightData, \"total\", 1);\r\n let selectObj = Object.assign({}, this.selectDatas);\r\n selectObj.string = selectObj.ENAME;\r\n if (this.resultRightData.list) {\r\n this.resultRightData.list = [];\r\n this.resultRightData.list.push(selectObj);\r\n } else {\r\n this.$set(this.resultRightData, \"list\", [selectObj]);\r\n }\r\n } else {\r\n //多选逻辑\r\n if (this.selectRow.length > 0) {\r\n this.selectRow.map(item => {\r\n let selectObj = Object.assign({ approve_type: 4 }, item);\r\n selectObj.string = item.ENAME;\r\n if (\r\n this.resultRightData.list &&\r\n this.resultRightData.list.length > 0\r\n ) {\r\n let flagIndex = this.resultRightData.list.findIndex(inner => {\r\n return item.ID === inner.ID || item.ID === Number(inner.approve_value);\r\n });\r\n if (flagIndex === -1) {\r\n //没有找到相同的就加入\r\n this.resultRightData.list.push(selectObj);\r\n } else {\r\n this.$message({\r\n message: item.ENAME + \"已经选择过了,请不要重复选择!\",\r\n type: 'warning'\r\n });\r\n // this.$Message.warning(\r\n // item.ENAME + \"已经选择过了,请不要重复选择!\"\r\n // );\r\n }\r\n } else {\r\n this.$set(this.resultRightData, \"list\", [selectObj]);\r\n }\r\n });\r\n this.resultRightData.total\r\n ? (this.resultRightData.total = this.resultRightData.list.length)\r\n : this.$set(\r\n this.resultRightData,\r\n \"total\",\r\n this.resultRightData.list.length\r\n );\r\n } else {\r\n this.$message({\r\n message: '请选择人员',\r\n type: 'warning'\r\n });\r\n // this.$Message.warning(\"请选择人员\");\r\n }\r\n }\r\n //刷新表格数据\r\n this.componentt[0].list.map(item => {\r\n item._checked = false;\r\n });\r\n this.componentt[0].list = this.componentt[0].list.concat([]);\r\n if (this.selectRow.length > 0) {\r\n //选中状态的清除\r\n this.selectRow = [];\r\n }\r\n if (Object.keys(this.selectDatas).length > 0) {\r\n this.selectDatas = {};\r\n }\r\n this.$emit(\"getResult\", this.resultRightData);\r\n this.$emit(\"on-transfer\", this);\r\n },\r\n deleteLi(index, tem) {\r\n let selectNode = this.$refs.Tree.getCheckedNodes();\r\n if (selectNode && selectNode.length > 0) {\r\n selectNode.map(inItem => {\r\n if (inItem.ID === tem.ID) {\r\n this.$refs.Tree.handleCheck({\r\n checked: false,\r\n nodeKey: inItem.nodeKey\r\n });\r\n }\r\n });\r\n }\r\n let selectrow = this.TabPaneData[0].list; //表格数据\r\n selectrow.map((row, Index) => {\r\n if (row.ID === tem.ID) {\r\n row._checked = false;\r\n }\r\n });\r\n this.resultRightData.list.splice(index, 1);\r\n this.resultRightData.total = this.resultRightData.list.length;\r\n this.$emit(\"getResult\", this.resultRightData);\r\n this.$emit(\"on-delectli\", index, tem, this);\r\n },\r\n treeOpen(checked) {\r\n this.showTree = !checked;\r\n this.treeNewData.forEach(item => {\r\n item.expand = !item.expand;\r\n });\r\n },\r\n delecFun() {\r\n let selectNode = this.$refs.Tree.getCheckedNodes();\r\n if (selectNode && selectNode.length > 0) {\r\n selectNode.map(inItem => {\r\n this.$refs.Tree.handleCheck({\r\n checked: false,\r\n nodeKey: inItem.nodeKey\r\n });\r\n });\r\n }\r\n let selectrow = this.TabPaneData[0].list; //表格数据\r\n if (selectrow && selectrow.length > 0) {\r\n selectrow.map((row, Index) => {\r\n row._checked = false;\r\n });\r\n }\r\n this.$emit(\"on-deleBtn\", this);\r\n this.resultRightData.total = 0;\r\n this.resultRightData.list = [];\r\n this.componentt[0].list.map(item => {\r\n item._checked = false;\r\n });\r\n this.componentt[0].list = this.componentt[0].list.concat([]);\r\n this.$emit(\"getResult\", this.resultRightData);\r\n },\r\n //查找用户信息\r\n findUser(param) {\r\n this.tableLoading = true;\r\n addGenmutiporuder( param).then(res => {\r\n this.tableLoading = false;\r\n let data = res.data;\r\n if (data.code === 0) {\r\n if (data.data) {\r\n this.transferTbody(data.data);\r\n }\r\n if (data.datas) {\r\n this.transferTbody(data.datas);\r\n }\r\n }\r\n });\r\n },\r\n //表格体数据转化\r\n transferTbody(data) {\r\n this.componentt[0].total = data.totalRowCount;\r\n this.componentt[0].pageOptions = data.selectrange;\r\n this.componentt[0].list = [];\r\n data.row.map(item => {\r\n let tem = {};\r\n let temval = {};\r\n Object.keys(item).map(inner => {\r\n tem[inner] = item[inner].val;\r\n });\r\n temval = Object.assign({}, tem);\r\n this.componentt[0].list.push(tem);\r\n });\r\n },\r\n //获取树数据\r\n getTreeData() {\r\n this.tree_loading = true;\r\n addGenmutiportree().then(res => {\r\n this.tree_loading = false;\r\n if (res.data.resultCode === 0) {\r\n this.treeNewData = [];\r\n let newArr = [];\r\n let root = {};\r\n if (res.data.data.records.length > 0) {\r\n res.data.data.records.forEach(item => {\r\n let tem = Object.assign(item);\r\n newArr.push(tem);\r\n if (\r\n item[\"CP_C_ORGUP_ID\"] === null ||\r\n item[\"CP_C_ORGUP_ID\"] === \"\"\r\n ) {\r\n root = Object.assign({}, item);\r\n }\r\n });\r\n this.treeNewData = this.arrayTransTree(newArr, \"CP_C_ORGUP_ID\");\r\n }\r\n this.findUser({}); //显示所有的用户\r\n }\r\n });\r\n },\r\n\r\n //改造树数据的结构\r\n arrayTransTree(list, key) {\r\n let parent = [];\r\n let children = [];\r\n list.map(item => {\r\n item.expand = false;\r\n item.title = item.ENAME;\r\n if (\r\n !item[key]||\r\n (item[key].indexOf('.')!==-1&&!item[key].split(\".\")[1])\r\n ) {\r\n //根节点\r\n parent.push(item);\r\n } else {\r\n //有父节点的\r\n children.push(item);\r\n }\r\n });\r\n if (parent.length < 1) {\r\n //没有根节点\r\n let newParent = this.findTreeRootFirstChild(list, key); //拿到一级节点\r\n let rootArr = newParent.map(item => {\r\n return item[key];\r\n });\r\n let rootTem = Array.from(new Set([...rootArr]));\r\n if (rootTem.length === 1) {\r\n parent = [\r\n {\r\n CP_C_ORGUP_ID: null,\r\n ECODE: \"00000\",\r\n ENAME: \"全部\",\r\n ID: rootTem[0],\r\n MIXNAME: \"[00000]全部\",\r\n ORGTYPE: \"IN\",\r\n TYPE: \"CP_C_HRORG_ID\",\r\n title:'全部'\r\n }\r\n ];\r\n this.translator(parent, children, key);\r\n return parent;\r\n } else {\r\n this.$message({\r\n message: '数据有问题,请检查...',\r\n type: 'warning'\r\n });\r\n // this.$Message.warning(\"数据有问题,请检查...\");\r\n return;\r\n }\r\n } else {\r\n this.translator(parent, children, key);\r\n\r\n return parent;\r\n }\r\n },\r\n translator(parents, children, key) {\r\n let temp = [];\r\n children.map(item => {\r\n //对子节点数据进行深复制,这里只支持部分类型的数据深复制\r\n let temItem = Object.assign({}, item);\r\n temp.push(temItem);\r\n });\r\n //遍历父节点数据\r\n parents.map(parent => {\r\n //遍历子节点数据\r\n children.map((current, index) => {\r\n //此时找到父节点对应的一个子节点\r\n if (current[key] === parent.ID) {\r\n //让当前子节点从temp中移除,temp作为新的子节点数据,这里是为了让递归时,子节点的遍历次数更少,如果父子关系的层级越多,越有利\r\n temp.splice(index, 1);\r\n //让当前子节点作为唯一的父节点,去递归查找其对应的子节点\r\n this.translator([current], temp, key);\r\n //把找到子节点放入父节点的children属性中\r\n parent.children\r\n ? parent.children.push(current)\r\n : (parent.children = [current]);\r\n }\r\n });\r\n });\r\n },\r\n treeTransArray(tree, key) {\r\n return tree\r\n .reduce(function iteration(con, item) {\r\n con.push(item);\r\n if (item[key] && item[key].length > 0)\r\n item[key].reduce(iteration, con);\r\n return con;\r\n }, [])\r\n .map(function(item) {\r\n item[key] = [];\r\n return item;\r\n });\r\n },\r\n findTreeRootFirstChild(Arr, key) {\r\n let idArr = [];\r\n let result = [];\r\n idArr = Arr.map(item => {\r\n return item[\"ID\"];\r\n });\r\n Arr.map(item => {\r\n if (!idArr.includes(item[key])) {\r\n //一级节点的特点是存在父节点 但是已父节点为ID的节点是不存在的\r\n result.push(item);\r\n }\r\n });\r\n return result;\r\n },\r\n },\r\n mounted() {\r\n // if(this.isCallInterface){\r\n // this.getTreeData();\r\n // if (this.resultData.list) {\r\n // this.resultRightData = this.deepCopy(this.resultData);\r\n // }\r\n // }else{\r\n // if (this.selectRow.length > 0) {\r\n // this.selectRow = [];\r\n // }\r\n // if (Object.keys(this.selectDatas).length > 0) {\r\n // this.selectDatas = {};\r\n // }\r\n // if (this.table.search) {\r\n // this.table.search = \"\";\r\n // }\r\n // }\r\n\r\n },\r\n destroyed() {\r\n if (this.selectRow.length > 0) {\r\n this.selectRow = [];\r\n }\r\n if (Object.keys(this.selectDatas).length > 0) {\r\n this.selectDatas = {};\r\n }\r\n if (this.table.search) {\r\n this.table.search = \"\";\r\n }\r\n }\r\n};\r\n</script>\r\n<style lang=\"scss\">\r\n.MutipleSelectPop {\r\n width: 800px;\r\n display: flex;\r\n height: 484px;\r\n position: relative;\r\n .demo-spin-icon-load {\r\n animation: ani-demo-spin 1s linear infinite;\r\n }\r\n .complex-spin-fix {\r\n z-index: 20;\r\n }\r\n @keyframes ani-demo-spin {\r\n from {\r\n transform: rotate(0deg);\r\n }\r\n 50% {\r\n transform: rotate(180deg);\r\n }\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n overflow: hidden;\r\n .dialog_left {\r\n width: 170px;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n padding: 10px;\r\n border: 1px solid #dcdee2;\r\n border-right: none;\r\n .left_top {\r\n height: 32px;\r\n line-height: 32px;\r\n box-sizing: border-box;\r\n border-bottom: 1px solid #e8eaec;\r\n font-size: 12px;\r\n color: #575757;\r\n display: flex;\r\n input {\r\n line-height: 32px;\r\n height: 32px;\r\n }\r\n\r\n div:first-child {\r\n flex: 1;\r\n }\r\n i {\r\n margin-right: 10px;\r\n }\r\n }\r\n .left_center {\r\n flex: 1;\r\n padding-top: 10px;\r\n position: relative;\r\n height: 390px;\r\n padding-bottom: 10px;\r\n width: 156px;\r\n overflow-y: auto;\r\n }\r\n }\r\n .dialog_center {\r\n width: 400px;\r\n position: relative;\r\n height: 484px;\r\n border: 1px solid #dcdee2;\r\n border-right: none;\r\n //box-shadow: 2px -2px 9px @shadow-color;\r\n padding: 10px;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n .dialog_p10 {\r\n padding: 10px 0;\r\n }\r\n .dialog_center_top {\r\n display: flex;\r\n line-height: 32px;\r\n vertical-align: middle;\r\n box-sizing: border-box;\r\n .dialog_center_top_fix {\r\n width: 270px;\r\n box-sizing: border-box;\r\n padding-right: 20px;\r\n input {\r\n line-height: 32px;\r\n height: 32px;\r\n }\r\n }\r\n }\r\n }\r\n .dialog-operation {\r\n width: 92px;\r\n padding: 0px;\r\n border-left: 1px solid #dcdee2;\r\n background-color: #fff;\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n div {\r\n text-align: center;\r\n .operatebtn {\r\n margin-bottom: 10px;\r\n padding: 8px 12px;\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n }\r\n }\r\n }\r\n .dialog_right {\r\n width: 220px;\r\n padding: 10px;\r\n border: 1px solid #dcdee2;\r\n box-sizing: border-box;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n .left_top {\r\n height: 30px;\r\n line-height: 30px;\r\n box-sizing: border-box;\r\n border-bottom: 1px solid #e8eaec;\r\n font-size: 12px;\r\n color: #575757;\r\n display: flex;\r\n div:first-child {\r\n flex: 1;\r\n }\r\n i {\r\n margin-right: 10px;\r\n }\r\n }\r\n ul {\r\n height: 390px;\r\n overflow: auto;\r\n li {\r\n margin-bottom: 4px;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n background-color: #f8f8f8;\r\n border-radius: 2px;\r\n font-size: 12px;\r\n p {\r\n flex: 1;\r\n line-height: 18px;\r\n margin-left: 4px;\r\n box-sizing: border-box;\r\n border-radius: 4px;\r\n padding: 4px 6px;\r\n color: #0f8ee9;\r\n word-wrap: break-word;\r\n word-break: break-all;\r\n }\r\n }\r\n }\r\n }\r\n .right_center {\r\n flex: 1;\r\n padding-top: 10px;\r\n }\r\n}\r\n</style>\r\n"]}]}
|