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