From 2f3221b7c90d5663fdb312653a2d188bc4628370 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 09 二月 2026 10:19:21 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 admin/src/views/login.vue |   40 +++++++++++++++++++++++++++++++++++++---
 1 files changed, 37 insertions(+), 3 deletions(-)

diff --git a/admin/src/views/login.vue b/admin/src/views/login.vue
index 4003310..989d283 100644
--- a/admin/src/views/login.vue
+++ b/admin/src/views/login.vue
@@ -22,8 +22,8 @@
 
 <script>
 import { mapMutations } from 'vuex'
-import { getCaptcha, loginByPassword } from '@/api/system/common'
-
+import { getCaptcha, loginByPassword, loginByDingTalk } from '@/api/system/common'
+import * as dd from 'dingtalk-jsapi';
 export default {
   name: 'Login',
   data () {
@@ -31,6 +31,7 @@
       loading: false,
       username: '',
       password: '',
+      unionId: '',
       // 楠岃瘉鐮�
       captcha: {
         loading: false,
@@ -57,7 +58,8 @@
         username: this.username.trim(),
         password: this.password,
         code: this.captcha.value.trim(),
-        uuid: this.captcha.uuid
+        uuid: this.captcha.uuid,
+        unionId: this.unionId
       },true)
         .then(() => {
           window.location.href = process.env.VUE_APP_CONTEXT_PATH
@@ -113,6 +115,38 @@
   },
   created () {
     this.refreshCaptcha()
+    var that = this
+    let href = window.location.href;
+    let corpId = ''
+    if (dd.env.platform !== 'notInDingTalk') {
+      // 鍏堝垽鏂湴鍧�涓婃湁娌℃湁corpId
+      if (href.indexOf('?corpid=') !== -1) {
+        // alert('浠庡湴鍧�鎷縞orpid')
+        corpId = href.substring(href.lastIndexOf('?corpid=') + 8, href.lastIndexOf('#'))
+        window.localStorage.setItem('corpId', corpId)
+      // 鍒ゆ柇娴忚鍣ㄧ紦瀛樻槸鍚︽湁corpId
+      } else if (window.localStorage.getItem('corpId')) {
+        corpId = window.localStorage.getItem('corpId')
+        // alert('浠庣紦瀛樻嬁corpid')
+      }
+      // dingulzemj5bynjciapg
+      dd.requestAuthCode({
+        corpId: corpId,
+        clientId: 'dingy7xdyzffnegiaszo',
+        onSuccess: function(result) {
+          loginByDingTalk({
+            code: result.code,
+            corpId: corpId
+          }).then(res => {
+            if (res.loginStatus) {
+              window.location.href = process.env.VUE_APP_CONTEXT_PATH
+              return
+            }
+            that.unionId = res.unionId
+          })
+        }
+      });
+    }
   }
 }
 </script>

--
Gitblit v1.9.3