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