Commit da07dc47 authored by jiaxu.yan's avatar jiaxu.yan

Merge branch 'master' of gitee.com:tj-wang-yahui/AMS_HeatSys_Vue_V10

# Conflicts:
#	node_modules/.vite/deps/_metadata.json
parents 9d01b8c4 22ef1c5b
export const ExternalSERVEICE='http://218.69.97.198:8001'
export const WithinSERVEICE='http://192.168.1.252:8001'
// export const ExternalSERVEICE='http://localhost:5013'
// export const WithinSERVEICE='http://localhost:5013'
// export const ExternalSERVEICE='http://218.69.97.198:8001'
// export const WithinSERVEICE='http://192.168.1.252:8001'
export const ExternalSERVEICE='http://localhost:5013'
export const WithinSERVEICE='http://localhost:5013'
export const CURRLOGO="LOGO_gangyi.png"
{
"hash": "76d29559",
"configHash": "2effb732",
"lockfileHash": "415b4f88",
"browserHash": "5ddfa83a",
"optimized": {
"vue": {
"src": "../../vue/dist/vue.runtime.esm-bundler.js",
"file": "vue.js",
"fileHash": "6e724a88",
"needsInterop": false
},
"element-plus": {
"src": "../../element-plus/es/index.mjs",
"file": "element-plus.js",
"fileHash": "db311218",
"needsInterop": false
},
"@element-plus/icons-vue": {
"src": "../../@element-plus/icons-vue/dist/index.js",
"file": "@element-plus_icons-vue.js",
"fileHash": "466ff16a",
"needsInterop": false
},
"vue3-smooth-scroll": {
"src": "../../vue3-smooth-scroll/dist/vue-smooth-scroll.min.js",
"file": "vue3-smooth-scroll.js",
"fileHash": "73ac546b",
"needsInterop": true
},
"@kyvg/vue3-notification": {
"src": "../../@kyvg/vue3-notification/dist/index.es.js",
"file": "@kyvg_vue3-notification.js",
"fileHash": "7913f170",
"needsInterop": false
},
"jquery": {
"src": "../../jquery/dist/jquery.js",
"file": "jquery.js",
"fileHash": "953bbb02",
"needsInterop": true
},
"element-plus/dist/locale/zh-cn.mjs": {
"src": "../../element-plus/dist/locale/zh-cn.mjs",
"file": "element-plus_dist_locale_zh-cn__mjs.js",
"fileHash": "7c795d35",
"needsInterop": false
},
"axios": {
"src": "../../axios/index.js",
"file": "axios.js",
"fileHash": "67fae377",
"needsInterop": false
},
"vue-router": {
"src": "../../vue-router/dist/vue-router.mjs",
"file": "vue-router.js",
"fileHash": "036d0e44",
"needsInterop": false
},
"vuex": {
"src": "../../vuex/dist/vuex.esm-bundler.js",
"file": "vuex.js",
"fileHash": "9c4ab673",
"needsInterop": false
},
"echarts": {
"src": "../../echarts/index.js",
"file": "echarts.js",
"fileHash": "a587f8e5",
"needsInterop": false
},
"@amap/amap-jsapi-loader": {
"src": "../../@amap/amap-jsapi-loader/dist/index.js",
"file": "@amap_amap-jsapi-loader.js",
"fileHash": "58817286",
"needsInterop": true
},
"mitt": {
"src": "../../mitt/dist/mitt.mjs",
"file": "mitt.js",
"fileHash": "a116a557",
"needsInterop": false
},
"jsencrypt": {
"src": "../../jsencrypt/lib/index.js",
"file": "jsencrypt.js",
"fileHash": "5f3dd49a",
"needsInterop": false
},
"lodash/cloneDeep": {
"src": "../../lodash/cloneDeep.js",
"file": "lodash_cloneDeep.js",
"fileHash": "7a95577d",
"needsInterop": true
}
},
"chunks": {
"chunk-YFT6OQ5R": {
"file": "chunk-YFT6OQ5R.js"
},
"chunk-LNZ7GA7G": {
"file": "chunk-LNZ7GA7G.js"
},
"chunk-VDFR5PMD": {
"file": "chunk-VDFR5PMD.js"
},
"chunk-ZS7NZCD4": {
"file": "chunk-ZS7NZCD4.js"
}
}
}
\ No newline at end of file
// export const ExternalSERVEICE='http://218.69.97.198:8001'
// export const WithinSERVEICE='http://192.168.1.252:8001'
export const ExternalSERVEICE='http://localhost:5013'
export const WithinSERVEICE='http://localhost:5013'
export const ExternalSERVEICE='http://218.69.97.198:8001'
export const WithinSERVEICE='http://192.168.1.252:8001'
// export const ExternalSERVEICE='http://localhost:5013'
// export const WithinSERVEICE='http://localhost:5013'
export const CURRLOGO="LOGO_gangyi.png"
import http from './http'
//能耗总览页---概况接口
export const postArealist = params => {
return http.post(`/api/overview/Area`, params).then(res => res).catch(function (error) {
console.log(error);
})
}
//能耗总览页---关口实时数据
export const postGYPipeReal = params => {
return http.post(`/api/gis/GYPipeReal`, params).then(res => res).catch(function (error) {
console.log(error);
})
}
//能耗总览页---公司当日热量使用情况
export const postAllHeat = params => {
return http.post(`/api/overview/AllHeat`, params).then(res => res).catch(function (error) {
console.log(error);
})
}
//能耗总览页---公司整体能耗
export const postGYCompanyEnergy = params => {
return http.post(`/api/overview/GYCompanyEnergy`, params).then(res => res).catch(function (error) {
console.log(error);
})
}
//能耗总览页---近七日气象趋势
export const postGYWeather = params => {
return http.post(`/api/overview/GYWeather`, params).then(res => res).catch(function (error) {
console.log(error);
})
}
//能耗总览页---服务中心热单耗
export const postGYCenterHeatUc = params => {
return http.post(`/api/overview/GYCenterHeatUc`, params).then(res => res).catch(function (error) {
console.log(error);
})
}
//能耗总览页---服务中心度日数热耗
export const postGYCenterDayHeatUc = params => {
return http.post(`/api/overview/GYCenterDayHeatUc`, params).then(res => res).catch(function (error) {
console.log(error);
})
}
//能耗总览页---二次侧水耗
export const postGYCenterWaterUc = params => {
return http.post(`/api/overview/GYCenterWaterUc`, params).then(res => res).catch(function (error) {
console.log(error);
})
}
//能耗总览页---二次侧电耗
export const postGYCenterElecUc = params => {
return http.post(`/api/overview/GYCenterElecUc`, params).then(res => res).catch(function (error) {
console.log(error);
})
}
//能耗总览页---万平米流量(一次侧)
export const postGYCenterWPMLL = params => {
return http.post(`/api/overview/GYCenterWPMLL`, params).then(res => res).catch(function (error) {
console.log(error);
})
}
//能耗总览页---一次侧流量分配
export const postGYSupplyWater = params => {
return http.post(`/api/overview/GYSupplyWater`, params).then(res => res).catch(function (error) {
console.log(error);
})
}
//能耗总览页---二网均温
export const postGYCenterSecAvgT = params => {
return http.post(`/api/overview/GYCenterSecAvgT`, params).then(res => res).catch(function (error) {
console.log(error);
})
}
//能耗总览页---二网温差
export const postGYCenterSecAbsT = params => {
return http.post(`/api/overview/GYCenterSecAbsT`, params).then(res => res).catch(function (error) {
console.log(error);
})
}
//能耗总览页---二网万平米流量
export const postGYCenterECWPMLL = params => {
return http.post(`/api/overview/GYCenterECWPMLL`, params).then(res => res).catch(function (error) {
console.log(error);
})
}
......@@ -21,6 +21,13 @@ export const postPrintHeatForecast = params => {
})
}
//明日预测报表(保存打印记录)
export const postSaveHeatForecast = params => {
return http.post(`/api/analysis/report/SaveHeatForecast`, params).then(res => res).catch(function (error) {
console.log(error);
})
}
//换热站能耗报表
export const postTransferEnergy = params => {
return http.post(`/api/analysis/report/TransferEnergy`, params).then(res => res).catch(function (error) {
......
......@@ -243,18 +243,18 @@
transferName:"",
isDisabled: true,
transferStatus: 0,
holidayAction: null,
holidayMonStart: null,
holidayDayStart: null,
holidayHourStart: null,
holidayMonEnd: null,
holidayDayEnd: null,
holidayHourEnd: null,
holidayWeekStart: null,
holidayWeekEnd: null,
holidayConstantTemp: null,
weekHourStart: null,
weekHourEnd: null
holidayAction: false,
holidayMonStart: 0,
holidayDayStart: 0,
holidayHourStart: 0,
holidayMonEnd: 0,
holidayDayEnd: 0,
holidayHourEnd: 0,
holidayWeekStart: 0,
holidayWeekEnd: 0,
holidayConstantTemp: 0,
weekHourStart: 0,
weekHourEnd: 0
});
onMounted(() => {
......@@ -419,46 +419,46 @@
try{
//console.log("write row:"+element.transferName);
var writeValue = "";
if(forms.holidayAction != null && forms.holidayAction != ""){
//if(forms.holidayAction != null && forms.holidayAction != ""){
element.holidayAction=forms.holidayAction;
writeValue +="HolidayAction:"+forms.holidayAction + ";";
}
if(element.holidayMonStart != null && forms.holidayMonStart != ""){
writeValue ="HolidayAction:"+ (forms.holidayAction===true ? "1;":"0;");
// }
// if(element.holidayMonStart != null && forms.holidayMonStart != ""){
element.holidayMonStart=forms.holidayMonStart;
writeValue +="HolidayMonStart:"+forms.holidayMonStart + ";";
}
if(element.holidayDayStart != null && forms.holidayDayStart != ""){
// }
// if(element.holidayDayStart != null && forms.holidayDayStart != ""){
element.holidayDayStart=forms.holidayDayStart;
writeValue +="HolidayDayStart:"+forms.holidayDayStart + ";";
}
if(element.holidayHourStart != null && forms.holidayHourStart != ""){
//}
//if(element.holidayHourStart != null && forms.holidayHourStart != ""){
element.holidayHourStart=forms.holidayHourStart;
writeValue +="HolidayHourStart:"+forms.holidayHourStart + ";";
}
if(element.holidayMonEnd != null && forms.holidayMonEnd != ""){
//}
//if(element.holidayMonEnd != null && forms.holidayMonEnd != ""){
element.holidayMonEnd=forms.holidayMonEnd;
writeValue +="HolidayMonEnd:"+forms.holidayMonEnd + ";";
}
if(element.holidayDayEnd != null && forms.holidayDayEnd != ""){
//}
//if(element.holidayDayEnd != null && forms.holidayDayEnd != ""){
element.holidayDayEnd=forms.holidayDayEnd;
writeValue +="HolidayDayEnd:"+forms.holidayDayEnd + ";";
}
if(element.holidayHourEnd != null && forms.holidayHourEnd != ""){
//}
//if(element.holidayHourEnd != null && forms.holidayHourEnd != ""){
element.holidayHourEnd=forms.holidayHourEnd;
writeValue +="HolidayHourEnd:"+forms.holidayHourEnd + ";";
}
if(element.holidayWeekStart != null && forms.holidayWeekStart != ""){
//}
//if(element.holidayWeekStart != null && forms.holidayWeekStart != ""){
element.holidayWeekStart=forms.holidayWeekStart;
writeValue +="HolidayWeekStart:"+forms.holidayWeekStart + ";";
}
if(element.holidayWeekEnd != null && forms.holidayWeekEnd != ""){
//}
//if(element.holidayWeekEnd != null && forms.holidayWeekEnd != ""){
element.holidayWeekEnd=forms.holidayWeekEnd;
writeValue +="HolidayWeekEnd:"+forms.holidayWeekEnd + ";";
}
if(element.holidayConstantTemp != null && forms.holidayConstantTemp != ""){
//}
//if(element.holidayConstantTemp != null && forms.holidayConstantTemp != ""){
element.holidayConstantTemp=forms.holidayConstantTemp;
writeValue +="HolidayConstantTemp:"+forms.holidayConstantTemp + ";";
}
//}
if(element.weekHourStart != null && forms.weekHourStart != ""){
element.weekHourStart=forms.weekHourStart;
writeValue +="WeekHourStart:"+forms.weekHourStart + ";";
......
......@@ -71,7 +71,7 @@
<el-form-item label="4#电调阀给定:" v-if="forms.ecv4OpeningSet != null">
<el-input v-model="forms.ecv4OpeningSet" style="width: 200px;" v-float-number/>
</el-form-item>
<el-form-item label="1#循环泵频率给定" v-if="forms.criclePump1FreqGiven != null">
<el-form-item label="1#循环泵频率给定" v-if="forms.criclePump1FreqGiven != null">
<el-input v-model="forms.criclePump1FreqGiven" style="width: 200px;" v-float-number/>
</el-form-item>
<el-form-item label="2#循环泵频率给定:" v-if="forms.criclePump2FreqGiven != null">
......
......@@ -220,15 +220,15 @@ import AMapLoader from "@amap/amap-jsapi-loader";
<div class="rightLayer1 rightLayer3" style="margin-top: 7%">
<table v-show="menuGYTransfer == 0">
<tr>
<th style="width: 15%">名称</th>
<th style="width: 20%">名称</th>
<!-- <th v-for="item in gYTransferValue" :key="item.transferId">
{{ item.transferName }}
</th> -->
<th style="width: 14%">一次供温℃</th>
<th style="width: 14%">一次回温℃</th>
<th style="width: 14%">1#阀门开度%</th>
<th style="width: 14%">2#阀门开度%</th>
<th style="width: 14%">3阀门开度%</th>
<th style="width: 13%">一次供温℃</th>
<th style="width: 13%">一次回温℃</th>
<th style="width: 13%">1#阀门开度%</th>
<th style="width: 13%">2#阀门开度%</th>
<th style="width: 13%">3阀门开度%</th>
<th>4阀门开度%</th>
</tr>
<tr v-for="item in gYTransferValue" :key="item.transferId">
......@@ -1492,9 +1492,6 @@ export default defineComponent({
stack: "总量",
label: {
show: true,
// formatter: function (params) {
// return params.value + "%";
// },
position: "inside",
color: "#ffffff",
},
......@@ -1574,9 +1571,6 @@ export default defineComponent({
right: 0;
bottom: 0;
width: 100%;
/* min-width: 1890px; */
/* min-width: 1680px; */
/* min-height: 1080px; */
margin: 0 auto;
overflow: hidden;
}
......@@ -1897,8 +1891,8 @@ export default defineComponent({
}
.gis_content .nodata {
display: flex;
align-items: center; /* 垂直居中 */
justify-content: center; /* 水平居中,如果需要的话 */
align-items: center;
justify-content: center;
font-size: 160%;
color: rgb(25, 247, 255);
}
......
......@@ -392,6 +392,14 @@ const routes = [
title: "循环泵压差控制",
},
},
{
path: "/Remote/CtrlSecondTemp",
name: "CtrlSecondTemp",
component: () => import("@/views/RemotePage/CtrlSecondTemp.vue"),
meta: {
title: "二次网方案",
},
},
{
path: "/Video",
name: "VideoPage",
......
import html2Canvas from 'html2canvas'
import JsPDF from 'jspdf'
var noTableHeight = 0 //table外的元素高度
export const htmlPdf = (title, html, fileList, type) => {// type传有效值pdf则为横版
if (fileList) {
const pageHeight = Math.floor(277 * html.scrollWidth / 190) + 20 //计算pdf高度
for (let i = 0; i < fileList.length; i++) { //循环获取的元素
const multiple = Math.ceil((fileList[i].offsetTop + fileList[i].offsetHeight) / pageHeight) //元素的高度
if (isSplit(fileList, i, multiple * pageHeight)) { //计算是否超出一页
var _H = '' //向pdf插入空白块的内容高度
if (fileList[i].localName !== 'tr') { //判断是不是表格里的内容
_H = multiple * pageHeight - (fileList[i].offsetTop + fileList[i].offsetHeight)
} else {
_H = multiple * pageHeight - (fileList[i].offsetTop + fileList[i].offsetHeight + noTableHeight) + 20
}
var newNode = getFooterElement(_H) //向pdf插入空白块的内容
const divParent = fileList[i].parentNode // 获取该div的父节点
const next = fileList[i].nextSibling // 获取div的下一个兄弟节点
// 判断兄弟节点是否存在
if (next) {
// 存在则将新节点插入到div的下一个兄弟节点之前,即div之后
divParent.insertBefore(newNode, next)
} else {
// 否则向节点添加最后一个子节点
divParent.appendChild(newNode)
}
}
}
}
html2Canvas(html, {
allowTaint: false,
taintTest: false,
logging: false,
useCORS: true,
dpi: window.devicePixelRatio * 1,
scale: 1 // 按比例增加分辨率
}).then(canvas => {
var pdf = new JsPDF('p', 'mm', 'a4') // A4纸,纵向
var ctx = canvas.getContext('2d')
var a4w = type ? 277 : 190; var a4h = type ? 190 : 277 // A4大小,210mm x 297mm,四边各保留10mm的边距,显示区域190x277
var imgHeight = Math.floor(a4h * canvas.width / a4w) // 按A4显示比例换算一页图像的像素高度
var renderedHeight = 0
while (renderedHeight < canvas.height) {
var page = document.createElement('canvas')
page.width = canvas.width
page.height = Math.min(imgHeight, canvas.height - renderedHeight)// 可能内容不足一页
// 用getImageData剪裁指定区域,并画到前面创建的canvas对象中
page.getContext('2d').putImageData(ctx.getImageData(0, renderedHeight, canvas.width, Math.min(imgHeight, canvas.height - renderedHeight)), 0, 0)
pdf.addImage(page.toDataURL('image/jpeg', 1.0), 'JPEG', 10, 10, a4w, Math.min(a4h, a4w * page.height / page.width)) // 添加图像到页面,保留10mm边距
renderedHeight += imgHeight
if (renderedHeight < canvas.height) {
pdf.addPage()// 如果后面还有内容,添加一个空页
}
// delete page;
}
// 保存文件
pdf.save(title + '.pdf')
})
}
// pdf截断需要一个空白位置来补充
const getFooterElement = (remainingHeight, fillingHeight = 0) => {
const newNode = document.createElement('div')
newNode.style.background = '#ffffff'
newNode.style.width = 'calc(100% + 8px)'
newNode.style.marginLeft = '-4px'
newNode.style.marginBottom = '0px'
newNode.classList.add('divRemove')
newNode.style.height = (remainingHeight + fillingHeight) + 'px'
return newNode
}
const isSplit = (nodes, index, pageHeight) => {
// 判断是不是tr 如果不是高度存起来
// 表格里的内容要特殊处理
// tr.offsetTop 是tr到table表格的高度
// 所以计算高速时候要把表格外的高度加起来
// 生成的pdf没有表格了这里可以不做处理 直接计算就行
if (nodes[index].localName !== 'tr') { //判断元素是不是tr
noTableHeight += nodes[index].clientHeight
}
if (nodes[index].localName !== 'tr') {
return nodes[index].offsetTop + nodes[index].offsetHeight < pageHeight && nodes[index + 1] && nodes[index + 1].offsetTop + nodes[index + 1].offsetHeight > pageHeight
} else {
return nodes[index].offsetTop + nodes[index].offsetHeight + noTableHeight < pageHeight && nodes[index + 1] && nodes[index + 1].offsetTop + nodes[index + 1].offsetHeight + noTableHeight > pageHeight
}
}
\ No newline at end of file
......@@ -24,10 +24,10 @@
:cell-style="setCellStyle" id="out-table" border highlight-current-row :header-cell-style="setHeaderCellStyle"
:header-cell-class-name="handleHeadAddClass">
<el-table-column prop="index" label="编号" :sortable="false" width="100px" fixed />
<el-table-column prop="name" label="设施名称" :sortable="false" width="250px" fixed />
<el-table-column prop="name" label="设施名称" :sortable="false" fixed />
<el-table-column prop="cnName" label="报警类型" :sortable="false" fixed />
<el-table-column prop="gatherTime" label="报警时间" :sortable="false" width="200px" fixed />
<el-table-column prop="topMost" label="上上限" :sortable="false" width="200px" fixed>
<el-table-column prop="gatherTime" label="报警时间" :sortable="false" fixed />
<el-table-column prop="topMost" label="上上限" :sortable="false" width="100px" fixed>
<template #default="scope">
<div class="div-form-img">
<el-image class="img-center" v-if="getImgUrl(scope, scope.column.property)"
......@@ -35,7 +35,7 @@
</div>
</template>
</el-table-column>
<el-table-column prop="upper" label="上限" :sortable="false" width="200px" fixed>
<el-table-column prop="upper" label="上限" :sortable="false" width="100px" fixed>
<template #default="scope">
<div class="div-form-img">
<el-image class="img-center" v-if="getImgUrl(scope, scope.column.property)"
......@@ -43,7 +43,7 @@
</div>
</template>
</el-table-column>
<el-table-column prop="lower" label="下限" :sortable="false" width="200px" fixed>
<el-table-column prop="lower" label="下限" :sortable="false" width="100px" fixed>
<template #default="scope">
<div class="div-form-img">
<el-image class="img-center" v-if="getImgUrl(scope, scope.column.property)"
......@@ -51,7 +51,7 @@
</div>
</template>
</el-table-column>
<el-table-column prop="downMost" label="下下限" :sortable="false" width="200px" fixed>
<el-table-column prop="downMost" label="下下限" :sortable="false" width="100px" fixed>
<template #default="scope">
<div class="div-form-img">
<el-image class="img-center" v-if="getImgUrl(scope, scope.column.property)"
......
This diff is collapsed.
......@@ -370,6 +370,7 @@ function postExternalQOQFun() {
break;
}
let params = {
enterpriseId: store.getters.getEnterpriseId(),
supplyIdList: networkType.value == 1 ? enertyInfo.supplyIdList : null,
idList: networkType.value == 2 ? enertyInfo.idList : null,
startTime: enertyInfo.startTime,
......@@ -382,7 +383,7 @@ function postExternalQOQFun() {
postExternalQOQ(params).then((res) => {
echarts.dispose(document.getElementById("echartsLayer"));
if (res.success === true) {
if (res.data.hourWater.length >0) {
if (res.data.hourWater.length > 0) {
pageInitFun(res);
tableData = res.data.hourWater;
}
......@@ -394,7 +395,7 @@ function postExternalQOQFun() {
postWithinQOQ(params).then((res) => {
echarts.dispose(document.getElementById("echartsLayer"));
if (res.success === true) {
if (res.data.data.length >0) {
if (res.data.data.length > 0) {
pageInitFun(res);
tableData = res.data.hourWater;
}
......@@ -446,16 +447,6 @@ function pageInitFun(res) {
});
echartSeries.push(
// {
// name: element.transferName + "温度",
// type: "line",
// tooltip: {
// valueFormatter: function (value) {
// return value + " ℃";
// },
// },
// data: data1,
// },
{
name: element.transferName + "能耗",
type: "bar",
......
<template>
<el-card class="card-contianer">
<label>二次网供水方案列表:</label>
<!-- <el-select v-model="value" class="m-2" placeholder="Select" size="large">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> -->
</el-card>
</template>
\ No newline at end of file
......@@ -210,7 +210,8 @@ import {
getCurrentInstance,
onMounted,
onUpdated,
onBeforeUnmount
onBeforeUnmount,
handleError
} from 'vue';
import { User, Lock } from '@element-plus/icons-vue'
......@@ -290,7 +291,7 @@ function login() {
}
loading.value = true;
userInfo.verificationCode = code.value;
code.value='';
http.post('/api/user/login', userInfo, '正在登录....').then((result) => {
if (!result.success) {
loading.value = false;
......@@ -306,4 +307,11 @@ function login() {
});
}
function handleKeyEvent(event){
if(event.key === 'Enter'){
login();
}
}
window.addEventListener('keydown',handleKeyEvent);
</script>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment