icve-sso-vue3 0.0.16 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -33991,8 +33991,8 @@ function sendEmailMsg(data) {
33991
33991
  });
33992
33992
  }
33993
33993
  //获取二维码
33994
- function generateQrCode() {
33995
- return request({
33994
+ function login_generateQrCode() {
33995
+ return utils_request({
33996
33996
  url: '/v2/user/generateQrCode',
33997
33997
  method: 'get'
33998
33998
  });
@@ -34015,7 +34015,7 @@ function wechatLoginByCode(data) {
34015
34015
  //查询二维码状态
34016
34016
 
34017
34017
  function checkCodeStatus(sceneId) {
34018
- return request({
34018
+ return utils_request({
34019
34019
  url: '/v2/user/status/' + sceneId,
34020
34020
  method: 'get'
34021
34021
  });
@@ -34795,16 +34795,216 @@ const AliyunCaptchaModal_exports_ = /*#__PURE__*/(0,exportHelper/* default */.A)
34795
34795
  const verifyComponents_exports_ = /*#__PURE__*/(0,exportHelper/* default */.A)(verifyComponentsvue_type_script_lang_js, [['render',verifyComponentsvue_type_template_id_7d804fae_render]])
34796
34796
 
34797
34797
  /* harmony default export */ const verifyComponents = (verifyComponents_exports_);
34798
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/cli-service/node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/cli-service/node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/QRCodeLogin.vue?vue&type=template&id=3d8182cc
34799
- function QRCodeLoginvue_type_template_id_3d8182cc_render(_ctx, _cache) {
34800
- return null;
34798
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/cli-service/node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/cli-service/node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/QRCodeLogin.vue?vue&type=template&id=2d48678a&scoped=true
34799
+
34800
+ var QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_1 = {
34801
+ "class": "qr-code-wrapper"
34802
+ };
34803
+ var QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_2 = ["id"];
34804
+ var QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_3 = {
34805
+ key: 0,
34806
+ "class": "qr-login-overlay"
34807
+ };
34808
+ var QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_4 = {
34809
+ key: 0,
34810
+ "class": "overlay-content"
34811
+ };
34812
+ var QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_5 = {
34813
+ "class": "overlay-text"
34814
+ };
34815
+ var QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_6 = {
34816
+ "class": "overlay-tip"
34817
+ };
34818
+ var QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_7 = {
34819
+ key: 1,
34820
+ "class": "overlay-content"
34821
+ };
34822
+ var QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_8 = {
34823
+ "class": "overlay-text",
34824
+ style: {
34825
+ "color": "red"
34826
+ }
34827
+ };
34828
+ var QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_9 = {
34829
+ "class": "overlay-tip"
34830
+ };
34831
+ var QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_10 = {
34832
+ "class": "qr-tip"
34833
+ };
34834
+ var QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_11 = {
34835
+ key: 0,
34836
+ "class": "bind-tip"
34837
+ };
34838
+ function QRCodeLoginvue_type_template_id_2d48678a_scoped_true_render(_ctx, _cache, $props, $setup, $data, $options) {
34839
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
34840
+ "class": (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)(["qr-login-container", {
34841
+ 'qr-login-container1': $props.bdwxShow
34842
+ }])
34843
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", {
34844
+ id: "qrcode-container-".concat(_ctx._uid)
34845
+ }, null, 8, QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_2), $data.loginStatus == 1 || $data.loginStatus == 3 ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_3, [$data.loginStatus == 1 ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_4, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("p", QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_5, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($options.i18n('已扫码')), 1), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("p", QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_6, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($options.i18n('请在手机上确认')), 1), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("button", {
34846
+ "class": "rescan-btn",
34847
+ onClick: _cache[0] || (_cache[0] = function () {
34848
+ return $options.handleRescanQrCode && $options.handleRescanQrCode.apply($options, arguments);
34849
+ })
34850
+ }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($options.i18n('重新扫码')), 1)])) : $data.loginStatus == 3 ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_7, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("p", QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_8, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($options.i18n('二维码已过期')), 1), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("p", QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_9, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($options.i18n('请点击下方按钮刷新')), 1), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("button", {
34851
+ "class": "rescan-btn",
34852
+ onClick: _cache[1] || (_cache[1] = function () {
34853
+ return $options.handleRescanQrCode && $options.handleRescanQrCode.apply($options, arguments);
34854
+ })
34855
+ }, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($options.i18n('重新生成')), 1)])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)]), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("p", QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_10, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($props.bdwxShow ? $options.i18n('微信扫码进行账号绑定') : $options.i18n('微信或App扫码均可登录')), 1), $data.wxRandom ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", QRCodeLoginvue_type_template_id_2d48678a_scoped_true_hoisted_11, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.toDisplayString)($options.i18n('你当前的微信暂未绑定账号或手机号,需先完成绑定,后续登录将无需重复验证,直接进入即可~')), 1)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)], 2);
34801
34856
  }
34857
+ ;// ./src/components/QRCodeLogin.vue?vue&type=template&id=2d48678a&scoped=true
34858
+
34859
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/cli-service/node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/QRCodeLogin.vue?vue&type=script&lang=js
34860
+
34861
+
34862
+ // import QRCode from 'qrcodejs2';
34863
+
34864
+ /* harmony default export */ const QRCodeLoginvue_type_script_lang_js = ({
34865
+ props: {
34866
+ bdwxShow: {
34867
+ type: Boolean,
34868
+ "default": false
34869
+ }
34870
+ },
34871
+ data: function data() {
34872
+ return {
34873
+ sceneId: '',
34874
+ qrCodeUrl: '',
34875
+ loading: false,
34876
+ error: '',
34877
+ expireTime: 0,
34878
+ // 二维码有效期
34879
+ pollTimer: null,
34880
+ statusTimer: null,
34881
+ loginStatus: 0,
34882
+ // 0-未扫码, 1-已扫码待确认, 2-登录成功, 3-过期
34883
+ wxRandom: ''
34884
+ };
34885
+ },
34886
+ mounted: function mounted() {
34887
+ this.generateQrCode();
34888
+ },
34889
+ beforeDestroy: function beforeDestroy() {
34890
+ this.clearTimers();
34891
+ },
34892
+ methods: {
34893
+ i18n: function i18n(key) {
34894
+ // 如果组件有自己的i18n实例
34895
+ if (this.$options.urcSsoI18n && this.$options.urcSsoI18n.t) {
34896
+ return this.$options.urcSsoI18n.t(key);
34897
+ }
34898
+ // 如果全局有i18n
34899
+ if (this.$root.$i18n && this.$root.$i18n.t) {
34900
+ return this.$root.$i18n.t(key);
34901
+ }
34902
+ // 如果Vue实例有$t方法
34903
+ if (this.$t && typeof this.$t === 'function') {
34904
+ return this.$t(key);
34905
+ }
34906
+ // 如果都没有,返回key本身
34907
+ return key;
34908
+ },
34909
+ // 生成二维码
34910
+ generateQrCode: function generateQrCode() {
34911
+ var _this = this;
34912
+ this.loading = true;
34913
+ this.error = '';
34914
+ login_generateQrCode().then(function (_ref) {
34915
+ var data = _ref.data;
34916
+ _this.loading = false;
34917
+ // this.qrCodeUrl = data.data.qrCodeUrl;
34918
+ _this.generateQRCode(data.data.qrUrl);
34919
+ _this.sceneId = data.data.sceneId;
34920
+ _this.expireTime = data.data.expireTime;
34921
+ // 启动轮询检查登录状态
34922
+ _this.startPolling();
34923
+ // 启动过期倒计时
34924
+ _this.startCountdown();
34925
+ })["catch"](function (err) {
34926
+ _this.loading = false;
34927
+ _this.error = '生成二维码失败,请重试';
34928
+ console.error(err);
34929
+ });
34930
+ },
34931
+ generateQRCode: function generateQRCode(url) {
34932
+ var containerId = "qrcode-container-".concat(this._uid);
34933
+ document.getElementById(containerId).innerHTML = '';
34934
+ // // 创建新的二维码实例
34935
+ // new QRCode(document.getElementById(containerId), {
34936
+ // text: url, // 二维码内容(链接)
34937
+ // width: 240, // 宽度
34938
+ // height: 240, // 高度
34939
+ // colorDark: '#000000', // 前景色
34940
+ // colorLight: '#ffffff', // 背景色
34941
+ // correctLevel: QRCode.CorrectLevel.H, // 容错级别
34942
+ // });
34943
+ },
34944
+ // 轮询检查登录状态
34945
+ startPolling: function startPolling() {
34946
+ var _this2 = this;
34947
+ this.pollTimer = setInterval(function () {
34948
+ checkCodeStatus(_this2.sceneId).then(function (res) {
34949
+ var status = res.data.data.status;
34950
+ if (status === 1) {
34951
+ // 登录中,更新状态为已扫码
34952
+ _this2.loginStatus = status;
34953
+ } else if (status === 2) {
34954
+ // 登录成功,存储token并跳转
34955
+ _this2.$emit('loginSuccess', res.data.data);
34956
+ _this2.wxRandom = res.data.data.wxRandom;
34957
+ _this2.clearTimers();
34958
+ } else if (status === 3) {
34959
+ // 二维码过期,停止轮询并显示提示
34960
+ _this2.loginStatus = 3;
34961
+ _this2.clearTimers();
34962
+ }
34963
+ // 其他状态(扫描未确认)不处理
34964
+ })["catch"](function (err) {
34965
+ console.error('检查登录状态失败', err);
34966
+ });
34967
+ }, 2000); // 每2秒检查一次
34968
+ },
34969
+ // 倒计时
34970
+ startCountdown: function startCountdown() {
34971
+ var _this3 = this;
34972
+ this.statusTimer = setInterval(function () {
34973
+ _this3.expireTime--;
34974
+ if (_this3.expireTime <= 0) {
34975
+ _this3.loginStatus = 3; // 设置为过期状态
34976
+ _this3.clearTimers();
34977
+ }
34978
+ }, 1000);
34979
+ },
34980
+ // 清除定时器
34981
+ clearTimers: function clearTimers() {
34982
+ if (this.pollTimer) clearInterval(this.pollTimer);
34983
+ if (this.statusTimer) clearInterval(this.statusTimer);
34984
+ },
34985
+ // 重新扫码
34986
+ handleRescanQrCode: function handleRescanQrCode() {
34987
+ this.loginStatus = 0; // 重置状态
34988
+ this.generateQrCode(); // 重新生成二维码
34989
+ }
34990
+ }
34991
+ });
34992
+ ;// ./src/components/QRCodeLogin.vue?vue&type=script&lang=js
34993
+
34994
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/cli-service/node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/cli-service/node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/QRCodeLogin.vue?vue&type=style&index=0&id=2d48678a&lang=scss&scoped=true
34995
+ // extracted by mini-css-extract-plugin
34996
+
34997
+ ;// ./src/components/QRCodeLogin.vue?vue&type=style&index=0&id=2d48678a&lang=scss&scoped=true
34998
+
34802
34999
  ;// ./src/components/QRCodeLogin.vue
34803
35000
 
34804
- const script = {}
35001
+
35002
+
34805
35003
 
34806
35004
  ;
34807
- const QRCodeLogin_exports_ = /*#__PURE__*/(0,exportHelper/* default */.A)(script, [['render',QRCodeLoginvue_type_template_id_3d8182cc_render]])
35005
+
35006
+
35007
+ const QRCodeLogin_exports_ = /*#__PURE__*/(0,exportHelper/* default */.A)(QRCodeLoginvue_type_script_lang_js, [['render',QRCodeLoginvue_type_template_id_2d48678a_scoped_true_render],['__scopeId',"data-v-2d48678a"]])
34808
35008
 
34809
35009
  /* harmony default export */ const QRCodeLogin = (QRCodeLogin_exports_);
34810
35010
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/cli-service/node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/cli-service/node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/mobileBinding.vue?vue&type=template&id=3371c604&scoped=true