From 9bb6d0b9d8078a0311d16a1faefef9c2330f4d29 Mon Sep 17 00:00:00 2001 From: web <candymxq888@outlook.com> Date: 星期五, 20 六月 2025 17:06:27 +0800 Subject: [PATCH] fix:修改项目配置 --- src/views/configuration/warning/index.vue | 264 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 264 insertions(+), 0 deletions(-) diff --git a/src/views/configuration/warning/index.vue b/src/views/configuration/warning/index.vue new file mode 100644 index 0000000..640b144 --- /dev/null +++ b/src/views/configuration/warning/index.vue @@ -0,0 +1,264 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryRef" :inline="true"> + <el-form-item prop="name"> + <el-input + v-model="queryParams.name" + placeholder="请输入内容" + clearable + style="width: 200px" + @keyup.enter="handleQuery" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button> + <el-button icon="Refresh" @click="resetQuery">重置</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="Plus" + @click="handleAdd" + >新增</el-button> + </el-col> + </el-row> + <!--表格及分页--> + <el-table v-loading="loading" :data="tableData"> + <el-table-column + v-for="(item, key, index) of tableHeader" + :prop="key.toString()" + :label="item" + :key="index" + align="center" + > + </el-table-column> + <el-table-column label="操作" width="auto" align="center" class-name="small-padding fixed-width"> + <template #default="scope"> + <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button> + <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button> + </template> + </el-table-column> + </el-table> + <pagination + :total="pageParam.total" + v-model:page="pageParam.page" + v-model:limit="pageParam.limit" + :page-sizes="[10,20,30]" + @pagination="getList" + /> + <!-- 添加或修改对话框 --> + <el-dialog :title="title" v-model="open" append-to-body center> + <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'> + <el-form-item label="选择设备" prop="facilityId"> + <el-select v-model="form.facilityId" placeholder="请选择设备" @change="getFacityCodeList"> + <el-option + v-for="(item,index) in facityList" + :label="item.facilityName" + :value="item.id" + :key="index" + ></el-option> + </el-select> + </el-form-item> + <el-form-item label="设备参数" prop="columnsCode"> + <el-select v-model="form.columnsCode" placeholder="请选择设备参数"> + <el-option + v-for="(item,index) in facityCodeList" + :label="item.columnsShow" + :value="item.columnsCode" + :key="index" + ></el-option> + </el-select> + </el-form-item> + <el-form-item label="方案名称" prop="schemeName"> + <el-input v-model="form.schemeName" placeholder="请输入方案名称" /> + </el-form-item> + <el-form-item label="低报警值" prop="lowAlarm"> + <el-input v-model="form.lowAlarm" placeholder="请输入低报警值" /> + </el-form-item> + <el-form-item label="高报警值" prop="tallAlarm"> + <el-input v-model="form.tallAlarm" placeholder="请输入高报警值" /> + </el-form-item> + <el-form-item label="备注" prop="remark"> + <el-input v-model="form.remark" placeholder="请输入备注" /> + </el-form-item> + </el-form> + <template #footer> + <div class="dialog-footer"> + <el-button type="primary" @click="submitForm">确 定</el-button> + <el-button @click="cancel">取 消</el-button> + </div> + </template> + </el-dialog> + </div> +</template> + +<script setup name="Menu"> +import facilityApi from '@/api/facility/index.js' +import waterFacilityParameter from '@/api/facility/parameter.js' +import alarmSchemeApi from '@/api/configuration/warning/alarmScheme.js' +import setPostParams from "@/utils/searchParams.js"; +import {onMounted} from "vue"; +const { proxy } = getCurrentInstance(); + + +const pageParam = ref({ + total:0, + limit:0, + page:0, +}) +const tableData = ref([]); +let tableHeader = ref({ + schemeName: '方案名称', + facilityName: '设备名称', + columnsName: '参数名称', + lowAlarm: '低报警值', + tallAlarm: '高报警值', + remark: '备注', + createTimeView: '创建时间', +}) + +const open = ref(false); +const loading = ref(false); +const title = ref(""); + +const data = reactive({ + form:{}, + queryParams: { + name: undefined, + }, + rules: { + facilityId: [{ required: true, message: "请选择设备", trigger: "blur" }], + columnsCode: [{ required: true, message: "请选择设备参数", trigger: "blur" }], + schemeName: [{ required: true, message: "请输入方案名称", trigger: "blur" }], + lowAlarm: [{ required: true, message: "请输入低报警值", trigger: "blur" }], + tallAlarm: [{ required: true, message: "请输入高报警值", trigger: "blur" }], + remark: [{ required: false, message: "请输入备注信息", trigger: "blur" }], + }, +}); +const { queryParams, form, rules } = toRefs(data); +const facityList = ref([]); //设备列表 +const facityCodeList = ref([]); //设备参数列表 + +/** + * 搜索相关 + */ +/** 搜索按钮操作 */ +function handleQuery() { + getList({keywords:queryParams.value.name,page:1}) +} + +/** 重置按钮操作 */ +function resetQuery() { + proxy.resetForm("queryRef"); + handleQuery(); +} + +/** 获取列表 */ +async function getList(val) { + loading.value = true; + let postParam = setPostParams(val) + await alarmSchemeApi().search(postParam).then((res) =>{ + tableData.value = res.data.list + pageParam.value.total = res.data.total + pageParam.value.limit = res.data.limit + pageParam.value.page = res.data.page + }) + loading.value = false; +} + +// 获取设备 +const getFacityList = () => { + let postParam = setPostParams() + facilityApi().search(postParam).then(res => { + facityList.value = res.data.list + }) +} + +// 获取设备参数 +const getFacityCodeList = (id) => { + const code = id ? id : form.value.facilityId + waterFacilityParameter().getParam(code).then(res => { + facityCodeList.value = res.data + }) +} + +/** 新增按钮操作 */ +async function handleAdd() { + reset(); + open.value = true; + title.value = "新增方案配置"; +} +/** 修改按钮操作 */ +async function handleUpdate(row) { + reset(); + getFacityCodeList(row.facilityId) + form.value = Object.assign({},row) + open.value = true; + title.value = "修改方案配置"; +} +/** 删除按钮操作 */ +function handleDelete(row) { + proxy.$modal.confirm('是否确认删除名称为"' + row.name + '"的数据项?').then(function() { + return alarmSchemeApi().remove(row.id); + }).then(() => { + getList(); + proxy.$modal.msgSuccess("删除成功"); + }).catch(() => {}); +} + +/** 提交按钮 */ +async function submitForm() { + proxy.$refs["formRef"].validate( async valid => { + if (valid) { + form.value.lowAlarm = Number(form.value.lowAlarm) + form.value.tallAlarm = Number(form.value.tallAlarm) + if (form.value.id != undefined) { + await alarmSchemeApi().modify(form.value).then(res => { + proxy.$modal.msgSuccess("修改成功"); + open.value = false; + getList(); + }).catch(() =>{ + open.value = false; + proxy.$modal.msgError("修改失败"); + }); + } else { + await alarmSchemeApi().create(form.value).then(res => { + proxy.$modal.msgSuccess("新增成功"); + open.value = false; + getList(); + }).catch(() =>{ + open.value = false; + proxy.$modal.msgError("新增失败"); + }); + } + } + }); +} + +/** 取消按钮 */ +function cancel() { + open.value = false; + reset(); +} +/** 表单重置 */ +function reset() { + form.value = { + facilityId:'', + columnsCode:'', + schemeName:'', + lowAlarm:'', + tallAlarm:'', + remark:'', + }; + proxy.resetForm("formRef"); +} + +onMounted(() => { + getList(); + getFacityList() +}) +</script> -- Gitblit v1.9.3