<template>
|
<div class="export-cad-dialog" v-loading="state.m_loadingFormPage">
|
<el-dialog v-model="state.m_dialogVisible" width="30%" :modal="true" :close-on-click-modal="false"
|
:close-on-press-escape="false" :title="t('detailPage.exportSettings.TR')" align-center :show-close="true">
|
<el-form :model="state.m_formData" label-width="130px" size="small">
|
<el-row :gutter="20" style="height: 100%; flex-wrap: nowrap">
|
<el-col :span="24" class="col_box" style="padding: unset; margin-right: 0.5%">
|
<div class="col_item">
|
<el-divider content-position="left">{{
|
t("header.baseInfo.TR")
|
}}</el-divider>
|
<div class="flex-box">
|
<el-row>
|
<!-- 语言 -->
|
<el-col :span="12">
|
<el-form-item :label="t('ebookPage.lang.TR')">
|
<el-select v-model="state.m_formData.language" placeholder="">
|
<el-option :value="0" :label="t('header.cn.TR')"></el-option>
|
<el-option :value="2" :label="t('header.en.TR')"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<!-- 版本 -->
|
<el-col :span="12">
|
<el-form-item :label="t('footer.version.TR')">
|
<el-select :disabled="true" v-model="state.m_formData.version" placeholder="">
|
<el-option value="" label=""></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<!-- 单色显示 -->
|
<el-form-item label="">
|
<el-checkbox v-model="state.m_formData.isMonochromeDisplay">{{
|
t("detailPage.monochromeDisplay.TR")
|
}}</el-checkbox>
|
</el-form-item>
|
<!-- 水印 -->
|
<el-form-item label="">
|
<el-checkbox v-model="state.m_formData.isHasWaterMark" placeholder="">{{ t("detailPage.watermark.TR")
|
}}</el-checkbox>
|
</el-form-item>
|
</div>
|
</div>
|
<div class="col_item">
|
<el-divider content-position="left">{{
|
t("detailPage.chartSettings.TR")
|
}}</el-divider>
|
<div class="flex-box">
|
<el-row>
|
<!-- 选型点 -->
|
<el-col :span="12">
|
<el-form-item label="">
|
<el-checkbox v-model="state.m_formData.isHasSelectPoint">{{ t("detailPage.selectionPoint.TR")
|
}}</el-checkbox>
|
</el-form-item>
|
</el-col>
|
<!-- 工作点 -->
|
<el-col :span="12">
|
<el-form-item label="" label-width="100">
|
<el-checkbox v-model="state.m_formData.IsDispWorkPointCircle">{{ t("detailPage.workingPoint.TR")
|
}}</el-checkbox>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<!-- 运行区域 -->
|
<el-col :span="12">
|
<el-form-item label="">
|
<el-checkbox v-model="state.m_formData.isHasOperatingArea">{{ t("detailPage.operatingArea.TR")
|
}}</el-checkbox>
|
</el-form-item>
|
</el-col>
|
<!-- 最优区域 -->
|
<el-col :span="12">
|
<el-form-item label="" label-width="100">
|
<el-checkbox v-model="state.m_formData.isHasOptimalRegion">{{ t("detailPage.optimalArea.TR")
|
}}</el-checkbox>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<!-- 装置曲线 -->
|
<el-col :span="12">
|
<el-form-item label="">
|
<el-checkbox v-model="state.m_formData.isHasDeviceCurve">{{ t("detailPage.deviceArea.TR")
|
}}</el-checkbox>
|
</el-form-item>
|
</el-col>
|
<!-- 等效线 -->
|
<el-col :span="12">
|
<el-form-item label="" label-width="100">
|
<el-checkbox v-model="state.m_formData.isHasEquivalentLine">{{ t("detailPage.equivalentLine.TR")
|
}}</el-checkbox>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<!-- 最小连续流量线 -->
|
<el-col :span="12">
|
<el-form-item label="">
|
<el-checkbox v-model="state.m_formData.IsDispMinFlowCurve">{{ t("detailPage.minFlowCurve.TR")
|
}}</el-checkbox>
|
</el-form-item>
|
</el-col>
|
<!-- 铭牌参数点 -->
|
<el-col :span="12">
|
<el-form-item label="" label-width="100">
|
<el-checkbox v-model="state.m_formData.isHasNameplateParamPoints">{{
|
t("detailPage.nameplateParameterPoints.TR")
|
}}</el-checkbox>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<!-- 高效点 -->
|
<el-col :span="12">
|
<el-form-item label="">
|
<el-checkbox v-model="state.m_formData.IsDispBEP">{{
|
t("detailPage.maximumEfficiencyPoint.TR")
|
}}</el-checkbox>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12"> </el-col>
|
</el-row>
|
<el-row>
|
<!-- 流量单位-->
|
<el-col :span="24">
|
<el-form-item :label="t('detailPage.flowUnits.TR')">
|
<el-select v-model="state.m_formData.UserSettingUI.UnitQ
|
" style="width: 150px" placeholder="" :empty-values="[null, undefined]">
|
<el-option v-for="item in state.m_Q_Unit" :value="item.value" :label="item.label"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<!-- 扬程单位 -->
|
<el-col :span="24">
|
<el-form-item :label="t('detailPage.headUnit.TR')">
|
<el-select v-model="state.m_formData.UserSettingUI.UnitH
|
" style="width: 150px" placeholder="" :empty-values="[null, undefined]">
|
<el-option v-for="item in state.m_H_Unit" :value="item.value" :label="item.label"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<!-- 流量扬程线 -->
|
<el-col :span="24">
|
<el-form-item :label="t('detailPage.flowHeadLine.TR')">
|
<el-select v-model="state.m_formData.flow_head_curve" style="width: 150px" placeholder=""
|
:empty-values="[null, undefined]">
|
<el-option v-for="item in state.m_selectOption" :value="item.value"
|
:label="item.label"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<!-- 流量效率线 -->
|
<el-col :span="24">
|
<el-form-item :label="t('detailPage.flowEfficiencyLine.TR')">
|
<el-select v-model="state.m_formData.flow_efficiency_curve" style="width: 150px" placeholder=""
|
:empty-values="[null, undefined]">
|
<el-option v-for="item in state.m_selectOption" :value="item.value"
|
:label="item.label"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<!-- 流量功率线 -->
|
<el-col :span="24">
|
<el-form-item :label="t('detailPage.flowPowerLine.TR')">
|
<el-select v-model="state.m_formData.flow_power_curve" style="width: 150px" placeholder=""
|
:empty-values="[null, undefined]">
|
<el-option v-for="item in state.m_selectOption" :value="item.value"
|
:label="item.label"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<!-- 流量气蚀线 -->
|
<el-col :span="24">
|
<el-form-item :label="t('detailPage.flowNPSHrCurve.TR')">
|
<el-select v-model="state.m_formData.QnpshCurveStyle" style="width: 150px" placeholder=""
|
:empty-values="[null, undefined]">
|
<el-option v-for="item in state.m_selectOption" :value="item.value"
|
:label="item.label"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<!-- 颜色风格 -->
|
<el-col :span="24">
|
<el-form-item :label="t('detailPage.colorStyle.TR')">
|
<el-select :disabled="true" v-model="state.StyleName" placeholder="" style="width: 150px">
|
<el-option value="1" label="红色"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</div>
|
</div>
|
</el-col>
|
</el-row>
|
</el-form>
|
<template #footer>
|
<div class="dialog-footer">
|
<el-button @click="state.m_dialogVisible = false">{{
|
t("detailPage.cancel.TR")
|
}}</el-button>
|
<el-button type="primary" @click="clickConfirm">
|
{{ t("detailPage.define.TR") }}
|
</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
</div>
|
</template>
|
<script setup name="export">
|
import { ref, reactive, onMounted, nextTick } from "vue";
|
import { ElMessage } from "element-plus";
|
import axiosHelper from "@/utils/axiosHelper.js";
|
import { useLogin } from "@/stores/useLogin";
|
import { useI18n } from "vue-i18n";
|
import UtilsHelper from "@/utils/utils.js";
|
import { ElDialog, ElForm, ElFormItem, ElRow, ElCol } from "element-plus";
|
|
const { t } = useI18n();
|
const userStore = useLogin();
|
const userInfo = userStore.getUserInfo();
|
|
let state = reactive({
|
m_dialogVisible: false,
|
m_loadingFormPage: false,
|
m_formData: {
|
filePath: "", //路径
|
language: 0,
|
version: "V1",
|
isHasWaterMark: true, //是否有水印
|
isMonochromeDisplay: false, //是否单色显示
|
isHasSelectPoint: true, //是否显示选型点
|
IsDispWorkPointCircle: true, //是否显示工作点
|
isHasNameplateParamPoints: false, //是否显示铭牌参数点
|
isHasOperatingArea: false, //是否有运行区域
|
isHasOptimalRegion: false, //是否有最优区域
|
isHasDeviceCurve: false, //是否有装置曲线
|
isHasEquivalentLine: true, //是否有等效线
|
IsDispMinFlowCurve: false, //是否显示最小连续流量线
|
IsDispBEP: false, //是否显示高效点
|
flow_head_curve: "2", //流量扬程线
|
flow_efficiency_curve: "0", //流量效率线
|
flow_power_curve: "2", //流量功率线
|
QnpshCurveStyle: "0", //流量气蚀线
|
StyleName: "", //风格
|
|
UserSettingUI: {
|
UnitQ: "",
|
UnitH: "",
|
}
|
},
|
m_requestInfo: null, //
|
|
m_selectOption: [
|
{
|
label: t("LCC.default.TR"),
|
value: "",
|
},
|
{
|
label: t("detailPage.onlyWorkingCurve.TR"),
|
value: "0",
|
},
|
{
|
label: t("detailPage.maxMinWorkingCurve.TR"),
|
value: "1",
|
},
|
{
|
label: t("detailPage.allCurves.TR"),
|
value: "2",
|
},
|
{
|
label: t("detailPage.noDisplay.TR"),
|
value: "-1",
|
},
|
],
|
m_Q_Unit: [
|
{
|
label: t("LCC.default.TR"),
|
value: "",
|
},
|
{
|
label: "m³/h",
|
value: "1",
|
},
|
{
|
label: "L/s",
|
value: "0",
|
},
|
{
|
label: "gpm",
|
value: "4",
|
},
|
],
|
m_H_Unit: [
|
{
|
label: t("LCC.default.TR"),
|
value: "",
|
},
|
{
|
label: "M",
|
value: "0",
|
},
|
{
|
label: "Ft",
|
value: "4",
|
},
|
{
|
label: "MPa",
|
value: "1",
|
},
|
{
|
label: "psi",
|
value: "5",
|
},
|
],
|
});
|
// 打开弹框
|
const openDialog = (data = {}) => {
|
state.m_requestInfo = data;
|
state.m_dialogVisible = true;
|
let pumpStyle = 0;
|
if (data.pumpBaseInfo) pumpStyle = data.pumpBaseInfo.PumpStyle
|
if (pumpStyle == 0) {
|
state.m_formData.flow_head_curve = data.pageSetting.LXBSettingByDispCurve ?? state.m_formData.flow_head_curve;
|
state.m_formData.flow_power_curve = data.pageSetting.LXBSettingByDispCurve ?? state.m_formData.flow_power_curve;
|
}
|
if (pumpStyle == 1) {
|
state.m_formData.flow_head_curve = data.pageSetting.ZLBSettingByDispCurve ?? state.m_formData.flow_head_curve;
|
state.m_formData.flow_power_curve = data.pageSetting.ZLBSettingByDispCurve ?? state.m_formData.flow_power_curve;
|
}
|
|
if (state.m_requestInfo.userUnitSetting) {
|
let unitSetting = state.m_requestInfo.userUnitSetting
|
unitSetting.Flow = unitSetting.Flow == -1 ? "" : unitSetting.Flow + ""
|
unitSetting.Head = unitSetting.Head == -1 ? "" : unitSetting.Head + ""
|
unitSetting.Power = unitSetting.Power == -1 ? "" : unitSetting.Power + ""
|
unitSetting.NPSH = unitSetting.NPSH == -1 ? "" : unitSetting.NPSH + ""
|
unitSetting.D2 = unitSetting.D2 == -1 ? "" : unitSetting.D2 + ""
|
|
state.m_formData.UserSettingUI.UnitQ = unitSetting.Flow;
|
state.m_formData.UserSettingUI.UnitH = unitSetting.Head;
|
}
|
};
|
|
const clickConfirm = () => {
|
//检查登陆
|
var uToken = userInfo.Token;
|
if (uToken == null || uToken == "") {
|
userStore.login(route.path);
|
return;
|
}
|
let request_data = {};
|
|
let FileType = state.m_requestInfo.pageSetting.FileType;
|
let pageSetting = {};
|
pageSetting.LanguageType = state.m_formData.language;
|
pageSetting.FileType = FileType;
|
pageSetting.IsMonoColor = state.m_formData.isMonochromeDisplay;
|
pageSetting.IsPrintWaterMark = state.m_formData.isHasWaterMark + "";
|
pageSetting.IsPrintCorpInfo = "";
|
request_data.PageSetting = pageSetting;
|
|
let pumpBaseInfo = state.m_requestInfo.pumpBaseInfo;
|
let partInfo = {};
|
partInfo.SeID = pumpBaseInfo.SeriesID;
|
partInfo.PuID = pumpBaseInfo.PumpID; //如果是子型号传入子型号ID
|
if (pumpBaseInfo.IsMainModel == false && pumpBaseInfo.SubID > 0) {
|
partInfo.PuID = pumpBaseInfo.SubID;
|
}
|
partInfo.DriveType = pumpBaseInfo.DriveType; //驱动方式
|
partInfo.DriveSpeed = pumpBaseInfo.DriveSpeed; //柴油机转速
|
request_data.PartInfo = partInfo;
|
|
request_data.PartProp = state.m_requestInfo.partPropList4Store;
|
request_data.designParas = state.m_requestInfo.designParas;
|
request_data.JieZhi = state.m_requestInfo.jieZhi;
|
request_data.ChartPointParas = state.m_requestInfo.chartPointParas;
|
request_data.Material = state.m_requestInfo.materialInfo;
|
request_data.EquipCurve = state.m_requestInfo.equipCurve;
|
|
let diagramStyle = {};
|
// 颜色风格
|
diagramStyle.StyleName = "red";
|
// 流量扬程线
|
diagramStyle.QhCurveStyle = state.m_formData.flow_head_curve;
|
// 流量效率线
|
diagramStyle.QeCurveStyle = state.m_formData.flow_efficiency_curve;
|
// 流量功率线
|
diagramStyle.QpCurveStyle = state.m_formData.flow_power_curve;
|
//流量气蚀线
|
diagramStyle.QnpshCurveStyle = state.m_formData.QnpshCurveStyle;
|
//是否显示设计点
|
diagramStyle.IsDispDesignPoint = state.m_formData.isHasSelectPoint + "";
|
//是否显示工作点
|
diagramStyle.IsDispWorkPointCircle =
|
state.m_formData.IsDispWorkPointCircle + "";
|
//是否显示最优区域
|
diagramStyle.IsDispRegionPrefer = state.m_formData.isHasOptimalRegion + "";
|
// 是否显示允许区域
|
diagramStyle.IsDispRegionAllow = state.m_formData.isHasOperatingArea + "";
|
//是否显示装置曲线
|
diagramStyle.IsDispEquipmentCurve = state.m_formData.isHasDeviceCurve + "";
|
//最小流量线
|
diagramStyle.IsDispMinFlowCurve = state.m_formData.IsDispMinFlowCurve + "";
|
//是否显示等效线
|
diagramStyle.IsDispEqualParaCurveE =
|
state.m_formData.isHasEquivalentLine + "";
|
//是否显示等效线
|
diagramStyle.IsDispBEP = state.m_formData.IsDispBEP + "";
|
|
request_data.DiagramStyle = diagramStyle;
|
|
//
|
request_data.UserSettingUI = {};
|
if (state.m_requestInfo.userUnitSetting) {
|
//用户设置的单位. 不是选型参数的单位
|
request_data.UserSettingUI.UserUnitQ = state.m_formData.UserSettingUI.UnitQ;
|
request_data.UserSettingUI.UserUnitH = state.m_formData.UserSettingUI.UnitH;
|
request_data.UserSettingUI.UserUnitP = state.m_requestInfo.userUnitSetting.Power;
|
request_data.UserSettingUI.UserUnitNPSH = state.m_requestInfo.userUnitSetting.NPSH;
|
request_data.UserSettingUI.UserUnitD2 = state.m_requestInfo.userUnitSetting.D2;
|
}
|
|
state.m_loadingFormPage = true;
|
axiosHelper
|
.post({
|
version: 3,
|
controller: "PumpChart",
|
action: "CreateFeatCurveChartByParas",
|
data: request_data,
|
apiUrlType: "main",
|
})
|
.then((res) => {
|
state.m_loadingFormPage = false;
|
state.m_dialogVisible = false;
|
let result = res.data;
|
if (result.Code != 0 || result.Data == "") {
|
ElMessage.error(result.Message);
|
return;
|
}
|
if (!result.Data || result.Data == "") {
|
ElMessage.error(result.Message);
|
return;
|
}
|
let path =
|
window.globalConfig.WebApiUrl.FileUrl +
|
"temp/selectReport/" +
|
result.Data;
|
let name = result.Data;
|
downloadPDF_File(path, name);
|
})
|
.catch((err) => {
|
state.m_loadingFormPage = false;
|
state.m_dialogVisible = false;
|
console.log(err, 445);
|
});
|
};
|
const downloadPDF_File = async (href, name) => {
|
UtilsHelper.downloadFile(href, name);
|
};
|
|
defineExpose({
|
openDialog,
|
});
|
</script>
|
<style lang="scss" scoped>
|
.export-cad-dialog {
|
:deep(.el-dialog__header) {
|
border-bottom: unset;
|
margin-right: unset;
|
}
|
|
:deep(.el-form-item--small) {
|
margin-bottom: 0.1rem;
|
}
|
}
|
</style>
|