فهرست منبع

钉钉免登录

chenc 3 سال پیش
والد
کامیت
950ed369dc
4فایلهای تغییر یافته به همراه66 افزوده شده و 3 حذف شده
  1. 12 0
      src/api/login.js
  2. 9 0
      src/api/manage.js
  3. 27 0
      src/utils/dingding.js
  4. 18 3
      src/views/user/Login.vue

+ 12 - 0
src/api/login.js

@@ -20,6 +20,18 @@ export function login(parameter) {
   })
 }
 
+/**
+ * 钉钉免登录
+ * @param {*} parameter 
+ */
+export function dingLogin(parameter) {
+  return axios({
+    url: '/sys/getDingLogin',
+    method: 'post',
+    data: parameter
+  })
+}
+
 export function phoneLogin(parameter) {
   return axios({
     url: '/sys/phoneLogin',

+ 9 - 0
src/api/manage.js

@@ -71,6 +71,15 @@ export function getAction (url, parameter) {
     })
 }
 
+// getData
+export function getDataAction (url, data) {
+    return axios({
+        url: url,
+        method: 'get',
+        data: data
+    })
+}
+
 // deleteAction
 export function deleteAction (url, parameter) {
     return axios({

+ 27 - 0
src/utils/dingding.js

@@ -0,0 +1,27 @@
+import * as dd from 'dingtalk-jsapi';
+
+export function getCode(callback) {
+  // let corpId = 'ding1d8bd510f1f4eada35c2f4657eb6378f';
+  let corpId = 'dingf62dd071b5bb59a035c2f4657eb6378f';
+  if (dd.env.platform !== "notInDingTalk") {
+    dd.ready(() => {
+        
+      //使用SDK 获取免登授权码
+      dd.runtime.permission.requestAuthCode({
+        corpId: corpId,
+        onSuccess: (info) => {
+          // 根据钉钉提供的api 获得code后,再次调用这个callback方法
+          // 由于是钉钉获取code是异步操作,不知道什么时候执行完毕
+          // callback 函数会等他执行完毕后在自己调用自己
+          callback(info.code)
+        },
+        onFail: (err) => {
+          alert('fail');
+          alert(JSON.stringify(err));
+        },
+      });
+    });
+  }else{
+    callback("非钉钉登录")
+  }
+}

+ 18 - 3
src/views/user/Login.vue

@@ -64,6 +64,7 @@ import api from '@/api'
 import { JeecgListMixin } from '@/mixins/JeecgListMixin'
 import { activitiMixin } from '@/views/activiti/mixins/activitiMixin'
 import JSelectUserByDep from '@/components/jeecgbiz/JSelectUserByDep'
+import { getCode } from '../../utils/dingding'
 
 export default {
   name: 'Login',
@@ -90,6 +91,20 @@ export default {
   // 页面打开时,默认已登录
   created() {
     Vue.ls.remove(ACCESS_TOKEN)
+    //钉钉免登录
+    //获取临时授权码
+    //  getCode(code=>{
+    //    //登录
+    //   // 异步操作
+    //   this.dingLogin({code:code})
+    //     .then(res => {
+    //       this.getDataList() // 待办、已办 列表
+    //       this.getActiveKeyAll() // OA 4个按钮
+    //     })
+    //     .catch(err => {
+    //       console.log(err)
+    //     })
+    // })
     // 进入页面自动登录
     this.autoLogin()
       .then(res => {
@@ -105,11 +120,11 @@ export default {
     //   this.getDataList()
     // },
     // 映射store/user.js 中 actions的方法
-    ...mapActions(['Login']),
+    ...mapActions(['Login','dingLogin']),
 
     // 自动登录
     async autoLogin() {
-      var that = this
+       var that = this
       let loginParams = {}
       loginParams.username = 'fenghf'
       loginParams.password = 'fenghf`123456'
@@ -128,7 +143,7 @@ export default {
 
     // 点击全部 跳转页面
     todo() {
-      this.$router.push({ path: '/user/todo' })
+      this.$router.push({ name: 'todo' })
       console.log(this.$router)
     },