Ver Fonte

feat:登录弹框插件-增加设置密码订阅发布事件

yangfeng há 1 ano atrás
pai
commit
56d4cf102c

+ 8 - 0
plugins/login-auth/example/index.html

@@ -80,6 +80,14 @@
             toggleLoginDom(false)
           }
         })
+        window.jyCoreSDK.$on('user-set-pass-success', (data) => {
+          alert('设置密码成功')
+          location.reload()
+        })
+        window.jyCoreSDK.$on('user-not-set-pass', (data) => {
+          alert('暂不设置密码')
+          location.reload()
+        })
       })
     </script>
   </body>

+ 4 - 0
plugins/login-auth/src/lib/module/common.ts

@@ -18,3 +18,7 @@ export function commonFormat(obj, res) {
 export function commonHandle(formatData) {
   pluginLogin.emitUserLoginSuccess(formatData)
 }
+
+export function setPassHandle(formatData) {
+  pluginLogin.emitUserSetPass(formatData)
+}

+ 2 - 1
plugins/login-auth/src/lib/module/index.ts

@@ -23,6 +23,7 @@ import loginCookie from '@/module-model/loginCookies'
 import { clearAllStorageOfReg } from '@/utils/common'
 import bindPhone from './bind-phone'
 import poll from './poll'
+import setPass from './set-pass'
 import { useUrlSearchParams } from '@vueuse/core'
 import { commonFormat, commonHandle } from './common'
 
@@ -39,7 +40,7 @@ const moduleMap = {
     format: commonFormat,
     dispatch: commonHandle
   },
-  'set-pass': {},
+  'set-pass': setPass,
   'bind-phone': bindPhone,
   poll: poll
 }

+ 13 - 0
plugins/login-auth/src/lib/module/set-pass.ts

@@ -0,0 +1,13 @@
+import { setPassHandle } from './common'
+
+const setPass = {
+  format(obj, res) {
+    if (res) {
+      // status  0: 暂不设置; 1:设置成功
+      obj.status = res?.status
+    }
+    return obj
+  },
+  dispatch: setPassHandle
+}
+export default setPass

+ 14 - 1
plugins/login-auth/src/lib/pluginLogin.ts

@@ -180,7 +180,7 @@ class PluginLogin {
       }
     })
   }
-
+ 
   /**
    * 处理信息相关更新
    * @param type - 类型
@@ -235,6 +235,19 @@ class PluginLogin {
       cross: true
     })
   }
+  /**
+   * 广播用户设置密码事件(暂不设置、设置成功)
+   * @param data
+   * status 0:暂不设置 1:设置成功
+   */
+  emitUserSetPass(data) {
+    const { status } = data
+    if (status === 1) {
+      this.emitter.$emit('user-set-pass-success', data)
+    } else {
+      this.emitter.$emit('user-not-set-pass', data)
+    }
+  }
 }
 
 const pluginLogin = new PluginLogin({

+ 2 - 1
plugins/login-auth/src/views/form/setPass.vue

@@ -71,6 +71,7 @@ const canSubmit = computed(() => {
 
 function doSubmit(type) {
   if (!type) {
+    pluginLogin.handleSuccess('set-pass', { status: 0 })
     pluginLogin.close()
     return
   }
@@ -85,7 +86,7 @@ function doSubmit(type) {
   ajaxSetPass(params)
     .then(({ data }) => {
       if (data) {
-        pluginLogin.handleSuccess('set-pass', data)
+        pluginLogin.handleSuccess('set-pass', { status: 1 })
         pluginLogin.close()
       } else {
         formNode.value.showError(1, '密码保存失败')