efbc0ff172e62e76fdbb0fd9b4dc9063.json 72 KB

1
  1. {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js!D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\components\\uploadPictures\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\components\\uploadPictures\\index.vue","mtime":1761614938987},{"path":"D:\\front\\item\\zyAdmin\\babel.config.js","mtime":1761614925168},{"path":"D:\\front\\item\\zyAdmin\\.babelrc","mtime":1761614925165},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js","mtime":1761614927320},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1761614937402}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJEOi9mcm9udC9pdGVtL3p5QWRtaW4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5LmpzIjsKaW1wb3J0IF9yZWdlbmVyYXRvciBmcm9tICJEOi9mcm9udC9pdGVtL3p5QWRtaW4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3JlZ2VuZXJhdG9yLmpzIjsKaW1wb3J0IF9hc3luY1RvR2VuZXJhdG9yIGZyb20gIkQ6L2Zyb250L2l0ZW0venlBZG1pbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmNvbmNhdC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZpbHRlci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZpbmQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maW5kLWluZGV4LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5wdXNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucmVkdWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc3BsaWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5maW5kLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5yZWR1Y2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5qc29uLnN0cmluZ2lmeS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm51bWJlci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLnRlc3QuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7CmltcG9ydCB7IGdldENhdGVnb3J5TGlzdEFwaSwgY3JlYXRlQXBpLCBmaWxlTGlzdEFwaSwgY2F0ZWdvcnlFZGl0QXBpLCBtb3ZlQXBpLCBmaWxlVXBkYXRlQXBpIH0gZnJvbSAnQC9hcGkvdXBsb2FkUGljdHVyZXMnOwppbXBvcnQgU2V0dGluZyBmcm9tICdAL3NldHRpbmcnOwppbXBvcnQgeyBnZXRDb29raWVzIH0gZnJvbSAnQC9saWJzL3V0aWwnOwppbXBvcnQgdXBsb2FkSW1nIGZyb20gJ0AvY29tcG9uZW50cy91cGxvYWRJbWcnOwppbXBvcnQgeyBWdWVUcmVlTGlzdCwgVHJlZSwgVHJlZU5vZGUgfSBmcm9tICd2dWUtdHJlZS1saXN0JzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICd1cGxvYWRQaWN0dXJlcycsCiAgY29tcG9uZW50czogewogICAgdXBsb2FkSW1nOiB1cGxvYWRJbWcsCiAgICBWdWVUcmVlTGlzdDogVnVlVHJlZUxpc3QKICB9LAogIHByb3BzOiB7CiAgICBpc0Nob2ljZTogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICcnCiAgICB9LAogICAgaXNQYWdlOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgaXNJZnJhbWU6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICBncmlkQnRuOiB7CiAgICAgIHR5cGU6IE9iamVjdCwKICAgICAgZGVmYXVsdDogbnVsbAogICAgfSwKICAgIGdyaWRQaWM6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0OiBudWxsCiAgICB9LAogICAgaXNTaG93OiB7CiAgICAgIHR5cGU6IE51bWJlciwKICAgICAgZGVmYXVsdDogMQogICAgfSwKICAgIHBhZ2VMaW1pdDogewogICAgICB0eXBlOiBOdW1iZXIsCiAgICAgIGRlZmF1bHQ6IDAKICAgIH0KICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBzcGluU2hvdzogZmFsc2UsCiAgICAgIGZpbGVVcmw6IFNldHRpbmcuYXBpQmFzZVVSTCArICcvZmlsZS91cGxvYWQnLAogICAgICBtb2RhbFBpYzogZmFsc2UsCiAgICAgIHRyZWVEYXRhOiBbXSwKICAgICAgdHJlZURhdGEyOiBbXSwKICAgICAgcGljdHJ1ZUxpc3Q6IFtdLAogICAgICB1cGxvYWREYXRhOiB7fSwKICAgICAgLy8g5LiK5Lyg5Y+C5pWwCiAgICAgIGNoZWNrUGljTGlzdDogW10sCiAgICAgIHVwbG9hZE5hbWU6IHsKICAgICAgICBuYW1lOiAnJywKICAgICAgICBhbGw6IDEKICAgICAgfSwKICAgICAgZm9ybVZhbGlkYXRlOiB7CiAgICAgICAgaWQ6IDAKICAgICAgfSwKICAgICAgRnJvbURhdGE6IG51bGwsCiAgICAgIHRyZWVJZDogJycsCiAgICAgIGlzSnVkZ2U6IGZhbHNlLAogICAgICBidXR0b25Qcm9wczogewogICAgICAgIHR5cGU6ICdkZWZhdWx0JywKICAgICAgICBzaXplOiAnc21hbGwnCiAgICAgIH0sCiAgICAgIGZpbGVEYXRhOiB7CiAgICAgICAgcGlkOiAwLAogICAgICAgIHJlYWxfbmFtZTogJycsCiAgICAgICAgcGFnZTogMSwKICAgICAgICBsaW1pdDogdGhpcy5wYWdlTGltaXQgfHwgMTgKICAgICAgfSwKICAgICAgdG90YWw6IDAsCiAgICAgIHBpZHM6IDAsCiAgICAgIGxpc3Q6IFtdLAogICAgICBtb2RhbFRpdGxlU3M6ICcnLAogICAgICBpc1Nob3dQaWM6IGZhbHNlLAogICAgICBoZWFkZXI6IHt9LAogICAgICBpZHM6IFtdLAogICAgICAvLyDpgInkuK3pmYTku7bnmoRpZOmbhuWQiAogICAgICBsaWV0U3R5bGU6ICdsaXN0JywKICAgICAgaW1hZ2VVcmw6ICcnLAogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgbXVsdGlwbGVTZWxlY3Rpb246IFtdLAogICAgICBwaWNtYXJnaW46ICc1cHgnIC8v6buY6K6k6Led56a75Y+z6L656Led56a7CiAgICB9OwogIH0sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIGlmICh0aGlzLmlzUGFnZSkgewogICAgICB2YXIgaGFuZyA9IHBhcnNlSW50KChkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCAtIHRoaXMuJHJlZnMuaW1nTGlzdEJveC5jbGllbnRIZWlnaHQgLSAzMjUpIC8gMTgwKTsgLy/orqHnrpfooYzmlbAKICAgICAgdmFyIGNvbCA9IHBhcnNlSW50KHRoaXMuJHJlZnMuaW1nTGlzdEJveC5jbGllbnRXaWR0aCAvIDE1Nik7IC8v6K6h566X5YiX5pWwCiAgICAgIHRoaXMuZmlsZURhdGEubGltaXQgPSBjb2wgKiBoYW5nOyAvL+iuoeeul+WIhumhteaVsOmHjwogICAgICB0aGlzLnBpY21hcmdpbiA9IHBhcnNlSW50KHRoaXMuJHJlZnMuaW1nTGlzdEJveC5jbGllbnRXaWR0aCAtIGNvbCAqIDE0NikgLyAoMiAqIGNvbCkgKyAncHgnOyAvL+W5s+Wdh+WIhuW4g+iuoeeul21hcmdpbui3neemuwogICAgfQogICAgdGhpcy5nZXRUb2tlbigpOwogICAgdGhpcy5nZXRMaXN0KCk7CiAgICB0aGlzLmdldEZpbGVMaXN0KCk7CiAgfSwKICBtZXRob2RzOiB7CiAgICByYWRpb0NoYW5nZTogZnVuY3Rpb24gcmFkaW9DaGFuZ2UoKSB7CiAgICAgIHRoaXMuaW5pdERhdGEoKTsKICAgIH0sCiAgICBsb29rSW1nOiBmdW5jdGlvbiBsb29rSW1nKGl0ZW0pIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgdGhpcy5pbWFnZVVybCA9IGl0ZW0uYXR0X2RpcjsKICAgICAgdmFyIHZpZXdlciA9IHRoaXMuJGVsLnF1ZXJ5U2VsZWN0b3IoJy5pbWFnZXMnKS4kdmlld2VyOwogICAgICB2aWV3ZXIuc2hvdygpOwogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGkgPSBfdGhpcy5waWN0cnVlTGlzdC5maW5kSW5kZXgoZnVuY3Rpb24gKGUpIHsKICAgICAgICAgIHJldHVybiBlLmF0dF9kaXIgPT09IGl0ZW0uYXR0X2RpcjsKICAgICAgICB9KTsKICAgICAgICB2aWV3ZXIudXBkYXRlKCkudmlldyhpKTsKICAgICAgfSk7CiAgICB9LAogICAgb25EZWw6IGZ1bmN0aW9uIG9uRGVsKG5vZGUpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICAgIHZhciBtZXRob2QgPSBub2RlLmNhdGVfaWQgPyByb3V0ZURlbCA6IHJvdXRlQ2F0ZURlbDsKICAgICAgdGhpcy4kbXNnYm94KHsKICAgICAgICB0aXRsZTogJ+aPkOekuicsCiAgICAgICAgbWVzc2FnZTogJ+aYr+WQpuehruWumuWIoOmZpOivpeiPnOWNlScsCiAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZSwKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+WIoOmZpCcsCiAgICAgICAgaWNvbkNsYXNzOiAnZWwtaWNvbi13YXJuaW5nJywKICAgICAgICBjb25maXJtQnV0dG9uQ2xhc3M6ICdidG4tY3VzdG9tLWNhbmNlbCcKICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgbWV0aG9kKG5vZGUuaWQpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgX3RoaXMyLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7CiAgICAgICAgICBub2RlLnJlbW92ZSgpOwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICAgIF90aGlzMi4kbWVzc2FnZS5lcnJvcihlcnIpOwogICAgICAgIH0pOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgICB9LAogICAgb25DaGFuZ2VOYW1lOiBmdW5jdGlvbiBvbkNoYW5nZU5hbWUocGFyYW1zKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICBpZiAocGFyYW1zLmV2ZW50VHlwZSA9PSAnYmx1cicpIHsKICAgICAgICB2YXIgZGF0YSA9IHsKICAgICAgICAgIG5hbWU6IHBhcmFtcy5uZXdOYW1lLAogICAgICAgICAgaWQ6IHBhcmFtcy5pZAogICAgICAgIH07CiAgICAgICAgaW50ZXJmYWNlRWRpdE5hbWUoZGF0YSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICBfdGhpczMuJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICBfdGhpczMuJG1lc3NhZ2UuZXJyb3IoZXJyKTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIC8vIOa3u+WKoOWIhuexuwogICAgYWRkU29ydDogZnVuY3Rpb24gYWRkU29ydCgpIHsKICAgICAgdGhpcy5hcHBlbmQoewogICAgICAgIGlkOiB0aGlzLnRyZWVJZCB8fCAwCiAgICAgIH0pOwogICAgfSwKICAgIC8vIOeCueWHu+iPnOWNlQogICAgY2xpY2tNZW51OiBmdW5jdGlvbiBjbGlja01lbnUoZGF0YSwgbmFtZSkgewogICAgICBpZiAobmFtZSA9PSAxKSB7CiAgICAgICAgdGhpcy5hcHBlbmQoZGF0YSk7CiAgICAgIH0gZWxzZSBpZiAobmFtZSA9PSAyKSB7CiAgICAgICAgdGhpcy5lZGl0UGljKGRhdGEpOwogICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gMykgewogICAgICAgIHRoaXMucmVtb3ZlKGRhdGEsICfliIbnsbsnKTsKICAgICAgfQogICAgfSwKICAgIHVwbG9hZFN1Y2Nlc3M6IGZ1bmN0aW9uIHVwbG9hZFN1Y2Nlc3MoKSB7CiAgICAgIHRoaXMuZmlsZURhdGEucGFnZSA9IDE7CiAgICAgIHRoaXMuaW5pdERhdGEoKTsKICAgICAgdGhpcy5nZXRGaWxlTGlzdCgpOwogICAgfSwKICAgIHVwbG9hZE1vZGFsOiBmdW5jdGlvbiB1cGxvYWRNb2RhbCgpIHsKICAgICAgdGhpcy4kcmVmcy51cGxvYWQudXBsb2FkTW9kYWwgPSB0cnVlOwogICAgfSwKICAgIGVudGVyTW91c2U6IGZ1bmN0aW9uIGVudGVyTW91c2UoaXRlbSkgewogICAgICBpdGVtLnJlYWxOYW1lID0gIWl0ZW0ucmVhbE5hbWU7CiAgICB9LAogICAgZW50ZXJMZWF2ZTogZnVuY3Rpb24gZW50ZXJMZWF2ZShpdGVtKSB7CiAgICAgIGl0ZW0uaXNTaG93RWRpdCA9ICFpdGVtLmlzU2hvd0VkaXQ7CiAgICB9LAogICAgLy8g5LiK5Lyg5aS06YOodG9rZW4KICAgIGdldFRva2VuOiBmdW5jdGlvbiBnZXRUb2tlbigpIHsKICAgICAgdGhpcy5oZWFkZXJbJ0F1dGhvcmktemF0aW9uJ10gPSAnQmVhcmVyICcgKyBnZXRDb29raWVzKCd0b2tlbicpOwogICAgfSwKICAgIG1vdmVJbWc6IGZ1bmN0aW9uIG1vdmVJbWcoc3RhdHVzKSB7CiAgICAgIGlmICghc3RhdHVzKSB7CiAgICAgICAgdGhpcy5nZXRNb3ZlKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKCF0aGlzLmlkcy50b1N0cmluZygpKSB7CiAgICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+WFiOmAieaLqeWbvueJhycpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIHNlYXJjaEltZzogZnVuY3Rpb24gc2VhcmNoSW1nKCkge30sCiAgICAvLyDnp7vliqjliIbnsbsKICAgIGdldE1vdmU6IGZ1bmN0aW9uIGdldE1vdmUoKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICB2YXIgZGF0YSA9IHsKICAgICAgICBwaWQ6IHRoaXMucGlkcywKICAgICAgICBpbWFnZXM6IHRoaXMuaWRzLnRvU3RyaW5nKCkKICAgICAgfTsKICAgICAgaWYgKCFkYXRhLmltYWdlcykgcmV0dXJuOwogICAgICBtb3ZlQXBpKGRhdGEpLnRoZW4oLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKICAgICAgICB2YXIgX3JlZiA9IF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3IoKS5tKGZ1bmN0aW9uIF9jYWxsZWUocmVzKSB7CiAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yKCkudyhmdW5jdGlvbiAoX2NvbnRleHQpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQubikgewogICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIF90aGlzNC4kbWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOwogICAgICAgICAgICAgICAgX3RoaXM0LmdldEZpbGVMaXN0KCk7CiAgICAgICAgICAgICAgICBfdGhpczQucGlkcyA9IDA7CiAgICAgICAgICAgICAgICBfdGhpczQuY2hlY2tQaWNMaXN0ID0gW107CiAgICAgICAgICAgICAgICBfdGhpczQuaWRzID0gW107CiAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmEoMik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIF9jYWxsZWUpOwogICAgICAgIH0pKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94KSB7CiAgICAgICAgICByZXR1cm4gX3JlZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgIH0oKSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzNC4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgfSk7CiAgICB9LAogICAgZGVsSW1nOiBmdW5jdGlvbiBkZWxJbWcoaWQpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIHZhciBpZHMgPSB7CiAgICAgICAgaWRzOiBpZAogICAgICB9OwogICAgICB2YXIgZGVsZnJvbURhdGEgPSB7CiAgICAgICAgdGl0bGU6ICfliKDpmaTpgInkuK3lm77niYcnLAogICAgICAgIHVybDogImZpbGUvZmlsZS9kZWxldGUiLAogICAgICAgIG1ldGhvZDogJ1BPU1QnLAogICAgICAgIGlkczogaWRzCiAgICAgIH07CiAgICAgIHRoaXMuJG1vZGFsU3VyZShkZWxmcm9tRGF0YSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM1LiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7CiAgICAgICAgX3RoaXM1LmdldEZpbGVMaXN0KCk7CiAgICAgICAgX3RoaXM1LmNoZWNrUGljTGlzdCA9IFtdOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM1LiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDliKDpmaTlm77niYcKICAgIGVkaXRQaWNMaXN0OiBmdW5jdGlvbiBlZGl0UGljTGlzdChpZCkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgdmFyIGlkcyA9IHsKICAgICAgICBpZHM6IGlkIHx8IHRoaXMuaWRzLnRvU3RyaW5nKCkKICAgICAgfTsKICAgICAgdmFyIGRlbGZyb21EYXRhID0gewogICAgICAgIHRpdGxlOiAn5Yig6Zmk6YCJ5Lit5Zu+54mHJywKICAgICAgICB1cmw6ICJmaWxlL2ZpbGUvZGVsZXRlIiwKICAgICAgICBtZXRob2Q6ICdQT1NUJywKICAgICAgICBpZHM6IGlkcwogICAgICB9OwogICAgICB0aGlzLiRtb2RhbFN1cmUoZGVsZnJvbURhdGEpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzNi4kbWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOwogICAgICAgIF90aGlzNi5nZXRGaWxlTGlzdCgpOwogICAgICAgIF90aGlzNi5pbml0RGF0YSgpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM2LiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICBpbml0RGF0YTogZnVuY3Rpb24gaW5pdERhdGEoKSB7CiAgICAgIHRoaXMuY2hlY2tQaWNMaXN0ID0gW107CiAgICAgIHRoaXMuaWRzID0gW107CiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSBbXTsKICAgIH0sCiAgICAvLyDpvKDmoIfnp7vlhaUg56e75Ye6CiAgICBvbk1vdXNlT3ZlcjogZnVuY3Rpb24gb25Nb3VzZU92ZXIocm9vdCwgbm9kZSwgZGF0YSkgewogICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICBkYXRhLmZsYWcgPSAhZGF0YS5mbGFnOwogICAgICBpZiAoZGF0YS5mbGFnMikgewogICAgICAgIGRhdGEuZmxhZzIgPSBmYWxzZTsKICAgICAgfQogICAgfSwKICAgIC8vIOeCueWHu+agkQogICAgYXBwZW5kQnRuOiBmdW5jdGlvbiBhcHBlbmRCdG4oZGF0YSkgewogICAgICB0aGlzLnRyZWVJZCA9IGRhdGEuaWQ7CiAgICAgIHRoaXMuZmlsZURhdGEucGFnZSA9IDE7CiAgICAgIHRoaXMuZ2V0RmlsZUxpc3QoKTsKICAgIH0sCiAgICAvLyDngrnlh7vmt7vliqAKICAgIGFwcGVuZDogZnVuY3Rpb24gYXBwZW5kKGRhdGEpIHsKICAgICAgdGhpcy50cmVlSWQgPSBkYXRhLmlkOwogICAgICB0aGlzLmdldEZyb20oKTsKICAgIH0sCiAgICAvLyDliKDpmaTliIbnsbsKICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKGRhdGEsIHRpdCkgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgICAgdGhpcy50aXRzID0gdGl0OwogICAgICB2YXIgZGVsZnJvbURhdGEgPSB7CiAgICAgICAgdGl0bGU6ICfliKDpmaQgWyAnICsgZGF0YS50aXRsZSArICcgXSAnICsgJ+WIhuexuycsCiAgICAgICAgdXJsOiAiZmlsZS9jYXRlZ29yeS8iLmNvbmNhdChkYXRhLmlkKSwKICAgICAgICBtZXRob2Q6ICdERUxFVEUnLAogICAgICAgIGlkczogJycKICAgICAgfTsKICAgICAgdGhpcy4kbW9kYWxTdXJlKGRlbGZyb21EYXRhKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczcuJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsKICAgICAgICBfdGhpczcuZ2V0TGlzdCgpOwogICAgICAgIF90aGlzNy5jaGVja1BpY0xpc3QgPSBbXTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzNy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g57yW6L6R5qCR6KGo5Y2VCiAgICBlZGl0UGljOiBmdW5jdGlvbiBlZGl0UGljKGRhdGEpIHsKICAgICAgdmFyIF90aGlzOCA9IHRoaXM7CiAgICAgIHRoaXMuJG1vZGFsRm9ybShjYXRlZ29yeUVkaXRBcGkoZGF0YS5pZCkpLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBfdGhpczguZ2V0TGlzdCgpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDmkJzntKLliIbnsbsKICAgIGNoYW5nZVBhZ2U6IGZ1bmN0aW9uIGNoYW5nZVBhZ2UoKSB7CiAgICAgIHRoaXMuZ2V0TGlzdCgnc2VhcmNoJyk7CiAgICB9LAogICAgLy8g5YiG57G75YiX6KGo5qCRCiAgICBnZXRMaXN0OiBmdW5jdGlvbiBnZXRMaXN0KHR5cGUpIHsKICAgICAgdmFyIF90aGlzOSA9IHRoaXM7CiAgICAgIHZhciBkYXRhID0gewogICAgICAgIHRpdGxlOiAn5YWo6YOo5Zu+54mHJywKICAgICAgICBpZDogJycsCiAgICAgICAgcGlkOiAwCiAgICAgIH07CiAgICAgIGdldENhdGVnb3J5TGlzdEFwaSh0aGlzLnVwbG9hZE5hbWUpLnRoZW4oLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKICAgICAgICB2YXIgX3JlZjIgPSBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yKCkubShmdW5jdGlvbiBfY2FsbGVlMihyZXMpIHsKICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IoKS53KGZ1bmN0aW9uIChfY29udGV4dDIpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQyLm4pIHsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICBpZiAodHlwZSAhPT0gJ3NlYXJjaCcpIHsKICAgICAgICAgICAgICAgICAgX3RoaXM5LnRyZWVEYXRhMiA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoX3RvQ29uc3VtYWJsZUFycmF5KHJlcy5kYXRhLmxpc3QpKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXMuZGF0YS5saXN0LnVuc2hpZnQoZGF0YSk7CiAgICAgICAgICAgICAgICBfdGhpczkudHJlZURhdGEgPSByZXMuZGF0YS5saXN0OwogICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuYSgyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgX2NhbGxlZTIpOwogICAgICAgIH0pKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94MikgewogICAgICAgICAgcmV0dXJuIF9yZWYyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICAgICAgfSgpKS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM5LiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICBsb2FkRGF0YTogZnVuY3Rpb24gbG9hZERhdGEoaXRlbSwgY2FsbGJhY2spIHsKICAgICAgZ2V0Q2F0ZWdvcnlMaXN0QXBpKHsKICAgICAgICBwaWQ6IGl0ZW0uaWQKICAgICAgfSkudGhlbigvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBfcmVmMyA9IF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3IoKS5tKGZ1bmN0aW9uIF9jYWxsZWUzKHJlcykgewogICAgICAgICAgdmFyIGRhdGE7CiAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yKCkudyhmdW5jdGlvbiAoX2NvbnRleHQzKSB7CiAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0My5uKSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgZGF0YSA9IHJlcy5kYXRhLmxpc3Q7CiAgICAgICAgICAgICAgICBjYWxsYmFjayhkYXRhKTsKICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLmEoMik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIF9jYWxsZWUzKTsKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeDMpIHsKICAgICAgICAgIHJldHVybiBfcmVmMy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgIH0oKSkuY2F0Y2goZnVuY3Rpb24gKHJlcykge30pOwogICAgfSwKICAgIGFkZEZsYWc6IGZ1bmN0aW9uIGFkZEZsYWcodHJlZWRhdGEpIHsKICAgICAgdmFyIF90aGlzMCA9IHRoaXM7CiAgICAgIHRyZWVkYXRhLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIF90aGlzMC4kc2V0KGl0ZW0sICdmbGFnJywgZmFsc2UpOwogICAgICAgIF90aGlzMC4kc2V0KGl0ZW0sICdmbGFnMicsIGZhbHNlKTsKICAgICAgICBpdGVtLmNoaWxkcmVuICYmIF90aGlzMC5hZGRGbGFnKGl0ZW0uY2hpbGRyZW4pOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDmlrDlu7rliIbnsbsKICAgIGFkZDogZnVuY3Rpb24gYWRkKCkgewogICAgICB0aGlzLnRyZWVJZCA9IDA7CiAgICAgIHRoaXMuZ2V0RnJvbSgpOwogICAgfSwKICAgIHNlYXJjaEZpbGU6IGZ1bmN0aW9uIHNlYXJjaEZpbGUoKSB7CiAgICAgIHRoaXMuZmlsZURhdGEucGFnZSA9IDE7CiAgICAgIHRoaXMuZ2V0RmlsZUxpc3QoKTsKICAgIH0sCiAgICAvLyDmlofku7bliJfooagKICAgIGdldEZpbGVMaXN0OiBmdW5jdGlvbiBnZXRGaWxlTGlzdCgpIHsKICAgICAgdmFyIF90aGlzMSA9IHRoaXM7CiAgICAgIHRoaXMuZmlsZURhdGEucGlkID0gdGhpcy50cmVlSWQ7CiAgICAgIGZpbGVMaXN0QXBpKHRoaXMuZmlsZURhdGEpLnRoZW4oLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKICAgICAgICB2YXIgX3JlZjQgPSBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yKCkubShmdW5jdGlvbiBfY2FsbGVlNChyZXMpIHsKICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IoKS53KGZ1bmN0aW9uIChfY29udGV4dDQpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ0Lm4pIHsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICByZXMuZGF0YS5saXN0LmZvckVhY2goZnVuY3Rpb24gKGVsKSB7CiAgICAgICAgICAgICAgICAgIGVsLmlzU2VsZWN0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgIGVsLmlzRWRpdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICBlbC5pc1Nob3dFZGl0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgIGVsLnJlYWxOYW1lID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgIGVsLm51bSA9IDA7CiAgICAgICAgICAgICAgICAgIF90aGlzMS5lZGl0TmFtZShlbCk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIF90aGlzMS5waWN0cnVlTGlzdCA9IHJlcy5kYXRhLmxpc3Q7CiAgICAgICAgICAgICAgICBpZiAoX3RoaXMxLnBpY3RydWVMaXN0Lmxlbmd0aCkgewogICAgICAgICAgICAgICAgICBfdGhpczEuaXNTaG93UGljID0gZmFsc2U7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICBfdGhpczEuaXNTaG93UGljID0gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF90aGlzMS50b3RhbCA9IHJlcy5kYXRhLmNvdW50OwogICAgICAgICAgICAgICAgX3RoaXMxLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIC8v56Gu5L+dZG9t5Yqg6L295a6M5q+VCiAgICAgICAgICAgICAgICAgIC8vIHRoaXMuc2hvd1NlbGVjdERhdGEoKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuYSgyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgX2NhbGxlZTQpOwogICAgICAgIH0pKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94NCkgewogICAgICAgICAgcmV0dXJuIF9yZWY0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICAgICAgfSgpKS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMxLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICBzaG93U2VsZWN0RGF0YTogZnVuY3Rpb24gc2hvd1NlbGVjdERhdGEoKSB7CiAgICAgIHZhciBfdGhpczEwID0gdGhpczsKICAgICAgaWYgKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoID4gMCkgewogICAgICAgIC8vIOWIpOaWreaYr+WQpuWtmOWcqOWLvumAiei/h+eahOaVsOaNrgogICAgICAgIHRoaXMucGljdHJ1ZUxpc3QuZm9yRWFjaChmdW5jdGlvbiAocm93KSB7CiAgICAgICAgICAvLyDojrflj5bmlbDmja7liJfooajmjqXlj6Por7fmsYLliLDnmoTmlbDmja4KICAgICAgICAgIF90aGlzMTAubXVsdGlwbGVTZWxlY3Rpb24uZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAvLyDli77pgInliLDnmoTmlbDmja4KICAgICAgICAgICAgaWYgKHJvdy5hdHRfaWQgPT09IGl0ZW0uYXR0X2lkKSB7CiAgICAgICAgICAgICAgLy8gdGhpcy4kcmVmcy50YWJsZS50b2dnbGVSb3dTZWxlY3Rpb24oaXRlbSwgdHJ1ZSk7IC8vIOiLpeaciemHjeWQiO+8jOWImeWbnuaYvuivpeadoeaVsOaNrgogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIGdldFJvd0tleTogZnVuY3Rpb24gZ2V0Um93S2V5KHJvdykgewogICAgICByZXR1cm4gcm93LmF0dF9pZDsKICAgIH0sCiAgICAvL+WvueixoeaVsOe7hOWOu+mHje+8mwogICAgdW5pcXVlOiBmdW5jdGlvbiB1bmlxdWUoYXJyKSB7CiAgICAgIHZhciByZXN1bHQgPSBhcnIucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGN1cnIpIHsKICAgICAgICB2YXIgeCA9IGFjYy5maW5kKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICByZXR1cm4gaXRlbS5hdHRfaWQgPT09IGN1cnIuYXR0X2lkOwogICAgICAgIH0pOwogICAgICAgIGlmICgheCkgewogICAgICAgICAgcmV0dXJuIGFjYy5jb25jYXQoW2N1cnJdKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIGFjYzsKICAgICAgICB9CiAgICAgIH0sIFtdKTsKICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0sCiAgICAvLyAg6YCJ5Lit5p+Q5LiA6KGMCiAgICBoYW5kbGVTZWxlY3RSb3c6IGZ1bmN0aW9uIGhhbmRsZVNlbGVjdFJvdyhzZWxlY3Rpb24pIHsKICAgICAgdmFyIGFyciA9IHRoaXMudW5pcXVlKHNlbGVjdGlvbik7CiAgICAgIHZhciB1bmlxdWVBcnIgPSBbXTsKICAgICAgdmFyIGlkcyA9IFtdOwogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBpdGVtID0gYXJyW2ldOwogICAgICAgIGlmICghaWRzLmluY2x1ZGVzKGl0ZW0uYXR0X2lkKSkgewogICAgICAgICAgdW5pcXVlQXJyLnB1c2goaXRlbSk7CiAgICAgICAgICBpZHMucHVzaChpdGVtLmF0dF9pZCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHRoaXMuaWRzID0gaWRzOwogICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdW5pcXVlQXJyOwogICAgfSwKICAgIHBhZ2VDaGFuZ2U6IGZ1bmN0aW9uIHBhZ2VDaGFuZ2UoaW5kZXgpIHsKICAgICAgdGhpcy5maWxlRGF0YS5wYWdlID0gaW5kZXg7CiAgICAgIHRoaXMuZ2V0RmlsZUxpc3QoKTsKICAgICAgdGhpcy5jaGVja1BpY0xpc3QgPSBbXTsKICAgIH0sCiAgICAvLyDmlrDlu7rliIbnsbvooajljZUKICAgIGdldEZyb206IGZ1bmN0aW9uIGdldEZyb20oKSB7CiAgICAgIHZhciBfdGhpczExID0gdGhpczsKICAgICAgdGhpcy4kbW9kYWxGb3JtKGNyZWF0ZUFwaSh7CiAgICAgICAgaWQ6IHRoaXMudHJlZUlkCiAgICAgIH0pKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczExLmdldExpc3QoKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g5LiK5Lyg5LmL5YmNCiAgICBiZWZvcmVVcGxvYWQ6IGZ1bmN0aW9uIGJlZm9yZVVwbG9hZChmaWxlKSB7CiAgICAgIHZhciBfdGhpczEyID0gdGhpczsKICAgICAgLy8gaWYgKGZpbGUuc2l6ZSA+IDIwOTcxNTIpIHsKICAgICAgLy8gICB0aGlzLiRtZXNzYWdlLmVycm9yKGZpbGUubmFtZSArICLlpKflsI/otoXov4cyTSEiKTsKICAgICAgLy8gfSBlbHNlCiAgICAgIGlmICghL2ltYWdlXC9cdysvLnRlc3QoZmlsZS50eXBlKSkgewogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+ivt+S4iuS8oOS7pWpwZ+OAgWpwZWfjgIFwbmfnrYnnu5PlsL7nmoTlm77niYfmlofku7YnKTsgLy9GaWxlRXh0LnRvTG93ZXJDYXNlKCkKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgdGhpcy51cGxvYWREYXRhID0gewogICAgICAgIHBpZDogdGhpcy50cmVlSWQKICAgICAgfTsKICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkgewogICAgICAgIF90aGlzMTIuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHJlc29sdmUodHJ1ZSk7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgICByZXR1cm4gcHJvbWlzZTsKICAgIH0sCiAgICAvLyDkuIrkvKDmiJDlip8KICAgIGhhbmRsZVN1Y2Nlc3M6IGZ1bmN0aW9uIGhhbmRsZVN1Y2Nlc3MocmVzLCBmaWxlLCBmaWxlTGlzdCkgewogICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjAwKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOwogICAgICAgIHRoaXMuZmlsZURhdGEucGFnZSA9IDE7CiAgICAgICAgdGhpcy5nZXRGaWxlTGlzdCgpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDlhbPpl60KICAgIGNhbmNlbDogZnVuY3Rpb24gY2FuY2VsKCkgewogICAgICB0aGlzLiRlbWl0KCdjaGFuZ2VDYW5jZWwnKTsKICAgIH0sCiAgICAvLyDpgInkuK3lm77niYcKICAgIGNoYW5nSW1hZ2U6IGZ1bmN0aW9uIGNoYW5nSW1hZ2UoaXRlbSwgaW5kZXgsIHJvdykgewogICAgICB2YXIgX3RoaXMxMyA9IHRoaXM7CiAgICAgIHZhciBhY3RpdmVJbmRleCA9IDA7CiAgICAgIGlmICghaXRlbS5pc1NlbGVjdCkgewogICAgICAgIGl0ZW0uaXNTZWxlY3QgPSB0cnVlOwogICAgICAgIHRoaXMuY2hlY2tQaWNMaXN0LnB1c2goaXRlbSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaXRlbS5pc1NlbGVjdCA9IGZhbHNlOwogICAgICAgIHRoaXMuY2hlY2tQaWNMaXN0Lm1hcChmdW5jdGlvbiAoZWwsIGluZGV4KSB7CiAgICAgICAgICBpZiAoZWwuYXR0X2lkID09IGl0ZW0uYXR0X2lkKSB7CiAgICAgICAgICAgIGFjdGl2ZUluZGV4ID0gaW5kZXg7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5jaGVja1BpY0xpc3Quc3BsaWNlKGFjdGl2ZUluZGV4LCAxKTsKICAgICAgfQogICAgICB0aGlzLmlkcyA9IFtdOwogICAgICB0aGlzLmNoZWNrUGljTGlzdC5tYXAoZnVuY3Rpb24gKGl0ZW0sIGkpIHsKICAgICAgICBfdGhpczEzLmlkcy5wdXNoKGl0ZW0uYXR0X2lkKTsKICAgICAgfSk7CiAgICAgIHRoaXMucGljdHJ1ZUxpc3QubWFwKGZ1bmN0aW9uIChlbCwgaSkgewogICAgICAgIGlmIChlbC5pc1NlbGVjdCkgewogICAgICAgICAgX3RoaXMxMy5jaGVja1BpY0xpc3QuZmlsdGVyKGZ1bmN0aW9uIChlbDIsIGopIHsKICAgICAgICAgICAgaWYgKGVsLmF0dF9pZCA9PSBlbDIuYXR0X2lkKSB7CiAgICAgICAgICAgICAgZWwubnVtID0gaiArIDE7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBlbC5udW0gPSAwOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgLy8g54K55Ye75L2/55So6YCJ5Lit5Zu+54mHCiAgICBjaGVja1BpY3M6IGZ1bmN0aW9uIGNoZWNrUGljcygpIHsKICAgICAgaWYgKHRoaXMuaXNDaG9pY2UgPT09ICfljZXpgIknKSB7CiAgICAgICAgaWYgKHRoaXMuY2hlY2tQaWNMaXN0Lmxlbmd0aCA+IDEpIHJldHVybiB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+acgOWkmuWPquiDvemAieS4gOW8oOWbvueJhycpOwogICAgICAgIHRoaXMuJGVtaXQoJ2dldFBpYycsIHRoaXMuY2hlY2tQaWNMaXN0WzBdKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2YXIgbWF4TGVuZ3RoID0gdGhpcy4kcm91dGUucXVlcnkubWF4TGVuZ3RoOwogICAgICAgIGlmIChtYXhMZW5ndGggIT0gdW5kZWZpbmVkICYmIHRoaXMuY2hlY2tQaWNMaXN0Lmxlbmd0aCA+IE51bWJlcihtYXhMZW5ndGgpKSByZXR1cm4gdGhpcy4kbWVzc2FnZS53YXJuaW5nKCfmnIDlpJrlj6rog73pgIknICsgbWF4TGVuZ3RoICsgJ+W8oOWbvueJhycpOwogICAgICAgIHRoaXMuJGVtaXQoJ2dldFBpY0QnLCB0aGlzLmNoZWNrUGljTGlzdCk7CiAgICAgICAgdGhpcy4kZW1pdCgnZ2V0UGljJywgdGhpcy5jaGVja1BpY0xpc3QpOwogICAgICB9CiAgICB9LAogICAgZWRpdE5hbWU6IGZ1bmN0aW9uIGVkaXROYW1lKGl0ZW0pIHsKICAgICAgdmFyIGl0ID0gaXRlbS5yZWFsX25hbWUuc3BsaXQoJy4nKTsKICAgICAgdmFyIGl0MSA9IGl0WzFdID09IHVuZGVmaW5lZCA/IFtdIDogaXRbMV07CiAgICAgIHZhciBsZW4gPSBpdFswXS5sZW5ndGggKyBpdDEubGVuZ3RoOwogICAgICBpdGVtLmVkaXROYW1lID0gbGVuIDwgMTAgPyBpdGVtLnJlYWxfbmFtZSA6IGl0ZW0ucmVhbF9uYW1lLnN1YnN0cigwLCA0KSArICcuLi4nICsgaXRlbS5yZWFsX25hbWUuc3Vic3RyKC01LCA1KTsKICAgIH0sCiAgICAvLyDkv67mlLnlm77niYfmloflrZfkuIrkvKAKICAgIGJpbmRUeHQ6IGZ1bmN0aW9uIGJpbmRUeHQoaXRlbSkgewogICAgICB2YXIgX3RoaXMxNCA9IHRoaXM7CiAgICAgIGlmIChpdGVtLnJlYWxfbmFtZSA9PSAnJykgewogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+ivt+Whq+WGmeWGheWuuScpOwogICAgICB9CiAgICAgIGZpbGVVcGRhdGVBcGkoaXRlbS5hdHRfaWQsIHsKICAgICAgICByZWFsX25hbWU6IGl0ZW0ucmVhbF9uYW1lCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzMTQuZWRpdE5hbWUoaXRlbSk7CiAgICAgICAgaXRlbS5pc0VkaXQgPSBmYWxzZTsKICAgICAgICBfdGhpczE0LiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikgewogICAgICAgIF90aGlzMTQuJG1lc3NhZ2UuZXJyb3IoZXJyb3IubXNnKTsKICAgICAgfSk7CiAgICB9CiAgfQp9Ow=="},{"version":3,"names":["getCategoryListApi","createApi","fileListApi","categoryEditApi","moveApi","fileUpdateApi","Setting","getCookies","uploadImg","VueTreeList","Tree","TreeNode","name","components","props","isChoice","type","String","default","isPage","Boolean","isIframe","gridBtn","Object","gridPic","isShow","Number","pageLimit","data","spinShow","fileUrl","apiBaseURL","modalPic","treeData","treeData2","pictrueList","uploadData","checkPicList","uploadName","all","formValidate","id","FromData","treeId","isJudge","buttonProps","size","fileData","pid","real_name","page","limit","total","pids","list","modalTitleSs","isShowPic","header","ids","lietStyle","imageUrl","loading","multipleSelection","picmargin","mounted","hang","parseInt","document","body","clientHeight","$refs","imgListBox","col","clientWidth","getToken","getList","getFileList","methods","radioChange","initData","lookImg","item","_this","att_dir","viewer","$el","querySelector","$viewer","show","$nextTick","i","findIndex","e","update","view","onDel","node","_this2","method","cate_id","routeDel","routeCateDel","$msgbox","title","message","showCancelButton","cancelButtonText","confirmButtonText","iconClass","confirmButtonClass","then","res","$message","success","msg","remove","catch","err","error","onChangeName","params","_this3","eventType","newName","interfaceEditName","addSort","append","clickMenu","editPic","uploadSuccess","uploadModal","upload","enterMouse","realName","enterLeave","isShowEdit","moveImg","status","getMove","toString","warning","searchImg","_this4","images","_ref","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","a","_x","apply","arguments","delImg","_this5","delfromData","url","$modalSure","editPicList","_this6","onMouseOver","root","event","preventDefault","flag","flag2","appendBtn","getFrom","tit","_this7","tits","concat","_this8","$modalForm","changePage","_this9","_ref2","_callee2","_context2","JSON","parse","stringify","_toConsumableArray","unshift","_x2","loadData","callback","_ref3","_callee3","_context3","_x3","addFlag","treedata","_this0","map","$set","children","add","searchFile","_this1","_ref4","_callee4","_context4","forEach","el","isSelect","isEdit","num","editName","length","count","_x4","showSelectData","_this10","row","att_id","getRowKey","unique","arr","result","reduce","acc","curr","x","find","handleSelectRow","selection","uniqueArr","includes","push","pageChange","index","_this11","beforeUpload","file","_this12","test","promise","Promise","resolve","handleSuccess","fileList","cancel","$emit","changImage","_this13","activeIndex","splice","filter","el2","j","checkPics","maxLength","$route","query","undefined","it","split","it1","len","substr","bindTxt","_this14"],"sources":["src/components/uploadPictures/index.vue"],"sourcesContent":["<template>\r\n <div class=\"Modal\">\r\n <div class=\"colLeft\">\r\n <div class=\"Nav\">\r\n <div class=\"trees-coadd\">\r\n <div v-if=\"isPage\" class=\"tree_tit\" v-db-click @click=\"addSort\">\r\n <i class=\"el-icon-circle-plus\"></i>\r\n 添加分类\r\n </div>\r\n <div class=\"scollhide\">\r\n <div :class=\"isPage ? 'tree' : 'isTree'\">\r\n <el-tree\r\n :data=\"treeData\"\r\n node-key=\"id\"\r\n default-expand-all\r\n highlight-current\r\n :expand-on-click-node=\"false\"\r\n @node-click=\"appendBtn\"\r\n :current-node-key=\"treeId\"\r\n >\r\n <span class=\"custom-tree-node\" slot-scope=\"{ data }\">\r\n <!-- <span class=\"file-name\">\r\n <i class=\"icon el-icon-folder-remove\"></i>\r\n {{ data.title }}</span\r\n > -->\r\n <!-- <span class=\"file-name\">\r\n <img v-if=\"!data.pid\" class=\"icon\" src=\"@/assets/images/file.jpg\" />\r\n <span class=\"name line1\">{{ data.title }}</span>\r\n </span> -->\r\n <div class=\"file-name\">\r\n <img v-if=\"!data.pid\" class=\"icon\" src=\"@/assets/images/file.jpg\" />\r\n <el-tooltip class=\"item\" effect=\"dark\" :content=\"data.title\" placement=\"top\">\r\n <div class=\"text line1\">\r\n {{ data.title }}\r\n </div>\r\n </el-tooltip>\r\n </div>\r\n <span>\r\n <el-dropdown @command=\"(command) => clickMenu(data, command)\">\r\n <i class=\"el-icon-more el-icon--right\"></i>\r\n <template slot=\"dropdown\">\r\n <el-dropdown-menu>\r\n <el-dropdown-item command=\"1\">新增分类</el-dropdown-item>\r\n <el-dropdown-item v-if=\"data.id\" command=\"2\">编辑分类</el-dropdown-item>\r\n <el-dropdown-item v-if=\"data.id\" command=\"3\">删除</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </span>\r\n </span>\r\n </el-tree>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"conter\">\r\n <div class=\"bnt acea-row row-middle df-jcsb\">\r\n <div class=\"\">\r\n <el-button\r\n type=\"primary\"\r\n :disabled=\"checkPicList.length === 0\"\r\n v-db-click\r\n @click=\"checkPics\"\r\n size=\"small\"\r\n v-if=\"isShow !== 0\"\r\n >使用选中图片</el-button\r\n >\r\n <el-button size=\"small\" type=\"primary\" v-db-click @click=\"uploadModal\">上传图片</el-button>\r\n <el-button\r\n class=\"mr14\"\r\n size=\"small\"\r\n :disabled=\"!checkPicList.length && !ids.length\"\r\n v-db-click\r\n @click.stop=\"editPicList()\"\r\n >删除图片</el-button\r\n >\r\n <el-cascader\r\n v-model=\"pids\"\r\n placeholder=\"图片移动至\"\r\n style=\"width: 150px\"\r\n class=\"treeSel\"\r\n :options=\"treeData2\"\r\n :props=\"{ checkStrictly: true, emitPath: false, label: 'title', value: 'id' }\"\r\n clearable\r\n size=\"small\"\r\n @visible-change=\"moveImg\"\r\n ></el-cascader>\r\n </div>\r\n <div>\r\n <el-input\r\n class=\"mr10\"\r\n v-model=\"fileData.real_name\"\r\n placeholder=\"请输入图片名\"\r\n size=\"small\"\r\n style=\"width: 150px\"\r\n @change=\"searchFile\"\r\n >\r\n <i slot=\"suffix\" class=\"el-icon-search el-input__icon\" v-db-click @click=\"getFileList\"></i>\r\n </el-input>\r\n <el-radio-group class=\"mr10\" v-if=\"isPage\" v-model=\"lietStyle\" size=\"small\" @input=\"radioChange\">\r\n <el-radio-button label=\"list\">\r\n <i class=\"el-icon-menu\"></i>\r\n </el-radio-button>\r\n <el-radio-button label=\"table\">\r\n <!-- <i class=\"el-icon-files\"></i> -->\r\n <span class=\"iconfont iconliebiao\"></span>\r\n </el-radio-button>\r\n </el-radio-group>\r\n </div>\r\n </div>\r\n <div class=\"pictrueList acea-row\" :class=\"{ 'is-modal': !isPage }\">\r\n <div v-if=\"lietStyle == 'list'\" style=\"width: 100%\">\r\n <div v-show=\"isShowPic\" class=\"imagesNo\">\r\n <i class=\"el-icon-picture\" style=\"color: #dbdbdb; font-size: 60px\"></i>\r\n <span class=\"imagesNo_sp\">图片库为空</span>\r\n </div>\r\n <div ref=\"imgListBox\" class=\"acea-row mb10\">\r\n <div\r\n class=\"pictrueList_pic mb10 mt10\"\r\n v-for=\"(item, index) in pictrueList\"\r\n :key=\"index\"\r\n :style=\"{ margin: picmargin }\"\r\n @mouseenter=\"enterMouse(item)\"\r\n @mouseleave=\"enterMouse(item)\"\r\n >\r\n <p class=\"number\" v-if=\"item.num > 0\">\r\n <el-badge :value=\"item.num\" type=\"primary\">\r\n <a href=\"#\" class=\"demo-badge\"></a>\r\n </el-badge>\r\n </p>\r\n <div class=\"img\" :class=\"item.isSelect ? 'on' : ''\" v-db-click @click.stop=\"changImage(item, index, pictrueList)\">\r\n <img v-lazy=\"item.satt_dir\" />\r\n </div>\r\n\r\n <div class=\"operate-item\" @mouseenter=\"enterLeave(item)\" @mouseleave=\"enterLeave(item)\">\r\n <p v-if=\"!item.isEdit\">\r\n {{ item.editName }}\r\n </p>\r\n <el-input size=\"small\" type=\"text\" v-model=\"item.real_name\" v-else @blur=\"bindTxt(item)\" />\r\n <div class=\"operate-height\">\r\n <span class=\"operate mr10\" v-db-click @click=\"editPicList(item.att_id)\" v-if=\"item.isShowEdit\"\r\n >删除</span\r\n >\r\n <span class=\"operate mr10\" v-db-click @click=\"item.isEdit = !item.isEdit\" v-if=\"item.isShowEdit\"\r\n >改名</span\r\n >\r\n <span class=\"operate\" v-db-click @click=\"lookImg(item)\" v-if=\"item.isShowEdit\">查看</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <el-table\r\n v-if=\"lietStyle == 'table'\"\r\n ref=\"table\"\r\n :data=\"pictrueList\"\r\n v-loading=\"loading\"\r\n highlight-row\r\n :row-key=\"getRowKey\"\r\n @selection-change=\"handleSelectRow\"\r\n no-data-text=\"暂无数据\"\r\n no-filtered-data-text=\"暂无筛选结果\"\r\n >\r\n <el-table-column type=\"selection\" width=\"60\" :reserve-selection=\"true\"> </el-table-column>\r\n <el-table-column label=\"图片名称\" min-width=\"190\">\r\n <template slot-scope=\"scope\">\r\n <div class=\"df-aic\">\r\n <div class=\"tabBox_img mr10\" v-viewer>\r\n <img v-lazy=\"scope.row.att_dir\" />\r\n </div>\r\n <span v-if=\"!scope.row.isEdit\" class=\"line2 real-name\">{{ scope.row.real_name }}</span>\r\n <el-input\r\n size=\"small\"\r\n type=\"text\"\r\n style=\"width: 90%\"\r\n v-model=\"scope.row.real_name\"\r\n v-else\r\n @blur=\"bindTxt(scope.row)\"\r\n />\r\n </div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"上传时间\" min-width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.time }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" fixed=\"right\" width=\"170\">\r\n <template slot-scope=\"scope\">\r\n <a v-db-click @click=\"editPicList(scope.row.att_id)\">删除</a>\r\n <el-divider direction=\"vertical\"></el-divider>\r\n <a v-db-click @click=\"scope.row.isEdit = !scope.row.isEdit\">{{\r\n scope.row.isEdit ? '确定' : '重命名'\r\n }}</a>\r\n <el-divider direction=\"vertical\"></el-divider>\r\n <a v-db-click @click=\"lookImg(scope.row)\">查看</a>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n </div>\r\n <div class=\"footer acea-row row-right\">\r\n <pagination\r\n v-if=\"total\"\r\n :total=\"total\"\r\n :pageCount=\"9\"\r\n layout=\"total, prev, pager, next\"\r\n :page.sync=\"fileData.page\"\r\n @pagination=\"pageChange\"\r\n :limit.sync=\"fileData.limit\"\r\n ></pagination>\r\n </div>\r\n </div>\r\n </div>\r\n <uploadImg\r\n ref=\"upload\"\r\n :isPage=\"isPage\"\r\n :isIframe=\"isIframe\"\r\n :categoryId=\"treeId\"\r\n :categoryList=\"treeData\"\r\n @uploadSuccess=\"uploadSuccess\"\r\n ></uploadImg>\r\n <div class=\"images\" v-show=\"false\" v-viewer=\"{ movable: false }\">\r\n <img v-for=\"src in pictrueList\" :src=\"src.att_dir\" :key=\"src.att_id\" />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n getCategoryListApi,\r\n createApi,\r\n fileListApi,\r\n categoryEditApi,\r\n moveApi,\r\n fileUpdateApi,\r\n} from '@/api/uploadPictures';\r\nimport Setting from '@/setting';\r\nimport { getCookies } from '@/libs/util';\r\nimport uploadImg from '@/components/uploadImg';\r\nimport { VueTreeList, Tree, TreeNode } from 'vue-tree-list';\r\nexport default {\r\n name: 'uploadPictures',\r\n components: { uploadImg, VueTreeList },\r\n props: {\r\n isChoice: {\r\n type: String,\r\n default: '',\r\n },\r\n isPage: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n isIframe: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n gridBtn: {\r\n type: Object,\r\n default: null,\r\n },\r\n gridPic: {\r\n type: Object,\r\n default: null,\r\n },\r\n isShow: {\r\n type: Number,\r\n default: 1,\r\n },\r\n pageLimit: {\r\n type: Number,\r\n default: 0,\r\n },\r\n },\r\n data() {\r\n return {\r\n spinShow: false,\r\n fileUrl: Setting.apiBaseURL + '/file/upload',\r\n modalPic: false,\r\n treeData: [],\r\n treeData2: [],\r\n pictrueList: [],\r\n uploadData: {}, // 上传参数\r\n checkPicList: [],\r\n uploadName: {\r\n name: '',\r\n all: 1,\r\n },\r\n formValidate: { id: 0 },\r\n FromData: null,\r\n treeId: '',\r\n isJudge: false,\r\n buttonProps: {\r\n type: 'default',\r\n size: 'small',\r\n },\r\n fileData: {\r\n pid: 0,\r\n real_name: '',\r\n page: 1,\r\n limit: this.pageLimit || 18,\r\n },\r\n total: 0,\r\n pids: 0,\r\n list: [],\r\n modalTitleSs: '',\r\n isShowPic: false,\r\n header: {},\r\n ids: [], // 选中附件的id集合\r\n lietStyle: 'list',\r\n imageUrl: '',\r\n loading: false,\r\n multipleSelection: [],\r\n picmargin: '5px', //默认距离右边距离\r\n };\r\n },\r\n mounted() {\r\n if (this.isPage) {\r\n let hang = parseInt((document.body.clientHeight - this.$refs.imgListBox.clientHeight - 325) / 180); //计算行数\r\n let col = parseInt(this.$refs.imgListBox.clientWidth / 156); //计算列数\r\n this.fileData.limit = col * hang; //计算分页数量\r\n this.picmargin = parseInt(this.$refs.imgListBox.clientWidth - col * 146) / (2 * col) + 'px'; //平均分布计算margin距离\r\n }\r\n this.getToken();\r\n this.getList();\r\n this.getFileList();\r\n },\r\n methods: {\r\n radioChange() {\r\n this.initData();\r\n },\r\n lookImg(item) {\r\n this.imageUrl = item.att_dir;\r\n const viewer = this.$el.querySelector('.images').$viewer;\r\n viewer.show();\r\n this.$nextTick(() => {\r\n let i = this.pictrueList.findIndex((e) => e.att_dir === item.att_dir);\r\n viewer.update().view(i);\r\n });\r\n },\r\n onDel(node) {\r\n let method = node.cate_id ? routeDel : routeCateDel;\r\n this.$msgbox({\r\n title: '提示',\r\n message: '是否确定删除该菜单',\r\n showCancelButton: true,\r\n cancelButtonText: '取消',\r\n confirmButtonText: '删除',\r\n iconClass: 'el-icon-warning',\r\n confirmButtonClass: 'btn-custom-cancel',\r\n })\r\n .then(() => {\r\n method(node.id)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n node.remove();\r\n })\r\n .catch((err) => {\r\n this.$message.error(err);\r\n });\r\n })\r\n .catch(() => {});\r\n },\r\n\r\n onChangeName(params) {\r\n if (params.eventType == 'blur') {\r\n let data = {\r\n name: params.newName,\r\n id: params.id,\r\n };\r\n interfaceEditName(data)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n })\r\n .catch((err) => {\r\n this.$message.error(err);\r\n });\r\n }\r\n },\r\n // 添加分类\r\n addSort() {\r\n this.append({ id: this.treeId || 0 });\r\n },\r\n // 点击菜单\r\n clickMenu(data, name) {\r\n if (name == 1) {\r\n this.append(data);\r\n } else if (name == 2) {\r\n this.editPic(data);\r\n } else if (name == 3) {\r\n this.remove(data, '分类');\r\n }\r\n },\r\n uploadSuccess() {\r\n this.fileData.page = 1;\r\n this.initData();\r\n this.getFileList();\r\n },\r\n uploadModal() {\r\n this.$refs.upload.uploadModal = true;\r\n },\r\n enterMouse(item) {\r\n item.realName = !item.realName;\r\n },\r\n enterLeave(item) {\r\n item.isShowEdit = !item.isShowEdit;\r\n },\r\n // 上传头部token\r\n getToken() {\r\n this.header['Authori-zation'] = 'Bearer ' + getCookies('token');\r\n },\r\n moveImg(status) {\r\n if (!status) {\r\n this.getMove();\r\n } else {\r\n if (!this.ids.toString()) {\r\n this.$message.warning('请先选择图片');\r\n return;\r\n }\r\n }\r\n },\r\n searchImg() {},\r\n // 移动分类\r\n getMove() {\r\n let data = {\r\n pid: this.pids,\r\n images: this.ids.toString(),\r\n };\r\n if (!data.images) return;\r\n moveApi(data)\r\n .then(async (res) => {\r\n this.$message.success(res.msg);\r\n this.getFileList();\r\n this.pids = 0;\r\n this.checkPicList = [];\r\n this.ids = [];\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n delImg(id) {\r\n let ids = {\r\n ids: id,\r\n };\r\n let delfromData = {\r\n title: '删除选中图片',\r\n url: `file/file/delete`,\r\n method: 'POST',\r\n ids: ids,\r\n };\r\n this.$modalSure(delfromData)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.getFileList();\r\n this.checkPicList = [];\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 删除图片\r\n editPicList(id) {\r\n let ids = {\r\n ids: id || this.ids.toString(),\r\n };\r\n let delfromData = {\r\n title: '删除选中图片',\r\n url: `file/file/delete`,\r\n method: 'POST',\r\n ids: ids,\r\n };\r\n this.$modalSure(delfromData)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.getFileList();\r\n this.initData();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n initData() {\r\n this.checkPicList = [];\r\n this.ids = [];\r\n this.multipleSelection = [];\r\n },\r\n // 鼠标移入 移出\r\n onMouseOver(root, node, data) {\r\n event.preventDefault();\r\n data.flag = !data.flag;\r\n if (data.flag2) {\r\n data.flag2 = false;\r\n }\r\n },\r\n // 点击树\r\n appendBtn(data) {\r\n this.treeId = data.id;\r\n this.fileData.page = 1;\r\n this.getFileList();\r\n },\r\n // 点击添加\r\n append(data) {\r\n this.treeId = data.id;\r\n this.getFrom();\r\n },\r\n // 删除分类\r\n remove(data, tit) {\r\n this.tits = tit;\r\n let delfromData = {\r\n title: '删除 [ ' + data.title + ' ] ' + '分类',\r\n url: `file/category/${data.id}`,\r\n method: 'DELETE',\r\n ids: '',\r\n };\r\n this.$modalSure(delfromData)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.getList();\r\n this.checkPicList = [];\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 编辑树表单\r\n editPic(data) {\r\n this.$modalForm(categoryEditApi(data.id)).then(() => this.getList());\r\n },\r\n // 搜索分类\r\n changePage() {\r\n this.getList('search');\r\n },\r\n // 分类列表树\r\n getList(type) {\r\n let data = {\r\n title: '全部图片',\r\n id: '',\r\n pid: 0,\r\n };\r\n getCategoryListApi(this.uploadName)\r\n .then(async (res) => {\r\n if (type !== 'search') {\r\n this.treeData2 = JSON.parse(JSON.stringify([...res.data.list]));\r\n }\r\n res.data.list.unshift(data);\r\n this.treeData = res.data.list;\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n loadData(item, callback) {\r\n getCategoryListApi({\r\n pid: item.id,\r\n })\r\n .then(async (res) => {\r\n const data = res.data.list;\r\n callback(data);\r\n })\r\n .catch((res) => {});\r\n },\r\n addFlag(treedata) {\r\n treedata.map((item) => {\r\n this.$set(item, 'flag', false);\r\n this.$set(item, 'flag2', false);\r\n item.children && this.addFlag(item.children);\r\n });\r\n },\r\n // 新建分类\r\n add() {\r\n this.treeId = 0;\r\n this.getFrom();\r\n },\r\n searchFile() {\r\n this.fileData.page = 1;\r\n this.getFileList();\r\n },\r\n // 文件列表\r\n getFileList() {\r\n this.fileData.pid = this.treeId;\r\n fileListApi(this.fileData)\r\n .then(async (res) => {\r\n res.data.list.forEach((el) => {\r\n el.isSelect = false;\r\n el.isEdit = false;\r\n el.isShowEdit = false;\r\n el.realName = false;\r\n el.num = 0;\r\n this.editName(el);\r\n });\r\n this.pictrueList = res.data.list;\r\n\r\n if (this.pictrueList.length) {\r\n this.isShowPic = false;\r\n } else {\r\n this.isShowPic = true;\r\n }\r\n this.total = res.data.count;\r\n this.$nextTick(() => {\r\n //确保dom加载完毕\r\n // this.showSelectData();\r\n });\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n showSelectData() {\r\n if (this.multipleSelection.length > 0) {\r\n // 判断是否存在勾选过的数据\r\n this.pictrueList.forEach((row) => {\r\n // 获取数据列表接口请求到的数据\r\n this.multipleSelection.forEach((item) => {\r\n // 勾选到的数据\r\n if (row.att_id === item.att_id) {\r\n // this.$refs.table.toggleRowSelection(item, true); // 若有重合,则回显该条数据\r\n }\r\n });\r\n });\r\n }\r\n },\r\n getRowKey(row) {\r\n return row.att_id;\r\n },\r\n //对象数组去重;\r\n unique(arr) {\r\n let result = arr.reduce((acc, curr) => {\r\n const x = acc.find((item) => item.att_id === curr.att_id);\r\n if (!x) {\r\n return acc.concat([curr]);\r\n } else {\r\n return acc;\r\n }\r\n }, []);\r\n return result;\r\n },\r\n // 选中某一行\r\n handleSelectRow(selection) {\r\n let arr = this.unique(selection);\r\n const uniqueArr = [];\r\n const ids = [];\r\n for (let i = 0; i < arr.length; i++) {\r\n const item = arr[i];\r\n if (!ids.includes(item.att_id)) {\r\n uniqueArr.push(item);\r\n ids.push(item.att_id);\r\n }\r\n }\r\n this.ids = ids;\r\n this.multipleSelection = uniqueArr;\r\n },\r\n pageChange(index) {\r\n this.fileData.page = index;\r\n this.getFileList();\r\n this.checkPicList = [];\r\n },\r\n // 新建分类表单\r\n getFrom() {\r\n this.$modalForm(createApi({ id: this.treeId })).then((res) => {\r\n this.getList();\r\n });\r\n },\r\n // 上传之前\r\n beforeUpload(file) {\r\n // if (file.size > 2097152) {\r\n // this.$message.error(file.name + \"大小超过2M!\");\r\n // } else\r\n if (!/image\\/\\w+/.test(file.type)) {\r\n this.$message.error('请上传以jpg、jpeg、png等结尾的图片文件'); //FileExt.toLowerCase()\r\n return false;\r\n }\r\n this.uploadData = {\r\n pid: this.treeId,\r\n };\r\n let promise = new Promise((resolve) => {\r\n this.$nextTick(function () {\r\n resolve(true);\r\n });\r\n });\r\n return promise;\r\n },\r\n // 上传成功\r\n handleSuccess(res, file, fileList) {\r\n if (res.status === 200) {\r\n this.$message.success(res.msg);\r\n this.fileData.page = 1;\r\n this.getFileList();\r\n } else {\r\n this.$message.error(res.msg);\r\n }\r\n },\r\n // 关闭\r\n cancel() {\r\n this.$emit('changeCancel');\r\n },\r\n // 选中图片\r\n changImage(item, index, row) {\r\n let activeIndex = 0;\r\n if (!item.isSelect) {\r\n item.isSelect = true;\r\n this.checkPicList.push(item);\r\n } else {\r\n item.isSelect = false;\r\n this.checkPicList.map((el, index) => {\r\n if (el.att_id == item.att_id) {\r\n activeIndex = index;\r\n }\r\n });\r\n this.checkPicList.splice(activeIndex, 1);\r\n }\r\n\r\n this.ids = [];\r\n this.checkPicList.map((item, i) => {\r\n this.ids.push(item.att_id);\r\n });\r\n this.pictrueList.map((el, i) => {\r\n if (el.isSelect) {\r\n this.checkPicList.filter((el2, j) => {\r\n if (el.att_id == el2.att_id) {\r\n el.num = j + 1;\r\n }\r\n });\r\n } else {\r\n el.num = 0;\r\n }\r\n });\r\n },\r\n // 点击使用选中图片\r\n checkPics() {\r\n if (this.isChoice === '单选') {\r\n if (this.checkPicList.length > 1) return this.$message.warning('最多只能选一张图片');\r\n this.$emit('getPic', this.checkPicList[0]);\r\n } else {\r\n let maxLength = this.$route.query.maxLength;\r\n if (maxLength != undefined && this.checkPicList.length > Number(maxLength))\r\n return this.$message.warning('最多只能选' + maxLength + '张图片');\r\n this.$emit('getPicD', this.checkPicList);\r\n this.$emit('getPic', this.checkPicList);\r\n }\r\n },\r\n editName(item) {\r\n let it = item.real_name.split('.');\r\n let it1 = it[1] == undefined ? [] : it[1];\r\n let len = it[0].length + it1.length;\r\n item.editName = len < 10 ? item.real_name : item.real_name.substr(0, 4) + '...' + item.real_name.substr(-5, 5);\r\n },\r\n // 修改图片文字上传\r\n bindTxt(item) {\r\n if (item.real_name == '') {\r\n this.$message.error('请填写内容');\r\n }\r\n fileUpdateApi(item.att_id, {\r\n real_name: item.real_name,\r\n })\r\n .then((res) => {\r\n this.editName(item);\r\n item.isEdit = false;\r\n this.$message.success(res.msg);\r\n })\r\n .catch((error) => {\r\n this.$message.error(error.msg);\r\n });\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.nameStyle {\r\n position: absolute;\r\n white-space: nowrap;\r\n z-index: 9;\r\n background: #eee;\r\n height: 20px;\r\n line-height: 20px;\r\n color: #555;\r\n border: 1px solid #ebebeb;\r\n padding: 0 5px;\r\n left: 56px;\r\n bottom: -18px;\r\n}\r\n\r\n.iconbianji1 {\r\n font-size: 13px;\r\n}\r\n\r\n.selectTreeClass {\r\n background: #d5e8fc;\r\n}\r\n.tree_tit {\r\n padding-top: 7px;\r\n}\r\n.treeBox {\r\n width: 100%;\r\n height: 100%;\r\n max-width: 180px;\r\n}\r\n.is-modal .pictrueList_pic {\r\n width: 100px;\r\n margin: 10px 5px !important;\r\n .img {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100px;\r\n height: 100px;\r\n background-color: rgb(248, 248, 248);\r\n padding: 2px;\r\n img {\r\n max-width: 96px;\r\n max-height: 96px;\r\n // object-fit: cover;\r\n }\r\n .operate-height {\r\n bottom: -8px;\r\n }\r\n }\r\n}\r\n.pictrueList_pic {\r\n position: relative;\r\n width: 146px;\r\n cursor: pointer;\r\n // margin-right: 20px !important;\r\n .img {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 146px;\r\n height: 146px;\r\n background-color: rgb(248, 248, 248);\r\n padding: 3px;\r\n img {\r\n max-width: 140px;\r\n max-height: 140px;\r\n // object-fit: cover;\r\n }\r\n }\r\n\r\n p {\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n height: 20px;\r\n font-size: 12px;\r\n color: #515a6d;\r\n text-align: center;\r\n }\r\n\r\n .number {\r\n height: 33px;\r\n }\r\n\r\n .number {\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n }\r\n ::v-deep .el-badge__content.is-fixed {\r\n top: 13px;\r\n right: 25px;\r\n }\r\n}\r\n.Nav {\r\n width: 100%;\r\n border-right: 1px solid #eee;\r\n min-width: 220px;\r\n max-width: max-content;\r\n}\r\n.trees-coadd {\r\n width: 100%;\r\n border-radius: 4px;\r\n overflow: hidden;\r\n position: relative;\r\n\r\n .scollhide {\r\n overflow-x: hidden;\r\n overflow-y: scroll;\r\n padding: 0px 0 10px 0;\r\n box-sizing: border-box;\r\n\r\n .isTree {\r\n min-height: 374px;\r\n max-height: 550px;\r\n ::v-deep .file-name {\r\n display: flex;\r\n align-items: center;\r\n .name {\r\n max-width: 7em;\r\n }\r\n .icon {\r\n width: 12px;\r\n height: 12px;\r\n margin-right: 8px;\r\n }\r\n }\r\n ::v-deep .el-tree-node {\r\n margin-right: 16px;\r\n }\r\n ::v-deep .el-tree-node__children .el-tree-node {\r\n margin-right: 0;\r\n }\r\n ::v-deep .el-tree-node__content {\r\n width: 100%;\r\n height: 36px;\r\n }\r\n ::v-deep .custom-tree-node {\r\n flex: 1;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding-right: 20px;\r\n font-size: 13px;\r\n font-weight: 400;\r\n color: rgba(0, 0, 0, 0.6);\r\n line-height: 13px;\r\n }\r\n ::v-deep .is-current {\r\n background: #f1f9ff !important;\r\n color: var(--prev-color-primary) !important;\r\n }\r\n ::v-deep .is-current .custom-tree-node {\r\n color: var(--prev-color-primary) !important;\r\n }\r\n }\r\n }\r\n\r\n .scollhide::-webkit-scrollbar {\r\n display: none;\r\n }\r\n}\r\n\r\n.treeSel ::v-deep .ivu-select-dropdown-list {\r\n padding: 0 5px !important;\r\n box-sizing: border-box;\r\n width: 200px;\r\n}\r\n.imagesNo {\r\n display: flex;\r\n justify-content: center;\r\n flex-direction: column;\r\n align-items: center;\r\n margin: 65px 0;\r\n\r\n .imagesNo_sp {\r\n font-size: 13px;\r\n color: #dbdbdb;\r\n line-height: 3;\r\n }\r\n}\r\n\r\n.Modal {\r\n width: 100%;\r\n height: 100%;\r\n background: #fff !important;\r\n}\r\n.fill-window {\r\n height: 100vh;\r\n}\r\n.colLeft {\r\n padding-right: 0 !important;\r\n height: 100%;\r\n display: flex;\r\n flex-wrap: nowrap;\r\n}\r\n\r\n.conter {\r\n width: 100%;\r\n height: 100%;\r\n margin-left: 20px !important;\r\n .iconliebiao {\r\n font-size: 12px;\r\n }\r\n}\r\n\r\n.conter .bnt {\r\n width: 100%;\r\n padding: 0 0px 20px 0px;\r\n box-sizing: border-box;\r\n}\r\n\r\n.conter .pictrueList {\r\n // width: 100%;\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n min-height: 463px;\r\n}\r\n.conter .pictrueList.is-modal {\r\n max-height: 480px;\r\n}\r\n.right-col {\r\n // flex: 1;\r\n}\r\n.conter .pictrueList img {\r\n max-width: 100%;\r\n}\r\n.conter .pictrueList .img.on {\r\n border: 2px solid var(--prev-color-primary);\r\n}\r\n\r\n.conter .footer {\r\n padding: 0 20px 10px 20px;\r\n}\r\n.tabBox_img {\r\n display: flex;\r\n align-items: center;\r\n}\r\n.real-name {\r\n flex: 1;\r\n}\r\n.df-aic {\r\n display: flex;\r\n align-items: center;\r\n}\r\n.demo-badge {\r\n width: 42px;\r\n height: 42px;\r\n background: transparent;\r\n border-radius: 6px;\r\n display: inline-block;\r\n}\r\n\r\n.bnt ::v-deep .ivu-tree-children {\r\n padding: 5px 0;\r\n}\r\n\r\n.card-tree {\r\n background: #fff;\r\n height: 72px;\r\n box-sizing: border-box;\r\n overflow-x: scroll; /* 设置溢出滚动 */\r\n white-space: nowrap;\r\n overflow-y: hidden;\r\n /* 隐藏滚动条 */\r\n border-radius: 4px;\r\n scrollbar-width: none; /* firefox */\r\n -ms-overflow-style: none; /* IE 10+ */\r\n}\r\n.card-tree::-webkit-scrollbar {\r\n display: none; /* Chrome Safari */\r\n}\r\n.tabs {\r\n background: #fff;\r\n padding-top: 10px;\r\n border-radius: 5px 5px 0 0;\r\n}\r\n.operate-item {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-direction: column;\r\n margin: 5px 0;\r\n}\r\n.operate-height {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 16px;\r\n position: absolute;\r\n bottom: -10px;\r\n}\r\n.operate {\r\n color: var(--prev-color-primary);\r\n font-size: 12px;\r\n white-space: nowrap;\r\n}\r\n</style>\r\n"],"mappings":"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","ignoreList":[]}]}