invinbg-image-cropper.js 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594
  1. (global["webpackJsonp"] = global["webpackJsonp"] || []).push([["components/invinbg-image-cropper/invinbg-image-cropper"],{
  2. /***/ 423:
  3. /*!*****************************************************************************************************!*\
  4. !*** D:/meloinfo/sugarpark-mini-program/components/invinbg-image-cropper/invinbg-image-cropper.vue ***!
  5. \*****************************************************************************************************/
  6. /*! no static exports found */
  7. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8. "use strict";
  9. __webpack_require__.r(__webpack_exports__);
  10. /* harmony import */ var _invinbg_image_cropper_vue_vue_type_template_id_02b3d9d8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invinbg-image-cropper.vue?vue&type=template&id=02b3d9d8&scoped=true& */ 424);
  11. /* harmony import */ var _invinbg_image_cropper_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./invinbg-image-cropper.vue?vue&type=script&lang=js& */ 426);
  12. /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _invinbg_image_cropper_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _invinbg_image_cropper_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  13. /* harmony import */ var _invinbg_image_cropper_vue_vue_type_style_index_0_id_02b3d9d8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./invinbg-image-cropper.vue?vue&type=style&index=0&id=02b3d9d8&scoped=true&lang=css& */ 428);
  14. /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 9);
  15. var renderjs
  16. /* normalize component */
  17. var component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  18. _invinbg_image_cropper_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  19. _invinbg_image_cropper_vue_vue_type_template_id_02b3d9d8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  20. _invinbg_image_cropper_vue_vue_type_template_id_02b3d9d8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  21. false,
  22. null,
  23. "02b3d9d8",
  24. null,
  25. false,
  26. _invinbg_image_cropper_vue_vue_type_template_id_02b3d9d8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
  27. renderjs
  28. )
  29. component.options.__file = "components/invinbg-image-cropper/invinbg-image-cropper.vue"
  30. /* harmony default export */ __webpack_exports__["default"] = (component.exports);
  31. /***/ }),
  32. /***/ 424:
  33. /*!************************************************************************************************************************************************!*\
  34. !*** D:/meloinfo/sugarpark-mini-program/components/invinbg-image-cropper/invinbg-image-cropper.vue?vue&type=template&id=02b3d9d8&scoped=true& ***!
  35. \************************************************************************************************************************************************/
  36. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  37. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  38. "use strict";
  39. __webpack_require__.r(__webpack_exports__);
  40. /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_invinbg_image_cropper_vue_vue_type_template_id_02b3d9d8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./invinbg-image-cropper.vue?vue&type=template&id=02b3d9d8&scoped=true& */ 425);
  41. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_invinbg_image_cropper_vue_vue_type_template_id_02b3d9d8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
  42. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_invinbg_image_cropper_vue_vue_type_template_id_02b3d9d8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
  43. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_invinbg_image_cropper_vue_vue_type_template_id_02b3d9d8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
  44. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_invinbg_image_cropper_vue_vue_type_template_id_02b3d9d8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
  45. /***/ }),
  46. /***/ 425:
  47. /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  48. !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!D:/meloinfo/sugarpark-mini-program/components/invinbg-image-cropper/invinbg-image-cropper.vue?vue&type=template&id=02b3d9d8&scoped=true& ***!
  49. \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  50. /*! exports provided: render, staticRenderFns, recyclableRender, components */
  51. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  52. "use strict";
  53. __webpack_require__.r(__webpack_exports__);
  54. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
  55. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
  56. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
  57. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
  58. var components
  59. var render = function() {
  60. var _vm = this
  61. var _h = _vm.$createElement
  62. var _c = _vm._self._c || _h
  63. }
  64. var recyclableRender = false
  65. var staticRenderFns = []
  66. render._withStripped = true
  67. /***/ }),
  68. /***/ 426:
  69. /*!******************************************************************************************************************************!*\
  70. !*** D:/meloinfo/sugarpark-mini-program/components/invinbg-image-cropper/invinbg-image-cropper.vue?vue&type=script&lang=js& ***!
  71. \******************************************************************************************************************************/
  72. /*! no static exports found */
  73. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  74. "use strict";
  75. __webpack_require__.r(__webpack_exports__);
  76. /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_invinbg_image_cropper_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./invinbg-image-cropper.vue?vue&type=script&lang=js& */ 427);
  77. /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_invinbg_image_cropper_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_invinbg_image_cropper_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
  78. /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_invinbg_image_cropper_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_invinbg_image_cropper_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  79. /* harmony default export */ __webpack_exports__["default"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_invinbg_image_cropper_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a);
  80. /***/ }),
  81. /***/ 427:
  82. /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  83. !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!D:/meloinfo/sugarpark-mini-program/components/invinbg-image-cropper/invinbg-image-cropper.vue?vue&type=script&lang=js& ***!
  84. \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  85. /*! no static exports found */
  86. /***/ (function(module, exports, __webpack_require__) {
  87. "use strict";
  88. /* WEBPACK VAR INJECTION */(function(uni) {Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; //
  89. //
  90. //
  91. //
  92. //
  93. //
  94. //
  95. //
  96. //
  97. //
  98. //
  99. //
  100. //
  101. //
  102. //
  103. //
  104. //
  105. //
  106. //
  107. //
  108. //
  109. //
  110. //
  111. //
  112. //
  113. //
  114. //
  115. //
  116. //
  117. //
  118. //
  119. //
  120. //
  121. //
  122. //
  123. //
  124. //
  125. //
  126. //
  127. //
  128. //
  129. //
  130. //
  131. //
  132. //
  133. //
  134. //
  135. //
  136. //
  137. //
  138. var _default =
  139. {
  140. name: 'image-cropper',
  141. props: {
  142. cropWidth: {
  143. type: Number,
  144. default: 200 },
  145. cropHeight: {
  146. type: Number,
  147. default: 200 },
  148. cropFixed: {
  149. type: Boolean,
  150. default: false },
  151. src: {
  152. type: String },
  153. showResetBtn: {
  154. type: Boolean,
  155. default: true },
  156. showRotateBtn: {
  157. type: Boolean,
  158. default: true } },
  159. data: function data() {
  160. var sysInfo = uni.getSystemInfoSync();
  161. var pixelRatio = sysInfo.pixelRatio;
  162. return {
  163. show: false,
  164. scale: 1,
  165. rotate: 0,
  166. cropW: 0,
  167. cropH: 0,
  168. cropOldW: 0,
  169. cropOldH: 0,
  170. sysInfo: sysInfo,
  171. pixelRatio: pixelRatio,
  172. imageRealWidth: 0,
  173. imageRealHeight: 0,
  174. cropOffsertX: 0,
  175. cropOffsertY: 0,
  176. startX: 0,
  177. startY: 0,
  178. // 裁剪框与边界间距
  179. border: 5,
  180. x: 0,
  181. y: 0,
  182. startL: 0,
  183. oldScale: 1 };
  184. },
  185. watch: {
  186. src: function src(val) {
  187. if (val.length > 0) {
  188. this.init();
  189. }
  190. },
  191. show: function show(val) {
  192. if (!val) {
  193. this.src = '';
  194. }
  195. } },
  196. computed: {
  197. containerTop: function containerTop() {
  198. var top = 0;
  199. return top;
  200. },
  201. // 容器高度
  202. containerHeight: function containerHeight() {
  203. return this.windowHeight - 48;
  204. },
  205. // 屏幕宽度
  206. windowWidth: function windowWidth() {
  207. return this.sysInfo.windowWidth;
  208. },
  209. windowHeight: function windowHeight() {
  210. return this.sysInfo.windowHeight;
  211. },
  212. // 图片宽高比
  213. imageRatio: function imageRatio() {
  214. if (this.imageRealHeight > 0) {
  215. return this.imageRealWidth / this.imageRealHeight;
  216. }
  217. return 0;
  218. },
  219. // 等比缩放后的宽度
  220. imageWidth: function imageWidth() {
  221. if (this.imageRatio >= 1) {
  222. return this.windowWidth;
  223. }
  224. return this.windowWidth * this.imageRatio;
  225. },
  226. // 等比缩放后的高度
  227. imageHeight: function imageHeight() {
  228. if (this.imageRatio >= 1) {
  229. return this.windowWidth / this.imageRatio;
  230. }
  231. return this.windowWidth;
  232. } },
  233. methods: {
  234. rotateHandler: function rotateHandler() {
  235. if (this.rotate == 3) {
  236. this.rotate = 0;
  237. } else {
  238. ++this.rotate;
  239. }
  240. },
  241. init: function init() {
  242. this.rotate = 0;
  243. this.scale = 1;
  244. this.cropW = this.cropWidth;
  245. this.cropH = this.cropHeight;
  246. uni.showLoading({
  247. title: '图片加载中...' });
  248. this.loadImage(this.src).then(function (e) {
  249. uni.hideLoading();
  250. }).catch(function (e) {
  251. uni.hideLoading();
  252. uni.showModal({
  253. title: '标题',
  254. content: '图片加载失败' });
  255. });
  256. },
  257. loadImage: function loadImage(src) {
  258. var _this = this;
  259. return new Promise(function (resolve, reject) {
  260. uni.getImageInfo({
  261. src: src,
  262. success: function success(res) {
  263. _this.imageRealWidth = res.width;
  264. _this.imageRealHeight = res.height;
  265. _this.cropOffsertX = _this.windowWidth / 2 - _this.cropW / 2;
  266. _this.cropOffsertY = _this.windowHeight / 2 - _this.cropH / 2;
  267. _this.show = true;
  268. _this.$nextTick(function () {
  269. _this.x = _this.windowWidth / 2 - _this.imageWidth / 2;
  270. _this.y = _this.containerHeight / 2 - _this.imageHeight / 2;
  271. });
  272. resolve(res);
  273. },
  274. fail: function fail(e) {
  275. _this.show = false;
  276. reject(e);
  277. } });
  278. });
  279. },
  280. cancel: function cancel() {
  281. this.show = false;
  282. this.$emit('cancel');
  283. },
  284. confirm: function confirm(event) {
  285. uni.showLoading({
  286. title: '裁剪中...' });
  287. var _this = this;
  288. var ctx = uni.createCanvasContext('myCanvas', _this);
  289. var pixelRatio = _this.pixelRatio;
  290. var imgage = _this.src;
  291. var imgW = _this.imageWidth * _this.scale;
  292. var imgH = _this.imageHeight * _this.scale;
  293. var rotate = _this.rotate;
  294. var dx = _this.cropOffsertX - _this.x - (_this.imageWidth - imgW) / 2;
  295. var dy = _this.cropOffsertY - _this.y - (_this.imageHeight - imgH) / 2;
  296. ctx.setFillStyle('white');
  297. ctx.fillRect(0, 0, imgW, imgH);
  298. ctx.save();
  299. ctx.rotate(rotate * 90 * Math.PI / 180);
  300. switch (rotate) {
  301. case 1:
  302. dx += (imgH - imgW) / 2;
  303. dy -= (imgH - imgW) / 2;
  304. ctx.drawImage(imgage, -dy, dx, imgW, -imgH);
  305. break;
  306. case 2:
  307. ctx.drawImage(imgage, dx, dy, -imgW, -imgH);
  308. break;
  309. case 3:
  310. dx += (imgH - imgW) / 2;
  311. dy -= (imgH - imgW) / 2;
  312. ctx.drawImage(imgage, dy, -dx, -imgW, imgH);
  313. break;
  314. default:
  315. ctx.drawImage(imgage, -dx, -dy, imgW, imgH);
  316. break;}
  317. ctx.restore();
  318. ctx.draw(false, function () {
  319. uni.canvasToTempFilePath({
  320. canvasId: 'myCanvas',
  321. destWidth: _this.cropW * pixelRatio,
  322. destHeight: _this.cropH * pixelRatio,
  323. success: function success(res) {
  324. uni.hideLoading();
  325. event.detail.tempFilePath = res.tempFilePath;
  326. _this.show = false;
  327. _this.$emit('confirm', event);
  328. },
  329. fail: function fail(e) {
  330. uni.hideLoading();
  331. uni.showModal({
  332. title: '提示',
  333. content: '裁剪失败' });
  334. } },
  335. _this);
  336. });
  337. },
  338. imgTouchStart: function imgTouchStart(e) {
  339. if (e.touches.length == 2) {
  340. this.oldScale = this.scale;
  341. this.scaling = true;
  342. var x = e.touches[0].pageX - e.touches[1].pageX;
  343. var y = e.touches[0].pageY - e.touches[1].pageY;
  344. var hypotenuse = Math.sqrt(
  345. Math.pow(x, 2) +
  346. Math.pow(y, 2));
  347. this.startL = Math.max(x, y, hypotenuse);
  348. uni.showModal({
  349. content: this.startL });
  350. } else {
  351. this.startX = e.touches[0].pageX - this.x;
  352. this.startY = e.touches[0].pageY - this.y;
  353. }
  354. },
  355. imgMoveing: function imgMoveing(e) {
  356. if (this.scaling) {
  357. var scale = this.oldScale;
  358. var x = e.touches[0].pageX - e.touches[1].pageX;
  359. var y = e.touches[0].pageY - e.touches[1].pageY;
  360. var hypotenuse = Math.sqrt(
  361. Math.pow(x, 2) +
  362. Math.pow(y, 2));
  363. var newL = Math.max(x, y, hypotenuse);
  364. var cha = newL - this.startL;
  365. // 根据图片本身大小 决定每次改变大小的系数, 图片越大系数越小
  366. // 1px - 0.2
  367. var coe = 1;
  368. coe =
  369. coe / this.imageWidth > coe / this.imageHeight ?
  370. coe / this.imageHeight :
  371. coe / this.imageWidth;
  372. coe = coe > 0.1 ? 0.1 : coe;
  373. var num = coe * cha;
  374. if (cha > 0) {
  375. scale += Math.abs(num);
  376. } else if (cha < 0) {
  377. scale > Math.abs(num) ? scale -= Math.abs(num) : scale;
  378. }
  379. this.scale = scale;
  380. } else {
  381. var moveX = e.touches[0].pageX - this.startX;
  382. var moveY = e.touches[0].pageY - this.startY;
  383. this.x = moveX;
  384. this.y = moveY;
  385. }
  386. },
  387. imgMoveEnd: function imgMoveEnd() {var _this2 = this;
  388. setTimeout(function () {
  389. _this2.scaling = false;
  390. }, 100);
  391. },
  392. touchStart: function touchStart(e) {
  393. this.startX = e.touches[0].pageX - this.cropOffsertX;
  394. this.startY = e.touches[0].pageY - this.cropOffsertY;
  395. this.cropOldW = this.cropW;
  396. this.cropOldH = this.cropH;
  397. },
  398. cropMoveing: function cropMoveing(e) {
  399. var moveX = this._cropX(e.touches[0].pageX - this.startX);
  400. var moveY = this._cropY(e.touches[0].pageY - this.startY);
  401. this.cropOffsertX = moveX;
  402. this.cropOffsertY = moveY;
  403. },
  404. dragMove: function dragMove(e, type) {
  405. if (this.cropFixed) {
  406. return false;
  407. }
  408. var moveX = e.touches[0].pageX - this.startX;
  409. var moveY = e.touches[0].pageY - this.startY;
  410. switch (type) {
  411. case 'left-top':
  412. this._cropMoveLeft(moveX);
  413. this._cropMoveTop(moveY);
  414. break;
  415. case 'middle-top':
  416. this._cropMoveTop(moveY);
  417. break;
  418. case 'right-top':
  419. this._cropMoveTop(moveY);
  420. this._cropMoveRight(moveX);
  421. break;
  422. case 'middle-right':
  423. this._cropMoveRight(moveX);
  424. break;
  425. case 'right-bottom':
  426. this._cropMoveRight(moveX);
  427. this._cropMoveBottom(moveY);
  428. break;
  429. case 'middle-bottom':
  430. this._cropMoveBottom(moveY);
  431. break;
  432. case 'left-bottom':
  433. this._cropMoveBottom(moveY);
  434. this._cropMoveLeft(moveX);
  435. break;
  436. case 'middle-left':
  437. this._cropMoveLeft(moveX);
  438. break;
  439. default:
  440. break;}
  441. },
  442. _cropMoveTop: function _cropMoveTop(y) {
  443. var topY = this._cropY(y);
  444. this.cropH += this.cropOffsertY - topY;
  445. this.cropOffsertY = topY;
  446. },
  447. _cropMoveRight: function _cropMoveRight(x) {
  448. if (this.cropOldW + x >= this.windowWidth - this.border) {
  449. return false;
  450. }
  451. this.cropW = this.cropOldW + (x - this.cropOffsertX);
  452. },
  453. _cropMoveBottom: function _cropMoveBottom(y) {
  454. if (this.cropOldH + y >= this.windowHeight - this.containerTop - this.border) {
  455. return false;
  456. }
  457. this.cropH = this.cropOldH + (y - this.cropOffsertY);
  458. },
  459. _cropMoveLeft: function _cropMoveLeft(x) {
  460. var leftX = this._cropY(x);
  461. this.cropW += this.cropOffsertX - leftX;
  462. this.cropOffsertX = leftX;
  463. },
  464. _cropX: function _cropX(x) {
  465. if (x <= this.border) {
  466. return this.border;
  467. }
  468. if (x + this.cropW >= this.windowWidth - this.border) {
  469. return this.windowWidth - this.cropW - this.border;
  470. }
  471. return x;
  472. },
  473. _cropY: function _cropY(y) {
  474. if (y <= this.border) {
  475. return this.border;
  476. }
  477. if (y + this.cropH >= this.windowHeight - this.containerTop - this.border) {
  478. return this.windowHeight - this.cropH - this.containerTop - this.border;
  479. }
  480. return y;
  481. } } };exports.default = _default;
  482. /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"]))
  483. /***/ }),
  484. /***/ 428:
  485. /*!**************************************************************************************************************************************************************!*\
  486. !*** D:/meloinfo/sugarpark-mini-program/components/invinbg-image-cropper/invinbg-image-cropper.vue?vue&type=style&index=0&id=02b3d9d8&scoped=true&lang=css& ***!
  487. \**************************************************************************************************************************************************************/
  488. /*! no static exports found */
  489. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  490. "use strict";
  491. __webpack_require__.r(__webpack_exports__);
  492. /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_invinbg_image_cropper_vue_vue_type_style_index_0_id_02b3d9d8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!../../../../HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--6-oneOf-1-3!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./invinbg-image-cropper.vue?vue&type=style&index=0&id=02b3d9d8&scoped=true&lang=css& */ 429);
  493. /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_invinbg_image_cropper_vue_vue_type_style_index_0_id_02b3d9d8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_invinbg_image_cropper_vue_vue_type_style_index_0_id_02b3d9d8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
  494. /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_invinbg_image_cropper_vue_vue_type_style_index_0_id_02b3d9d8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_invinbg_image_cropper_vue_vue_type_style_index_0_id_02b3d9d8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  495. /* harmony default export */ __webpack_exports__["default"] = (_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_invinbg_image_cropper_vue_vue_type_style_index_0_id_02b3d9d8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
  496. /***/ }),
  497. /***/ 429:
  498. /*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  499. !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!D:/meloinfo/sugarpark-mini-program/components/invinbg-image-cropper/invinbg-image-cropper.vue?vue&type=style&index=0&id=02b3d9d8&scoped=true&lang=css& ***!
  500. \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
  501. /*! no static exports found */
  502. /***/ (function(module, exports, __webpack_require__) {
  503. // extracted by mini-css-extract-plugin
  504. if(false) { var cssReload; }
  505. /***/ })
  506. }]);
  507. //# sourceMappingURL=../../../.sourcemap/mp-weixin/components/invinbg-image-cropper/invinbg-image-cropper.js.map
  508. ;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
  509. 'components/invinbg-image-cropper/invinbg-image-cropper-create-component',
  510. {
  511. 'components/invinbg-image-cropper/invinbg-image-cropper-create-component':(function(module, exports, __webpack_require__){
  512. __webpack_require__('1')['createComponent'](__webpack_require__(423))
  513. })
  514. },
  515. [['components/invinbg-image-cropper/invinbg-image-cropper-create-component']]
  516. ]);