update
This commit is contained in:
parent
5cd17869a5
commit
7b28725b13
@ -307,20 +307,17 @@ const handleSetRowKeyTable = (list: any) => {
|
|||||||
subItem.rowKey = `${index + 1}-${subIndex + 1}`;
|
subItem.rowKey = `${index + 1}-${subIndex + 1}`;
|
||||||
if (subItem.children && subItem.children.length > 0) {
|
if (subItem.children && subItem.children.length > 0) {
|
||||||
subItem.children.forEach((thirdItem: any, thirdIndex: number) => {
|
subItem.children.forEach((thirdItem: any, thirdIndex: number) => {
|
||||||
thirdItem.rowKey = `${index + 1}-${subIndex + 1}-${
|
thirdItem.rowKey = `${index + 1}-${subIndex + 1}-${thirdIndex + 1
|
||||||
thirdIndex + 1
|
|
||||||
}`;
|
}`;
|
||||||
if (thirdItem.children && thirdItem.children.length > 0) {
|
if (thirdItem.children && thirdItem.children.length > 0) {
|
||||||
thirdItem.children.forEach(
|
thirdItem.children.forEach(
|
||||||
(fourthItem: any, fourthIndex: number) => {
|
(fourthItem: any, fourthIndex: number) => {
|
||||||
fourthItem.rowKey = `${index + 1}-${subIndex + 1}-${
|
fourthItem.rowKey = `${index + 1}-${subIndex + 1}-${thirdIndex + 1
|
||||||
thirdIndex + 1
|
|
||||||
}-${fourthIndex + 1}`;
|
}-${fourthIndex + 1}`;
|
||||||
if (fourthItem.children && fourthItem.children.length > 0) {
|
if (fourthItem.children && fourthItem.children.length > 0) {
|
||||||
fourthItem.children.forEach(
|
fourthItem.children.forEach(
|
||||||
(fifthItem: any, fifthIndex: number) => {
|
(fifthItem: any, fifthIndex: number) => {
|
||||||
fourthItem.rowKey = `${index + 1}-${subIndex + 1}-${
|
fourthItem.rowKey = `${index + 1}-${subIndex + 1}-${thirdIndex + 1
|
||||||
thirdIndex + 1
|
|
||||||
}-${fourthIndex + 1}-${fifthIndex + 1}`;
|
}-${fourthIndex + 1}-${fifthIndex + 1}`;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -1093,8 +1090,7 @@ const renderCell = (row: any, column: any) => {
|
|||||||
return `<span style="text-align: right">${formatNumber(value)}</span>`;
|
return `<span style="text-align: right">${formatNumber(value)}</span>`;
|
||||||
}
|
}
|
||||||
if (column.isRate) {
|
if (column.isRate) {
|
||||||
return `<span style="color: ${
|
return `<span style="color: ${value > 0 ? "green" : "red"
|
||||||
value > 0 ? "green" : "red"
|
|
||||||
};text-align: right">${value}%</span>`;
|
};text-align: right">${value}%</span>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1121,57 +1117,41 @@ const handleGetResFieldRes = (obj: any, config: any) => {
|
|||||||
// 给巡检添加自定义文字输出的方法
|
// 给巡检添加自定义文字输出的方法
|
||||||
const handleInspectionDialogueBox = async (detail: any, otherObj?: any) => {
|
const handleInspectionDialogueBox = async (detail: any, otherObj?: any) => {
|
||||||
// 要输出的文字内容
|
// 要输出的文字内容
|
||||||
let str: string = `${
|
let str: string = `${props.currentServerPartDetail.SERVERPART_NAME
|
||||||
props.currentServerPartDetail.SERVERPART_NAME
|
}:<span class="style4">天气情况:${props.currentServerPartDetail.weatherModel
|
||||||
}:<span class="style4">天气情况:${
|
? `<span class="style5">${"今天"}(${moment().format("YYYY-MM-DD")})${detail.weatherModel.DAY_WEATHER
|
||||||
props.currentServerPartDetail.weatherModel
|
}转${detail.weatherModel.NIGHT_WEATHER},气温${detail.weatherModel.NIGHT_AIR_TEMPERATURE
|
||||||
? `<span class="style5">${"今天"}(${moment().format("YYYY-MM-DD")})${
|
}℃~${detail.weatherModel.DAY_AIR_TEMPERATURE
|
||||||
detail.weatherModel.DAY_WEATHER
|
|
||||||
}转${detail.weatherModel.NIGHT_WEATHER},气温${
|
|
||||||
detail.weatherModel.NIGHT_AIR_TEMPERATURE
|
|
||||||
}℃~${
|
|
||||||
detail.weatherModel.DAY_AIR_TEMPERATURE
|
|
||||||
}℃</span><span class="style5">${"明天"}(${moment()
|
}℃</span><span class="style5">${"明天"}(${moment()
|
||||||
.add(1, "d")
|
.add(1, "d")
|
||||||
.format("YYYY-MM-DD")})${detail.tmwWeatherModel.DAY_WEATHER}转${
|
.format("YYYY-MM-DD")})${detail.tmwWeatherModel.DAY_WEATHER}转${detail.tmwWeatherModel.NIGHT_WEATHER
|
||||||
detail.tmwWeatherModel.NIGHT_WEATHER
|
},气温${detail.tmwWeatherModel.NIGHT_AIR_TEMPERATURE}℃~${detail.tmwWeatherModel.DAY_AIR_TEMPERATURE
|
||||||
},气温${detail.tmwWeatherModel.NIGHT_AIR_TEMPERATURE}℃~${
|
|
||||||
detail.tmwWeatherModel.DAY_AIR_TEMPERATURE
|
|
||||||
}℃</span>`
|
}℃</span>`
|
||||||
: "暂无天气数据"
|
: "暂无天气数据"
|
||||||
}</span><span class="style4">实时路况:<span class="style5">${
|
}</span><span class="style4">实时路况:<span class="style5">${detail?.roadConditions
|
||||||
detail?.roadConditions
|
? `${detail?.roadConditions?.EXPRESSWAY_NAME
|
||||||
? `${
|
|
||||||
detail?.roadConditions?.EXPRESSWAY_NAME
|
|
||||||
? detail?.roadConditions?.EXPRESSWAY_NAME + ":"
|
? detail?.roadConditions?.EXPRESSWAY_NAME + ":"
|
||||||
: ""
|
: ""
|
||||||
}${
|
}${detail?.roadConditions?.evaluation.status_desc || ""
|
||||||
detail?.roadConditions?.evaluation.status_desc || ""
|
|
||||||
}(${moment().format("MM月DD日 HH时mm分")})`
|
}(${moment().format("MM月DD日 HH时mm分")})`
|
||||||
: "暂无实况车流数据"
|
: "暂无实况车流数据"
|
||||||
} </span></span><span class="style4">车辆归属:${
|
} </span></span><span class="style4">车辆归属:${detail?.provinceListTooltip && detail?.provinceListTooltip.length > 0
|
||||||
detail?.provinceListTooltip && detail?.provinceListTooltip.length > 0
|
|
||||||
? `${detail?.provinceListTooltip
|
? `${detail?.provinceListTooltip
|
||||||
.map((item: any) => {
|
.map((item: any) => {
|
||||||
return `<span class="style5">${moment(
|
return `<span class="style5">${moment(
|
||||||
moment().startOf("year")
|
moment().startOf("year")
|
||||||
).format("YYYY年MM月")}至${moment().format("YYYY年MM月")}${
|
).format("YYYY年MM月")}至${moment().format("YYYY年MM月")}${detail?.SERVERPART_NAME || ""
|
||||||
detail?.SERVERPART_NAME || ""
|
}总入区车流:${formatNumber(item.TotalCount || 0)}</span>${item.children && item.children.length > 0
|
||||||
}总入区车流:${formatNumber(item.TotalCount || 0)}</span>${
|
|
||||||
item.children && item.children.length > 0
|
|
||||||
? item.children
|
? item.children
|
||||||
.map((subItem: any) => {
|
.map((subItem: any) => {
|
||||||
return `<span class="style5">${
|
return `<span class="style5">${subItem.ProvinceOrCityName
|
||||||
subItem.ProvinceOrCityName
|
|
||||||
}:占比:${formatNumber(
|
}:占比:${formatNumber(
|
||||||
(subItem.TotalCount / item.TotalCount) * 100
|
(subItem.TotalCount / item.TotalCount) * 100
|
||||||
)}%,Top3:${
|
)}%,Top3:${subItem.children && subItem.children.length > 0
|
||||||
subItem.children && subItem.children.length > 0
|
|
||||||
? subItem.children
|
? subItem.children
|
||||||
.map((thirdItem: any, thirdIndex: number) => {
|
.map((thirdItem: any, thirdIndex: number) => {
|
||||||
return thirdItem.ProvinceOrCityName !== "其他"
|
return thirdItem.ProvinceOrCityName !== "其他"
|
||||||
? `${thirdItem.ProvinceOrCityName}${
|
? `${thirdItem.ProvinceOrCityName}${thirdIndex + 1 !== subItem.children.length
|
||||||
thirdIndex + 1 !== subItem.children.length
|
|
||||||
? "、"
|
? "、"
|
||||||
: ""
|
: ""
|
||||||
}`
|
}`
|
||||||
@ -1187,14 +1167,11 @@ const handleInspectionDialogueBox = async (detail: any, otherObj?: any) => {
|
|||||||
})
|
})
|
||||||
.join("")}`
|
.join("")}`
|
||||||
: "暂无车辆归属地数据"
|
: "暂无车辆归属地数据"
|
||||||
}</span>${
|
}</span>${otherObj
|
||||||
otherObj
|
? `${otherObj?.businessText
|
||||||
? `${
|
|
||||||
otherObj?.businessText
|
|
||||||
? `<span class="style4">经营数据:</span><span class="style4">${otherObj?.businessText}</span>`
|
? `<span class="style4">经营数据:</span><span class="style4">${otherObj?.businessText}</span>`
|
||||||
: ""
|
: ""
|
||||||
}${
|
}${otherObj?.merchantText
|
||||||
otherObj?.merchantText
|
|
||||||
? `<span class="style4">在营商家:${otherObj?.merchantText}</span>`
|
? `<span class="style4">在营商家:${otherObj?.merchantText}</span>`
|
||||||
: ""
|
: ""
|
||||||
}`
|
}`
|
||||||
@ -1338,8 +1315,7 @@ const handleConfigItemTable = async (
|
|||||||
}
|
}
|
||||||
timeStr = time;
|
timeStr = time;
|
||||||
} else {
|
} else {
|
||||||
timeStr = `${answer?.StartDate ? answer?.StartDate : ""}${
|
timeStr = `${answer?.StartDate ? answer?.StartDate : ""}${answer?.EndDate ? "-" + answer?.EndDate : ""
|
||||||
answer?.EndDate ? "-" + answer?.EndDate : ""
|
|
||||||
}`;
|
}`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1453,7 +1429,7 @@ const handleAnswerQuestions = async () => {
|
|||||||
// 需要在对话框中的效果就是 输入问题之后 出现问问题和回答的对话框之后 就删除对话框内容 但是接口搜索还是需要显示内容
|
// 需要在对话框中的效果就是 输入问题之后 出现问问题和回答的对话框之后 就删除对话框内容 但是接口搜索还是需要显示内容
|
||||||
searchText.value = "";
|
searchText.value = "";
|
||||||
const data = await handleTranslateSentence(req);
|
const data = await handleTranslateSentence(req);
|
||||||
console.log("data", data);
|
console.log("data321312", data);
|
||||||
// deepseek的判断的语义id
|
// deepseek的判断的语义id
|
||||||
// 太慢了 先注释
|
// 太慢了 先注释
|
||||||
// const deepseekIds = await handleUseDeepseekSemantics(req.Sentence);
|
// const deepseekIds = await handleUseDeepseekSemantics(req.Sentence);
|
||||||
@ -1502,10 +1478,8 @@ const handleAnswerQuestions = async () => {
|
|||||||
// let newShowText: string = await handleUseDeepseekOptimize(
|
// let newShowText: string = await handleUseDeepseekOptimize(
|
||||||
// data?.RevenueAnalysis
|
// data?.RevenueAnalysis
|
||||||
// );
|
// );
|
||||||
const lastContent = `<span class="style4">${data?.RevenueAnalysis}</span>`;
|
const lastContent = `<span class="style4">${data?.RevenueAnalysis}</span>`
|
||||||
// const lastContent = `<span class="style4">${
|
|
||||||
// newShowText || ""
|
|
||||||
// }</span>`;
|
|
||||||
isPrinting.value = true;
|
isPrinting.value = true;
|
||||||
await handlePrintWord(lastBox, lastContent);
|
await handlePrintWord(lastBox, lastContent);
|
||||||
}
|
}
|
||||||
@ -1986,13 +1960,13 @@ const handleStopPrint = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 显示数据图表
|
// 显示数据图表
|
||||||
const handleShowDataPie = () => {};
|
const handleShowDataPie = () => { };
|
||||||
// 跳转查看更多
|
// 跳转查看更多
|
||||||
const handleGoSearchMore = () => {
|
const handleGoSearchMore = () => {
|
||||||
window.open("http://saas.eshangtech.com/cloud/");
|
window.open("http://saas.eshangtech.com/cloud/");
|
||||||
};
|
};
|
||||||
// 导出为pdf
|
// 导出为pdf
|
||||||
const handleExportPDF = () => {};
|
const handleExportPDF = () => { };
|
||||||
|
|
||||||
// 传入的数据
|
// 传入的数据
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
@ -2009,6 +1983,7 @@ const emit = defineEmits<{
|
|||||||
(e: "handleHiddenSuspended"): void; // 隐藏掉悬浮框
|
(e: "handleHiddenSuspended"): void; // 隐藏掉悬浮框
|
||||||
(e: "handleShowAi", value: boolean): void; // 将ai对话是否显示 跟主页说
|
(e: "handleShowAi", value: boolean): void; // 将ai对话是否显示 跟主页说
|
||||||
(e: "handleChangeRightFilterInDialogue", id: any): void; // 屏蔽右边的选择项改变的watch
|
(e: "handleChangeRightFilterInDialogue", id: any): void; // 屏蔽右边的选择项改变的watch
|
||||||
|
(e: "handleDeleteNoDefault"): void; // 屏蔽右边的选择项改变的watch
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
// 监听当前选择的服务区
|
// 监听当前选择的服务区
|
||||||
@ -2122,8 +2097,7 @@ const handleSetWarningData = async (noAdd?: boolean) => {
|
|||||||
// 选择的具体预警类型
|
// 选择的具体预警类型
|
||||||
const handleSelectWarning = async (value: number) => {
|
const handleSelectWarning = async (value: number) => {
|
||||||
handleAddDialogList(
|
handleAddDialogList(
|
||||||
`${props.currentServerPartDetail?.SERVERPART_NAME || ""}${
|
`${props.currentServerPartDetail?.SERVERPART_NAME || ""}${descObjRef.value[Number(value)] || "预警类型"
|
||||||
descObjRef.value[Number(value)] || "预警类型"
|
|
||||||
}`
|
}`
|
||||||
);
|
);
|
||||||
console.log("value", value);
|
console.log("value", value);
|
||||||
@ -2190,10 +2164,8 @@ const handleSelectWarning = async (value: number) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
result = `${descObjRef.value[Number(value)]},共有${
|
result = `${descObjRef.value[Number(value)]},共有${serverpartId.length || 0
|
||||||
serverpartId.length || 0
|
} 对服务区,存在${warningData.length || 0}条${descObjRef.value[Number(value)]
|
||||||
} 对服务区,存在${warningData.length || 0}条${
|
|
||||||
descObjRef.value[Number(value)]
|
|
||||||
} 的情况,您可以鼠标移动到具体服务区查看情况。`;
|
} 的情况,您可以鼠标移动到具体服务区查看情况。`;
|
||||||
}
|
}
|
||||||
console.log("result", result);
|
console.log("result", result);
|
||||||
@ -2354,6 +2326,7 @@ const handleCloseInspection = () => {
|
|||||||
// 关闭巡检
|
// 关闭巡检
|
||||||
const closeInspection = () => {
|
const closeInspection = () => {
|
||||||
duringInspection.value = false;
|
duringInspection.value = false;
|
||||||
|
emit("handleDeleteNoDefault");
|
||||||
// inspectionIndex.value = 0;
|
// inspectionIndex.value = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -2567,29 +2540,17 @@ defineExpose({
|
|||||||
<div class="expandBox" v-if="showDialogBox">
|
<div class="expandBox" v-if="showDialogBox">
|
||||||
<!-- 展开后的顶部机器人图标和文字 -->
|
<!-- 展开后的顶部机器人图标和文字 -->
|
||||||
<div class="boxTop">
|
<div class="boxTop">
|
||||||
<img
|
<img class="closeIcon" src="@/assets/ai/AiIcon.png" @click="handleCloseDialogbox()" />
|
||||||
class="closeIcon"
|
|
||||||
src="@/assets/ai/AiIcon.png"
|
|
||||||
@click="handleCloseDialogbox()"
|
|
||||||
/>
|
|
||||||
<span class="titleText">商业智能助理小驿,为您服务:</span>
|
<span class="titleText">商业智能助理小驿,为您服务:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="dialogBox">
|
<div class="dialogBox">
|
||||||
<!-- 实际的对话框方框 -->
|
<!-- 实际的对话框方框 -->
|
||||||
<div id="dialogContent" class="dialogContent">
|
<div id="dialogContent" class="dialogContent">
|
||||||
<div
|
<div :class="`dialogueBoxItem dialogueBoxItem${index + 1}`" v-for="(item, index) in dialogueList" :key="index"
|
||||||
:class="`dialogueBoxItem dialogueBoxItem${index + 1}`"
|
|
||||||
v-for="(item, index) in dialogueList"
|
|
||||||
:key="index"
|
|
||||||
:style="{
|
:style="{
|
||||||
justifyContent: item.type === 1 ? 'flex-start' : 'flex-end',
|
justifyContent: item.type === 1 ? 'flex-start' : 'flex-end',
|
||||||
}"
|
}">
|
||||||
>
|
<img v-if="item.type === 1" class="robotIcon" src="@/assets/ai/profileIcon.png" />
|
||||||
<img
|
|
||||||
v-if="item.type === 1"
|
|
||||||
class="robotIcon"
|
|
||||||
src="@/assets/ai/profileIcon.png"
|
|
||||||
/>
|
|
||||||
<div class="dialogueTextBox">
|
<div class="dialogueTextBox">
|
||||||
<div class="dialogueTextBox-text">
|
<div class="dialogueTextBox-text">
|
||||||
{{ item.text || "" }}
|
{{ item.text || "" }}
|
||||||
@ -2599,43 +2560,20 @@ defineExpose({
|
|||||||
v-if="item.deepseekContent"
|
v-if="item.deepseekContent"
|
||||||
v-html="item.deepseekContent"
|
v-html="item.deepseekContent"
|
||||||
></div> -->
|
></div> -->
|
||||||
<div
|
<div class="loadingBox" v-if="isNewDialogLoading && index === dialogueList.length - 1" v-loading="isNewDialogLoading && index === dialogueList.length - 1
|
||||||
class="loadingBox"
|
"></div>
|
||||||
v-if="isNewDialogLoading && index === dialogueList.length - 1"
|
|
||||||
v-loading="
|
|
||||||
isNewDialogLoading && index === dialogueList.length - 1
|
|
||||||
"
|
|
||||||
></div>
|
|
||||||
|
|
||||||
<div
|
<div v-if="item.isFirst && item.isOver" style="margin-top: 8px" class="firstClickTab">
|
||||||
v-if="item.isFirst && item.isOver"
|
<div v-for="(item, index) in clickTabList" :key="index" :class="selectTab === item.value
|
||||||
style="margin-top: 8px"
|
|
||||||
class="firstClickTab"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
v-for="(item, index) in clickTabList"
|
|
||||||
:key="index"
|
|
||||||
:class="
|
|
||||||
selectTab === item.value
|
|
||||||
? 'clickItem selctClickItem'
|
? 'clickItem selctClickItem'
|
||||||
: 'clickItem'
|
: 'clickItem'
|
||||||
"
|
" @click="handleClickTab(item.value)">
|
||||||
@click="handleClickTab(item.value)"
|
|
||||||
>
|
|
||||||
{{ item.label || "" }}
|
{{ item.label || "" }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div v-if="!duringInspection" class="clickItem" @click="servicepartInspection(inspectionIndex)">
|
||||||
v-if="!duringInspection"
|
|
||||||
class="clickItem"
|
|
||||||
@click="servicepartInspection(inspectionIndex)"
|
|
||||||
>
|
|
||||||
{{ inspectionIndex > 0 ? "继续巡检" : "服务区巡检" }}
|
{{ inspectionIndex > 0 ? "继续巡检" : "服务区巡检" }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div v-if="duringInspection" class="clickItem" @click="handleCloseInspection()">
|
||||||
v-if="duringInspection"
|
|
||||||
class="clickItem"
|
|
||||||
@click="handleCloseInspection()"
|
|
||||||
>
|
|
||||||
{{ "暂停巡检" }}
|
{{ "暂停巡检" }}
|
||||||
</div>
|
</div>
|
||||||
<!-- <img
|
<!-- <img
|
||||||
@ -2646,36 +2584,18 @@ defineExpose({
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="item.isWarningSelect" class="firstClickTab">
|
<div v-if="item.isWarningSelect" class="firstClickTab">
|
||||||
<div
|
<div class="clickItem" style="display: block" v-for="(item, index) in descListRef" :key="index"
|
||||||
class="clickItem"
|
@click="handleSelectWarning(item.value)">
|
||||||
style="display: block"
|
|
||||||
v-for="(item, index) in descListRef"
|
|
||||||
:key="index"
|
|
||||||
@click="handleSelectWarning(item.value)"
|
|
||||||
>
|
|
||||||
{{ item.label || "" }}
|
{{ item.label || "" }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="item.haveTable" style="margin-top: 8px">
|
<div v-if="item.haveTable" style="margin-top: 8px">
|
||||||
<el-table
|
<el-table :data="item.tableData" :fit="true" tree-props="treeProps" row-key="rowKey" class="elTable"
|
||||||
:data="item.tableData"
|
:max-height="500">
|
||||||
:fit="true"
|
<el-table-column v-for="(column, index) in item.columns" :key="index" :prop="column.prop"
|
||||||
tree-props="treeProps"
|
:label="column.label" :width="column.width" :align="column.align" :show-overflow-tooltip="true"
|
||||||
row-key="rowKey"
|
header-align="center">
|
||||||
class="elTable"
|
|
||||||
:max-height="500"
|
|
||||||
>
|
|
||||||
<el-table-column
|
|
||||||
v-for="(column, index) in item.columns"
|
|
||||||
:key="index"
|
|
||||||
:prop="column.prop"
|
|
||||||
:label="column.label"
|
|
||||||
:width="column.width"
|
|
||||||
:align="column.align"
|
|
||||||
:show-overflow-tooltip="true"
|
|
||||||
header-align="center"
|
|
||||||
>
|
|
||||||
<!-- :formatter="handleFormatter" -->
|
<!-- :formatter="handleFormatter" -->
|
||||||
|
|
||||||
<!-- 自定义表头内容 -->
|
<!-- 自定义表头内容 -->
|
||||||
@ -2723,126 +2643,58 @@ defineExpose({
|
|||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div class="moreOption" v-if="
|
||||||
class="moreOption"
|
|
||||||
v-if="
|
|
||||||
item.ENABLE_CHART ||
|
item.ENABLE_CHART ||
|
||||||
item.ENABLE_PDF_EXPORT ||
|
item.ENABLE_PDF_EXPORT ||
|
||||||
item.ENABLE_VIEW_MORE
|
item.ENABLE_VIEW_MORE
|
||||||
"
|
">
|
||||||
>
|
<span class="optionItem" v-if="item.ENABLE_CHART" @click="handleShowDataPie()">查看数据图表</span>
|
||||||
<span
|
<span class="optionItem" v-if="item.ENABLE_CHART" @click="handleGoSearchMore()">查看更多</span>
|
||||||
class="optionItem"
|
<span class="optionItem" v-if="item.ENABLE_CHART" @click="handleExportPDF()">导出为PDF</span>
|
||||||
v-if="item.ENABLE_CHART"
|
|
||||||
@click="handleShowDataPie()"
|
|
||||||
>查看数据图表</span
|
|
||||||
>
|
|
||||||
<span
|
|
||||||
class="optionItem"
|
|
||||||
v-if="item.ENABLE_CHART"
|
|
||||||
@click="handleGoSearchMore()"
|
|
||||||
>查看更多</span
|
|
||||||
>
|
|
||||||
<span
|
|
||||||
class="optionItem"
|
|
||||||
v-if="item.ENABLE_CHART"
|
|
||||||
@click="handleExportPDF()"
|
|
||||||
>导出为PDF</span
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div style="width: 100%; height: 80px" v-if="printingLoading && index === dialogueList.length - 1"
|
||||||
style="width: 100%; height: 80px"
|
v-loading="printingLoading" :element-loading-text="printingLoadingText"></div>
|
||||||
v-if="printingLoading && index === dialogueList.length - 1"
|
|
||||||
v-loading="printingLoading"
|
|
||||||
:element-loading-text="printingLoadingText"
|
|
||||||
></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<img
|
<img v-if="item.type === 2" class="userIcon" src="@/assets/ai/userIcon.png" />
|
||||||
v-if="item.type === 2"
|
|
||||||
class="userIcon"
|
|
||||||
src="@/assets/ai/userIcon.png"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 输入框 -->
|
<!-- 输入框 -->
|
||||||
<div class="inputBox">
|
<div class="inputBox">
|
||||||
<el-input
|
<el-input ref="inputRef" class="searchText" placeholder="Hi,您好!请输入您想了解的服务区..." v-model="searchText"
|
||||||
ref="inputRef"
|
@keyup.enter="handleSubmit()" :disabled="isPrinting" />
|
||||||
class="searchText"
|
<img v-if="isPrinting" class="searchIcon" src="@/assets/ai/stopIcon.png" @click="handleStopPrint()" />
|
||||||
placeholder="Hi,您好!请输入您想了解的服务区..."
|
<img v-if="!isPrinting" class="searchIcon" src="@/assets/ai/searchIconBlue.png" @click="handleSubmit()" />
|
||||||
v-model="searchText"
|
|
||||||
@keyup.enter="handleSubmit()"
|
|
||||||
:disabled="isPrinting"
|
|
||||||
/>
|
|
||||||
<img
|
|
||||||
v-if="isPrinting"
|
|
||||||
class="searchIcon"
|
|
||||||
src="@/assets/ai/stopIcon.png"
|
|
||||||
@click="handleStopPrint()"
|
|
||||||
/>
|
|
||||||
<img
|
|
||||||
v-if="!isPrinting"
|
|
||||||
class="searchIcon"
|
|
||||||
src="@/assets/ai/searchIconBlue.png"
|
|
||||||
@click="handleSubmit()"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="moreSelect">
|
<div class="moreSelect">
|
||||||
<div v-if="!bottomSelect" class="filterFixed">
|
<div v-if="!bottomSelect" class="filterFixed">
|
||||||
<img
|
<img class="filterIcon" src="@/assets/ai/dropDown.png" @click="handleShowTabList()" />
|
||||||
class="filterIcon"
|
|
||||||
src="@/assets/ai/dropDown.png"
|
|
||||||
@click="handleShowTabList()"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="filterBox" v-if="bottomSelect">
|
<div class="filterBox" v-if="bottomSelect">
|
||||||
<div class="filterList">
|
<div class="filterList">
|
||||||
<div
|
<div v-for="(item, index) in clickTabList" :key="index" :class="selectTab === item.value
|
||||||
v-for="(item, index) in clickTabList"
|
|
||||||
:key="index"
|
|
||||||
:class="
|
|
||||||
selectTab === item.value
|
|
||||||
? 'filterItem selectFilterItem'
|
? 'filterItem selectFilterItem'
|
||||||
: 'filterItem'
|
: 'filterItem'
|
||||||
"
|
" @click="handleClickTab(item.value)">
|
||||||
@click="handleClickTab(item.value)"
|
|
||||||
>
|
|
||||||
{{ item.label || "" }}
|
{{ item.label || "" }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div v-if="!duringInspection" class="filterItem" @click="servicepartInspection(inspectionIndex)">
|
||||||
v-if="!duringInspection"
|
|
||||||
class="filterItem"
|
|
||||||
@click="servicepartInspection(inspectionIndex)"
|
|
||||||
>
|
|
||||||
{{ inspectionIndex > 0 ? "继续巡检" : "服务区巡检" }}
|
{{ inspectionIndex > 0 ? "继续巡检" : "服务区巡检" }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div v-if="duringInspection" class="filterItem" @click="handleCloseInspection()">
|
||||||
v-if="duringInspection"
|
|
||||||
class="filterItem"
|
|
||||||
@click="handleCloseInspection()"
|
|
||||||
>
|
|
||||||
{{ "暂停巡检" }}
|
{{ "暂停巡检" }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<img
|
<img class="filterIcon" src="@/assets/ai/pullUp.png" @click="handleShowTabList()" />
|
||||||
class="filterIcon"
|
|
||||||
src="@/assets/ai/pullUp.png"
|
|
||||||
@click="handleShowTabList()"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="closeBox" v-else>
|
<div class="closeBox" v-else>
|
||||||
<img
|
<img class="closeIcon" src="@/assets/ai/AiIcon.png" @click="handleGetShowDailogBox()" />
|
||||||
class="closeIcon"
|
|
||||||
src="@/assets/ai/AiIcon.png"
|
|
||||||
@click="handleGetShowDailogBox()"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
File diff suppressed because it is too large
Load Diff
@ -1,22 +1,25 @@
|
|||||||
.el-popover__title{
|
.el-popover__title {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
.BUSINESS_TRADEBox{
|
|
||||||
.el-form-item__label{
|
.BUSINESS_TRADEBox {
|
||||||
color: #fff!important;
|
.el-form-item__label {
|
||||||
|
color: #fff !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-form-item__content{
|
.el-form-item__content {
|
||||||
.el-select{
|
.el-select {
|
||||||
.el-select__wrapper{
|
.el-select__wrapper {
|
||||||
background-color: transparent!important;
|
background-color: transparent !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.moreSelectBox{
|
|
||||||
|
.moreSelectBox {
|
||||||
margin-right: 8px;
|
margin-right: 8px;
|
||||||
.selectBox{
|
|
||||||
|
.selectBox {
|
||||||
width: 36px;
|
width: 36px;
|
||||||
height: 36px;
|
height: 36px;
|
||||||
background: rgba(95, 95, 95, 0.5);
|
background: rgba(95, 95, 95, 0.5);
|
||||||
@ -27,29 +30,35 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
.selectBoxDefaultIcon{
|
|
||||||
|
.selectBoxDefaultIcon {
|
||||||
width: 22px;
|
width: 22px;
|
||||||
height: 22px;
|
height: 22px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.selectFormBox{
|
|
||||||
|
.selectFormBox {
|
||||||
width: 260px;
|
width: 260px;
|
||||||
background: rgba(95, 95, 95, 0.5);
|
background: rgba(95, 95, 95, 0.5);
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
border: 1px solid #5F5F5F;
|
border: 1px solid #5F5F5F;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
padding: 12px;
|
padding: 12px;
|
||||||
.closeIcon{
|
z-index: 99;
|
||||||
|
|
||||||
|
.closeIcon {
|
||||||
width: 22px;
|
width: 22px;
|
||||||
height: 22px;
|
height: 22px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
z-index: 6;
|
z-index: 999;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.rightSearchMain{
|
|
||||||
|
.rightSearchMain {
|
||||||
width: 40px;
|
width: 40px;
|
||||||
.defaultIconBox{
|
|
||||||
|
.defaultIconBox {
|
||||||
width: 36px;
|
width: 36px;
|
||||||
height: 36px;
|
height: 36px;
|
||||||
background: rgba(95, 95, 95, 0.5);
|
background: rgba(95, 95, 95, 0.5);
|
||||||
@ -60,15 +69,18 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
.defaultIcon{
|
|
||||||
|
.defaultIcon {
|
||||||
width: 22px;
|
width: 22px;
|
||||||
height: 22px;
|
height: 22px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.otherList{
|
|
||||||
|
.otherList {
|
||||||
width: 36px;
|
width: 36px;
|
||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
.otherItem{
|
|
||||||
|
.otherItem {
|
||||||
width: 36px;
|
width: 36px;
|
||||||
height: 36px;
|
height: 36px;
|
||||||
background: rgba(95, 95, 95, 0.5);
|
background: rgba(95, 95, 95, 0.5);
|
||||||
@ -80,7 +92,8 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
.otherIcon{
|
|
||||||
|
.otherIcon {
|
||||||
width: 22px;
|
width: 22px;
|
||||||
height: 22px;
|
height: 22px;
|
||||||
}
|
}
|
||||||
@ -89,15 +102,19 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.el-popover{
|
|
||||||
background-color: #000!important;
|
.el-popover {
|
||||||
.el-popover__title{
|
background-color: #000 !important;
|
||||||
color: #fff!important;
|
|
||||||
|
.el-popover__title {
|
||||||
|
color: #fff !important;
|
||||||
}
|
}
|
||||||
.el-popper__arrow::before{
|
|
||||||
background-color: #000!important;
|
.el-popper__arrow::before {
|
||||||
|
background-color: #000 !important;
|
||||||
}
|
}
|
||||||
.is-light{
|
|
||||||
border-color: #000!important;
|
.is-light {
|
||||||
|
border-color: #000 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -83,6 +83,7 @@ const handleClickFilter = (value: string) => {
|
|||||||
filterList.forEach((item: any) => {
|
filterList.forEach((item: any) => {
|
||||||
item.isSelect = false;
|
item.isSelect = false;
|
||||||
});
|
});
|
||||||
|
showSearchForm.value = false
|
||||||
emit("handleDeleteSelect");
|
emit("handleDeleteSelect");
|
||||||
} else {
|
} else {
|
||||||
// 经营业态 和 预警类型只能同时存在一个
|
// 经营业态 和 预警类型只能同时存在一个
|
||||||
@ -133,7 +134,7 @@ const handleClickFilter = (value: string) => {
|
|||||||
}
|
}
|
||||||
console.log("selectFilterList.value", selectFilterList.value);
|
console.log("selectFilterList.value", selectFilterList.value);
|
||||||
if (value === "99") {
|
if (value === "99") {
|
||||||
emit("handleNearServiceList");
|
// emit("handleNearServiceList");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selectFilterList.value) {
|
if (selectFilterList.value) {
|
||||||
@ -180,15 +181,12 @@ const handleShowMoreFormBox = () => {
|
|||||||
if (!isShowFilterIconList.value) {
|
if (!isShowFilterIconList.value) {
|
||||||
isShowFilterIconList.value = true;
|
isShowFilterIconList.value = true;
|
||||||
}
|
}
|
||||||
showSearchForm.value = true;
|
showSearchForm.value = !showSearchForm.value;
|
||||||
};
|
};
|
||||||
|
|
||||||
// 关闭搜索表单
|
// 关闭搜索表单
|
||||||
const handleColseSearchBox = () => {
|
const handleColseSearchBox = () => {
|
||||||
console.log("1");
|
showSearchForm.value = !showSearchForm.value;
|
||||||
nextTick(() => {
|
|
||||||
showSearchForm.value = false;
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// 请求经营业态的方法
|
// 请求经营业态的方法
|
||||||
@ -279,10 +277,10 @@ defineExpose({
|
|||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<div style="width: 100%; display: flex; justify-content: flex-end">
|
<div style="width: 100%; display: flex; justify-content: flex-end">
|
||||||
<el-button type="primary" @click="handleClickFilter('5')">查询</el-button>
|
<el-button type="primary" @click.stop="handleClickFilter('5')">查询</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<img class="closeIcon" src="@/assets/ai/retract.png" @click="handleColseSearchBox" />
|
<img class="closeIcon" src="@/assets/ai/retract.png" @click.stop="handleColseSearchBox" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -235,7 +235,7 @@ const handleGetAllService = async () => {
|
|||||||
let SPREGIONTYPECOLORLIST: any = [];
|
let SPREGIONTYPECOLORLIST: any = [];
|
||||||
let typeID: number = 0;
|
let typeID: number = 0;
|
||||||
data.forEach((item: any) => {
|
data.forEach((item: any) => {
|
||||||
if (item.SPREGIONTYPE_ID) {
|
if (item.SPREGIONTYPE_ID && item.SPREGIONTYPE_ID !== 89) {
|
||||||
if (
|
if (
|
||||||
SPREGIONTYPETYPELIST[item.SPREGIONTYPE_ID] ||
|
SPREGIONTYPETYPELIST[item.SPREGIONTYPE_ID] ||
|
||||||
SPREGIONTYPETYPELIST[item.SPREGIONTYPE_ID] === 0
|
SPREGIONTYPETYPELIST[item.SPREGIONTYPE_ID] === 0
|
||||||
@ -309,14 +309,13 @@ const handleAllServiceMarkedPoint = async () => {
|
|||||||
});
|
});
|
||||||
pointLayer.on("mousemove", (ev: any) => {
|
pointLayer.on("mousemove", (ev: any) => {
|
||||||
const detail: any = ev.feature;
|
const detail: any = ev.feature;
|
||||||
|
console.log('detaildetaildetail', detail)
|
||||||
hoverPoint.value.style.top = `${ev.y + 5}px`;
|
hoverPoint.value.style.top = `${ev.y + 5}px`;
|
||||||
hoverPoint.value.style.left = `${ev.x + 5}px`;
|
hoverPoint.value.style.left = `${ev.x + 5}px`;
|
||||||
hoverPoint.value.style.display = "block";
|
hoverPoint.value.style.display = "block";
|
||||||
hoverPoint.value.innerHTML = `<div>
|
hoverPoint.value.innerHTML = `<div>
|
||||||
<div>${detail?.SERVERPART_NAME || ""}${
|
<div>${detail?.SERVERPART_NAME || ""}${detail?.SERVERPART_TYPE
|
||||||
detail?.SERVERPART_TYPE
|
? `(${ServerpartTypeObj ? ServerpartTypeObj[detail?.SERVERPART_TYPE] : ""
|
||||||
? `(${
|
|
||||||
ServerpartTypeObj ? ServerpartTypeObj[detail?.SERVERPART_TYPE] : ""
|
|
||||||
})`
|
})`
|
||||||
: ""
|
: ""
|
||||||
}</div>
|
}</div>
|
||||||
@ -326,15 +325,11 @@ const handleAllServiceMarkedPoint = async () => {
|
|||||||
? `
|
? `
|
||||||
<div style="background-color: black; color: white; border-radius: 5px; font-size: 14px; border: none;box-shadow: none;">
|
<div style="background-color: black; color: white; border-radius: 5px; font-size: 14px; border: none;box-shadow: none;">
|
||||||
<div>天气情况:</div>
|
<div>天气情况:</div>
|
||||||
<div>${"今天"}${detail.weatherModel.DAY_WEATHER}转${
|
<div>${"今天"}${detail.weatherModel.DAY_WEATHER}转${detail.weatherModel.NIGHT_WEATHER
|
||||||
detail.weatherModel.NIGHT_WEATHER
|
},气温${detail.weatherModel.NIGHT_AIR_TEMPERATURE}℃~${detail.weatherModel.DAY_AIR_TEMPERATURE
|
||||||
},气温${detail.weatherModel.NIGHT_AIR_TEMPERATURE}℃~${
|
|
||||||
detail.weatherModel.DAY_AIR_TEMPERATURE
|
|
||||||
}℃</div>
|
}℃</div>
|
||||||
<div>${"明天"}${detail.tmwWeatherModel.DAY_WEATHER}转${
|
<div>${"明天"}${detail.tmwWeatherModel.DAY_WEATHER}转${detail.tmwWeatherModel.NIGHT_WEATHER
|
||||||
detail.tmwWeatherModel.NIGHT_WEATHER
|
},气温${detail.tmwWeatherModel.NIGHT_AIR_TEMPERATURE}℃~${detail.tmwWeatherModel.DAY_AIR_TEMPERATURE
|
||||||
},气温${detail.tmwWeatherModel.NIGHT_AIR_TEMPERATURE}℃~${
|
|
||||||
detail.tmwWeatherModel.DAY_AIR_TEMPERATURE
|
|
||||||
}℃</div>
|
}℃</div>
|
||||||
</div>
|
</div>
|
||||||
`
|
`
|
||||||
@ -347,16 +342,14 @@ const handleAllServiceMarkedPoint = async () => {
|
|||||||
? `
|
? `
|
||||||
<div style="max-height: 250px;overflow-y: auto">
|
<div style="max-height: 250px;overflow-y: auto">
|
||||||
<div>实时路况(${moment().format("YY月DD日 HH点mm分")}):</div>
|
<div>实时路况(${moment().format("YY月DD日 HH点mm分")}):</div>
|
||||||
<div>${
|
<div>${detail?.roadConditions?.EXPRESSWAY_NAME
|
||||||
detail?.roadConditions?.EXPRESSWAY_NAME
|
|
||||||
? detail?.roadConditions?.EXPRESSWAY_NAME + ":"
|
? detail?.roadConditions?.EXPRESSWAY_NAME + ":"
|
||||||
: ""
|
: ""
|
||||||
}${
|
}${detail?.roadConditions?.evaluation?.status === 1
|
||||||
detail?.roadConditions?.evaluation.status === 1
|
|
||||||
? "双向畅通"
|
? "双向畅通"
|
||||||
: detail?.roadConditions?.evaluation.status === 2
|
: detail?.roadConditions?.evaluation?.status === 2
|
||||||
? "双向缓行"
|
? "双向缓行"
|
||||||
: detail?.roadConditions?.evaluation.status === 3
|
: detail?.roadConditions?.evaluation?.status === 3
|
||||||
? "双向拥堵"
|
? "双向拥堵"
|
||||||
: ""
|
: ""
|
||||||
}</div>
|
}</div>
|
||||||
@ -384,21 +377,17 @@ const handleAllServiceMarkedPoint = async () => {
|
|||||||
(item: any) =>
|
(item: any) =>
|
||||||
`<div>${moment(moment().startOf("y")).format(
|
`<div>${moment(moment().startOf("y")).format(
|
||||||
"YYYY年MM月"
|
"YYYY年MM月"
|
||||||
)}至${moment().format("YYYY年MM月")}${
|
)}至${moment().format("YYYY年MM月")}${detail?.SERVERPART_NAME || ""
|
||||||
detail?.SERVERPART_NAME || ""
|
|
||||||
}总入区车流:${formatNumber(item.TotalCount || 0)}
|
}总入区车流:${formatNumber(item.TotalCount || 0)}
|
||||||
${
|
${item.children?.length > 0
|
||||||
item.children?.length > 0
|
|
||||||
? `<div>${item.children
|
? `<div>${item.children
|
||||||
.map(
|
.map(
|
||||||
(subItem: any) =>
|
(subItem: any) =>
|
||||||
`<div>${
|
`<div>${subItem.ProvinceOrCityName
|
||||||
subItem.ProvinceOrCityName
|
|
||||||
}:占比:${formatNumber(
|
}:占比:${formatNumber(
|
||||||
(subItem.TotalCount / item.TotalCount) * 100
|
(subItem.TotalCount / item.TotalCount) * 100
|
||||||
)}%, Top3:
|
)}%, Top3:
|
||||||
${
|
${subItem.children && subItem.children.length > 0
|
||||||
subItem.children && subItem.children.length > 0
|
|
||||||
? `<span>
|
? `<span>
|
||||||
${subItem.children
|
${subItem.children
|
||||||
.map((thirdItem: any, thirdIndex: number) => {
|
.map((thirdItem: any, thirdIndex: number) => {
|
||||||
@ -425,8 +414,7 @@ const handleAllServiceMarkedPoint = async () => {
|
|||||||
// 经营业态
|
// 经营业态
|
||||||
nowSelectId.value && nowSelectId.value.indexOf("5") !== -1
|
nowSelectId.value && nowSelectId.value.indexOf("5") !== -1
|
||||||
? `<div>
|
? `<div>
|
||||||
${detail?.tradeType || ""}${
|
${detail?.tradeType || ""}${detail?.shopName ? `:${detail?.shopName}` : ""
|
||||||
detail?.shopName ? `:${detail?.shopName}` : ""
|
|
||||||
}
|
}
|
||||||
</div>`
|
</div>`
|
||||||
: ""
|
: ""
|
||||||
@ -442,8 +430,7 @@ const handleAllServiceMarkedPoint = async () => {
|
|||||||
${
|
${
|
||||||
// 服务区繁忙程度
|
// 服务区繁忙程度
|
||||||
nowSelectId.value && nowSelectId.value.indexOf("8") !== -1
|
nowSelectId.value && nowSelectId.value.indexOf("8") !== -1
|
||||||
? `<div>对客销售:${
|
? `<div>对客销售:${detail.AVR_TICKET > 30
|
||||||
detail.AVR_TICKET > 30
|
|
||||||
? "繁忙"
|
? "繁忙"
|
||||||
: detail.AVR_TICKET > 15 && detail.AVR_TICKET < 30
|
: detail.AVR_TICKET > 15 && detail.AVR_TICKET < 30
|
||||||
? "良好"
|
? "良好"
|
||||||
@ -765,6 +752,7 @@ const handleSetCarData = async (
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
let data: any = {};
|
let data: any = {};
|
||||||
let roadItem: any = {};
|
let roadItem: any = {};
|
||||||
let roadReq: any = {
|
let roadReq: any = {
|
||||||
@ -773,6 +761,7 @@ const handleSetCarData = async (
|
|||||||
};
|
};
|
||||||
data = await handleGetBaiDuTrafficInfo(roadReq);
|
data = await handleGetBaiDuTrafficInfo(roadReq);
|
||||||
let roadRes: any = JSON.parse(data);
|
let roadRes: any = JSON.parse(data);
|
||||||
|
|
||||||
if (roadRes.status == 2) {
|
if (roadRes.status == 2) {
|
||||||
let roadReq: any = {
|
let roadReq: any = {
|
||||||
RoadName: selectObj.SERVERPART_NAME || "",
|
RoadName: selectObj.SERVERPART_NAME || "",
|
||||||
@ -822,8 +811,6 @@ const handleSetCarData = async (
|
|||||||
...selectObj,
|
...selectObj,
|
||||||
...roadItem,
|
...roadItem,
|
||||||
};
|
};
|
||||||
console.log("item", item);
|
|
||||||
console.log("defaultServerPartList", defaultServerPartList);
|
|
||||||
let allLayers: any = scene.value.getLayers();
|
let allLayers: any = scene.value.getLayers();
|
||||||
if (allLayers && allLayers.length > 0) {
|
if (allLayers && allLayers.length > 0) {
|
||||||
let obj: any = {};
|
let obj: any = {};
|
||||||
@ -987,7 +974,7 @@ const handleDeleteLayer = (name: string) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 清空一些非默认图层
|
// 清空一些非默认图层
|
||||||
const handleDeleteNoDefault = (nowSelect: string) => {
|
const handleDeleteNoDefault = (nowSelect?: string) => {
|
||||||
if (nowSelect) {
|
if (nowSelect) {
|
||||||
if (nowSelect.indexOf("1") === -1) {
|
if (nowSelect.indexOf("1") === -1) {
|
||||||
scene.value.removeAllMarkers();
|
scene.value.removeAllMarkers();
|
||||||
@ -1256,7 +1243,7 @@ const handleGetCarComeForm = async () => {
|
|||||||
|
|
||||||
// 拿到经营业态
|
// 拿到经营业态
|
||||||
const handleGetBusinessFormat = async () => {
|
const handleGetBusinessFormat = async () => {
|
||||||
await RobotDialogueBoxRef.value.handleGetBusinessTrade();
|
// await RobotDialogueBoxRef.value.handleGetBusinessTrade();
|
||||||
let formData: any = RightSearchBoxRef.value.form;
|
let formData: any = RightSearchBoxRef.value.form;
|
||||||
console.log("formData", formData);
|
console.log("formData", formData);
|
||||||
const req: any = {
|
const req: any = {
|
||||||
@ -1318,8 +1305,6 @@ const handleGetBusinessFormat = async () => {
|
|||||||
}
|
}
|
||||||
let BusinessTradeIdsObj: any =
|
let BusinessTradeIdsObj: any =
|
||||||
RightSearchBoxRef.value.selectBusinessTradeIdsObj;
|
RightSearchBoxRef.value.selectBusinessTradeIdsObj;
|
||||||
console.log("BusinessTradeIdsObj", BusinessTradeIdsObj);
|
|
||||||
console.log("obj", obj);
|
|
||||||
|
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
defaultServerPartList.forEach((item: any) => {
|
defaultServerPartList.forEach((item: any) => {
|
||||||
@ -1467,8 +1452,7 @@ const handleWarningMap = async (warningData: any) => {
|
|||||||
if (itemStr) {
|
if (itemStr) {
|
||||||
itemStr += `、${subItem.SERVERPARTSHOP_NAME}`;
|
itemStr += `、${subItem.SERVERPARTSHOP_NAME}`;
|
||||||
} else {
|
} else {
|
||||||
itemStr = `${waringObj[subItem.WARNING_TYPE]}:${
|
itemStr = `${waringObj[subItem.WARNING_TYPE]}:${subItem.SERVERPARTSHOP_NAME
|
||||||
subItem.SERVERPARTSHOP_NAME
|
|
||||||
} `;
|
} `;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1515,8 +1499,7 @@ const handleWarningMap = async (warningData: any) => {
|
|||||||
if (itemStr) {
|
if (itemStr) {
|
||||||
itemStr += `、${subItem.SERVERPARTSHOP_NAME}; `;
|
itemStr += `、${subItem.SERVERPARTSHOP_NAME}; `;
|
||||||
} else {
|
} else {
|
||||||
itemStr = `${waringObj[subItem.WARNING_TYPE]}:${
|
itemStr = `${waringObj[subItem.WARNING_TYPE]}:${subItem.SERVERPARTSHOP_NAME
|
||||||
subItem.SERVERPARTSHOP_NAME
|
|
||||||
} `;
|
} `;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2061,131 +2044,77 @@ const handleNearServiceList = async () => {
|
|||||||
<template>
|
<template>
|
||||||
<div id="map" class="mapBox">
|
<div id="map" class="mapBox">
|
||||||
<div class="RobotBox" v-if="baseInfoObj?.ShowAIQA">
|
<div class="RobotBox" v-if="baseInfoObj?.ShowAIQA">
|
||||||
<RobotDialogueBox
|
<RobotDialogueBox ref="RobotDialogueBoxRef" @handleLightServerpart="handleLightServerpart"
|
||||||
ref="RobotDialogueBoxRef"
|
@handleEnterySearch="handleEnterySearch" @handleWarningMap="handleWarningMap"
|
||||||
@handleLightServerpart="handleLightServerpart"
|
@handleAreaInspection="handleAreaInspection" @handleHiddenSuspended="handleHiddenSuspended"
|
||||||
@handleEnterySearch="handleEnterySearch"
|
@handleShowAi="handleShowAi" @handleChangeRightFilterInDialogue="handleChangeRightFilterInDialogue"
|
||||||
@handleWarningMap="handleWarningMap"
|
@handleDeleteNoDefault="handleDeleteNoDefault" :currentServerPartDetail="currentServerPartDetail"
|
||||||
@handleAreaInspection="handleAreaInspection"
|
:allServerPartIdList="allServerPartIdList" />
|
||||||
@handleHiddenSuspended="handleHiddenSuspended"
|
|
||||||
@handleShowAi="handleShowAi"
|
|
||||||
@handleChangeRightFilterInDialogue="handleChangeRightFilterInDialogue"
|
|
||||||
:currentServerPartDetail="currentServerPartDetail"
|
|
||||||
:allServerPartIdList="allServerPartIdList"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div class="rightSearchBox" :style="{ right: showRightDetail ? 'calc(25% + 8px)' : '16px' }">
|
||||||
class="rightSearchBox"
|
<RightSearchBox ref="RightSearchBoxRef" @handleChangeMapShow="handleChangeMapShow"
|
||||||
:style="{ right: showRightDetail ? 'calc(25% + 8px)' : '16px' }"
|
@handleDeleteSelect="handleDeleteSelect" @handleHiddenSuspended="handleHiddenSuspended"
|
||||||
>
|
@handleNearServiceList="handleNearServiceList" :currentServerPartDetail="currentServerPartDetail" />
|
||||||
<RightSearchBox
|
|
||||||
ref="RightSearchBoxRef"
|
|
||||||
@handleChangeMapShow="handleChangeMapShow"
|
|
||||||
@handleDeleteSelect="handleDeleteSelect"
|
|
||||||
@handleHiddenSuspended="handleHiddenSuspended"
|
|
||||||
@handleNearServiceList="handleNearServiceList"
|
|
||||||
:currentServerPartDetail="currentServerPartDetail"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="serverpartDetail" :style="{ right: showRightDetail ? '0' : '-25%' }">
|
||||||
class="serverpartDetail"
|
|
||||||
:style="{ right: showRightDetail ? '0' : '-25%' }"
|
|
||||||
>
|
|
||||||
<!-- v-if="showRightDetail" -->
|
<!-- v-if="showRightDetail" -->
|
||||||
<RightDetail
|
<RightDetail ref="RightDetailRef" :currentServerPartDetail="currentServerPartDetail"
|
||||||
ref="RightDetailRef"
|
@handleCloseRightDetail="handleCloseRightDetail" @handleShowDetail="handleShowDetail" />
|
||||||
:currentServerPartDetail="currentServerPartDetail"
|
|
||||||
@handleCloseRightDetail="handleCloseRightDetail"
|
|
||||||
@handleShowDetail="handleShowDetail"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 实时营收的box -->
|
<!-- 实时营收的box -->
|
||||||
<div
|
<div class="realBox" v-show="isShowAi || isShowDetail
|
||||||
class="realBox"
|
|
||||||
v-show="
|
|
||||||
isShowAi || isShowDetail
|
|
||||||
? false
|
? false
|
||||||
: baseInfoObj?.ShowRevenueGraphic && isShowRealData
|
: baseInfoObj?.ShowRevenueGraphic && isShowRealData
|
||||||
? true
|
? true
|
||||||
: false
|
: false
|
||||||
"
|
">
|
||||||
>
|
|
||||||
<!-- v-if="baseInfoObj?.ShowRevenueGraphic && isShowAi || isShowDetail" -->
|
<!-- v-if="baseInfoObj?.ShowRevenueGraphic && isShowAi || isShowDetail" -->
|
||||||
<RealBox
|
<RealBox ref="RealBoxRef" :show="isShowAi || isShowDetail
|
||||||
ref="RealBoxRef"
|
|
||||||
:show="
|
|
||||||
isShowAi || isShowDetail
|
|
||||||
? false
|
? false
|
||||||
: baseInfoObj?.ShowRevenueGraphic && isShowRealData
|
: baseInfoObj?.ShowRevenueGraphic && isShowRealData
|
||||||
? true
|
? true
|
||||||
: false
|
: false
|
||||||
"
|
" />
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 片区图例 -->
|
<!-- 片区图例 -->
|
||||||
<div
|
<div class="areaListLegend" v-if="SPREGIONTYPECOLORList && SPREGIONTYPECOLORList.length > 0">
|
||||||
class="areaListLegend"
|
<div class="areaItem" v-for="(item, index) in SPREGIONTYPECOLORList" :key="index">
|
||||||
v-if="SPREGIONTYPECOLORList && SPREGIONTYPECOLORList.length > 0"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
class="areaItem"
|
|
||||||
v-for="(item, index) in SPREGIONTYPECOLORList"
|
|
||||||
:key="index"
|
|
||||||
>
|
|
||||||
<span class="color" :style="{ background: item.value }"></span>
|
<span class="color" :style="{ background: item.value }"></span>
|
||||||
<span class="text">{{ item.label }}</span>
|
<span class="text">{{ item.label }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 区域营收占比 -->
|
<!-- 区域营收占比 -->
|
||||||
<div
|
<div class="revenueRate" v-show="isShowAi || isShowDetail
|
||||||
class="revenueRate"
|
|
||||||
v-show="
|
|
||||||
isShowAi || isShowDetail
|
|
||||||
? false
|
? false
|
||||||
: baseInfoObj?.ShowRevenueGraphic && isShowRealData
|
: baseInfoObj?.ShowRevenueGraphic && isShowRealData
|
||||||
? true
|
? true
|
||||||
: false
|
: false
|
||||||
"
|
">
|
||||||
>
|
<RevenueRate ref="revenueRateRef" :SPREGIONTYPECOLOR="SPREGIONTYPECOLOR" :show="isShowAi || isShowDetail
|
||||||
<RevenueRate
|
|
||||||
ref="revenueRateRef"
|
|
||||||
:SPREGIONTYPECOLOR="SPREGIONTYPECOLOR"
|
|
||||||
:show="
|
|
||||||
isShowAi || isShowDetail
|
|
||||||
? false
|
? false
|
||||||
: baseInfoObj?.ShowRevenueGraphic && isShowRealData
|
: baseInfoObj?.ShowRevenueGraphic && isShowRealData
|
||||||
? true
|
? true
|
||||||
: false
|
: false
|
||||||
"
|
" />
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 消费金额趋势图 -->
|
<!-- 消费金额趋势图 -->
|
||||||
<div
|
<div class="BusyRanking" v-show="isShowAi || isShowDetail
|
||||||
class="BusyRanking"
|
|
||||||
v-show="
|
|
||||||
isShowAi || isShowDetail
|
|
||||||
? false
|
? false
|
||||||
: baseInfoObj?.ShowRevenueGraphic && isShowRealData
|
: baseInfoObj?.ShowRevenueGraphic && isShowRealData
|
||||||
? true
|
? true
|
||||||
: false
|
: false
|
||||||
"
|
">
|
||||||
>
|
<BusyRanking ref="BusyRankingRef" :show="isShowAi || isShowDetail
|
||||||
<BusyRanking
|
|
||||||
ref="BusyRankingRef"
|
|
||||||
:show="
|
|
||||||
isShowAi || isShowDetail
|
|
||||||
? false
|
? false
|
||||||
: baseInfoObj?.ShowRevenueGraphic && isShowRealData
|
: baseInfoObj?.ShowRevenueGraphic && isShowRealData
|
||||||
? true
|
? true
|
||||||
: false
|
: false
|
||||||
"
|
" @handleServiceBusy="handleServiceBusy" />
|
||||||
@handleServiceBusy="handleServiceBusy"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
Loading…
x
Reference in New Issue
Block a user