| 1 |
- {"remainingRequest":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\babel-loader\\lib\\index.js!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\components\\hotpotModal\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\components\\hotpotModal\\index.vue","mtime":1761185179970},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\babel.config.js","mtime":1761185179818},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\.babelrc","mtime":1761185179813},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiQzovVXNlcnMvQWRtaW5pc3RyYXRvci9EZXNrdG9wL2NybWViNS4wL3RlbXBsYXRlL2FkbWluL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJDOi9Vc2Vycy9BZG1pbmlzdHJhdG9yL0Rlc2t0b3AvY3JtZWI1LjAvdGVtcGxhdGUvYWRtaW4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmlsdGVyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNwbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuZmlsdGVyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5zb21lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5saW5rLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7CmltcG9ydCBBcmVhQm94IGZyb20gJy4vQXJlYUJveCc7CmltcG9ydCBsaW5rYWRkcmVzcyBmcm9tICdAL2NvbXBvbmVudHMvbGlua2FkZHJlc3MnOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ09wZXJhdGlvbkZsb29yJywKICBjb21wb25lbnRzOiB7CiAgICBBcmVhQm94OiBBcmVhQm94LAogICAgbGlua2FkZHJlc3M6IGxpbmthZGRyZXNzCiAgfSwKICBwcm9wczogewogICAgLyoqDQogICAgICogQGRlc2NyaXB0aW9uIOWbvueJh+aVsOaNruWvueixoQ0KICAgICAqIEB0eXBlIHtJbWdEYXRhfQ0KICAgICAqLwogICAgaW1nczogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIC8vIOWbvueJh+exu+WeiwogICAgICBkZWZhdWx0OiBmdW5jdGlvbiBfZGVmYXVsdCgpIHsKICAgICAgICByZXR1cm4gJyc7CiAgICAgIH0gLy8g6buY6K6k5YC85Li656m65a2X56ym5LiyCiAgICB9LAogICAgLyoqDQogICAgICogQGRlc2NyaXB0aW9uIOaYr+WQpuS4uueDremXqOaxpOWTgQ0KICAgICAqIEB0eXBlIHtib29sZWFufQ0KICAgICAqLwogICAgaXNIb3RQb3Q6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgLy8g5biD5bCU57G75Z6LCiAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uIF9kZWZhdWx0KCkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfSAvLyDpu5jorqTlgLzkuLpmYWxzZQogICAgfSwKICAgIC8qKg0KICAgICAqIEBkZXNjcmlwdGlvbiDlm77niYfljLrln5/mlbDmja7lr7nosaENCiAgICAgKiBAdHlwZSB7QXJlYURhdGFbXX0NCiAgICAgKi8KICAgIGltZ0FyZWFEYXRhOiB7CiAgICAgIHR5cGU6IEFycmF5LAogICAgICAvLyDmlbDnu4TnsbvlnosKICAgICAgZGVmYXVsdDogZnVuY3Rpb24gX2RlZmF1bHQoKSB7CiAgICAgICAgcmV0dXJuIFtdOwogICAgICB9IC8vIOm7mOiupOWAvOS4uuepuuaVsOe7hAogICAgfSwKICAgIC8qKg0KICAgICAqIEBkZXNjcmlwdGlvbiDpk77mjqXovpPlhaXmoYbmoLflvI/lr7nosaENCiAgICAgKiBAdHlwZSB7TGlua0lucHV0U3R5bGV9DQogICAgICovCiAgICBsaW5rSW5wdXRTdHlsZTogewogICAgICB0eXBlOiBPYmplY3QsCiAgICAgIC8vIOWvueixoeexu+WeiwogICAgICBkZWZhdWx0OiBmdW5jdGlvbiBfZGVmYXVsdCgpIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgLy8g6buY6K6k5YC85Li65LiA5Liq5YyF5ZCrd2lkdGjlsZ7mgKfnmoTlr7nosaEKICAgICAgICAgIHdpZHRoOiAnMzAwcHgnCiAgICAgICAgfTsKICAgICAgfQogICAgfQogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIC8qKg0KICAgICAgICogQGRlc2NyaXB0aW9uIOWvueivneahhuaYr+WQpuWPr+ingQ0KICAgICAgICogQHR5cGUge2Jvb2xlYW59DQogICAgICAgKi8KICAgICAgZGlhbG9nVmlzaWJsZTogZmFsc2UsCiAgICAgIC8qKg0KICAgICAgICogQGRlc2NyaXB0aW9uIOW8gOWni+eahHjlnZDmoIcNCiAgICAgICAqIEB0eXBlIHtudW1iZXJ9DQogICAgICAgKi8KICAgICAgc3Rhclg6IDAsCiAgICAgIC8qKg0KICAgICAgICogQGRlc2NyaXB0aW9uIOW8gOWni+eahHnlnZDmoIcNCiAgICAgICAqIEB0eXBlIHtudW1iZXJ9DQogICAgICAgKi8KICAgICAgc3Rhclk6IDAsCiAgICAgIC8qKg0KICAgICAgICogQGRlc2NyaXB0aW9uIOWMuuWfn+WuveW6pg0KICAgICAgICogQHR5cGUge251bWJlcn0NCiAgICAgICAqLwogICAgICBhcmVhV2lkdGg6IDAsCiAgICAgIC8qKg0KICAgICAgICogQGRlc2NyaXB0aW9uIOWMuuWfn+mrmOW6pg0KICAgICAgICogQHR5cGUge251bWJlcn0NCiAgICAgICAqLwogICAgICBhcmVhSGVpZ2h0OiAwLAogICAgICAvKioNCiAgICAgICAqIEBkZXNjcmlwdGlvbiDlvZPliY3mmL7npLrnmoTlm77niYfntKLlvJUNCiAgICAgICAqIEB0eXBlIHtib29sZWFufQ0KICAgICAgICovCiAgICAgIGNhc2VTaG93OiBmYWxzZSwKICAgICAgLyoqDQogICAgICAgKiBAZGVzY3JpcHRpb24g5b2T5YmN5Zu+54mH55qE5a695bqmDQogICAgICAgKiBAdHlwZSB7bnVsbH0NCiAgICAgICAqLwogICAgICBub3dJbWdXaWR0aDogbnVsbCwKICAgICAgLyoqDQogICAgICAgKiBAZGVzY3JpcHRpb24g5Yy65Z+f5pWw5o2uDQogICAgICAgKiBAdHlwZSB7QXJyYXl9DQogICAgICAgKi8KICAgICAgYXJlYURhdGE6IFtdLAogICAgICAvKioNCiAgICAgICAqIEBkZXNjcmlwdGlvbiDlvZPliY3mmL7npLrnmoTlm77niYfnvJblj7cNCiAgICAgICAqIEB0eXBlIHtudW1iZXJ9DQogICAgICAgKi8KICAgICAgaW1nTnVtOiAxLAogICAgICAvKioNCiAgICAgICAqIEBkZXNjcmlwdGlvbiDniLblhYPntKDlrr3luqYNCiAgICAgICAqIEB0eXBlIHtudW1iZXJ9DQogICAgICAgKi8KICAgICAgcGFyZW50V2lkdGg6IDAsCiAgICAgIC8qKg0KICAgICAgICogQGRlc2NyaXB0aW9uIOeItuWFg+e0oOmrmOW6pg0KICAgICAgICogQHR5cGUge251bWJlcn0NCiAgICAgICAqLwogICAgICBwYXJlbnRIZWlnaHQ6IDAsCiAgICAgIC8qKg0KICAgICAgICogQGRlc2NyaXB0aW9uIOm7mOiupOWuveW6pg0KICAgICAgICogQHR5cGUge251bWJlcn0NCiAgICAgICAqLwogICAgICBkZWZhdWx0V2lkdGg6IDc1MCwKICAgICAgLyoqDQogICAgICAgKiBAZGVzY3JpcHRpb24g5b2T5YmN5pi+56S655qE5Zu+54mH57Si5byVDQogICAgICAgKiBAdHlwZSB7bnVtYmVyfQ0KICAgICAgICovCiAgICAgIGl0ZW1JbmRleDogMAogICAgfTsKICB9LAogIGNvbXB1dGVkOiB7fSwKICB3YXRjaDogewogICAgaW1nQXJlYURhdGE6IGZ1bmN0aW9uIGltZ0FyZWFEYXRhKHZhbCkgewogICAgICB0aGlzLmFyZWFEYXRhID0gX3RvQ29uc3VtYWJsZUFycmF5KHZhbCk7CiAgICB9CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdGhpcy5hcmVhRGF0YSA9IF90b0NvbnN1bWFibGVBcnJheSh0aGlzLmltZ0FyZWFEYXRhKTsKICB9LAogIG1ldGhvZHM6IHsKICAgIG9wZW5Nb2RhbDogZnVuY3Rpb24gb3Blbk1vZGFsKCkgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIHBhcmVudERpdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNpbWctYm94LWNvbnRhaW5lcicpOwogICAgICAgIC8v6I635Y+W5YWD57Sg55qE5a696auYCiAgICAgICAgX3RoaXMucGFyZW50V2lkdGggPSBfdGhpcy5kZWZhdWx0V2lkdGg7CiAgICAgICAgLy8gdGhpcy5wYXJlbnRXaWR0aCA9IHBhcmVudERpdi5jbGllbnRXaWR0aDsKICAgICAgICBfdGhpcy5wYXJlbnRIZWlnaHQgPSBwYXJlbnREaXYuY2xpZW50SGVpZ2h0OwogICAgICAgIC8vIGNvbnNvbGUubG9nKCJ0aGlzLnBhcmVudFdpZHRoIiwgdGhpcy5wYXJlbnRXaWR0aCwgdGhpcy5wYXJlbnRIZWlnaHQpCiAgICAgIH0pOwogICAgfSwKICAgIGNsb3NlTW9kYWw6IGZ1bmN0aW9uIGNsb3NlTW9kYWwoKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICB0aGlzLiRjb25maXJtKCfmnKrkv53lrZjlhoXlrrnvvIzmmK/lkKblnKjnprvlvIDliY3mlL7lvIPkv53lrZjvvJ8nLCAn5o+Q56S65L+h5oGvJywgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJywKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXMyLmRpYWxvZ1Zpc2libGUgPSBmYWxzZTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzMi4kbWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAnaW5mbycsCiAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raIJwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDnu5jnlLvng63ljLrlvIDlp4sKICAgIG1vdXNlRG93bjogZnVuY3Rpb24gbW91c2VEb3duKGUpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgdGhpcy5jYXNlU2hvdyA9IHRydWU7CiAgICAgIC8vIOiusOW9lea7keWKqOeahOWIneWni+WAvAogICAgICB0aGlzLnN0YXJYID0gZS5sYXllclggLSA1OwogICAgICB0aGlzLnN0YXJZID0gZS5sYXllclkgLSA1OwogICAgICAvLyDpvKDmoIfmu5HliqjnmoTov4fnqIsKICAgICAgaWYgKCFkb2N1bWVudC5vbm1vdXNlbW92ZSkgewogICAgICAgIHZhciBtYXhXaWR0aCA9IHRoaXMuZGVmYXVsdFdpZHRoIC0gZS5sYXllclg7CiAgICAgICAgZG9jdW1lbnQub25tb3VzZW1vdmUgPSBmdW5jdGlvbiAoZXYpIHsKICAgICAgICAgIGlmIChldi5sYXllclggLSBfdGhpczMuc3RhclggPCBtYXhXaWR0aCkgewogICAgICAgICAgICBfdGhpczMuYXJlYVdpZHRoID0gZXYubGF5ZXJYIC0gX3RoaXMzLnN0YXJYIC0gNTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIF90aGlzMy5hcmVhV2lkdGggPSBtYXhXaWR0aDsKICAgICAgICAgIH0KICAgICAgICAgIF90aGlzMy5hcmVhSGVpZ2h0ID0gZXYubGF5ZXJZIC0gX3RoaXMzLnN0YXJZIC0gNTsKICAgICAgICB9OwogICAgICB9CiAgICB9LAogICAgLy8g57uY55S754Ot5Yy657uT5p2fCiAgICBjaGFuZ2VTdG9wOiBmdW5jdGlvbiBjaGFuZ2VTdG9wKCkgewogICAgICBkb2N1bWVudC5vbm1vdXNlbW92ZSA9IG51bGw7CiAgICAgIHRoaXMuaW1nTnVtID0gdGhpcy5hcmVhRGF0YS5sZW5ndGggKyAxOwogICAgICBpZiAodGhpcy5jYXNlU2hvdyAmJiB0aGlzLmFyZWFXaWR0aCA+IDEwICYmIHRoaXMuYXJlYUhlaWdodCA+IDEwKSB7CiAgICAgICAgdmFyIGRhdGEgPSB7CiAgICAgICAgICBudW1iZXI6IHRoaXMuaW1nTnVtLAogICAgICAgICAgc3Rhclg6IHRoaXMuc3RhclgsCiAgICAgICAgICBzdGFyWTogdGhpcy5zdGFyWSwKICAgICAgICAgIGFyZWFXaWR0aDogdGhpcy5hcmVhV2lkdGgsCiAgICAgICAgICBhcmVhSGVpZ2h0OiB0aGlzLmFyZWFIZWlnaHQsCiAgICAgICAgICBub3dJbWdXaWR0aDogdGhpcy5kZWZhdWx0V2lkdGgsCiAgICAgICAgICBsaW5rOiAnJwogICAgICAgIH07CiAgICAgICAgdGhpcy5hcmVhRGF0YS5wdXNoKGRhdGEpOwogICAgICB9CiAgICAgIC8vIOWIneWni+WMlue7mOWbvgogICAgICB0aGlzLmNhc2VTaG93ID0gZmFsc2U7CiAgICAgIHRoaXMuc3RhclggPSAwOwogICAgICB0aGlzLnN0YXJZID0gMDsKICAgICAgdGhpcy5hcmVhV2lkdGggPSAwOwogICAgICB0aGlzLmFyZWFIZWlnaHQgPSAwOwogICAgfSwKICAgIC8vIOWIoOmZpOaMh+WumueDreWMugogICAgZGVsQXJlYUJveDogZnVuY3Rpb24gZGVsQXJlYUJveChpbmRleCkgewogICAgICAvKiDliKDpmaTmn5DkuKrng63ljLogKi8KICAgICAgdGhpcy5hcmVhRGF0YS5zcGxpY2UoaW5kZXgsIDEpOwogICAgICB0aGlzLiRlbWl0KCdkZWxBcmVhRGF0YScsIHRoaXMuYXJlYURhdGEpOwogICAgICAvKiDliKDpmaTlkI4g5q+P5Liq54Ot5Yy65oyJ6aG65bqP6YeN5paw57yW5Y+3ICovCiAgICAgIGlmICh0aGlzLmFyZWFEYXRhKSB7CiAgICAgICAgdmFyIGFyciA9IHRoaXMuYXJlYURhdGEuZmlsdGVyKGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICByZXR1cm4gaS5udW1iZXIgPiBpbmRleDsKICAgICAgICB9KTsKICAgICAgICBpZiAoIWFycikgcmV0dXJuOwogICAgICAgIGFyci5mb3JFYWNoKGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICByZXR1cm4gaS5udW1iZXItLTsKICAgICAgICB9KTsKICAgICAgICBpZiAodGhpcy5hcmVhRGF0YVt0aGlzLmFyZWFEYXRhLmxlbmd0aCAtIDFdKSB7CiAgICAgICAgICB0aGlzLmltZ051bSA9IHRoaXMuYXJlYURhdGFbdGhpcy5hcmVhRGF0YS5sZW5ndGggLSAxXS5udW1iZXIgKyAxOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLmltZ051bSA9IDE7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgLy8g5re75Yqg572R5Z2ACiAgICBhZGRVUkw6IGZ1bmN0aW9uIGFkZFVSTChpbmRleCwgdXJsKSB7CiAgICAgIHZhciBvYmogPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHRoaXMuYXJlYURhdGFbaW5kZXhdKSwge30sIHsKICAgICAgICBsaW5rOiB1cmwKICAgICAgfSk7CiAgICAgIHRoaXMuJHNldCh0aGlzLmFyZWFEYXRhLCBpbmRleCwgb2JqKTsKICAgIH0sCiAgICAvLyDkv53lrZjng63ljLrkv6Hmga8KICAgIHNhdmVBcmVhRGF0YTogZnVuY3Rpb24gc2F2ZUFyZWFEYXRhKCkgewogICAgICBpZiAodGhpcy5hcmVhRGF0YSAmJiAhdGhpcy5hcmVhRGF0YS5sZW5ndGggfHwgIXRoaXMuY2hlY2tEYXRhKHRoaXMuYXJlYURhdGEpKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcign54Ot5Yy65piv5ZCm6YWN572u6ZO+5o6l44CB5piv5ZCm6Iez5bCR5re75Yqg5LiA5Liq54Ot5Yy6PycpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB0aGlzLiRlbWl0KCdzYXZlQXJlYURhdGEnLCB0aGlzLmFyZWFEYXRhKTsKICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gZmFsc2U7CiAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygn57yW6L6R5oiQ5YqfIScpOwogICAgfSwKICAgIC8qKg0KICAgICAqIOajgOafpeWIl+ihqOS4reavj+S4quWFg+e0oOaYr+WQpumDveaciSBsaW5rIOWxnuaApw0KICAgICAqIEBwYXJhbSB7QXJyYXl9IGxpc3QgLSDlvoXmo4Dmn6XnmoTliJfooagNCiAgICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gLSDmmK/lkKbmiYDmnInlhYPntKDpg73mnIkgbGluayDlsZ7mgKcNCiAgICAgKi8KICAgIGNoZWNrRGF0YTogZnVuY3Rpb24gY2hlY2tEYXRhKGxpc3QpIHsKICAgICAgdmFyIGlzQ2hlY2sgPSB0cnVlOwogICAgICBsaXN0LnNvbWUoZnVuY3Rpb24gKHZhbCkgewogICAgICAgIGlmICghdmFsLmxpbmspIHsKICAgICAgICAgIGlzQ2hlY2sgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICByZXR1cm4gaXNDaGVjazsKICAgIH0sCiAgICAvKioNCiAgICAgKiBAZGVzY3JpcHRpb24g6I635Y+W6ZO+5o6l5Zyw5Z2A5bm25omT5byA5re75Yqg6ZO+5o6l55qE5qih5oCB5qGGDQogICAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IC0g5b2T5YmN6aG555qE57Si5byV5YC8DQogICAgICovCiAgICBnZXRMaW5rOiBmdW5jdGlvbiBnZXRMaW5rKGluZGV4KSB7CiAgICAgIC8vIOiuvue9ruW9k+WJjemhueeahOe0ouW8leWAvAogICAgICB0aGlzLml0ZW1JbmRleCA9IGluZGV4OwogICAgICAvLyDmiZPlvIDmt7vliqDpk77mjqXnmoTmqKHmgIHmoYYKICAgICAgdGhpcy4kcmVmcy5saW5rYWRkcmVzLm1vZGFscyA9IHRydWU7CiAgICB9LAogICAgLyoqDQogICAgICogQGRlc2NyaXB0aW9uIOWkhOeQhumTvuaOpeWcsOWdgOeahOi+k+WFpeS6i+S7tg0KICAgICAqIEBwYXJhbSB7c3RyaW5nfSBlIC0g6ZO+5o6l5Zyw5Z2ADQogICAgICovCiAgICBsaW5rVXJsOiBmdW5jdGlvbiBsaW5rVXJsKGUpIHsKICAgICAgLy8g5bCG6ZO+5o6l5Zyw5Z2A5a2Y5YKo5Yiw5a+55bqU55qE5pWw5o2u6aG55LitCiAgICAgIHRoaXMuYXJlYURhdGFbdGhpcy5pdGVtSW5kZXhdLmxpbmsgPSBlOwogICAgfQogIH0KfTs="},{"version":3,"names":["AreaBox","linkaddress","name","components","props","imgs","type","String","default","isHotPot","Boolean","imgAreaData","Array","linkInputStyle","Object","width","data","dialogVisible","starX","starY","areaWidth","areaHeight","caseShow","nowImgWidth","areaData","imgNum","parentWidth","parentHeight","defaultWidth","itemIndex","computed","watch","val","_toConsumableArray","mounted","methods","openModal","_this","$nextTick","parentDiv","document","querySelector","clientHeight","closeModal","_this2","$confirm","confirmButtonText","cancelButtonText","then","catch","$message","message","mouseDown","e","_this3","preventDefault","layerX","layerY","onmousemove","maxWidth","ev","changeStop","length","number","link","push","delAreaBox","index","splice","$emit","arr","filter","i","forEach","addURL","url","obj","_objectSpread","$set","saveAreaData","checkData","error","success","list","isCheck","some","getLink","$refs","linkaddres","modals","linkUrl"],"sources":["src/components/hotpotModal/index.vue"],"sourcesContent":["<template>\r\n <div>\r\n <el-dialog title=\"编辑热区\" :visible.sync=\"dialogVisible\" @opened=\"openModal\" fullscreen>\r\n <div class=\"operationFloor\">\r\n <div class=\"imgBox\" @mouseup.left.stop=\"changeStop()\">\r\n <div ref=\"container\" id=\"img-box-container\" class=\"container\">\r\n <img\r\n ref=\"backgroundImg\"\r\n :src=\"imgs\"\r\n ondragstart=\"return false;\"\r\n oncontextmenu=\"return false;\"\r\n onselect=\"document.selection.empty();\"\r\n alt=\"img\"\r\n @mousedown.left.stop=\"mouseDown($event)\"\r\n />\r\n <!--draw hotpot-->\r\n <div\r\n v-show=\"caseShow\"\r\n :style=\"{\r\n width: areaWidth + 'px',\r\n height: areaHeight + 'px',\r\n left: starX + 'px',\r\n top: starY + 'px',\r\n }\"\r\n class=\"area\"\r\n />\r\n <!--be hotpot-->\r\n <AreaBox\r\n v-for=\"(item, index) in areaData\"\r\n :area-data-index=\"index\"\r\n :key=\"'area' + index\"\r\n :link=\"item.link\"\r\n :title=\"item.title\"\r\n :type=\"parseInt(item.type)\"\r\n :area-init.sync=\"item\"\r\n :parent-width=\"parentWidth\"\r\n :parent-height=\"parentHeight\"\r\n @delAreaBox=\"delAreaBox\"\r\n @addURL=\"addURL\"\r\n />\r\n </div>\r\n </div>\r\n <!-- 热区链接配置 -->\r\n <div class=\"form\">\r\n <h2 class=\"mb20\">图片热区</h2>\r\n <el-alert type=\"warning\" :closable=\"false\" show-icon>框选热区范围,双击设置热区信息</el-alert>\r\n\r\n <div v-for=\"(item, index) in areaData\" :key=\"index\" class=\"form-row\">\r\n <div class=\"form-item\">\r\n <span class=\"num\">热区{{ item.number }}</span>\r\n </div>\r\n <div class=\"form-item label\">\r\n <div>\r\n <el-input\r\n icon=\"ios-arrow-forward\"\r\n v-model=\"item.link\"\r\n :style=\"linkInputStyle\"\r\n placeholder=\"选择跳转链接\"\r\n >\r\n <i class=\"el-icon-link\" slot=\"suffix\" @click=\"getLink(index)\" />\r\n </el-input>\r\n </div>\r\n </div>\r\n <i class=\"el-icon-delete\" @click=\"delAreaBox(index)\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div slot=\"footer\">\r\n <el-button class=\"mr20\" type=\"primary\" @click=\"saveAreaData\"> 完成 </el-button>\r\n </div>\r\n </el-dialog>\r\n <linkaddress ref=\"linkaddres\" @linkUrl=\"linkUrl\"></linkaddress>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport AreaBox from './AreaBox';\r\nimport linkaddress from '@/components/linkaddress';\r\n\r\nexport default {\r\n name: 'OperationFloor',\r\n components: {\r\n AreaBox,\r\n linkaddress,\r\n },\r\n props: {\r\n /**\r\n * @description 图片数据对象\r\n * @type {ImgData}\r\n */\r\n imgs: {\r\n type: String, // 图片类型\r\n default: () => '', // 默认值为空字符串\r\n },\r\n /**\r\n * @description 是否为热门汤品\r\n * @type {boolean}\r\n */\r\n isHotPot: {\r\n type: Boolean, // 布尔类型\r\n default: () => false, // 默认值为false\r\n },\r\n /**\r\n * @description 图片区域数据对象\r\n * @type {AreaData[]}\r\n */\r\n imgAreaData: {\r\n type: Array, // 数组类型\r\n default: () => [], // 默认值为空数组\r\n },\r\n /**\r\n * @description 链接输入框样式对象\r\n * @type {LinkInputStyle}\r\n */\r\n linkInputStyle: {\r\n type: Object, // 对象类型\r\n default: () => ({\r\n // 默认值为一个包含width属性的对象\r\n width: '300px',\r\n }),\r\n },\r\n },\r\n data() {\r\n return {\r\n /**\r\n * @description 对话框是否可见\r\n * @type {boolean}\r\n */\r\n dialogVisible: false,\r\n /**\r\n * @description 开始的x坐标\r\n * @type {number}\r\n */\r\n starX: 0,\r\n /**\r\n * @description 开始的y坐标\r\n * @type {number}\r\n */\r\n starY: 0,\r\n /**\r\n * @description 区域宽度\r\n * @type {number}\r\n */\r\n areaWidth: 0,\r\n /**\r\n * @description 区域高度\r\n * @type {number}\r\n */\r\n areaHeight: 0,\r\n /**\r\n * @description 当前显示的图片索引\r\n * @type {boolean}\r\n */\r\n caseShow: false,\r\n /**\r\n * @description 当前图片的宽度\r\n * @type {null}\r\n */\r\n nowImgWidth: null,\r\n /**\r\n * @description 区域数据\r\n * @type {Array}\r\n */\r\n areaData: [],\r\n /**\r\n * @description 当前显示的图片编号\r\n * @type {number}\r\n */\r\n imgNum: 1,\r\n /**\r\n * @description 父元素宽度\r\n * @type {number}\r\n */\r\n parentWidth: 0,\r\n /**\r\n * @description 父元素高度\r\n * @type {number}\r\n */\r\n parentHeight: 0,\r\n /**\r\n * @description 默认宽度\r\n * @type {number}\r\n */\r\n defaultWidth: 750,\r\n /**\r\n * @description 当前显示的图片索引\r\n * @type {number}\r\n */\r\n itemIndex: 0,\r\n };\r\n },\r\n computed: {},\r\n watch: {\r\n imgAreaData(val) {\r\n this.areaData = [...val];\r\n },\r\n },\r\n mounted() {\r\n this.areaData = [...this.imgAreaData];\r\n },\r\n methods: {\r\n openModal() {\r\n this.$nextTick(() => {\r\n const parentDiv = document.querySelector('#img-box-container');\r\n //获取元素的宽高\r\n this.parentWidth = this.defaultWidth;\r\n // this.parentWidth = parentDiv.clientWidth;\r\n this.parentHeight = parentDiv.clientHeight;\r\n // console.log(\"this.parentWidth\", this.parentWidth, this.parentHeight)\r\n });\r\n },\r\n closeModal() {\r\n this.$confirm('未保存内容,是否在离开前放弃保存?', '提示信息', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n })\r\n .then(() => {\r\n this.dialogVisible = false;\r\n })\r\n .catch(() => {\r\n this.$message({\r\n type: 'info',\r\n message: '已取消',\r\n });\r\n });\r\n },\r\n // 绘画热区开始\r\n mouseDown(e) {\r\n e.preventDefault();\r\n this.caseShow = true;\r\n // 记录滑动的初始值\r\n this.starX = e.layerX -5;\r\n this.starY = e.layerY -5;\r\n // 鼠标滑动的过程\r\n if (!document.onmousemove) {\r\n let maxWidth = this.defaultWidth - e.layerX;\r\n document.onmousemove = (ev) => {\r\n if (ev.layerX - this.starX < maxWidth) {\r\n this.areaWidth = ev.layerX - this.starX - 5;\r\n } else {\r\n this.areaWidth = maxWidth;\r\n }\r\n this.areaHeight = ev.layerY - this.starY -5;\r\n };\r\n }\r\n },\r\n // 绘画热区结束\r\n changeStop() {\r\n document.onmousemove = null;\r\n this.imgNum = this.areaData.length + 1;\r\n if (this.caseShow && this.areaWidth > 10 && this.areaHeight > 10) {\r\n const data = {\r\n number: this.imgNum,\r\n starX: this.starX,\r\n starY: this.starY,\r\n areaWidth: this.areaWidth,\r\n areaHeight: this.areaHeight,\r\n nowImgWidth: this.defaultWidth,\r\n link: '',\r\n };\r\n this.areaData.push(data);\r\n }\r\n // 初始化绘图\r\n this.caseShow = false;\r\n this.starX = 0;\r\n this.starY = 0;\r\n this.areaWidth = 0;\r\n this.areaHeight = 0;\r\n },\r\n // 删除指定热区\r\n delAreaBox(index) {\r\n /* 删除某个热区 */\r\n this.areaData.splice(index, 1);\r\n this.$emit('delAreaData', this.areaData);\r\n /* 删除后 每个热区按顺序重新编号 */\r\n if (this.areaData) {\r\n const arr = this.areaData.filter((i) => i.number > index);\r\n if (!arr) return;\r\n arr.forEach((i) => i.number--);\r\n if (this.areaData[this.areaData.length - 1]) {\r\n this.imgNum = this.areaData[this.areaData.length - 1].number + 1;\r\n } else {\r\n this.imgNum = 1;\r\n }\r\n }\r\n },\r\n // 添加网址\r\n addURL(index, url) {\r\n let obj = {\r\n ...this.areaData[index],\r\n link: url,\r\n };\r\n this.$set(this.areaData, index, obj);\r\n },\r\n // 保存热区信息\r\n saveAreaData() {\r\n if ((this.areaData && !this.areaData.length) || !this.checkData(this.areaData)) {\r\n this.$message.error('热区是否配置链接、是否至少添加一个热区?');\r\n return;\r\n }\r\n this.$emit('saveAreaData', this.areaData);\r\n this.dialogVisible = false;\r\n this.$message.success('编辑成功!');\r\n },\r\n /**\r\n * 检查列表中每个元素是否都有 link 属性\r\n * @param {Array} list - 待检查的列表\r\n * @returns {Boolean} - 是否所有元素都有 link 属性\r\n */\r\n checkData(list) {\r\n let isCheck = true;\r\n list.some((val) => {\r\n if (!val.link) {\r\n isCheck = false;\r\n }\r\n });\r\n return isCheck;\r\n },\r\n /**\r\n * @description 获取链接地址并打开添加链接的模态框\r\n * @param {number} index - 当前项的索引值\r\n */\r\n getLink(index) {\r\n // 设置当前项的索引值\r\n this.itemIndex = index;\r\n // 打开添加链接的模态框\r\n this.$refs.linkaddres.modals = true;\r\n },\r\n /**\r\n * @description 处理链接地址的输入事件\r\n * @param {string} e - 链接地址\r\n */\r\n linkUrl(e) {\r\n // 将链接地址存储到对应的数据项中\r\n this.areaData[this.itemIndex].link = e;\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n::v-deep .el-dialog {\r\n border-radius: 0px !important;\r\n .el-alert__icon.is-big {\r\n font-size: 14px;\r\n width: 16px;\r\n }\r\n .el-alert .el-alert__description {\r\n margin: 0;\r\n }\r\n}\r\n.btn {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 16px 0;\r\n}\r\n.dialog-footer {\r\n text-align: right;\r\n margin-top: 20px;\r\n margin-right: 20px;\r\n}\r\n.operationFloor {\r\n display: flex;\r\n position: relative;\r\n max-height: 80vh;\r\n .header {\r\n .titleBox {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n height: 100px;\r\n .name {\r\n font-size: 13px;\r\n font-weight: bold;\r\n }\r\n }\r\n .textBox {\r\n font-size: 12px;\r\n color: #777;\r\n margin-bottom: 10px;\r\n }\r\n }\r\n .imgBox::-webkit-scrollbar {\r\n display: none; /* Chrome Safari */\r\n }\r\n .imgBox {\r\n display: flex;\r\n justify-content: center;\r\n width: 65%;\r\n overflow-y: scroll;\r\n max-height: 800px;\r\n .container {\r\n position: relative;\r\n border: 1px solid #f5f5f5;\r\n }\r\n\r\n img {\r\n cursor: crosshair;\r\n display: block;\r\n width: 750px;\r\n }\r\n .area {\r\n position: absolute;\r\n width: 200px;\r\n height: 200px;\r\n left: 200px;\r\n top: 300px;\r\n background: rgba(#2980b9, 0.3);\r\n border: 1px dashed #34495e;\r\n }\r\n }\r\n}\r\n.form {\r\n font-size: 12px;\r\n width: 30%;\r\n max-height: 800px;\r\n overflow-y: scroll;\r\n .form-row {\r\n display: flex;\r\n margin: 12px 0;\r\n align-items: center;\r\n .form-item {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n white-space: nowrap;\r\n margin: 0 5px;\r\n font-size: 12px;\r\n .num {\r\n width: 69px;\r\n color: #999;\r\n font-size: 12px;\r\n }\r\n .label {\r\n color: #c7c7c7;\r\n }\r\n }\r\n }\r\n .el-icon-delete {\r\n font-size: 16px;\r\n cursor: pointer;\r\n }\r\n}\r\n</style>\r\n"],"mappings":";;;;;;;;;;;;AA4EA,OAAAA,OAAA;AACA,OAAAC,WAAA;AAEA;EACAC,IAAA;EACAC,UAAA;IACAH,OAAA,EAAAA,OAAA;IACAC,WAAA,EAAAA;EACA;EACAG,KAAA;IACA;AACA;AACA;AACA;IACAC,IAAA;MACAC,IAAA,EAAAC,MAAA;MAAA;MACAC,OAAA,WAAAA,SAAA;QAAA;MAAA;IACA;IACA;AACA;AACA;AACA;IACAC,QAAA;MACAH,IAAA,EAAAI,OAAA;MAAA;MACAF,OAAA,WAAAA,SAAA;QAAA;MAAA;IACA;IACA;AACA;AACA;AACA;IACAG,WAAA;MACAL,IAAA,EAAAM,KAAA;MAAA;MACAJ,OAAA,WAAAA,SAAA;QAAA;MAAA;IACA;IACA;AACA;AACA;AACA;IACAK,cAAA;MACAP,IAAA,EAAAQ,MAAA;MAAA;MACAN,OAAA,WAAAA,SAAA;QAAA;UACA;UACAO,KAAA;QACA;MAAA;IACA;EACA;EACAC,IAAA,WAAAA,KAAA;IACA;MACA;AACA;AACA;AACA;MACAC,aAAA;MACA;AACA;AACA;AACA;MACAC,KAAA;MACA;AACA;AACA;AACA;MACAC,KAAA;MACA;AACA;AACA;AACA;MACAC,SAAA;MACA;AACA;AACA;AACA;MACAC,UAAA;MACA;AACA;AACA;AACA;MACAC,QAAA;MACA;AACA;AACA;AACA;MACAC,WAAA;MACA;AACA;AACA;AACA;MACAC,QAAA;MACA;AACA;AACA;AACA;MACAC,MAAA;MACA;AACA;AACA;AACA;MACAC,WAAA;MACA;AACA;AACA;AACA;MACAC,YAAA;MACA;AACA;AACA;AACA;MACAC,YAAA;MACA;AACA;AACA;AACA;MACAC,SAAA;IACA;EACA;EACAC,QAAA;EACAC,KAAA;IACApB,WAAA,WAAAA,YAAAqB,GAAA;MACA,KAAAR,QAAA,GAAAS,kBAAA,CAAAD,GAAA;IACA;EACA;EACAE,OAAA,WAAAA,QAAA;IACA,KAAAV,QAAA,GAAAS,kBAAA,MAAAtB,WAAA;EACA;EACAwB,OAAA;IACAC,SAAA,WAAAA,UAAA;MAAA,IAAAC,KAAA;MACA,KAAA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","ignoreList":[]}]}
|