From c775855ae8e84b83c07f28bc720d0fc049ec9140 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Thu, 22 Jan 2026 19:42:46 +0800
Subject: [PATCH] feat: zkxt api
---
applications/task-work-order/env/.env | 3 +
applications/task-work-order/src/api/zkxt/index.js | 9 +++
applications/task-work-order/vite.config.mjs | 10 ++
applications/task-work-order/src/App.vue | 11 +++
applications/task-work-order/src/axiosXT.js | 73 ++++++++++++++++++++++++
applications/task-work-order/src/axios.js | 18 ------
applications/task-work-order/env/.env.development | 8 +-
7 files changed, 109 insertions(+), 23 deletions(-)
diff --git a/applications/task-work-order/env/.env b/applications/task-work-order/env/.env
index f541bd6..5204ccb 100644
--- a/applications/task-work-order/env/.env
+++ b/applications/task-work-order/env/.env
@@ -1,6 +1,9 @@
#接口地址
VITE_APP_API=/api
+#接口地址-xt
+VITE_APP_API_XT=/apiXT
+
#页面基础路径
VITE_APP_BASE=/task-work-order
diff --git a/applications/task-work-order/env/.env.development b/applications/task-work-order/env/.env.development
index 9155aea..40d319b 100644
--- a/applications/task-work-order/env/.env.development
+++ b/applications/task-work-order/env/.env.development
@@ -4,10 +4,10 @@
# @LastEditors : yuan
# @LastEditTime : 2026-01-16 11:02:24
# @FilePath : \applications\task-work-order\env\.env.development
- # @Description :
- # Copyright 2026 OBKoro1, All Rights Reserved.
+ # @Description :
+ # Copyright 2026 OBKoro1, All Rights Reserved.
# 2026-01-07 14:58:30
-###
+###
NODE_ENV = 'development'
#开发环境配置
@@ -17,6 +17,8 @@
# VITE_APP_URL = https://wrj.shuixiongit.com/api
VITE_APP_URL= http://192.168.1.204
+VITE_APP_URL_XT=http://218.202.104.82:8200
+
#新大屏地址
VITE_APP_DASHBOARD_URL = 'https://wrj.shuixiongit.com/command-center-dashboard/'
diff --git a/applications/task-work-order/src/App.vue b/applications/task-work-order/src/App.vue
index f0ae601..50a0be4 100644
--- a/applications/task-work-order/src/App.vue
+++ b/applications/task-work-order/src/App.vue
@@ -3,7 +3,18 @@
</template>
<script setup>
+import { loginWithMiniProgramApi } from '@/api/zkxt'
+
+function getToken() {
+ loginWithMiniProgramApi({username: 'admin'}).then(res => {
+ console.log(res)
+ })
+}
+getToken()
+setInterval(() => {
+ getToken()
+}, 600000)
</script>
<style>
diff --git a/applications/task-work-order/src/api/zkxt/index.js b/applications/task-work-order/src/api/zkxt/index.js
new file mode 100644
index 0000000..b8b1570
--- /dev/null
+++ b/applications/task-work-order/src/api/zkxt/index.js
@@ -0,0 +1,9 @@
+import request from '@/axiosXT'
+
+export const loginWithMiniProgramApi = (data) => {
+ return request({
+ url: `/auth/loginWithMiniProgram`,
+ method: 'post',
+ data,
+ })
+}
diff --git a/applications/task-work-order/src/axios.js b/applications/task-work-order/src/axios.js
index 1c5d52c..eb97e97 100644
--- a/applications/task-work-order/src/axios.js
+++ b/applications/task-work-order/src/axios.js
@@ -52,24 +52,6 @@
if (!authorization) {
config.headers['Authorization'] = `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`
}
- // 后端的要求
- if (router.currentRoute.value.path === '/job/jobstatistics') {
- const userAreaCode = store?.state?.user?.userInfo?.detail?.areaCode
- const paramsKey = config.method === 'get' ? 'params' : 'data'
- const codeKey = config.method === 'get' ? 'areaCode' : 'area_code'
- const paramCode = config?.params?.areaCode || config?.data?.area_code
- try {
- if (paramCode) {
- if (paramCode === userAreaCode) {
- config[paramsKey][codeKey] = config.method === 'get' ? '' : undefined
- } else {
- if (!Array.isArray(config[paramsKey])) {
- config[paramsKey] = { ...config[paramsKey], [codeKey]: paramCode }
- }
- }
- }
- } catch (e) {}
- }
//headers判断请求是否携带token
const meta = config.meta || {}
diff --git a/applications/task-work-order/src/axiosXT.js b/applications/task-work-order/src/axiosXT.js
new file mode 100644
index 0000000..edc95df
--- /dev/null
+++ b/applications/task-work-order/src/axiosXT.js
@@ -0,0 +1,73 @@
+import axios from 'axios'
+import store from '@/store/'
+import { serialize } from '@/utils/util'
+import { getToken, removeToken, removeRefreshToken } from '@/utils/auth'
+import { isURL, validatenull } from '@/utils/validate'
+import { ElMessage } from 'element-plus'
+import website from '@/config/website'
+import { Base64 } from 'js-base64'
+import { baseUrl } from '@/config/env'
+import crypto from '@/utils/crypto'
+// 全局未授权错误提示状态,只提示一次
+const { VITE_APP_API_XT } = import.meta.env
+
+// 创建作用域的 axios 实例
+const serviceXT = axios.create({
+ // 超时时间设置为10分钟,部分接口上传比较慢,如固件上传
+ timeout: 600000,
+ baseURL: VITE_APP_API_XT,
+ //返回其他状态码
+ validateStatus: function (status) {
+ return status >= 200 && status <= 500 // 默认的
+ },
+ //跨域请求,允许保存cookie
+ withCredentials: true,
+})
+
+//http request拦截
+serviceXT.interceptors.request.use(
+ config => {
+ //headers判断是否需要
+ const authorization = config.authorization === false
+ if (!authorization) {
+ config.headers['Authorization'] = `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`
+ }
+ const meta = config.meta || {}
+
+ //headers中配置text请求
+ if (config.text === true) {
+ config.headers['Content-Type'] = 'text/plain'
+ }
+ //headers中配置serialize为true开启序列化
+ if (config.method === 'post' && meta.isSerialize === true) {
+ config.data = serialize(config.data)
+ }
+ return config
+ },
+ error => {
+ return Promise.reject(error)
+ }
+)
+//http response拦截
+serviceXT.interceptors.response.use(
+ res => {
+ const status = res.data.error_code || res.data.code || res.status
+ const statusWhiteList = website.statusWhiteList || []
+ const message = res?.data?.msg || res?.data?.message || '系统错误'
+ //如果在白名单里则自行catch逻辑处理
+ if (statusWhiteList.includes(status)) return Promise.reject(res)
+ // 如果请求为非200默认统一处理
+ if (status !== 200 && status !== 0) {
+ ElMessage({
+ message: message,
+ type: 'error',
+ })
+ return Promise.reject(new Error(message))
+ }
+ return res
+ },
+ error => {
+ return Promise.reject(new Error(error))
+ }
+)
+export default serviceXT
diff --git a/applications/task-work-order/vite.config.mjs b/applications/task-work-order/vite.config.mjs
index f29b570..831ff6c 100644
--- a/applications/task-work-order/vite.config.mjs
+++ b/applications/task-work-order/vite.config.mjs
@@ -6,7 +6,7 @@
// https://vitejs.dev/config/
export default ({ mode, command }) => {
const env = loadEnv(mode, fileURLToPath(new URL("./env", import.meta.url)))
- const { VITE_APP_ENV, VITE_APP_BASE, VITE_APP_URL } = env
+ const { VITE_APP_ENV, VITE_APP_BASE, VITE_APP_URL,VITE_APP_API_XT,VITE_APP_URL_XT } = env
// 判断是打生产环境包
const isProd = VITE_APP_ENV === 'production'
@@ -41,11 +41,17 @@
port: 5178,
// host: '192.168.1.178',
proxy: {
+ '/apiXT': {
+ target: VITE_APP_URL_XT,
+ changeOrigin: true,
+ rewrite: path => path.replace(/^\/apiXT/, ''),
+ },
'/api': {
target: VITE_APP_URL,
changeOrigin: true,
rewrite: path => path.replace(/^\/api/, ''),
- }
+ },
+
},
},
assetsInclude: ['**/*.gltf','**/*.docx','**/*.pdf'],
--
Gitblit v1.9.3