|
|
@ -3,38 +3,41 @@ |
|
|
|
<el-row> |
|
|
|
<el-col :span="4" class="card-box"> |
|
|
|
<div class="head-container"> |
|
|
|
<el-input v-model="deptName" placeholder="请输入部门名称" clearable prefix-icon="Search" style="margin-bottom: 20px" /> |
|
|
|
<el-input v-model="deptName" placeholder="请输入部门名称" clearable prefix-icon="Search" |
|
|
|
style="margin-bottom: 20px"/> |
|
|
|
</div> |
|
|
|
<div class="head-container"> |
|
|
|
<el-tree :data="deptOptions" :props="{ label: 'label', children: 'children' }" :expand-on-click-node="false" |
|
|
|
:filter-node-method="filterNode" ref="deptTreeRef" node-key="id" highlight-current default-expand-all |
|
|
|
@node-click="handleNodeClick" /> |
|
|
|
:filter-node-method="filterNode" ref="deptTreeRef" node-key="id" highlight-current default-expand-all |
|
|
|
@node-click="handleNodeClick"/> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="20"> |
|
|
|
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" |
|
|
|
class="my-custom-form"> |
|
|
|
class="my-custom-form"> |
|
|
|
<el-row> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item label="排除设备" prop="excludeDevices" label-width="auto"> |
|
|
|
<el-select v-model="queryParams.excludeDevices" placeholder="请选择排除设备" clearable multiple> |
|
|
|
<el-option |
|
|
|
v-for="dict in listDeviceAll" |
|
|
|
:key="dict.uuid" |
|
|
|
:label="dict.deviceName" |
|
|
|
:value="dict.uuid" |
|
|
|
v-for="dict in listDeviceAll" |
|
|
|
:key="dict.uuid" |
|
|
|
:label="dict.deviceName" |
|
|
|
:value="dict.uuid" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="标准值" prop="standard" label-width="auto"> |
|
|
|
<el-input v-model="queryParams.standard" placeholder="请输入标准值" clearable @keyup.enter="handleQuery" /> |
|
|
|
<el-input v-model="queryParams.standard" placeholder="请输入标准值" clearable |
|
|
|
@keyup.enter="handleQuery"/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="发送地址" prop="sendIp" label-width="auto"> |
|
|
|
<el-input v-model="queryParams.sendIp" placeholder="请输入发送地址" clearable @keyup.enter="handleQuery" /> |
|
|
|
<el-input v-model="queryParams.sendIp" placeholder="请输入发送地址" clearable |
|
|
|
@keyup.enter="handleQuery"/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
@ -62,18 +65,21 @@ |
|
|
|
</el-row> |
|
|
|
|
|
|
|
<el-table v-loading="loading" :data="heatapiconfList" @selection-change="handleSelectionChange" |
|
|
|
:max-height="tableHeight" :border="true" :column-width-draggable="true"> |
|
|
|
<el-table-column type="selection" width="55" align="center" fixed="left" /> |
|
|
|
:max-height="tableHeight" :border="true" :column-width-draggable="true"> |
|
|
|
<el-table-column type="selection" width="55" align="center" fixed="left"/> |
|
|
|
<!-- <el-table-column label="主键" align="center" prop="id" /> --> |
|
|
|
<el-table-column label="机构编号" align="center" prop="orgCode" /> |
|
|
|
<el-table-column label="机构名称" align="center" prop="orgName" /> |
|
|
|
<el-table-column label="排除设备" align="center" prop="excludeDevices" show-overflow-tooltip="true" > |
|
|
|
<template #default="scope"> |
|
|
|
{{getDevicesNames(scope.row.excludeDevices)}} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="标准值" align="center" prop="standard" /> |
|
|
|
<el-table-column label="发送地址" align="center" prop="sendIp" /> |
|
|
|
<el-table-column label="机构编号" align="center" prop="orgCode"/> |
|
|
|
<el-table-column label="机构名称" align="center" prop="orgName"/> |
|
|
|
<!-- <el-table-column label="排除设备" align="center" prop="excludeDevices" show-overflow-tooltip="true" >--> |
|
|
|
<!-- <template #default="scope">--> |
|
|
|
<!-- {{getDevicesNames(scope.row.excludeDevices)}}--> |
|
|
|
<!-- </template>--> |
|
|
|
<!-- </el-table-column>--> |
|
|
|
<el-table-column label="推送方" align="center" prop="pushingCounterpart" |
|
|
|
:formatter="formatterPushingCounterpart"/> |
|
|
|
<!-- <el-table-column label="策略" align="center" prop="strategy" :formatter="formatterStrategy"/>--> |
|
|
|
<el-table-column label="标准值" align="center" prop="standard"/> |
|
|
|
<!-- <el-table-column label="发送地址" align="center" prop="sendIp"/>--> |
|
|
|
<el-table-column label="是否发送" align="center" prop="available"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-switch v-model="scope.row.available" @change="changeEnabled(scope.row)"/> |
|
|
@ -85,11 +91,11 @@ |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" :width="300" |
|
|
|
:fixed="fixedColumns ? 'right' : false"> |
|
|
|
:fixed="fixedColumns ? 'right' : false"> |
|
|
|
<template #header> |
|
|
|
<div class="fixed-column-header" style="text-align: center;display: block;" @dblclick="toggleFixedColumns"> |
|
|
|
<span style="text-align: center;display: block;">操作<img style="width:10px;margin-left:5px" |
|
|
|
v-show="fixedColumns" :src="lock" alt="Image" /></span> |
|
|
|
<div class="fixed-column-header" style="text-align: center;display: block;" |
|
|
|
@dblclick="toggleFixedColumns"> |
|
|
|
<span style="text-align: center;display: block;">操作<img style="width:10px;margin-left:5px" v-show="fixedColumns" :src="lock" alt="Image"/></span> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<template #default="scope"> |
|
|
@ -101,57 +107,81 @@ |
|
|
|
</el-table> |
|
|
|
|
|
|
|
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" |
|
|
|
v-model:limit="queryParams.pageSize" @pagination="getList" /> |
|
|
|
v-model:limit="queryParams.pageSize" @pagination="getList"/> |
|
|
|
|
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
|
|
|
|
<!-- 添加或修改供热办推送接口配置对话框 --> |
|
|
|
<el-dialog :title="title" v-model="open" width="700px" append-to-body draggable> |
|
|
|
<el-dialog :title="title" v-model="open" width="1000px" append-to-body draggable :close-on-click-modal="false"> |
|
|
|
<el-form ref="heatapiconfRef" :model="form" :rules="rules" label-width="80px"> |
|
|
|
|
|
|
|
<el-row> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="所属公司" prop="orgCode"> |
|
|
|
<el-form-item label="热源" prop="orgCode"> |
|
|
|
<el-tree-select |
|
|
|
:disabled = "editable" |
|
|
|
v-model="form.orgCode" |
|
|
|
:data="deptOptions" |
|
|
|
:props="{ value: 'id', label: 'label', children: 'children' }" |
|
|
|
value-key="id" |
|
|
|
placeholder="请选择" |
|
|
|
check-strictly |
|
|
|
:default-expand-all="true" |
|
|
|
@node-click="selectDept" |
|
|
|
filterable |
|
|
|
style="width:100%" |
|
|
|
v-model="form.orgCode" |
|
|
|
:data="deptOptions" |
|
|
|
:props="{ value: 'id', label: 'label', children: 'children' }" |
|
|
|
value-key="id" |
|
|
|
placeholder="请选择" |
|
|
|
check-strictly |
|
|
|
:default-expand-all="true" |
|
|
|
@node-click="selectDept" |
|
|
|
filterable |
|
|
|
style="width:100%" |
|
|
|
:disabled="editable" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="推送方" prop="pushingCounterpart"> |
|
|
|
<el-select v-model="form.pushingCounterpart" placeholder="请选择推送方" style="width: 100%;"> |
|
|
|
<el-option v-for="dict in pushing_counterpart" :key="dict.value" :label="dict.label" |
|
|
|
:value="dict.value"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="标准值" prop="standard"> |
|
|
|
<el-input v-model="form.standard" placeholder="请输入标准值" /> |
|
|
|
<el-input type="number" v-model="form.standard" placeholder="请输入标准值"/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-form-item label="发送地址" prop="sendIp" v-hasPermi="['model:heatapiconf:edit']"> |
|
|
|
<el-input v-model="form.sendIp" placeholder="请输入发送地址" /> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="日期范围" prop="dateRange"> |
|
|
|
<el-date-picker |
|
|
|
v-model="form.dateRange" |
|
|
|
type="daterange" |
|
|
|
range-separator="至" |
|
|
|
start-placeholder="起始日期" |
|
|
|
end-placeholder="结束日期" |
|
|
|
value-format="YYYY-MM-DD" |
|
|
|
@change="dateRangeChange" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-form-item label="排除设备" prop="excludeDevices"> |
|
|
|
<el-select v-model="form.excludeDevices" placeholder="请选择排除设备" clearable multiple style="width:100%" > |
|
|
|
<el-option |
|
|
|
v-for="dict in listDevices" |
|
|
|
:key="dict.uuid" |
|
|
|
:label="dict.deviceName" |
|
|
|
:value="dict.uuid" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="时间间隔" prop="pushingInterval"> |
|
|
|
<el-input type="number" v-model="form.pushingInterval" placeholder="请输入发送时间间隔"> |
|
|
|
<template #append>分钟</template> |
|
|
|
</el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-form> |
|
|
|
<el-button type="success" icon="Plus" @click="handleAddStrategyConf" :disabled="disabled">选择设备</el-button> |
|
|
|
<el-table :data="deviceStrategyConfList" style="width: 100%; margin-top: 10px" height="300px"> |
|
|
|
<el-table-column type="index" width="50"/> |
|
|
|
<el-table-column prop="deviceUuid" label="设备" :formatter="formatterDevicesName"/> |
|
|
|
<el-table-column prop="strategy" label="策略" :formatter="formatterStrategy"/> |
|
|
|
<el-table-column prop="adjustedValue" label="调整值"/> |
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" :width="300" |
|
|
|
:fixed="fixedColumns ? 'right' : false"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-button type="text" icon="Edit" @click="handleUpdateStrategyConf(scope.row)">修改</el-button> |
|
|
|
<el-button type="text" icon="Delete" @click="handleDeleteStrategyConf(scope.$index)">删除</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<template #footer> |
|
|
|
<div class="dialog-footer"> |
|
|
|
<el-button type="primary" @click="submitForm">确 定</el-button> |
|
|
@ -159,17 +189,86 @@ |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<el-dialog title="编辑设备调整策略" v-model="openStrategyConfEditForm" width="500px" append-to-body draggable |
|
|
|
:close-on-click-modal="false"> |
|
|
|
<el-form ref="strategyConfEditFormRef" :model="strategyConfEditForm" :rules="strategyConfEditRules" |
|
|
|
label-width="80px"> |
|
|
|
<el-form-item label="设备:" prop="deviceName"> |
|
|
|
{{ getDevicesName(strategyConfEditForm.deviceUuid) }} |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="策略:" prop="strategy"> |
|
|
|
<el-select v-model="strategyConfEditForm.strategy" placeholder="请选择策略" style="width: 100%;"> |
|
|
|
<el-option v-for="dict in effective_strategy" :key="dict.value" :label="dict.label" |
|
|
|
:value="dict.value"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="调整值:" prop="adjustedValue"> |
|
|
|
<el-input type="number" v-model="strategyConfEditForm.adjustedValue" placeholder="请输入调整值" :disabled="strategyConfEditForm.strategy !== '1'"/> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<template #footer> |
|
|
|
<div class="dialog-footer"> |
|
|
|
<el-button type="primary" @click="submitStrategyConfEditForm">确 定</el-button> |
|
|
|
<el-button @click="cancelStrategyConfEditForm">取 消</el-button> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<el-dialog title="新增设备" v-model="openStrategyConfAddForm" width="500px" append-to-body draggable |
|
|
|
:close-on-click-modal="false"> |
|
|
|
<el-form ref="strategyConfSaveFormRef" :model="strategyConfSaveForm" :rules="strategyConfSaveRules" |
|
|
|
label-width="70px"> |
|
|
|
<el-form-item label="设备:" prop="deviceList"> |
|
|
|
<el-select |
|
|
|
v-model="strategyConfSaveForm.deviceList" |
|
|
|
multiple |
|
|
|
filterable |
|
|
|
placeholder="请选择设备" |
|
|
|
style="width: 100%" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in deviceList" |
|
|
|
:key="item.uuid" |
|
|
|
:label="item.deviceName" |
|
|
|
:value="item.uuid" |
|
|
|
:disabled="item.disabled" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<template #footer> |
|
|
|
<div class="dialog-footer"> |
|
|
|
<el-button type="primary" @click="submitStrategyConfAddForm">确 定</el-button> |
|
|
|
<el-button @click="cancelStrategyConfAddForm">取 消</el-button> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<style lang="scss" > @import "@/assets/styles/self-defined.scss"; |
|
|
|
<style lang="scss"> @import "@/assets/styles/self-defined.scss"; |
|
|
|
</style> |
|
|
|
<script setup name="Heatapiconf"> |
|
|
|
import { listHeatapiconf, getHeatapiconf, delHeatapiconf, addHeatapiconf, updateHeatapiconf } from "@/api/model/heatapiconf"; |
|
|
|
import { listDeviceNoPage } from "@/api/model/device"; |
|
|
|
import { deptTreeSelect,deptTreeSelectNew } from "@/api/system/user"; |
|
|
|
import { |
|
|
|
listHeatapiconf, |
|
|
|
getHeatapiconf, |
|
|
|
delHeatapiconf, |
|
|
|
addHeatapiconf, |
|
|
|
updateHeatapiconf |
|
|
|
} from "@/api/model/heatapiconf"; |
|
|
|
import { |
|
|
|
listDcHeatStandardDeviceStrategyConf, |
|
|
|
addBatchDcHeatStandardDeviceStrategyConf, |
|
|
|
updateDcHeatStandardDeviceStrategyConf |
|
|
|
} from "@/api/model/dcHeatStandardDeviceStrategyConf"; |
|
|
|
import {listDeviceNoPage} from "@/api/model/device"; |
|
|
|
import {deptTreeSelect, deptTreeSelectNew} from "@/api/system/user"; |
|
|
|
import lock from "@/assets/icons/svg/lock.svg"; |
|
|
|
import { ElMessageBox } from 'element-plus'; |
|
|
|
const { proxy } = getCurrentInstance(); |
|
|
|
import {ElMessageBox} from 'element-plus'; |
|
|
|
import { nextTick } from 'vue' |
|
|
|
|
|
|
|
const {proxy} = getCurrentInstance(); |
|
|
|
const {pushing_counterpart, effective_strategy} = proxy.useDict('pushing_counterpart', 'effective_strategy'); |
|
|
|
|
|
|
|
const heatapiconfList = ref([]); |
|
|
|
const open = ref(false); |
|
|
@ -201,13 +300,29 @@ const data = reactive({ |
|
|
|
pageSize: 10, |
|
|
|
orgCode: null, |
|
|
|
standard: null, |
|
|
|
excludeDevices:[], |
|
|
|
excludeDevices: [], |
|
|
|
}, |
|
|
|
rules: { |
|
|
|
} |
|
|
|
rules: {} |
|
|
|
}); |
|
|
|
|
|
|
|
const {queryParams, form, rules} = toRefs(data); |
|
|
|
const deviceList = ref([]); |
|
|
|
const deviceStrategyConfList = ref([]); |
|
|
|
const openStrategyConfEditForm = ref(false); |
|
|
|
const strategyConfEditForm = ref({}); |
|
|
|
const strategyConfEditRules = ref({}); |
|
|
|
const openStrategyConfAddForm = ref(false); |
|
|
|
const strategyConfSaveForm = ref({ |
|
|
|
deviceList: [] |
|
|
|
}); |
|
|
|
const strategyConfSaveRules = ref({ |
|
|
|
deviceList: [{ |
|
|
|
required: true, |
|
|
|
message: '请选择设备', |
|
|
|
trigger: 'change' |
|
|
|
}] |
|
|
|
}); |
|
|
|
|
|
|
|
const { queryParams, form, rules } = toRefs(data); |
|
|
|
|
|
|
|
/** 查询供热办推送接口配置列表 */ |
|
|
|
function getList() { |
|
|
@ -275,6 +390,8 @@ function handleSelectionChange(selection) { |
|
|
|
|
|
|
|
/** 新增按钮操作 */ |
|
|
|
function handleAdd() { |
|
|
|
form.value = {}; |
|
|
|
deviceStrategyConfList.value = []; |
|
|
|
form.value.standard = null; |
|
|
|
form.value.available = true; |
|
|
|
form.value.sendIp = null; |
|
|
@ -282,18 +399,17 @@ function handleAdd() { |
|
|
|
form.value.computeSwitchTotal = true; |
|
|
|
title.value = "添加供热办推送接口配置"; |
|
|
|
form.value.excludeDevices = null; |
|
|
|
getListDevice(); |
|
|
|
if(treeSelected.value != null && treeSelected.value != ''){ |
|
|
|
if (treeSelected.value != null && treeSelected.value != '') { |
|
|
|
editable.value = true; |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
editable.value = false; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/** 修改按钮操作 */ |
|
|
|
function handleUpdate(row) { |
|
|
|
reset(); |
|
|
|
deviceStrategyConfList.value = []; |
|
|
|
const _id = row.id || ids.value |
|
|
|
if (_id.length === 0) { |
|
|
|
ElMessageBox.alert('请选择需要修改的记录', '提示', { |
|
|
@ -311,13 +427,19 @@ function handleUpdate(row) { |
|
|
|
getListDevice(row.orgCode); |
|
|
|
getHeatapiconf(_id).then(response => { |
|
|
|
form.value = response.data; |
|
|
|
if(form.value.excludeDevices != null && form.value.excludeDevices?.trim() != ""){ |
|
|
|
if (form.value.startDate && form.value.endDate) { |
|
|
|
form.value.dateRange = [form.value.startDate, form.value.endDate]; |
|
|
|
} |
|
|
|
if (form.value.excludeDevices != null && form.value.excludeDevices?.trim() != "") { |
|
|
|
form.value.excludeDevices = form.value.excludeDevices.split(","); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
form.value.excludeDevices = null; |
|
|
|
} // 将机构名称赋值给form对象的orgName属性 |
|
|
|
open.value = true; |
|
|
|
title.value = "修改供热办推送接口配置"; |
|
|
|
listDcHeatStandardDeviceStrategyConf({confId: _id, pageNum: 1, pageSize: 1000}).then(res => { |
|
|
|
deviceStrategyConfList.value = res.rows; |
|
|
|
open.value = true; |
|
|
|
title.value = "修改供热办推送接口配置"; |
|
|
|
}); |
|
|
|
}); |
|
|
|
editable.value = true; |
|
|
|
|
|
|
@ -329,6 +451,7 @@ function submitForm() { |
|
|
|
if (valid) { |
|
|
|
if (form.value.id != null) { |
|
|
|
form.value.excludeDevices = form.value.excludeDevices?.join(","); |
|
|
|
form.value.deviceStrategyConfList = deviceStrategyConfList.value; |
|
|
|
updateHeatapiconf(form.value).then(response => { |
|
|
|
proxy.$modal.msgSuccess("修改成功"); |
|
|
|
open.value = false; |
|
|
@ -362,7 +485,8 @@ function handleDelete(row) { |
|
|
|
}).then(() => { |
|
|
|
getList(); |
|
|
|
proxy.$modal.msgSuccess("删除成功"); |
|
|
|
}).catch(() => { }); |
|
|
|
}).catch(() => { |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
function getDeptTreeSelectNew() { |
|
|
@ -450,10 +574,10 @@ onUnmounted(() => { |
|
|
|
window.removeEventListener('resize', calculateTableHeight); |
|
|
|
}); |
|
|
|
watch( |
|
|
|
[collapseVisible, showSearch], |
|
|
|
() => { |
|
|
|
calculateTableHeight(); |
|
|
|
} |
|
|
|
[collapseVisible, showSearch], |
|
|
|
() => { |
|
|
|
calculateTableHeight(); |
|
|
|
} |
|
|
|
); |
|
|
|
const calculateTableHeight = () => { |
|
|
|
nextTick(() => { |
|
|
@ -466,11 +590,12 @@ const calculateTableHeight = () => { |
|
|
|
tableHeight.value = remainingHeight + 'px'; |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|
function getDeptTreeNew(data) { |
|
|
|
const result = []; |
|
|
|
data.forEach(item => { |
|
|
|
if (item.orgType === '1003') { |
|
|
|
const newItem = { ...item }; // 使用深拷贝创建新的部门对象 |
|
|
|
const newItem = {...item}; // 使用深拷贝创建新的部门对象 |
|
|
|
newItem.children = []; // 将叶节点的 children 属性设置为空数组,不包含子节点 |
|
|
|
newItem.isLeaf = false; |
|
|
|
newItem.id = String(item.id); |
|
|
@ -478,7 +603,7 @@ function getDeptTreeNew(data) { |
|
|
|
} else if (item.children) { |
|
|
|
const children = getDeptTreeNew(item.children); // 递归调用处理子节点 |
|
|
|
if (children.length > 0) { |
|
|
|
const newItem = { ...item }; // 使用深拷贝创建新的部门对象 |
|
|
|
const newItem = {...item}; // 使用深拷贝创建新的部门对象 |
|
|
|
newItem.children = children; |
|
|
|
newItem.isLeaf = true; |
|
|
|
newItem.id = String(item.id); |
|
|
@ -490,97 +615,231 @@ function getDeptTreeNew(data) { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function changeEnabled(row){ |
|
|
|
function changeEnabled(row) { |
|
|
|
ElMessageBox.confirm('确定修改该推送状态吗', '提示', { |
|
|
|
distinguishCancelAndClose: true, |
|
|
|
confirmButtonText: '确定', |
|
|
|
cancelButtonText: '取消', |
|
|
|
}) |
|
|
|
.then(() => { |
|
|
|
console.log("确定"); |
|
|
|
let param = { |
|
|
|
id:row.id, |
|
|
|
available:row.available |
|
|
|
} |
|
|
|
updateHeatapiconf(param); |
|
|
|
}) |
|
|
|
.catch((action) => { |
|
|
|
console.log("取消"); |
|
|
|
row.available = !row.available; |
|
|
|
distinguishCancelAndClose: true, |
|
|
|
confirmButtonText: '确定', |
|
|
|
cancelButtonText: '取消', |
|
|
|
}) |
|
|
|
.then(() => { |
|
|
|
console.log("确定"); |
|
|
|
let param = { |
|
|
|
id: row.id, |
|
|
|
available: row.available |
|
|
|
} |
|
|
|
updateHeatapiconf(param); |
|
|
|
}) |
|
|
|
.catch((action) => { |
|
|
|
console.log("取消"); |
|
|
|
row.available = !row.available; |
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
function turnToParamConf(row){ |
|
|
|
function turnToParamConf(row) { |
|
|
|
router.push({ |
|
|
|
path: "heatParamModel", |
|
|
|
query: { |
|
|
|
standardConfId:row.id, |
|
|
|
standardConfId: row.id, |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
function getListDevice(orgCode) { |
|
|
|
let param = {}; |
|
|
|
if(orgCode != null && typeof orgCode === 'string'){ |
|
|
|
if (orgCode != null && typeof orgCode === 'string') { |
|
|
|
param.orgCode = orgCode; |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
param.orgCode = form.value.orgCode; |
|
|
|
} |
|
|
|
listDeviceNoPage(param).then(response => { |
|
|
|
listDevices.value = response.data; |
|
|
|
console.log("设备", listDevices.value); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
function getDevicesNames(deviceIds){ |
|
|
|
function getDevicesNames(deviceIds) { |
|
|
|
|
|
|
|
if(!deviceIds) return ''; |
|
|
|
let deviceIdSet = new Set(deviceIds.split(',')); |
|
|
|
let deviceMap = new Map(); |
|
|
|
listDeviceAll.value.forEach(device => { |
|
|
|
deviceMap.set(device.uuid, device.deviceName); |
|
|
|
}); |
|
|
|
let deviceNames = []; |
|
|
|
for (let deviceId of deviceIdSet) { |
|
|
|
let name = deviceMap.get(deviceId); |
|
|
|
if (name) { |
|
|
|
deviceNames.push(name); |
|
|
|
} else { |
|
|
|
console.log("该设备没能匹配到对应设备名称:"+deviceId) |
|
|
|
if (!deviceIds) return ''; |
|
|
|
let deviceIdSet = new Set(deviceIds.split(',')); |
|
|
|
let deviceMap = new Map(); |
|
|
|
listDeviceAll.value.forEach(device => { |
|
|
|
deviceMap.set(device.uuid, device.deviceName); |
|
|
|
}); |
|
|
|
let deviceNames = []; |
|
|
|
for (let deviceId of deviceIdSet) { |
|
|
|
let name = deviceMap.get(deviceId); |
|
|
|
if (name) { |
|
|
|
deviceNames.push(name); |
|
|
|
} else { |
|
|
|
console.log("该设备没能匹配到对应设备名称:" + deviceId) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return deviceNames.join(','); |
|
|
|
return deviceNames.join(','); |
|
|
|
} |
|
|
|
|
|
|
|
function getDevicesAll(){ |
|
|
|
function getDevicesAll() { |
|
|
|
listDeviceNoPage().then(response => { |
|
|
|
listDeviceAll.value = response.data; |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
function changeSwitch(row){ |
|
|
|
function changeSwitch(row) { |
|
|
|
ElMessageBox.confirm('确定修改该计算启用状态吗', '提示', { |
|
|
|
distinguishCancelAndClose: true, |
|
|
|
confirmButtonText: '确定', |
|
|
|
cancelButtonText: '取消', |
|
|
|
distinguishCancelAndClose: true, |
|
|
|
confirmButtonText: '确定', |
|
|
|
cancelButtonText: '取消', |
|
|
|
}) |
|
|
|
.then(() => { |
|
|
|
console.log("确定"); |
|
|
|
let param = { |
|
|
|
id:row.id, |
|
|
|
computeSwitchTotal:row.computeSwitchTotal |
|
|
|
.then(() => { |
|
|
|
console.log("确定"); |
|
|
|
let param = { |
|
|
|
id: row.id, |
|
|
|
computeSwitchTotal: row.computeSwitchTotal |
|
|
|
} |
|
|
|
updateHeatapiconf(param); |
|
|
|
}) |
|
|
|
.catch((action) => { |
|
|
|
console.log("取消"); |
|
|
|
row.computeSwitchTotal = !row.computeSwitchTotal; |
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 格式化推送方 |
|
|
|
* @param row |
|
|
|
* @param column |
|
|
|
* @param cellValue |
|
|
|
* @param index |
|
|
|
*/ |
|
|
|
function formatterPushingCounterpart(row, column, cellValue, index) { |
|
|
|
if (pushing_counterpart.value && pushing_counterpart.value.length > 0) { |
|
|
|
let arr = pushing_counterpart.value.filter(item => { |
|
|
|
if (item.value == cellValue) { |
|
|
|
return item; |
|
|
|
} |
|
|
|
}) |
|
|
|
if (arr && arr.length > 0) { |
|
|
|
return arr[0].label; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 格式化策略 |
|
|
|
* @param row |
|
|
|
* @param column |
|
|
|
* @param cellValue |
|
|
|
* @param index |
|
|
|
*/ |
|
|
|
function formatterStrategy(row, column, cellValue, index) { |
|
|
|
if (effective_strategy.value && effective_strategy.value.length > 0) { |
|
|
|
let arr = effective_strategy.value.filter(item => { |
|
|
|
if (item.value == cellValue) { |
|
|
|
return item; |
|
|
|
} |
|
|
|
}) |
|
|
|
if (arr && arr.length > 0) { |
|
|
|
return arr[0].label; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 日期范围改变 |
|
|
|
* @param dataRange |
|
|
|
*/ |
|
|
|
function dateRangeChange(dataRange) { |
|
|
|
if (dataRange && dataRange.length > 0) { |
|
|
|
form.value.startDate = dataRange[0]; |
|
|
|
form.value.endDate = dataRange[1]; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
function handleAddStrategyConf() { |
|
|
|
deviceList.value = JSON.parse(JSON.stringify(listDevices.value)); |
|
|
|
console.log("deviceList", deviceList.value, deviceStrategyConfList.value); |
|
|
|
if (deviceStrategyConfList.value && deviceStrategyConfList.value.length > 0) { |
|
|
|
deviceList.value.forEach(device => { |
|
|
|
let arr = deviceStrategyConfList.value.filter(item => item.deviceUuid === device.uuid); |
|
|
|
if (arr && arr.length > 0) { |
|
|
|
device.disabled = true; |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
strategyConfSaveForm.value.deviceList = []; |
|
|
|
openStrategyConfAddForm.value = true; |
|
|
|
nextTick(() => { |
|
|
|
if (proxy.$refs["strategyConfSaveFormRef"]) { |
|
|
|
proxy.$refs["strategyConfSaveFormRef"].clearValidate(); |
|
|
|
} |
|
|
|
updateHeatapiconf(param); |
|
|
|
}) |
|
|
|
.catch((action) => { |
|
|
|
console.log("取消"); |
|
|
|
row.computeSwitchTotal = !row.computeSwitchTotal; |
|
|
|
} |
|
|
|
|
|
|
|
function handleUpdateStrategyConf(row) { |
|
|
|
strategyConfEditForm.value = row; |
|
|
|
openStrategyConfEditForm.value = true; |
|
|
|
} |
|
|
|
|
|
|
|
function handleDeleteStrategyConf(index) { |
|
|
|
console.log("index", index); |
|
|
|
proxy.$modal.confirm('是否确认删除该设备?').then(function () { |
|
|
|
deviceStrategyConfList.value.splice(index, 1); |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
function submitStrategyConfEditForm() { |
|
|
|
proxy.$refs["strategyConfEditFormRef"].validate(valid => { |
|
|
|
if (valid) { |
|
|
|
cancelStrategyConfEditForm(); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
function cancelStrategyConfEditForm() { |
|
|
|
openStrategyConfEditForm.value = false; |
|
|
|
} |
|
|
|
|
|
|
|
function submitStrategyConfAddForm() { |
|
|
|
proxy.$refs["strategyConfSaveFormRef"].validate(valid => { |
|
|
|
if (valid) { |
|
|
|
console.log("deviceStrategyConfList", deviceStrategyConfList.value); |
|
|
|
listDevices.value.filter(obj => strategyConfSaveForm.value.deviceList.includes(obj.uuid)).forEach(obj => { |
|
|
|
deviceStrategyConfList.value.push({ |
|
|
|
deviceUuid: obj.uuid, |
|
|
|
strategy: 0 |
|
|
|
}); |
|
|
|
}); |
|
|
|
cancelStrategyConfAddForm(); |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
function cancelStrategyConfAddForm() { |
|
|
|
openStrategyConfAddForm.value = false; |
|
|
|
} |
|
|
|
|
|
|
|
function formatterDevicesName(row, column, cellValue, index) { |
|
|
|
let arr = listDevices.value.filter(obj => obj.uuid === cellValue); |
|
|
|
if (arr && arr.length > 0) { |
|
|
|
return arr[0].deviceName; |
|
|
|
} else { |
|
|
|
return ''; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
function getDevicesName(deviceUuid) { |
|
|
|
let arr = listDevices.value.filter(obj => obj.uuid === deviceUuid); |
|
|
|
if (arr && arr.length > 0) { |
|
|
|
return arr[0].deviceName; |
|
|
|
} else { |
|
|
|
return ''; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
getDevicesAll(); |
|
|
|
getDeptTree(); |
|
|
|
getDeptTreeSelectNew(); |
|
|
|
getList(); |
|
|
|
|
|
|
|
</script> |
|
|
|