瀏覽代碼

修改界面:登录页、个人中心、水温时刻图表、查询页

修改后端:操作日志、水温列表查询优化
lamphua 1 月之前
父節點
當前提交
de62293dd8

+ 5
- 0
cmc-temperature-back/cmc-monitoring/pom.xml 查看文件

@@ -20,6 +20,11 @@
20 20
             <artifactId>ruoyi-common</artifactId>
21 21
         </dependency>
22 22
 
23
+        <dependency>
24
+            <groupId>com.ruoyi</groupId>
25
+            <artifactId>ruoyi-framework</artifactId>
26
+        </dependency>
27
+
23 28
         <!-- lombok -->
24 29
         <dependency>
25 30
             <groupId>org.projectlombok</groupId>

+ 4
- 0
cmc-temperature-back/cmc-monitoring/src/main/java/com/ruoyi/monitoring/controller/CmcTemperatureController.java 查看文件

@@ -3,8 +3,10 @@ package com.ruoyi.monitoring.controller;
3 3
 import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
4 4
 import com.mybatisflex.core.paginate.Page;
5 5
 import com.mybatisflex.core.query.QueryWrapper;
6
+import com.ruoyi.common.enums.BusinessType;
6 7
 import com.ruoyi.common.utils.ExcelUtil;
7 8
 import com.ruoyi.common.web.domain.PageData;
9
+import com.ruoyi.framework.annotation.RyLog;
8 10
 import com.ruoyi.monitoring.domain.CmcChannel;
9 11
 import com.ruoyi.monitoring.domain.CmcTemperature;
10 12
 import com.ruoyi.monitoring.service.ICmcChannelService;
@@ -104,6 +106,7 @@ public class CmcTemperatureController extends BaseController {
104 106
     /**
105 107
      * 根据点位查询水温监测列表(不分页)
106 108
      */
109
+    @RyLog(title = "数据查询", businessType = BusinessType.QUERY)
107 110
     @Get
108 111
     @Mapping("listAllByInfo")
109 112
     public PageData<CmcTemperature> listAllByInfo(CmcTemperature cmcTemperature, CmcChannel cmcChannel) {
@@ -115,6 +118,7 @@ public class CmcTemperatureController extends BaseController {
115 118
     /**
116 119
      * 导出用户列表
117 120
      */
121
+    @RyLog(title = "数据导出", businessType = BusinessType.EXPORT)
118 122
     @Post
119 123
     @Mapping("export")
120 124
     public void export(CmcTemperature cmcTemperature, CmcChannel cmcChannel) {

+ 71
- 29
cmc-temperature-back/cmc-monitoring/src/main/java/com/ruoyi/monitoring/service/impl/CmcTemperatureServiceImpl.java 查看文件

@@ -28,11 +28,9 @@ public class CmcTemperatureServiceImpl extends ServiceImpl<CmcTemperatureMapper,
28 28
     @Inject
29 29
     CmcChannelMapper cmcChannelMapper;
30 30
 
31
-    @Inject
32
-    ICmcTemperatureService cmcTemperatureService;
33
-
34
-    @Inject
35
-    ICmcChannelService cmcChannelService;
31
+    // 移除循环依赖注入,直接使用mapper
32
+    // @Inject
33
+    // ICmcTemperatureService cmcTemperatureService;
36 34
 
37 35
     /**
38 36
      * 查询水温监测列表信息
@@ -42,54 +40,98 @@ public class CmcTemperatureServiceImpl extends ServiceImpl<CmcTemperatureMapper,
42 40
      */
43 41
     @Override
44 42
     public List<CmcTemperature> listTemperature(CmcTemperature cmcTemperature, CmcChannel cmcChannel) {
43
+        // 使用mapper直接查询,避免循环依赖
45 44
         int channelSize = cmcChannelMapper.listChannel(cmcChannel).size();
46 45
         QueryWrapper qw = getQW(cmcTemperature, cmcChannel);
47
-        List<CmcTemperature> records = cmcTemperatureService.list(qw);
46
+        List<CmcTemperature> records = cmcTemperatureMapper.selectListByQuery(qw);
47
+
48
+        if (records.isEmpty()) {
49
+            return new ArrayList<>();
50
+        }
51
+
48 52
         List<CmcTemperature> temperatureList = new ArrayList<>();
53
+
54
+        // 优化内存使用:减少不必要的列表操作
49 55
         if (records.size() > 2) {
50 56
             long diffInMillis;
51 57
             // 第30条与第31条数据时间差 毫秒
52
-            if (channelSize > 30) {
58
+            if (channelSize > 30 && records.size() > 30) {
53 59
                 diffInMillis = records.get(30).getDatetime().getTime() - records.get(29).getDatetime().getTime();
54 60
                 // 时间差超过15分钟,删最后10条数据
55
-                if (diffInMillis / 1000 / 60 > 15)
56
-                    records.subList(records.size() - channelSize + 30, records.size()).clear();
61
+                if (diffInMillis / 1000 / 60 > 15) {
62
+                    // 使用更安全的方式删除数据,避免内存泄漏
63
+                    int removeStart = Math.max(0, records.size() - channelSize + 30);
64
+                    records = records.subList(0, removeStart);
65
+                }
57 66
             }
67
+
58 68
             // 第1条数据与0时时间差 毫秒
59
-            diffInMillis = records.get(0).getDatetime().getTime() - cmcTemperature.getStartTime().getTime();
60
-            if (diffInMillis / 1000 / 60 > 15)
61
-                records.subList(records.size() - channelSize, records.size()).clear();
69
+            if (records.size() > 0 && cmcTemperature.getStartTime() != null) {
70
+                diffInMillis = records.get(0).getDatetime().getTime() - cmcTemperature.getStartTime().getTime();
71
+                if (diffInMillis / 1000 / 60 > 15) {
72
+                    int removeStart = Math.max(0, records.size() - channelSize);
73
+                    records = records.subList(0, removeStart);
74
+                }
75
+            }
76
+
77
+            // 查询15分钟前的数据
62 78
             CmcTemperature temperature = new CmcTemperature();
63 79
             long fifteenMinutesAgoMillis = cmcTemperature.getStartTime().getTime() - (15 * 60 * 1000);
64 80
             Date fifteenMinutesAgo = new Date(fifteenMinutesAgoMillis);
65 81
             temperature.setStartTime(fifteenMinutesAgo);
66 82
             temperature.setEndTime(cmcTemperature.getStartTime());
67 83
             QueryWrapper qw1 = getQW(temperature, cmcChannel);
68
-            temperatureList = cmcTemperatureService.list(qw1);
84
+            List<CmcTemperature> previousData = cmcTemperatureMapper.selectListByQuery(qw1);
85
+
86
+            // 合并数据,避免重复创建列表
87
+            temperatureList.addAll(previousData);
69 88
             temperatureList.addAll(records);
70
-            if (channelSize > 30) {
71
-                for (int i = 0; i < temperatureList.size() - channelSize + 1; i = i + channelSize) {
72
-                    Date minTime = temperatureList.get(i).getDatetime();
73
-                    if (temperatureList.get(i + 10).getDatetime().getTime() > minTime.getTime()) {
74
-                        for (int j = i + 10; j < i + channelSize; j++) {
75
-                            temperatureList.get(j).setDatetime(minTime);
76
-                        }
77
-                    } else {
78
-                        if (temperatureList.get(i + 30).getDatetime().getTime() > minTime.getTime()) {
79
-                            for (int j = i + 30; j < i + channelSize; j++) {
80
-                                temperatureList.get(j).setDatetime(minTime);
81
-                            }
82
-                        }
83
-                    }
84
-                }
89
+
90
+            // 优化数据处理逻辑
91
+            if (channelSize > 30 && temperatureList.size() > channelSize) {
92
+                processTemperatureData(temperatureList, channelSize);
85 93
             }
86 94
         }
95
+
87 96
         return temperatureList;
88 97
     }
89 98
 
99
+    /**
100
+     * 处理温度数据,优化内存使用
101
+     * @param temperatureList 温度数据列表
102
+     * @param channelSize 通道数量
103
+     */
104
+    private void processTemperatureData(List<CmcTemperature> temperatureList, int channelSize) {
105
+        // 使用迭代器模式,避免频繁的索引访问
106
+        for (int i = 0; i < temperatureList.size() - channelSize + 1; i += channelSize) {
107
+            if (i + channelSize > temperatureList.size()) {
108
+                break;
109
+            }
110
+
111
+            Date minTime = temperatureList.get(i).getDatetime();
112
+
113
+            // 优化时间比较逻辑
114
+            if (i + 10 < temperatureList.size() &&
115
+                    temperatureList.get(i + 10).getDatetime().getTime() > minTime.getTime()) {
116
+                // 更新第10-30条数据的时间
117
+                for (int j = i + 10; j < Math.min(i + channelSize, temperatureList.size()); j++) {
118
+                    temperatureList.get(j).setDatetime(new Date(minTime.getTime()));
119
+                }
120
+            } else if (i + 30 < temperatureList.size() &&
121
+                    temperatureList.get(i + 30).getDatetime().getTime() > minTime.getTime()) {
122
+                // 更新第30条之后数据的时间
123
+                for (int j = i + 30; j < Math.min(i + channelSize, temperatureList.size()); j++) {
124
+                    temperatureList.get(j).setDatetime(new Date(minTime.getTime()));
125
+                }
126
+            }
127
+        }
128
+    }
129
+
90 130
     private QueryWrapper getQW(CmcTemperature cmcTemperature, CmcChannel cmcChannel) {
91 131
         QueryWrapper qw = QueryWrapper.create();
92
-        qw.select(CmcTemperature::getId, CmcTemperature::getGroupNo, CmcTemperature::getSensorNo, CmcTemperature::getData, CmcTemperature::getVolt, CmcTemperature::getCSQ, CmcTemperature::getDatetime)
132
+        qw.select(CmcTemperature::getId, CmcTemperature::getGroupNo, CmcTemperature::getSensorNo,
133
+                        CmcTemperature::getData, CmcTemperature::getVolt, CmcTemperature::getCSQ,
134
+                        CmcTemperature::getDatetime)
93 135
                 .select(CmcChannel::getInfo)
94 136
                 .from(CmcTemperature.class)
95 137
                 .leftJoin(CmcChannel.class)

+ 16
- 0
cmc-temperature-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOperLogController.java 查看文件

@@ -14,7 +14,9 @@ import org.noear.solon.auth.annotation.AuthPermissions;
14 14
 import org.noear.solon.core.handle.Result;
15 15
 
16 16
 import java.util.Arrays;
17
+import java.util.Comparator;
17 18
 import java.util.List;
19
+import java.util.stream.Collectors;
18 20
 
19 21
 /**
20 22
  * 操作日志 操作处理
@@ -39,6 +41,20 @@ public class SysOperLogController extends BaseController {
39 41
         return getPageData(result);
40 42
     }
41 43
 
44
+    /**
45
+     * 查询最近操作日志
46
+     */
47
+    @Get
48
+    @Mapping("recent")
49
+    public SysOperLog list(SysOperLog sysOperLog) {
50
+        QueryWrapper qw = getQW(sysOperLog);
51
+        List<SysOperLog> resultList = sysOperLogService.list(qw).stream().sorted(Comparator.comparing(SysOperLog::getCreateTime).reversed()).collect(Collectors.toList());
52
+        SysOperLog result = new SysOperLog();
53
+        if (resultList.size() > 0)
54
+            result = resultList.get(0);
55
+        return result;
56
+    }
57
+
42 58
     /**
43 59
      * 导出操作日志列表
44 60
      */

+ 14
- 1
cmc-temperature-back/ruoyi-admin/src/main/resources/app-dev.yml 查看文件

@@ -168,12 +168,25 @@ mybatis-flex:
168 168
       jdbcUrl: jdbc:sqlite::resource:static/cmc-temperature.db?date_string_format=yyyy-MM-dd HH:mm:ss
169 169
       username:
170 170
       password:
171
+      # 添加连接池优化配置
172
+      maximumPoolSize: 5
173
+      minimumIdle: 1
174
+      connectionTimeout: 180000
175
+      idleTimeout: 600000
176
+      maxLifetime: 1800000
171 177
     access:
172 178
       type: com.zaxxer.hikari.HikariDataSource
173 179
       driverClassName: net.ucanaccess.jdbc.UcanaccessDriver
174
-      jdbcUrl: jdbc:ucanaccess://E:/Java/cmc-temperature/cmc-temperature-back/sql/SKREC_ID1.accdb
180
+#      jdbcUrl: jdbc:ucanaccess://D:/temperature/Data/SKREC_ID1.accdb
181
+      jdbcUrl: jdbc:ucanaccess://E:/Java/cmc-temperature/cmc-temperature-back/sql/Data/SKREC_ID1.accdb
175 182
       username:
176 183
       password:
184
+      # 添加连接池优化配置
185
+      maximumPoolSize: 5
186
+      minimumIdle: 1
187
+      connectionTimeout: 180000
188
+      idleTimeout: 600000
189
+      maxLifetime: 1800000
177 190
 #      type: com.zaxxer.hikari.HikariDataSource
178 191
 #      driverClassName: com.mysql.cj.jdbc.Driver
179 192
 #      jdbcUrl: jdbc:mysql://127.0.0.1:3306/ry-vue?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true

二進制
cmc-temperature-back/ruoyi-admin/src/main/resources/static/cmc-temperature.db 查看文件


+ 6
- 1
cmc-temperature-back/ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java 查看文件

@@ -53,5 +53,10 @@ public enum BusinessType {
53 53
     /**
54 54
      * 清空数据
55 55
      */
56
-    CLEAN
56
+    CLEAN,
57
+
58
+    /**
59
+     * 查询
60
+     */
61
+    QUERY
57 62
 }

+ 9
- 0
cmc-temperature-ui/src/api/system/operlog.js 查看文件

@@ -9,6 +9,15 @@ export function listOperLog(query) {
9 9
   })
10 10
 }
11 11
 
12
+// 查询最近操作日志
13
+export function recentOperLog(query) {
14
+  return request({
15
+    url: '/system/operlog/recent',
16
+    method: 'get',
17
+    params: query
18
+  })
19
+}
20
+
12 21
 // 删除操作日志
13 22
 export function delOperlog(operId) {
14 23
   return request({

二進制
cmc-temperature-ui/src/assets/images/user.png 查看文件


+ 7
- 1
cmc-temperature-ui/src/store/modules/user.js 查看文件

@@ -1,6 +1,12 @@
1
+/*
2
+ * @Author: wrh
3
+ * @Date: 2025-08-19 15:15:48
4
+ * @LastEditors: wrh
5
+ * @LastEditTime: 2025-09-19 13:54:07
6
+ */
1 7
 import { login, logout, getUserInfo } from '@/api/login'
2 8
 import { getToken, setToken, removeToken } from '@/utils/auth'
3
-import defAva from '@/assets/images/avatar.jpg'
9
+import defAva from '@/assets/images/user.png'
4 10
 
5 11
 const useUserStore = defineStore(
6 12
   'user',

+ 11
- 8
cmc-temperature-ui/src/views/login.vue 查看文件

@@ -59,8 +59,8 @@ const router = useRouter()
59 59
 const { proxy } = getCurrentInstance()
60 60
 
61 61
 const loginForm = ref({
62
-  username: 'admin',
63
-  password: 'admin123',
62
+  username: '',
63
+  password: '',
64 64
   rememberMe: false,
65 65
   code: '',
66 66
   uuid: ''
@@ -145,7 +145,7 @@ getCookie()
145 145
 .login {
146 146
   display: flex;
147 147
   flex-direction: column;
148
-  justify-content: center;
148
+  justify-content: top;
149 149
   align-items: center;
150 150
   height: 100%;
151 151
   background-image: url('@/assets/images/loginBg.jpeg');
@@ -156,12 +156,13 @@ getCookie()
156 156
 
157 157
 .login-header {
158 158
   text-align: center;
159
-  margin-bottom: 40px;
160
-  position: relative;
159
+  left: 70%;
160
+  top: 8%;
161
+  position: absolute;
161 162
   z-index: 2;
162 163
   
163 164
   .main-title {
164
-    font-size: 42px;
165
+    font-size: 26px;
165 166
     font-weight: 700;
166 167
     color: #ffffff;
167 168
     margin-bottom: 10px;
@@ -185,8 +186,10 @@ getCookie()
185 186
   border-radius: 16px;
186 187
   padding: 40px;
187 188
   box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
188
-  width: 450px;
189
-  position: relative;
189
+  width: 500px;
190
+  position: absolute;
191
+  bottom: 30%;
192
+  left: 70%;
190 193
   z-index: 2;
191 194
   border: 1px solid rgba(255, 255, 255, 0.3);
192 195
   transition: all 0.3s ease;

+ 2
- 2
cmc-temperature-ui/src/views/system/user/index.vue 查看文件

@@ -2,7 +2,7 @@
2 2
   <div class="app-container">
3 3
     <el-row :gutter="20">
4 4
       <!-- 部门数据 -->
5
-      <el-col :span="4" :xs="24">
5
+      <!-- <el-col :span="4" :xs="24">
6 6
         <div class="head-container">
7 7
           <el-input
8 8
             v-model="deptName"
@@ -25,7 +25,7 @@
25 25
             @node-click="handleNodeClick"
26 26
           />
27 27
         </div>
28
-      </el-col>
28
+      </el-col> -->
29 29
       <!-- 用户数据 -->
30 30
       <el-col :span="20" :xs="24">
31 31
         <el-form v-show="showSearch" ref="queryRef" :model="queryParams" :inline="true" label-width="68px">

+ 4
- 4
cmc-temperature-ui/src/views/system/user/profile/index.vue 查看文件

@@ -17,14 +17,14 @@
17 17
                 <svg-icon icon-class="user" />登录账号
18 18
                 <div class="pull-right">{{ state.user.userName }}</div>
19 19
               </li>
20
-              <li class="list-group-item">
20
+              <!-- <li class="list-group-item">
21 21
                 <svg-icon icon-class="phone" />手机号码
22 22
                 <div class="pull-right">{{ state.user.phonenumber }}</div>
23
-              </li>
24
-              <li class="list-group-item">
23
+              </li> -->
24
+              <!-- <li class="list-group-item">
25 25
                 <svg-icon icon-class="email" />用户邮箱
26 26
                 <div class="pull-right">{{ state.user.email }}</div>
27
-              </li>
27
+              </li> -->
28 28
               <li class="list-group-item">
29 29
                 <svg-icon icon-class="tree" />所属部门
30 30
                 <div v-if="state.user.dept" class="pull-right">{{ state.user.dept.deptName }} / {{ state.postGroup }}</div>

+ 10
- 10
cmc-temperature-ui/src/views/system/user/profile/userInfo.vue 查看文件

@@ -3,7 +3,7 @@
3 3
     <el-form-item label="用户昵称" prop="nickName">
4 4
       <el-input v-model="user.nickName" maxlength="30" />
5 5
     </el-form-item>
6
-    <el-form-item label="手机号码" prop="phonenumber">
6
+    <!-- <el-form-item label="手机号码" prop="phonenumber">
7 7
       <el-input v-model="user.phonenumber" maxlength="11" />
8 8
     </el-form-item>
9 9
     <el-form-item label="邮箱" prop="email">
@@ -14,7 +14,7 @@
14 14
         <el-radio value="0">男</el-radio>
15 15
         <el-radio value="1">女</el-radio>
16 16
       </el-radio-group>
17
-    </el-form-item>
17
+    </el-form-item> -->
18 18
     <el-form-item>
19 19
       <el-button type="primary" :loading="loadingButton" @click="submit">保存</el-button>
20 20
       <el-button type="danger" @click="close">关闭</el-button>
@@ -39,14 +39,14 @@ const rules = ref({
39 39
   nickName: [
40 40
     { required: true, message: '用户昵称不能为空', trigger: 'blur' }
41 41
   ],
42
-  email: [
43
-    { required: true, message: '邮箱地址不能为空', trigger: 'blur' },
44
-    { type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }
45
-  ],
46
-  phonenumber: [
47
-    { required: true, message: '手机号码不能为空', trigger: 'blur' },
48
-    { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: '请输入正确的手机号码', trigger: 'blur' }
49
-  ]
42
+  // email: [
43
+  //   { required: true, message: '邮箱地址不能为空', trigger: 'blur' },
44
+  //   { type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }
45
+  // ],
46
+  // phonenumber: [
47
+  //   { required: true, message: '手机号码不能为空', trigger: 'blur' },
48
+  //   { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: '请输入正确的手机号码', trigger: 'blur' }
49
+  // ]
50 50
 })
51 51
 
52 52
 /** 提交按钮 */

+ 1
- 0
cmc-temperature-ui/src/views/temperature/TemperatureChart.vue 查看文件

@@ -562,6 +562,7 @@ const updateMomentChart = (selectedTime) => {
562 562
     },
563 563
     yAxis: {
564 564
       type: 'category',
565
+      inverse: true,
565 566
       data: momentSeries.map(s => s.name),
566 567
       axisLine: {
567 568
         lineStyle: {

+ 22
- 11
cmc-temperature-ui/src/views/temperature/index.vue 查看文件

@@ -1,8 +1,8 @@
1 1
 <!--
2 2
  * @Author: ysh
3 3
  * @Date: 2025-08-20 10:14:22
4
- * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2025-08-21 09:52:13
4
+ * @LastEditors: wrh
5
+ * @LastEditTime: 2025-09-19 11:19:17
6 6
 -->
7 7
 <template>
8 8
   <div class="temperature-page">
@@ -22,8 +22,16 @@
22 22
           </div>
23 23
           <template #dropdown>
24 24
             <el-dropdown-menu>
25
+              <el-dropdown-item v-if="isAdmin" divided command="system">
26
+                <svg-icon icon-class="system" />
27
+                系统管理
28
+              </el-dropdown-item>
29
+              <el-dropdown-item v-if="!isAdmin" divided command="profile">
30
+                <svg-icon icon-class="user" />
31
+                个人中心
32
+              </el-dropdown-item>
25 33
               <el-dropdown-item divided command="logout">
26
-                <svg-icon icon-class="logout" />
34
+                <svg-icon icon-class="eye" />
27 35
                 退出登录
28 36
               </el-dropdown-item>
29 37
             </el-dropdown-menu>
@@ -40,7 +48,7 @@
40 48
 </template>
41 49
 
42 50
 <script setup>
43
-import { ref, onMounted } from 'vue'
51
+import { ref, onMounted, getCurrentInstance } from 'vue'
44 52
 import { useRouter } from 'vue-router'
45 53
 import useUserStore from '@/store/modules/user'
46 54
 import { title } from '@/store/modules/settings'
@@ -49,20 +57,20 @@ import temMonitor from './temMonitor.vue'
49 57
 const router = useRouter()
50 58
 const userStore = useUserStore()
51 59
 const { proxy } = getCurrentInstance()
60
+const isAdmin = ref(false)
52 61
 
53 62
 // 用户信息
54 63
 const userInfo = ref({
55
-  username: 'admin',
64
+  username: '',
56 65
   avatar: ''
57 66
 })
58 67
 
59 68
 // 获取用户信息
60 69
 const getUserInfo = () => {
61
-  const user = userStore.user
62
-  if (user) {
63
-    userInfo.value.username = user.userName || 'admin'
64
-    userInfo.value.avatar = user.avatar || ''
65
-  }
70
+  if (userStore.name == '玛尔挡水电站')
71
+    isAdmin.value = true
72
+  userInfo.value.username = userStore.name
73
+  userInfo.value.avatar = userStore.avatar  
66 74
 }
67 75
 
68 76
 // 处理下拉菜单命令
@@ -70,12 +78,15 @@ const handleCommand = (command) => {
70 78
   switch (command) {
71 79
     case 'profile':
72 80
       // 跳转到个人中心
73
-      router.push('/system/user/profile')
81
+      router.push('/user/profile')
74 82
       break
75 83
     case 'settings':
76 84
       // 跳转到系统设置
77 85
       router.push('/system/config')
78 86
       break
87
+    case 'system':
88
+      router.push('/system/user')
89
+      break
79 90
     case 'logout':
80 91
       handleLogout()
81 92
       break

+ 13
- 2
cmc-temperature-ui/src/views/temperature/temMonitor.vue 查看文件

@@ -107,12 +107,15 @@
107 107
 </template>
108 108
 
109 109
 <script setup>
110
-import { ref, reactive, computed, onMounted, nextTick } from 'vue'
110
+import { ref, reactive, computed, onMounted, nextTick, getCurrentInstance } from 'vue'
111 111
 import { ElMessage } from 'element-plus'
112 112
 import { Search, Refresh, Download } from '@element-plus/icons-vue'
113 113
 import { listTemperature, listByInfo, listAllByInfo } from '@/api/monitoring/temperature'
114
+import { recentOperLog } from '@/api/system/operlog'
114 115
 import { listChannel, channelInfoList } from '@/api/monitoring/channel'
115 116
 import TemperatureChart from './TemperatureChart.vue'
117
+import useUserStore from '@/store/modules/user'
118
+import { parseTime } from '@/utils/date'
116 119
 
117 120
 // 响应式数据
118 121
 const loading = ref(false)
@@ -120,10 +123,13 @@ const totalCount = ref(0)
120 123
 const activeTab = ref('table')
121 124
 const chartRef = ref(null)
122 125
 const { proxy } = getCurrentInstance()
126
+const userStore = useUserStore()
123 127
 
124 128
 // 搜索表单数据
129
+const today = ref(parseTime(new Date(), '{y}-{m}-{d}'))
130
+const yesterday = ref(parseTime(new Date(new Date().setDate(new Date().getDate()-1)), '{y}-{m}-{d}'))
125 131
 const searchForm = reactive({
126
-  timeRange: [],
132
+  timeRange: [yesterday.value, today.value],
127 133
   Info: '',
128 134
   queryType: '',
129 135
   deviceId: '',
@@ -159,6 +165,11 @@ const getDeviceList = () => {
159 165
       value: item
160 166
     }))
161 167
   })
168
+  recentOperLog({createBy: userStore.userId}).then(res => {
169
+    if (res.operParam) {
170
+      searchForm.Info = res.operParam.split('Info\', values=[')[1].split(']')[0]
171
+    }
172
+  })
162 173
 }
163 174
 getDeviceList()
164 175
 

Loading…
取消
儲存