From 3391bcb2b07054bfa7406764fa0a68865ab98dac Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Thu, 22 Jan 2026 14:59:50 +0800
Subject: [PATCH] feat:app调整
---
uniapps/work-app/src/api/user/index.js | 22 +++++++
uniapps/work-app/src/utils/requestGd/index.js | 42 +++++++------
uniapps/work-app/src/config/env.js | 1
uniapps/work-app/src/hooks/useGlobalWS.js | 2
uniapps/work-app/src/pages/login/index.vue | 58 +++++++++++++++++-
uniapps/work-app/src/api/work/index1.js | 2
6 files changed, 100 insertions(+), 27 deletions(-)
diff --git a/uniapps/work-app/src/api/user/index.js b/uniapps/work-app/src/api/user/index.js
index 5a3fc98..12e344d 100644
--- a/uniapps/work-app/src/api/user/index.js
+++ b/uniapps/work-app/src/api/user/index.js
@@ -22,6 +22,28 @@
/** 退出登录 */
export const logout = () => post("/user/logout")
+// 工单用户登录接口
+export const ticketLoginInterfaceApi = (tenantId, deptId, roleId, username, password, type, key, code) => {
+ return request({
+ url: '/blade-auth/oauth/token',
+ method: 'post',
+ header: {
+ 'Tenant-Id': tenantId,
+ 'Dept-Id': website.switchMode ? deptId : '',
+ 'Role-Id': website.switchMode ? roleId : '',
+ 'Captcha-Key': key,
+ 'Captcha-Code': code,
+ },
+ params: {
+ tenantId,
+ username,
+ password,
+ grant_type: 'password',
+ scope: 'all',
+ type,
+ },
+ })
+}
// 用户登录接口
export const loginByUsername = (tenantId, deptId, roleId, username, password, type, key, code) => {
diff --git a/uniapps/work-app/src/api/work/index1.js b/uniapps/work-app/src/api/work/index1.js
index 29951c2..304174d 100644
--- a/uniapps/work-app/src/api/work/index1.js
+++ b/uniapps/work-app/src/api/work/index1.js
@@ -1,5 +1,5 @@
import { request } from "@/utils/requestGd/index.js"
-
+// 获取工单列表
export const getGdList = data => {
return request({
url: '/system/user/profile/update',
diff --git a/uniapps/work-app/src/config/env.js b/uniapps/work-app/src/config/env.js
index 336d15f..35e8593 100644
--- a/uniapps/work-app/src/config/env.js
+++ b/uniapps/work-app/src/config/env.js
@@ -15,6 +15,7 @@
VITE_APP_WEBVIEW_URL: 'https://wrj.shuixiongit.com/drone-app-web-view/#/webViewWrapper',
// VITE_APP_WEBVIEW_URL: 'https://192.168.1.157:5176/mobile-web-view/#/webViewWrapper',
VITE_API_BASE_URL: 'http://218.202.104.82:8200',
+ VITE_API_BASE_URL_GD: 'https://wrj.shuixiongit.com/api',
// VITE_API_BASE_URL: 'https://aisky.org.cn/api',
VITE_APP_WS_API_URL:'wss://wrj.shuixiongit.com/drone-wss/api/v1/ws',
diff --git a/uniapps/work-app/src/hooks/useGlobalWS.js b/uniapps/work-app/src/hooks/useGlobalWS.js
index 0210cb9..43c797c 100644
--- a/uniapps/work-app/src/hooks/useGlobalWS.js
+++ b/uniapps/work-app/src/hooks/useGlobalWS.js
@@ -14,7 +14,7 @@
// 消息处理
function messageHandler(payload) {
- console.log('🌐 全局WebSocket收到消息111111111111111111111:', payload)
+ // console.log('🌐 全局WebSocket收到消息111111111111111111111:', payload)
// 先尝试直接处理消息(适用于mobile-web-view的voiceCallDetail页面的消息格式)
const t = (payload.type || '').toString()
// const bizCode = payload.biz_code || ''
diff --git a/uniapps/work-app/src/pages/login/index.vue b/uniapps/work-app/src/pages/login/index.vue
index cdf88ae..3ed23b6 100644
--- a/uniapps/work-app/src/pages/login/index.vue
+++ b/uniapps/work-app/src/pages/login/index.vue
@@ -43,7 +43,7 @@
<script setup>
import { getAssetsImage } from "@/utils/index.js";
import md5 from "js-md5";
-import { loginByUsername } from "@/api/user/index.js";
+import { loginByUsername,ticketLoginInterfaceApi } from "@/api/user/index.js";
import { useUserStore, useLocationStore } from "@/store/index.js";
import locationUtil from "@/utils/location.js";
import websocketService from "@/utils/websocket.js";
@@ -86,8 +86,13 @@
url: '/subPackages/userDetail/password/index'
});
}
-
+const loginFormGd = ref({
+ username: "zhx",
+ password: "123456",
+});
async function submit() {
+ // 调用工单登录接口
+ await gdLogin();
if (!loginForm.value.username.trim()) {
uni.showToast({
title: "请输入用户名",
@@ -137,7 +142,7 @@
userInfo.key,
userInfo.code
);
- userStore.setUserInfo(res.data.data);
+ userStore.setUserInfo(res.data.data);
// 请求位置权限并初始化位置服务
try {
// 请求位置权限
@@ -152,7 +157,9 @@
} catch (error) {
console.error('处理位置服务失败:', error);
}
-
+
+
+
uni.reLaunch({
url: "/pages/work/index",
});
@@ -168,9 +175,50 @@
icon: "none",
duration: 2000,
});
+ // 即使原始登录失败,也尝试调用工单登录接口
+ await gdLogin();
}
}
-
+// 工单登录
+async function gdLogin() {
+ let userInfo = {
+ tenantId: "000000",
+ deptId: "",
+ roleId: "",
+ username: loginFormGd.value.username,
+ password: loginFormGd.value.password,
+ type: "account",
+ code: "",
+ key: "",
+ };
+ try {
+ const res = await ticketLoginInterfaceApi(
+ userInfo.tenantId,
+ userInfo.deptId,
+ userInfo.roleId,
+ userInfo.username,
+ md5(userInfo.password),
+ userInfo.type,
+ userInfo.key,
+ userInfo.code
+ );
+ console.log('工单登录',res)
+ // 存储工单token到用户信息中
+ if (res.data?.access_token) {
+ const currentUserInfo = userStore.$state.userInfo;
+ userStore.setUserInfo({
+ ...currentUserInfo,
+ gd_access_token: res.data.access_token
+ });
+ }
+ } catch (error) {
+ const errorMsg =
+ error.data?.error_description !== "Bad credentials"
+ ? error.data?.error_description
+ : "登录失败,请重试";
+ console.error('工单登录失败:', errorMsg);
+ }
+}
// 从本地存储加载记住的密码
onMounted(() => {
const savedUserInfo = uni.getStorageSync("rememberedUser");
diff --git a/uniapps/work-app/src/utils/requestGd/index.js b/uniapps/work-app/src/utils/requestGd/index.js
index afa8686..d61e30d 100644
--- a/uniapps/work-app/src/utils/requestGd/index.js
+++ b/uniapps/work-app/src/utils/requestGd/index.js
@@ -1,6 +1,9 @@
import Request from "uview-plus/libs/luch-request/index"
import configEnv from "@/config/env.js";
import {getEnvObj} from "@/utils/index.js";
+import { useUserStore } from "@/store/index.js";
+import website from '@/config/website';
+import Base64 from '@/utils/base64.js';
const http = new Request()
@@ -21,25 +24,24 @@
// 请求拦截器
function requestInterceptors(http) {
- http.interceptors.request.use((config) => {
- const {detail} = useUserStore().$state?.userInfo || {}
- // 假设有token值需要在头部需要携带
- let accessToken = useUserStore()?.$state?.userInfo?.access_token;
- if (accessToken) {
- // config.header['Blade-Auth'] = 'bearer ' + accessToken;
- config.header['authorization'] = accessToken;
- }
- // if (detail?.areaCode) {
- // config.header['areaCode'] = detail.areaCode
- // }
- // 安全请求header
- // config.header['Blade-Requested-With'] = 'BladeHttpRequest';
- // 客户端认证参数
- // config.header['Authorization'] = 'Basic ' + Base64.encode(website.clientId + ':' + website.clientSecret);
- return config
- }, config => { // 可使用async await 做异步操作
- return Promise.reject(config)
- })
+ http.interceptors.request.use((config) => {
+ const {detail} = useUserStore().$state?.userInfo || {}
+ // 假设有token值需要在头部需要携带
+ let accessToken = useUserStore()?.$state?.userInfo?.gd_access_token;
+ if (accessToken) {
+ config.header['Blade-Auth'] = 'bearer ' + accessToken;
+ }
+ if (detail?.areaCode) {
+ config.header['areaCode'] = detail.areaCode
+ }
+ // 安全请求header
+ config.header['Blade-Requested-With'] = 'BladeHttpRequest';
+ // 客户端认证参数
+ config.header['Authorization'] = 'Basic ' + Base64.encode(website.clientId + ':' + website.clientSecret);
+ return config
+ }, config => { // 可使用async await 做异步操作
+ return Promise.reject(config)
+ })
}
function responseInterceptors(http) {
@@ -72,7 +74,7 @@
export function setupRequest () {
http.setConfig(defaultConfig => {
/* defaultConfig 为默认全局配置 */
- defaultConfig.baseURL = getEnvObj().VITE_API_BASE_URL
+ defaultConfig.baseURL = getEnvObj().VITE_API_BASE_URL_GD
// #ifdef H5
if (import.meta.env.VITE_APP_PROXY === "true") {
defaultConfig.baseURL = import.meta.env.VITE_API_PREFIX
--
Gitblit v1.9.3