Browse Source

Merge branch 'master' of http://120.26.64.82:3000/BFFE/Foshan4A4.0

zhaoke 3 years ago
parent
commit
1b0338e93d
5 changed files with 88 additions and 27 deletions
  1. 4 3
      src/api/apiHome.js
  2. 10 1
      src/api/apiLog.js
  3. 8 1
      src/api/login.js
  4. 2 2
      src/utils/request.js
  5. 64 20
      src/views/dashboard/index.vue

+ 4 - 3
src/api/apiHome.js

@@ -1,8 +1,8 @@
 /*
  * @Author: your name
  * @Date: 2021-12-20 10:26:41
- * @LastEditTime: 2022-01-05 15:41:53
- * @LastEditors: Please set LastEditors
+ * @LastEditTime: 2022-04-21 13:58:33
+ * @LastEditors: your name
  * @Description: 首页接口
  * @FilePath: \Foshan4A2.0\src\api\apiHome.js
  */
@@ -77,6 +77,7 @@ export function SsoLogin (params) {
   return request({
     url: '/api/fs4a/SsoLogin/v1',
     method: 'post',
-    data: params
+    data: params,
+    msg: '锁屏后解锁'
   })
 }

+ 10 - 1
src/api/apiLog.js

@@ -7,4 +7,13 @@ export function GetLogList (params) {
     method: 'post',
     data: params
   })
-}
+}
+
+// 发送日志
+export function sendLog(params) {
+  return request({
+    url: '/api/fs4a/sendLog',
+    method: 'post',
+    data: params
+  })
+}

+ 8 - 1
src/api/login.js

@@ -74,4 +74,11 @@ export function loginGetToken (params) {
         method: 'post',
         data: params
     })
-}
+}
+
+export function externalSSO(config) {
+  return request({
+    ...config,
+    msg: '外部系统登录'
+  })
+}

+ 2 - 2
src/utils/request.js

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2022-01-06 09:45:17
- * @LastEditTime: 2022-04-19 16:09:26
+ * @LastEditTime: 2022-04-21 11:47:01
  * @LastEditors: your name
  * @Description: axios封装
  */
@@ -93,7 +93,7 @@ service.interceptors.response.use(
           Data: [metaData],
           BrowserTag: navigator.userAgent,
           OperateIP: returnCitySN.cip,
-          Msg: msg,
+          Msg: msg ?? '未定义操作',
           Type: '2',
           BeginTime,
           BeginTime2: BeginTime,

+ 64 - 20
src/views/dashboard/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2021-10-14 17:17:53
- * @LastEditTime: 2022-04-11 14:49:29
+ * @LastEditTime: 2022-04-21 14:14:11
  * @LastEditors: your name
  * @Description: In User Settings Edit
  * @FilePath: \Foshan4A\src\views\dashboard\index.vue
@@ -44,7 +44,10 @@
                 v-for="(p, i) in item.params"
                 :key="i"
                 :command="{ item, index: i}"
-              >{{ Object.entries(p).filter(arr => arr[1].repeat).map(arr => arr[1].comment).join(' ') }}</el-dropdown-item>
+              >
+                <!-- {{ Object.entries(p).filter(arr => arr[1].repeat).map(arr => arr[1].comment).join(' ') }} -->
+                {{ Object.values(p).reduce((pre, cur) => cur.repeat ? pre.concat(cur.comment) : pre, []).join(' ') }}
+              </el-dropdown-item>
             </el-dropdown-menu>
           </el-dropdown>
         </template>
@@ -130,6 +133,10 @@ import Journal from './components/journal.vue'
 import { GetOthSystem } from '@/api/apiHome'
 import axios from 'axios'
 import qs from 'qs'
+import { externalSSO } from '@/api/login'
+import { sendLog } from '@/api/apiLog'
+import { parseTime } from '@/utils'
+import { getLogId, getUserId, getUserName } from '@/utils/auth'
 export default {
   name: 'Dashboard',
   components: { Analysis, Journal },
@@ -220,7 +227,7 @@ export default {
           userId: Number(this.UserId),
           userType: this.UserType
         })
-        if (result.code === 0 && result.returnData.length) {
+        if (result.code === 0) {
           this.flList = result.returnData.map(item => {
             const map = {}
             let params = []
@@ -360,7 +367,7 @@ export default {
     handleCommand({ item, index }) {
       this.toApp(item, index)
     },
-    toApp(item, index = 0) {
+    async toApp(item, index = 0) {
       if (Number(item.status) === 1) {
         if (item.appUrl) {
           let method
@@ -402,26 +409,63 @@ export default {
             document.body.appendChild(form)
             form.submit()
             document.body.removeChild(form)
+            const now = parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}')
+            const logData = {
+              LogInfo: params,
+              BeginTime: now,
+              EndTime: now,
+              LogType: '外部系统登录',
+              OperateResult: null,
+              Ident: ''
+            }
+            sendLog({
+              Data: [logData],
+              BrowserTag: navigator.userAgent,
+              OperateIP: returnCitySN.cip,
+              Msg: '外部系统登录',
+              BeginTime: now,
+              BeginTime2: now,
+              EndTime: now,
+              OperateResult: null,
+              Ident: '',
+              OperatorId: getUserId(),
+              LogId: getLogId(),
+              UserName: getUserName()
+            })
           } else {
             method = 'post'
             headers['Content-Type'] =
-              item.bodyType === 'application/json'
-                ? 'application/json;charset=UTF-8'
-                : 'application/x-www-form-urlencoded'
-            axios({
-              baseURL: item.appUrl,
-              url: url.length ? '?' + url.join('&') : '',
-              method,
-              headers,
-              data: item.bodyType === 'application/json' ? params : qs.stringify(params)
-            })
-              .then(res => {
-                const data = res.data.data
-                data && window.open(data)
-              })
-              .catch(err => {
-                this.$message.error(err)
+              item.bodyType === 'application/json' ? 'application/json' : 'application/x-www-form-urlencoded'
+            // axios({
+            //   baseURL: item.appUrl,
+            //   url: url.length ? '?' + url.join('&') : '',
+            //   method,
+            //   headers,
+            //   data: item.bodyType === 'application/json' ? params : qs.stringify(params)
+            // })
+            //   .then(res => {
+            //     const data = res.data.data
+            //     data && window.open(data)
+            //   })
+            //   .catch(err => {
+            //     this.$message.error(err)
+            //   })
+            try {
+              const result = await externalSSO({
+                baseURL: item.appUrl,
+                url: url.length ? '?' + url.join('&') : '',
+                method,
+                headers,
+                data: item.bodyType === 'application/json' ? params : qs.stringify(params)
               })
+              if (result.code === 0) {
+                result.data && window.open(result.data)
+              } else {
+                this.$message.error(result.message)
+              }
+            } catch (error) {
+              console.log('网络错误:', error)
+            }
           }
         } else {
           this.$message.warning('应用地址为空')