jiminglei 1 year ago
parent 6efa929490
commit 9874ac136d
  1. 7
      psdc-ui/src/api/emonitor/api.js
  2. 4
      psdc-ui/src/layout/components/Sidebar/Logo.vue
  3. 480
      psdc-ui/src/views/system/model/index.vue

@ -137,4 +137,9 @@ export function setKey2(data) {
//模型测试
export function modelTest(data) {
return request.post('system/model/getReport',data)
}
}
//建筑供暖设备列表
export function getDevList() {
return request.get('system/model/selAllDevices')
}

@ -1,11 +1,11 @@
<template>
<div class="sidebar-logo-container" :class="{ 'collapse': collapse }" :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }">
<transition name="sidebarLogoFade">
<router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
<router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/bigview">
<img v-if="logo" :src="logo" class="sidebar-logo" />
<h1 v-else class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }}</h1>
</router-link>
<router-link v-else key="expand" class="sidebar-logo-link" to="/">
<router-link v-else key="expand" class="sidebar-logo-link" to="/bigview">
<img v-if="logo" :src="logo" class="sidebar-logo" />
<h1 class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }}</h1>
</router-link>

@ -1,110 +1,27 @@
<template>
<div class="bod">
<div class="inp">
<div class="til">替代前项目信息</div>
<el-form :model="addForm" ref="ruleForm1" :rules="rules" label-width="88px">
<el-row>
<el-col :span="5">
<el-form-item label="设备类型:" prop="devType" label-width="140px">
<el-select v-model="addForm.devType">
<el-option v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设备细类:" prop="devSubType" label-width="190px">
<el-select v-model="addForm.devSubType">
<el-option v-for="item in options1"
:key="item.value"
:label="item.label"
:value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="技术类型:" prop="devTechType" label-width="190px">
<el-select v-model="addForm.devTechType">
<el-option v-for="item in options2"
:key="item.value"
:label="item.label"
:value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="设备功率(kW):" prop="devPower" label-width="290px">
<el-input v-model="addForm.devPower" />
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="设备单价(万元):" prop="devPrice" label-width="142px">
<el-input v-model="addForm.devPrice"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="电替代设备年人工费用(万元):" prop="devSubstituteLaborCost" label-width="250px">
<el-input v-model="addForm.devSubstituteLaborCost"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="原设备的人工费用(万元):" prop="laborCost" label-width="220px">
<el-input v-model="addForm.laborCost"/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="单台电设备参考的可供暖面积(万平方米):" prop="devReferenceArea" label-width="300px">
<el-input v-model="addForm.devReferenceArea"/>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="设备使用年限(年):" prop="devServiceLife" label-width="160px">
<el-input v-model="addForm.devServiceLife"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设备年运行时长(小时):" label-width="190px">
<el-input v-model="addForm.devAnnualOperationTime"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="热效率:" prop="heatEfficiency" label-width="190px">
<el-input v-model="addForm.heatEfficiency"/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="备注:" label-width="290px">
<el-input v-model="addForm.remarkInfo"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="til">配电信息</div>
<el-form :model="addForm" ref="ruleForm2" :rules="rules" label-width="88px">
<el-row>
<el-col :span="5">
<el-form-item label="电源形式:" prop="sceneName" label-width="140px">
<el-select v-model="test1">
<el-option v-for="item in options3"
:key="item.value"
:label="item.label"
:value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="5">-->
<!-- <el-form-item label="电源形式:" prop="sceneName" label-width="140px">-->
<!-- <el-select v-model="test1">-->
<!-- <el-option v-for="item in options3"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.label">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="6">-->
<!-- <el-form-item label="变压器合同总容量(kVA):" prop="sceneName" label-width="190px">-->
<!-- <el-input v-model="test2"/>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="6">
<el-form-item label="变压器合同总容量(kVA):" prop="sceneName" label-width="190px">
<el-input v-model="test2"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="变压器运行总容量(kVA):" prop="runCapacity" label-width="190px">
<el-form-item label="变压器运行总容量(kVA):" prop="runCapacity" label-width="230px">
<el-input v-model="addForm.runCapacity"/>
</el-form-item>
</el-col>
@ -115,20 +32,20 @@
</el-col>
</el-row>
</el-form>
<div class="til">产品库</div>
<div class="til">替代前项目信息</div>
<el-form :model="addForm" ref="ruleForm3" :rules="rules" label-width="88px">
<el-row>
<el-col :span="5">
<el-form-item label="建筑类型:" prop="sceneName" label-width="140px">
<el-select v-model="test3">
<el-option v-for="item in options4"
:key="item.value"
:label="item.label"
:value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="5">-->
<!-- <el-form-item label="建筑类型:" prop="sceneName" label-width="140px">-->
<!-- <el-select v-model="test3">-->
<!-- <el-option v-for="item in options4"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.label">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="6">
<el-form-item label="建筑面积(平方米):" prop="heatingArea" label-width="190px">
<el-input v-model="addForm.heatingArea" >
@ -136,121 +53,122 @@
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="年采暖时间(天):" prop="days" label-width="190px">
<el-col :span="7">
<el-form-item label="年采暖时间(天):" prop="days" label-width="270px">
<el-input v-model="addForm.days">
</el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="供暖末端形式:" prop="sceneName" label-width="290px">
<el-select v-model="test4">
<el-option v-for="item in options5"
:key="item.value"
:label="item.label"
:value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="蒸汽/生活热水需求:" prop="sceneName" label-width="142px">
<el-select v-model="test5">
<el-option v-for="item in options6"
:key="item.value"
:label="item.label"
:value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="7">-->
<!-- <el-form-item label="供暖末端形式:" prop="sceneName" label-width="290px">-->
<!-- <el-select v-model="test4">-->
<!-- <el-option v-for="item in options5"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.label">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="蒸汽/生活热水需求:" prop="sceneName" label-width="142px">-->
<!-- <el-select v-model="test5">-->
<!-- <el-option v-for="item in options6"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.label">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="6">-->
<!-- <el-form-item label="每小时最大需求量(吨):" prop="sceneName" label-width="220px">-->
<!-- <el-input v-model="test6"/>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="6">-->
<!-- <el-form-item label="是否有供冷需求:" prop="sceneName" label-width="220px">-->
<!-- <el-select v-model="test7">-->
<!-- <el-option v-for="item in options6"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.label">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="7">-->
<!-- <el-form-item label="年供冷时间(天):" prop="sceneName" label-width="290px">-->
<!-- <el-input v-model="test8"/>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="供冷末端形式:" prop="sceneName" label-width="143px">-->
<!-- <el-select v-model="test9">-->
<!-- <el-option v-for="item in options5"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.label">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="6">-->
<!-- <el-form-item label="原设备类型:" prop="sceneName" label-width="190px">-->
<!-- <el-select v-model="test10">-->
<!-- <el-option v-for="item in options"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.label">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="6">-->
<!-- <el-form-item label="台数:" prop="sceneName" label-width="190px">-->
<!-- <el-input v-model="test11"/>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="7">-->
<!-- <el-form-item label="功能:" prop="sceneName" label-width="290px">-->
<!-- <el-select v-model="test12">-->
<!-- <el-option v-for="item in options7"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.label">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="能源类型:" prop="sceneName" label-width="140px">-->
<!-- <el-select v-model="test13">-->
<!-- <el-option v-for="item in options8"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.label">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="6">
<el-form-item label="每小时最大需求量(吨):" prop="sceneName" label-width="220px">
<el-input v-model="test6"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否有供冷需求:" prop="sceneName" label-width="220px">
<el-select v-model="test7">
<el-option v-for="item in options6"
:key="item.value"
:label="item.label"
:value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="年供冷时间(天):" prop="sceneName" label-width="290px">
<el-input v-model="test8"/>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="供冷末端形式:" prop="sceneName" label-width="143px">
<el-select v-model="test9">
<el-option v-for="item in options5"
:key="item.value"
:label="item.label"
:value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="原设备类型:" prop="sceneName" label-width="190px">
<el-select v-model="test10">
<el-option v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="台数:" prop="sceneName" label-width="190px">
<el-input v-model="test11"/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="功能:" prop="sceneName" label-width="290px">
<el-select v-model="test12">
<el-option v-for="item in options7"
:key="item.value"
:label="item.label"
:value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="能源类型:" prop="sceneName" label-width="140px">
<el-select v-model="test13">
<el-option v-for="item in options8"
:key="item.value"
:label="item.label"
:value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="上年运行费用(万元):" prop="lastYearFee" label-width="190px">
<el-form-item label="上年运行费用(元):" prop="lastYearFee" label-width="190px">
<el-input v-model="addForm.lastYearFee"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="模型编码:" prop="hotMedium" label-width="190px">
<el-input v-model="addForm.hotMedium"/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="场景编码:" prop="type" label-width="290px">
<el-input v-model="addForm.type"/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="密钥:" prop="key" label-width="140px">
<!-- <el-col :span="6">-->
<!-- <el-form-item label="模型编码:" prop="" label-width="190px">-->
<!-- <el-input v-model="addForm.hotMedium"/>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="7">-->
<!-- <el-form-item label="场景编码:" prop="" label-width="290px">-->
<!-- <el-input v-model="addForm.type"/>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-divider></el-divider>
<el-col :span="8">
<el-form-item label="密钥:" prop="key" label-width="110px">
<el-input v-model="addForm.key"/>
</el-form-item>
</el-col>
@ -284,7 +202,7 @@
</div>
<div class="result" v-if="show1">
<div class="til">
最佳方案方案一
最佳方案{{result.planName}}
</div>
<div class="info">
<div class="card">
@ -294,17 +212,17 @@
<el-form :model="result" label-width="140px">
<el-row>
<el-col :span="4" style="margin-left: 70px">
<el-form-item label="初次投资费用(元):" prop="sceneName">
<el-form-item label="初次投资费用(元):" prop="sceneName">
<el-input v-model="result.startCost" placeholder=""/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="年运行费用(元):" prop="sceneName">
<el-form-item label="年运行费用(元):" prop="sceneName">
<el-input v-model="result.yearRunCost" placeholder=""/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="年总费用(元):" prop="sceneName">
<el-form-item label="年总费用(元):" prop="sceneName">
<el-input v-model="result.yearCost" placeholder=""/>
</el-form-item>
</el-col>
@ -353,7 +271,7 @@
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="总价(元):" prop="sceneName">
<el-form-item label="总价(元):" prop="sceneName">
<el-input v-model="result.devCost" placeholder=""/>
</el-form-item>
</el-col>
@ -386,13 +304,25 @@
</div>
</div>
</div>
<div class="inp">
<div class="til">产品库</div>
<el-form :model="addForm" ref="ruleForm1" :rules="rules" label-width="88px">
<el-row>
<el-col :span="4.5" v-for="(item,index) in options" :key="index">
<el-form-item :label="item.devTechType" prop="" label-width="300px">
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template>
<script setup>
import {ElMessage, ElMessageBox} from 'element-plus'
import {ref, reactive, watch, onMounted} from "vue";
import {modelTest,} from '../../../api/emonitor/api'
import {modelTest,getDevList} from '../../../api/emonitor/api'
const open = ref(true)
const arr = ref([1])
const point = ref(3.7)
@ -414,11 +344,51 @@ const test13 = ref(null)
const role1 = ref(false)
const role2 = ref(false)
const role3 = ref(false)
onMounted(()=>{
getDevList().then((res)=>{
options.value=res.data
})
})
const devSpecList = ref([
{
"devType": '',
"heatEfficiency":'',
"devTechType": '',
"devSubstituteLaborCost":'',
"devReferenceArea":'',
"devPower":'' ,
"devSubType": '',
"devPrice":'' ,
"devServiceLife":'',
"laborCost":'' ,
"id": "1"
}
])
function addDev (){
devSpecList.value.push({
"devType": '',
"heatEfficiency":'',
"devTechType": '',
"devSubstituteLaborCost":'',
"devReferenceArea":'',
"devPower":'' ,
"devSubType": '',
"devPrice":'' ,
"devServiceLife":'',
"laborCost":'' ,
"id": "1"
})
}
function delDev (){
devSpecList.value.pop()
}
const options = ref([{
label: '电锅炉', value: 1
}, {label: '热泵', value: 2}])
const options3 = ref([{
label: '转变', value: 1
label: '变', value: 1
}, {label: '公变', value: 2}])
const options4 = ref([{
label: '机关', value: 1},
@ -468,6 +438,7 @@ const options2 = ref([
{label: '高温蒸汽热泵', value: 11},
])
const ruleForm1 = ref({
key: '',
devType: '',
devSubType: '',
devTechType: '',
@ -491,11 +462,10 @@ const ruleForm3 = ref({
lastYearFee: '',
hotMedium: '',
type: '',
key: '',
})
const rules = reactive({
devType: [
{ required: true, message: '请选择设备类型', trigger: 'change' },
{ required: true, message: '请选择产品库', trigger: 'change' },
],
devSubType: [
{ required: true, message: '请选择设备细类', trigger: 'change' },
@ -664,21 +634,6 @@ const submitForm = () => {
console.log('表单验证通过')
modelTest(
{
"devSpecList": [
{
"devType": addForm.devType,
"heatEfficiency":addForm.heatEfficiency,
"devTechType": addForm.devTechType,
"devSubstituteLaborCost":addForm.devSubstituteLaborCost,
"devReferenceArea":addForm.devReferenceArea,
"devPower":addForm.devPower ,
"devSubType": addForm.devSubType,
"devPrice":addForm.devPrice ,
"devServiceLife":addForm.devServiceLife,
"laborCost":addForm.laborCost ,
"id": "1"
}
],
"param": {
"electricityPrice": "20.26",
"hotDevicePower": "20.26",
@ -700,13 +655,27 @@ const submitForm = () => {
}
).then((res)=>{
console.log(res)
for(let i in res.report.matchedDeviceList)
{
res.report.matchedDeviceList[i].rat = res.report.matchedDeviceList[i].rating/20
if(res.report==null){
ElMessage({
message: '产品库至少需要两种不同类型的设备!',
type: 'error',
})
}else{
for(let i in res.report.matchedDeviceList)
{
res.report.matchedDeviceList[i].rat = res.report.matchedDeviceList[i].rating/20
}
let num = res.report.matchedDeviceList.reduce((prev, curr) => {
return curr.rat > prev.rat ? curr : prev;
});
res.report.planName = num.planName
res.report.environment = "本次改造方案减排"+res.report.calculate+"吨"
result.value=res.report
show1.value = true
}
result.value=res.report
show1.value = true
})
}else{
console.log('表表单验证失败')
}
@ -736,6 +705,21 @@ function cancel() {
addForm.lastYearNeed = null
addForm.runCapacity = null
addForm.key = null
devSpecList.value=[
{
"devType": '',
"heatEfficiency":'',
"devTechType": '',
"devSubstituteLaborCost":'',
"devReferenceArea":'',
"devPower":'' ,
"devSubType": '',
"devPrice":'' ,
"devServiceLife":'',
"laborCost":'' ,
"id": "1"
}
]
};
</script>

Loading…
Cancel
Save