潘志宝
2 天以前 afd12bd4683489925575346214080faf05394a73
提交 | 用户 | 时间
ebc552 1 <template>
L 2   <el-drawer
3     v-model="drawer"
4     size="60%"
5     title="历史详情"
6     direction="rtl"
7     :before-close="handleClose"
8   >
9     <!-- 搜索工作栏 -->
10     <el-form
11       class="-mb-15px"
12       :model="queryParams"
13       ref="queryFormRef"
14       :inline="true"
15       label-width="68px"
16     >
17       <el-form-item label="消息标题" prop="title">
18         <el-input
19           v-model="queryParams.title"
20           placeholder="请输入消息标题"
21           clearable
22           class="!w-240px"
23         />
24       </el-form-item>
25       <el-form-item label="监控对象" prop="alarmObj">
26         <el-input
27           v-model="queryParams.alarmObj"
28           placeholder="请输入监控对象"
29           clearable
30           class="!w-240px"
31         />
32       </el-form-item>
33       <el-form-item>
34         <el-button @click="handleQuery">
35           <Icon icon="ep:search" class="mr-5px"/>
36           搜索
37         </el-button>
38         <el-button @click="resetQuery">
39           <Icon icon="ep:refresh" class="mr-5px"/>
40           重置
41         </el-button>
42       </el-form-item>
43     </el-form>
44     <!-- 列表 -->
45     <el-table
46       v-loading="loading"
47       :data="list"
48       row-key="id"
49     >
afd12b 50       <el-table-column prop="title" label="消息标题" header-align="center" align="left" min-width="150"/>
51       <el-table-column prop="content" label="消息内容" header-align="center" align="left" min-width="200"/>
52       <el-table-column prop="alarmObj" label="监控对象" align="left" min-width="150"/>
53       <el-table-column prop="alarmType" label="预警类型" align="left" min-width="150"/>
54       <el-table-column prop="alarmTime" label="预警时间" align="left" min-width="150"/>
ebc552 55     </el-table>
L 56     <!-- 分页 -->
57     <Pagination
58       v-model:limit="queryParams.limit"
59       v-model:page="queryParams.page"
60       :total="total"
61       @pagination="getList"
62     />
63   </el-drawer>
64 </template>
65 <script lang="ts" setup>
66 import * as MmPredictAlarmMessage from '@/api/model/pre/alarm/message'
67
68 defineOptions({name: 'ChartParam'})
69
70 const drawer = ref(false)
71 const loading = ref(false) // 列表的加载中
72 const total = ref(0) // 列表的总页数
73 const list = ref([]) // 字典表格数据
74 const queryParams = reactive({
75   page: 1,
76   limit: 10,
77   configId: undefined,
78   title: undefined,
79   content: undefined,
80   alarmObj: undefined,
81   pointId: undefined,
82   itemId: undefined,
83   outId: undefined,
84   currentValue: undefined,
85   outTime: undefined,
86   outValue: undefined,
87   alarmType: undefined,
88   alarmTime: undefined,
89   createTime: undefined,
90 })
91 const queryFormRef = ref() // 搜索的表单
92
93 const getList = async () => {
94   loading.value = true
95   try {
96     const data = await MmPredictAlarmMessage.getMmPredictAlarmMessagePage(queryParams)
97     list.value = data.list
98     total.value = data.total
99   } finally {
100     loading.value = false
101   }
102 }
103
104 /** 打开弹窗 */
105 const open = async (configId?: string) => {
106   resetForm()
107   drawer.value = true
108   queryParams.configId = configId
109   if (configId) {
110     getList()
111   }
112 }
113 defineExpose({open}) // 提供 open 方法,用于打开弹窗
114
115 /** 重置表单 */
116 const resetForm = () => {
117   queryParams.title = undefined
118   queryParams.pointId = undefined
119 }
120
121 /** 搜索按钮操作 */
122 const handleQuery = () => {
123   getList()
124 }
125
126 /** 重置按钮操作 */
127 const resetQuery = () => {
128   queryFormRef.value.resetFields()
129   handleQuery()
130 }
131
132 const handleClose = (done: () => void) => {
133   drawer.value = false
134 }
135 </script>