809efabe2dd52f96b3c00ccfaf985274.json 19 KB

1
  1. {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\components\\verifition\\Verify\\VerifyPoints.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\components\\verifition\\Verify\\VerifyPoints.vue","mtime":1761614938989},{"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:DQovKioNCiAqIFZlcmlmeVBvaW50cw0KICogQGRlc2NyaXB0aW9uIOeCuemAiQ0KICogKi8NCmltcG9ydCB7IHJlc2V0U2l6ZSwgX2NvZGVfY2hhcnMsIF9jb2RlX2NvbG9yMSwgX2NvZGVfY29sb3IyIH0gZnJvbSAnLi8uLi91dGlscy91dGlsJzsNCmltcG9ydCB7IGFlc0VuY3J5cHQgfSBmcm9tICcuLy4uL3V0aWxzL2FzZSc7DQppbXBvcnQgeyBhakNhcHRjaGEsIGFqQ2FwdGNoYUNoZWNrIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2NvbW1vbic7DQoNCmV4cG9ydCBkZWZhdWx0IHsNCiAgbmFtZTogJ1ZlcmlmeVBvaW50cycsDQogIHByb3BzOiB7DQogICAgLy8g5by55Ye65byPcG9w77yM5Zu65a6aZml4ZWQNCiAgICBtb2RlOiB7DQogICAgICB0eXBlOiBTdHJpbmcsDQogICAgICBkZWZhdWx0OiAnZml4ZWQnLA0KICAgIH0sDQogICAgY2FwdGNoYVR5cGU6IHsNCiAgICAgIHR5cGU6IFN0cmluZywNCiAgICB9LA0KICAgIC8vIOmXtOmalA0KICAgIHZTcGFjZTogew0KICAgICAgdHlwZTogTnVtYmVyLA0KICAgICAgZGVmYXVsdDogNSwNCiAgICB9LA0KICAgIGltZ1NpemU6IHsNCiAgICAgIHR5cGU6IE9iamVjdCwNCiAgICAgIGRlZmF1bHQoKSB7DQogICAgICAgIHJldHVybiB7DQogICAgICAgICAgd2lkdGg6ICczMTBweCcsDQogICAgICAgICAgaGVpZ2h0OiAnMTU1cHgnLA0KICAgICAgICB9Ow0KICAgICAgfSwNCiAgICB9LA0KICAgIGJhclNpemU6IHsNCiAgICAgIHR5cGU6IE9iamVjdCwNCiAgICAgIGRlZmF1bHQoKSB7DQogICAgICAgIHJldHVybiB7DQogICAgICAgICAgd2lkdGg6ICczMTBweCcsDQogICAgICAgICAgaGVpZ2h0OiAnNDBweCcsDQogICAgICAgIH07DQogICAgICB9LA0KICAgIH0sDQogICAgZGVmYXVsdEltZzogew0KICAgICAgdHlwZTogU3RyaW5nLA0KICAgICAgZGVmYXVsdDogJycsDQogICAgfSwNCiAgfSwNCiAgZGF0YSgpIHsNCiAgICByZXR1cm4gew0KICAgICAgc2VjcmV0S2V5OiAnJywgLy8g5ZCO56uv6L+U5Zue55qEYXNl5Yqg5a+G56eY6ZKlDQogICAgICBjaGVja051bTogMywgLy8g6buY6K6k6ZyA6KaB54K55Ye755qE5a2X5pWwDQogICAgICBmb250UG9zOiBbXSwgLy8g6YCJ5Lit55qE5Z2Q5qCH5L+h5oGvDQogICAgICBjaGVja1Bvc0FycjogW10sIC8vIOeUqOaIt+eCueWHu+eahOWdkOaghw0KICAgICAgbnVtOiAxLCAvLyDngrnlh7vnmoTorrDmlbANCiAgICAgIHBvaW50QmFja0ltZ0Jhc2U6ICcnLCAvLyDlkI7nq6/ojrflj5bliLDnmoTog4zmma/lm77niYcNCiAgICAgIHBvaW5UZXh0TGlzdDogW10sIC8vIOWQjuerr+i/lOWbnueahOeCueWHu+Wtl+S9k+mhuuW6jw0KICAgICAgYmFja1Rva2VuOiAnJywgLy8g5ZCO56uv6L+U5Zue55qEdG9rZW7lgLwNCiAgICAgIHNldFNpemU6IHsNCiAgICAgICAgaW1nSGVpZ2h0OiAwLA0KICAgICAgICBpbWdXaWR0aDogMCwNCiAgICAgICAgYmFySGVpZ2h0OiAwLA0KICAgICAgICBiYXJXaWR0aDogMCwNCiAgICAgIH0sDQogICAgICB0ZW1wUG9pbnRzOiBbXSwNCiAgICAgIHRleHQ6ICcnLA0KICAgICAgYmFyQXJlYUNvbG9yOiB1bmRlZmluZWQsDQogICAgICBiYXJBcmVhQm9yZGVyQ29sb3I6IHVuZGVmaW5lZCwNCiAgICAgIHNob3dSZWZyZXNoOiB0cnVlLA0KICAgICAgYmluZGluZ0NsaWNrOiB0cnVlLA0KICAgIH07DQogIH0sDQogIGNvbXB1dGVkOiB7DQogICAgcmVzZXRTaXplKCkgew0KICAgICAgcmV0dXJuIHJlc2V0U2l6ZTsNCiAgICB9LA0KICB9LA0KICB3YXRjaDogew0KICAgIC8vIHR5cGXlj5jljJbliJnlhajpnaLliLfmlrANCiAgICB0eXBlOiB7DQogICAgICBpbW1lZGlhdGU6IHRydWUsDQogICAgICBoYW5kbGVyKCkgew0KICAgICAgICB0aGlzLmluaXQoKTsNCiAgICAgIH0sDQogICAgfSwNCiAgfSwNCiAgbW91bnRlZCgpIHsNCiAgICAvLyDnpoHmraLmi5bmi70NCiAgICB0aGlzLiRlbC5vbnNlbGVjdHN0YXJ0ID0gZnVuY3Rpb24gKCkgew0KICAgICAgcmV0dXJuIGZhbHNlOw0KICAgIH07DQogIH0sDQogIG1ldGhvZHM6IHsNCiAgICBpbml0KCkgew0KICAgICAgLy8g5Yqg6L296aG16Z2iDQogICAgICB0aGlzLmZvbnRQb3Muc3BsaWNlKDAsIHRoaXMuZm9udFBvcy5sZW5ndGgpOw0KICAgICAgdGhpcy5jaGVja1Bvc0Fyci5zcGxpY2UoMCwgdGhpcy5jaGVja1Bvc0Fyci5sZW5ndGgpOw0KICAgICAgdGhpcy5udW0gPSAxOw0KICAgICAgdGhpcy5nZXRQaWN0cnVlKCk7DQogICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7DQogICAgICAgIHRoaXMuc2V0U2l6ZSA9IHRoaXMucmVzZXRTaXplKHRoaXMpOyAvLyDph43mlrDorr7nva7lrr3luqbpq5jluqYNCiAgICAgICAgdGhpcy4kcGFyZW50LiRlbWl0KCdyZWFkeScsIHRoaXMpOw0KICAgICAgfSk7DQogICAgfSwNCiAgICBjYW52YXNDbGljayhlKSB7DQogICAgICB0aGlzLmNoZWNrUG9zQXJyLnB1c2godGhpcy5nZXRNb3VzZVBvcyh0aGlzLiRyZWZzLmNhbnZhcywgZSkpOw0KICAgICAgaWYgKHRoaXMubnVtID09IHRoaXMuY2hlY2tOdW0pIHsNCiAgICAgICAgdGhpcy5udW0gPSB0aGlzLmNyZWF0ZVBvaW50KHRoaXMuZ2V0TW91c2VQb3ModGhpcy4kcmVmcy5jYW52YXMsIGUpKTsNCiAgICAgICAgLy8g5oyJ5q+U5L6L6L2s5o2i5Z2Q5qCH5YC8DQogICAgICAgIHRoaXMuY2hlY2tQb3NBcnIgPSB0aGlzLnBvaW50VHJhbnNmcm9tKHRoaXMuY2hlY2tQb3NBcnIsIHRoaXMuc2V0U2l6ZSk7DQogICAgICAgIC8vIOetieWIm+W7uuWdkOagh+aJp+ihjOWujA0KICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgICAvLyB2YXIgZmxhZyA9IHRoaXMuY29tcGFyZVBvcyh0aGlzLmZvbnRQb3MsIHRoaXMuY2hlY2tQb3NBcnIpOw0KICAgICAgICAgIC8vIOWPkemAgeWQjuerr+ivt+axgg0KICAgICAgICAgIHZhciBjYXB0Y2hhVmVyaWZpY2F0aW9uID0gdGhpcy5zZWNyZXRLZXkNCiAgICAgICAgICAgID8gYWVzRW5jcnlwdCh0aGlzLmJhY2tUb2tlbiArICctLS0nICsgSlNPTi5zdHJpbmdpZnkodGhpcy5jaGVja1Bvc0FyciksIHRoaXMuc2VjcmV0S2V5KQ0KICAgICAgICAgICAgOiB0aGlzLmJhY2tUb2tlbiArICctLS0nICsgSlNPTi5zdHJpbmdpZnkodGhpcy5jaGVja1Bvc0Fycik7DQogICAgICAgICAgY29uc3QgZGF0YSA9IHsNCiAgICAgICAgICAgIGNhcHRjaGFUeXBlOiB0aGlzLmNhcHRjaGFUeXBlLA0KICAgICAgICAgICAgcG9pbnRKc29uOiB0aGlzLnNlY3JldEtleQ0KICAgICAgICAgICAgICA/IGFlc0VuY3J5cHQoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGVja1Bvc0FyciksIHRoaXMuc2VjcmV0S2V5KQ0KICAgICAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHRoaXMuY2hlY2tQb3NBcnIpLA0KICAgICAgICAgICAgdG9rZW46IHRoaXMuYmFja1Rva2VuLA0KICAgICAgICAgIH07DQogICAgICAgICAgYWpDYXB0Y2hhQ2hlY2soZGF0YSkudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgICBpZiAocmVzLnJlcENvZGUgPT0gJzAwMDAnKSB7DQogICAgICAgICAgICAgIHRoaXMuYmFyQXJlYUNvbG9yID0gJyM0Y2FlNGMnOw0KICAgICAgICAgICAgICB0aGlzLmJhckFyZWFCb3JkZXJDb2xvciA9ICcjNWNiODVjJzsNCiAgICAgICAgICAgICAgdGhpcy50ZXh0ID0gJ+mqjOivgeaIkOWKnyc7DQogICAgICAgICAgICAgIHRoaXMuYmluZGluZ0NsaWNrID0gZmFsc2U7DQogICAgICAgICAgICAgIGlmICh0aGlzLm1vZGUgPT0gJ3BvcCcpIHsNCiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgICAgICAgICAgIHRoaXMuJHBhcmVudC5jbGlja1Nob3cgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaCgpOw0KICAgICAgICAgICAgICAgIH0sIDE1MDApOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIHRoaXMuJHBhcmVudC4kZW1pdCgnc3VjY2VzcycsIHsgY2FwdGNoYVZlcmlmaWNhdGlvbiB9KTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgIHRoaXMuJHBhcmVudC4kZW1pdCgnZXJyb3InLCB0aGlzKTsNCiAgICAgICAgICAgICAgdGhpcy5iYXJBcmVhQ29sb3IgPSAnI2Q5NTM0Zic7DQogICAgICAgICAgICAgIHRoaXMuYmFyQXJlYUJvcmRlckNvbG9yID0gJyNkOTUzNGYnOw0KICAgICAgICAgICAgICB0aGlzLnRleHQgPSAn6aqM6K+B5aSx6LSlJzsNCiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7DQogICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7DQogICAgICAgICAgICAgIH0sIDcwMCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgfSk7DQogICAgICAgIH0sIDQwMCk7DQogICAgICB9DQogICAgICBpZiAodGhpcy5udW0gPCB0aGlzLmNoZWNrTnVtKSB7DQogICAgICAgIHRoaXMubnVtID0gdGhpcy5jcmVhdGVQb2ludCh0aGlzLmdldE1vdXNlUG9zKHRoaXMuJHJlZnMuY2FudmFzLCBlKSk7DQogICAgICB9DQogICAgfSwNCg0KICAgIC8vIOiOt+WPluWdkOaghw0KICAgIGdldE1vdXNlUG9zOiBmdW5jdGlvbiAob2JqLCBlKSB7DQogICAgICB2YXIgeCA9IGUub2Zmc2V0WDsNCiAgICAgIHZhciB5ID0gZS5vZmZzZXRZOw0KICAgICAgcmV0dXJuIHsgeCwgeSB9Ow0KICAgIH0sDQogICAgLy8g5Yib5bu65Z2Q5qCH54K5DQogICAgY3JlYXRlUG9pbnQ6IGZ1bmN0aW9uIChwb3MpIHsNCiAgICAgIHRoaXMudGVtcFBvaW50cy5wdXNoKE9iamVjdC5hc3NpZ24oe30sIHBvcykpOw0KICAgICAgcmV0dXJuICsrdGhpcy5udW07DQogICAgfSwNCiAgICByZWZyZXNoOiBmdW5jdGlvbiAoKSB7DQogICAgICB0aGlzLnRlbXBQb2ludHMuc3BsaWNlKDAsIHRoaXMudGVtcFBvaW50cy5sZW5ndGgpOw0KICAgICAgdGhpcy5iYXJBcmVhQ29sb3IgPSAnIzAwMCc7DQogICAgICB0aGlzLmJhckFyZWFCb3JkZXJDb2xvciA9ICcjZGRkJzsNCiAgICAgIHRoaXMuYmluZGluZ0NsaWNrID0gdHJ1ZTsNCiAgICAgIHRoaXMuZm9udFBvcy5zcGxpY2UoMCwgdGhpcy5mb250UG9zLmxlbmd0aCk7DQogICAgICB0aGlzLmNoZWNrUG9zQXJyLnNwbGljZSgwLCB0aGlzLmNoZWNrUG9zQXJyLmxlbmd0aCk7DQogICAgICB0aGlzLm51bSA9IDE7DQogICAgICB0aGlzLmdldFBpY3RydWUoKTsNCiAgICAgIHRoaXMudGV4dCA9ICfpqozor4HlpLHotKUnOw0KICAgICAgdGhpcy5zaG93UmVmcmVzaCA9IHRydWU7DQogICAgfSwNCg0KICAgIC8vIOivt+axguiDjOaZr+WbvueJh+WSjOmqjOivgeWbvueJhw0KICAgIGdldFBpY3RydWUoKSB7DQogICAgICBjb25zdCBkYXRhID0gew0KICAgICAgICBjYXB0Y2hhVHlwZTogdGhpcy5jYXB0Y2hhVHlwZSwNCiAgICAgICAgY2xpZW50VWlkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncG9pbnQnKSwNCiAgICAgICAgdHM6IERhdGUubm93KCksIC8vIOeOsOWcqOeahOaXtumXtOaIsw0KICAgICAgfTsNCiAgICAgIGFqQ2FwdGNoYShkYXRhKS50aGVuKChyZXMpID0+IHsNCiAgICAgICAgaWYgKHJlcy5yZXBDb2RlID09ICcwMDAwJykgew0KICAgICAgICAgIHRoaXMucG9pbnRCYWNrSW1nQmFzZSA9IHJlcy5yZXBEYXRhLm9yaWdpbmFsSW1hZ2VCYXNlNjQ7DQogICAgICAgICAgdGhpcy5iYWNrVG9rZW4gPSByZXMucmVwRGF0YS50b2tlbjsNCiAgICAgICAgICB0aGlzLnNlY3JldEtleSA9IHJlcy5yZXBEYXRhLnNlY3JldEtleTsNCiAgICAgICAgICB0aGlzLnBvaW5UZXh0TGlzdCA9IHJlcy5yZXBEYXRhLndvcmRMaXN0Ow0KICAgICAgICAgIHRoaXMudGV4dCA9ICfor7fkvp3mrKHngrnlh7vjgJAnICsgdGhpcy5wb2luVGV4dExpc3Quam9pbignLCcpICsgJ+OAkSc7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpcy50ZXh0ID0gcmVzLnJlcE1zZzsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIOWIpOaWreaOpeWPo+ivt+axguasoeaVsOaYr+WQpuWkseaViA0KICAgICAgICBpZiAocmVzLnJlcENvZGUgPT0gJzYyMDEnKSB7DQogICAgICAgICAgdGhpcy5wb2ludEJhY2tJbWdCYXNlID0gbnVsbDsNCiAgICAgICAgfQ0KICAgICAgfSk7DQogICAgfSwNCiAgICAvLyDlnZDmoIfovazmjaLlh73mlbANCiAgICBwb2ludFRyYW5zZnJvbShwb2ludEFyciwgaW1nU2l6ZSkgew0KICAgICAgdmFyIG5ld1BvaW50QXJyID0gcG9pbnRBcnIubWFwKChwKSA9PiB7DQogICAgICAgIGNvbnN0IHggPSBNYXRoLnJvdW5kKCgzMTAgKiBwLngpIC8gcGFyc2VJbnQoaW1nU2l6ZS5pbWdXaWR0aCkpOw0KICAgICAgICBjb25zdCB5ID0gTWF0aC5yb3VuZCgoMTU1ICogcC55KSAvIHBhcnNlSW50KGltZ1NpemUuaW1nSGVpZ2h0KSk7DQogICAgICAgIHJldHVybiB7IHgsIHkgfTsNCiAgICAgIH0pOw0KICAgICAgcmV0dXJuIG5ld1BvaW50QXJyOw0KICAgIH0sDQogIH0sDQp9Ow0K"},{"version":3,"sources":["VerifyPoints.vue"],"names":[],"mappings":";AA6DA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"VerifyPoints.vue","sourceRoot":"src/components/verifition/Verify","sourcesContent":["<template>\r\n <div style=\"position: relative\">\r\n <div class=\"verify-img-out\">\r\n <div\r\n class=\"verify-img-panel\"\r\n :style=\"{\r\n width: setSize.imgWidth,\r\n height: setSize.imgHeight,\r\n 'background-size': setSize.imgWidth + ' ' + setSize.imgHeight,\r\n 'margin-bottom': vSpace + 'px',\r\n }\"\r\n >\r\n <div v-show=\"showRefresh\" class=\"verify-refresh\" style=\"z-index: 3\" v-db-click @click=\"refresh\">\r\n <i class=\"iconfont icon-refresh\" />\r\n </div>\r\n <img\r\n ref=\"canvas\"\r\n :src=\"pointBackImgBase ? 'data:image/png;base64,' + pointBackImgBase : defaultImg\"\r\n alt=\"\"\r\n style=\"width: 100%; height: 100%; display: block\"\r\n v-db-click\r\n @click=\"bindingClick ? canvasClick($event) : undefined\"\r\n />\r\n\r\n <div\r\n v-for=\"(tempPoint, index) in tempPoints\"\r\n :key=\"index\"\r\n class=\"point-area\"\r\n :style=\"{\r\n 'background-color': '#1abd6c',\r\n color: '#fff',\r\n 'z-index': 9999,\r\n width: '20px',\r\n height: '20px',\r\n 'text-align': 'center',\r\n 'line-height': '20px',\r\n 'border-radius': '50%',\r\n position: 'absolute',\r\n top: parseInt(tempPoint.y - 10) + 'px',\r\n left: parseInt(tempPoint.x - 10) + 'px',\r\n }\"\r\n >\r\n {{ index + 1 }}\r\n </div>\r\n </div>\r\n </div>\r\n <!-- 'height': this.barSize.height, -->\r\n <div\r\n class=\"verify-bar-area\"\r\n :style=\"{\r\n width: setSize.imgWidth,\r\n color: this.barAreaColor,\r\n 'border-color': this.barAreaBorderColor,\r\n 'line-height': this.barSize.height,\r\n }\"\r\n >\r\n <span class=\"verify-msg\">{{ text }}</span>\r\n </div>\r\n </div>\r\n</template>\r\n<script type=\"text/babel\">\r\n/**\r\n * VerifyPoints\r\n * @description 点选\r\n * */\r\nimport { resetSize, _code_chars, _code_color1, _code_color2 } from './../utils/util';\r\nimport { aesEncrypt } from './../utils/ase';\r\nimport { ajCaptcha, ajCaptchaCheck } from '../../../api/common';\r\n\r\nexport default {\r\n name: 'VerifyPoints',\r\n props: {\r\n // 弹出式pop,固定fixed\r\n mode: {\r\n type: String,\r\n default: 'fixed',\r\n },\r\n captchaType: {\r\n type: String,\r\n },\r\n // 间隔\r\n vSpace: {\r\n type: Number,\r\n default: 5,\r\n },\r\n imgSize: {\r\n type: Object,\r\n default() {\r\n return {\r\n width: '310px',\r\n height: '155px',\r\n };\r\n },\r\n },\r\n barSize: {\r\n type: Object,\r\n default() {\r\n return {\r\n width: '310px',\r\n height: '40px',\r\n };\r\n },\r\n },\r\n defaultImg: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n data() {\r\n return {\r\n secretKey: '', // 后端返回的ase加密秘钥\r\n checkNum: 3, // 默认需要点击的字数\r\n fontPos: [], // 选中的坐标信息\r\n checkPosArr: [], // 用户点击的坐标\r\n num: 1, // 点击的记数\r\n pointBackImgBase: '', // 后端获取到的背景图片\r\n poinTextList: [], // 后端返回的点击字体顺序\r\n backToken: '', // 后端返回的token值\r\n setSize: {\r\n imgHeight: 0,\r\n imgWidth: 0,\r\n barHeight: 0,\r\n barWidth: 0,\r\n },\r\n tempPoints: [],\r\n text: '',\r\n barAreaColor: undefined,\r\n barAreaBorderColor: undefined,\r\n showRefresh: true,\r\n bindingClick: true,\r\n };\r\n },\r\n computed: {\r\n resetSize() {\r\n return resetSize;\r\n },\r\n },\r\n watch: {\r\n // type变化则全面刷新\r\n type: {\r\n immediate: true,\r\n handler() {\r\n this.init();\r\n },\r\n },\r\n },\r\n mounted() {\r\n // 禁止拖拽\r\n this.$el.onselectstart = function () {\r\n return false;\r\n };\r\n },\r\n methods: {\r\n init() {\r\n // 加载页面\r\n this.fontPos.splice(0, this.fontPos.length);\r\n this.checkPosArr.splice(0, this.checkPosArr.length);\r\n this.num = 1;\r\n this.getPictrue();\r\n this.$nextTick(() => {\r\n this.setSize = this.resetSize(this); // 重新设置宽度高度\r\n this.$parent.$emit('ready', this);\r\n });\r\n },\r\n canvasClick(e) {\r\n this.checkPosArr.push(this.getMousePos(this.$refs.canvas, e));\r\n if (this.num == this.checkNum) {\r\n this.num = this.createPoint(this.getMousePos(this.$refs.canvas, e));\r\n // 按比例转换坐标值\r\n this.checkPosArr = this.pointTransfrom(this.checkPosArr, this.setSize);\r\n // 等创建坐标执行完\r\n setTimeout(() => {\r\n // var flag = this.comparePos(this.fontPos, this.checkPosArr);\r\n // 发送后端请求\r\n var captchaVerification = this.secretKey\r\n ? aesEncrypt(this.backToken + '---' + JSON.stringify(this.checkPosArr), this.secretKey)\r\n : this.backToken + '---' + JSON.stringify(this.checkPosArr);\r\n const data = {\r\n captchaType: this.captchaType,\r\n pointJson: this.secretKey\r\n ? aesEncrypt(JSON.stringify(this.checkPosArr), this.secretKey)\r\n : JSON.stringify(this.checkPosArr),\r\n token: this.backToken,\r\n };\r\n ajCaptchaCheck(data).then((res) => {\r\n if (res.repCode == '0000') {\r\n this.barAreaColor = '#4cae4c';\r\n this.barAreaBorderColor = '#5cb85c';\r\n this.text = '验证成功';\r\n this.bindingClick = false;\r\n if (this.mode == 'pop') {\r\n setTimeout(() => {\r\n this.$parent.clickShow = false;\r\n this.refresh();\r\n }, 1500);\r\n }\r\n this.$parent.$emit('success', { captchaVerification });\r\n } else {\r\n this.$parent.$emit('error', this);\r\n this.barAreaColor = '#d9534f';\r\n this.barAreaBorderColor = '#d9534f';\r\n this.text = '验证失败';\r\n setTimeout(() => {\r\n this.refresh();\r\n }, 700);\r\n }\r\n });\r\n }, 400);\r\n }\r\n if (this.num < this.checkNum) {\r\n this.num = this.createPoint(this.getMousePos(this.$refs.canvas, e));\r\n }\r\n },\r\n\r\n // 获取坐标\r\n getMousePos: function (obj, e) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n return { x, y };\r\n },\r\n // 创建坐标点\r\n createPoint: function (pos) {\r\n this.tempPoints.push(Object.assign({}, pos));\r\n return ++this.num;\r\n },\r\n refresh: function () {\r\n this.tempPoints.splice(0, this.tempPoints.length);\r\n this.barAreaColor = '#000';\r\n this.barAreaBorderColor = '#ddd';\r\n this.bindingClick = true;\r\n this.fontPos.splice(0, this.fontPos.length);\r\n this.checkPosArr.splice(0, this.checkPosArr.length);\r\n this.num = 1;\r\n this.getPictrue();\r\n this.text = '验证失败';\r\n this.showRefresh = true;\r\n },\r\n\r\n // 请求背景图片和验证图片\r\n getPictrue() {\r\n const data = {\r\n captchaType: this.captchaType,\r\n clientUid: localStorage.getItem('point'),\r\n ts: Date.now(), // 现在的时间戳\r\n };\r\n ajCaptcha(data).then((res) => {\r\n if (res.repCode == '0000') {\r\n this.pointBackImgBase = res.repData.originalImageBase64;\r\n this.backToken = res.repData.token;\r\n this.secretKey = res.repData.secretKey;\r\n this.poinTextList = res.repData.wordList;\r\n this.text = '请依次点击【' + this.poinTextList.join(',') + '】';\r\n } else {\r\n this.text = res.repMsg;\r\n }\r\n\r\n // 判断接口请求次数是否失效\r\n if (res.repCode == '6201') {\r\n this.pointBackImgBase = null;\r\n }\r\n });\r\n },\r\n // 坐标转换函数\r\n pointTransfrom(pointArr, imgSize) {\r\n var newPointArr = pointArr.map((p) => {\r\n const x = Math.round((310 * p.x) / parseInt(imgSize.imgWidth));\r\n const y = Math.round((155 * p.y) / parseInt(imgSize.imgHeight));\r\n return { x, y };\r\n });\r\n return newPointArr;\r\n },\r\n },\r\n};\r\n</script>\r\n"]}]}