update
This commit is contained in:
parent
133e129f34
commit
d58b95e1f5
3697
package-lock.json
generated
Normal file
3697
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -14,6 +14,7 @@
|
||||
"axios": "^1.7.7",
|
||||
"echarts": "^5.5.1",
|
||||
"element-plus": "^2.8.8",
|
||||
"marked": "^15.0.6",
|
||||
"moment": "^2.30.1",
|
||||
"pinia": "^2.2.6",
|
||||
"rollup": "^4.27.3",
|
||||
|
||||
@ -64,6 +64,33 @@
|
||||
background: rgba(27, 27, 27, 0.51);
|
||||
border-radius: 4px;
|
||||
padding: 8px 12px;
|
||||
|
||||
.deepseekContent{
|
||||
div {
|
||||
line-height: 1.6;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #2c3e50;
|
||||
}
|
||||
|
||||
strong {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
li {
|
||||
margin-bottom: 5px;
|
||||
strong{
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.firstClickTab{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
|
||||
@ -20,6 +20,8 @@ import {
|
||||
import "./RobotDialogueBox.less";
|
||||
// @ts-ignore
|
||||
import detailText from "./detailText";
|
||||
import axios from "axios";
|
||||
import { marked } from "marked";
|
||||
|
||||
// 判断是否已经展开了对话框
|
||||
const showDialogBox = ref<boolean>(false);
|
||||
@ -72,6 +74,99 @@ let saveData = localStorage.getItem("baseInfoObj");
|
||||
if (saveData) {
|
||||
baseInfoObj.value = JSON.parse(saveData);
|
||||
}
|
||||
// deepseek的语言角色说明
|
||||
const deepseekDesc =
|
||||
ref<string>(`你是一个负责将用户查询路由到后台API的智能助手。系统中有以下接口可以调用:
|
||||
预警接口:
|
||||
接口地址: EShangApiMain/BusinessProject/GetAccountWarningList,
|
||||
接口ID: 37,
|
||||
用途:查询服务区、全部服务区的预警信息,
|
||||
触发关键词: 预警类型,
|
||||
经营数据:
|
||||
接口地址:CommercialApi/Revenue/GetMonthlyBusinessAnalysis,
|
||||
接口ID: 21,
|
||||
用途:查询服务区、全部服务区经营数据,
|
||||
触发关键词: 经营数据,
|
||||
在营商家:
|
||||
接口地址: EShangApiMain/BusinessProject/GetPeriodWarningList,
|
||||
接口ID: 29,
|
||||
用途: 查询服务区在营商家、项目数量,盈利情况,
|
||||
触发关键词: 在营商家,
|
||||
项目情况:
|
||||
接口地址: EShangApiMain/BusinessProject/GetAccountWarningList,
|
||||
接口ID: 2,
|
||||
用途:查询客单数量、客单均价,
|
||||
触发关键词: 项目情况,
|
||||
财务状况:
|
||||
接口地址: EShangApiMain/Finance/GetContractExcuteAnalysis,
|
||||
接口ID: 35,
|
||||
用途:查询服务区的财务状况,
|
||||
触发关键词: 财务状况,
|
||||
车辆归属:
|
||||
接口地址: CommercialApi/BigData/GetProvinceVehicleTreeList,
|
||||
接口ID: 33,
|
||||
用途:查询服务区的车流情况,
|
||||
触发关键词: 车辆归属,
|
||||
招商:
|
||||
接口地址:EShangApiMain/Revenue/GetBusinessAnalysisReport,
|
||||
接口ID: 31,
|
||||
用途:查询服务区的招商数据,
|
||||
触发关键词: 招商,
|
||||
单车价值:
|
||||
接口地址: EShangApiMain/Analysis/GetRevenueEstimateList,
|
||||
接口ID: 27,
|
||||
用途:查询服务区单车价值评估数据,
|
||||
触发关键词: 单车价值,
|
||||
资产坪效:
|
||||
接口地址: EShangApiMain/Analysis/GetASSETSPROFITSTreeList,
|
||||
接口ID: 23,
|
||||
用途:分析服务区门店资产平效,
|
||||
触发关键词: SERVERPART_IDS, Start_DATE, End_DATE 等,
|
||||
SABFI|商业适配指数:
|
||||
接口地址:CommercialApi/Revenue/GetShopSABFIList,
|
||||
接口ID: 25,
|
||||
用途:查询服务区门店商业适配指数,
|
||||
触发关键词: SABFI|商业适配指数,
|
||||
销售|营收|收入|经营情况:
|
||||
接口地址:EShangApiMain/Revenue/GetRevenueReport,
|
||||
接口ID: 4,
|
||||
用途:查询营收数据,
|
||||
触发关键词: 销售|营收|收入|经营情况,
|
||||
商家情况|商家盈利:
|
||||
接口地址:EShangApiMain/BusinessProject/GetPeriodWarningList,
|
||||
接口ID: 3,
|
||||
用途:查询客单数量、客单均价,
|
||||
触发关键词:商家情况|商家盈利,
|
||||
同比|环比|同环比:
|
||||
接口地址: EShangApiMain/Revenue/GetRevenueYOYQOQ,
|
||||
接口ID: 11,
|
||||
用途: 查询营收同环比,
|
||||
触发关键词: 同比|环比|同环比,
|
||||
节假日|元旦|春节|清明节|劳动节|端午节|中秋节|国庆节|清明|五一|端午|中秋|国庆|暑假|暑期|春运:
|
||||
接口地址: CommercialApi/Revenue/GetServerpartINCAnalysis,
|
||||
接口ID: 15,
|
||||
用途:查询节日营收(含同比),
|
||||
触发关键词: 节假日|元旦|春节|清明节|劳动节|端午节|中秋节|国庆节|清明|五一|端午|中秋|国庆|暑假|暑期|春运,
|
||||
客单均价|客单:
|
||||
接口地址:CommercialApi/Revenue/GetMonthINCAnalysis,
|
||||
接口ID: 19,
|
||||
用途:查询客单数量、客单均价,
|
||||
触发关键词: 客单均价|客单,
|
||||
车流|入区:
|
||||
接口地址:CommercialApi/Revenue/GetMonthINCAnalysis,
|
||||
接口ID: 1,
|
||||
用途:查询客单数量、客单均价,
|
||||
触发关键词: 车流|入区,
|
||||
基础信息:
|
||||
接口地址: CommercialApi/BaseInfo/GetServerpartInfo,
|
||||
接口ID: 17,
|
||||
用途:查询服务区基础信息,
|
||||
触发关键词: 基础信息,
|
||||
在触发关键词中的|字符,表示或者的意思,
|
||||
你的任务是:
|
||||
根据用户的自然语言查询,识别用户想要调用的一个或多个API;
|
||||
不需要返回思考过程,最终只输出API接口ID,无需其他文字说明,若多个接口返回则把接口ID放在一个数组中
|
||||
`);
|
||||
|
||||
onMounted(() => {
|
||||
// 默认在初始显示的
|
||||
@ -576,10 +671,11 @@ const handleGetReq = (configDetail: any, answer?: any) => {
|
||||
ProvinceCode: baseInfoObj.value.ProvinceCode || "340000",
|
||||
pushProvinceCode: baseInfoObj.value.ProvinceCode || "340000",
|
||||
};
|
||||
// formatType 0:数值 1:字段 2:取缓存 3:取年份 4: 取月份 5:取日期 6:取当年 7:取前一年 8: 取当年的月份 9:取当前的首月 10:自定义 11: 取选中的服务区里面的值
|
||||
// formatType 0:数值 1:字段 2:取缓存 3:取年份 4: 取月份 5:取日期 6:取当年 7:取前一年 8: 取当年的月份 9:取当前的首月 10:自定义 11: 取选中的服务区里面的值 12 对fieldName所对应的字段进行处理
|
||||
// 当formatType 为10的时候 now 判断是不是要现在时间 true|false afterOrBefore 往当前时间前推还是后推 after|before count 前推或后推几个月 startOrEnd start|end dateType 显示格式 1 YYYY 2 YYYY-MM 3 YYYY-MM-DD 4 YYYYMM
|
||||
// fieldName 就是去resData里面去字段 value formatType为0的时候直接取值 haveDefault 判断是否有默认值 如果是true即使answer中无值 也能取到默认值 一般用在日期时间上
|
||||
// 当formatType为7的时候 取判断 value 1:取前一年 2:取前一个月 3:取前一天
|
||||
// 当formatType为12的时候 取判断 value 1:取前一年
|
||||
if (realKey.formatType === 1) {
|
||||
req[key] = answer[realKey.fieldName];
|
||||
} else if (realKey.formatType === 0) {
|
||||
@ -660,6 +756,15 @@ const handleGetReq = (configDetail: any, answer?: any) => {
|
||||
}
|
||||
} else if (realKey.formatType === 11) {
|
||||
req[key] = props.currentServerPartDetail?.[realKey.fieldName] ?? "";
|
||||
} else if (realKey.formatType === 12) {
|
||||
if (realKey.value === 1) {
|
||||
req[key] =
|
||||
realKey.value === 1
|
||||
? moment(answer[realKey.fieldName])
|
||||
.subtract(1, "year")
|
||||
.format("YYYY")
|
||||
: "";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1169,6 +1274,7 @@ const handleConfigItemTable = async (
|
||||
isPrinting.value = true;
|
||||
await handlePrintWord(lastBox, lastContent);
|
||||
}
|
||||
console.log("tableData", tableData);
|
||||
|
||||
// 判断是否需要出现表格
|
||||
if (configObj.ENABLE_TABLE === 1) {
|
||||
@ -1238,6 +1344,13 @@ const handleConfigItemTable = async (
|
||||
}
|
||||
}
|
||||
|
||||
// let newText: string = await handleUseDeepseekTableSummarize(
|
||||
// tableData,
|
||||
// columns
|
||||
// );
|
||||
// console.log("newText", newText);
|
||||
console.log("answeransweransweransweransweranswer", answer);
|
||||
|
||||
dialogueList[dialogueList.length - 1] = {
|
||||
...obj,
|
||||
haveTable: true,
|
||||
@ -1246,10 +1359,11 @@ const handleConfigItemTable = async (
|
||||
ENABLE_PDF_EXPORT: configObj.ENABLE_PDF_EXPORT === 1,
|
||||
ENABLE_VIEW_MORE: configObj.ENABLE_VIEW_MORE === 1,
|
||||
columns: columns,
|
||||
text:
|
||||
OUTPUT_FORMAT && !(tableData && tableData.length > 0)
|
||||
? OUTPUT_FORMAT.noDataText
|
||||
: `为您查找${timeStr || ""}相关数据:`,
|
||||
// deepseekContent: marked(newText),
|
||||
text: answer?.RevenueAnalysis || "",
|
||||
// OUTPUT_FORMAT && !(tableData && tableData.length > 0)
|
||||
// ? OUTPUT_FORMAT.noDataText
|
||||
// : `为您查找${timeStr || ""}相关数据:`,
|
||||
};
|
||||
isNewDialogLoading.value = false;
|
||||
}
|
||||
@ -1340,6 +1454,10 @@ const handleAnswerQuestions = async () => {
|
||||
searchText.value = "";
|
||||
const data = await handleTranslateSentence(req);
|
||||
console.log("data", data);
|
||||
// deepseek的判断的语义id
|
||||
// 太慢了 先注释
|
||||
// const deepseekIds = await handleUseDeepseekSemantics(req.Sentence);
|
||||
// console.log("datadeepseek的判断的语义id", deepseekIds);
|
||||
|
||||
let searchRes: string = "";
|
||||
let returnData: any;
|
||||
@ -1380,8 +1498,14 @@ const handleAnswerQuestions = async () => {
|
||||
const allBoxes = document.querySelectorAll(".dialogueTextBox-text");
|
||||
const lastBox: any = allBoxes[allBoxes.length - 1];
|
||||
if (lastBox) {
|
||||
const lastContent = `<span class="style4">为您查找相关数据</span>`;
|
||||
// const lastContent = `<span class="style4">${data?.RevenueAnalysis}</span>`;
|
||||
// const lastContent = `<span class="style4">为您查找相关数据</span>`;
|
||||
// let newShowText: string = await handleUseDeepseekOptimize(
|
||||
// data?.RevenueAnalysis
|
||||
// );
|
||||
const lastContent = `<span class="style4">${data?.RevenueAnalysis}</span>`;
|
||||
// const lastContent = `<span class="style4">${
|
||||
// newShowText || ""
|
||||
// }</span>`;
|
||||
isPrinting.value = true;
|
||||
await handlePrintWord(lastBox, lastContent);
|
||||
}
|
||||
@ -1420,7 +1544,8 @@ const handleAnswerQuestions = async () => {
|
||||
}
|
||||
} else {
|
||||
// handleLastUpdate("为您查找相关数据");
|
||||
handleLastUpdate(data?.RevenueAnalysis.split("{")[0] || "");
|
||||
// handleLastUpdate(data?.RevenueAnalysis.split("{")[0] || "");
|
||||
handleLastUpdate(data?.RevenueAnalysis || "");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -1432,7 +1557,14 @@ const handleAnswerQuestions = async () => {
|
||||
const allBoxes = document.querySelectorAll(".dialogueTextBox-text");
|
||||
const lastBox: any = allBoxes[allBoxes.length - 1];
|
||||
if (lastBox) {
|
||||
const lastContent = `<span class="style4">为您查找相关数据</span>`;
|
||||
// const lastContent = `<span class="style4">为您查找相关数据</span>`;
|
||||
// let newShowText: string = await handleUseDeepseekOptimize(
|
||||
// data?.RevenueAnalysis
|
||||
// );
|
||||
const lastContent = `<span class="style4">${data?.RevenueAnalysis}</span>`;
|
||||
// const lastContent = `<span class="style4">${
|
||||
// newShowText || ""
|
||||
// }</span>`;
|
||||
isPrinting.value = true;
|
||||
await handlePrintWord(lastBox, lastContent);
|
||||
}
|
||||
@ -2225,6 +2357,169 @@ const closeInspection = () => {
|
||||
// inspectionIndex.value = 0;
|
||||
};
|
||||
|
||||
// 2025-02-07 更新内容
|
||||
// 尝试用 deepseek 对显示的表格数据进行分析并生成总结性的语言
|
||||
const handleUseDeepseekTableSummarize = async (
|
||||
tableData: any,
|
||||
columns?: any
|
||||
) => {
|
||||
let tableJSON: string = "";
|
||||
let columnJSON: string = "";
|
||||
if (tableData && tableData.length > 0) {
|
||||
tableJSON = JSON.stringify(tableData);
|
||||
}
|
||||
if (columns && columns.length > 0) {
|
||||
columnJSON = JSON.stringify(columns);
|
||||
}
|
||||
|
||||
let questionText: string = `表格数据的JSON格式内容为${tableJSON},表格重点显示的字段JSON为${columnJSON},根据重点显示的字段分析表格数据,并给出总结性的语言给客户展示讲解`;
|
||||
console.log("questionText", questionText);
|
||||
|
||||
try {
|
||||
const timeoutPromise = new Promise((resolve) => {
|
||||
setTimeout(() => resolve(""), 60000);
|
||||
});
|
||||
// 使用 Promise.race 来竞争 handleGetDeepseek 和 timeoutPromise
|
||||
let resText: any = await Promise.race([
|
||||
handleGetDeepseek(questionText),
|
||||
timeoutPromise,
|
||||
]);
|
||||
// let resText = await handleGetDeepseek(questionText);
|
||||
let res =
|
||||
resText.data && resText.data.choices && resText.data.choices.length > 0
|
||||
? resText.data.choices[0].message.content
|
||||
: "";
|
||||
console.log("resText", resText);
|
||||
return res;
|
||||
} catch (error) {
|
||||
console.error("请求出错:", error);
|
||||
return "为您查找相关数据";
|
||||
}
|
||||
};
|
||||
|
||||
// 2025-02-06 更新内容
|
||||
// 用deepseek来优化语义返回的为您查找相关数据本身的文字
|
||||
const handleUseDeepseekOptimize = async (text: string) => {
|
||||
if (!text) {
|
||||
return "为您查找相关数据";
|
||||
}
|
||||
|
||||
let questionText: string = `根据自然语言语义完善修改这段话,要求:返回结果只有修改后的语句,没有其他的思考过程、分析过程 ,语句内容:${text}`;
|
||||
console.log("questionText", questionText);
|
||||
try {
|
||||
const timeoutPromise = new Promise((resolve) => {
|
||||
setTimeout(() => resolve("为您查找相关数据"), 30000);
|
||||
});
|
||||
// 使用 Promise.race 来竞争 handleGetDeepseek 和 timeoutPromise
|
||||
let resText: any = await Promise.race([
|
||||
handleGetDeepseek(questionText),
|
||||
timeoutPromise,
|
||||
]);
|
||||
// let resText = await handleGetDeepseek(questionText);
|
||||
let res =
|
||||
resText.data && resText.data.choices && resText.data.choices.length > 0
|
||||
? resText.data.choices[0].message.content
|
||||
: "为您查找相关数据";
|
||||
console.log("resText", resText);
|
||||
return res;
|
||||
} catch (error) {
|
||||
console.error("请求出错:", error);
|
||||
return "为您查找相关数据";
|
||||
}
|
||||
};
|
||||
|
||||
// 调用deepseek的方法
|
||||
const handleGetDeepseek = async (questionText: any) => {
|
||||
let modal = {
|
||||
// model: "deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
|
||||
model: "deepseek-chat",
|
||||
messages: [{ role: "user", content: questionText }],
|
||||
stream: false,
|
||||
max_tokens: 1500,
|
||||
stop: ["null"],
|
||||
temperature: 0.7,
|
||||
top_p: 0.7,
|
||||
top_k: 50,
|
||||
frequency_penalty: 0.5,
|
||||
n: 1,
|
||||
response_format: {
|
||||
type: "text",
|
||||
},
|
||||
};
|
||||
// const options = {
|
||||
// method: "POST",
|
||||
// headers: {
|
||||
// Authorization:
|
||||
// "Bearer sk-nynbgbtnmsffijgkttoimqkptetivviwuqrdhbuclgbmvnsq",
|
||||
// "Content-Type": "application/json",
|
||||
// },
|
||||
// body: JSON.stringify(modal),
|
||||
// };
|
||||
// const response: any = await fetch(
|
||||
// "https://api.siliconflow.cn/v1/chat/completions",
|
||||
// options
|
||||
// );
|
||||
const options = {
|
||||
method: "POST",
|
||||
headers: {
|
||||
Authorization: "Bearer sk-d47e0bdc7fd249f29d2f0dba807d46f0",
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify(modal),
|
||||
};
|
||||
// const response: any = await
|
||||
// const response: any = await fetch(
|
||||
// "https://api.deepseek.com/v1/chat/completions",
|
||||
// options
|
||||
// );
|
||||
|
||||
const config = {
|
||||
method: "post",
|
||||
maxBodyLength: Infinity,
|
||||
url: "https://api.deepseek.com/v1/chat/completions",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
Accept: "application/json",
|
||||
Authorization: "Bearer sk-d47e0bdc7fd249f29d2f0dba807d46f0",
|
||||
},
|
||||
data: modal,
|
||||
};
|
||||
|
||||
const data = await axios(config);
|
||||
console.log("dhsajkhdlsajkhdaksjd", data);
|
||||
return data;
|
||||
};
|
||||
|
||||
// 用deepseek来识别语义 拿到规则id
|
||||
const handleUseDeepseekSemantics = async (searchText: string) => {
|
||||
let questionText: string = `${deepseekDesc.value}${searchText}`;
|
||||
console.log("questionText", questionText);
|
||||
|
||||
try {
|
||||
const timeoutPromise = new Promise((resolve) => {
|
||||
setTimeout(() => resolve([]), 30000);
|
||||
});
|
||||
// 使用 Promise.race 来竞争 handleGetDeepseek 和 timeoutPromise
|
||||
let resText: any = await Promise.race([
|
||||
handleGetDeepseek(questionText),
|
||||
timeoutPromise,
|
||||
]);
|
||||
// let resText = await handleGetDeepseek(questionText);
|
||||
let res =
|
||||
resText.data && resText.data.choices && resText.data.choices.length > 0
|
||||
? resText.data.choices[0].message.content
|
||||
: [];
|
||||
console.log("resText", resText);
|
||||
return res;
|
||||
} catch (error) {
|
||||
console.error("请求出错:", error);
|
||||
return [];
|
||||
}
|
||||
|
||||
// const ids = await handleGetDeepseek(questionText);
|
||||
// console.log("dsakjdhasidha", ids);
|
||||
};
|
||||
|
||||
// 监听对话框记录
|
||||
watch(
|
||||
() => dialogueList,
|
||||
@ -2299,6 +2594,11 @@ defineExpose({
|
||||
<div class="dialogueTextBox-text">
|
||||
{{ item.text || "" }}
|
||||
</div>
|
||||
<!-- <div
|
||||
class="deepseekContent"
|
||||
v-if="item.deepseekContent"
|
||||
v-html="item.deepseekContent"
|
||||
></div> -->
|
||||
<div
|
||||
class="loadingBox"
|
||||
v-if="isNewDialogLoading && index === dialogueList.length - 1"
|
||||
|
||||
@ -12072,7 +12072,7 @@ const detailObj = {
|
||||
]
|
||||
}
|
||||
},
|
||||
// 沙河( 漾濞) 停车区 979
|
||||
// 沙河(漾濞) 停车区 979
|
||||
{
|
||||
"type": "Feature",
|
||||
"properties": {
|
||||
@ -19059,10 +19059,850 @@ const detailObj = {
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "昆磨高速",
|
||||
"SERVERPART_NAME": "那柯里停车区",
|
||||
"SERVERPART_ID": 1150,
|
||||
"SERVERPART_NAME": "金鸡加水站",
|
||||
"SERVERPART_ID": 1153,
|
||||
"SERVERPART_ADDRESS": "普洱市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "芒孟高速",
|
||||
"SERVERPART_NAME": "芭蕉林停车区",
|
||||
"SERVERPART_ID": 1120,
|
||||
"SERVERPART_ADDRESS": "临沧市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "昆磨高速",
|
||||
"SERVERPART_NAME": "宁洱隧道停车区",
|
||||
"SERVERPART_ID": 1157,
|
||||
"SERVERPART_ADDRESS": "普洱市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "临清高速",
|
||||
"SERVERPART_NAME": "孟定服务区",
|
||||
"SERVERPART_ID": 1121,
|
||||
"SERVERPART_ADDRESS": "临沧市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "芒孟高速",
|
||||
"SERVERPART_NAME": "回龙寨服务区",
|
||||
"SERVERPART_ID": 1119,
|
||||
"SERVERPART_ADDRESS": "临沧市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "昆磨高速",
|
||||
"SERVERPART_NAME": "黄庄加油站",
|
||||
"SERVERPART_ID": 1143,
|
||||
"SERVERPART_ADDRESS": "普洱市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "瑞陇高速",
|
||||
"SERVERPART_NAME": "南京里加水站",
|
||||
"SERVERPART_ID": 1061,
|
||||
"SERVERPART_ADDRESS": "德宏傣族景颇自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "瑞丽停车区",
|
||||
"SERVERPART_ID": 1056,
|
||||
"SERVERPART_ADDRESS": "德宏傣族景颇自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "腾陇高速",
|
||||
"SERVERPART_NAME": "陇川停车区",
|
||||
"SERVERPART_ID": 1060,
|
||||
"SERVERPART_ADDRESS": "德宏傣族景颇自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "临清高速",
|
||||
"SERVERPART_NAME": "勐撒服务区",
|
||||
"SERVERPART_ID": 1122,
|
||||
"SERVERPART_ADDRESS": "临沧市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "开河高速",
|
||||
"SERVERPART_NAME": "槟榔寨加油站",
|
||||
"SERVERPART_ID": 1202,
|
||||
"SERVERPART_ADDRESS": "红河哈尼族彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "腾陇高速",
|
||||
"SERVERPART_NAME": "陇川服务区",
|
||||
"SERVERPART_ID": 1064,
|
||||
"SERVERPART_ADDRESS": "德宏傣族景颇自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "昆磨高速",
|
||||
"SERVERPART_NAME": "通关服务区",
|
||||
"SERVERPART_ID": 1144,
|
||||
"SERVERPART_ADDRESS": "普洱市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "拉相服务区",
|
||||
"SERVERPART_ID": 1055,
|
||||
"SERVERPART_ADDRESS": "德宏傣族景颇自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "临双高速",
|
||||
"SERVERPART_NAME": "博尚服务区",
|
||||
"SERVERPART_ID": 1140,
|
||||
"SERVERPART_ADDRESS": "临沧市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "开河高速",
|
||||
"SERVERPART_NAME": "南屏停车区",
|
||||
"SERVERPART_ID": 1190,
|
||||
"SERVERPART_ADDRESS": "红河哈尼族彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "昆磨高速",
|
||||
"SERVERPART_NAME": "布陇箐加水站",
|
||||
"SERVERPART_ID": 1147,
|
||||
"SERVERPART_ADDRESS": "普洱市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "天猴高速",
|
||||
"SERVERPART_NAME": "马台服务区",
|
||||
"SERVERPART_ID": 1116,
|
||||
"SERVERPART_ADDRESS": "临沧市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "腾陇高速",
|
||||
"SERVERPART_NAME": "户撒服务区",
|
||||
"SERVERPART_ID": 1063,
|
||||
"SERVERPART_ADDRESS": "德宏傣族景颇自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "天猴高速",
|
||||
"SERVERPART_NAME": "五老山加水站",
|
||||
"SERVERPART_ID": 1118,
|
||||
"SERVERPART_ADDRESS": "临沧市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "昆磨高速",
|
||||
"SERVERPART_NAME": "墨江服务区",
|
||||
"SERVERPART_ID": 1142,
|
||||
"SERVERPART_ADDRESS": "普洱市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "天猴高速",
|
||||
"SERVERPART_NAME": "临沧服务区",
|
||||
"SERVERPART_ID": 1117,
|
||||
"SERVERPART_ADDRESS": "临沧市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "天猴高速",
|
||||
"SERVERPART_NAME": "临沧加水站",
|
||||
"SERVERPART_ID": 1114,
|
||||
"SERVERPART_ADDRESS": "临沧市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "芒市服务区",
|
||||
"SERVERPART_ID": 1053,
|
||||
"SERVERPART_ADDRESS": "德宏傣族景颇自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "腾陇高速",
|
||||
"SERVERPART_NAME": "盈江服务区",
|
||||
"SERVERPART_ID": 1065,
|
||||
"SERVERPART_ADDRESS": "德宏傣族景颇自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "开河高速",
|
||||
"SERVERPART_NAME": "凉水沟加水站",
|
||||
"SERVERPART_ID": 1207,
|
||||
"SERVERPART_ADDRESS": "红河哈尼族彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "昆磨高速",
|
||||
"SERVERPART_NAME": "大风垭口加水站",
|
||||
"SERVERPART_ID": 1123,
|
||||
"SERVERPART_ADDRESS": "玉溪市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "茅草坪加水站",
|
||||
"SERVERPART_ID": 1052,
|
||||
"SERVERPART_ADDRESS": "德宏傣族景颇自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "龙陵停车区",
|
||||
"SERVERPART_ID": 1051,
|
||||
"SERVERPART_ADDRESS": "保山市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "兰磨高速",
|
||||
"SERVERPART_NAME": "南溪加水站",
|
||||
"SERVERPART_ID": 1136,
|
||||
"SERVERPART_ADDRESS": "玉溪市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "开河高速",
|
||||
"SERVERPART_NAME": "湾田停车区",
|
||||
"SERVERPART_ID": 1188,
|
||||
"SERVERPART_ADDRESS": "红河哈尼族彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "天猴高速",
|
||||
"SERVERPART_NAME": "振太服务区",
|
||||
"SERVERPART_ID": 1115,
|
||||
"SERVERPART_ADDRESS": "普洱市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "黄草坝加水站",
|
||||
"SERVERPART_ID": 1050,
|
||||
"SERVERPART_ADDRESS": "保山市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "黄草坝停车区",
|
||||
"SERVERPART_ID": 1049,
|
||||
"SERVERPART_ADDRESS": "保山市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "腾陇高速",
|
||||
"SERVERPART_NAME": "梁河服务区",
|
||||
"SERVERPART_ID": 1062,
|
||||
"SERVERPART_ADDRESS": "德宏傣族景颇自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "开河高速",
|
||||
"SERVERPART_NAME": "冷泉加水站",
|
||||
"SERVERPART_ID": 1206,
|
||||
"SERVERPART_ADDRESS": "红河哈尼族彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "玉元高速",
|
||||
"SERVERPART_NAME": "甘庄服务区",
|
||||
"SERVERPART_ID": 1131,
|
||||
"SERVERPART_ADDRESS": "玉溪市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "保腾高速",
|
||||
"SERVERPART_NAME": "龙江大桥停车区",
|
||||
"SERVERPART_ID": 1058,
|
||||
"SERVERPART_ADDRESS": "保山市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "保腾高速",
|
||||
"SERVERPART_NAME": "腾冲服务区",
|
||||
"SERVERPART_ID": 1059,
|
||||
"SERVERPART_ADDRESS": "保山市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "天猴高速",
|
||||
"SERVERPART_NAME": "中和停车区",
|
||||
"SERVERPART_ID": 1067,
|
||||
"SERVERPART_ADDRESS": "保山市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "蒙自服务区",
|
||||
"SERVERPART_ID": 1187,
|
||||
"SERVERPART_ADDRESS": "保山市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "潞江坝服务区",
|
||||
"SERVERPART_ID": 1048,
|
||||
"SERVERPART_ADDRESS": "保山市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "天猴高速",
|
||||
"SERVERPART_NAME": "红龙厂加水站",
|
||||
"SERVERPART_ID": 1137,
|
||||
"SERVERPART_ADDRESS": "玉溪市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "天猴高速",
|
||||
"SERVERPART_NAME": "撮科停车区",
|
||||
"SERVERPART_ID": 1135,
|
||||
"SERVERPART_ADDRESS": "玉溪市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "云凤高速",
|
||||
"SERVERPART_NAME": "鹿鸣加水站",
|
||||
"SERVERPART_ID": 1113,
|
||||
"SERVERPART_ADDRESS": "临沧市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "云猴高速",
|
||||
"SERVERPART_NAME": "滇红服务区",
|
||||
"SERVERPART_ID": 1112,
|
||||
"SERVERPART_ADDRESS": "临沧市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "南宁高速",
|
||||
"SERVERPART_NAME": "文华服务区",
|
||||
"SERVERPART_ID": 1111,
|
||||
"SERVERPART_ADDRESS": "普洱市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "昆磨高速",
|
||||
"SERVERPART_NAME": "团山坝加水站",
|
||||
"SERVERPART_ID": 1047,
|
||||
"SERVERPART_ADDRESS": "普洱市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "云猴高速",
|
||||
"SERVERPART_NAME": "茴水加水站",
|
||||
"SERVERPART_ID": 1138,
|
||||
"SERVERPART_ADDRESS": "红河哈尼族彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "云猴高速",
|
||||
"SERVERPART_NAME": "石屏服务区",
|
||||
"SERVERPART_ID": 1133,
|
||||
"SERVERPART_ADDRESS": "红河哈尼族彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "蒲缥加水站",
|
||||
"SERVERPART_ID": 1045,
|
||||
"SERVERPART_ADDRESS": "保山市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "云猴高速",
|
||||
"SERVERPART_NAME": "猴桥服务区",
|
||||
"SERVERPART_ID": 1066,
|
||||
"SERVERPART_ADDRESS": "保山市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "云勐高速",
|
||||
"SERVERPART_NAME": "大官市加水站",
|
||||
"SERVERPART_ID": 1044,
|
||||
"SERVERPART_ADDRESS": "保山市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "蒲缥停车区",
|
||||
"SERVERPART_ID": 1046,
|
||||
"SERVERPART_ADDRESS": "保山市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "玉元高速",
|
||||
"SERVERPART_NAME": "扬武服务区",
|
||||
"SERVERPART_ID": 1129,
|
||||
"SERVERPART_ADDRESS": "玉溪市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "南宁高速",
|
||||
"SERVERPART_NAME": "景东停车区",
|
||||
"SERVERPART_ID": 1110,
|
||||
"SERVERPART_ADDRESS": "普洱市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "保山停车区",
|
||||
"SERVERPART_ID": 1043,
|
||||
"SERVERPART_ADDRESS": "保山市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "南宁高速",
|
||||
"SERVERPART_NAME": "三岔河服务区",
|
||||
"SERVERPART_ID": 1109,
|
||||
"SERVERPART_ADDRESS": "普洱市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "保沪高速",
|
||||
"SERVERPART_NAME": "党东休息区",
|
||||
"SERVERPART_ID": 1038,
|
||||
"SERVERPART_ADDRESS": "保山市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "保沪高速",
|
||||
"SERVERPART_NAME": "瓦房服务区",
|
||||
"SERVERPART_ID": 1035,
|
||||
"SERVERPART_ADDRESS": "保山市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "老营加水站",
|
||||
"SERVERPART_ID": 1041,
|
||||
"SERVERPART_ADDRESS": "保山市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "保沪高速",
|
||||
"SERVERPART_NAME": "勐古服务区",
|
||||
"SERVERPART_ID": 1036,
|
||||
"SERVERPART_ADDRESS": "保山市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "南宁高速",
|
||||
"SERVERPART_NAME": "拥翠服务区",
|
||||
"SERVERPART_ID": 970,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "玉元高速",
|
||||
"SERVERPART_NAME": "峨山停车区",
|
||||
"SERVERPART_ID": 1125,
|
||||
"SERVERPART_ADDRESS": "玉溪市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "昆磨高速",
|
||||
"SERVERPART_NAME": "蛮赖休息区",
|
||||
"SERVERPART_ID": 1039,
|
||||
"SERVERPART_ADDRESS": "玉溪市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "山王庙加水站",
|
||||
"SERVERPART_ID": 999,
|
||||
"SERVERPART_ADDRESS": "楚雄彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "永平服务区",
|
||||
"SERVERPART_ID": 1001,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "保沪高速",
|
||||
"SERVERPART_NAME": "百花岭服务区",
|
||||
"SERVERPART_ID": 1037,
|
||||
"SERVERPART_ADDRESS": "怒江栗僳族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "广昆高速",
|
||||
"SERVERPART_NAME": "平远街服务区",
|
||||
"SERVERPART_ID": 1156,
|
||||
"SERVERPART_ADDRESS": "文山壮族苗族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "玉元高速",
|
||||
"SERVERPART_NAME": "研和服务区",
|
||||
"SERVERPART_ID": 1127,
|
||||
"SERVERPART_ADDRESS": "玉溪市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "广昆高速",
|
||||
"SERVERPART_NAME": "腻落江服务区",
|
||||
"SERVERPART_ID": 1151,
|
||||
"SERVERPART_ADDRESS": "红河哈尼族彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "万宝山加水站",
|
||||
"SERVERPART_ID": 1002,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "大临高速",
|
||||
"SERVERPART_NAME": "南涧停车区",
|
||||
"SERVERPART_ID": 974,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "广昆高速",
|
||||
"SERVERPART_NAME": "鹰嘴岩加水站",
|
||||
"SERVERPART_ID": 1154,
|
||||
"SERVERPART_ADDRESS": "红河哈尼族彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "大临高速",
|
||||
"SERVERPART_NAME": "巍山服务区",
|
||||
"SERVERPART_ID": 973,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "保沪高速",
|
||||
"SERVERPART_NAME": "小沙坝服务区",
|
||||
"SERVERPART_ID": 1021,
|
||||
"SERVERPART_ADDRESS": "怒江栗僳族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "广昆高速",
|
||||
"SERVERPART_NAME": "炭房服务区",
|
||||
"SERVERPART_ID": 1158,
|
||||
"SERVERPART_ADDRESS": "文山壮族苗族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "保沪高速",
|
||||
"SERVERPART_NAME": "登埂停车区",
|
||||
"SERVERPART_ID": 1022,
|
||||
"SERVERPART_ADDRESS": "怒江栗僳族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "广昆高速",
|
||||
"SERVERPART_NAME": "中航油停车区",
|
||||
"SERVERPART_ID": 1227,
|
||||
"SERVERPART_ADDRESS": "文山壮族苗族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "广昆高速",
|
||||
"SERVERPART_NAME": "砚山停车区",
|
||||
"SERVERPART_ID": 1162,
|
||||
"SERVERPART_ADDRESS": "文山壮族苗族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "跃进服务区",
|
||||
"SERVERPART_ID": 997,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "大临高速",
|
||||
"SERVERPART_NAME": "大仓停车区",
|
||||
"SERVERPART_ID": 971,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "保沪高速",
|
||||
"SERVERPART_NAME": "维拉坝服务区",
|
||||
"SERVERPART_ID": 1023,
|
||||
"SERVERPART_ADDRESS": "怒江栗僳族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "澄川高速",
|
||||
"SERVERPART_NAME": "星云服务区",
|
||||
"SERVERPART_ID": 1139,
|
||||
"SERVERPART_ADDRESS": "玉溪市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "保沪高速",
|
||||
"SERVERPART_NAME": "腊门嘎停车区",
|
||||
"SERVERPART_ID": 1025,
|
||||
"SERVERPART_ADDRESS": "怒江栗僳族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "大漾云高速",
|
||||
"SERVERPART_NAME": "关坪停车区",
|
||||
"SERVERPART_ID": 982,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "丘砚高速",
|
||||
"SERVERPART_NAME": "普者黑停车区",
|
||||
"SERVERPART_ID": 1228,
|
||||
"SERVERPART_ADDRESS": "文山壮族苗族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "大漾云高速",
|
||||
"SERVERPART_NAME": "沙河停车区",
|
||||
"SERVERPART_ID": 979,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "武易高速",
|
||||
"SERVERPART_NAME": "易门服务区",
|
||||
"SERVERPART_ID": 1217,
|
||||
"SERVERPART_ADDRESS": "玉溪市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "小白营停车区",
|
||||
"SERVERPART_ID": 978,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "九顶山服务区",
|
||||
"SERVERPART_ID": 977,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "云南驿服务区",
|
||||
"SERVERPART_ID": 976,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "达连坝停车区",
|
||||
"SERVERPART_ID": 1182,
|
||||
"SERVERPART_ADDRESS": "楚雄彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "南华停车区",
|
||||
"SERVERPART_ID": 1183,
|
||||
"SERVERPART_ADDRESS": "楚雄彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "毛板桥停车区",
|
||||
"SERVERPART_ID": 1186,
|
||||
"SERVERPART_ADDRESS": "楚雄彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "灵官桥服务区",
|
||||
"SERVERPART_ID": 1185,
|
||||
"SERVERPART_ADDRESS": "楚雄彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "普淜服务区",
|
||||
"SERVERPART_ID": 975,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "楚雄服务区",
|
||||
"SERVERPART_ID": 1180,
|
||||
"SERVERPART_ADDRESS": "楚雄彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "大丽高速",
|
||||
"SERVERPART_NAME": "普和停车区",
|
||||
"SERVERPART_ID": 1003,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "大漾云高速",
|
||||
"SERVERPART_NAME": "长邑服务区",
|
||||
"SERVERPART_ID": 981,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "大丽高速",
|
||||
"SERVERPART_NAME": "上登加水站",
|
||||
"SERVERPART_ID": 1018,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "丘砚高速",
|
||||
"SERVERPART_NAME": "丘北停车区",
|
||||
"SERVERPART_ID": 1229,
|
||||
"SERVERPART_ADDRESS": "文山壮族苗族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "保沪高速",
|
||||
"SERVERPART_NAME": "古登加油站",
|
||||
"SERVERPART_ID": 1026,
|
||||
"SERVERPART_ADDRESS": "怒江栗僳族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "那石高速",
|
||||
"SERVERPART_NAME": "龙留服务区",
|
||||
"SERVERPART_ID": 1211,
|
||||
"SERVERPART_ADDRESS": "文山壮族苗族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "武易高速",
|
||||
"SERVERPART_NAME": "六街停车区",
|
||||
"SERVERPART_ID": 1216,
|
||||
"SERVERPART_ADDRESS": "玉溪市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "昆楚大高速",
|
||||
"SERVERPART_NAME": "地索坪服务区",
|
||||
"SERVERPART_ID": 969,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "保沪高速",
|
||||
"SERVERPART_NAME": "子里甲服务区",
|
||||
"SERVERPART_ID": 1027,
|
||||
"SERVERPART_ADDRESS": "怒江栗僳族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "大红田加水站",
|
||||
"SERVERPART_ID": 1214,
|
||||
"SERVERPART_ADDRESS": "玉溪市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "宾南高速",
|
||||
"SERVERPART_NAME": "乔甸服务区",
|
||||
"SERVERPART_ID": 986,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "恐龙山服务区",
|
||||
"SERVERPART_ID": 1179,
|
||||
"SERVERPART_ADDRESS": "楚雄彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "大丽高速",
|
||||
"SERVERPART_NAME": "挖色加水站",
|
||||
"SERVERPART_ID": 1005,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "大丽高速",
|
||||
"SERVERPART_NAME": "镜海观景台",
|
||||
"SERVERPART_ID": 1015,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "昆楚大高速",
|
||||
"SERVERPART_NAME": "牟定服务区",
|
||||
"SERVERPART_ID": 1198,
|
||||
"SERVERPART_ADDRESS": "楚雄彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "大永高速",
|
||||
"SERVERPART_NAME": "大营服务区",
|
||||
"SERVERPART_ID": 985,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "昆楚大高速",
|
||||
"SERVERPART_NAME": "巴拉鲊停车区",
|
||||
"SERVERPART_ID": 1201,
|
||||
"SERVERPART_ADDRESS": "楚雄彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "大丽高速",
|
||||
"SERVERPART_NAME": "双廊服务区",
|
||||
"SERVERPART_ID": 1007,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "昆楚大高速",
|
||||
"SERVERPART_NAME": "姚安服务区",
|
||||
"SERVERPART_ID": 1199,
|
||||
"SERVERPART_ADDRESS": "楚雄彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "上鹤高速",
|
||||
"SERVERPART_NAME": "大把关加水站",
|
||||
"SERVERPART_ID": 995,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "杭瑞高速",
|
||||
"SERVERPART_NAME": "读书铺服务区",
|
||||
"SERVERPART_ID": 1212,
|
||||
"SERVERPART_ADDRESS": "昆明市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "武易高速",
|
||||
"SERVERPART_NAME": "勤丰停车区",
|
||||
"SERVERPART_ID": 1209,
|
||||
"SERVERPART_ADDRESS": "楚雄彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "大丽高速",
|
||||
"SERVERPART_NAME": "牛街停车区",
|
||||
"SERVERPART_ID": 1008,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "昆楚大高速",
|
||||
"SERVERPART_NAME": "小关口停车区",
|
||||
"SERVERPART_ID": 1203,
|
||||
"SERVERPART_ADDRESS": "楚雄彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "永金高速",
|
||||
"SERVERPART_NAME": "石河停车区",
|
||||
"SERVERPART_ID": 1197,
|
||||
"SERVERPART_ADDRESS": "楚雄彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "广昆高速",
|
||||
"SERVERPART_NAME": "归朝服务区",
|
||||
"SERVERPART_ID": 1181,
|
||||
"SERVERPART_ADDRESS": "文山壮族苗族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "汕昆高速",
|
||||
"SERVERPART_NAME": "阳宗服务区",
|
||||
"SERVERPART_ID": 1141,
|
||||
"SERVERPART_ADDRESS": "玉溪市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "永金高速",
|
||||
"SERVERPART_NAME": "大姚服务区",
|
||||
"SERVERPART_ID": 1195,
|
||||
"SERVERPART_ADDRESS": "楚雄彝族自治州"
|
||||
},
|
||||
// {
|
||||
// "EXPRESSWAY_NAME": "永金高速",
|
||||
// "SERVERPART_NAME": "凌云大厦",
|
||||
// "SERVERPART_ID": 1230,
|
||||
// "SERVERPART_ADDRESS": "楚雄彝族自治州"
|
||||
// },
|
||||
{
|
||||
"EXPRESSWAY_NAME": "汕昆高速",
|
||||
"SERVERPART_NAME": "小团山停车区",
|
||||
"SERVERPART_ID": 1146,
|
||||
"SERVERPART_ADDRESS": "昆明市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "上鹤高速",
|
||||
"SERVERPART_NAME": "西邑服务区",
|
||||
"SERVERPART_ID": 996,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "大丽高速",
|
||||
"SERVERPART_NAME": "双龙加水站",
|
||||
"SERVERPART_ID": 1009,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "易弥高速",
|
||||
"SERVERPART_NAME": "前营停车区",
|
||||
"SERVERPART_ID": 1208,
|
||||
"SERVERPART_ADDRESS": "楚雄彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "大丽高速",
|
||||
"SERVERPART_NAME": "玉华观景台",
|
||||
"SERVERPART_ID": 1016,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "广昆高速",
|
||||
"SERVERPART_NAME": "岩河加水站",
|
||||
"SERVERPART_ID": 1184,
|
||||
"SERVERPART_ADDRESS": "文山壮族苗族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "保沪高速",
|
||||
"SERVERPART_NAME": "阿路底停车区",
|
||||
"SERVERPART_ID": 1028,
|
||||
"SERVERPART_ADDRESS": "怒江栗僳族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "大丽高速",
|
||||
"SERVERPART_NAME": "狮河观景台",
|
||||
"SERVERPART_ID": 1017,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "大丽高速",
|
||||
"SERVERPART_NAME": "剑湖服务区",
|
||||
"SERVERPART_ID": 1010,
|
||||
"SERVERPART_ADDRESS": "大理白族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "汕昆高速",
|
||||
"SERVERPART_NAME": "木喳箐加水站",
|
||||
"SERVERPART_ID": 1149,
|
||||
"SERVERPART_ADDRESS": "昆明市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "银昆高速",
|
||||
"SERVERPART_NAME": "涛源观景台",
|
||||
"SERVERPART_ID": 991,
|
||||
"SERVERPART_ADDRESS": "昆明市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "滇中环线高速",
|
||||
"SERVERPART_NAME": "桃园服务区",
|
||||
"SERVERPART_ID": 1088,
|
||||
"SERVERPART_ADDRESS": "红河哈尼族彝族自治州"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "京昆高速",
|
||||
"SERVERPART_NAME": "富民服务区",
|
||||
"SERVERPART_ID": 1215,
|
||||
"SERVERPART_ADDRESS": "昆明市"
|
||||
},
|
||||
{
|
||||
"EXPRESSWAY_NAME": "易弥高速",
|
||||
"SERVERPART_NAME": "仁兴服务区",
|
||||
"SERVERPART_ID": 1205,
|
||||
"SERVERPART_ADDRESS": "楚雄彝族自治州"
|
||||
},
|
||||
],
|
||||
// 四川
|
||||
"520000": [{
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
<script setup lang="ts">
|
||||
import { reactive, ref, watch } from "vue";
|
||||
import { nextTick, reactive, ref, watch } from "vue";
|
||||
import "./rightDetail.less";
|
||||
import {
|
||||
handleGetAnnualSplit,
|
||||
@ -10,7 +10,6 @@ import {
|
||||
handleGetServerpartInfo,
|
||||
} from "../service";
|
||||
import { log } from "console";
|
||||
import { nextTick } from "process";
|
||||
import {
|
||||
formatNumber,
|
||||
parseThousandSeparatedNumber,
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<script lang="ts" setup>
|
||||
import { onMounted, reactive, ref, watch } from "vue";
|
||||
import { nextTick, onMounted, reactive, ref, watch } from "vue";
|
||||
import "./rightSearchBox.less";
|
||||
import weather from "@/assets/ai/weather.png";
|
||||
import traffic from "@/assets/ai/traffic.png";
|
||||
@ -18,7 +18,6 @@ import selectDeleteIcon from "@/assets/ai/selectDeleteIcon.png";
|
||||
import busyIcon from "@/assets/ai/busyIcon.png";
|
||||
import selectBusy from "@/assets/ai/selectBusy.png";
|
||||
|
||||
import { nextTick } from "process";
|
||||
import { getFieldEnumTree } from "../service";
|
||||
import { ElMessage } from "element-plus";
|
||||
|
||||
@ -45,6 +44,7 @@ const filterList: any = reactive<any>([
|
||||
selectScr: selectEarlyWarning,
|
||||
},
|
||||
{ label: "即时指挥", value: "8", src: busyIcon, selectScr: selectBusy },
|
||||
{ label: "附近服务区", value: "99", src: busyIcon, selectScr: selectBusy },
|
||||
{ label: "清空", value: "7", src: deleteIcon, selectScr: selectDeleteIcon },
|
||||
]);
|
||||
// 显示筛选列表的查询表单
|
||||
@ -130,6 +130,9 @@ const handleClickFilter = (value: string) => {
|
||||
return;
|
||||
}
|
||||
console.log("selectFilterList.value", selectFilterList.value);
|
||||
if (value === "99") {
|
||||
emit("handleNearServiceList");
|
||||
}
|
||||
|
||||
if (selectFilterList.value) {
|
||||
if (selectFilterList.value.indexOf(value) === -1) {
|
||||
@ -232,6 +235,7 @@ const emit = defineEmits<{
|
||||
(e: "handleChangeMapShow", nowSelect: any, onlyChange: boolean): void; // 根据selectFilterList.value的选中 来对地图进行不同的操作
|
||||
(e: "handleDeleteSelect"): void; // 清除选中的效果
|
||||
(e: "handleHiddenSuspended"): void; // 悬浮框的清除方法
|
||||
(e: "handleNearServiceList"): void; // 附近的服务区
|
||||
}>();
|
||||
|
||||
// 传入的数据
|
||||
|
||||
@ -73,7 +73,7 @@
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.areaList{
|
||||
.areaListLegend{
|
||||
box-sizing: border-box;
|
||||
padding: 16px;
|
||||
border:1px solid #5F5F5F;
|
||||
|
||||
@ -6,14 +6,16 @@ import anhuiLine from "./component/anhuiLine";
|
||||
import yunanLine from "./component/yunanLine";
|
||||
import { HeatmapLayer, LineLayer, Marker, PointLayer, Scene } from "@antv/l7";
|
||||
import { GaodeMap } from "@antv/l7-maps";
|
||||
import { onMounted, reactive, ref, watch } from "vue";
|
||||
import { nextTick, onMounted, reactive, ref, watch } from "vue";
|
||||
import {
|
||||
getFieldEnumTree,
|
||||
getFieldGetFieEnumList,
|
||||
handleGetBaiDuTrafficInfo,
|
||||
handleGetDecryptString,
|
||||
handleGetGDNearServiceList,
|
||||
handleGetMapConfigByProvinceCode,
|
||||
handleGetMonthlySPINCAnalysis,
|
||||
handleGetNearServiceList,
|
||||
handleGetPeriodWarningList,
|
||||
handleGetProvinceVehicleTreeList,
|
||||
handleGetServerpartList,
|
||||
@ -36,7 +38,6 @@ import RevenueRate from "./component/RevenueRate.vue";
|
||||
// @ts-ignore
|
||||
import BusyRanking from "./component/BusyRanking.vue";
|
||||
|
||||
import { nextTick } from "process";
|
||||
import moment from "moment";
|
||||
import { useRoute } from "vue-router";
|
||||
import {
|
||||
@ -265,6 +266,7 @@ const handleGetAllService = async () => {
|
||||
});
|
||||
defaultServerPartList = res;
|
||||
allServerPartIdList = allId;
|
||||
console.log("allId", allId.toString());
|
||||
|
||||
SPREGIONTYPECOLORList = SPREGIONTYPECOLORLIST;
|
||||
SPREGIONTYPECOLOR.value = SPREGIONTYPETYPEObj;
|
||||
@ -349,7 +351,15 @@ const handleAllServiceMarkedPoint = async () => {
|
||||
detail?.roadConditions?.EXPRESSWAY_NAME
|
||||
? detail?.roadConditions?.EXPRESSWAY_NAME + ":"
|
||||
: ""
|
||||
}${detail?.roadConditions?.evaluation.status_desc || ""}</div>
|
||||
}${
|
||||
detail?.roadConditions?.evaluation.status === 1
|
||||
? "双向畅通"
|
||||
: detail?.roadConditions?.evaluation.status === 2
|
||||
? "双向缓行"
|
||||
: detail?.roadConditions?.evaluation.status === 3
|
||||
? "双向拥堵"
|
||||
: ""
|
||||
}</div>
|
||||
</div>
|
||||
`
|
||||
: ""
|
||||
@ -479,7 +489,11 @@ const handleClickPointLayer = async (detail: any) => {
|
||||
|
||||
await handleChangeMapShow(nowSelect, false);
|
||||
// 右侧的详情抽屉
|
||||
showRightDetail.value = true;
|
||||
if (nowSelect.indexOf("99") !== -1) {
|
||||
showRightDetail.value = false;
|
||||
} else {
|
||||
showRightDetail.value = true;
|
||||
}
|
||||
// 用户判断实时数据的右侧详情是否显示的判断
|
||||
isShowDetail.value = true;
|
||||
// // 对话框上方是否选中了
|
||||
@ -533,6 +547,7 @@ const handleAddSelect = (detail: any) => {
|
||||
// 点击垃圾桶 清除选中效果
|
||||
const handleDeleteSelect = () => {
|
||||
handleDeleteLayer("lightPointLayer");
|
||||
handleDeleteLayer("nearServiceList");
|
||||
currentServerPartDetail.value = undefined;
|
||||
};
|
||||
|
||||
@ -1622,6 +1637,11 @@ const handleChangeMapShow = async (nowSelect: string, onlyChange: boolean) => {
|
||||
handleGetRealServiceList();
|
||||
});
|
||||
}
|
||||
if (nowSelect.indexOf("99") !== -1) {
|
||||
handleCloseRightDetail();
|
||||
// 标记出附近的服务区
|
||||
handleNearServiceList();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@ -1940,6 +1960,102 @@ const handleShowRevenuePoint = (list: any) => {
|
||||
return paginated;
|
||||
}
|
||||
};
|
||||
|
||||
// 标记出附近的服务区
|
||||
const handleNearServiceList = async () => {
|
||||
handleCloseRightDetail();
|
||||
console.log("fdsjfhds");
|
||||
console.log("dsadas", currentServerPartDetail);
|
||||
if (currentServerPartDetail.value) {
|
||||
const req: any = {
|
||||
PageIndex: 1,
|
||||
PageSize: 100,
|
||||
SearchParameter: {
|
||||
SERVERPART_IDS: currentServerPartDetail.value.SERVERPART_ID,
|
||||
},
|
||||
};
|
||||
const data = await handleGetGDNearServiceList(req);
|
||||
let current: any = handleGetThisLayer("nearServiceList");
|
||||
console.log("data3212", data);
|
||||
let list: any = [];
|
||||
if (data && data.length > 0) {
|
||||
data.forEach((item: any) => {
|
||||
if (item.children && item.children.length > 0) {
|
||||
item.children.forEach((subItem: any) => {
|
||||
// 判断是否同省 且 id有 说明是驿达的
|
||||
if (subItem.HASPROVINCE) {
|
||||
if (subItem.SERVERPART_ID) {
|
||||
subItem.showType = 1;
|
||||
} else {
|
||||
subItem.showType = 2;
|
||||
}
|
||||
} else {
|
||||
subItem.showType = 3;
|
||||
}
|
||||
|
||||
list.push(subItem);
|
||||
});
|
||||
}
|
||||
list.push(item);
|
||||
});
|
||||
}
|
||||
// 删除原有的 添加新的
|
||||
if (current) {
|
||||
scene.value.removeLayer(current);
|
||||
}
|
||||
let nearServiceList = new PointLayer({
|
||||
zIndex: 100,
|
||||
});
|
||||
nearServiceList.name = "nearServiceList";
|
||||
nearServiceList.source(list, {
|
||||
parser: {
|
||||
type: "json",
|
||||
x: "SERVERPART_X",
|
||||
y: "SERVERPART_Y",
|
||||
},
|
||||
});
|
||||
nearServiceList.shape("circle");
|
||||
nearServiceList.size(8);
|
||||
// nearServiceList.color("#F70000");
|
||||
nearServiceList.color("showType", (value: number) => {
|
||||
// showType
|
||||
// 1 同省驿达 2 同省非驿达 3 外省
|
||||
return value === 1 ? "#F5F6F7" : value === 2 ? "#fdff3d" : "#F70000";
|
||||
|
||||
// value === null
|
||||
// ? "#fdff3d"
|
||||
// : value > 0 && value < 1000
|
||||
// ? "#F5F6F7"
|
||||
// : "#F70000";
|
||||
// value > 0 && value < 1000 ? "#F5F6F7" : "#fdff3d" : "#F70000";
|
||||
});
|
||||
nearServiceList.style({
|
||||
opacity: 0.7, // 透明度
|
||||
});
|
||||
|
||||
nearServiceList.on("mousemove", (ev: any) => {
|
||||
const detail: any = ev.feature;
|
||||
hoverPoint.value.style.top = `${ev.y + 5}px`;
|
||||
hoverPoint.value.style.left = `${ev.x + 5}px`;
|
||||
hoverPoint.value.style.display = "block";
|
||||
hoverPoint.value.innerHTML = `<div>
|
||||
<div>${detail?.SERVERPART_NAME || ""}</div>
|
||||
<div>直线距离:${detail.SELECT_DISTANCE || ""}km</div>
|
||||
<div>路线距离:${detail.REAL_DISTANCE || ""}km</div>
|
||||
</div>`;
|
||||
});
|
||||
nearServiceList.on("mouseout", (ev: any) => {
|
||||
hoverPoint.value.style.display = "none";
|
||||
});
|
||||
|
||||
scene.value.addLayer(nearServiceList);
|
||||
} else {
|
||||
ElMessage({
|
||||
message: "请先选择服务区!",
|
||||
type: "warning",
|
||||
});
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@ -1968,6 +2084,7 @@ const handleShowRevenuePoint = (list: any) => {
|
||||
@handleChangeMapShow="handleChangeMapShow"
|
||||
@handleDeleteSelect="handleDeleteSelect"
|
||||
@handleHiddenSuspended="handleHiddenSuspended"
|
||||
@handleNearServiceList="handleNearServiceList"
|
||||
:currentServerPartDetail="currentServerPartDetail"
|
||||
/>
|
||||
</div>
|
||||
@ -2010,7 +2127,7 @@ const handleShowRevenuePoint = (list: any) => {
|
||||
|
||||
<!-- 片区图例 -->
|
||||
<div
|
||||
class="areaList"
|
||||
class="areaListLegend"
|
||||
v-if="SPREGIONTYPECOLORList && SPREGIONTYPECOLORList.length > 0"
|
||||
>
|
||||
<div
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { wrapTreeNode } from "../../options/serveice";
|
||||
import request from "../../request/request";
|
||||
import requestCode from "../../request/requestCode";
|
||||
import requestTest from "../../request/requestTest";
|
||||
|
||||
// 拿到服务区列表
|
||||
export async function handleGetServerpartList(params: any) {
|
||||
@ -208,4 +209,22 @@ export async function handleGetTransactionDetailList(params: any) {
|
||||
return data
|
||||
}
|
||||
return data.Result_Data.List
|
||||
}
|
||||
}
|
||||
|
||||
// 该服务区附近的服务区
|
||||
export async function handleGetNearServiceList(params: any) {
|
||||
const data: any = await requestTest.post('/location/search', params)
|
||||
if (data.Result_Code !== 100) {
|
||||
return data
|
||||
}
|
||||
return data.Result_Data.List
|
||||
}
|
||||
|
||||
|
||||
export async function handleGetGDNearServiceList(params: any) {
|
||||
const data: any = await requestTest.post('/location/searchAround', params)
|
||||
if (data.Result_Code !== 100) {
|
||||
return data
|
||||
}
|
||||
return data.Result_Data.list
|
||||
}
|
||||
|
||||
@ -1,7 +1,15 @@
|
||||
/*
|
||||
* @Author: cclu 1106109051@qq.com
|
||||
* @Date: 2024-12-18 20:34:59
|
||||
* @LastEditors: cclu 1106109051@qq.com
|
||||
* @LastEditTime: 2025-04-16 13:47:10
|
||||
* @FilePath: \aiMap\src\request\newRequest.ts
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
*/
|
||||
|
||||
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';
|
||||
import { notification } from 'antd';
|
||||
import Cookies from 'js-cookie';
|
||||
// import { notification } from 'antd';
|
||||
// import Cookies from 'js-cookie';
|
||||
import moment from 'moment';
|
||||
|
||||
// 定义 HTTP 状态码及其描述
|
||||
@ -29,15 +37,15 @@ const errorHandler = (error: any): any => {
|
||||
if (response && response.status) {
|
||||
const errorText = codeMessage[response.status] || response.statusText;
|
||||
const { status, url } = response;
|
||||
notification.error({
|
||||
message: `请求错误 ${status}: ${url}`,
|
||||
description: errorText,
|
||||
});
|
||||
// notification.error({
|
||||
// message: `请求错误 ${status}: ${url}`,
|
||||
// description: errorText,
|
||||
// });
|
||||
} else {
|
||||
notification.error({
|
||||
description: '您的网络异常,无法连接到服务器。',
|
||||
message: '网络异常',
|
||||
});
|
||||
// notification.error({
|
||||
// description: '您的网络异常,无法连接到服务器。',
|
||||
// message: '网络异常',
|
||||
// });
|
||||
}
|
||||
return Promise.reject(error);
|
||||
};
|
||||
@ -63,7 +71,7 @@ instance.interceptors.request.use(
|
||||
instance.interceptors.response.use(
|
||||
(response: AxiosResponse) => {
|
||||
// 每次响应,设置一个 tmp 的 Cookie
|
||||
Cookies.set('tmp', moment().format());
|
||||
// Cookies.set('tmp', moment().format());
|
||||
return response.data; // 统一返回 data
|
||||
},
|
||||
errorHandler
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';
|
||||
import { notification } from 'antd';
|
||||
import Cookies from 'js-cookie';
|
||||
// import { notification } from 'antd';
|
||||
// import Cookies from 'js-cookie';
|
||||
import moment from 'moment';
|
||||
|
||||
// 定义 HTTP 状态码及其描述
|
||||
@ -28,15 +28,15 @@ const errorHandler = (error: any): any => {
|
||||
if (response && response.status) {
|
||||
const errorText = codeMessage[response.status] || response.statusText;
|
||||
const { status, url } = response;
|
||||
notification.error({
|
||||
message: `请求错误 ${status}: ${url}`,
|
||||
description: errorText,
|
||||
});
|
||||
// notification.error({
|
||||
// message: `请求错误 ${status}: ${url}`,
|
||||
// description: errorText,
|
||||
// });
|
||||
} else {
|
||||
notification.error({
|
||||
description: '您的网络异常,无法连接到服务器。',
|
||||
message: '网络异常',
|
||||
});
|
||||
// notification.error({
|
||||
// description: '您的网络异常,无法连接到服务器。',
|
||||
// message: '网络异常',
|
||||
// });
|
||||
}
|
||||
return Promise.reject(error);
|
||||
};
|
||||
@ -63,7 +63,7 @@ instance.interceptors.request.use(
|
||||
instance.interceptors.response.use(
|
||||
(response: AxiosResponse) => {
|
||||
// 每次响应,设置一个 tmp 的 Cookie
|
||||
Cookies.set('tmp', moment().format());
|
||||
// Cookies.set('tmp', moment().format());
|
||||
return response.data; // 统一返回 data
|
||||
},
|
||||
errorHandler
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';
|
||||
import { notification } from 'antd';
|
||||
import Cookies from 'js-cookie';
|
||||
// import { notification } from 'antd';
|
||||
// import Cookies from 'js-cookie';
|
||||
import moment from 'moment';
|
||||
|
||||
// 定义 HTTP 状态码及其描述
|
||||
@ -28,15 +28,15 @@ const errorHandler = (error: any): any => {
|
||||
if (response && response.status) {
|
||||
const errorText = codeMessage[response.status] || response.statusText;
|
||||
const { status, url } = response;
|
||||
notification.error({
|
||||
message: `请求错误 ${status}: ${url}`,
|
||||
description: errorText,
|
||||
});
|
||||
// notification.error({
|
||||
// message: `请求错误 ${status}: ${url}`,
|
||||
// description: errorText,
|
||||
// });
|
||||
} else {
|
||||
notification.error({
|
||||
description: '您的网络异常,无法连接到服务器。',
|
||||
message: '网络异常',
|
||||
});
|
||||
// notification.error({
|
||||
// description: '您的网络异常,无法连接到服务器。',
|
||||
// message: '网络异常',
|
||||
// });
|
||||
}
|
||||
return Promise.reject(error);
|
||||
};
|
||||
@ -63,7 +63,7 @@ instance.interceptors.request.use(
|
||||
instance.interceptors.response.use(
|
||||
(response: AxiosResponse) => {
|
||||
// 每次响应,设置一个 tmp 的 Cookie
|
||||
Cookies.set('tmp', moment().format());
|
||||
// Cookies.set('tmp', moment().format());
|
||||
return response.data; // 统一返回 data
|
||||
},
|
||||
errorHandler
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';
|
||||
import { notification } from 'antd';
|
||||
import Cookies from 'js-cookie';
|
||||
// import { notification } from 'antd';
|
||||
// import Cookies from 'js-cookie';
|
||||
import moment from 'moment';
|
||||
|
||||
// 定义 HTTP 状态码及其描述
|
||||
@ -28,15 +28,15 @@ const errorHandler = (error: any): any => {
|
||||
if (response && response.status) {
|
||||
const errorText = codeMessage[response.status] || response.statusText;
|
||||
const { status, url } = response;
|
||||
notification.error({
|
||||
message: `请求错误 ${status}: ${url}`,
|
||||
description: errorText,
|
||||
});
|
||||
// notification.error({
|
||||
// message: `请求错误 ${status}: ${url}`,
|
||||
// description: errorText,
|
||||
// });
|
||||
} else {
|
||||
notification.error({
|
||||
description: '您的网络异常,无法连接到服务器。',
|
||||
message: '网络异常',
|
||||
});
|
||||
// notification.error({
|
||||
// description: '您的网络异常,无法连接到服务器。',
|
||||
// message: '网络异常',
|
||||
// });
|
||||
}
|
||||
return Promise.reject(error);
|
||||
};
|
||||
@ -63,7 +63,7 @@ instance.interceptors.request.use(
|
||||
instance.interceptors.response.use(
|
||||
(response: AxiosResponse) => {
|
||||
// 每次响应,设置一个 tmp 的 Cookie
|
||||
Cookies.set('tmp', moment().format());
|
||||
// Cookies.set('tmp', moment().format());
|
||||
return response.data; // 统一返回 data
|
||||
},
|
||||
errorHandler
|
||||
|
||||
79
src/request/requestTest.ts
Normal file
79
src/request/requestTest.ts
Normal file
@ -0,0 +1,79 @@
|
||||
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';
|
||||
import moment from 'moment';
|
||||
|
||||
// 定义 HTTP 状态码及其描述
|
||||
const codeMessage: Record<number, string> = {
|
||||
200: '服务器成功返回请求的数据。',
|
||||
201: '新建或修改数据成功。',
|
||||
202: '一个请求已经进入后台排队(异步任务)。',
|
||||
204: '删除数据成功。',
|
||||
400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',
|
||||
401: '用户没有权限(令牌、用户名、密码错误)。',
|
||||
403: '用户得到授权,但是访问是被禁止的。',
|
||||
404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',
|
||||
406: '请求的格式不可得。',
|
||||
410: '请求的资源被永久删除,且不会再得到的。',
|
||||
422: '当创建一个对象时,发生一个验证错误。',
|
||||
500: '服务器发生错误,请检查服务器。',
|
||||
502: '网关错误。',
|
||||
503: '服务不可用,服务器暂时过载或维护。',
|
||||
504: '网关超时。',
|
||||
};
|
||||
|
||||
// 错误处理
|
||||
const errorHandler = (error: any): any => {
|
||||
const { response } = error;
|
||||
if (response && response.status) {
|
||||
const errorText = codeMessage[response.status] || response.statusText;
|
||||
const { status, url } = response;
|
||||
// notification.error({
|
||||
// message: `请求错误 ${status}: ${url}`,
|
||||
// description: errorText,
|
||||
// });
|
||||
} else {
|
||||
// notification.error({
|
||||
// description: '您的网络异常,无法连接到服务器。',
|
||||
// message: '网络异常',
|
||||
// });
|
||||
}
|
||||
return Promise.reject(error);
|
||||
};
|
||||
|
||||
// 创建 axios 实例
|
||||
const instance = axios.create({
|
||||
// baseURL: 'https://admin.es.eshangtech.com/platform/', // 默认请求前缀
|
||||
baseURL: 'http://10.104.1.161:8070/platform/', // 默认请求前缀
|
||||
timeout: 60000, // 请求超时时间
|
||||
headers: {
|
||||
"provincecode": "340000",
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
});
|
||||
|
||||
// 请求拦截器
|
||||
instance.interceptors.request.use(
|
||||
(config: any) => {
|
||||
return config;
|
||||
},
|
||||
errorHandler
|
||||
);
|
||||
|
||||
// 响应拦截器
|
||||
instance.interceptors.response.use(
|
||||
(response: AxiosResponse) => {
|
||||
// 每次响应,设置一个 tmp 的 Cookie
|
||||
// Cookies.set('tmp', moment().format());
|
||||
return response.data; // 统一返回 data
|
||||
},
|
||||
errorHandler
|
||||
);
|
||||
|
||||
// 封装的请求方法
|
||||
const request = {
|
||||
get: (url: string, params?: any) => instance.get(url, { params }),
|
||||
post: (url: string, data?: any) => instance.post(url, data),
|
||||
put: (url: string, data?: any) => instance.put(url, data),
|
||||
delete: (url: string, params?: any) => instance.delete(url, { params }),
|
||||
};
|
||||
|
||||
export default request;
|
||||
@ -1 +1 @@
|
||||
{"root":["./src/main.ts","./src/shims-vue.d.ts","./src/vite-env.d.ts","./src/components/newservice.ts","./src/components/service.ts","./src/components/map/service.ts","./src/options/serveice.ts","./src/request/newrequest.ts","./src/request/request.ts","./src/request/requestcode.ts","./src/request/requestconfig.ts","./src/router/index.ts","./src/stores/counter.ts","./src/app.vue","./src/components/robot.vue","./src/components/map/index.vue","./src/components/map/component/busyranking.vue","./src/components/map/component/robotdialoguebox.vue","./src/components/map/component/realbox.vue","./src/components/map/component/revenuerate.vue","./src/components/map/component/rightdetail.vue","./src/components/map/component/rightsearchbox.vue"],"version":"5.6.3"}
|
||||
{"root":["./src/main.ts","./src/shims-vue.d.ts","./src/vite-env.d.ts","./src/components/newservice.ts","./src/components/service.ts","./src/components/map/service.ts","./src/options/serveice.ts","./src/request/newrequest.ts","./src/request/request.ts","./src/request/requestcode.ts","./src/request/requestconfig.ts","./src/request/requesttest.ts","./src/router/index.ts","./src/stores/counter.ts","./src/app.vue","./src/components/robot.vue","./src/components/map/index.vue","./src/components/map/component/busyranking.vue","./src/components/map/component/robotdialoguebox.vue","./src/components/map/component/realbox.vue","./src/components/map/component/revenuerate.vue","./src/components/map/component/rightdetail.vue","./src/components/map/component/rightsearchbox.vue"],"version":"5.6.3"}
|
||||
Loading…
x
Reference in New Issue
Block a user