From 2f0fa3545b539e8b6f952ea82a1ca2350c64a0e8 Mon Sep 17 00:00:00 2001 From: web <candymxq888@outlook.com> Date: 星期二, 22 四月 2025 17:28:48 +0800 Subject: [PATCH] fix:修改报警,添加参数 --- src/views/facility/monitorList/index.vue | 78 ++++++++++++++++++++++++++------------- 1 files changed, 52 insertions(+), 26 deletions(-) diff --git a/src/views/facility/monitorList/index.vue b/src/views/facility/monitorList/index.vue index e757b17..b414fe0 100644 --- a/src/views/facility/monitorList/index.vue +++ b/src/views/facility/monitorList/index.vue @@ -8,12 +8,12 @@ --> <script setup> import pointApi from "@/api/facility/point"; -import {getMonitorTypeList} from '@/api/facility/monitorType.js' import {ref, onMounted} from "vue"; import setPostParams from "@/utils/searchParams.js"; const route = useRoute(); const {proxy} = getCurrentInstance(); +const imgBaseUrl = import.meta.env.VITE_APP_IMG_BASEURL //图片前缀 /** * 搜索相关 @@ -43,7 +43,8 @@ let tableHeader = ref({ pointName: '监控点名称', pointCode: '监控点编号', - pointTypeName: '监控类型', + pointType: '监控类型', + waterWidth: '水面宽度', address: '详细地址', createTimeView: '创建时间', imageUrl: '图片', @@ -54,7 +55,7 @@ async function getList(val) { loading.value = true; let postParam = setPostParams(val) - await pointApi().search({ ...postParam, ...searchParams.value}).then((res) => { + await pointApi().search({...postParam, ...searchParams.value}).then((res) => { tableData.value = res.data.list pageParam.value.total = res.data.total pageParam.value.limit = res.data.limit @@ -69,20 +70,24 @@ const formLabel = ({ pointName: '监控点名称', pointCode: '监控点编号', - pointTypeId: '监控类型', + pointType: '监控点类型', + parentId: '父级监控点', + waterWidth: '水面宽度', address: '详细地址', imageUrl: '图片', remark: '备注' }) const rules = ref({ - pointName: [{required: true, message: `请输入${ formLabel.pointName}`, trigger: "blur"}], - pointCode: [{required: true, message: `请输入${ formLabel.address}`, trigger: "blur"}], - pointTypeId: [{required: true, message: `请输入${ formLabel.pointTypeId}`, trigger: "blur"}], + pointName: [{required: true, message: `请输入${formLabel.pointName}`, trigger: "blur"}], + pointCode: [{required: true, message: `请输入${formLabel.address}`, trigger: "blur"}], + pointType: [{required: true, message: `请输入${formLabel.pointType}`, trigger: "blur"}], }); const form = ref({ pointName: '', pointCode: '', - pointTypeId: '', + pointType: '', + parentId: '', + waterWidth: '', address: '', imageUrl: '', remark: '' @@ -90,8 +95,15 @@ const searchParams = ref({ keywords: '', }); +// 监控点列表 +const monityList = ref([]); // 监控点类型 -const monityTypeList = ref([]); +const monityTypeList = [ + {id: 1, name: '水温监测点'}, + {id: 2, name: '生态流量监测点'} +]; +const cascaderOption = { label: 'pointName', value: 'id', children: 'childrenList', checkStrictly: true, expandTrigger: 'hover', emitPath: false }; //级联选择器配置 + /** 新增按钮操作 */ async function handleAdd() { reset(); @@ -123,11 +135,11 @@ }); } -// 获取监控点类型 -const getMonitryType = () => { - let postParam = { limit: 100, page: 1 } - getMonitorTypeList(postParam).then(res => { - monityTypeList.value = res.data.list; + +// 获取监控点列表 +const getMonitryList = () => { + pointApi().getParentPoint().then(res => { + monityList.value = res.data; }) } @@ -140,7 +152,7 @@ //上传文件,添加图片地址信息 const uploadData = (data) => { - form.value.imageUrl = data.toString(); + form.value.imageUrl = imgBaseUrl + data.toString(); } /** 提交按钮 */ @@ -179,9 +191,11 @@ /** 表单重置 */ function reset() { form.value = { + parentId: '', pointName: '', pointCode: '', - pointTypeId: '', + pointType: '', + waterWidth: '', address: '', imageUrl: '', remark: '' @@ -191,7 +205,7 @@ onMounted(() => { getList(); - getMonitryType() + getMonitryList(); }) </script> <template> @@ -234,7 +248,10 @@ > <template #default="scope"> <div v-if="key === 'imageUrl'"> - <img :src="scope.row.headImg" class="table-headImg"/> + <img :src="imgBaseUrl + scope.row.headImg" class="table-headImg" alt="" /> + </div> + <div v-else-if="key === 'pointType'"> + {{ scope.row.pointType === 1 ? '水温监测点' : '生态流量监测点' }} </div> </template> </el-table-column> @@ -259,14 +276,11 @@ <!-- 添加/修改表单 --> <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="formLabel.pointName" prop="pointName"> - <el-input v-model="form.pointName" :placeholder="'请输入'+formLabel.pointName"/> + <el-form-item :label="formLabel.parentId" prop="parentId"> + <el-cascader v-model="form.parentId" :options="monityList" :show-all-levels="false" :props="cascaderOption" /> </el-form-item> - <el-form-item :label="formLabel.pointCode" prop="pointCode"> - <el-input v-model="form.pointCode" :placeholder="'请输入'+formLabel.pointCode"/> - </el-form-item> - <el-form-item :label="formLabel.pointTypeId" prop="pointTypeId"> - <el-select v-model="form.pointTypeId" :placeholder="'请输入'+formLabel.pointTypeId"> + <el-form-item :label="formLabel.pointType" prop="pointType"> + <el-select v-model="form.pointType" :placeholder="'请输入'+formLabel.pointType"> <el-option v-for="(item,index) in monityTypeList" :label="item.name" @@ -275,11 +289,20 @@ ></el-option> </el-select> </el-form-item> + <el-form-item :label="formLabel.pointName" prop="pointName"> + <el-input v-model="form.pointName" :placeholder="'请输入'+formLabel.pointName"/> + </el-form-item> + <el-form-item :label="formLabel.pointCode" prop="pointCode"> + <el-input v-model="form.pointCode" :placeholder="'请输入'+formLabel.pointCode"/> + </el-form-item> <el-form-item :label="formLabel.address" prop="address"> <el-input v-model="form.address" :placeholder="'请输入'+formLabel.address"/> </el-form-item> <el-form-item :label="formLabel.remark" prop="address"> <el-input v-model="form.remark" :placeholder="'请输入'+formLabel.remark"/> + </el-form-item> + <el-form-item :label="formLabel.waterWidth" prop="waterWidth"> + <el-input v-model="form.waterWidth" :placeholder="'请输入'+formLabel.waterWidth"/> </el-form-item> <el-form-item></el-form-item> <el-form-item label="图片" prop="imageUrl" style="flex: 1"> @@ -298,7 +321,10 @@ </template> <style lang="scss" scoped> -.form-box{ +.form-box { justify-content: normal; + :deep(.el-cascader){ + flex-grow: 1; + } } </style> \ No newline at end of file -- Gitblit v1.9.3