This commit is contained in:
cclu 2025-04-23 14:16:15 +08:00
parent 133e129f34
commit d58b95e1f5
17 changed files with 12828 additions and 68 deletions

3697
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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",

View File

@ -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;

View File

@ -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 formatType0 haveDefault true使answer
// formatType7 value 1 2 3
// formatType12 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);
// deepseekid
//
// const deepseekIds = await handleUseDeepseekSemantics(req.Sentence);
// console.log("datadeepseekid", 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"

View File

@ -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

View File

@ -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,

View File

@ -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; //
}>();
//

View File

@ -73,7 +73,7 @@
padding: 16px;
}
.areaList{
.areaListLegend{
box-sizing: border-box;
padding: 16px;
border:1px solid #5F5F5F;

View File

@ -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

View File

@ -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
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View 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;

View File

@ -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"}