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