20260206
This commit is contained in:
parent
afcaaf104a
commit
3eb0641842
@ -1,6 +1,14 @@
|
||||
# ============ 生产环境部署必读(避免「本地可以、线上不行」)============
|
||||
# 1. 本文件必须真正生效:确认 oms.nanafa.com 的请求由「本 server 块」处理
|
||||
# - 若用 include:确保 include 的是含本 server 的 conf,且无其它 server 抢先匹配
|
||||
# - 更新后必须执行:nginx -t && nginx -s reload
|
||||
# 2. /api、/Track 由 nginx 代理到 api.nanafa.com,避免浏览器跨域 405;rbac 由前端直连 admin
|
||||
# 3. 使用 HTTP(listen 80);root 指向「包含 index.html 的目录」
|
||||
# ============================================================================
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name 10.1.20.6;
|
||||
listen 80; # HTTP
|
||||
server_name oms.nanafa.com 10.1.20.6;
|
||||
|
||||
# 启用gzip压缩
|
||||
gzip on;
|
||||
@ -16,35 +24,15 @@ server {
|
||||
# brotli_comp_level 6;
|
||||
# brotli_types text/plain text/css text/xml text/javascript application/javascript application/xml+rss application/json application/xml image/svg+xml;
|
||||
|
||||
# 启用 HTTP/2(如果使用 HTTPS)
|
||||
# listen 443 ssl http2;
|
||||
|
||||
# 静态文件根目录
|
||||
root /usr/share/nginx/html;
|
||||
|
||||
# ============ API 代理配置(放在最前面,使用 ^~ 提高优先级)============
|
||||
|
||||
# RBAC 权限管理服务代理
|
||||
location ^~ /rbac {
|
||||
proxy_pass http://43.139.210.35:5281;
|
||||
# ============ API 代理(同源请求,避免跨域 405)============
|
||||
location ^~ /api/ {
|
||||
rewrite ^/api/(.*)$ /itfx/$1 break;
|
||||
proxy_pass http://api.nanafa.com;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_connect_timeout 30s;
|
||||
proxy_send_timeout 30s;
|
||||
proxy_read_timeout 30s;
|
||||
proxy_buffering off;
|
||||
}
|
||||
|
||||
# trackApi 服务代理(使用 ^~ 确保优先匹配)
|
||||
location ^~ /api/trackApi {
|
||||
rewrite ^/api/trackApi(.*)$ $1 break;
|
||||
proxy_pass http://43.139.210.35:8889;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header Host api.nanafa.com;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
@ -52,17 +40,11 @@ server {
|
||||
proxy_send_timeout 30s;
|
||||
proxy_read_timeout 30s;
|
||||
}
|
||||
|
||||
# 排除前端路由路径,只代理真正的 API 请求
|
||||
# 前端路由路径(驼峰命名):upstreamInterface, downstreamInterface, upstreamInterfaceConfig,
|
||||
# upstreamInterfaceConfigEdit, appList, requestLog, callStatistics, apiDebugger 等
|
||||
# 使用负向前瞻正则,排除这些前端路由路径
|
||||
# 前端路由会继续往下走到 location /,由 try_files 返回 index.html(与 /track/ 路由一样)
|
||||
location ~ ^/api/(?!(trackApi|upstreamInterface|downstreamInterface|upstreamInterfaceConfig|upstreamInterfaceConfigEdit|appList|requestLog|callStatistics|apiDebugger)) {
|
||||
rewrite ^/api(.*)$ $1 break;
|
||||
proxy_pass http://43.139.210.35:8888;
|
||||
location ^~ /Track {
|
||||
rewrite ^/Track(.*)$ /track/Track$1 break;
|
||||
proxy_pass http://api.nanafa.com;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header Host api.nanafa.com;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
@ -102,17 +84,18 @@ server {
|
||||
}
|
||||
|
||||
# ============ SPA 前端路由(放在最后)============
|
||||
# 所有非文件请求都回落到 index.html,避免刷新/直接访问子路径 404
|
||||
|
||||
location / {
|
||||
index index.html;
|
||||
try_files $uri $uri/ /index.html;
|
||||
|
||||
# HTML 不缓存
|
||||
location ~* \.html?$ {
|
||||
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
||||
add_header Pragma "no-cache";
|
||||
add_header Expires "0";
|
||||
}
|
||||
}
|
||||
|
||||
# HTML 不缓存(单独 location 避免嵌套导致 fallback 异常)
|
||||
location = /index.html {
|
||||
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
||||
add_header Pragma "no-cache";
|
||||
add_header Expires "0";
|
||||
}
|
||||
|
||||
# 错误页面
|
||||
|
||||
@ -61,7 +61,7 @@ export default [
|
||||
serversPath: './src/api',
|
||||
requestLibPath: '@/utils/request',
|
||||
projectName: 'interface-Provider',
|
||||
apiPrefix: "'api/trackApi'",
|
||||
apiPrefix: "'Track'",
|
||||
},
|
||||
|
||||
// 轨迹状态
|
||||
@ -71,7 +71,7 @@ export default [
|
||||
serversPath: './src/api',
|
||||
requestLibPath: '@/utils/request',
|
||||
projectName: 'TrajectoryState',
|
||||
apiPrefix: "'api/trackApi'",
|
||||
apiPrefix: "'Track'",
|
||||
},
|
||||
|
||||
// 轨迹标志
|
||||
@ -82,7 +82,7 @@ export default [
|
||||
serversPath: './src/api',
|
||||
requestLibPath: '@/utils/request',
|
||||
projectName: 'TrajectoryFlag',
|
||||
apiPrefix: "'api/trackApi'",
|
||||
apiPrefix: "'Track'",
|
||||
},
|
||||
|
||||
{
|
||||
@ -91,7 +91,7 @@ export default [
|
||||
serversPath: './src/api',
|
||||
requestLibPath: '@/utils/request',
|
||||
projectName: 'TrajectoryContent',
|
||||
apiPrefix: "'api/trackApi'",
|
||||
apiPrefix: "'Track'",
|
||||
},
|
||||
|
||||
// 预警服务
|
||||
@ -102,7 +102,7 @@ export default [
|
||||
serversPath: './src/api',
|
||||
requestLibPath: '@/utils/request',
|
||||
projectName: 'WarningServices',
|
||||
apiPrefix: "'api/trackApi'",
|
||||
apiPrefix: "'Track'",
|
||||
},
|
||||
|
||||
// 轨迹订单
|
||||
@ -112,7 +112,7 @@ export default [
|
||||
serversPath: './src/api',
|
||||
requestLibPath: '@/utils/request',
|
||||
projectName: 'TrajectoryOrder',
|
||||
apiPrefix: "'api/trackApi'",
|
||||
apiPrefix: "'Track'",
|
||||
},
|
||||
|
||||
// 轨迹拉取
|
||||
@ -122,7 +122,7 @@ export default [
|
||||
serversPath: './src/api',
|
||||
requestLibPath: '@/utils/request',
|
||||
projectName: 'TrajectoryPull',
|
||||
apiPrefix: "'api/trackApi'",
|
||||
apiPrefix: "'Track'",
|
||||
},
|
||||
// 轨迹推送
|
||||
{
|
||||
@ -131,7 +131,7 @@ export default [
|
||||
serversPath: './src/api',
|
||||
requestLibPath: '@/utils/request',
|
||||
projectName: 'TrajectoryPush',
|
||||
apiPrefix: "'api/trackApi'",
|
||||
apiPrefix: "'Track'",
|
||||
},
|
||||
|
||||
// 提供接口
|
||||
@ -141,7 +141,7 @@ export default [
|
||||
serversPath: './src/api',
|
||||
requestLibPath: '@/utils/request',
|
||||
projectName: 'InterfaceMappingProvider',
|
||||
apiPrefix: "'api/trackApi'",
|
||||
apiPrefix: "'Track'",
|
||||
},
|
||||
|
||||
// 应用服务接口
|
||||
@ -151,7 +151,7 @@ export default [
|
||||
serversPath: './src/api',
|
||||
requestLibPath: '@/utils/request',
|
||||
projectName: 'ApplicationServicesProvider',
|
||||
apiPrefix: "'api/trackApi'",
|
||||
apiPrefix: "'Track'",
|
||||
},
|
||||
|
||||
{
|
||||
|
||||
@ -8,7 +8,7 @@ export async function postCleanCache(
|
||||
params: API.postCleanCacheParams,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/Dictionary/CleanCache`, {
|
||||
return request<any>(`Track/Dictionary/CleanCache`, {
|
||||
method: 'POST',
|
||||
params: {
|
||||
...params,
|
||||
@ -23,7 +23,7 @@ export async function getGetList(
|
||||
params: API.getGetListParams,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.EnumCacheEntry[]>(`api/trackApi/Dictionary/GetList`, {
|
||||
return request<API.EnumCacheEntry[]>(`Track/Dictionary/GetList`, {
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
|
||||
@ -7,7 +7,7 @@ export async function postOrderBatchUpsert(
|
||||
body: API.BatchUpsertOrderInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/ProviderService/Order/BatchUpsert`, {
|
||||
return request<any>(`Track/ProviderService/Order/BatchUpsert`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -22,7 +22,7 @@ export async function postOrderDelete(
|
||||
body: API.DeleteOrderInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.IdBaseDto>(`api/trackApi/ProviderService/Order/Delete`, {
|
||||
return request<API.IdBaseDto>(`Track/ProviderService/Order/Delete`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -37,7 +37,7 @@ export async function postOrderLink(
|
||||
body: API.LinkOrderInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/ProviderService/Order/Link`, {
|
||||
return request<any>(`Track/ProviderService/Order/Link`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -53,7 +53,7 @@ export async function postOrderUpdateOrderPullConfigs(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(
|
||||
`api/trackApi/ProviderService/Order/UpdateOrderPullConfigs`,
|
||||
`Track/ProviderService/Order/UpdateOrderPullConfigs`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -70,7 +70,7 @@ export async function postOrderUpsert(
|
||||
body: API.UpsertOrderInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.IdBaseDto>(`api/trackApi/ProviderService/Order/Upsert`, {
|
||||
return request<API.IdBaseDto>(`Track/ProviderService/Order/Upsert`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
|
||||
@ -7,7 +7,7 @@ export async function postTrackBatchDelete(
|
||||
body: API.BatchDeleteTrackInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/ProviderService/Track/BatchDelete`, {
|
||||
return request<any>(`Track/ProviderService/Track/BatchDelete`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -22,7 +22,7 @@ export async function postTrackBatchDeleteByEsId(
|
||||
body: API.BatchDeleteTrackByEsIdInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/ProviderService/Track/BatchDeleteByEsId`, {
|
||||
return request<any>(`Track/ProviderService/Track/BatchDeleteByEsId`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -37,7 +37,7 @@ export async function postTrackBatchUpsert(
|
||||
body: API.BatchUpsertTrackInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/ProviderService/Track/BatchUpsert`, {
|
||||
return request<any>(`Track/ProviderService/Track/BatchUpsert`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -52,7 +52,7 @@ export async function postTrackDelete(
|
||||
body: API.DeleteTrackInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/ProviderService/Track/Delete`, {
|
||||
return request<any>(`Track/ProviderService/Track/Delete`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -68,7 +68,7 @@ export async function postTrackQuery(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackOutput[]>(
|
||||
`api/trackApi/ProviderService/Track/Query`,
|
||||
`Track/ProviderService/Track/Query`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -86,7 +86,7 @@ export async function postTrackQueryV2(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackOutput[]>(
|
||||
`api/trackApi/ProviderService/Track/QueryV2`,
|
||||
`Track/ProviderService/Track/QueryV2`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -103,7 +103,7 @@ export async function postTrackUpsert(
|
||||
body: API.UpsertTrackInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/ProviderService/Track/Upsert`, {
|
||||
return request<any>(`Track/ProviderService/Track/Upsert`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
|
||||
@ -9,7 +9,7 @@ export async function postTrackGetTrackContents(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.TrackContentOutput[]>(
|
||||
`api/trackApi/ProviderService/Track/GetTrackContents`,
|
||||
`Track/ProviderService/Track/GetTrackContents`,
|
||||
{
|
||||
method: 'POST',
|
||||
params: {
|
||||
|
||||
@ -7,7 +7,7 @@ export async function postTrackRefresh(
|
||||
body: API.RefreshTrackInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<boolean>(`api/trackApi/ProviderService/Track/Refresh`, {
|
||||
return request<boolean>(`Track/ProviderService/Track/Refresh`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -23,7 +23,7 @@ export async function postTrackTrackRefreshEventTest(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<boolean>(
|
||||
`api/trackApi/ProviderService/Track/TrackRefreshEventTest`,
|
||||
`Track/ProviderService/Track/TrackRefreshEventTest`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
||||
@ -9,7 +9,7 @@ export async function getTrackGetTrackPushContentList(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.TrackPushContentDto[]>(
|
||||
`api/trackApi/ProviderService/Track/GetTrackPushContentList`,
|
||||
`Track/ProviderService/Track/GetTrackPushContentList`,
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
@ -27,7 +27,7 @@ export async function getTrackGetTrackPushRecords(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.TrackPushRecordOutput[]>(
|
||||
`api/trackApi/ProviderService/Track/GetTrackPushRecords`,
|
||||
`Track/ProviderService/Track/GetTrackPushRecords`,
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
@ -43,7 +43,7 @@ export async function postTrackPush(
|
||||
body: API.PushTrackInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/ProviderService/Track/Push`, {
|
||||
return request<any>(`Track/ProviderService/Track/Push`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -59,7 +59,7 @@ export async function postTrackQueryTrackPushRecords(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.TrackPushRecordOutput[]>(
|
||||
`api/trackApi/ProviderService/Track/QueryTrackPushRecords`,
|
||||
`Track/ProviderService/Track/QueryTrackPushRecords`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
||||
@ -8,7 +8,7 @@ export async function postTrackQueryTrackPullMappings(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.QueryTrackPullMappingsInfo[]>(
|
||||
`api/trackApi/ProviderService/Track/QueryTrackPullMappings`,
|
||||
`Track/ProviderService/Track/QueryTrackPullMappings`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
||||
@ -7,7 +7,7 @@ export async function postEdit(
|
||||
body: API.EditTrackContentInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/Track/Content/Edit`, {
|
||||
return request<any>(`Track/Track/Content/Edit`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -22,7 +22,7 @@ export async function postEditMap(
|
||||
body: API.EditTrackContentMapInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<boolean>(`api/trackApi/Track/Content/EditMap`, {
|
||||
return request<boolean>(`Track/Track/Content/EditMap`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -38,7 +38,7 @@ export async function postGetAvailableContent(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetAvailableContentOutput[]>(
|
||||
`api/trackApi/Track/Content/GetAvailableContent`,
|
||||
`Track/Track/Content/GetAvailableContent`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -56,7 +56,7 @@ export async function postGetContentDetail(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetContentDetailOutput>(
|
||||
`api/trackApi/Track/Content/GetContentDetail`,
|
||||
`Track/Track/Content/GetContentDetail`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -75,7 +75,7 @@ export async function getGetDetail(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackContentDetailDto>(
|
||||
`api/trackApi/Track/Content/GetDetail`,
|
||||
`Track/Track/Content/GetDetail`,
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
@ -92,7 +92,7 @@ export async function postGetList(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackContentListDtoPagedResult>(
|
||||
`api/trackApi/Track/Content/GetList`,
|
||||
`Track/Track/Content/GetList`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -111,7 +111,7 @@ export async function getGetMapDetail(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackContentMapDetailOutputVO>(
|
||||
`api/trackApi/Track/Content/GetMapDetail`,
|
||||
`Track/Track/Content/GetMapDetail`,
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
@ -128,7 +128,7 @@ export async function postGetMapPage(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackContentMapPageOutputVOPagedResult>(
|
||||
`api/trackApi/Track/Content/GetMapPage`,
|
||||
`Track/Track/Content/GetMapPage`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -146,7 +146,7 @@ export async function postGetTrackContentByCode(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackContentByCodeOutput>(
|
||||
`api/trackApi/Track/Content/GetTrackContentByCode`,
|
||||
`Track/Track/Content/GetTrackContentByCode`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
||||
@ -7,7 +7,7 @@ export async function postEdit(
|
||||
body: API.EditTrackFlagInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/Track/Flag/Edit`, {
|
||||
return request<any>(`Track/Track/Flag/Edit`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -24,7 +24,7 @@ export async function getGetDetail(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackFlagDetailDto>(
|
||||
`api/trackApi/Track/Flag/GetDetail`,
|
||||
`Track/Track/Flag/GetDetail`,
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
@ -41,7 +41,7 @@ export async function postGetList(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackFlagListDtoPagedResult>(
|
||||
`api/trackApi/Track/Flag/GetList`,
|
||||
`Track/Track/Flag/GetList`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
||||
@ -8,7 +8,7 @@ export async function postDeleteTrackById(
|
||||
params: API.postDeleteTrackByIdParams,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<boolean>(`api/trackApi/Track/Order/DeleteTrackById`, {
|
||||
return request<boolean>(`Track/Track/Order/DeleteTrackById`, {
|
||||
method: 'POST',
|
||||
params: {
|
||||
...params,
|
||||
@ -24,7 +24,7 @@ export async function postGetDetails(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.TrackOrderDetailDto[]>(
|
||||
`api/trackApi/Track/Order/GetDetails`,
|
||||
`Track/Track/Order/GetDetails`,
|
||||
{
|
||||
method: 'POST',
|
||||
params: {
|
||||
@ -41,7 +41,7 @@ export async function postGetDetailTimeline(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetDetailTimelineOutput[]>(
|
||||
`api/trackApi/Track/Order/GetDetailTimeline`,
|
||||
`Track/Track/Order/GetDetailTimeline`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -60,7 +60,7 @@ export async function getGetOrderOperationsById(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.OrderOperationRecordIndex[]>(
|
||||
`api/trackApi/Track/Order/GetOrderOperationsById`,
|
||||
`Track/Track/Order/GetOrderOperationsById`,
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
@ -77,7 +77,7 @@ export async function postGetTrackOrderList(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.TrackOrderDtoPagedResult>(
|
||||
`api/trackApi/Track/Order/GetTrackOrderList`,
|
||||
`Track/Track/Order/GetTrackOrderList`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -96,7 +96,7 @@ export async function getGetTrackPushRecords(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.TrackPushRecordOutput[]>(
|
||||
`api/trackApi/Track/Order/GetTrackPushRecords`,
|
||||
`Track/Track/Order/GetTrackPushRecords`,
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
@ -112,7 +112,7 @@ export async function postUpdateOrderStatus(
|
||||
body: API.UpdateOrderStatusInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<boolean>(`api/trackApi/Track/Order/UpdateOrderStatus`, {
|
||||
return request<boolean>(`Track/Track/Order/UpdateOrderStatus`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
|
||||
@ -7,7 +7,7 @@ export async function postEdit(
|
||||
body: API.EditTrackPullConfigInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<boolean>(`api/trackApi/Track/PullConfig/Edit`, {
|
||||
return request<boolean>(`Track/Track/PullConfig/Edit`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -22,7 +22,7 @@ export async function postEditContent(
|
||||
body: API.EditTrackPullContentInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<boolean>(`api/trackApi/Track/PullConfig/EditContent`, {
|
||||
return request<boolean>(`Track/Track/PullConfig/EditContent`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -39,7 +39,7 @@ export async function getGetContentDetail(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackPullContentDetailOutputVO>(
|
||||
`api/trackApi/Track/PullConfig/GetContentDetail`,
|
||||
`Track/Track/PullConfig/GetContentDetail`,
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
@ -56,7 +56,7 @@ export async function postGetContentPage(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackPullContentPageOutputVOPagedResult>(
|
||||
`api/trackApi/Track/PullConfig/GetContentPage`,
|
||||
`Track/Track/PullConfig/GetContentPage`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -75,7 +75,7 @@ export async function getGetDetail(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackPullConfigDetailOutputVO>(
|
||||
`api/trackApi/Track/PullConfig/GetDetail`,
|
||||
`Track/Track/PullConfig/GetDetail`,
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
@ -92,7 +92,7 @@ export async function postGetPage(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackPullConfigPageOutputVOPagedResult>(
|
||||
`api/trackApi/Track/PullConfig/GetPage`,
|
||||
`Track/Track/PullConfig/GetPage`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -110,7 +110,7 @@ export async function postGetPriorityPage(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackPullPriorityPageOutputVOPagedResult>(
|
||||
`api/trackApi/Track/PullConfig/GetPriorityPage`,
|
||||
`Track/Track/PullConfig/GetPriorityPage`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -129,7 +129,7 @@ export async function getGetPriorityDetail(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackPullPriorityDetailOutputVO>(
|
||||
`api/trackApi/Track/PullConfig/GetPriorityDetail`,
|
||||
`Track/Track/PullConfig/GetPriorityDetail`,
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
@ -145,7 +145,7 @@ export async function postEditPriority(
|
||||
body: API.EditTrackPullPriorityInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<boolean>(`api/trackApi/Track/PullConfig/EditPriority`, {
|
||||
return request<boolean>(`Track/Track/PullConfig/EditPriority`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
|
||||
@ -7,7 +7,7 @@ export async function postEdit(
|
||||
body: API.EditTrackPushConfigInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<string>(`api/trackApi/Track/PushConfig/Edit`, {
|
||||
return request<string>(`Track/Track/PushConfig/Edit`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -22,7 +22,7 @@ export async function postEditContent(
|
||||
body: API.EditTrackPushContentInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<boolean>(`api/trackApi/Track/PushConfig/EditContent`, {
|
||||
return request<boolean>(`Track/Track/PushConfig/EditContent`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -39,7 +39,7 @@ export async function getGetContentDetail(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackPushContentDetailOutputVO>(
|
||||
`api/trackApi/Track/PushConfig/GetContentDetail`,
|
||||
`Track/Track/PushConfig/GetContentDetail`,
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
@ -56,7 +56,7 @@ export async function postGetContentPage(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackPushContentPageOutputVOPagedResult>(
|
||||
`api/trackApi/Track/PushConfig/GetContentPage`,
|
||||
`Track/Track/PushConfig/GetContentPage`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -75,7 +75,7 @@ export async function getGetDetail(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackPushConfigDetailOutputVO>(
|
||||
`api/trackApi/Track/PushConfig/GetDetail`,
|
||||
`Track/Track/PushConfig/GetDetail`,
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
@ -92,7 +92,7 @@ export async function postGetPage(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackPushConfigPageOutputVOPagedResult>(
|
||||
`api/trackApi/Track/PushConfig/GetPage`,
|
||||
`Track/Track/PushConfig/GetPage`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -109,7 +109,7 @@ export async function postSortContent(
|
||||
body: API.SortTrackPushContentInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<boolean>(`api/trackApi/Track/PushConfig/SortContent`, {
|
||||
return request<boolean>(`Track/Track/PushConfig/SortContent`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
|
||||
@ -7,7 +7,7 @@ export async function postEdit(
|
||||
body: API.EditTrackStatusInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/Track/Status/Edit`, {
|
||||
return request<any>(`Track/Track/Status/Edit`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -24,7 +24,7 @@ export async function getGetDetail(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackStatusDetailDto>(
|
||||
`api/trackApi/Track/Status/GetDetail`,
|
||||
`Track/Track/Status/GetDetail`,
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
@ -41,7 +41,7 @@ export async function postGetList(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.GetTrackStatusListDtoPagedResult>(
|
||||
`api/trackApi/Track/Status/GetList`,
|
||||
`Track/Track/Status/GetList`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
||||
@ -8,7 +8,7 @@ export async function postWarningCompleteEditCompleteWarningRuleItem(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(
|
||||
`api/trackApi/Warning/Complete/EditCompleteWarningRuleItem`,
|
||||
`Track/Warning/Complete/EditCompleteWarningRuleItem`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -26,7 +26,7 @@ export async function postWarningCompleteGetCompleteWarningRuleItem(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.CompleteWarningRuleItemDto[]>(
|
||||
`api/trackApi/Warning/Complete/GetCompleteWarningRuleItem`,
|
||||
`Track/Warning/Complete/GetCompleteWarningRuleItem`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -44,7 +44,7 @@ export async function postWarningCompleteGetPageCompleteWarningDetails(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.CompleteWarningDetailsDtoPagedResult>(
|
||||
`api/trackApi/Warning/Complete/GetPageCompleteWarningDetails`,
|
||||
`Track/Warning/Complete/GetPageCompleteWarningDetails`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
||||
@ -8,7 +8,7 @@ export async function postForewarningServiceKpiAreaAddAreaInfo(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.IdBaseDto>(
|
||||
`api/trackApi/ForewarningService/KpiArea/AddAreaInfo`,
|
||||
`Track/ForewarningService/KpiArea/AddAreaInfo`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -26,7 +26,7 @@ export async function postForewarningServiceKpiAreaCreateKpiArea(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.IdBaseDto>(
|
||||
`api/trackApi/ForewarningService/KpiArea/CreateKpiArea`,
|
||||
`Track/ForewarningService/KpiArea/CreateKpiArea`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -44,7 +44,7 @@ export async function deleteForewarningServiceKpiAreaDeleteKpiArea(
|
||||
params: API.deleteForewarningServiceKpiAreaDeleteKpiAreaParams,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/ForewarningService/KpiArea/DeleteKpiArea`, {
|
||||
return request<any>(`Track/ForewarningService/KpiArea/DeleteKpiArea`, {
|
||||
method: 'DELETE',
|
||||
params: {
|
||||
...params,
|
||||
@ -60,7 +60,7 @@ export async function deleteForewarningServiceKpiAreaDeleteKpiAreaInfo(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(
|
||||
`api/trackApi/ForewarningService/KpiArea/DeleteKpiAreaInfo`,
|
||||
`Track/ForewarningService/KpiArea/DeleteKpiAreaInfo`,
|
||||
{
|
||||
method: 'DELETE',
|
||||
params: {
|
||||
@ -77,7 +77,7 @@ export async function postForewarningServiceKpiAreaGetKpiAreaInfos(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.RuleAreaInfoDtoPagedResult>(
|
||||
`api/trackApi/ForewarningService/KpiArea/GetKpiAreaInfos`,
|
||||
`Track/ForewarningService/KpiArea/GetKpiAreaInfos`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -95,7 +95,7 @@ export async function postForewarningServiceKpiAreaGetKpiAreas(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.AreaDtoPagedResult>(
|
||||
`api/trackApi/ForewarningService/KpiArea/GetKpiAreas`,
|
||||
`Track/ForewarningService/KpiArea/GetKpiAreas`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -112,7 +112,7 @@ export async function postForewarningServiceKpiAreaModifyKpiArea(
|
||||
body: API.UpdateRuleAreaRequest,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/ForewarningService/KpiArea/ModifyKpiArea`, {
|
||||
return request<any>(`Track/ForewarningService/KpiArea/ModifyKpiArea`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -128,7 +128,7 @@ export async function postForewarningServiceKpiAreaModifyKpiAreaInfo(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(
|
||||
`api/trackApi/ForewarningService/KpiArea/ModifyKpiAreaInfo`,
|
||||
`Track/ForewarningService/KpiArea/ModifyKpiAreaInfo`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
||||
@ -7,7 +7,7 @@ export async function postWarningReturnEditReturnWarningRuleItem(
|
||||
body: API.EditReturnWarningRuleItemInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/Warning/Return/EditReturnWarningRuleItem`, {
|
||||
return request<any>(`Track/Warning/Return/EditReturnWarningRuleItem`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -23,7 +23,7 @@ export async function postWarningReturnGetPageReturnWarningDetails(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.ReturnWarningDetailsDtoPagedResult>(
|
||||
`api/trackApi/Warning/Return/GetPageReturnWarningDetails`,
|
||||
`Track/Warning/Return/GetPageReturnWarningDetails`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -41,7 +41,7 @@ export async function postWarningReturnGetReturnMessageRecord(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.ReturnMessageRecordDto[]>(
|
||||
`api/trackApi/Warning/Return/GetReturnMessageRecord`,
|
||||
`Track/Warning/Return/GetReturnMessageRecord`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -59,7 +59,7 @@ export async function postWarningReturnGetReturnWarningRuleItem(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.ReturnWarningRuleItemDto[]>(
|
||||
`api/trackApi/Warning/Return/GetReturnWarningRuleItem`,
|
||||
`Track/Warning/Return/GetReturnWarningRuleItem`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -76,7 +76,7 @@ export async function postWarningReturnReturnPush(
|
||||
body: API.ReturnPushInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<string>(`api/trackApi/Warning/Return/ReturnPush`, {
|
||||
return request<string>(`Track/Warning/Return/ReturnPush`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
|
||||
@ -8,7 +8,7 @@ export async function postWarningTransportDeleteTransportWarningScene(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(
|
||||
`api/trackApi/Warning/Transport/DeleteTransportWarningScene`,
|
||||
`Track/Warning/Transport/DeleteTransportWarningScene`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -26,7 +26,7 @@ export async function postWarningTransportEditTransportWarningSceneRuleItem(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(
|
||||
`api/trackApi/Warning/Transport/EditTransportWarningSceneRuleItem`,
|
||||
`Track/Warning/Transport/EditTransportWarningSceneRuleItem`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -44,7 +44,7 @@ export async function postWarningTransportGetPageTransportWarningDetails(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.TransportWarningDetailsDtoPagedResult>(
|
||||
`api/trackApi/Warning/Transport/GetPageTransportWarningDetails`,
|
||||
`Track/Warning/Transport/GetPageTransportWarningDetails`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -62,7 +62,7 @@ export async function postWarningTransportGetTransportWarningScene(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.TransportWarningSceneDto[]>(
|
||||
`api/trackApi/Warning/Transport/GetTransportWarningScene`,
|
||||
`Track/Warning/Transport/GetTransportWarningScene`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -80,7 +80,7 @@ export async function postWarningTransportGetTransportWarningSceneRuleItem(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.TransportWarningSceneRuleItemDto[]>(
|
||||
`api/trackApi/Warning/Transport/GetTransportWarningSceneRuleItem`,
|
||||
`Track/Warning/Transport/GetTransportWarningSceneRuleItem`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -98,7 +98,7 @@ export async function postWarningTransportUpsertTransportWarningScene(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.IdBaseDto>(
|
||||
`api/trackApi/Warning/Transport/UpsertTransportWarningScene`,
|
||||
`Track/Warning/Transport/UpsertTransportWarningScene`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
||||
@ -7,7 +7,7 @@ export async function postWarningGetWarningRule(
|
||||
body: API.GetWarningRuleInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.WarningRuleDto[]>(`api/trackApi/Warning/GetWarningRule`, {
|
||||
return request<API.WarningRuleDto[]>(`Track/Warning/GetWarningRule`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -22,7 +22,7 @@ export async function postWarningUpdateEnabledStatus(
|
||||
body: API.UpdateEnabledStatusInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.IdBaseDto>(`api/trackApi/Warning/UpdateEnabledStatus`, {
|
||||
return request<API.IdBaseDto>(`Track/Warning/UpdateEnabledStatus`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -37,7 +37,7 @@ export async function postWarningUpsertWarningRule(
|
||||
body: API.UpsertWarningRuleInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.IdBaseDto>(`api/trackApi/Warning/UpsertWarningRule`, {
|
||||
return request<API.IdBaseDto>(`Track/Warning/UpsertWarningRule`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
|
||||
@ -8,7 +8,7 @@ export async function postWarningCompleteEditCompleteWarningRuleItem(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(
|
||||
`api/trackApi/Warning/Complete/EditCompleteWarningRuleItem`,
|
||||
`Track/Warning/Complete/EditCompleteWarningRuleItem`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -26,7 +26,7 @@ export async function postWarningCompleteGetCompleteWarningRuleItem(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.CompleteWarningRuleItemDto[]>(
|
||||
`api/trackApi/Warning/Complete/GetCompleteWarningRuleItem`,
|
||||
`Track/Warning/Complete/GetCompleteWarningRuleItem`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -44,7 +44,7 @@ export async function postWarningCompleteGetPageCompleteWarningDetails(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.CompleteWarningDetailsDtoPagedResult>(
|
||||
`api/trackApi/Warning/Complete/GetPageCompleteWarningDetails`,
|
||||
`Track/Warning/Complete/GetPageCompleteWarningDetails`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
||||
@ -8,7 +8,7 @@ export async function postForewarningServiceKpiAreaAddAreaInfo(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.IdBaseDto>(
|
||||
`api/trackApi/ForewarningService/KpiArea/AddAreaInfo`,
|
||||
`Track/ForewarningService/KpiArea/AddAreaInfo`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -26,7 +26,7 @@ export async function postForewarningServiceKpiAreaCreateKpiArea(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.IdBaseDto>(
|
||||
`api/trackApi/ForewarningService/KpiArea/CreateKpiArea`,
|
||||
`Track/ForewarningService/KpiArea/CreateKpiArea`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -44,7 +44,7 @@ export async function deleteForewarningServiceKpiAreaDeleteKpiArea(
|
||||
params: API.deleteForewarningServiceKpiAreaDeleteKpiAreaParams,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/ForewarningService/KpiArea/DeleteKpiArea`, {
|
||||
return request<any>(`Track/ForewarningService/KpiArea/DeleteKpiArea`, {
|
||||
method: 'DELETE',
|
||||
params: {
|
||||
...params,
|
||||
@ -60,7 +60,7 @@ export async function deleteForewarningServiceKpiAreaDeleteKpiAreaInfo(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(
|
||||
`api/trackApi/ForewarningService/KpiArea/DeleteKpiAreaInfo`,
|
||||
`Track/ForewarningService/KpiArea/DeleteKpiAreaInfo`,
|
||||
{
|
||||
method: 'DELETE',
|
||||
params: {
|
||||
@ -77,7 +77,7 @@ export async function postForewarningServiceKpiAreaGetKpiAreaInfos(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.RuleAreaInfoDtoPagedResult>(
|
||||
`api/trackApi/ForewarningService/KpiArea/GetKpiAreaInfos`,
|
||||
`Track/ForewarningService/KpiArea/GetKpiAreaInfos`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -95,7 +95,7 @@ export async function postForewarningServiceKpiAreaGetKpiAreas(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.AreaDtoPagedResult>(
|
||||
`api/trackApi/ForewarningService/KpiArea/GetKpiAreas`,
|
||||
`Track/ForewarningService/KpiArea/GetKpiAreas`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -112,7 +112,7 @@ export async function postForewarningServiceKpiAreaModifyKpiArea(
|
||||
body: API.UpdateRuleAreaRequest,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/ForewarningService/KpiArea/ModifyKpiArea`, {
|
||||
return request<any>(`Track/ForewarningService/KpiArea/ModifyKpiArea`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -128,7 +128,7 @@ export async function postForewarningServiceKpiAreaModifyKpiAreaInfo(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(
|
||||
`api/trackApi/ForewarningService/KpiArea/ModifyKpiAreaInfo`,
|
||||
`Track/ForewarningService/KpiArea/ModifyKpiAreaInfo`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
||||
@ -7,7 +7,7 @@ export async function postWarningReturnEditReturnWarningRuleItem(
|
||||
body: API.EditReturnWarningRuleItemInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(`api/trackApi/Warning/Return/EditReturnWarningRuleItem`, {
|
||||
return request<any>(`Track/Warning/Return/EditReturnWarningRuleItem`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -23,7 +23,7 @@ export async function postWarningReturnGetPageReturnWarningDetails(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.ReturnWarningDetailsDtoPagedResult>(
|
||||
`api/trackApi/Warning/Return/GetPageReturnWarningDetails`,
|
||||
`Track/Warning/Return/GetPageReturnWarningDetails`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -41,7 +41,7 @@ export async function postWarningReturnGetReturnMessageRecord(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.ReturnMessageRecordDto[]>(
|
||||
`api/trackApi/Warning/Return/GetReturnMessageRecord`,
|
||||
`Track/Warning/Return/GetReturnMessageRecord`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -59,7 +59,7 @@ export async function postWarningReturnGetReturnWarningRuleItem(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.ReturnWarningRuleItemDto[]>(
|
||||
`api/trackApi/Warning/Return/GetReturnWarningRuleItem`,
|
||||
`Track/Warning/Return/GetReturnWarningRuleItem`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -76,7 +76,7 @@ export async function postWarningReturnReturnPush(
|
||||
body: API.ReturnPushInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<string>(`api/trackApi/Warning/Return/ReturnPush`, {
|
||||
return request<string>(`Track/Warning/Return/ReturnPush`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
|
||||
@ -8,7 +8,7 @@ export async function postWarningTransportDeleteTransportWarningScene(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(
|
||||
`api/trackApi/Warning/Transport/DeleteTransportWarningScene`,
|
||||
`Track/Warning/Transport/DeleteTransportWarningScene`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -26,7 +26,7 @@ export async function postWarningTransportEditTransportWarningSceneRuleItem(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<any>(
|
||||
`api/trackApi/Warning/Transport/EditTransportWarningSceneRuleItem`,
|
||||
`Track/Warning/Transport/EditTransportWarningSceneRuleItem`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -44,7 +44,7 @@ export async function postWarningTransportGetPageTransportWarningDetails(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.TransportWarningDetailsDtoPagedResult>(
|
||||
`api/trackApi/Warning/Transport/GetPageTransportWarningDetails`,
|
||||
`Track/Warning/Transport/GetPageTransportWarningDetails`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -62,7 +62,7 @@ export async function postWarningTransportGetTransportWarningScene(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.TransportWarningSceneDto[]>(
|
||||
`api/trackApi/Warning/Transport/GetTransportWarningScene`,
|
||||
`Track/Warning/Transport/GetTransportWarningScene`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -80,7 +80,7 @@ export async function postWarningTransportGetTransportWarningSceneRuleItem(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.TransportWarningSceneRuleItemDto[]>(
|
||||
`api/trackApi/Warning/Transport/GetTransportWarningSceneRuleItem`,
|
||||
`Track/Warning/Transport/GetTransportWarningSceneRuleItem`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@ -98,7 +98,7 @@ export async function postWarningTransportUpsertTransportWarningScene(
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.IdBaseDto>(
|
||||
`api/trackApi/Warning/Transport/UpsertTransportWarningScene`,
|
||||
`Track/Warning/Transport/UpsertTransportWarningScene`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
|
||||
@ -7,7 +7,7 @@ export async function postWarningGetWarningRule(
|
||||
body: API.GetWarningRuleInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.WarningRuleDto[]>(`api/trackApi/Warning/GetWarningRule`, {
|
||||
return request<API.WarningRuleDto[]>(`Track/Warning/GetWarningRule`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -22,7 +22,7 @@ export async function postWarningUpdateEnabledStatus(
|
||||
body: API.UpdateEnabledStatusInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.IdBaseDto>(`api/trackApi/Warning/UpdateEnabledStatus`, {
|
||||
return request<API.IdBaseDto>(`Track/Warning/UpdateEnabledStatus`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
@ -37,7 +37,7 @@ export async function postWarningUpsertWarningRule(
|
||||
body: API.UpsertWarningRuleInput,
|
||||
options?: { [key: string]: any }
|
||||
) {
|
||||
return request<API.IdBaseDto>(`api/trackApi/Warning/UpsertWarningRule`, {
|
||||
return request<API.IdBaseDto>(`Track/Warning/UpsertWarningRule`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json-patch+json',
|
||||
|
||||
@ -5,9 +5,7 @@ import { OpenAPI, clearAuthToken } from './index'
|
||||
import { useRbacUserStore } from '@/store/modules/rbac-user'
|
||||
|
||||
// 创建自定义 axios 实例
|
||||
// 注意:baseURL 设置为空,因为 OpenAPI.BASE 已经处理了 URL 构建
|
||||
// 生产环境:OpenAPI.BASE = 'http://43.139.210.35:5281'
|
||||
// 开发环境:OpenAPI.BASE = ''(通过 Vite 代理)
|
||||
// baseURL 为空,URL 由 OpenAPI.BASE + path 构建;生产环境 OpenAPI.BASE = http://api.nanafa.com/admin
|
||||
export const axiosInstance = axios.create({
|
||||
baseURL: '', // 始终为空,URL 由 OpenAPI.BASE + path 构建
|
||||
timeout: 30000,
|
||||
|
||||
@ -10,19 +10,11 @@ export * from './generated'
|
||||
import { OpenAPI } from './generated/core/OpenAPI'
|
||||
import { axiosInstance } from './axios-config'
|
||||
|
||||
// 设置基础 URL
|
||||
// 生产环境和开发环境都使用相对路径,通过 nginx/Vite 代理转发
|
||||
// 生产环境:通过 nginx 代理 /rbac -> http://43.139.210.35:5281
|
||||
// 开发环境:通过 Vite 代理 /rbac -> http://43.139.210.35:5281
|
||||
OpenAPI.BASE = ''
|
||||
|
||||
// 调试信息
|
||||
// 设置基础 URL:生产直连 http://api.nanafa.com/admin,开发走 Vite 代理
|
||||
const isProduction = (import.meta as any).env?.MODE === 'production' || (import.meta as any).env?.PROD === true
|
||||
if (isProduction) {
|
||||
console.log('[RBAC Config] Production mode: BASE =', OpenAPI.BASE, '(using nginx proxy)')
|
||||
} else {
|
||||
console.log('[RBAC Config] Development mode: BASE =', OpenAPI.BASE, '(using Vite proxy)')
|
||||
}
|
||||
OpenAPI.BASE = isProduction
|
||||
? (import.meta.env.VITE_API_ADMIN_URL || 'http://api.nanafa.com/admin')
|
||||
: ''
|
||||
|
||||
// 认证 token 管理
|
||||
export function setAuthToken(token: string) {
|
||||
|
||||
@ -54,6 +54,8 @@
|
||||
actionColumnWidth?: number;
|
||||
// 是否显示复选框列
|
||||
showCheckboxColumn?: boolean;
|
||||
// 复选框列表头文案(空则表头为空)
|
||||
checkboxColumnHeader?: string;
|
||||
// 复选框变化回调
|
||||
onCheckboxChange?: (row: any, checked: boolean, rowIndex: number) => void;
|
||||
// 操作列渲染器
|
||||
@ -86,6 +88,7 @@
|
||||
actionColumnPosition: 'start',
|
||||
actionColumnWidth: 60,
|
||||
showCheckboxColumn: false,
|
||||
checkboxColumnHeader: '',
|
||||
readOnly: true,
|
||||
multiValueFields: () => [],
|
||||
height: undefined,
|
||||
@ -108,6 +111,7 @@
|
||||
}>();
|
||||
|
||||
const hotContainer = ref<HTMLElement | null>(null);
|
||||
const containerRef = ref<HTMLElement | null>(null);
|
||||
let hotInstance: Handsontable | null = null;
|
||||
|
||||
const selectedRows = ref<any[]>([]);
|
||||
@ -173,7 +177,7 @@
|
||||
// 复选框列
|
||||
if (props.showCheckboxColumn) {
|
||||
columns.push({ data: currentDataIndex, type: 'checkbox', readOnly: false, width: 60, className: 'htLeft' });
|
||||
headerTexts.push('');
|
||||
headerTexts.push(props.checkboxColumnHeader ?? '');
|
||||
currentDataIndex++;
|
||||
}
|
||||
|
||||
@ -266,6 +270,10 @@
|
||||
});
|
||||
|
||||
try {
|
||||
// 未传 height 时使用容器实际高度,使列表高度与容器一致
|
||||
const containerH = containerRef.value?.clientHeight ?? 0;
|
||||
const tableHeight = props.height ?? (containerH > 0 ? containerH : calculatedHeight.value);
|
||||
|
||||
const hotConfig: any = {
|
||||
data: data,
|
||||
columns: columns,
|
||||
@ -273,7 +281,7 @@
|
||||
rowHeaders: false,
|
||||
selectionMode: 'multiple',
|
||||
width: '100%',
|
||||
height: calculatedHeight.value,
|
||||
height: tableHeight,
|
||||
licenseKey: 'non-commercial-and-evaluation',
|
||||
className: 'ht-theme-classic',
|
||||
language: 'zh-CN',
|
||||
@ -1068,12 +1076,26 @@
|
||||
}
|
||||
};
|
||||
|
||||
// 容器尺寸变化时同步表格高度,使列表高度与容器一致
|
||||
let resizeObserver: ResizeObserver | null = null;
|
||||
const setupResizeObserver = () => {
|
||||
if (!containerRef.value) return;
|
||||
resizeObserver = new ResizeObserver((entries) => {
|
||||
const entry = entries[0];
|
||||
if (entry && hotInstance && entry.contentRect.height > 0) {
|
||||
hotInstance.updateSettings({ height: entry.contentRect.height });
|
||||
}
|
||||
});
|
||||
resizeObserver.observe(containerRef.value);
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
nextTick(() => {
|
||||
// 确保样式已加载后再初始化
|
||||
setTimeout(() => {
|
||||
initHandsontable();
|
||||
finalizeInit();
|
||||
setupResizeObserver();
|
||||
}, 200);
|
||||
});
|
||||
|
||||
@ -1085,6 +1107,12 @@
|
||||
});
|
||||
|
||||
onUnmounted(() => {
|
||||
if (resizeObserver && containerRef.value) {
|
||||
try {
|
||||
resizeObserver.unobserve(containerRef.value);
|
||||
} catch (_) {}
|
||||
resizeObserver = null;
|
||||
}
|
||||
// 停止定期刷新
|
||||
stopDimensionRefresh();
|
||||
|
||||
@ -1112,7 +1140,7 @@
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="handsontable-pro-container">
|
||||
<div ref="containerRef" class="handsontable-pro-container">
|
||||
<div ref="hotContainer" class="handsontable-wrapper ht-theme-classic"></div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
<b><i class="fa fa-user mr-2"></i>个人中心</b>
|
||||
</a-doption>
|
||||
<a-doption @click="() => onMenuClick({ key: 'settings' })">
|
||||
<b><i class="fa fa-cog mr-2"></i>主题 / 页面配置</b>
|
||||
<b><i class="fa fa-cog mr-2"></i>页面配置</b>
|
||||
</a-doption>
|
||||
<a-doption @click="() => onMenuClick({ key: 'logout' })">
|
||||
<b class="text-red-500"><i class="fa fa-sign-in mr-2"></i>退出登录</b>
|
||||
|
||||
@ -10,7 +10,6 @@ import router from '@/router';
|
||||
import { clearToken } from '@/utils/auth';
|
||||
import { useUserStore } from '@/store';
|
||||
|
||||
// 创建axios实例
|
||||
const service: AxiosInstance = axios.create({
|
||||
baseURL: '/',
|
||||
timeout: 10000, // 请求超时时间
|
||||
@ -22,7 +21,9 @@ const service: AxiosInstance = axios.create({
|
||||
// 请求拦截器
|
||||
service.interceptors.request.use(
|
||||
(config: AxiosRequestConfig) => {
|
||||
// 在发送请求之前做些什么
|
||||
config.headers = config.headers ?? {};
|
||||
// 生产:/api、/Track 走同源,由 nginx 代理到 api.nanafa.com,避免跨域 405;rbac 直连 admin
|
||||
// 开发:Vite 代理 /api、/Track、/rbac
|
||||
// 从 localStorage 获取 token
|
||||
const token = localStorage.getItem('token');
|
||||
if (token) {
|
||||
|
||||
@ -1854,11 +1854,41 @@
|
||||
|
||||
.header-actions {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
gap: 2px;
|
||||
flex-shrink: 0;
|
||||
margin-left: auto;
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
/* 下游接口中间容器:刷新、新增按钮无背景无框,黑色纯符号 */
|
||||
.middle-content.nav-panel .header-actions .action-icon-btn.refresh-btn {
|
||||
color: #000 !important;
|
||||
background-color: transparent !important;
|
||||
border-color: transparent !important;
|
||||
&:hover:not(:disabled) {
|
||||
color: #262626 !important;
|
||||
background-color: transparent !important;
|
||||
border-color: transparent !important;
|
||||
}
|
||||
&:disabled {
|
||||
color: #d9d9d9 !important;
|
||||
background-color: transparent !important;
|
||||
border-color: transparent !important;
|
||||
}
|
||||
}
|
||||
.middle-content.nav-panel .header-actions .action-icon-btn.add-btn {
|
||||
color: #000 !important;
|
||||
background-color: transparent !important;
|
||||
border-color: transparent !important;
|
||||
&:hover:not(:disabled) {
|
||||
color: #262626 !important;
|
||||
background-color: transparent !important;
|
||||
border-color: transparent !important;
|
||||
}
|
||||
&:disabled {
|
||||
color: #d9d9d9 !important;
|
||||
background-color: transparent !important;
|
||||
border-color: transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
.content-body {
|
||||
|
||||
@ -1686,23 +1686,24 @@ import { IconClose, IconEdit, IconPlus, IconSearch, IconMore, IconMinus, IconRef
|
||||
}
|
||||
|
||||
.mapping-search-box {
|
||||
flex: 1;
|
||||
flex: 1 1 calc(100% - 22px);
|
||||
padding: 0;
|
||||
margin-right: 8px;
|
||||
margin-right: 4px;
|
||||
box-sizing: border-box;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.mapping-search-box :deep(.arco-input-wrapper) {
|
||||
background: #fff !important;
|
||||
border: 1px solid var(--color-border-2) !important;
|
||||
border-radius: 4px !important;
|
||||
border-radius: 24px !important;
|
||||
height: auto !important;
|
||||
}
|
||||
|
||||
.mapping-search-box :deep(.arco-input) {
|
||||
background: #fff !important;
|
||||
border: none !important;
|
||||
border-radius: 4px !important;
|
||||
border-radius: 24px !important;
|
||||
color: var(--color-text-1) !important;
|
||||
height: auto !important;
|
||||
}
|
||||
@ -1863,19 +1864,40 @@ import { IconClose, IconEdit, IconPlus, IconSearch, IconMore, IconMinus, IconRef
|
||||
|
||||
.header-actions {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
gap: 0px;
|
||||
flex-shrink: 0;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
// 映射列表区域的刷新按钮改为灰色
|
||||
.middle-content.nav-panel .header-actions .refresh-btn {
|
||||
color: #8c8c8c !important;
|
||||
&:hover {
|
||||
color: #666 !important;
|
||||
|
||||
/* 映射列表区域:刷新、新增按钮为黑色纯符号(无背景无框),两按钮紧挨 */
|
||||
.middle-content.nav-panel .header-actions .action-icon-btn.refresh-btn {
|
||||
color: #000 !important;
|
||||
background-color: transparent !important;
|
||||
border-color: transparent !important;
|
||||
&:hover:not(:disabled) {
|
||||
color: #262626 !important;
|
||||
background-color: transparent !important;
|
||||
border-color: transparent !important;
|
||||
}
|
||||
&:disabled {
|
||||
color: #d9d9d9 !important;
|
||||
background-color: transparent !important;
|
||||
border-color: transparent !important;
|
||||
}
|
||||
}
|
||||
.middle-content.nav-panel .header-actions .action-icon-btn.add-btn {
|
||||
color: #000 !important;
|
||||
background-color: transparent !important;
|
||||
border-color: transparent !important;
|
||||
&:hover:not(:disabled) {
|
||||
color: #262626 !important;
|
||||
background-color: transparent !important;
|
||||
border-color: transparent !important;
|
||||
}
|
||||
&:disabled {
|
||||
color: #d9d9d9 !important;
|
||||
background-color: transparent !important;
|
||||
border-color: transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1361,28 +1361,29 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Handsontable 表格 -->
|
||||
<HandsontablePro
|
||||
ref="handsontableRef"
|
||||
:columns="columns"
|
||||
:data="processedTableData"
|
||||
:total="totalCount"
|
||||
:current-page="currentPage"
|
||||
:page-size="pageSize"
|
||||
:search-params="searchParams"
|
||||
:show-checkbox-column="true"
|
||||
:show-action-column="true"
|
||||
:action-column-position="'end'"
|
||||
:action-renderer="actionRenderer"
|
||||
:multi-value-fields="['orderNos']"
|
||||
:custom-cell-renderer="customCellRenderer"
|
||||
:read-only="false"
|
||||
@checkbox-change="handleCheckboxChange"
|
||||
@action-click="handleActionClick"
|
||||
@search="handleHeaderSearch"
|
||||
@selection-change="handleSelectionChange"
|
||||
/>
|
||||
|
||||
<!-- 列表区域:占满剩余高度,滚动条高度正确 -->
|
||||
<div class="list-wrap">
|
||||
<HandsontablePro
|
||||
ref="handsontableRef"
|
||||
:columns="columns"
|
||||
:data="processedTableData"
|
||||
:total="totalCount"
|
||||
:current-page="currentPage"
|
||||
:page-size="pageSize"
|
||||
:search-params="searchParams"
|
||||
:show-checkbox-column="false"
|
||||
:show-action-column="true"
|
||||
:action-column-position="'start'"
|
||||
:action-renderer="actionRenderer"
|
||||
:multi-value-fields="['orderNos']"
|
||||
:custom-cell-renderer="customCellRenderer"
|
||||
:read-only="false"
|
||||
@action-click="handleActionClick"
|
||||
@search="handleHeaderSearch"
|
||||
@selection-change="handleSelectionChange"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- 隐藏原始表格 -->
|
||||
<TablePro ref="tableRef" v-bind="tableProps" style="display: none;">
|
||||
@ -1523,11 +1524,12 @@
|
||||
</template>
|
||||
|
||||
<style scoped lang="less">
|
||||
/* 与左侧 tab 容器高度一致:填满 content-area(和 vertical-tabs 同高) */
|
||||
.xxx-container {
|
||||
padding: 16px;
|
||||
background-color: #fff;
|
||||
height: calc(100vh - 86px - 100px); // 减去导航栏和tab高度
|
||||
max-height: calc(100vh - 86px - 100px);
|
||||
height: 100%;
|
||||
min-height: 0;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
@ -1535,7 +1537,27 @@
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
/* 列表区域:占满工具栏下方剩余高度,滚动条高度与容器一致 */
|
||||
.list-wrap {
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.list-wrap :deep(.handsontable-pro-container) {
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.list-wrap :deep(.handsontable-wrapper) {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.table-toolbar {
|
||||
flex-shrink: 0;
|
||||
margin-bottom: 8px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
@ -177,7 +177,7 @@
|
||||
}
|
||||
|
||||
// 跳转页码
|
||||
const jumpPage = ref('1');
|
||||
const jumpPage = ref(1);
|
||||
function handleJumpPage() {
|
||||
const page = Number(jumpPage.value);
|
||||
if (page > 0 && page <= Math.ceil(totalCount.value / pageSize.value)) {
|
||||
@ -314,7 +314,7 @@
|
||||
|
||||
<template>
|
||||
<div class="xxx-container" style="background-color: #fff;">
|
||||
<!-- 表格操作按钮 -->
|
||||
<!-- 表格操作按钮和分页控制(与运输时效 tab 一致) -->
|
||||
<div class="table-toolbar">
|
||||
<div class="toolbar-left">
|
||||
<div class="custom-buttons">
|
||||
@ -329,26 +329,28 @@
|
||||
</div>
|
||||
<div class="toolbar-right">
|
||||
<div class="pagination-controls">
|
||||
<span class="total-records">共{{ totalCount }}条记录</span>
|
||||
<a-button
|
||||
size="small"
|
||||
:disabled="currentPage <= 1"
|
||||
<span class="total-records">共 {{ totalCount }} 条记录</span>
|
||||
<a-button
|
||||
type="text"
|
||||
size="small"
|
||||
:disabled="currentPage === 1"
|
||||
@click="handlePageChange(currentPage - 1)"
|
||||
>
|
||||
<
|
||||
上一页
|
||||
</a-button>
|
||||
<span class="current-page">{{ currentPage }}</span>
|
||||
<a-button
|
||||
size="small"
|
||||
:disabled="currentPage >= Math.ceil(totalCount / pageSize)"
|
||||
<a-button
|
||||
type="text"
|
||||
size="small"
|
||||
:disabled="currentPage * pageSize >= totalCount"
|
||||
@click="handlePageChange(currentPage + 1)"
|
||||
>
|
||||
>
|
||||
下一页
|
||||
</a-button>
|
||||
<a-select
|
||||
v-model="pageSize"
|
||||
size="small"
|
||||
class="page-size-select"
|
||||
:style="{ width: '110px' }"
|
||||
@change="handlePageSizeChange"
|
||||
>
|
||||
<a-option :value="300">300</a-option>
|
||||
@ -358,33 +360,35 @@
|
||||
</a-select>
|
||||
<span class="page-size-text">条/页</span>
|
||||
<span class="go-to-text">前往</span>
|
||||
<a-input
|
||||
<a-input-number
|
||||
v-model="jumpPage"
|
||||
size="small"
|
||||
class="jump-input"
|
||||
:style="{ width: '60px' }"
|
||||
@keyup.enter="handleJumpPage"
|
||||
/>
|
||||
<span class="page-text">页</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Handsontable 表格 -->
|
||||
<HandsontablePro
|
||||
ref="handsontableRef"
|
||||
:columns="columns"
|
||||
:data="processedTableData"
|
||||
:total="totalCount"
|
||||
:current-page="currentPage"
|
||||
:page-size="pageSize"
|
||||
:search-params="searchParams"
|
||||
:show-action-column="true"
|
||||
:multi-value-fields="['orderNos']"
|
||||
:custom-cell-renderer="customCellRenderer"
|
||||
@action-click="onViewPushRecord"
|
||||
@search="handleHeaderSearch"
|
||||
@selection-change="handleSelectionChange"
|
||||
/>
|
||||
|
||||
<!-- 列表区域:占满剩余高度,滚动条高度正确 -->
|
||||
<div class="list-wrap">
|
||||
<HandsontablePro
|
||||
ref="handsontableRef"
|
||||
:columns="columns"
|
||||
:data="processedTableData"
|
||||
:total="totalCount"
|
||||
:current-page="currentPage"
|
||||
:page-size="pageSize"
|
||||
:search-params="searchParams"
|
||||
:show-action-column="true"
|
||||
:multi-value-fields="['orderNos']"
|
||||
:custom-cell-renderer="customCellRenderer"
|
||||
@action-click="onViewPushRecord"
|
||||
@search="handleHeaderSearch"
|
||||
@selection-change="handleSelectionChange"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- 隐藏原始表格 -->
|
||||
<TablePro ref="tableRef" v-bind="tableProps" style="display: none;">
|
||||
@ -428,144 +432,149 @@
|
||||
</template>
|
||||
|
||||
<style scoped lang="less">
|
||||
/* 与左侧 tab 容器高度一致:填满 content-area(和 vertical-tabs 同高) */
|
||||
.xxx-container {
|
||||
padding: 0;
|
||||
padding: 16px;
|
||||
background-color: #fff;
|
||||
height: 100%;
|
||||
min-height: 0;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
|
||||
/* 列表区域:占满工具栏下方剩余高度,滚动条高度与容器一致 */
|
||||
.list-wrap {
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.list-wrap :deep(.handsontable-pro-container) {
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.list-wrap :deep(.handsontable-wrapper) {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.table-toolbar {
|
||||
flex-shrink: 0;
|
||||
margin-bottom: 8px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.toolbar-left {
|
||||
flex: 1;
|
||||
|
||||
.custom-buttons {
|
||||
display: flex;
|
||||
gap: 12px;
|
||||
align-items: center;
|
||||
|
||||
.arco-btn {
|
||||
border-radius: 20px;
|
||||
font-weight: 500;
|
||||
transition: all 0.3s ease;
|
||||
border: 2px solid;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
padding: 8px 16px;
|
||||
height: auto;
|
||||
|
||||
// 所有按钮 - 深青色
|
||||
&.btn-push {
|
||||
background: var(--app-primary-color);
|
||||
border-color: var(--app-primary-color);
|
||||
color: #ffffff;
|
||||
|
||||
&:hover:not(:disabled) {
|
||||
background: #2A7F7F;
|
||||
border-color: #2A7F7F;
|
||||
}
|
||||
|
||||
&:active:not(:disabled) {
|
||||
background: #257272;
|
||||
border-color: #257272;
|
||||
}
|
||||
}
|
||||
|
||||
// 禁用状态
|
||||
&:disabled {
|
||||
opacity: 1;
|
||||
cursor: not-allowed;
|
||||
background: rgba(169, 169, 169, 0.8) !important;
|
||||
border-color: rgba(169, 169, 169, 0.8) !important;
|
||||
color: #ffffff !important;
|
||||
transform: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.toolbar-right {
|
||||
.pagination-controls {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
white-space: nowrap;
|
||||
flex-wrap: nowrap;
|
||||
|
||||
.total-records,
|
||||
.go-to-text,
|
||||
.page-size-text,
|
||||
.page-text {
|
||||
font-size: 12px;
|
||||
color: #4e5969;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.current-page {
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
color: #1d2129;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.arco-btn-size-small {
|
||||
padding: 0 8px;
|
||||
height: 24px;
|
||||
min-width: 24px;
|
||||
border-radius: 4px;
|
||||
color: #4e5969;
|
||||
border: 1px solid #e5e6eb;
|
||||
background-color: #fff;
|
||||
|
||||
&:hover {
|
||||
background-color: #f2f3f5;
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
cursor: not-allowed;
|
||||
opacity: 0.6;
|
||||
}
|
||||
}
|
||||
|
||||
.arco-select-size-small {
|
||||
.arco-select-view {
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.arco-input-size-small {
|
||||
.arco-input-wrapper {
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.toolbar-left {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.page-size-select {
|
||||
width: 110px;
|
||||
}
|
||||
|
||||
.jump-input {
|
||||
width: 60px;
|
||||
.custom-buttons {
|
||||
display: flex;
|
||||
gap: 12px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
// 表格滚动面板样式
|
||||
.table-toolbar .arco-btn {
|
||||
border-radius: 20px;
|
||||
font-weight: 500;
|
||||
transition: all 0.3s ease;
|
||||
border: 2px solid;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
padding: 8px 16px;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.table-toolbar .arco-btn.btn-push {
|
||||
background: var(--app-primary-color);
|
||||
border-color: var(--app-primary-color);
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.table-toolbar .arco-btn.btn-push:hover:not(:disabled) {
|
||||
background: #2A7F7F;
|
||||
border-color: #2A7F7F;
|
||||
}
|
||||
|
||||
.table-toolbar .arco-btn.btn-push:active:not(:disabled) {
|
||||
background: #257272;
|
||||
border-color: #257272;
|
||||
}
|
||||
|
||||
.table-toolbar .arco-btn:disabled {
|
||||
opacity: 1;
|
||||
cursor: not-allowed;
|
||||
background: rgba(169, 169, 169, 0.8) !important;
|
||||
border-color: rgba(169, 169, 169, 0.8) !important;
|
||||
color: #ffffff !important;
|
||||
transform: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
.toolbar-right .pagination-controls {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
white-space: nowrap;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.toolbar-right .total-records,
|
||||
.toolbar-right .go-to-text,
|
||||
.toolbar-right .page-size-text,
|
||||
.toolbar-right .page-text {
|
||||
font-size: 12px;
|
||||
color: #4e5969;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.toolbar-right .current-page {
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
color: #1d2129;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.toolbar-right .arco-btn-size-small {
|
||||
padding: 0 8px;
|
||||
height: 24px;
|
||||
min-width: 24px;
|
||||
border-radius: 4px;
|
||||
color: #4e5969;
|
||||
border: 1px solid #e5e6eb;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.toolbar-right .arco-btn-size-small:hover {
|
||||
background-color: #f2f3f5;
|
||||
}
|
||||
|
||||
.toolbar-right .arco-btn-size-small:disabled {
|
||||
cursor: not-allowed;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.toolbar-right .arco-select-size-small .arco-select-view {
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.toolbar-right .arco-input-number-size-small .arco-input-wrapper {
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
// 表格滚动面板样式(历史保留)
|
||||
.table-wrapper {
|
||||
border: 1px solid #e5e6eb;
|
||||
border-radius: 4px;
|
||||
|
||||
@ -433,23 +433,25 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Handsontable 表格 -->
|
||||
<HandsontablePro
|
||||
ref="handsontableRef"
|
||||
:columns="columns"
|
||||
:data="processedTableData"
|
||||
:total="totalCount"
|
||||
:current-page="currentPage"
|
||||
:page-size="pageSize"
|
||||
:search-params="searchParams"
|
||||
:show-action-column="true"
|
||||
:multi-value-fields="['orderNos']"
|
||||
:custom-cell-renderer="customCellRenderer"
|
||||
@action-click="() => {}"
|
||||
@search="handleHeaderSearch"
|
||||
@selection-change="handleSelectionChange"
|
||||
/>
|
||||
|
||||
<!-- 列表区域:占满剩余高度,滚动条高度正确 -->
|
||||
<div class="list-wrap">
|
||||
<HandsontablePro
|
||||
ref="handsontableRef"
|
||||
:columns="columns"
|
||||
:data="processedTableData"
|
||||
:total="totalCount"
|
||||
:current-page="currentPage"
|
||||
:page-size="pageSize"
|
||||
:search-params="searchParams"
|
||||
:show-action-column="true"
|
||||
:multi-value-fields="['orderNos']"
|
||||
:custom-cell-renderer="customCellRenderer"
|
||||
@action-click="() => {}"
|
||||
@search="handleHeaderSearch"
|
||||
@selection-change="handleSelectionChange"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- 隐藏原始表格 -->
|
||||
<TablePro ref="tableRef" v-bind="tableProps" style="display: none;">
|
||||
@ -515,11 +517,12 @@
|
||||
</template>
|
||||
|
||||
<style scoped lang="less">
|
||||
/* 与左侧 tab 容器高度一致:填满 content-area(和 vertical-tabs 同高) */
|
||||
.xxx-container {
|
||||
padding: 16px;
|
||||
background-color: #fff;
|
||||
height: calc(100vh - 86px - 100px); // 减去导航栏和tab高度
|
||||
max-height: calc(100vh - 86px - 100px);
|
||||
height: 100%;
|
||||
min-height: 0;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
@ -527,7 +530,27 @@
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
/* 列表区域:占满工具栏下方剩余高度,滚动条高度与容器一致 */
|
||||
.list-wrap {
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.list-wrap :deep(.handsontable-pro-container) {
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.list-wrap :deep(.handsontable-wrapper) {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.table-toolbar {
|
||||
flex-shrink: 0;
|
||||
margin-bottom: 8px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
@ -105,6 +105,7 @@
|
||||
.content-area {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
@ -19,10 +19,9 @@ export default defineConfig({
|
||||
// 添加中间件,在代理之前拦截前端路由
|
||||
middlewareMode: false,
|
||||
proxy: {
|
||||
// RBAC 权限管理服务代理 - http://43.139.210.35:5281
|
||||
// 注意:后端 API 路径包含 /rbac 前缀,所以不需要 rewrite
|
||||
// 权限(admin)43.139.210.35:5281 -> http://api.nanafa.com/admin(路径保持 /rbac/xxx -> .../admin/rbac/xxx)
|
||||
'/rbac': {
|
||||
target: 'http://43.139.210.35:5281',
|
||||
target: 'http://api.nanafa.com/admin',
|
||||
changeOrigin: true,
|
||||
secure: false,
|
||||
configure: (proxy, options) => {
|
||||
@ -39,34 +38,27 @@ export default defineConfig({
|
||||
});
|
||||
},
|
||||
},
|
||||
// 对应 nginx: location /api/trackApi -> http://43.139.210.35:8889
|
||||
'/api/trackApi': {
|
||||
target: 'http://43.139.210.35:8889',
|
||||
// 轨迹(track)43.139.210.35:8889 -> http://api.nanafa.com/track,路径与 rbac、api 一致:/Track/xxx
|
||||
'/Track': {
|
||||
target: 'http://api.nanafa.com',
|
||||
changeOrigin: true,
|
||||
rewrite: (path) => path.replace(/^\/api\/trackApi/, ''),
|
||||
|
||||
rewrite: (path) => '/track' + path,
|
||||
configure: (proxy, options) => {
|
||||
proxy.on('error', (err, req, res) => {
|
||||
console.log('proxy error', err);
|
||||
});
|
||||
proxy.on('proxyReq', (proxyReq, req, res) => {
|
||||
console.log('[trackApi-8889] Sending Request to the Target:', req.method, req.url);
|
||||
console.log('[Track] Sending Request:', req.method, req.url);
|
||||
});
|
||||
proxy.on('proxyRes', (proxyRes, req, res) => {
|
||||
console.log(
|
||||
'[trackApi-8889] Received Response from the Target:',
|
||||
proxyRes.statusCode,
|
||||
req.url
|
||||
);
|
||||
console.log('[Track] Received Response:', proxyRes.statusCode, req.url);
|
||||
});
|
||||
},
|
||||
},
|
||||
// 对应 nginx: location /api -> http://43.139.210.35:8888
|
||||
// API(itfx)43.139.210.35:8888 -> http://api.nanafa.com/itfx
|
||||
// 使用正则表达式匹配,排除前端路由路径
|
||||
// 只代理真正的 API 请求,不代理前端路由
|
||||
// 排除所有驼峰命名的前端路由(包含大写字母的路径)
|
||||
'^/api/(?!upstreamInterface|upstreamInterfaceConfig|upstreamInterfaceConfigEdit|downstreamInterface|downstreamInterface/newPort|appList|appList/createApplication|requestLog|callStatistics|apiDebugger|trackApi)': {
|
||||
target: 'http://43.139.210.35:8888',
|
||||
target: 'http://api.nanafa.com/itfx',
|
||||
changeOrigin: true,
|
||||
rewrite: (path) => path.replace(/^\/api/, ''),
|
||||
timeout: 30000,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user