ed9706fe0b8927a3d141834f3826d431.json 33 KB

1
  1. {"remainingRequest":"/usr/local/develop/php/www/waibao/project/NN2022060801/addons/admin/node_modules/babel-loader/lib/index.js!/usr/local/develop/php/www/waibao/project/NN2022060801/addons/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!/usr/local/develop/php/www/waibao/project/NN2022060801/addons/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!/usr/local/develop/php/www/waibao/project/NN2022060801/addons/admin/src/components/EleCropperDialog/EleCropper.vue?vue&type=script&lang=js&","dependencies":[{"path":"/usr/local/develop/php/www/waibao/project/NN2022060801/addons/admin/src/components/EleCropperDialog/EleCropper.vue","mtime":1616225248000},{"path":"/usr/local/develop/php/www/waibao/project/NN2022060801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2022060801/addons/admin/node_modules/babel-loader/lib/index.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2022060801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2022060801/addons/admin/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0IjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZm9yLWVhY2giOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5pbmRleC1vZiI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcCI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm51bWJlci5jb25zdHJ1Y3RvciI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmciOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5yZXBsYWNlIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnNwbGl0IjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnRyaW0iOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS51aW50OC1hcnJheSI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmNvcHktd2l0aGluIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuZXZlcnkiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5maWxsIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuZmlsdGVyIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuZmluZCI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmZpbmQtaW5kZXgiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5mb3ItZWFjaCI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmluY2x1ZGVzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuaW5kZXgtb2YiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5pdGVyYXRvciI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmpvaW4iOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5sYXN0LWluZGV4LW9mIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkubWFwIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkucmVkdWNlIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkucmVkdWNlLXJpZ2h0IjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkucmV2ZXJzZSI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnNldCI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnNsaWNlIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuc29tZSI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnNvcnQiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5zdWJhcnJheSI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnRvLWxvY2FsZS1zdHJpbmciOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS50by1zdHJpbmciOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0ICdjcm9wcGVyanMvZGlzdC9jcm9wcGVyLmNzcyc7CmltcG9ydCBDcm9wcGVyIGZyb20gJ2Nyb3BwZXJqcyc7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiRWxlQ3JvcHBlciIsCiAgcHJvcHM6IHsKICAgIHNyYzogU3RyaW5nLAogICAgLy8g5Zu+54mH5Zyw5Z2ACiAgICBhc3BlY3RSYXRpbzogewogICAgICAvLyDoo4Hliarmr5TkvosKICAgICAgdHlwZTogTnVtYmVyLAogICAgICBkZWZhdWx0OiAxCiAgICB9LAogICAgdmlld01vZGU6IE51bWJlciwKICAgIC8vIOijgeWJque7hOS7tuaooeW8jwogICAgZHJhZ01vZGU6IFN0cmluZywKICAgIGluaXRpYWxBc3BlY3RSYXRpbzogTnVtYmVyLAogICAgbWluQ29udGFpbmVyV2lkdGg6IE51bWJlciwKICAgIG1pbkNvbnRhaW5lckhlaWdodDogTnVtYmVyLAogICAgbWluQ2FudmFzV2lkdGg6IE51bWJlciwKICAgIG1pbkNhbnZhc0hlaWdodDogTnVtYmVyLAogICAgbWluQ3JvcEJveFdpZHRoOiBOdW1iZXIsCiAgICBtaW5Dcm9wQm94SGVpZ2h0OiBOdW1iZXIsCiAgICBjcm9wcGVkV2lkdGg6IE51bWJlciwKICAgIGNyb3BwZWRIZWlnaHQ6IE51bWJlciwKICAgIGNyb3BwZWRNaW5XaWR0aDogTnVtYmVyLAogICAgY3JvcHBlZE1pbkhlaWdodDogTnVtYmVyLAogICAgY3JvcHBlZE1heFdpZHRoOiBOdW1iZXIsCiAgICBjcm9wcGVkTWF4SGVpZ2h0OiBOdW1iZXIsCiAgICBjcm9wcGVkRmlsbENvbG9yOiBOdW1iZXIsCiAgICBjcm9wcGVkSW1hZ2VTbW9vdGhpbmdFbmFibGVkOiBCb29sZWFuLAogICAgY3JvcHBlZEltYWdlU21vb3RoaW5nUXVhbGl0eTogU3RyaW5nLAogICAgdG9CbG9iOiBCb29sZWFuLAogICAgLy8g5piv5ZCm6L+U5ZueYmxvYuaVsOaNrgogICAgYWNjZXB0OiB7CiAgICAgIC8vIOWFgeiuuOS4iuS8oOeahOWbvueJh+exu+WeiwogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICdpbWFnZS8qJwogICAgfSwKICAgIHRvb2xzOiB7CiAgICAgIC8vIOaTjeS9nOaMiemSruW4g+WxgAogICAgICB0eXBlOiBbQm9vbGVhbiwgU3RyaW5nXSwKICAgICAgZGVmYXVsdDogdHJ1ZQogICAgfSwKICAgIHNob3dQcmV2aWV3OiB7CiAgICAgIC8vIOaYr+WQpuaYvuekuumihOiniOe7hOS7tgogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgaW1nU3JjOiAnJywKICAgICAgLy8g5Zu+54mHYmFzZTY05pWw5o2uCiAgICAgIGluczogbnVsbCwKICAgICAgLy8gY3JvcHBlcuWunuS+iwogICAgICBvcHRpb25zOiB7CiAgICAgICAgLy8gY3JvcHBlcumFjee9rgogICAgICAgIGFzcGVjdFJhdGlvOiB0aGlzLmFzcGVjdFJhdGlvLAogICAgICAgIHZpZXdNb2RlOiB0aGlzLnZpZXdNb2RlCiAgICAgIH0sCiAgICAgIGltZ1R5cGU6ICdpbWFnZS9qcGVnJywKICAgICAgLy8g5b2T5YmN5Zu+54mH57G75Z6LCiAgICAgIHByZXZpZXdXaWR0aDogMTIwIC8vIOmihOiniOe7hOS7tuWuveW6pgoKICAgIH07CiAgfSwKICBjb21wdXRlZDogewogICAgLy8g6aKE6KeI57uE5Lu25qC35byPCiAgICBwU3R5bGU6IGZ1bmN0aW9uIHBTdHlsZSgpIHsKICAgICAgcmV0dXJuICJ3aWR0aDogIi5jb25jYXQodGhpcy5wcmV2aWV3V2lkdGggKyAyMCwgInB4O3RleHQtYWxpZ246IHJpZ2h0O2ZvbnQtc2l6ZTowOyIpOwogICAgfSwKICAgIHBJdGVtU3R5bGUxOiBmdW5jdGlvbiBwSXRlbVN0eWxlMSgpIHsKICAgICAgdmFyIGggPSB0aGlzLnByZXZpZXdXaWR0aCAvICh0aGlzLmFzcGVjdFJhdGlvIHx8IDEpOwogICAgICByZXR1cm4gIndpZHRoOiAiLmNvbmNhdCh0aGlzLnByZXZpZXdXaWR0aCwgInB4O2hlaWdodDogIikuY29uY2F0KGgsICJweDsiKTsKICAgIH0sCiAgICBwSXRlbVN0eWxlMjogZnVuY3Rpb24gcEl0ZW1TdHlsZTIoKSB7CiAgICAgIHJldHVybiB0aGlzLnBJdGVtU3R5bGUxICsgJ2JvcmRlci1yYWRpdXM6IDUwJTttYXJnaW4tdG9wOiAxMHB4Oyc7CiAgICB9LAogICAgcEl0ZW1TdHlsZTM6IGZ1bmN0aW9uIHBJdGVtU3R5bGUzKCkgewogICAgICB2YXIgdyA9IHRoaXMucHJldmlld1dpZHRoIC8gMyAqIDIgLSAxNTsKICAgICAgdmFyIGggPSB3IC8gKHRoaXMuYXNwZWN0UmF0aW8gfHwgMSk7CiAgICAgIHJldHVybiAid2lkdGg6ICIuY29uY2F0KHRoaXMucHJldmlld1dpZHRoLCAicHg7aGVpZ2h0OiAiKS5jb25jYXQoaCwgInB4O21hcmdpbi10b3A6IDEwcHg7Iik7CiAgICB9LAogICAgcEl0ZW1TdHlsZTQ6IGZ1bmN0aW9uIHBJdGVtU3R5bGU0KCkgewogICAgICB2YXIgdyA9IHRoaXMucHJldmlld1dpZHRoIC8gMyAtIDE7CiAgICAgIHZhciBoID0gdyAvICh0aGlzLmFzcGVjdFJhdGlvIHx8IDEpOwogICAgICByZXR1cm4gIndpZHRoOiAiLmNvbmNhdCh0aGlzLnByZXZpZXdXaWR0aCwgInB4O2hlaWdodDogIikuY29uY2F0KGgsICJweDttYXJnaW46IDEwcHggMCAwIDEwcHg7Iik7CiAgICB9LAogICAgLy8g6Kej5p6Q5oyJ6ZKu5biD5bGACiAgICB0b29sR3JvdXA6IGZ1bmN0aW9uIHRvb2xHcm91cCgpIHsKICAgICAgaWYgKHR5cGVvZiB0aGlzLnRvb2xzID09PSAnc3RyaW5nJykgewogICAgICAgIHZhciB0b29sID0gW107CiAgICAgICAgdmFyIGdyb3VwID0gdGhpcy50b29scy5zcGxpdCgnfCcpOwogICAgICAgIGdyb3VwLmZvckVhY2goZnVuY3Rpb24gKGcpIHsKICAgICAgICAgIHRvb2wucHVzaChnLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChiKSB7CiAgICAgICAgICAgIHJldHVybiBiLnRyaW0oKTsKICAgICAgICAgIH0pKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gdG9vbDsKICAgICAgfSBlbHNlIGlmICh0aGlzLnRvb2xzKSB7CiAgICAgICAgcmV0dXJuIFtbJ3pvb21JbicsICd6b29tT3V0J10sIFsnbW92ZUwnLCAnbW92ZVInLCAnbW92ZVQnLCAnbW92ZUInXSwgWydyb3RhdGVMJywgJ3JvdGF0ZVInXSwgWydzY2FsZVgnLCAnc2NhbGVZJ10sIFsncmVzZXQnLCAndXBsb2FkJ10sIFsnY3JvcCddXTsKICAgICAgfQoKICAgICAgcmV0dXJuIFtdOwogICAgfQogIH0sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHZhciBfdGhpcyA9IHRoaXM7CgogICAgLy8gaWXlhbzlrrkKICAgIGlmICh0aGlzLnNyYy5pbmRleE9mKCdkYXRhOmltYWdlJykgIT09IDAgJiYgKCEhd2luZG93LkFjdGl2ZVhPYmplY3QgfHwgJ0FjdGl2ZVhPYmplY3QnIGluIHdpbmRvdykpIHsKICAgICAgdmFyIHJlcSA9IG5ldyB3aW5kb3cuWE1MSHR0cFJlcXVlc3QoKTsKICAgICAgcmVxLm9wZW4oJ0dFVCcsIHRoaXMuc3JjLCB0cnVlKTsKICAgICAgcmVxLnJlc3BvbnNlVHlwZSA9ICdhcnJheWJ1ZmZlcic7CgogICAgICByZXEub25sb2FkID0gZnVuY3Rpb24gKCkgewogICAgICAgIGlmIChbMjAwLCAyMDFdLmluZGV4T2YocmVxLnN0YXR1cykgPT09IC0xKSByZXR1cm4gY29uc29sZS5lcnJvcignY3JvcHBlcicsIHJlcSk7CiAgICAgICAgdmFyIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkocmVxLnJlc3BvbnNlKSwKICAgICAgICAgICAgYmluYXJ5ID0gJyc7CgogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnl0ZXMuYnl0ZUxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBiaW5hcnkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlc1tpXSk7CiAgICAgICAgfQoKICAgICAgICBfdGhpcy5pbWdTcmMgPSAnZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwnICsgd2luZG93LmJ0b2EoYmluYXJ5KTsKCiAgICAgICAgX3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIF90aGlzLnJlbmRlcigpOwogICAgICAgIH0pOwogICAgICB9OwoKICAgICAgcmVxLnNlbmQoKTsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuaW1nU3JjID0gdGhpcy5zcmM7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpcy5yZW5kZXIoKTsKICAgICAgfSk7CiAgICB9CiAgfSwKICBtZXRob2RzOiB7CiAgICAvKiDmuLLmn5MgKi8KICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkgewogICAgICBpZiAodGhpcy5pbnMpIHRoaXMuaW5zLmRlc3Ryb3koKTsKICAgICAgaWYgKHRoaXMuc2hvd1ByZXZpZXcpIHRoaXMub3B0aW9ucy5wcmV2aWV3ID0gdGhpcy4kcmVmcy5lbGVDcm9wcGVyUHJldmlld3MuY2hpbGRyZW47CiAgICAgIHRoaXMub3B0aW9ucy5kcmFnTW9kZSA9IHRoaXMuZHJhZ01vZGU7CiAgICAgIHRoaXMub3B0aW9ucy5pbml0aWFsQXNwZWN0UmF0aW8gPSB0aGlzLmluaXRpYWxBc3BlY3RSYXRpbzsKICAgICAgdGhpcy5vcHRpb25zLm1pbkNvbnRhaW5lcldpZHRoID0gdGhpcy5taW5Db250YWluZXJXaWR0aDsKICAgICAgdGhpcy5vcHRpb25zLm1pbkNvbnRhaW5lckhlaWdodCA9IHRoaXMubWluQ29udGFpbmVySGVpZ2h0OwogICAgICB0aGlzLm9wdGlvbnMubWluQ2FudmFzV2lkdGggPSB0aGlzLm1pbkNhbnZhc1dpZHRoOwogICAgICB0aGlzLm9wdGlvbnMubWluQ2FudmFzSGVpZ2h0ID0gdGhpcy5taW5DYW52YXNIZWlnaHQ7CiAgICAgIHRoaXMub3B0aW9ucy5taW5Dcm9wQm94V2lkdGggPSB0aGlzLm1pbkNyb3BCb3hXaWR0aDsKICAgICAgdGhpcy5vcHRpb25zLm1pbkNyb3BCb3hIZWlnaHQgPSB0aGlzLm1pbkNyb3BCb3hIZWlnaHQ7CiAgICAgIHRoaXMuaW5zID0gbmV3IENyb3BwZXIodGhpcy4kcmVmcy5lbGVDcm9wcGVySW1nLCB0aGlzLm9wdGlvbnMpOwogICAgfSwKCiAgICAvKiDmk43kvZzmjInpkq7ngrnlh7vkuovku7YgKi8KICAgIGFjdGlvbjogZnVuY3Rpb24gYWN0aW9uKGUpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CgogICAgICB2YXIgbWV0aG9kID0gdGhpcy5nZXREYXRhc2V0KGUuY3VycmVudFRhcmdldCwgJ21ldGhvZCcpLAogICAgICAgICAgb3B0aW9uID0gdGhpcy5nZXREYXRhc2V0KGUuY3VycmVudFRhcmdldCwgJ29wdGlvbicpLAogICAgICAgICAgc2Vjb25kT3B0aW9uID0gdGhpcy5nZXREYXRhc2V0KGUuY3VycmVudFRhcmdldCwgJ29wdGlvbjInKTsKICAgICAgaWYgKCF0aGlzLmlucyB8fCAhbWV0aG9kKSByZXR1cm47CiAgICAgIHZhciBjcm9wcGVkID0gdGhpcy5pbnMuY3JvcHBlZCwKICAgICAgICAgIHJlc3VsdDsKCiAgICAgIHN3aXRjaCAobWV0aG9kKSB7CiAgICAgICAgY2FzZSAncm90YXRlJzoKICAgICAgICAgIGlmIChjcm9wcGVkICYmIHRoaXMub3B0aW9ucy52aWV3TW9kZSA+IDApIHRoaXMuaW4uY2xlYXIoKTsKICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdnZXRDcm9wcGVkQ2FudmFzJzoKICAgICAgICAgIG9wdGlvbiA9IEpTT04ucGFyc2Uob3B0aW9uKTsKCiAgICAgICAgICBpZiAodGhpcy5pbWdUeXBlID09PSAnaW1hZ2UvanBlZycpIHsKICAgICAgICAgICAgaWYgKCFvcHRpb24pIG9wdGlvbiA9IHt9OwogICAgICAgICAgICBvcHRpb24uZmlsbENvbG9yID0gJyNmZmYnOwogICAgICAgICAgfQoKICAgICAgICAgIG9wdGlvbi53aWR0aCA9IHRoaXMuY3JvcHBlZFdpZHRoOwogICAgICAgICAgb3B0aW9uLmhlaWdodCA9IHRoaXMuY3JvcHBlZEhlaWdodDsKICAgICAgICAgIG9wdGlvbi5taW5XaWR0aCA9IHRoaXMuY3JvcHBlZE1pbldpZHRoOwogICAgICAgICAgb3B0aW9uLm1pbkhlaWdodCA9IHRoaXMuY3JvcHBlZE1pbkhlaWdodDsKICAgICAgICAgIG9wdGlvbi5tYXhXaWR0aCA9IHRoaXMuY3JvcHBlZE1heFdpZHRoOwogICAgICAgICAgb3B0aW9uLm1heEhlaWdodCA9IHRoaXMuY3JvcHBlZE1heEhlaWdodDsKICAgICAgICAgIG9wdGlvbi5maWxsQ29sb3IgPSB0aGlzLmNyb3BwZWRGaWxsQ29sb3I7CiAgICAgICAgICBvcHRpb24uaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gdGhpcy5jcm9wcGVkSW1hZ2VTbW9vdGhpbmdFbmFibGVkOwogICAgICAgICAgb3B0aW9uLmltYWdlU21vb3RoaW5nUXVhbGl0eSA9IHRoaXMuY3JvcHBlZEltYWdlU21vb3RoaW5nUXVhbGl0eTsKICAgICAgICAgIGJyZWFrOwogICAgICB9CgogICAgICByZXN1bHQgPSB0aGlzLmluc1ttZXRob2RdKG9wdGlvbiwgc2Vjb25kT3B0aW9uKTsKCiAgICAgIHN3aXRjaCAobWV0aG9kKSB7CiAgICAgICAgY2FzZSAncm90YXRlJzoKICAgICAgICAgIGlmIChjcm9wcGVkICYmIHRoaXMub3B0aW9ucy52aWV3TW9kZSA+IDApIHRoaXMuaW5zLmNyb3AoKTsKICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdzY2FsZVgnOgogICAgICAgIGNhc2UgJ3NjYWxlWSc6CiAgICAgICAgICB0aGlzLnNldERhdGFzZXQoZS5jdXJyZW50VGFyZ2V0LCAnb3B0aW9uJywgLW9wdGlvbik7CiAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnZ2V0Q3JvcHBlZENhbnZhcyc6CiAgICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQudG9EYXRhVVJMKCkpOwoKICAgICAgICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgICAgaWYgKHRoaXMudG9CbG9iKSB7CiAgICAgICAgICAgICAgcmVzdWx0LnRvQmxvYihmdW5jdGlvbiAoYmxvYikgewogICAgICAgICAgICAgICAgX3RoaXMyLiRlbWl0KCdjcm9wJywgYmxvYik7CiAgICAgICAgICAgICAgfSwgdGhpcy5pbWdUeXBlKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0aGlzLiRlbWl0KCdjcm9wJywgcmVzdWx0LnRvRGF0YVVSTCh0aGlzLmltZ1R5cGUpKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcign6KOB5Ymq5aSx6LSlJyk7CiAgICAgICAgICB9CgogICAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0sCgogICAgLyog5Zu+54mH5LiK5Lyg5aSE55CGICovCiAgICBvblVwbG9hZDogZnVuY3Rpb24gb25VcGxvYWQoZmlsZSkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKCiAgICAgIHRoaXMuaW1nVHlwZSA9IGZpbGUudHlwZTsKICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CgogICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICBfdGhpczMuaW5zLnJlcGxhY2UoZS50YXJnZXQucmVzdWx0KTsKICAgICAgfTsKCiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOwogICAgICByZXR1cm4gZmFsc2U7CiAgICB9LAoKICAgIC8qIOiOt+WPlmRhdGFzZXTlsZ7mgKcgKi8KICAgIGdldERhdGFzZXQ6IGZ1bmN0aW9uIGdldERhdGFzZXQoZWxlbSwga2V5KSB7CiAgICAgIGlmIChlbGVtLmRhdGFzZXQpIHJldHVybiBlbGVtLmRhdGFzZXRba2V5XTtlbHNlIHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSgnZGF0YS0nICsga2V5KTsKICAgIH0sCgogICAgLyog6K6+572uZGF0YXNldOWxnuaApyAqLwogICAgc2V0RGF0YXNldDogZnVuY3Rpb24gc2V0RGF0YXNldChlbGVtLCBrZXksIHZhbHVlKSB7CiAgICAgIGlmIChlbGVtLmRhdGFzZXQpIGVsZW0uZGF0YXNldFtrZXldID0gdmFsdWU7ZWxzZSBlbGVtLnNldEF0dHJpYnV0ZSgnZGF0YS0nICsga2V5LCB2YWx1ZSk7CiAgICB9CiAgfQp9Ow=="},{"version":3,"sources":["EleCropper.vue"],"names":[],"mappings":"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","sourcesContent":["<!-- 图片裁剪组件 -->\r\n<template>\r\n <div class=\"ele-cropper\">\r\n <div class=\"ele-cropper-group\">\r\n <div class=\"ele-cropper-img-group\">\r\n <img ref=\"eleCropperImg\" :src=\"imgSrc\" style=\"max-width:100%;\" alt=\"\"/>\r\n </div>\r\n <div v-if=\"showPreview\" ref=\"eleCropperPreviews\" :style=\"pStyle\" class=\"ele-cropper-preview-group\">\r\n <div :style=\"pItemStyle1\" class=\"ele-cropper-preview\"></div>\r\n <div v-if=\"this.aspectRatio===1\" :style=\"pItemStyle2\" class=\"ele-cropper-preview\"></div>\r\n <div v-if=\"this.aspectRatio!==1\" :style=\"pItemStyle3\" class=\"ele-cropper-preview\"></div>\r\n <div v-if=\"this.aspectRatio!==1\" :style=\"pItemStyle4\" class=\"ele-cropper-preview\"></div>\r\n </div>\r\n </div>\r\n <div v-if=\"tools\" class=\"ele-cropper-tool\">\r\n <el-button-group v-for=\"(item,index) in toolGroup\" :key=\"index\" class=\"ele-cropper-tool-item\">\r\n <template v-for=\"(btn,i) in item\">\r\n <el-button v-if=\"btn==='zoomIn'\" :key=\"i\" @click=\"action\" data-method=\"zoom\"\r\n data-option=\"0.1\" title=\"放大\" icon=\"el-icon-zoom-in\" type=\"primary\"/>\r\n <el-button v-else-if=\"btn==='zoomOut'\" :key=\"i\" @click=\"action\" data-method=\"zoom\"\r\n data-option=\"-0.1\" title=\"缩小\" icon=\"el-icon-zoom-out\" type=\"primary\"/>\r\n <el-button v-else-if=\"btn==='rotateL'\" :key=\"i\" @click=\"action\" data-method=\"rotate\"\r\n data-option=\"-45\" title=\"向左旋转\" icon=\"el-icon-refresh-left\" type=\"primary\"/>\r\n <el-button v-else-if=\"btn==='rotateR'\" :key=\"i\" @click=\"action\" data-method=\"rotate\"\r\n data-option=\"45\" title=\"向右旋转\" icon=\"el-icon-refresh-right\" type=\"primary\"/>\r\n <el-button v-else-if=\"btn==='moveL'\" :key=\"i\" @click=\"action\" data-method=\"move\" data-option=\"-10\"\r\n data-option2=\"0\" title=\"左移\" icon=\"el-icon-back\" type=\"primary\"/>\r\n <el-button v-else-if=\"btn==='moveR'\" :key=\"i\" @click=\"action\" data-method=\"move\" data-option=\"10\"\r\n data-option2=\"0\" title=\"右移\" icon=\"el-icon-right\" type=\"primary\"/>\r\n <el-button v-else-if=\"btn==='moveT'\" :key=\"i\" @click=\"action\" data-method=\"move\" data-option=\"0\"\r\n data-option2=\"-10\" title=\"上移\" icon=\"el-icon-top\" type=\"primary\"/>\r\n <el-button v-else-if=\"btn==='moveB'\" :key=\"i\" @click=\"action\" data-method=\"move\" data-option=\"0\"\r\n data-option2=\"10\" title=\"下移\" icon=\"el-icon-bottom\" type=\"primary\"/>\r\n <el-button v-else-if=\"btn==='scaleX'\" :key=\"i\" @click=\"action\" data-method=\"scaleX\"\r\n data-option=\"-1\" title=\"左右翻转\" icon=\"el-icon-sort\" type=\"primary\"/>\r\n <el-button v-else-if=\"btn==='scaleY'\" :key=\"i\" @click=\"action\" data-method=\"scaleY\"\r\n data-option=\"-1\" title=\"上下翻转\" icon=\"el-icon-sort\" type=\"primary\"/>\r\n <el-button v-else-if=\"btn==='reset'\" :key=\"i\" @click=\"action\" data-method=\"reset\"\r\n title=\"重新开始\" icon=\"el-icon-refresh\" type=\"primary\"/>\r\n <el-upload v-else-if=\"btn==='upload'\" :key=\"i\" action=\"\" :before-upload=\"onUpload\"\r\n :show-file-list=\"false\" :accept=\"accept\">\r\n <el-button title=\"选择图片\" icon=\"el-icon-upload2\" type=\"primary\"/>\r\n </el-upload>\r\n <el-button v-else-if=\"btn==='crop'\" :key=\"i\" @click=\"action\" data-method=\"getCroppedCanvas\"\r\n data-option=\"{ &quot;maxWidth&quot;: 4096, &quot;maxHeight&quot;: 4096 }\"\r\n icon=\"el-icon-check\" type=\"primary\">完成\r\n </el-button>\r\n </template>\r\n </el-button-group>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport 'cropperjs/dist/cropper.css';\r\nimport Cropper from 'cropperjs';\r\n\r\nexport default {\r\n name: \"EleCropper\",\r\n props: {\r\n src: String, // 图片地址\r\n aspectRatio: { // 裁剪比例\r\n type: Number,\r\n default: 1\r\n },\r\n viewMode: Number, // 裁剪组件模式\r\n dragMode: String,\r\n initialAspectRatio: Number,\r\n minContainerWidth: Number,\r\n minContainerHeight: Number,\r\n minCanvasWidth: Number,\r\n minCanvasHeight: Number,\r\n minCropBoxWidth: Number,\r\n minCropBoxHeight: Number,\r\n croppedWidth: Number,\r\n croppedHeight: Number,\r\n croppedMinWidth: Number,\r\n croppedMinHeight: Number,\r\n croppedMaxWidth: Number,\r\n croppedMaxHeight: Number,\r\n croppedFillColor: Number,\r\n croppedImageSmoothingEnabled: Boolean,\r\n croppedImageSmoothingQuality: String,\r\n toBlob: Boolean, // 是否返回blob数据\r\n accept: { // 允许上传的图片类型\r\n type: String,\r\n default: 'image/*'\r\n },\r\n tools: { // 操作按钮布局\r\n type: [Boolean, String],\r\n default: true\r\n },\r\n showPreview: { // 是否显示预览组件\r\n type: Boolean,\r\n default: true\r\n }\r\n },\r\n data() {\r\n return {\r\n imgSrc: '', // 图片base64数据\r\n ins: null, // cropper实例\r\n options: { // cropper配置\r\n aspectRatio: this.aspectRatio,\r\n viewMode: this.viewMode\r\n },\r\n imgType: 'image/jpeg', // 当前图片类型\r\n previewWidth: 120 // 预览组件宽度\r\n }\r\n },\r\n computed: {\r\n // 预览组件样式\r\n pStyle() {\r\n return `width: ${this.previewWidth + 20}px;text-align: right;font-size:0;`;\r\n },\r\n pItemStyle1() {\r\n let h = this.previewWidth / (this.aspectRatio || 1);\r\n return `width: ${this.previewWidth}px;height: ${h}px;`;\r\n },\r\n pItemStyle2() {\r\n return this.pItemStyle1 + 'border-radius: 50%;margin-top: 10px;';\r\n },\r\n pItemStyle3() {\r\n let w = this.previewWidth / 3 * 2 - 15;\r\n let h = w / (this.aspectRatio || 1);\r\n return `width: ${this.previewWidth}px;height: ${h}px;margin-top: 10px;`;\r\n },\r\n pItemStyle4() {\r\n let w = this.previewWidth / 3 - 1;\r\n let h = w / (this.aspectRatio || 1);\r\n return `width: ${this.previewWidth}px;height: ${h}px;margin: 10px 0 0 10px;`;\r\n },\r\n // 解析按钮布局\r\n toolGroup() {\r\n if (typeof this.tools === 'string') {\r\n let tool = [];\r\n let group = this.tools.split('|');\r\n group.forEach(g => {\r\n tool.push(g.split(',').map(b => b.trim()));\r\n });\r\n return tool;\r\n } else if (this.tools) {\r\n return [\r\n ['zoomIn', 'zoomOut'], ['moveL', 'moveR', 'moveT', 'moveB'], ['rotateL', 'rotateR'],\r\n ['scaleX', 'scaleY'], ['reset', 'upload'], ['crop']\r\n ];\r\n }\r\n return [];\r\n }\r\n },\r\n mounted() {\r\n // ie兼容\r\n if (this.src.indexOf('data:image') !== 0 && (!!window.ActiveXObject || 'ActiveXObject' in window)) {\r\n let req = new window.XMLHttpRequest();\r\n req.open('GET', this.src, true);\r\n req.responseType = 'arraybuffer';\r\n req.onload = () => {\r\n if ([200, 201].indexOf(req.status) === -1) return console.error('cropper', req);\r\n let bytes = new Uint8Array(req.response), binary = '';\r\n for (let i = 0; i < bytes.byteLength; i++) binary += String.fromCharCode(bytes[i]);\r\n this.imgSrc = 'data:image/jpeg;base64,' + window.btoa(binary);\r\n this.$nextTick(() => {\r\n this.render();\r\n });\r\n };\r\n req.send();\r\n } else {\r\n this.imgSrc = this.src;\r\n this.$nextTick(() => {\r\n this.render();\r\n });\r\n }\r\n },\r\n methods: {\r\n /* 渲染 */\r\n render() {\r\n if (this.ins) this.ins.destroy();\r\n if (this.showPreview) this.options.preview = this.$refs.eleCropperPreviews.children;\r\n this.options.dragMode = this.dragMode;\r\n this.options.initialAspectRatio = this.initialAspectRatio;\r\n this.options.minContainerWidth = this.minContainerWidth;\r\n this.options.minContainerHeight = this.minContainerHeight;\r\n this.options.minCanvasWidth = this.minCanvasWidth;\r\n this.options.minCanvasHeight = this.minCanvasHeight;\r\n this.options.minCropBoxWidth = this.minCropBoxWidth;\r\n this.options.minCropBoxHeight = this.minCropBoxHeight;\r\n this.ins = new Cropper(this.$refs.eleCropperImg, this.options);\r\n },\r\n /* 操作按钮点击事件 */\r\n action(e) {\r\n let method = this.getDataset(e.currentTarget, 'method'),\r\n option = this.getDataset(e.currentTarget, 'option'),\r\n secondOption = this.getDataset(e.currentTarget, 'option2');\r\n if (!this.ins || !method) return;\r\n let cropped = this.ins.cropped, result;\r\n switch (method) {\r\n case 'rotate':\r\n if (cropped && this.options.viewMode > 0) this.in.clear();\r\n break;\r\n case 'getCroppedCanvas':\r\n option = JSON.parse(option);\r\n if (this.imgType === 'image/jpeg') {\r\n if (!option) option = {};\r\n option.fillColor = '#fff';\r\n }\r\n option.width = this.croppedWidth;\r\n option.height = this.croppedHeight;\r\n option.minWidth = this.croppedMinWidth;\r\n option.minHeight = this.croppedMinHeight;\r\n option.maxWidth = this.croppedMaxWidth;\r\n option.maxHeight = this.croppedMaxHeight;\r\n option.fillColor = this.croppedFillColor;\r\n option.imageSmoothingEnabled = this.croppedImageSmoothingEnabled;\r\n option.imageSmoothingQuality = this.croppedImageSmoothingQuality;\r\n break;\r\n }\r\n result = this.ins[method](option, secondOption);\r\n switch (method) {\r\n case 'rotate':\r\n if (cropped && this.options.viewMode > 0) this.ins.crop();\r\n break;\r\n case 'scaleX':\r\n case 'scaleY':\r\n this.setDataset(e.currentTarget, 'option', -option);\r\n break;\r\n case 'getCroppedCanvas':\r\n console.log(result.toDataURL())\r\n if (result) {\r\n if (this.toBlob) {\r\n result.toBlob((blob) => {\r\n this.$emit('crop', blob);\r\n }, this.imgType);\r\n } else {\r\n this.$emit('crop', result.toDataURL(this.imgType));\r\n }\r\n } else {\r\n this.$message.error('裁剪失败');\r\n }\r\n break;\r\n }\r\n },\r\n /* 图片上传处理 */\r\n onUpload(file) {\r\n this.imgType = file.type;\r\n let reader = new FileReader();\r\n reader.onload = (e) => {\r\n this.ins.replace(e.target.result);\r\n };\r\n reader.readAsDataURL(file);\r\n return false;\r\n },\r\n /* 获取dataset属性 */\r\n getDataset(elem, key) {\r\n if (elem.dataset) return elem.dataset[key];\r\n else return elem.getAttribute('data-' + key);\r\n },\r\n /* 设置dataset属性 */\r\n setDataset(elem, key, value) {\r\n if (elem.dataset) elem.dataset[key] = value;\r\n else elem.setAttribute('data-' + key, value);\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.ele-cropper .ele-cropper-group {\r\n display: flex;\r\n}\r\n\r\n.ele-cropper .ele-cropper-img-group {\r\n flex: 1;\r\n}\r\n\r\n.ele-cropper .ele-cropper-preview {\r\n display: inline-block;\r\n border: 1px solid hsla(0, 0%, 80%, .6);\r\n vertical-align: top;\r\n overflow: hidden;\r\n}\r\n\r\n/* 操作按钮 */\r\n.ele-cropper .ele-cropper-tool {\r\n margin-top: 10px;\r\n}\r\n\r\n.ele-cropper .ele-cropper-tool-item {\r\n margin-top: 10px;\r\n vertical-align: top;\r\n}\r\n\r\n.ele-cropper .ele-cropper-tool-item {\r\n margin-right: 18px;\r\n}\r\n\r\n.ele-cropper .ele-cropper-tool-item:last-child {\r\n margin-right: 0 !important;\r\n}\r\n\r\n.ele-cropper .ele-cropper-tool .el-button {\r\n padding-left: 12px;\r\n padding-right: 12px;\r\n}\r\n\r\n.ele-cropper [data-method=\"scaleX\"] .el-icon-sort {\r\n transform: rotate(90deg);\r\n}\r\n\r\n.ele-cropper .ele-cropper-tool-item > div {\r\n display: inline-block;\r\n}\r\n\r\n.ele-cropper .ele-cropper-tool-item .el-upload .el-button {\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n}\r\n\r\n/* 小屏幕适应 */\r\n@media screen and (max-width: 768px) {\r\n .ele-cropper .ele-cropper-preview-group {\r\n display: none;\r\n }\r\n\r\n .ele-cropper .ele-cropper-tool-item {\r\n margin-right: 6px;\r\n }\r\n\r\n .ele-cropper .ele-cropper-tool .el-button {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n }\r\n}\r\n</style>"],"sourceRoot":"src/components/EleCropperDialog"}]}