Commit c84a2ccb authored by xuke's avatar xuke
parents 7bc3f0d6 aaf4cfbb
......@@ -51,15 +51,24 @@ export const alterWeatherMagData = params => { // 更新气象干预数据
return http.post(`/api/cusweather/SaveAll`, params)
}
export const getTransfer = param =>{
return http.post('/api/cusweather/getTransferIds',param)
export const getTransfer = param =>{ // 获取换热站列表
return http.post(`\`/api/cusweather/getTransferIdsid=?${param}\``,param)
}
export const getAnnualParam = ()=>{ // 获取年度参数列表
return http.post('/api/Scheduling/BizHeatSet/Get')
}
export const alterAnnualParam = params =>{
return http.post('/api/Scheduling/BizHeatSet/Update',params)
export const alterAnnualParam = params => { // 修改年度参数
return http.post('/api/Scheduling/BizHeatSet/Update', params)
}
export const addAnnualParam = params =>{ // 新增年度参数
return http.post('/api/Scheduling/BizHeatSet/Add',params)
}
export const deleteAnnualParam = params =>{ // 删除年度参数
// console.log("地址:",`/api/Scheduling/BizHeatSet/Delete?Id=${params}`)
return http.post(`/api/Scheduling/BizHeatSet/Delete?Id=${params}`)
}
<script setup>
import {onMounted, reactive, ref} from "vue";
import {computed, onMounted, reactive, ref} from "vue";
import {zhCn} from "element-plus/es/locale/index";
import {getAnnualParam,alterAnnualParam} from '@/api/scheduling.js'
import {getAnnualParam,alterAnnualParam,addAnnualParam,deleteAnnualParam} from '@/api/scheduling.js'
import {ElMessageBox} from "element-plus";
const data = ref()
const tableHeaderClass = data => { // 表头样式
......@@ -11,23 +12,54 @@ const tableBodyClass = data => { // 表体样式
return 'table-body-class'
}
const searchKey = ref('') // 查询参数
const page = reactive({currentPage:1,pageSize:30,total:0}) // 当前页码,每页显示条数,总条数
const currentPage = ref(1) // 当前页码
const pageSize = ref(30) // 每页显示条数
const totalData = ref(0) // 数据总条数
const reviseWindowOpen = ref(false)
const addWindowOpen = ref(false)
const reviseForm = ref({})
const energyTypeList = ref(['一步节能','二步节能','三步节能','非节能']) // 节能等级列表
const yearList = ref(['2016','2017','2018','2019','2020','2021','2022','2023','2024','2025','2026','2027','2028','2029','2030']) // 年度列表
const addForm = ref({
energyType:'',
year:'',
standard:'',
degreeStandard:'',
indoorTemperature:'',
outdoorTemperature:'',
backWaterTemperature:''
})
const energyTypeList = ref(['一步节能','二步节能','三步节能','四步节能','非节能']) // 节能等级列表
const currentMonth = ref(0)
const currentYear = ref(0)
const selectYearValue = computed(()=>{
if (currentMonth.value >= 7){
return currentYear.value + "年-" + (currentYear.value+1) + "年"
}else {
return (currentYear.value-1) + "年-" + currentYear.value + "年"
}
})
function handleEdit(val) {
currentYear.value = new Date().getFullYear()
currentMonth.value = new Date().getMonth() + 1
reviseForm.value = {...val}
reviseWindowOpen.value = true
} // 处理修改
function handleDelete(val) {
ElMessageBox.confirm(
'点击确定后,该条数据将删除,是否继续?',
'Warning',
{
confirmButtonText:'确定',
cancelButtonText:'取消',
type:'Warning'
}
).then(()=>{
deleteAnnualParam(val.paramId).then(res=>{
if(res.success){getData()}
})
}).catch(err=>{})
} // 处理删除
function handleAdd() {
currentYear.value = new Date().getFullYear()
currentMonth.value = new Date().getMonth() + 1
addWindowOpen.value = true
} // 处理新增
function handleSearch() {
} // 处理查询
......@@ -39,27 +71,42 @@ function onSubmit() {
}
})
} // 提交修改
function onAddSubmit(){ // 提交新增
data.value.forEach((item,index,array) =>{
if(item.energyType === addForm.energyType && item.year === addForm.year){
alert("该类型年度已存在")
return
}
})
addAnnualParam(addForm.value).then(res=>{
getData()
handleClose()
})
} // 提交新增
function handleClose() {
reviseWindowOpen.value = false
addWindowOpen.value = false
resetInput()
} // 关闭弹窗
onMounted(()=>{
getData()
})
function getData(){
getAnnualParam().then(res =>{
data.value = res.data
page.total = res.data.length
})
}
function handleSizeChange(val) {
console.log(val)
page.pageSize = val
getData()
}
function handleCurrentChange(val) {
console.log(val)
page.currentPage = val
getData()
function resetInput(){
addForm.value = {
energyType:'',
year:'',
standard:'',
degreeStandard:'',
indoorTemperature:'',
outdoorTemperature:'',
backWaterTemperature:''
}
}
</script>
......@@ -101,19 +148,6 @@ function handleCurrentChange(val) {
</el-table-column>
</el-table>
</div>
<div class="pagination-wrapper">
<el-config-provider :locale="zhCn">
<el-pagination
v-model:current-page="page.currentPage"
v-model:page-size="page.pageSize"
:page-sizes="[30, 40, 50, 100, 200, 300]"
:small="true"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"/>
</el-config-provider>
</div>
<div class="revise-window-dialog">
<el-dialog
title="年度参数修改"
......@@ -122,9 +156,9 @@ function handleCurrentChange(val) {
:before-close="handleClose">
<template #default>
<el-row first>
<el-col :span="8" col-label>节能等级:</el-col>
<el-col :span="8" col-label class="energy-type-class">节能等级:</el-col>
<el-col :span="16" col-value>
<el-select placeholder="" size="small" v-model="reviseForm.energyType" style="width: 370px">
<el-select placeholder="" size="small" v-model="addForm.energyType" style="width: 370px">
<el-option
v-for="item in energyTypeList"
:key="item"
......@@ -137,13 +171,8 @@ function handleCurrentChange(val) {
<el-row>
<el-col :span="8" col-label>年度:</el-col>
<el-col :span="16" col-value>
<el-select placeholder="" v-model="reviseForm.year" size="small" style="width: 370px">
<el-option
v-for="item in yearList"
:key="item"
:label="item"
:value="item"
/>
<el-select placeholder="" size="small" v-model="reviseForm.year" style="width: 370px">
<el-option :value="selectYearValue" :label="selectYearValue"/>
</el-select>
</el-col>
</el-row>
......@@ -184,7 +213,72 @@ function handleCurrentChange(val) {
<el-button type="primary" @click="handleClose">关闭</el-button>
</div>
</template>
</el-dialog>
</el-dialog> <!-- 修改弹窗 -->
<el-dialog
title="年度参数新增"
v-model="addWindowOpen"
width="700px"
:before-close="handleClose">
<template #default>
<el-row first>
<el-col :span="8" col-label class="energy-type-class">节能等级:</el-col>
<el-col :span="16" col-value>
<el-select placeholder="" size="small" v-model="addForm.energyType" style="width: 370px">
<el-option
v-for="item in energyTypeList"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>年度:</el-col>
<el-col :span="16" col-value>
<el-select placeholder="" size="small" v-model="selectYearValue" style="width: 370px">
<el-option :value="selectYearValue" :label="selectYearValue"/>
</el-select>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>标准:</el-col>
<el-col :span="16" col-value>
<el-input v-model="addForm.standard" placeholder="" style="width: 370px"/>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>度日数标定值:</el-col>
<el-col :span="16" col-value>
<el-input v-model="addForm.degreeStandard" style="width: 370px"/>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>室内温度:</el-col>
<el-col :span="16" col-value>
<el-input v-model="addForm.indoorTemperature" style="width: 370px"/>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>室外温度:</el-col>
<el-col :span="16" col-value>
<el-input v-model="addForm.outdoorTemperature" style="width: 370px"/>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>回水温度:</el-col>
<el-col :span="16" col-value>
<el-input v-model="addForm.backWaterTemperature" style="width: 370px"/>
</el-col>
</el-row>
</template>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="onAddSubmit">保存</el-button>
<el-button type="primary" @click="handleClose">关闭</el-button>
</div>
</template>
</el-dialog> <!-- 新增弹窗 -->
</div>
</div>
</template>
......@@ -203,6 +297,9 @@ function handleCurrentChange(val) {
.search-add-wrapper .el-row {
width: 50%;
border: none;
display: flex;
align-items: center;
margin: 5px 10px 5px 5px;
}
......@@ -252,8 +349,9 @@ function handleCurrentChange(val) {
border-top: 1px solid #a6c3e9;
}
.el-row{
display: flex;
align-items: center;
border-left: 1px solid #a6c3e9;
border-right: 1px solid #a6c3e9;
border-bottom: 1px solid #a6c3e9;
width: 100%;
height: 35px;
color: #124362;
......
<script setup>
import {computed, isRef, onMounted, ref, shallowRef} from "vue";
import {computed, isRef, onMounted, reactive, ref, shallowRef} from "vue";
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
import ReviseWindow from "./weatherManageSub/ReviseWindow.vue";
import BindWindow from "./weatherManageSub/BindWindow.vue";
import {getWeatherMagData,alterWeatherMagData,getTransfer} from '@/api/scheduling.js'
import {getWeatherMagData, alterWeatherMagData, getTransfer} from '@/api/scheduling.js'
import AddWindow from "./weatherManageSub/AddWindow.vue";
const data = ref()
const currentPage = ref(1) // 当前页码
const pageSize = ref(30) // 每页显示条数
const totalData = ref(0) // 数据总条数
const reviseWindowOpen = ref(false) // 修改按钮弹窗状态
const bindWindowOpen = ref(false) // 绑定按钮弹窗状态
const totalPageCount = computed(() => { // 页面左下角总页数计算
return Math.ceil(data.value.length / pageSize.value)
})
const addWindowOpen = ref(false)
const dependentSub = ref({}) // 弹窗数据
const tableHeaderClass = data => { // 表头样式
return 'table-header-class'
......@@ -21,10 +17,6 @@ const tableHeaderClass = data => { // 表头样式
const tableBodyClass = data => { // 表体样式
return 'table-body-class'
}
const setCellStyle = (row, column, rowIndex, columnIndex) => {
let css_color = {}
return css_color
}
const revise = (row) => { // 修改按钮单击事件
dependentSub.value = row
......@@ -32,7 +24,7 @@ const revise = (row) => { // 修改按钮单击事件
}
const bind = (row) => { // 绑定按钮单击事件
getTransfer(row.customizeId).then(res=>{
getTransfer(row.customizeId).then(res => {
console.log(res)
})
dependentSub.value = row
......@@ -59,17 +51,22 @@ const confirmBind = val => {
console.log("处理换热站绑定")
bindWindowOpen.value = false
}
onMounted(()=>{
onMounted(() => {
getData()
})
function getData(){
getWeatherMagData().then(res =>{
function getData() {
getWeatherMagData().then(res => {
data.value = res.data
totalData.value = data.value.length
console.log(data.value)
})
}
function handleAddWinOpenClose(){
addWindowOpen.value = false
}
function handleAdd(val){
addWindowOpen.value = false
}
</script>
<template>
......@@ -79,8 +76,8 @@ function getData(){
</el-col>
<el-col :span="9" right-col>
<!-- <el-button type="primary" @click="reviseWindowOpen = true" class="add-btn">新增</el-button>-->
<el-button type="primary" class="add-btn">新增</el-button>
<el-button type="primary" @click="addWindowOpen = true" class="add-btn">新增</el-button>
<!-- <el-button type="primary" class="add-btn">新增</el-button>-->
<el-button type="primary">查询</el-button>
</el-col>
</el-row>
......@@ -90,7 +87,6 @@ function getData(){
stripe
border
style="width: 100%"
:cell-style="setCellStyle"
:header-cell-class-name="tableHeaderClass"
:row-class-name="tableBodyClass">
<el-table-column prop="allowPagingId" label="编号" align="center" width="60"/>
......@@ -120,38 +116,11 @@ function getData(){
</el-table-column>
</el-table>
</div>
<div class="pagination-wrapper">
<!-- <div class="pagination-text-area">-->
<!-- <div class="pagination-text">-->
<!-- 共{{ data.length }}条记录,当前为第{{ currentPage }}页,共{{ totalPageCount }}页-->
<!-- </div>-->
<!-- </div>-->
<!-- <el-config-provider :locale="zhCn">-->
<!-- <el-pagination-->
<!-- v-model:current-page="currentPage"-->
<!-- v-model:page-size="pageSize"-->
<!-- :page-sizes="[30, 40, 50, 100, 200, 300]"-->
<!-- :small="true"-->
<!-- layout="sizes, prev, pager, next, jumper"-->
<!-- :total="data.length"-->
<!-- @change="data"-->
<!-- class="pagination"/>-->
<!-- </el-config-provider>-->
<el-config-provider :locale="zhCn">
<el-pagination
v-model:current-page="currentPage"
v-model:page-size="pageSize"
:page-sizes="[30, 40, 50, 100, 200, 300]"
:small="true"
layout="total, sizes, prev, pager, next, jumper"
:total="totalData"
@change="getData"
class="pagination"/>
</el-config-provider>
</div>
<div class="dialog-wrapper">
<AddWindow
:open="addWindowOpen"
@onCancel="handleAddWinOpenClose"
@on-confirm="handleAdd"></AddWindow>
<ReviseWindow
:open="reviseWindowOpen"
:data="dependentSub"
......@@ -219,21 +188,6 @@ function getData(){
font-size: 12px;
}
.pagination-wrapper {
padding: 5px;
display: flex;
justify-content: space-between;
align-items: center;
}
.pagination-text {
font-size: 12px;
}
.pagination {
}
::v-deep .el-table__body tr:hover > td {
background: linear-gradient(to top, rgb(0, 198, 255), rgb(255, 255, 255)) !important;
}
......
<script setup>
import {ref, defineProps, defineEmits, computed, isRef, onMounted, watchEffect} from "vue";
const props = defineProps({
open: {
type: Boolean,
default: false,
required: true
}
})
const emit = defineEmits(['onCancel','onConfirm'])
const addData = ref({
customizeName: '', // 自定义名称
isFixed: false, // 干预模式:true 固定模式,false 气象仪模式
temperature: '', // 温度
wind: '', // 风速
illumination: '', // 光照
sort: '', // 排序
isAuto: false, // 是否自动模式
diffPercentage: '', // 自动偏差百分比
timeoutMin: '', // 自动验证循环时间
tempRegulation: '', // 自动调节温度
operateTime:"", // 操作时间
description: null, // 排序字段,全为Null
updateNullField:"", // 无用,但不为空
isActive:false, // 是否启用
supplyId:'', // 供热站编号
})
const inputStyle = {
color: 'black',
height: '24px'
}
const switchingisAuto = computed({
get() {
return addData.value.isAuto === '自动模式'
},
set(newValue) {
if (newValue) {
addData.value.isAuto = '自动模式'
} else {
addData.value.isAuto = '手动模式'
}
}
}) // 可写计算属性,手动、自动模式切换
function handleClose() {
addData.value = {
customizeName: '', // 自定义名称
isFixed: false, // 干预模式:true 固定模式,false 气象仪模式
temperature: '', // 温度
wind: '', // 风速
illumination: '', // 光照
sort: '', // 排序
isAuto: false, // 是否自动模式
diffPercentage: '', // 自动偏差百分比
timeoutMin: '', // 自动验证循环时间
tempRegulation: '', // 自动调节温度
operateTime:"", // 操作时间
description: null, // 排序字段,全为Null
updateNullField:"", // 无用,但不为空
isActive:false, // 是否启用
supplyId:'', // 供热站编号
}
emit('onCancel')
}
function handleConfirm() {
emit('onConfirm',addData.value)
addData.value = {
customizeName: '', // 自定义名称
isFixed: false, // 干预模式:true 固定模式,false 气象仪模式
temperature: '', // 温度
wind: '', // 风速
illumination: '', // 光照
sort: '', // 排序
isAuto: false, // 是否自动模式
diffPercentage: '', // 自动偏差百分比
timeoutMin: '', // 自动验证循环时间
tempRegulation: '', // 自动调节温度
operateTime:"", // 操作时间
description: null, // 排序字段,全为Null
updateNullField:"", // 无用,但不为空
isActive:false, // 是否启用
supplyId:'', // 供热站编号
}
}
</script>
<template>
<el-dialog
v-model="props.open"
width="1000px"
title="新增"
@close="emit('onCancel')">
<template #default>
<div class="dialog-content">
<el-row style="border-top: #a6c3e9 1px solid">
<el-col :span="8" class="content-col-label">自定义名称:</el-col>
<el-col :span="16" class="content-col-value">
<el-input :input-style="inputStyle" v-model="addData.customizeName" style="width: 510px"/>
</el-col>
</el-row>
<el-row>
<el-col :span="8" class="content-col-label">干预模式:</el-col>
<el-col :span="16" class="content-col-value">
<el-radio-group v-model="addData.isFixed">
<el-radio value="固定模式" :style="{marginLeft:'10px'}">固定模式</el-radio>
<el-radio value="气象仪模式" :style="{marginLeft:'-15px'}">气象仪模式</el-radio>
</el-radio-group>
</el-col>
</el-row>
<el-row>
<el-col :span="8" class="content-col-label">温度:</el-col>
<el-col :span="16" class="content-col-value">
<el-input :input-style="inputStyle" v-model="addData.temperature" style="width: 510px"/>
</el-col>
</el-row>
<el-row>
<el-col :span="8" class="content-col-label">风速:</el-col>
<el-col :span="16" class="content-col-value">
<el-input :input-style="inputStyle" v-model="addData.wind" style="width: 510px"/>
</el-col>
</el-row>
<el-row>
<el-col :span="8" class="content-col-label">光照:</el-col>
<el-col :span="16" class="content-col-value">
<el-input :input-style="inputStyle" v-model="addData.illumination" style="width: 510px"/>
</el-col>
</el-row>
<el-row>
<el-col :span="8" class="content-col-label">排序:</el-col>
<el-col :span="16" class="content-col-value">
<el-input :input-style="inputStyle" v-model="addData.sort" style="width: 510px"/>
</el-col>
</el-row>
<el-row>
<el-col :span="5" class="content-col-label">切换自动模式:</el-col>
<el-col :span="7" class="content-col-value">
<el-checkbox :style="{marginLeft:'10px'}" v-model="switchingisAuto" label="自动模式"/>
</el-col>
<el-col :span="5" class="content-col-label">自动偏差百分比(%d):</el-col>
<el-col :span="7" class="content-col-value">
<el-input :input-style="inputStyle" v-model="addData.diffPercentage" style="width: 240px"/>
</el-col>
</el-row>
<el-row>
<el-col :span="5" class="content-col-label">自动验证循环时间(分钟):</el-col>
<el-col :span="7" class="content-col-value">
<el-input :input-style="inputStyle" v-model="addData.timeoutMin" style="width: 240px"/>
</el-col>
<el-col :span="5" class="content-col-label">自动调节温度(℃):</el-col>
<el-col :span="7" class="content-col-value">
<el-input :input-style="inputStyle" v-model="addData.tempRegulation" style="width: 240px"/>
</el-col>
</el-row>
</div>
</template>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="handleConfirm">保存</el-button>
<el-button type="primary" @click="handleClose">关闭</el-button>
</div>
</template>
</el-dialog>
</template>
<style scoped>
.el-row {
color: black;
height: 35px;
border-bottom: #a6c3e9 1px solid;
border-left: #a6c3e9 1px solid;
border-right: #a6c3e9 1px solid;
}
.content-col-label {
display: flex;
justify-content: end;
align-items: center;
background-color: #dfe8f6;
border-right: #a6c3e9 1px solid;
padding-right: 5px;
}
.content-col-value {
display: flex;
justify-content: start;
align-items: center;
padding-left: 5px;
}
.el-input {
color: black;
}
.el-radio{
color: black;
}
.el-checkbox{
color: black;
}
</style>
\ 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