From 489ba60990eeb2b11ff2522678630d8bc3764e71 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期三, 16 四月 2025 16:45:32 +0800 Subject: [PATCH] 修改 --- src/layout/components/Sidebar/menu.js | 2 src/views/firework/humiture/index.vue | 57 +++++----- src/assets/icons/svg/newpeople.svg | 1 src/views/firework/humiture/components/dataDialog.vue | 73 ++++++++++++++ src/views/firework/warehouse/index.vue | 68 +++++++++--- src/views/firework/people/index.vue | 30 +++--- src/api/company/area.js | 16 +++ 7 files changed, 182 insertions(+), 65 deletions(-) diff --git a/src/api/company/area.js b/src/api/company/area.js new file mode 100644 index 0000000..ffb7159 --- /dev/null +++ b/src/api/company/area.js @@ -0,0 +1,16 @@ +import request from "@/utils/request"; + +export function getProvinceListData(params){ + return request({ + url: '/districtByName', + method:'get', + params:params || {}, + }) +} + +export function getCityListData(params){ + return request({ + url:'/district?type=' + params.type + '&parentname=' + params.parentname + '&parenttype=' + params.parenttype, + method:'get', + }) +} diff --git a/src/assets/icons/svg/newpeople.svg b/src/assets/icons/svg/newpeople.svg new file mode 100644 index 0000000..b8e9c4b --- /dev/null +++ b/src/assets/icons/svg/newpeople.svg @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><svg width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 20C27.866 20 31 16.866 31 13C31 9.13401 27.866 6 24 6C20.134 6 17 9.13401 17 13C17 16.866 20.134 20 24 20Z" fill="none" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><path d="M6 40.8V42H42V40.8C42 36.3196 42 34.0794 41.1281 32.3681C40.3611 30.8628 39.1372 29.6389 37.6319 28.8719C35.9206 28 33.6804 28 29.2 28H18.8C14.3196 28 12.0794 28 10.3681 28.8719C8.86278 29.6389 7.63893 30.8628 6.87195 32.3681C6 34.0794 6 36.3196 6 40.8Z" fill="none" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg> diff --git a/src/layout/components/Sidebar/menu.js b/src/layout/components/Sidebar/menu.js index b7d7932..75257b2 100644 --- a/src/layout/components/Sidebar/menu.js +++ b/src/layout/components/Sidebar/menu.js @@ -9,7 +9,7 @@ { path: '/people', name: 'People', - meta: { title: '人员信息',icon: 'people',affix: true } + meta: { title: '人员信息',icon: 'newpeople',affix: true } }, { path: '/warehouse', diff --git a/src/views/firework/humiture/components/dataDialog.vue b/src/views/firework/humiture/components/dataDialog.vue index 4ed7971..ac78756 100644 --- a/src/views/firework/humiture/components/dataDialog.vue +++ b/src/views/firework/humiture/components/dataDialog.vue @@ -3,11 +3,49 @@ <el-dialog v-model="dialogVisible" title="历史记录" - width="50%" + width="800px" :before-close="handleClose" :close-on-press-escape="false" :close-on-click-modal="false" > + <el-form style="display: flex;align-items: center"> + <el-form-item> + <el-date-picker + v-model="state.dateRange" + value-format="YYYY-MM-DD" + type="daterange" + range-separator="-" + start-placeholder="开始日期" + end-placeholder="结束日期" + style="width: 300px" + ></el-date-picker> + </el-form-item> + <el-form-item label="状态:" style="margin-left: 20px" > + <el-select + v-model="state.queryParams.filter.deviceWarning" + placeholder="请选择" + style="width: 80%" + > + <el-option + v-for="item in state.statusList" + :key="item.id" + :label="item.name" + :value="item.id" + /> + </el-select> + </el-form-item> + <el-form-item > + <el-button + type="primary" + @click="getList" + >查询</el-button> + <el-button + type="primary" + plain + @click="reset" + >重置</el-button> + </el-form-item> + </el-form> <el-table v-loading="loading" :data="state.tableList" :border="true"> <el-table-column label="序号" type="index" align="center" width="80" /> <el-table-column label="探测器" prop="deviceName" align="center" /> @@ -55,9 +93,24 @@ pageIndex: 1, pageSize: 10, filter: { - deviceId: null + deviceId: null, + deviceWarning: '', + createDateStart: '', + createDateEnd: '' } }, + statusList: [ + { + id: 0, + name: '正常' + }, + { + id: 1, + name: '报警' + }, + + ], + dateRange:[] }) const { queryParams, total } = toRefs(state); @@ -69,6 +122,8 @@ } const getList = async () => { loading.value = true + state.queryParams.filter.createDateStart = state.dateRange[0] + state.queryParams.filter.createDateEnd = state.dateRange[1] if(state.type == '湿度'){ const res = await getHumidity(state.queryParams) if(res.code == 200){ @@ -90,6 +145,20 @@ } } +function reset() { + state.queryParams = { + pageIndex: 1, + pageSize: 10, + filter: { + deviceId: state.queryParams.filter.deviceId, + deviceWarning: '', + createDateStart: '', + createDateEnd: '' + } + } + state.dateRange = [] + getList() +} const handleClose = () => { dialogVisible.value = false; emit("getList") diff --git a/src/views/firework/humiture/index.vue b/src/views/firework/humiture/index.vue index 01a985c..42ee258 100644 --- a/src/views/firework/humiture/index.vue +++ b/src/views/firework/humiture/index.vue @@ -16,37 +16,37 @@ @pagination="getListAll" /> </div> - <!-- 卡片部分--> - <el-scrollbar max-height="420px" style="padding-right: 10px;overflow-x: hidden;" v-if="state.dataList && state.dataList.length >0"> -<!-- <el-row :gutter="20" style="margin-top: 5px;margin-left: 5px">--> -<!-- <el-col v-for="(item,index) in state.dataList" :key="index" :span="8">--> - <div class="grid-container"> - <div v-for="(item,index) in state.dataList" :key="index" style="width: 365px;margin: 20px 30px"> - <el-card class="card-item " shadow="always"> - <div style="display: flex;flex-direction: column"> - <div style="font-size: 18px;font-weight: 700;margin-bottom: 25px">{{item.storeName}}—{{item.storeroomName}}—{{item.deviceName}}</div> - <div style="display: flex;align-items: center;margin-bottom: 15px"> - <img src="@/assets/images/device.png" /> - <div style="display: flex;flex-direction: column"> - <div style="display: flex;justify-content: space-between;margin-bottom: 10px;align-items: center"> - <span>温度:{{item.temperatureValue}}℃</span> - <el-button type="primary" plain style="margin-left: 15px" @click="openData('温度',item)">历史数据</el-button> - </div> - <div style="display: flex;justify-content: space-between;align-items: center"> - <span>湿度:{{item.humidityValue}}%RH</span> - <el-button type="primary" plain style="margin-left: 15px" @click="openData('湿度',item)">历史数据</el-button> + <div style=" border: 1px solid #ebeef5;border-radius: 15px;margin-top: 20px"> +<!-- <span style="font-size: 18px;font-weight: 600;margin-left: 15px;margin-top: 10px"> 设备信息</span>--> + <el-scrollbar max-height="420px" style="padding-right: 10px;overflow-x: hidden;" v-if="state.dataList && state.dataList.length >0"> + <div class="grid-container"> + <div v-for="(item,index) in state.dataList" :key="index" style="width: 365px;margin: 20px 30px"> + <el-card class="card-item " shadow="always"> + <div style="display: flex;flex-direction: column"> + <div style="font-size: 18px;font-weight: 700;margin-bottom: 25px">{{item.storeName}}—{{item.storeroomName}}—{{item.deviceName}}</div> + <div style="display: flex;align-items: center;margin-bottom: 15px"> + <img src="@/assets/images/device.png" /> + <div style="display: flex;flex-direction: column"> + <div style="display: flex;justify-content: space-between;margin-bottom: 10px;align-items: center"> + <span>温度:{{item.temperatureValue}}℃</span> + <el-button type="primary" plain style="margin-left: 15px" @click="openData('温度',item)">历史数据</el-button> + </div> + <div style="display: flex;justify-content: space-between;align-items: center"> + <span>湿度:{{item.humidityValue}}%RH</span> + <el-button type="primary" plain style="margin-left: 15px" @click="openData('湿度',item)">历史数据</el-button> + </div> </div> </div> </div> - </div> - </el-card> + </el-card> + </div> </div> - </div> + </el-scrollbar> + <el-empty v-else description="暂无设备数据" ></el-empty> + </div> + <!-- 卡片部分--> -<!-- </el-col>--> -<!-- </el-row>--> - </el-scrollbar> - <el-empty v-else description="暂无设备数据" ></el-empty> + <d-dialog ref="dialogRef" @getList="getListAll"></d-dialog> </div> </template> @@ -130,8 +130,9 @@ grid-template-columns: repeat(auto-fill, minmax(385px, 1fr)); gap: 0px; justify-content: start; - padding: 15px; - background: #f7f7f7; + //padding: 15px; + //background: #f7f7f7; + } .title-font{ display:flex; diff --git a/src/views/firework/people/index.vue b/src/views/firework/people/index.vue index 4451873..b70741b 100644 --- a/src/views/firework/people/index.vue +++ b/src/views/firework/people/index.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <div style="display: flex;justify-content: space-between;margin-bottom: 10px"> + <div style="display: flex;justify-content: space-between;margin-bottom: 0px"> <el-form :inline="true" style="display: flex;align-items: center;flex-wrap: wrap;" > <el-form-item> <el-button @@ -11,20 +11,20 @@ > 新增 </el-button> - </el-form-item> - <el-form-item label="姓名:" > - <el-input v-model="data.queryParams.filter.companyName" placeholder="请输入姓名"></el-input> - </el-form-item> - <el-form-item > - <el-button - type="primary" - @click="getList" - >查询</el-button> - <el-button - type="primary" - plain - @click="reset" - >重置</el-button> +<!-- </el-form-item>--> +<!-- <el-form-item label="姓名:" >--> +<!-- <el-input v-model="data.queryParams.filter.companyName" placeholder="请输入姓名"></el-input>--> +<!-- </el-form-item>--> +<!-- <el-form-item >--> +<!-- <el-button--> +<!-- type="primary"--> +<!-- @click="getList"--> +<!-- >查询</el-button>--> +<!-- <el-button--> +<!-- type="primary"--> +<!-- plain--> +<!-- @click="reset"--> +<!-- >重置</el-button>--> </el-form-item> </el-form> </div> diff --git a/src/views/firework/warehouse/index.vue b/src/views/firework/warehouse/index.vue index d2cf442..e56b188 100644 --- a/src/views/firework/warehouse/index.vue +++ b/src/views/firework/warehouse/index.vue @@ -12,20 +12,39 @@ 新增仓库 </el-button> </el-form-item> - <!-- <el-form-item label="姓名:" >--> - <!-- <el-input v-model="data.queryParams.name" placeholder="请输入姓名"></el-input>--> - <!-- </el-form-item>--> - <!-- <el-form-item >--> - <!-- <el-button--> - <!-- type="primary"--> - <!-- @click="getList"--> - <!-- >查询</el-button>--> - <!-- <el-button--> - <!-- type="primary"--> - <!-- plain--> - <!-- @click="reset"--> - <!-- >重置</el-button>--> - <!-- </el-form-item>--> + <el-form-item label="区域:" style="display: flex;align-items: center"> + <div style="margin: 10px"> + <div class="basic_search" > + <el-select v-model="queryParams.filter.provinceCode" clearable filterable > + <el-option v-for="item in data.provinceList" :key="item.id" :label="item.name" :value="item.code"> + </el-option> + </el-select> + </div> +<!-- <div class="basic_search" style="display:inline-block">--> +<!-- <el-select v-model="params.city" prop="city" clearable filterable @change="changeArea('city')">--> +<!-- <el-option v-for="item in cityList" :key="item.id" :label="item.name" :value="item.name">--> +<!-- </el-option>--> +<!-- </el-select>--> +<!-- </div>--> +<!-- <div class="basic_search" style="display:inline-block">--> +<!-- <el-select v-model="params.district" clearable filterable>--> +<!-- <el-option v-for="item in districtList" :key="item.id" :label="item.name" :value="item.name">--> +<!-- </el-option>--> +<!-- </el-select>--> +<!-- </div>--> + </div> + </el-form-item> + <el-form-item > + <el-button + type="primary" + @click="getList" + >查询</el-button> + <el-button + type="primary" + plain + @click="reset" + >重置</el-button> + </el-form-item> </el-form> </div> <!-- 表格数据 --> @@ -73,6 +92,7 @@ import Cookies from "js-cookie"; import {delWarehouse, getWarehouse} from "@/api/company/warehouse"; import {subPixelOptimize} from "zrender/lib/graphic/helper/subPixelOptimize"; +import {getProvinceListData} from "@/api/company/area"; const { proxy } = getCurrentInstance(); const loading = ref(false); const dialogRef = ref(); @@ -84,19 +104,22 @@ pageSize: 10, filter: { companyName: '', - companyCode: '' + companyCode: '', + provinceCode: '' } }, total: 0, - dataList: [] + dataList: [], + provinceList: [] }); const { queryParams, total, dataList } = toRefs(data); const classHourRef = ref(); -onMounted(()=>{ +onMounted(async ()=>{ const info = JSON.parse(Cookies.get('userInfo')) data.queryParams.filter.companyCode = info.companynumber - getList() + await getProvince() + await getList() }) onUnmounted(()=>{ @@ -105,6 +128,12 @@ const addProject = (type,value) => { dialogRef.value.openDialog(type,value) +} +const getProvince = async () =>{ + let res = await getProvinceListData() + if(res.code == 200){ + data.provinceList = res.result.provinceList + } } const getList = async () => { loading.value = true @@ -125,7 +154,8 @@ pageSize: 10, filter: { companyName: '', - companyCode: '' + companyCode: '', + provinceCode: '' } } getList() -- Gitblit v1.9.2