From c1e2ec17485606ba8d2d6de9520396e55248ff6d Mon Sep 17 00:00:00 2001 From: web <candymxq888@outlook.com> Date: 星期二, 25 三月 2025 17:10:50 +0800 Subject: [PATCH] feat:添加界面,接入设备数据 --- src/views/facility/monitorList/index.vue | 64 +++++++++++++++++++++++++++---- 1 files changed, 55 insertions(+), 9 deletions(-) diff --git a/src/views/facility/monitorList/index.vue b/src/views/facility/monitorList/index.vue index fcaccc3..936c6ca 100644 --- a/src/views/facility/monitorList/index.vue +++ b/src/views/facility/monitorList/index.vue @@ -8,7 +8,7 @@ --> <script setup> import pointApi from "@/api/facility/point"; -import {ref} from "vue"; +import {ref, onMounted} from "vue"; import setPostParams from "@/utils/searchParams.js"; const route = useRoute(); @@ -42,6 +42,7 @@ let tableHeader = ref({ pointName: '监控点名称', pointCode: '监控点编号', + pointType: '监控类型', address: '详细地址', createTimeView: '创建时间', imageUrl: '图片', @@ -52,7 +53,7 @@ async function getList(val) { loading.value = true; let postParam = setPostParams(val) - await pointApi().search(postParam).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 @@ -67,17 +68,22 @@ const formLabel = ({ pointName: '监控点名称', pointCode: '监控点编号', + pointType: '监控点类型', + parentId: '父级监控点', address: '详细地址', imageUrl: '图片', remark: '备注' }) const rules = ref({ - pointName: [{required: true, message: `请输入${ formLabel.pointName}`, trigger: "blur"}], - pointCode: [{required: true, message: `请输入${ formLabel.address}`, 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: '', + pointType: '', + parentId: '', address: '', imageUrl: '', remark: '' @@ -85,6 +91,15 @@ const searchParams = ref({ keywords: '', }); +// 监控点列表 +const monityList = 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(); @@ -108,7 +123,7 @@ /** 删除按钮操作 */ function handleDelete(row) { proxy.$modal.confirm('是否确认删除名称为"' + row.contact + '"的数据项?').then(function () { - return pointApi().remove(row.id); + // return pointApi().remove(row.id); }).then(() => { getList(); proxy.$modal.msgSuccess("删除成功"); @@ -116,6 +131,13 @@ }); } + +// 获取监控点列表 +const getMonitryList = () => { + pointApi().getParentPoint().then(res => { + monityList.value = res.data; + }) +} /** * 新增/修改弹窗Form表单相关 @@ -165,8 +187,10 @@ /** 表单重置 */ function reset() { form.value = { + parentId: '', pointName: '', pointCode: '', + pointType: '', address: '', imageUrl: '', remark: '' @@ -174,14 +198,17 @@ proxy.resetForm("formRef"); } -getList(); +onMounted(() => { + getList(); + getMonitryList(); +}) </script> <template> <div class="app-container"> <el-form :model="searchParams" ref="queryRef" :inline="true"> <el-form-item label="" prop=""> <el-input - v-model="searchParams.pointName" + v-model="searchParams.keywords" placeholder="请输入搜索信息" clearable style="width: 200px" @@ -218,6 +245,9 @@ <div v-if="key === 'imageUrl'"> <img :src="scope.row.headImg" class="table-headImg"/> </div> + <div v-else-if="key === 'pointType'"> + {{ scope.row.pointType === 1 ? '水温监测点' : '生态流量监测点' }} + </div> </template> </el-table-column> <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> @@ -241,10 +271,22 @@ <!-- 添加/修改表单 --> <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.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.pointType" prop="pointType"> + <el-select v-model="form.pointType" :placeholder="'请输入'+formLabel.pointType"> + <el-option + v-for="(item,index) in monityTypeList" + :label="item.name" + :value="item.id" + :key="index" + ></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> @@ -254,6 +296,7 @@ <el-form-item :label="formLabel.remark" prop="address"> <el-input v-model="form.remark" :placeholder="'请输入'+formLabel.remark"/> </el-form-item> + <!-- <el-form-item></el-form-item>--> <el-form-item label="图片" prop="imageUrl" style="flex: 1"> <upload-icons @uploadData="uploadData" :imageList="form.imageUrl" :limit="1"></upload-icons> <span style="display: block;">(请上传1张设备图片)</span> @@ -270,7 +313,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