From 8bd42ffbca0bcb0dc18ab17fa8858cd4b333104e Mon Sep 17 00:00:00 2001 From: web <candymxq888@outlook.com> Date: 星期二, 18 三月 2025 17:03:07 +0800 Subject: [PATCH] fix:简化项目框架,终版,处理后台现有问题 --- src/views/facility/facilityList/index.vue | 30 ++-- src/components/UploadIcons/index.vue | 1 src/views/facility/monitorList/index.vue | 276 ++++++++++++++++++++++++++++++++++++++++++++++ src/utils/permission.js | 1 4 files changed, 290 insertions(+), 18 deletions(-) diff --git a/src/components/UploadIcons/index.vue b/src/components/UploadIcons/index.vue index 7f77c39..1dd30da 100644 --- a/src/components/UploadIcons/index.vue +++ b/src/components/UploadIcons/index.vue @@ -93,7 +93,6 @@ }) }) fileList.value = list - console.log('回显',fileList.value) file.value = newList.split(',') } diff --git a/src/utils/permission.js b/src/utils/permission.js index 5b9e2a5..d870057 100644 --- a/src/utils/permission.js +++ b/src/utils/permission.js @@ -22,7 +22,6 @@ } function permsJudge(value) { let perms = JSON.parse(localStorage.getItem("listPermission")|| '0'); - console.log(value, perms) for (let i in perms) { if(typeof value == 'object'){ let val = value[0] diff --git a/src/views/facility/facilityList/index.vue b/src/views/facility/facilityList/index.vue index 096d421..ea0f017 100644 --- a/src/views/facility/facilityList/index.vue +++ b/src/views/facility/facilityList/index.vue @@ -7,6 +7,7 @@ import waterFacilityParameter from "@/api/facility/parameter.js"; import {PREURL} from '@/config/index' import setPostParams from "@/utils/searchParams.js"; +import {onMounted} from "vue"; const route = useRoute(); const preUrl = ref(PREURL); const {proxy} = getCurrentInstance(); @@ -85,16 +86,7 @@ pointList.value = res.data.list }) } -getPoint() -//查询供应商 -const supplierList = ref(); -const getSupplier = async () => { - await supplierApi().search({limit: 100, page: 1}).then((res) => { - console.log("供应商" + res.data.list); - supplierList.value = res.data.list - }) -} -getSupplier() + //查询设备类型 const facilityTypeList = ref(); const getFacilityTypeList = async () => { @@ -102,7 +94,7 @@ facilityTypeList.value = res.data.list }) } -getFacilityTypeList() + //获取参数列表数据 //设备参数table const tableParamData = ref([]); @@ -133,13 +125,11 @@ open.value = true; isDetail.value = false; title.value = "新增"; - console.log('form',form.value) } /** 修改按钮操作 */ async function handleUpdate(row) { reset(); - // form.value = Object.assign({},row) Object.keys(row).forEach(key => { if (form.value.hasOwnProperty(key)) { form.value[key] = row[key]; @@ -189,7 +179,6 @@ //已选择设备参数 const handleSelectionParams = (val) =>{ multipleSelection.value = val - console.log('esele',val); } /** * 设备参数操作相关 @@ -271,12 +260,21 @@ form.value = { facilityCode: '', facilityName: '', + facilityType: '', + pointId: '', facilityUrl: '', + remark:'', + installDate: '' }; proxy.resetForm("facilityTypeRef"); } -getList(); +onMounted(() => { + getList(); + getPoint() + getFacilityTypeList() +}) + </script> <template> <div class="app-container"> @@ -383,7 +381,7 @@ <el-form-item :label="formLabel.remark" prop="remark"> <el-input v-model="form.remark" :placeholder="inpTip+formLabel.remark" /> </el-form-item> - <el-form-item label="资料上传" prop="facilityUrl"> + <el-form-item label="资料上传" prop="facilityUrl" style="flex: 1"> <upload-icons @uploadData="uploadData" :imageList="form.facilityUrl" :limit="1" :disabled='isDetail ? true : false'></upload-icons> <span style="display: block;">(请上传1张设备图片)</span> diff --git a/src/views/facility/monitorList/index.vue b/src/views/facility/monitorList/index.vue new file mode 100644 index 0000000..19a2f93 --- /dev/null +++ b/src/views/facility/monitorList/index.vue @@ -0,0 +1,276 @@ +<!-- + * @Author: hqs elkers@163.com + * @Date: 2024-08-06 14:47:41 + * @LastEditors: hqs elkers@163.com + * @LastEditTime: 2024-08-14 16:50:56 + * @FilePath: \water-qinghe-web\src\views\facilit\index.vue + * @Description: 监控点 +--> +<script setup> +import pointApi from "@/api/facility/point"; +import {ref} from "vue"; +import setPostParams from "@/utils/searchParams.js"; + +const route = useRoute(); +const {proxy} = getCurrentInstance(); + +/** + * 搜索相关 + */ +/** 搜索按钮操作 */ +function handleQuery() { + getList({keywords: searchParams.value.keywords}) +} + +/** 重置按钮操作 */ +function resetQuery() { + proxy.resetForm("queryRef"); + handleQuery(); +} + +/** + * Table表格权限数据列表相关 + */ + +const pageParam = ref({ + total: 0, + limit: 0, + page: 1, +}) +const tableData = ref([]); + +let tableHeader = ref({ + pointName: '监控点名称', + pointCode: '监控点编号', + address: '详细地址', + createTimeView: '创建时间', + imageUrl: '图片', + remark: '备注' +}) + +/** 获取权限列表 */ +async function getList(val) { + loading.value = true; + let postParam = setPostParams(val) + await pointApi().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 formLabel = ({ + pointName: '监控点名称', + pointCode: '监控点编号', + address: '详细地址', + imageUrl: '图片', + remark: '备注' +}) +const rules = ref({ + pointName: [{required: true, message: `请输入${ formLabel.pointName}`, trigger: "blur"}], + pointCode: [{required: true, message: `请输入${ formLabel.address}`, trigger: "blur"}], +}); +const form = ref({ + pointName: '', + pointCode: '', + address: '', + imageUrl: '', + remark: '' +}); +const searchParams = ref({ + keywords: '', +}); +/** 新增按钮操作 */ +async function handleAdd() { + reset(); + open.value = true; + title.value = "新增"; +} + +/** 修改按钮操作 */ +async function handleUpdate(row) { + reset(); + Object.keys(form.value).forEach(key => { + if (row.hasOwnProperty(key)) { + form.value[key] = row[key]; + } + }); + form.value.id = row.id + open.value = true; + title.value = "修改"; +} + +/** 删除按钮操作 */ +function handleDelete(row) { + proxy.$modal.confirm('是否确认删除名称为"' + row.contact + '"的数据项?').then(function () { + return pointApi().remove(row.id); + }).then(() => { + getList(); + proxy.$modal.msgSuccess("删除成功"); + }).catch(() => { + }); +} + + +/** + * 新增/修改弹窗Form表单相关 + */ +const open = ref(false); +const loading = ref(false); +const title = ref(""); + +//上传文件,添加图片地址信息 +const uploadData = (data) => { + form.value.imageUrl = data.toString(); +} + +/** 提交按钮 */ +function submitForm() { + proxy.$refs["formRef"].validate(valid => { + if (valid) { + if (form.value.id != undefined) { + pointApi().modify(form.value).then(res => { + proxy.$modal.msgSuccess("修改成功"); + open.value = false; + getList(); + }).catch(() => { + open.value = false; + proxy.$modal.msgError("修改失败"); + }); + } else { + pointApi().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 = { + pointName: '', + pointCode: '', + address: '', + imageUrl: '', + remark: '' + }; + proxy.resetForm("formRef"); +} + +getList(); +</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" + 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" + > + <template #default="scope"> + <div v-if="key === 'imageUrl'"> + <img :src="scope.row.headImg" class="table-headImg"/> + </div> + </template> + </el-table-column> + <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width"> + <template #default="scope"> + <el-button link type="primary" icon="Edit" v-has="['update',route]" + @click="handleUpdate(scope.row)">修改 + </el-button> + <el-button link type="primary" icon="Delete" v-has="['delete',route]" + @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='120'> + <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="图片" prop="imageUrl" style="flex: 1"> + <upload-icons @uploadData="uploadData" :imageList="form.imageUrl" :limit="1"></upload-icons> + <span style="display: block;">(请上传1张设备图片)</span> + </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> + +<style lang="scss" scoped> +.form-box{ + justify-content: normal; +} +</style> \ No newline at end of file -- Gitblit v1.9.3