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 | 68 +++++++++++++++++++++------------ 1 files changed, 43 insertions(+), 25 deletions(-) diff --git a/src/views/facility/monitorList/index.vue b/src/views/facility/monitorList/index.vue index e757b17..936c6ca 100644 --- a/src/views/facility/monitorList/index.vue +++ b/src/views/facility/monitorList/index.vue @@ -8,7 +8,6 @@ --> <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"; @@ -43,7 +42,7 @@ let tableHeader = ref({ pointName: '监控点名称', pointCode: '监控点编号', - pointTypeName: '监控类型', + pointType: '监控类型', address: '详细地址', createTimeView: '创建时间', imageUrl: '图片', @@ -54,7 +53,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 +68,22 @@ const formLabel = ({ pointName: '监控点名称', pointCode: '监控点编号', - pointTypeId: '监控类型', + pointType: '监控点类型', + parentId: '父级监控点', 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: '', address: '', imageUrl: '', remark: '' @@ -90,8 +91,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 +131,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; }) } @@ -179,9 +187,10 @@ /** 表单重置 */ function reset() { form.value = { + parentId: '', pointName: '', pointCode: '', - pointTypeId: '', + pointType: '', address: '', imageUrl: '', remark: '' @@ -191,7 +200,7 @@ onMounted(() => { getList(); - getMonitryType() + getMonitryList(); }) </script> <template> @@ -236,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"> @@ -259,14 +271,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,13 +284,19 @@ ></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></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> @@ -298,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