<template>
|
<div style="height: 100%">
|
<div style="height: calc(100% - 0px)" ref="selpumplist" class="selpumplist_general bg-white" v-loading="state.isShowLoadingFrm"
|
element-loading-background="rgba(255,255,255, 0.8)">
|
<div class="nav_header_box">
|
<div class="nav_header">
|
<div style="cursor: pointer" class="nav_header_a" @click="toHomePage">
|
{{ t("selectPage.index.TR") }}
|
</div>
|
<div style="cursor: pointer" class="nav_header_a" @click="prevPage">
|
{{ t("selectPage.selparas.TR") }}
|
</div>
|
</div>
|
<div class="nav_header_right">
|
<!-- 排序方式 -->
|
<el-dropdown v-if="true" :hide-on-click="true" @command="handleSortMethod" trigger="click" :max-height="300"
|
style="margin-right: 10px">
|
<el-button class="btn_color">
|
{{ t("selectPage.sortMethod.TR") }}
|
<el-icon class="el-icon--right">
|
<arrow-down />
|
</el-icon>
|
</el-button>
|
<template #dropdown>
|
<el-dropdown-menu class="pumplist_dropdown_menu">
|
<el-dropdown-item command="efficiencySort">
|
<div class="check-icon-style">
|
<el-icon v-if="state.currentSortMethodIndex == 1" color="blue">
|
<Check />
|
</el-icon>
|
</div>
|
{{ t("selectPage.efficiencySort.TR") }}
|
</el-dropdown-item>
|
<el-dropdown-item command="compreSort">
|
<div class="check-icon-style">
|
<el-icon v-if="state.currentSortMethodIndex == 2" color="blue">
|
<Check />
|
</el-icon>
|
</div>
|
{{ t("selectPage.qPerQBepSort.TR") }}
|
</el-dropdown-item>
|
</el-dropdown-menu>
|
</template>
|
</el-dropdown>
|
<!-- 列选择 -->
|
<el-popover placement="bottom" width="90" trigger="click" max-height="300" popper-class="col-select-popStyle">
|
<el-scrollbar height="500px">
|
<el-checkbox-group v-model="state.m_dispColumnNameList">
|
<el-checkbox v-for="item in state.m_columnOptions" v-model="item.label" :key="item.value"
|
:value="item.label" :disabled="item.disable">{{ item.label }}</el-checkbox>
|
</el-checkbox-group>
|
</el-scrollbar>
|
<template #reference>
|
<el-button class="btn_color">
|
{{ t("selectPage.selRow.TR") }}
|
<el-icon class="el-icon--right"><arrow-down /></el-icon>
|
</el-button>
|
</template>
|
</el-popover>
|
<!-- 比较 -->
|
<el-button class="btn_color" @click="toCompare4Select">
|
{{ t("header.compare.TR") }}
|
</el-button>
|
<!-- 导出 -->
|
<el-button class="btn_color" @click="exportExcel">
|
{{ t("selectPage.export.TR") }}
|
</el-button>
|
<el-button class="btn_span custom-btn-span" @click="prevPage">
|
{{ t("selectPage.previous.TR") }}
|
</el-button>
|
</div>
|
</div>
|
<div class="tableBox">
|
<!-- 用于展示的表格 -->
|
<el-table ref="tableList" :data="state.disp_tableData" border stripe :max-height="state.tableMaxHeight"
|
style="width: 100%" :header-cell-style="{
|
background: '#b0d8dd',
|
color: '#606266',
|
height: '63px',
|
}" @selection-change="handleTableSelectionChange" :empty-text="state.tableEmptyContent">
|
<el-table-column type="selection" width="55"> </el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.physical.TR'))" fixed align="center"
|
header-align="center" width="200" :label="t('selectPage.physical.TR')">
|
<template #default="scope">
|
<el-tooltip class="item" :enterable="true" effect="dark" placement="right-start">
|
<template #content>
|
{{ t("ebookPage.noProfile.TR") }}
|
</template>
|
<div>
|
<img :src="scope.row.ThumbnailImage" :onerror="handleOnError" class="thumbnail-img-style"
|
:alt="`${scope.row.groupName}`" />
|
</div>
|
</el-tooltip>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.series.TR'))" align="center" header-align="center"
|
width="120" fixed prop="SereisName" :label="t('selectPage.series.TR')">
|
</el-table-column>
|
<el-table-column sortable v-if="getColumnVisbileStatus(t('selectPage.model.TR'))" align="center"
|
header-align="center" width="160" fixed prop="PumpName" :label="t('selectPage.model.TR')">
|
<template #default="scope">
|
<div @click="clickPumpNameCell(scope.$index, scope.row)">
|
<span id="series_selected_name" style="cursor: pointer">{{
|
scope.row.PumpName
|
}}</span>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column align="center" header-align="center" width="300" fixed prop="WorkCurveGroup"
|
:label="t('selectPage.diagram.TR')">
|
<template #default="scope">
|
<div class="CurveChart" :data-svg="true" :id="scope.row.PumpID" :data-pump_id="scope.row.PumpID"
|
:data-pump_charttype="scope.row.ChartType"></div>
|
</template>
|
</el-table-column>
|
<!-- 流量 -->
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.flow.TR'))" align="right" header-align="center"
|
prop="WorkPtQ" class-name="tool-tip-cell-style">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.flow.TR") }}</div>
|
<div>{{ state.SelDesignPtQUnitName }}</div>
|
</div>
|
</template>
|
<template #default="scope">
|
<el-tooltip v-if="hasToolTipByProp('WorkPtQ', scope.row.TipColumns)" class="item" :enterable="true"
|
effect="dark" placement="top">
|
<template #content>
|
{{ getNoteByProp("WorkPtQ", scope.row.TipColumns) }}
|
</template>
|
<div class="table-default-style" :class="hasToolTipByProp('WorkPtQ', scope.row.TipColumns)
|
? 'bg-yellow'
|
: ''
|
">
|
<el-icon>
|
<warning-filled />
|
</el-icon>
|
<span>{{ scope.row.WorkPtQ }}</span>
|
</div>
|
</el-tooltip>
|
<span v-else>{{ scope.row.WorkPtQ }}</span>
|
</template>
|
</el-table-column>
|
<!-- 扬程 -->
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.head.TR'))" align="right" header-align="center"
|
prop="WorkPtH" class-name="tool-tip-cell-style">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.head.TR") }}</div>
|
<div>{{ state.SelDesignPtHUnitName }}</div>
|
</div>
|
</template>
|
<template #default="scope">
|
<el-tooltip v-if="hasToolTipByProp('WorkPtH', scope.row.TipColumns)" class="item" :enterable="true"
|
effect="dark" placement="top">
|
<template #content>
|
{{ getNoteByProp("WorkPtH", scope.row.TipColumns) }}
|
</template>
|
<div class="table-default-style" :class="hasToolTipByProp('WorkPtH', scope.row.TipColumns)
|
? 'bg-yellow'
|
: ''
|
">
|
<el-icon>
|
<warning-filled />
|
</el-icon>
|
<span>{{ scope.row.WorkPtH }}</span>
|
</div>
|
</el-tooltip>
|
<span v-else>{{ scope.row.WorkPtH }}</span>
|
</template>
|
</el-table-column>
|
<!-- 效率 -->
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.efficiency.TR'))" sortable align="right"
|
header-align="center" width="120" prop="WorkPtE" class-name="tool-tip-cell-style"
|
style="display: flex; justify-content: center; align-items: center">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.efficiency.TR") }}</div>
|
<div>(%)</div>
|
</div>
|
</template>
|
<template #default="scope">
|
<el-tooltip v-if="hasToolTipByProp('WorkPtE', scope.row.TipColumns)" class="item" :enterable="true"
|
effect="dark" placement="top">
|
<template #content>
|
{{ getNoteByProp("WorkPtE", scope.row.TipColumns) }}
|
</template>
|
<div class="table-default-style" :class="hasToolTipByProp('WorkPtE', scope.row.TipColumns)
|
? 'bg-yellow'
|
: ''
|
">
|
<el-icon>
|
<warning-filled />
|
</el-icon>
|
<span>{{ scope.row.WorkPtE }}</span>
|
</div>
|
</el-tooltip>
|
<span v-else>{{ scope.row.WorkPtE }}</span>
|
</template>
|
</el-table-column>
|
<!-- -->
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.PerRated.TR'))" align="right"
|
header-align="center" width="120" prop="PerRated"
|
style="display: flex; justify-content: center; align-items: center">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.PerRated.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.PerRatedQ.TR'))" align="right"
|
header-align="center" width="120" prop="PerRatedQ"
|
style="display: flex; justify-content: center; align-items: center">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.PerRatedQ.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
<!-- 轴功率 -->
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.shaftPower.TR'))" align="right"
|
header-align="center" prop="WorkPtP" class-name="tool-tip-cell-style">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.shaftPower.TR") }}</div>
|
<div>({{ state.SelDesignPtPUnitName }})</div>
|
</div>
|
</template>
|
<template #default="scope">
|
<el-tooltip v-if="hasToolTipByProp('WorkPtP', scope.row.TipColumns)" class="item" :enterable="true"
|
effect="dark" placement="top">
|
<template #content>
|
{{ getNoteByProp("WorkPtP", scope.row.TipColumns) }}
|
</template>
|
<div class="table-default-style" :class="hasToolTipByProp('WorkPtP', scope.row.TipColumns)
|
? 'bg-yellow'
|
: ''
|
">
|
<el-icon>
|
<warning-filled />
|
</el-icon>
|
<span>{{ scope.row.WorkPtP }}</span>
|
</div>
|
</el-tooltip>
|
<span v-else>{{ scope.row.WorkPtP }}</span>
|
</template>
|
</el-table-column>
|
<!-- 电机功率 -->
|
<el-table-column v-if="getColumnVisbileStatus(t('detailPage.motorPower.TR'))" align="right"
|
header-align="center" prop="MotorPower" class-name="tool-tip-cell-style">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("detailPage.motorPower.TR") }}</div>
|
<div>(kW)</div>
|
</div>
|
</template>
|
<template #default="scope">
|
<el-tooltip v-if="hasToolTipByProp('MotorPower', scope.row.TipColumns)" class="item" :enterable="true"
|
effect="dark" placement="top">
|
<template #content>
|
{{ getNoteByProp("MotorPower", scope.row.TipColumns) }}
|
</template>
|
<div class="table-default-style" :class="hasToolTipByProp('MotorPower', scope.row.TipColumns)
|
? 'bg-yellow'
|
: ''
|
">
|
<el-icon>
|
<warning-filled />
|
</el-icon>
|
<span>{{ scope.row.MotorPower }}</span>
|
</div>
|
</el-tooltip>
|
<span v-else>{{ scope.row.MotorPower }}</span>
|
</template>
|
</el-table-column>
|
<!-- 汽蚀 -->
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.npsh.TR'))" align="right" header-align="center"
|
prop="WorkPtNPSH" class-name="tool-tip-cell-style">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.npsh.TR") }}</div>
|
<div>(m)</div>
|
</div>
|
</template>
|
<template #default="scope">
|
<el-tooltip v-if="hasToolTipByProp('WorkPtNPSH', scope.row.TipColumns)" class="item" :enterable="true"
|
effect="dark" placement="top">
|
<template #content>
|
{{ getNoteByProp("WorkPtNPSH", scope.row.TipColumns) }}
|
</template>
|
<div class="table-default-style" :class="hasToolTipByProp('WorkPtNPSH', scope.row.TipColumns)
|
? 'bg-yellow'
|
: ''
|
">
|
<el-icon>
|
<warning-filled />
|
</el-icon>
|
<span>{{ scope.row.WorkPtNPSH }}</span>
|
</div>
|
</el-tooltip>
|
<span v-else>{{ scope.row.WorkPtNPSH }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.speed.TR'))" align="right" header-align="center"
|
prop="WorkSpeed">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.speed.TR") }}</div>
|
<div>rpm</div>
|
</div>
|
</template>
|
</el-table-column>
|
<!-- 叶轮直径 -->
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.impellerDiameter.TR'))" align="right"
|
header-align="center" prop="WorkD2" class-name="tool-tip-cell-style">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.impellerDiameter.TR") }}</div>
|
<div>(mm)</div>
|
</div>
|
</template>
|
<template #default="scope">
|
<el-tooltip v-if="hasToolTipByProp('WorkD2', scope.row.TipColumns)" class="item" :enterable="true"
|
effect="dark" placement="top">
|
<template #content>
|
{{ getNoteByProp("WorkD2", scope.row.TipColumns) }}
|
</template>
|
<div class="table-default-style" :class="hasToolTipByProp('WorkD2', scope.row.TipColumns)
|
? 'bg-yellow'
|
: ''
|
">
|
<el-icon>
|
<warning-filled />
|
</el-icon>
|
<span>{{ scope.row.WorkD2 }}</span>
|
</div>
|
</el-tooltip>
|
<span v-else>{{ scope.row.WorkD2 }}</span>
|
</template>
|
</el-table-column>
|
<!-- 最大允许流量 -->
|
<el-table-column v-if="getColumnVisbileStatus('最大允许流量')" align="right" header-align="center"
|
prop="AllowableRegionMax" class-name="tool-tip-cell-style">
|
<template #header>
|
<div class="tabHead">
|
<div>最大允许流量</div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.note.TR'))" align="center" header-align="center"
|
width="80" prop="Note">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.note.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.ratedSpeed.TR'))" align="center"
|
header-align="center" width="80" prop="Ratedn">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.ratedSpeed.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.vbr.TR'))" align="center" header-align="center"
|
width="80" prop="SpeedRatio">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.vbr.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
<!-- 切割率 -->
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.cuttingRate.TR'))" align="right"
|
header-align="center" prop="CutRatio" class-name="tool-tip-cell-style">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.cuttingRate.TR") }}</div>
|
<div>(%)</div>
|
</div>
|
</template>
|
<template #default="scope">
|
<el-tooltip v-if="hasToolTipByProp('CutRatio', scope.row.TipColumns)" class="item" :enterable="true"
|
effect="dark" placement="top">
|
<template #content>
|
{{ getNoteByProp("CutRatio", scope.row.TipColumns) }}
|
</template>
|
<div class="table-default-style" :class="hasToolTipByProp('CutRatio', scope.row.TipColumns)
|
? 'bg-yellow'
|
: ''
|
">
|
<el-icon>
|
<warning-filled />
|
</el-icon>
|
<span>{{ scope.row.CutRatio }}</span>
|
</div>
|
</el-tooltip>
|
<span v-else>{{ scope.row.CutRatio }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.guidePrice.TR'))" align="center"
|
header-align="center" width="80" prop="OriginSalePrice">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.guidePrice.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.salesPrice.TR'))" align="center"
|
header-align="center" width="80" prop="SalePrice">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.salesPrice.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.pumpStages.TR'))" align="center"
|
header-align="center" width="80" prop="StageNumber">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.pumpStages.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="
|
getColumnVisbileStatus(
|
t('selectPage.originalImpellerDiameter.TR')
|
)
|
" align="center" header-align="center" width="120" prop="OrginD2">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.originalImpellerDiameter.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column :label="t('selectPage.details.TR')" align="right" header-align="center" width="100"
|
fixed="right">
|
<template #default="scope">
|
<el-button size="default" class="btn_color" @click="clickDetailCell(scope.$index, scope.row)">{{
|
t("selectPage.details.TR") }}</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
|
<!-- 用于导出的表格 -->
|
<el-table v-show="false" id="export-sel-list" ref="exportSelListRef" :data="state.exportTableData"
|
:empty-text="state.tableEmptyContent">
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.series.TR'))" align="center" header-align="center"
|
width="120" prop="SereisName" :label="t('selectPage.series.TR')">
|
</el-table-column>
|
<el-table-column sortable v-if="getColumnVisbileStatus(t('selectPage.model.TR'))" align="center"
|
header-align="center" width="160" prop="PumpName" :label="t('selectPage.model.TR')">
|
<template #default="scope">
|
<div @click="clickPumpNameCell(scope.$index, scope.row)">
|
<span id="series_selected_name" style="cursor: pointer">{{
|
scope.row.PumpName
|
}}</span>
|
</div>
|
</template>
|
</el-table-column>
|
<!-- 流量 -->
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.flow.TR'))" align="right" header-align="center"
|
prop="WorkPtQ" class-name="tool-tip-cell-style">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.flow.TR") }}</div>
|
<div>{{ state.SelDesignPtQUnitName }}</div>
|
</div>
|
</template>
|
<template #default="scope">
|
<el-tooltip v-if="hasToolTipByProp('WorkPtQ', scope.row.TipColumns)" class="item" :enterable="true"
|
effect="dark" placement="top">
|
<template #content>
|
{{ getNoteByProp("WorkPtQ", scope.row.TipColumns) }}
|
</template>
|
<div class="table-default-style" :class="hasToolTipByProp('WorkPtQ', scope.row.TipColumns)
|
? 'bg-yellow'
|
: ''
|
">
|
<el-icon>
|
<warning-filled />
|
</el-icon>
|
<span>{{ scope.row.WorkPtQ }}</span>
|
</div>
|
</el-tooltip>
|
<span v-else>{{ scope.row.WorkPtQ }}</span>
|
</template>
|
</el-table-column>
|
<!-- 扬程 -->
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.head.TR'))" align="right" header-align="center"
|
prop="WorkPtH" class-name="tool-tip-cell-style">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.head.TR") }}</div>
|
<div>{{ state.SelDesignPtHUnitName }}</div>
|
</div>
|
</template>
|
<template #default="scope">
|
<el-tooltip v-if="hasToolTipByProp('WorkPtH', scope.row.TipColumns)" class="item" :enterable="true"
|
effect="dark" placement="top">
|
<template #content>
|
{{ getNoteByProp("WorkPtH", scope.row.TipColumns) }}
|
</template>
|
<div class="table-default-style" :class="hasToolTipByProp('WorkPtH', scope.row.TipColumns)
|
? 'bg-yellow'
|
: ''
|
">
|
<el-icon>
|
<warning-filled />
|
</el-icon>
|
<span>{{ scope.row.WorkPtH }}</span>
|
</div>
|
</el-tooltip>
|
<span v-else>{{ scope.row.WorkPtH }}</span>
|
</template>
|
</el-table-column>
|
<!-- 效率 -->
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.efficiency.TR'))" sortable align="right"
|
header-align="center" width="120" prop="WorkPtE" class-name="tool-tip-cell-style"
|
style="display: flex; justify-content: center; align-items: center">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.efficiency.TR") }}</div>
|
<div>(%)</div>
|
</div>
|
</template>
|
<template #default="scope">
|
<el-tooltip v-if="hasToolTipByProp('WorkPtE', scope.row.TipColumns)" class="item" :enterable="true"
|
effect="dark" placement="top">
|
<template #content>
|
{{ getNoteByProp("WorkPtE", scope.row.TipColumns) }}
|
</template>
|
<div class="table-default-style" :class="hasToolTipByProp('WorkPtE', scope.row.TipColumns)
|
? 'bg-yellow'
|
: ''
|
">
|
<el-icon>
|
<warning-filled />
|
</el-icon>
|
<span>{{ scope.row.WorkPtE }}</span>
|
</div>
|
</el-tooltip>
|
<span v-else>{{ scope.row.WorkPtE }}</span>
|
</template>
|
</el-table-column>
|
<!-- -->
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.PerRated.TR'))" align="right"
|
header-align="center" width="120" prop="PerRated"
|
style="display: flex; justify-content: center; align-items: center">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.PerRated.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.PerRatedQ.TR'))" align="right"
|
header-align="center" width="120" prop="PerRatedQ"
|
style="display: flex; justify-content: center; align-items: center">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.PerRatedQ.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
<!-- 轴功率 -->
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.shaftPower.TR'))" align="right"
|
header-align="center" prop="WorkPtP" class-name="tool-tip-cell-style">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.shaftPower.TR") }}</div>
|
<div>({{ state.SelDesignPtPUnitName }})</div>
|
</div>
|
</template>
|
<template #default="scope">
|
<el-tooltip v-if="hasToolTipByProp('WorkPtP', scope.row.TipColumns)" class="item" :enterable="true"
|
effect="dark" placement="top">
|
<template #content>
|
{{ getNoteByProp("WorkPtP", scope.row.TipColumns) }}
|
</template>
|
<div class="table-default-style" :class="hasToolTipByProp('WorkPtP', scope.row.TipColumns)
|
? 'bg-yellow'
|
: ''
|
">
|
<el-icon>
|
<warning-filled />
|
</el-icon>
|
<span>{{ scope.row.WorkPtP }}</span>
|
</div>
|
</el-tooltip>
|
<span v-else>{{ scope.row.WorkPtP }}</span>
|
</template>
|
</el-table-column>
|
<!-- 电机功率 -->
|
<el-table-column v-if="getColumnVisbileStatus(t('detailPage.motorPower.TR'))" align="right"
|
header-align="center" prop="MotorPower" class-name="tool-tip-cell-style">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("detailPage.motorPower.TR") }}</div>
|
<div>(kW)</div>
|
</div>
|
</template>
|
<template #default="scope">
|
<el-tooltip v-if="hasToolTipByProp('MotorPower', scope.row.TipColumns)" class="item" :enterable="true"
|
effect="dark" placement="top">
|
<template #content>
|
{{ getNoteByProp("MotorPower", scope.row.TipColumns) }}
|
</template>
|
<div class="table-default-style" :class="hasToolTipByProp('MotorPower', scope.row.TipColumns)
|
? 'bg-yellow'
|
: ''
|
">
|
<el-icon>
|
<warning-filled />
|
</el-icon>
|
<span>{{ scope.row.MotorPower }}</span>
|
</div>
|
</el-tooltip>
|
<span v-else>{{ scope.row.MotorPower }}</span>
|
</template>
|
</el-table-column>
|
<!-- 汽蚀 -->
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.npsh.TR'))" align="right" header-align="center"
|
prop="WorkPtNPSH" class-name="tool-tip-cell-style">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.npsh.TR") }}</div>
|
<div>(m)</div>
|
</div>
|
</template>
|
<template #default="scope">
|
<el-tooltip v-if="hasToolTipByProp('WorkPtNPSH', scope.row.TipColumns)" class="item" :enterable="true"
|
effect="dark" placement="top">
|
<template #content>
|
{{ getNoteByProp("WorkPtNPSH", scope.row.TipColumns) }}
|
</template>
|
<div class="table-default-style" :class="hasToolTipByProp('WorkPtNPSH', scope.row.TipColumns)
|
? 'bg-yellow'
|
: ''
|
">
|
<el-icon>
|
<warning-filled />
|
</el-icon>
|
<span>{{ scope.row.WorkPtNPSH }}</span>
|
</div>
|
</el-tooltip>
|
<span v-else>{{ scope.row.WorkPtNPSH }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.speed.TR'))" align="right" header-align="center"
|
prop="WorkSpeed">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.speed.TR") }}</div>
|
<div>rpm</div>
|
</div>
|
</template>
|
</el-table-column>
|
<!-- 叶轮直径 -->
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.impellerDiameter.TR'))" align="right"
|
header-align="center" prop="WorkD2" class-name="tool-tip-cell-style">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.impellerDiameter.TR") }}</div>
|
<div>({{ state.SelDesignPtD2UnitName }})</div>
|
</div>
|
</template>
|
<template #default="scope">
|
<el-tooltip v-if="hasToolTipByProp('WorkD2', scope.row.TipColumns)" class="item" :enterable="true"
|
effect="dark" placement="top">
|
<template #content>
|
{{ getNoteByProp("WorkD2", scope.row.TipColumns) }}
|
</template>
|
<div class="table-default-style" :class="hasToolTipByProp('WorkD2', scope.row.TipColumns)
|
? 'bg-yellow'
|
: ''
|
">
|
<el-icon>
|
<warning-filled />
|
</el-icon>
|
<span>{{ scope.row.WorkD2 }}</span>
|
</div>
|
</el-tooltip>
|
<span v-else>{{ scope.row.WorkD2 }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.note.TR'))" align="center" header-align="center"
|
width="80" prop="Note">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.note.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.ratedSpeed.TR'))" align="center"
|
header-align="center" width="80" prop="Ratedn">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.ratedSpeed.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.vbr.TR'))" align="center" header-align="center"
|
width="80" prop="SpeedRatio">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.vbr.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
<!-- 切割率 -->
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.cuttingRate.TR'))" align="right"
|
header-align="center" prop="CutRatio" class-name="tool-tip-cell-style">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.cuttingRate.TR") }}</div>
|
<div>(%)</div>
|
</div>
|
</template>
|
<template #default="scope">
|
<el-tooltip v-if="hasToolTipByProp('CutRatio', scope.row.TipColumns)" class="item" :enterable="true"
|
effect="dark" placement="top">
|
<template #content>
|
{{ getNoteByProp("CutRatio", scope.row.TipColumns) }}
|
</template>
|
<div class="table-default-style" :class="hasToolTipByProp('CutRatio', scope.row.TipColumns)
|
? 'bg-yellow'
|
: ''
|
">
|
<el-icon>
|
<warning-filled />
|
</el-icon>
|
<span>{{ scope.row.CutRatio }}</span>
|
</div>
|
</el-tooltip>
|
<span v-else>{{ scope.row.CutRatio }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.guidePrice.TR'))" align="center"
|
header-align="center" width="80" prop="OriginSalePrice">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.guidePrice.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.salesPrice.TR'))" align="center"
|
header-align="center" width="80" prop="SalePrice">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.salesPrice.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="getColumnVisbileStatus(t('selectPage.pumpStages.TR'))" align="center"
|
header-align="center" width="80" prop="StageNumber">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.pumpStages.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="
|
getColumnVisbileStatus(
|
t('selectPage.originalImpellerDiameter.TR')
|
)
|
" align="center" header-align="center" width="120" prop="OrginD2">
|
<template #header>
|
<div class="tabHead">
|
<div>{{ t("selectPage.originalImpellerDiameter.TR") }}</div>
|
<div></div>
|
</div>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
</div>
|
</div>
|
</template>
|
|
<script setup name="pumpListGeneral">
|
import errorImg from "@/assets/img_fail.png";
|
import { onMounted, reactive, ref, watch, nextTick } from "vue";
|
import {
|
ElMessage,
|
ElTable,
|
ElTableColumn,
|
ElDropdown,
|
ElDropdownItem,
|
ElDropdownMenu,
|
ElButton,
|
ElTooltip,
|
ElPopover,
|
ElCheckboxGroup,
|
ElCheckbox,
|
ElScrollbar,
|
} from "element-plus";
|
import {GetPageList} from '@/api/select'
|
import thumbnailChart from "@/components/Chart/js/ThumbnailChart.js";
|
import UnitHelper from "@/utils/unit.js";
|
import FileSaver from "file-saver";
|
import * as XLSX from "xlsx";
|
import ConstParas from "@/utils/constParas.js";
|
import { useI18n } from "vue-i18n";
|
import { useSelect } from "@/stores/select";
|
import { useRoute, useRouter } from "vue-router";
|
import noneImg from "@/assets/none_img.png";
|
const m_currentLanguage = 0;
|
const { t } = useI18n();
|
|
const emits = defineEmits(["prevPageClick"]);
|
const selectStore = useSelect();
|
|
const state = reactive({
|
detailPageQueryModel: {}, //用于传送给下一个页面的类
|
|
SelDesignPtQ_StdUnit: 0, //标准单位的设计点(用于绘制小图)
|
SelDesignPtH_StdUnit: 0, //标准单位的设计点(用于绘制小图)
|
|
SelDesignPtQUnit: 0,
|
SelDesignPtQUnitName: "m³/h",
|
|
SelDesignPtHUnit: 1,
|
SelDesignPtHUnitName: "m",
|
|
SelDesignPtPUnit: 1,
|
SelDesignPtPUnitName: "kW",
|
|
SelDesignPtD2Unit: 0,
|
SelDesignPtD2UnitName: "mm",
|
|
isShowLoadingFrm: true, //等待框
|
|
tableData: [],
|
disp_tableData: [],
|
exportTableData: [],
|
m_columnOptions: [
|
{
|
label: `${t("selectPage.physical.TR")}`,
|
unit: "",
|
value: 1,
|
disable: true,
|
visible: true,
|
},
|
{
|
label: `${t("selectPage.series.TR")}`,
|
unit: "",
|
value: 2,
|
disable: true,
|
visible: true,
|
},
|
{
|
label: `${t("selectPage.model.TR")}`,
|
unit: "",
|
value: 3,
|
disable: true,
|
visible: true,
|
},
|
{
|
label: `${t("selectPage.diagram.TR")}`,
|
unit: "",
|
value: 4,
|
disable: true,
|
visible: true,
|
},
|
{
|
label: `${t("selectPage.flow.TR")}`,
|
unit: "(m³/h)",
|
value: 5,
|
disable: false,
|
visible: true,
|
},
|
{
|
label: `${t("selectPage.head.TR")}`,
|
unit: "(m)",
|
value: 6,
|
disable: false,
|
visible: true,
|
},
|
{
|
label: `${t("selectPage.efficiency.TR")}`,
|
unit: "(kW)",
|
value: 7,
|
disable: false,
|
visible: true,
|
},
|
{
|
label: `${t("selectPage.shaftPower.TR")}`,
|
unit: "(kW)",
|
value: "",
|
disable: false,
|
visible: true,
|
},
|
//电机功率
|
{
|
label: `${t("detailPage.motorPower.TR")}`,
|
unit: "(kW)",
|
value: "MotorPower",
|
disable: true,
|
visible: true,
|
},
|
{
|
label: `${t("selectPage.npsh.TR")}`,
|
unit: "(m)",
|
value: 8,
|
disable: false,
|
visible: true,
|
},
|
{
|
label: `${t("selectPage.efficiency.TR")}`,
|
unit: "(%)",
|
value: 9,
|
disable: false,
|
visible: true,
|
},
|
{
|
label: `${t("selectPage.speed.TR")}`,
|
unit: "(rpm)",
|
value: 10,
|
disable: false,
|
visible: true,
|
},
|
{
|
label: `${t("selectPage.impellerDiameter.TR")}`,
|
unit: "mm",
|
value: 11,
|
disable: false,
|
visible: true,
|
},
|
{
|
label: `最大允许流量`,
|
unit: "",
|
value: "",
|
disable: false,
|
visible: false,
|
},
|
{
|
label: `${t("selectPage.vbr.TR")}`,
|
unit: "%",
|
value: 12,
|
disable: false,
|
visible: false,
|
},
|
{
|
label: `${t("selectPage.cuttingRate.TR")}`,
|
unit: "(%)",
|
value: 13,
|
disable: false,
|
visible: false,
|
},
|
{
|
label: `${t("selectPage.salesPrice.TR")}`,
|
value: 14,
|
disable: false,
|
visible: false,
|
},
|
{
|
label: `${t("selectPage.guidePrice.TR")}`,
|
value: 24,
|
disable: false,
|
visible: false,
|
},
|
{
|
label: `${t("selectPage.pumpStages.TR")}`,
|
value: 15,
|
disable: false,
|
visible: false,
|
},
|
{
|
label: `${t("selectPage.originalImpellerDiameter.TR")}`,
|
unit: "mm",
|
value: 16,
|
disable: false,
|
visible: false,
|
},
|
{
|
label: `${t("selectPage.deadCenterLift.TR")}`,
|
unit: "(m)",
|
value: 17,
|
disable: false,
|
visible: false,
|
},
|
{
|
label: `${t("selectPage.ratedSpeed.TR")}`,
|
unit: "(rpm)",
|
value: 19,
|
disable: false,
|
visible: false,
|
},
|
{
|
label: `${t("selectPage.note.TR")}`,
|
value: 22,
|
disable: true,
|
visible: false,
|
},
|
{
|
label: `${t("selectPage.details.TR")}`,
|
value: 23,
|
disable: true,
|
visible: true,
|
},
|
{
|
label: `${t("selectPage.PerRated.TR")}`,
|
value: 25,
|
disable: false,
|
visible: false,
|
},
|
{
|
label: `${t("selectPage.PerRatedQ.TR")}`,
|
value: 26,
|
disable: false,
|
visible: false,
|
},
|
],
|
m_dispColumnNameList: [],
|
tableMaxHeight: 790,
|
m_currentSelectArr: [], //存放当前选择的数组
|
m_compare4SelectList: [], //当前的比较列表
|
currentSelectIcon: "el-icon-check",
|
currentSortMethodIndex: 2, //当前排序方法默认是综合排序
|
|
m_currentFromPath: "123", //当前是哪个页面跳转过来的
|
tableEmptyContent: `Loading...`,
|
m_headerTitle: "",
|
m_NPSHa_Ratio: 0.6, //气蚀差值系数
|
});
|
const route = useRoute();
|
const router = useRouter();
|
const tableList = ref();
|
watch(
|
() => state.m_dispColumnNameList,
|
(m_dispColumnNameList) => { },
|
{ deep: true, immediate: true }
|
);
|
|
const initialPage = () => {
|
state.tableEmptyContent = `Loading...`;
|
const pageConfig = window.pageConfig.SelParasPage;
|
let currentLang = "CN";
|
if (pageConfig.HeadSetting) {
|
state.m_headerTitle = pageConfig.HeadSetting.Title[currentLang];
|
}
|
|
state.m_NPSHa_Ratio = pageConfig.NPSHaRatio ?? state.m_NPSHa_Ratio;
|
|
let prvePathDataObj = selectStore.ByParas.selectParas;
|
|
if (prvePathDataObj == null) return;
|
if (prvePathDataObj.DesignInfo == null) return;
|
|
var selDesignPtQ = prvePathDataObj.DesignInfo.DpQ;
|
var selDesignPtQUnit = prvePathDataObj.DesignInfo.UnitQ;
|
var selDesignPtH = prvePathDataObj.DesignInfo.DpH;
|
var selDesignPtHUnit = prvePathDataObj.DesignInfo.UnitH;
|
|
state.SelDesignPtQUnit = selDesignPtQUnit;
|
state.SelDesignPtQUnitName = UnitHelper.GetUnitNameQ(selDesignPtQUnit);
|
state.SelDesignPtQ_StdUnit = UnitHelper.ConvertQ_toM3H(
|
selDesignPtQUnit,
|
selDesignPtQ
|
);
|
|
state.SelDesignPtHUnit = selDesignPtHUnit;
|
state.SelDesignPtHUnitName = UnitHelper.GetUnitNameH(selDesignPtHUnit);
|
state.SelDesignPtH_StdUnit = UnitHelper.ConvertH_toM(
|
selDesignPtHUnit,
|
selDesignPtH
|
);
|
|
let D2_unit_setting = 0;
|
if (D2_unit_setting >= 0) {
|
state.SelDesignPtD2Unit = D2_unit_setting;
|
state.SelDesignPtD2UnitName = UnitHelper.GetUnitNameLength(D2_unit_setting);
|
}
|
|
var p_unit_setting = 1;
|
if (p_unit_setting >= 0) {
|
state.SelDesignPtPUnit = p_unit_setting;
|
state.SelDesignPtPUnitName = UnitHelper.GetUnitNameP(p_unit_setting);
|
}
|
|
var dispColumnNameList = [];
|
state.m_columnOptions.forEach((element) => {
|
if (element.visible) dispColumnNameList.push(element.label);
|
|
if (element.label.indexOf("流量") >= 0)
|
element.unit = UnitHelper.GetUnitNameQ(selDesignPtQUnit);
|
if (element.label.indexOf("扬程") >= 0)
|
element.unit = UnitHelper.GetUnitNameH(selDesignPtHUnit);
|
});
|
state.m_dispColumnNameList = dispColumnNameList;
|
// 初始化数据
|
initData(prvePathDataObj);
|
|
nextTick(function () {
|
let headHeight = 0;
|
let footerHeight = 0;
|
if (document.querySelector("#app header")) {
|
headHeight = document.querySelector("#app header").clientHeight;
|
}
|
if (document.querySelector("#app footer")) {
|
footerHeight = document.querySelector("#app footer").clientHeight;
|
}
|
state.tableMaxHeight =
|
document.body.clientHeight - headHeight - footerHeight - 40; //
|
});
|
window.onresize = () => {
|
let headHeight = 0;
|
let footerHeight = 0;
|
if (document.querySelector("#app header")) {
|
headHeight = document.querySelector("#app header").clientHeight;
|
}
|
if (document.querySelector("#app footer")) {
|
footerHeight = document.querySelector("#app footer").clientHeight;
|
}
|
return (() => {
|
//窗口变化是设置表格最大高度,使其适应窗口变化
|
state.tableMaxHeight =
|
document.body.clientHeight - headHeight - footerHeight - 40;
|
})();
|
};
|
};
|
//初始化数据
|
const initData = (prvePathDataObj) => {
|
document.title = `${t("selectPage.selResult.TR")}`;
|
// 先将数据置空
|
state.tableData = [];
|
state.disp_tableData = [];
|
|
if (prvePathDataObj.DesignInfo.IsAllowCut == undefined) {
|
prvePathDataObj.DesignInfo.IsAllowCut = true;
|
}
|
|
if (prvePathDataObj.DesignInfo.IsAllowFrequence == undefined) {
|
prvePathDataObj.DesignInfo.IsAllowFrequence = true;
|
}
|
|
let postRequestData = {
|
//介质
|
JieZhi: {
|
ID: prvePathDataObj.JieZhi.ID, //介质id
|
Name: prvePathDataObj.JieZhi.Name, //介质名称
|
CalcDensity: prvePathDataObj.JieZhi.CalcDensity, //密度
|
CalcViscosity: prvePathDataObj.JieZhi.CalcViscosity, //粘度
|
},
|
//筛选信息
|
FilterInfo: {
|
DriveType: prvePathDataObj.FilterInfo.DriveType, //设备类型 0电机 3柴油机
|
KeyWord: prvePathDataObj.FilterInfo.KeyWord, //关键字 暂时默认空
|
FirePumpType: prvePathDataObj.FilterInfo.FirePumpType, // 消防泵类型
|
MotorPoleNum: prvePathDataObj.FilterInfo.MotorPoleNum, //电机效率等级 暂时为空
|
MotorPower: prvePathDataObj.FilterInfo.MotorPower, //电机功率
|
MotorFrequence: prvePathDataObj.FilterInfo.MotorFrequence, //电机赫兹
|
// "MotorStandard": prvePathDataObj.FilterInfo.MotorStandard?'International' : 'US Standard',//客户为泰戈的时候使用
|
MotorStandard: prvePathDataObj.FilterInfo.MotorStandard,
|
DieselSpeed: prvePathDataObj.FilterInfo.DieselSpeed == "" ? 0 : prvePathDataObj.FilterInfo.DieselSpeed, //柴油机转速 暂时默认
|
MinEta: prvePathDataObj.FilterInfo.MinEta + ""//效率要求
|
},
|
//设计点参数
|
DesignInfo: {
|
UnitQ: prvePathDataObj.DesignInfo.UnitQ, //流量单位
|
UnitH: prvePathDataObj.DesignInfo.UnitH, //扬程单位
|
DpQ: prvePathDataObj.DesignInfo.DpQ, //输入的流量的值
|
DpH: prvePathDataObj.DesignInfo.DpH, //输入的扬程的值
|
IsAllowCut: prvePathDataObj.DesignInfo.IsAllowCut, //是否允许切割
|
IsAllowFrequence: prvePathDataObj.DesignInfo.IsAllowFrequence, //是否允许变频
|
PointTolerance: prvePathDataObj.DesignInfo.PointTolerance, // 点容差范围 默认空
|
IsVisCorrect: prvePathDataObj.DesignInfo.IsVisCorrect, //是否修正粘度 默认false
|
},
|
SeriesID: prvePathDataObj.FilterInfo.SeriesID, //泵系列ID
|
CatalogID: prvePathDataObj.FilterInfo.CatalogID, //泵类型id
|
SoftType: window.globalConfig.SoftType,
|
SystemInfo: "",
|
};
|
|
state.detailPageQueryModel = {
|
//用于点击表格详情传出的参数
|
SID: "",
|
PID: "",
|
from: ConstParas.DetailPageFrom.ByParas,
|
pur: ConstParas.DetailPagePurpose.ByParas,
|
DpQ: postRequestData.DesignInfo.DpQ,
|
DpH: postRequestData.DesignInfo.DpH,
|
DpQu: postRequestData.DesignInfo.UnitQ,
|
DpHu: postRequestData.DesignInfo.UnitH,
|
jzid: postRequestData.JieZhi.ID,
|
jzmd: postRequestData.JieZhi.CalcDensity,
|
jznd: postRequestData.JieZhi.CalcViscosity,
|
jzmz: postRequestData.JieZhi.Name,
|
jzvc: prvePathDataObj.JieZhi.V_C,
|
isndc: prvePathDataObj.DesignInfo.IsVisCorrect,
|
fpt: prvePathDataObj.FilterInfo.FirePumpType,
|
TGrade: postRequestData.DesignInfo.PointTolerance?.ToleranceGrade,
|
TRatioMinQ: postRequestData.DesignInfo.PointTolerance?.RatioMinQ,
|
TRatioMaxQ: postRequestData.DesignInfo.PointTolerance?.RatioMaxQ,
|
TRatioMinH: postRequestData.DesignInfo.PointTolerance?.RatioMinH,
|
TRatioMaxH: postRequestData.DesignInfo.PointTolerance?.RatioMaxH,
|
drive: prvePathDataObj.FilterInfo.DriveType,
|
speed: prvePathDataObj.FilterInfo.DieselSpeed,
|
};
|
|
if (!prvePathDataObj.DesignInfo.IsAllowCut) {
|
state.detailPageQueryModel.iscut = 0;
|
}
|
|
if (!prvePathDataObj.DesignInfo.IsAllowFrequence) {
|
state.detailPageQueryModel.isspeed = 0;
|
}
|
|
let selDesignPtQUnit = state.SelDesignPtQUnit;
|
let selDesignPtHUnit = state.SelDesignPtHUnit;
|
let selDesignPtPUnit = state.SelDesignPtPUnit;
|
let selDesignPtD2Unit = state.SelDesignPtD2Unit;
|
//清除工作曲线
|
clearCurve();
|
GetPageList(postRequestData).then((res) => {
|
state.isShowLoadingFrm = false;
|
let result = res.data;
|
if (result.Code != 0) {
|
state.tableEmptyContent = `${t("ebookPage.noData.TR")}`;
|
if (result.Message.length > 0) state.tableEmptyContent = result.Message;
|
if (result.Code == -3) {
|
let errorMsg = t("selectPage.findErr1.TR");
|
if (result.Message.length > 0) {
|
errorMsg = result.Message;
|
}
|
ElMessage({
|
message: `${errorMsg}`,
|
type: "error",
|
duration: 4000,
|
center: true,
|
});
|
let curr_rount1 = window.location.href;
|
setTimeout(() => {
|
var curr_rount2 = window.location.href;
|
if (curr_rount1 == curr_rount2) {
|
router.go(-1);
|
} //请求不到数据返回上一页
|
else {
|
return;
|
}
|
}, 5000);
|
|
return;
|
} else {
|
ElMessage({
|
message: `${result.Message}`,
|
type: "error",
|
duration: 4000,
|
center: true,
|
});
|
setTimeout(() => {
|
router.go(-1); //请求不到数据返回上一页
|
}, 3000);
|
}
|
return;
|
}
|
// console.log(result, 589)
|
let itemList = result.Data.ItemList;
|
var resultImg = {};
|
var tableData = [];
|
for (let i = 0; i < itemList.length; i++) {
|
var item = itemList[i];
|
|
let tableItem = {
|
CatalogID: item.CatalogID, //类型id
|
ChartType: item.ChartType,
|
SeriesID: item.SeriesID, //系列id
|
PumpID: item.PumpID, //泵id
|
ThumbnailImage: "", //实物图路径
|
SereisName: item.SereisName, //系列
|
PumpName: item.PumpName, //泵型号
|
AllowableRegionMax: item.AllowableRegionMax, //最大允许流量
|
WorkSpeed: item.WorkSpeed, //转速
|
WorkD2: "", //叶轮直径
|
PerRated: item.PerRated, //铭牌参数综合偏差值
|
PerRatedQ: item.PerRatedQ, //铭牌参数流量偏差值
|
MotorPower: item.MotorPower, //电机功率
|
|
Note: item.Note, //备注
|
PlaceAngle: item.PlaceAngle, //安放角
|
QPerQBep: item.QPerQBep, //选型点和高效点的百分比
|
Ratedn: item.Ratedn, //原始额定转速(默认不显示)
|
OrginD2: item.OrginD2, //原始叶轮直径(默认不显示)
|
Note: item.Note,
|
CutRatio: item.CutRatio, //切割率(默认不显示)
|
StageNumber: item.StageNumber, //泵级数(默认不显示)
|
ShutoffHead: item.ShutoffHead, //关死点扬程(默认不显示)
|
SalePrice: item.SalePrice, //销售价(折扣后)
|
OriginSalePrice: item.OriginSalePrice, //指导价(原始)
|
ChartObjects: item.ChartObjects, //工作曲线
|
TipColumns: item.TipColumns ?? [],
|
};
|
let ThumbnailImage = noneImg; //默认图片路径
|
if (item.ThumbnailImage && item.ThumbnailImage != "") {
|
ThumbnailImage =
|
window.globalConfig.WebApiUrl.FileUrl +
|
"Data/" +
|
item.ThumbnailImage;
|
}
|
tableItem.ThumbnailImage = ThumbnailImage;
|
// 叶轮直径
|
if (itemList[i].WorkD2) {
|
const transD2 = (workD2) => {
|
return UnitHelper.getDispValueLength(
|
UnitHelper.ConverLength_FromMM(selDesignPtD2Unit, workD2), true
|
)
|
}
|
let d2_value = itemList[i].WorkD2.split('/');
|
tableItem.WorkD2 = transD2(parseFloat(d2_value[0]));
|
if (d2_value.length > 1) {
|
tableItem.WorkD2 = transD2(parseFloat(d2_value[0])) + '/' + transD2(parseFloat(d2_value[1]));
|
}
|
}
|
if (item.WorkPtNPSH) tableItem.WorkPtNPSH = item.WorkPtNPSH.toFixed(1);
|
|
if (item.WorkPtQ)
|
tableItem.WorkPtQ = UnitHelper.getDispValueQ(
|
UnitHelper.ConvertQ_fromM3H(selDesignPtQUnit, item.WorkPtQ)
|
);
|
|
if (item.WorkPtH)
|
tableItem.WorkPtH = UnitHelper.getDispValueH(
|
UnitHelper.ConvertH_fromM(selDesignPtHUnit, item.WorkPtH)
|
);
|
if (item.WorkPtE) tableItem.WorkPtE = item.WorkPtE;
|
if (item.WorkPtP)
|
tableItem.WorkPtP = UnitHelper.getDispValueP(
|
UnitHelper.ConvertP_fromKW(selDesignPtPUnit, item.WorkPtP)
|
);
|
|
let selParasMotorPower = prvePathDataObj.FilterInfo.MotorPower;
|
let selParasNPSHa = prvePathDataObj.FilterInfo.NPSHa;
|
if (selParasMotorPower !== "" && item.MotorPower > selParasMotorPower) {
|
tableItem.TipColumns.push({
|
Col: "MotorPower",
|
Note: `${t('selectPage.currentMotorPower.TR')}(${item.MotorPower}kW)>${t('selectPage.requiredMotorPower.TR')}(${selParasMotorPower}kW)`,
|
});
|
}
|
if (
|
selParasNPSHa !== "" &&
|
selParasNPSHa - state.m_NPSHa_Ratio <= item.WorkPtNPSH
|
) {
|
tableItem.TipColumns.push({
|
Col: "WorkPtNPSH",
|
Note: `NPSHr(${item.WorkPtNPSH})≥NPSHa(${selParasNPSHa}-${state.m_NPSHa_Ratio})`,
|
});
|
}
|
|
tableData.push(tableItem);
|
|
let index = item.PumpID.toString();
|
resultImg[index] = item.ChartObjects;
|
}
|
state.tableData = tableData;
|
state.disp_tableData = tableData;
|
|
|
//
|
setTimeout(() => {
|
buildAllChartImg(resultImg);
|
}, 500);
|
|
// 根据配置切换排序 为0时是效率排序 默认综合排序(暂时不使用)
|
// if (window.pageConfig.SelectPumpList && window.pageConfig.SelectPumpList.defaultSort == 0) {
|
// this.currentSortMethodIndex = window.pageConfig.SelectPumpList.defaultSort
|
// this.$refs.tableList.sort('WorkPtE', 'descending')
|
// }
|
// // 根据配置切换排序 为2时是额定点排序 也叫综合排序
|
// if (window.pageConfig.SelectPumpList && window.pageConfig.SelectPumpList.defaultSort == 2) {
|
// this.currentSortMethodIndex = window.pageConfig.SelectPumpList.defaultSort
|
// this.$refs.tableList.sort('QPerQBep', 'descending')
|
// }
|
})
|
.catch((err) => {
|
state.isShowLoadingFrm = false;
|
console.log("请求失败:" + err);
|
});
|
};
|
const clearCurve = () => {
|
//清理原来的图表
|
let list_svg = document.getElementsByClassName("CurveChart");
|
if (list_svg != null) {
|
for (let i = 0; i < list_svg.length; i++) {
|
if (list_svg[i] != null)
|
list_svg[i].innerHTML = "";
|
}
|
}
|
};
|
//监听选择项的变化状态
|
const handleTableSelectionChange = (selection) => {
|
// console.log(selection,780)
|
state.m_currentSelectArr = selection;
|
// console.log(this.m_currentSelectArr,778)
|
};
|
//跳转到比较页面
|
const toCompare4Select = () => {
|
// 最少两个进行比较
|
if (state.m_currentSelectArr.length < 2) {
|
ElMessage({
|
message: `${t("header.compareTip.TR")}`,
|
type: "warning",
|
});
|
return;
|
}
|
|
let compare4SelectList = [];
|
compare4SelectList = compare4SelectList.concat(state.m_currentSelectArr);
|
if (compare4SelectList.length > 10) {
|
return;
|
}
|
let json = JSON.stringify(compare4SelectList);
|
//存储
|
localStorage.setItem("compare4SelectList", json);
|
state.m_compare4SelectList = compare4SelectList;
|
|
let routerPath = `/Compare4Select/Index`;
|
router.push({ path: routerPath });
|
|
// window.open(routeData.href, "_blank");
|
};
|
//导出表格
|
const exportExcel = () => {
|
state.exportTableData = state.tableData;
|
|
const fileName = `${document.title}.xlsx`;
|
nextTick(() => {
|
const wb = XLSX.utils.table_to_book(
|
document.getElementById("export-sel-list")
|
);
|
const wbout = XLSX.write(wb, {
|
bookType: "xlsx",
|
bookSST: true,
|
type: "array",
|
});
|
try {
|
FileSaver.saveAs(
|
new Blob([wbout], { type: "application/octet-stream" }),
|
fileName
|
);
|
state.exportTableData = [];
|
} catch (e) {
|
if (typeof console !== "undefined") console.log(e, wbout);
|
return wbout;
|
}
|
});
|
};
|
|
//返回主页
|
const toHomePage = () => {
|
router.push({
|
path: buildCurrentLanguageUrl(`/Index`),
|
});
|
};
|
//表头显示或者隐藏
|
const getColumnVisbileStatus = (label) => {
|
let index = state.m_dispColumnNameList.indexOf(label);
|
//console.log(index,label,759)
|
return index == -1 ? false : true;
|
};
|
//监听当前点击的泵名称的属性
|
const clickPumpNameCell = (index, row) => {
|
openPumpDetailPage(row.SeriesID, row.PumpID);
|
};
|
//监听点击的当前表格行的详情
|
const clickDetailCell = (index, row) => {
|
openPumpDetailPage(row.SeriesID, row.PumpID);
|
};
|
|
const openPumpDetailPage = (sid, pid) => {
|
state.detailPageQueryModel.SID = sid;
|
state.detailPageQueryModel.PID = pid;
|
|
let routerPath = `/byParas/Index`;
|
let query = state.detailPageQueryModel;
|
let routeData = router.resolve({ path: routerPath, query: query });
|
|
window.open(routeData.href, "_blank");
|
};
|
//上一步
|
const prevPage = () => {
|
emits("prevPageClick");
|
};
|
const handleOnError = (event) => {
|
event.target.src = errorImg;
|
};
|
//
|
const buildAllChartImg = (resultImg) => {
|
//console.log(this.resultImg, 2875);
|
document.querySelectorAll("div[data-svg=true]").forEach(function (element) {
|
let $this = element;
|
let pumpId = $this.getAttribute("data-pump_id");
|
let chartType = $this.getAttribute("data-pump_ChartType");
|
if (pumpId in resultImg) {
|
drawChart(resultImg[pumpId], pumpId, 180, 300, chartType);
|
}
|
});
|
};
|
//
|
const drawChart = (data, container, width, height, chartType) => {
|
let c = new thumbnailChart.ThumbnailChart();
|
|
//
|
var chartStyle = window.pageConfig.ChartStyle;
|
c.setChartStyle(chartStyle);
|
|
if (chartType == 4 || chartType == "4") {
|
c.setContainerDivInfo(container, 220, 120);
|
c.setDesignPoint(state.SelDesignPtQ_StdUnit, state.SelDesignPtH_StdUnit);
|
let myChart = c.createChartZlp(data);
|
} else {
|
c.setContainerDivInfo(container, 220, 120);
|
c.setDesignPoint(state.SelDesignPtQ_StdUnit, state.SelDesignPtH_StdUnit);
|
let myChart = c.createChartLxp(data);
|
}
|
};
|
// 排序方法监听事件
|
const handleSortMethod = (commend) => {
|
let [...data] = state.tableData; //防止sort排序时导致的原数组改变
|
if (commend == "efficiencySort") {
|
state.currentSortMethodIndex = 1;
|
tableList.value.sort("WorkPtE", "descending");
|
}
|
if (commend == "compreSort") {
|
state.currentSortMethodIndex = 2;
|
state.disp_tableData = state.tableData;
|
tableList.value.clearSort();
|
}
|
};
|
// 根据prop判断是够有toolTip
|
const hasToolTipByProp = (prop, TipColumns) => {
|
if (!TipColumns || 0 == TipColumns.length) {
|
return false;
|
}
|
for (let i = 0; i < TipColumns.length; i++) {
|
let item = TipColumns[i];
|
if (prop == item.Col) {
|
return true;
|
}
|
}
|
return false;
|
};
|
const getNoteByProp = (prop, TipColumns) => {
|
for (let i = 0; i < TipColumns.length; i++) {
|
let item = TipColumns[i];
|
if (item.Col == prop) {
|
return item.Note;
|
}
|
}
|
return "";
|
};
|
|
defineExpose({ initialPage });
|
</script>
|
|
<style lang="scss">
|
//scoped //组件时使用
|
.selpumplist_general {
|
height: 100%;
|
width: 100%;
|
|
.el-table__header {
|
background-color: rgb(176, 216, 221);
|
}
|
|
.el-button {
|
padding: 10px 15px;
|
width: unset;
|
|
&.active {
|
background-color: #6396c2;
|
color: #fff;
|
}
|
}
|
|
.tableBox {
|
width: 100%;
|
}
|
|
.el-table .cell {
|
display: flex;
|
justify-content: center;
|
align-items: center;
|
padding: unset;
|
height: 100%;
|
}
|
|
.tabHead {
|
display: flex;
|
flex-direction: column;
|
justify-content: center;
|
align-items: center;
|
}
|
|
.tabHead>div {
|
font-size: 14px;
|
}
|
|
.el-table th>.cell {
|
display: flex;
|
justify-content: center;
|
align-items: center;
|
padding: unset;
|
height: 100%;
|
}
|
}
|
|
.thumbnail-img-style {
|
width: 100%;
|
object-fit: cover;
|
}
|
|
.pumplist_dropdown_menu {
|
.el-checkbox {
|
display: block;
|
}
|
|
.el-tooltip__popper.is-dark {
|
left: 155px !important;
|
}
|
}
|
|
.warin-color {
|
color: red;
|
margin-right: 5px;
|
font-size: 16px;
|
}
|
|
.col-select-popStyle {
|
max-height: 500px;
|
height: 500px;
|
}
|
|
.check-icon-style {
|
width: 14px;
|
display: flex;
|
justify-content: center;
|
align-items: center;
|
}
|
|
.custom-btn-span {
|
height: 32px;
|
margin-left: 15px;
|
line-height: 32px;
|
}
|
|
#series_selected_name {
|
text-decoration: underline;
|
color: var(--selModelNameColor);
|
}
|
|
.table-default-style {
|
position: relative;
|
width: 100%;
|
display: flex;
|
justify-content: center;
|
align-items: center;
|
height: 100%;
|
|
i {
|
position: absolute;
|
top: 5px;
|
right: 5px;
|
font-size: 18px;
|
}
|
}
|
|
.tool-tip-cell-style {
|
padding: unset !important;
|
height: 127px;
|
// background-color: red;
|
}
|
|
.bg-red {
|
color: red;
|
font-weight: bold;
|
}
|
|
.bg-yellow {
|
background-color: rgb(250 236 216 / 50%) !important;
|
color: red;
|
font-weight: bold;
|
}
|
</style>
|