From 55373c6b400d879ba4a4cdae752fe5140c7b11f6 Mon Sep 17 00:00:00 2001 From: web <candymxq888@outlook.com> Date: 星期一, 28 四月 2025 17:29:15 +0800 Subject: [PATCH] fix:修改上传图片地址 --- src/views/facility/facilityList/index.vue | 227 +++++++++++++++++++++++++------------------------------- 1 files changed, 102 insertions(+), 125 deletions(-) diff --git a/src/views/facility/facilityList/index.vue b/src/views/facility/facilityList/index.vue index 7f7ab47..8ebec4f 100644 --- a/src/views/facility/facilityList/index.vue +++ b/src/views/facility/facilityList/index.vue @@ -1,22 +1,22 @@ <script setup> import facilityApi from "@/api/facility/index"; import pointApi from "@/api/facility/point"; -import supplierApi from "@/api/waterMeterApi/supplier.js"; import facilityTypeApi from "@/api/facility/facilityType.js"; import commonParameters from "@/api/configuration/commonParameters/index.js"; -import waterFacilityParameter from "@/api/configuration/facilityParameter/index.js"; -import {PREURL} from '@/config/index' +import waterFacilityParameter from "@/api/facility/parameter.js"; import setPostParams from "@/utils/searchParams.js"; +import {onMounted} from "vue"; + const route = useRoute(); -const preUrl = ref(PREURL); const {proxy} = getCurrentInstance(); +const imgBaseUrl = import.meta.env.VITE_APP_IMG_BASEURL //图片前缀 /** * 搜索相关 */ /** 搜索按钮操作 */ function handleQuery() { - getList({keywords: searchParams.value.facilityCode}) + getList(searchParams.value) } /** 重置按钮操作 */ @@ -39,15 +39,9 @@ facilityCode: '设备编号', facilityName: '设备名称', facilityTypeName: '设备类型', - longitude: '经度', - latitude: '纬度', pointName: '设备监控点', - networkType:'网络类型', facilityUrl: '设备图片', - producedDate:'出厂日期', - installDate:'安装日期', - supplier: '设备供应商', - createTimeView: '创建时间' + installDate: '安装日期', }) /** 获取权限列表 */ @@ -68,13 +62,9 @@ facilityCode: '设备编号', facilityName: '设备名称', facilityType: '设备类型', - longitude: '经度', - latitude: '纬度', pointId: '设备监控点', facilityUrl: '设备图片', - supplier: '设备供应商', - networkType:'网络类型', - remark:'备注信息', + remark: '备注信息', createTimeView: '创建时间' }) const rules = ref({ @@ -90,46 +80,45 @@ }); //查询监控点 const pointList = ref(); +const cascaderOption = { + label: 'pointName', + value: 'id', + children: 'childrenList', + checkStrictly: true, + expandTrigger: 'hover', + emitPath: false +}; //级联选择器配置 const getPoint = async () => { - await pointApi().search({limit: 10000, page: 1}).then((res) => { - pointList.value = res.data.list + await pointApi().getParentPoint().then((res) => { + pointList.value = res.data }) } -getPoint() -//查询供应商 -const supplierList = ref(); -const getSupplier = async () => { - await supplierApi().search({limit: 10000, page: 1}).then((res) => { - console.log("供应商" + res.data.list); - supplierList.value = res.data.list - }) -} -getSupplier() + //查询设备类型 const facilityTypeList = ref(); const getFacilityTypeList = async () => { - await facilityTypeApi().search({limit: 10000, page: 1}).then((res) => { + await facilityTypeApi().search({limit: 100, page: 1}).then((res) => { facilityTypeList.value = res.data.list }) } -getFacilityTypeList() + //获取参数列表数据 //设备参数table const tableParamData = ref([]); -const getParamList = async() => { - await commonParameters().search({limit:10000,page: 1}).then((res)=>{ +const getParamList = async () => { + await commonParameters().search({limit: 10000, page: 1}).then((res) => { tableParamData.value = res.data.list; }) } //获取已绑定参数数据 -const getSelectParamList = async(val) => { - await waterFacilityParameter().getParam(val).then((res)=>{ +const getSelectParamList = async (val) => { + await waterFacilityParameter().getParam(val).then((res) => { const data = res.data - console.log("参数列表",data) - if(data.length > 0){ - data.forEach( item =>{ - tableParamData.value.forEach((tableItem)=>{ - if(item.columnsCode == tableItem.mark){ + console.log("参数列表", data) + if (data.length > 0) { + data.forEach(item => { + tableParamData.value.forEach((tableItem) => { + if (item.columnsCode == tableItem.mark) { tableRef.value.toggleRowSelection(tableItem, undefined) } }) @@ -137,18 +126,18 @@ } }) } + /** 新增按钮操作 */ async function handleAdd() { reset(); 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]; @@ -156,6 +145,7 @@ }); form.value.id = row.id open.value = true; + isDetail.value = true; title.value = "修改"; } @@ -179,10 +169,11 @@ const openParamForm = ref(false) const open = ref(false); const title = ref(""); +const isDetail = ref(false); const multipleSelection = ref([]) -let tableParamHeader = ref({ +let tableParamHeader = ref({ name: '参数名称', - mark:'参数标识', + mark: '参数标识', unit: '参数单位', }) /** @@ -190,36 +181,35 @@ */ //绑定数据 const facilityData = ref({ - facilityId:'', - parameterList:[] + facilityId: '', + parameterList: [] }) //已选择设备参数 -const handleSelectionParams = (val) =>{ +const handleSelectionParams = (val) => { multipleSelection.value = val - console.log('esele',val); } /** * 设备参数操作相关 */ //提交绑定 -const handleSubmit = async() =>{ - multipleSelection.value.forEach((item) =>{ +const handleSubmit = async () => { + multipleSelection.value.forEach((item) => { facilityData.value.parameterList.push({ - columnsCode:item.mark, - columnsShow:item.name, - columnsUnits:item.unit, + columnsCode: item.mark, + columnsShow: item.name, + columnsUnits: item.unit, }) }) let res = await waterFacilityParameter().create(facilityData.value) - if(res.code == 200){ + if (res.code == 200) { proxy.$modal.msgSuccess('绑定成功!') facilityData.value.parameterList = [] openParamForm.value = false tableRef.value.clearSelection() - }else{ + } else { proxy.$modal.msgError('绑定失败!') openParamForm.value = false tableRef.value.clearSelection() @@ -266,35 +256,46 @@ openParamForm.value = false; reset(); } + /** 绑定按钮操作 */ -const handleband = async(row) =>{ +const handleband = async (row) => { facilityData.value.facilityId = row.id await getParamList() getSelectParamList(row.id) openParamForm.value = true } + /** 表单重置 */ function reset() { form.value = { facilityCode: '', facilityName: '', + facilityType: '', + pointId: '', facilityUrl: '', + remark: '', + installDate: '' }; proxy.resetForm("facilityTypeRef"); } -getList(); +onMounted(() => { + getList(); + getPoint() + getFacilityTypeList() +}) + </script> <template> <div class="app-container"> <el-form :model="searchParams" ref="queryRef" :inline="true"> - <el-form-item label="" prop=""> + <el-form-item label="" prop="keywords"> <el-input - v-model="searchParams.facilityCode" - placeholder="请输入搜索信息" - clearable - style="width: 200px" - @keyup.enter="handleQuery" + v-model="searchParams.keywords" + placeholder="请输入搜索信息" + clearable + style="width: 200px" + @keyup.enter="handleQuery" /> </el-form-item> <el-form-item> @@ -306,30 +307,30 @@ <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> <el-button - type="primary" - plain - icon="Plus" - @click="handleAdd" + type="primary" + plain + icon="Plus" + @click="handleAdd" >新增 </el-button> </el-col> </el-row> <!--表格及分页--> - <el-table :data="tableData"> + <el-table :data="tableData"> <el-table-column - v-for="(item, key, index) of tableHeader" - :prop="key.toString()" - :label="item" - :key="index" - align="center" + v-for="(item, key, index) of tableHeader" + :prop="key.toString()" + :label="item" + :key="index" + align="center" > <template #default="scope"> <div v-if="key.toString() === 'facilityUrl'" style="height: 50px;margin: 0 auto"> - <img :src="preUrl + scope.row.facilityUrl" class="table-headImg"/> + <img :src="imgBaseUrl + scope.row.facilityUrl" class="table-headImg" alt=""/> </div> </template> </el-table-column> - <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width"> + <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <template #default="scope"> <el-button link type="primary" icon="Edit" @click="handleband(scope.row)">参数绑定</el-button> <el-button link type="primary" icon="Edit" v-has="['update',route]" @@ -342,59 +343,34 @@ </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" + :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="facilityTypeRef" :model="form" :rules="rules" label-width='auto' > + <el-form class="form-box" ref="facilityTypeRef" :model="form" :rules="rules" label-width='auto'> <el-form-item :label="formLabel.facilityCode" prop="facilityCode"> <el-input v-model="form.facilityCode" :placeholder="inpTip+formLabel.facilityCode"/> </el-form-item> <el-form-item :label="formLabel.facilityName" prop="facilityName"> <el-input v-model="form.facilityName" :placeholder="inpTip+formLabel.facilityName"/> </el-form-item> - <el-form-item :label="formLabel.longitude" prop="longitude"> - <el-input v-model="form.longitude" :placeholder="inpTip+formLabel.longitude"/> - </el-form-item> - <el-form-item :label="formLabel.latitude" prop="latitude"> - <el-input v-model="form.latitude" :placeholder="inpTip+formLabel.latitude"/> - </el-form-item> <el-form-item label="选择设备类型" prop="facilityType"> <el-select v-model="form.facilityType" :placeholder="inpTip+formLabel.facilityType"> <el-option - v-for="(item,index) in facilityTypeList" - :label="item.name" - :value="item.id" - :key="index" + v-for="(item,index) in facilityTypeList" + :label="item.name" + :value="item.id" + :key="index" ></el-option> </el-select> </el-form-item> <el-form-item label="选择监控点" prop="pointId"> - <el-select v-model="form.pointId" :placeholder="inpTip+formLabel.pointId"> - <el-option - v-for="(item,index) in pointList" - :label="item.pointName" - :value="item.id" - :key="index" - ></el-option> - </el-select> - </el-form-item> - <el-form-item label="选择供应商" prop="supplier"> - <el-select v-model="form.supplier" :placeholder="inpTip+formLabel.supplier"> - <el-option - v-for="(item,index) in supplierList" - :label="item.name" - :value="item.name" - :key="index" - ></el-option> - </el-select> - </el-form-item> - <el-form-item label="设备出厂日期" prop="producedDate"> - <el-input v-model="form.producedDate" placeholder="请输入出厂日期(格式:xxxx年xx月xx日)" /> + <el-cascader v-model="form.pointId" :options="pointList" :show-all-levels="false" + :props="cascaderOption"/> </el-form-item> <el-form-item label="安装日期" prop="installDate"> <el-date-picker @@ -405,21 +381,14 @@ value-format="YYYY-MM-DD" :disabled="isDetail ? true : false" /> - <!-- <el-input v-model="item.installTime" :disabled="isDetail ? true : false"></el-input> --> - </el-form-item> - <el-form-item :label="formLabel.networkType" prop="networkType"> - <el-input v-model="form.networkType" :placeholder="inpTip+formLabel.networkType" /> </el-form-item> <el-form-item :label="formLabel.remark" prop="remark"> - <el-input v-model="form.remark" :placeholder="inpTip+formLabel.remark" /> + <el-input v-model="form.remark" :placeholder="inpTip+formLabel.remark"/> </el-form-item> - <el-form-item><br></el-form-item> - <el-form-item label="资料上传" prop="facilityUrl"> - <upload-icons @uploadData="uploadData" :imageList="form.facilityUrl" :limit="1" - :disabled='isDetail ? true : false'></upload-icons> + <el-form-item label="资料上传" prop="facilityUrl" style="flex: 1"> + <upload-icons @uploadData="uploadData" :imageList="form.facilityUrl" :limit="1"></upload-icons> <span style="display: block;">(请上传1张设备图片)</span> </el-form-item> - <el-form-item></el-form-item> </el-form> <template #footer> <div class="dialog-footer"> @@ -431,8 +400,8 @@ <!-- 设备参数弹窗 --> <el-dialog title="设备参数" v-model="openParamForm" width="50vw" center align-center append-to-body> <!--表格--> - <el-table ref='tableRef' :data="tableParamData" height="75vh" @selection-change="handleSelectionParams" > - <el-table-column type="selection" width="55" align ="center" /> + <el-table ref='tableRef' :data="tableParamData" height="75vh" @selection-change="handleSelectionParams"> + <el-table-column type="selection" width="55" align="center"/> <el-table-column v-for="(item, key, index) of tableParamHeader" :prop="key.toString()" @@ -452,9 +421,17 @@ </template> <style lang="scss" scoped> -.table-headImg{ +.table-headImg { max-width: 100px; height: 50px; } + +.form-box { + justify-content: normal; + + :deep(.el-cascader) { + flex-grow: 1; + } +} </style> \ No newline at end of file -- Gitblit v1.9.3