mqtt模块
This commit is contained in:
@@ -4,4 +4,4 @@ VITE_APP_TITLE = 智汇管理系统
|
||||
VITE_APP_ENV = 'development'
|
||||
|
||||
# 智汇管理系统/开发环境
|
||||
VITE_APP_BASE_API = 'http://192.168.1.5:8082'
|
||||
VITE_APP_BASE_API = 'http://192.168.1.5:8081'
|
||||
|
||||
44
src/api/worn/mqttCommand.js
Normal file
44
src/api/worn/mqttCommand.js
Normal file
@@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询指令管理列表
|
||||
export function listMqttCommand(query) {
|
||||
return request({
|
||||
url: '/worn/mqttCommand/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询指令管理详细
|
||||
export function getMqttCommand(id) {
|
||||
return request({
|
||||
url: '/worn/mqttCommand/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增指令管理
|
||||
export function addMqttCommand(data) {
|
||||
return request({
|
||||
url: '/worn/mqttCommand',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改指令管理
|
||||
export function updateMqttCommand(data) {
|
||||
return request({
|
||||
url: '/worn/mqttCommand',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除指令管理
|
||||
export function delMqttCommand(id) {
|
||||
return request({
|
||||
url: '/worn/mqttCommand/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
44
src/api/worn/mqttData.js
Normal file
44
src/api/worn/mqttData.js
Normal file
@@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询设备数据列表
|
||||
export function listMqttData(query) {
|
||||
return request({
|
||||
url: '/worn/mqttData/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询设备数据详细
|
||||
export function getMqttData(id) {
|
||||
return request({
|
||||
url: '/worn/mqttData/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增设备数据
|
||||
export function addMqttData(data) {
|
||||
return request({
|
||||
url: '/worn/mqttData',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改设备数据
|
||||
export function updateMqttData(data) {
|
||||
return request({
|
||||
url: '/worn/mqttData',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除设备数据
|
||||
export function delMqttData(id) {
|
||||
return request({
|
||||
url: '/worn/mqttData/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
44
src/api/worn/mqttDevice.js
Normal file
44
src/api/worn/mqttDevice.js
Normal file
@@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询MQTT设备列表
|
||||
export function listMqttDevice(query) {
|
||||
return request({
|
||||
url: '/worn/mqttDevice/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询MQTT设备详细
|
||||
export function getMqttDevice(id) {
|
||||
return request({
|
||||
url: '/worn/mqttDevice/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增MQTT设备
|
||||
export function addMqttDevice(data) {
|
||||
return request({
|
||||
url: '/worn/mqttDevice',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改MQTT设备
|
||||
export function updateMqttDevice(data) {
|
||||
return request({
|
||||
url: '/worn/mqttDevice',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除MQTT设备
|
||||
export function delMqttDevice(id) {
|
||||
return request({
|
||||
url: '/worn/mqttDevice/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
44
src/api/worn/mqttEvent.js
Normal file
44
src/api/worn/mqttEvent.js
Normal file
@@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询设备事件列表
|
||||
export function listMqttEvent(query) {
|
||||
return request({
|
||||
url: '/worn/mqttEvent/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询设备事件详细
|
||||
export function getMqttEvent(id) {
|
||||
return request({
|
||||
url: '/worn/mqttEvent/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增设备事件
|
||||
export function addMqttEvent(data) {
|
||||
return request({
|
||||
url: '/worn/mqttEvent',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改设备事件
|
||||
export function updateMqttEvent(data) {
|
||||
return request({
|
||||
url: '/worn/mqttEvent',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除设备事件
|
||||
export function delMqttEvent(id) {
|
||||
return request({
|
||||
url: '/worn/mqttEvent/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
44
src/api/worn/threshold.js
Normal file
44
src/api/worn/threshold.js
Normal file
@@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询传感器阈值配置列表
|
||||
export function listThreshold(query) {
|
||||
return request({
|
||||
url: '/worn/threshold/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询传感器阈值配置详细
|
||||
export function getThreshold(id) {
|
||||
return request({
|
||||
url: '/worn/threshold/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增传感器阈值配置
|
||||
export function addThreshold(data) {
|
||||
return request({
|
||||
url: '/worn/threshold',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改传感器阈值配置
|
||||
export function updateThreshold(data) {
|
||||
return request({
|
||||
url: '/worn/threshold',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除传感器阈值配置
|
||||
export function delThreshold(id) {
|
||||
return request({
|
||||
url: '/worn/threshold/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
313
src/views/worn/mqttCommand/index.vue
Normal file
313
src/views/worn/mqttCommand/index.vue
Normal file
@@ -0,0 +1,313 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="设备ID" prop="deviceId">
|
||||
<el-input
|
||||
v-model="queryParams.deviceId"
|
||||
placeholder="请输入设备ID"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="下发Topic" prop="topic">
|
||||
<el-input
|
||||
v-model="queryParams.topic"
|
||||
placeholder="请输入下发Topic"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="指令类型" prop="command">
|
||||
<el-input
|
||||
v-model="queryParams.command"
|
||||
placeholder="请输入指令类型"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="发送时间" prop="sendTime">
|
||||
<el-date-picker clearable
|
||||
v-model="queryParams.sendTime"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="请选择发送时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="删除标识" prop="isDelete">
|
||||
<el-input
|
||||
v-model="queryParams.isDelete"
|
||||
placeholder="请输入删除标识"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['worn:mqttCommand:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="Edit"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['worn:mqttCommand:edit']"
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['worn:mqttCommand:remove']"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="Download"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['worn:mqttCommand:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="mqttCommandList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="主键ID" align="center" prop="id" />
|
||||
<el-table-column label="设备ID" align="center" prop="deviceId" />
|
||||
<el-table-column label="下发Topic" align="center" prop="topic" />
|
||||
<el-table-column label="指令类型" align="center" prop="command" />
|
||||
<el-table-column label="指令JSON" align="center" prop="payload" />
|
||||
<el-table-column label="状态" align="center" prop="status" />
|
||||
<el-table-column label="发送时间" align="center" prop="sendTime" width="180">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.sendTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="删除标识" align="center" prop="isDelete" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['worn:mqttCommand:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['worn:mqttCommand:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改指令管理对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="mqttCommandRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="设备ID" prop="deviceId">
|
||||
<el-input v-model="form.deviceId" placeholder="请输入设备ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="下发Topic" prop="topic">
|
||||
<el-input v-model="form.topic" placeholder="请输入下发Topic" />
|
||||
</el-form-item>
|
||||
<el-form-item label="指令类型" prop="command">
|
||||
<el-input v-model="form.command" placeholder="请输入指令类型" />
|
||||
</el-form-item>
|
||||
<el-form-item label="指令JSON" prop="payload">
|
||||
<el-input v-model="form.payload" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发送时间" prop="sendTime">
|
||||
<el-date-picker clearable
|
||||
v-model="form.sendTime"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="请选择发送时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="删除标识" prop="isDelete">
|
||||
<el-input v-model="form.isDelete" placeholder="请输入删除标识" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="MqttCommand">
|
||||
import { listMqttCommand, getMqttCommand, delMqttCommand, addMqttCommand, updateMqttCommand } from "@/api/worn/mqttCommand"
|
||||
|
||||
const { proxy } = getCurrentInstance()
|
||||
|
||||
const mqttCommandList = ref([])
|
||||
const open = ref(false)
|
||||
const loading = ref(true)
|
||||
const showSearch = ref(true)
|
||||
const ids = ref([])
|
||||
const single = ref(true)
|
||||
const multiple = ref(true)
|
||||
const total = ref(0)
|
||||
const title = ref("")
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
deviceId: null,
|
||||
topic: null,
|
||||
command: null,
|
||||
payload: null,
|
||||
status: null,
|
||||
sendTime: null,
|
||||
isDelete: null
|
||||
},
|
||||
rules: {
|
||||
deviceId: [
|
||||
{ required: true, message: "设备ID不能为空", trigger: "blur" }
|
||||
],
|
||||
}
|
||||
})
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data)
|
||||
|
||||
/** 查询指令管理列表 */
|
||||
function getList() {
|
||||
loading.value = true
|
||||
listMqttCommand(queryParams.value).then(response => {
|
||||
mqttCommandList.value = response.rows
|
||||
total.value = response.total
|
||||
loading.value = false
|
||||
})
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
function cancel() {
|
||||
open.value = false
|
||||
reset()
|
||||
}
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
form.value = {
|
||||
id: null,
|
||||
deviceId: null,
|
||||
topic: null,
|
||||
command: null,
|
||||
payload: null,
|
||||
status: null,
|
||||
sendTime: null,
|
||||
remark: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
isDelete: null
|
||||
}
|
||||
proxy.resetForm("mqttCommandRef")
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNum = 1
|
||||
getList()
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm("queryRef")
|
||||
handleQuery()
|
||||
}
|
||||
|
||||
// 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map(item => item.id)
|
||||
single.value = selection.length != 1
|
||||
multiple.value = !selection.length
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset()
|
||||
open.value = true
|
||||
title.value = "添加指令管理"
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset()
|
||||
const _id = row.id || ids.value
|
||||
getMqttCommand(_id).then(response => {
|
||||
form.value = response.data
|
||||
open.value = true
|
||||
title.value = "修改指令管理"
|
||||
})
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs["mqttCommandRef"].validate(valid => {
|
||||
if (valid) {
|
||||
if (form.value.id != null) {
|
||||
updateMqttCommand(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("修改成功")
|
||||
open.value = false
|
||||
getList()
|
||||
})
|
||||
} else {
|
||||
addMqttCommand(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("新增成功")
|
||||
open.value = false
|
||||
getList()
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const _ids = row.id || ids.value
|
||||
proxy.$modal.confirm('是否确认删除指令管理编号为"' + _ids + '"的数据项?').then(function() {
|
||||
return delMqttCommand(_ids)
|
||||
}).then(() => {
|
||||
getList()
|
||||
proxy.$modal.msgSuccess("删除成功")
|
||||
}).catch(() => {})
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download('worn/mqttCommand/export', {
|
||||
...queryParams.value
|
||||
}, `mqttCommand_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
|
||||
getList()
|
||||
</script>
|
||||
437
src/views/worn/mqttData/index.vue
Normal file
437
src/views/worn/mqttData/index.vue
Normal file
@@ -0,0 +1,437 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="设备ID" prop="deviceId">
|
||||
<el-input
|
||||
v-model="queryParams.deviceId"
|
||||
placeholder="请输入设备ID"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="MQTT Topic" prop="topic">
|
||||
<el-input
|
||||
v-model="queryParams.topic"
|
||||
placeholder="请输入MQTT Topic"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目" prop="project">
|
||||
<el-input
|
||||
v-model="queryParams.project"
|
||||
placeholder="请输入项目"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="仓库" prop="warehouse">
|
||||
<el-input
|
||||
v-model="queryParams.warehouse"
|
||||
placeholder="请输入仓库"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="电量" prop="battery">
|
||||
<el-input
|
||||
v-model="queryParams.battery"
|
||||
placeholder="请输入电量"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="温度" prop="temperature">
|
||||
<el-input
|
||||
v-model="queryParams.temperature"
|
||||
placeholder="请输入温度"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="湿度" prop="humidity">
|
||||
<el-input
|
||||
v-model="queryParams.humidity"
|
||||
placeholder="请输入湿度"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="氨气" prop="nh3">
|
||||
<el-input
|
||||
v-model="queryParams.nh3"
|
||||
placeholder="请输入氨气"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="硫化氢" prop="h2s">
|
||||
<el-input
|
||||
v-model="queryParams.h2s"
|
||||
placeholder="请输入硫化氢"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="烟雾浓度" prop="concentration">
|
||||
<el-input
|
||||
v-model="queryParams.concentration"
|
||||
placeholder="请输入烟雾浓度"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="水位状态" prop="waterStatus">
|
||||
<el-select v-model="queryParams.waterStatus" placeholder="请选择水位状态" clearable>
|
||||
<el-option label="正常" :value="0" />
|
||||
<el-option label="报警" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="删除标识" prop="isDelete">
|
||||
<el-input
|
||||
v-model="queryParams.isDelete"
|
||||
placeholder="请输入删除标识"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['worn:mqttData:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="Edit"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['worn:mqttData:edit']"
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['worn:mqttData:remove']"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="Download"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['worn:mqttData:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="mqttDataList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="主键ID" align="center" prop="id" />
|
||||
<el-table-column label="设备ID" align="center" prop="deviceId" />
|
||||
<el-table-column label="MQTT Topic" align="center" prop="topic" min-width="180" show-overflow-tooltip />
|
||||
<el-table-column label="项目" align="center" prop="project" min-width="100" show-overflow-tooltip />
|
||||
<el-table-column label="仓库" align="center" prop="warehouse" />
|
||||
<el-table-column label="原始消息" align="center" prop="payload" min-width="300" show-overflow-tooltip />
|
||||
<el-table-column label="解析JSON" align="center" prop="dataJson" min-width="300" show-overflow-tooltip />
|
||||
<el-table-column label="电量" align="center" prop="battery">
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.battery !== null && scope.row.battery !== undefined && scope.row.battery !== ''" color="#409EFF" style="color: #fff;">{{ scope.row.battery }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="温度" align="center" prop="temperature">
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.temperature !== null && scope.row.temperature !== undefined && scope.row.temperature !== ''" color="#E6A23C" style="color: #fff;">{{ scope.row.temperature }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="湿度" align="center" prop="humidity">
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.humidity !== null && scope.row.humidity !== undefined && scope.row.humidity !== ''" color="#00B5D8" style="color: #fff;">{{ scope.row.humidity }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="氨气" align="center" prop="nh3">
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.nh3 !== null && scope.row.nh3 !== undefined && scope.row.nh3 !== ''" color="#9C27B0" style="color: #fff;">{{ scope.row.nh3 }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="硫化氢" align="center" prop="h2s">
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.h2s !== null && scope.row.h2s !== undefined && scope.row.h2s !== ''" color="#EC407A" style="color: #fff;">{{ scope.row.h2s }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="烟雾浓度" align="center" prop="concentration">
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.concentration !== null && scope.row.concentration !== undefined && scope.row.concentration !== ''" color="#607D8B" style="color: #fff;">{{ scope.row.concentration }}</el-tag>
|
||||
<el-tag v-else type="success">正常</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="水位状态" align="center" prop="waterStatus">
|
||||
<template #default="scope">
|
||||
<el-tag :type="(scope.row.waterStatus === null || scope.row.waterStatus === undefined || scope.row.waterStatus === '' || scope.row.waterStatus === 0) ? 'success' : 'danger'">
|
||||
{{ (scope.row.waterStatus === null || scope.row.waterStatus === undefined || scope.row.waterStatus === '' || scope.row.waterStatus === 0) ? '正常' : '报警' }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="删除标识" align="center" prop="isDelete" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['worn:mqttData:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['worn:mqttData:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改设备数据对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="mqttDataRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="设备ID" prop="deviceId">
|
||||
<el-input v-model="form.deviceId" placeholder="请输入设备ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="MQTT Topic" prop="topic">
|
||||
<el-input v-model="form.topic" placeholder="请输入MQTT Topic" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目" prop="project">
|
||||
<el-input v-model="form.project" placeholder="请输入项目" />
|
||||
</el-form-item>
|
||||
<el-form-item label="仓库" prop="warehouse">
|
||||
<el-input v-model="form.warehouse" placeholder="请输入仓库" />
|
||||
</el-form-item>
|
||||
<el-form-item label="原始消息" prop="payload">
|
||||
<el-input v-model="form.payload" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
<el-form-item label="解析JSON" prop="dataJson">
|
||||
<el-input v-model="form.dataJson" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
<el-form-item label="电量" prop="battery">
|
||||
<el-input v-model="form.battery" placeholder="请输入电量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="温度" prop="temperature">
|
||||
<el-input v-model="form.temperature" placeholder="请输入温度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="湿度" prop="humidity">
|
||||
<el-input v-model="form.humidity" placeholder="请输入湿度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="氨气" prop="nh3">
|
||||
<el-input v-model="form.nh3" placeholder="请输入氨气" />
|
||||
</el-form-item>
|
||||
<el-form-item label="硫化氢" prop="h2s">
|
||||
<el-input v-model="form.h2s" placeholder="请输入硫化氢" />
|
||||
</el-form-item>
|
||||
<el-form-item label="烟雾浓度" prop="concentration">
|
||||
<el-input v-model="form.concentration" placeholder="请输入烟雾浓度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="水位状态" prop="waterStatus">
|
||||
<el-select v-model="form.waterStatus" placeholder="请选择水位状态">
|
||||
<el-option label="正常" :value="0" />
|
||||
<el-option label="报警" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="删除标识" prop="isDelete">
|
||||
<el-input v-model="form.isDelete" placeholder="请输入删除标识" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="MqttData">
|
||||
import { listMqttData, getMqttData, delMqttData, addMqttData, updateMqttData } from "@/api/worn/mqttData"
|
||||
|
||||
const { proxy } = getCurrentInstance()
|
||||
|
||||
const mqttDataList = ref([])
|
||||
const open = ref(false)
|
||||
const loading = ref(true)
|
||||
const showSearch = ref(true)
|
||||
const ids = ref([])
|
||||
const single = ref(true)
|
||||
const multiple = ref(true)
|
||||
const total = ref(0)
|
||||
const title = ref("")
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
deviceId: null,
|
||||
topic: null,
|
||||
project: null,
|
||||
warehouse: null,
|
||||
payload: null,
|
||||
dataJson: null,
|
||||
battery: null,
|
||||
temperature: null,
|
||||
humidity: null,
|
||||
nh3: null,
|
||||
h2s: null,
|
||||
concentration: null,
|
||||
waterStatus: null,
|
||||
isDelete: null
|
||||
},
|
||||
rules: {
|
||||
deviceId: [
|
||||
{ required: true, message: "设备ID不能为空", trigger: "blur" }
|
||||
],
|
||||
}
|
||||
})
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data)
|
||||
|
||||
/** 查询设备数据列表 */
|
||||
function getList() {
|
||||
loading.value = true
|
||||
listMqttData(queryParams.value).then(response => {
|
||||
mqttDataList.value = response.rows
|
||||
total.value = response.total
|
||||
loading.value = false
|
||||
})
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
function cancel() {
|
||||
open.value = false
|
||||
reset()
|
||||
}
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
form.value = {
|
||||
id: null,
|
||||
deviceId: null,
|
||||
topic: null,
|
||||
project: null,
|
||||
warehouse: null,
|
||||
payload: null,
|
||||
dataJson: null,
|
||||
battery: null,
|
||||
temperature: null,
|
||||
humidity: null,
|
||||
nh3: null,
|
||||
h2s: null,
|
||||
concentration: null,
|
||||
waterStatus: null,
|
||||
remark: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
isDelete: null
|
||||
}
|
||||
proxy.resetForm("mqttDataRef")
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNum = 1
|
||||
getList()
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm("queryRef")
|
||||
handleQuery()
|
||||
}
|
||||
|
||||
// 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map(item => item.id)
|
||||
single.value = selection.length != 1
|
||||
multiple.value = !selection.length
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset()
|
||||
open.value = true
|
||||
title.value = "添加设备数据"
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset()
|
||||
const _id = row.id || ids.value
|
||||
getMqttData(_id).then(response => {
|
||||
form.value = response.data
|
||||
open.value = true
|
||||
title.value = "修改设备数据"
|
||||
})
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs["mqttDataRef"].validate(valid => {
|
||||
if (valid) {
|
||||
if (form.value.id != null) {
|
||||
updateMqttData(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("修改成功")
|
||||
open.value = false
|
||||
getList()
|
||||
})
|
||||
} else {
|
||||
addMqttData(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("新增成功")
|
||||
open.value = false
|
||||
getList()
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const _ids = row.id || ids.value
|
||||
proxy.$modal.confirm('是否确认删除设备数据编号为"' + _ids + '"的数据项?').then(function() {
|
||||
return delMqttData(_ids)
|
||||
}).then(() => {
|
||||
getList()
|
||||
proxy.$modal.msgSuccess("删除成功")
|
||||
}).catch(() => {})
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download('worn/mqttData/export', {
|
||||
...queryParams.value
|
||||
}, `mqttData_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
|
||||
getList()
|
||||
</script>
|
||||
287
src/views/worn/mqttDevice/index.vue
Normal file
287
src/views/worn/mqttDevice/index.vue
Normal file
@@ -0,0 +1,287 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="设备唯一标识" prop="devEui">
|
||||
<el-input
|
||||
v-model="queryParams.devEui"
|
||||
placeholder="请输入设备唯一标识"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备名称" prop="deviceName">
|
||||
<el-input
|
||||
v-model="queryParams.deviceName"
|
||||
placeholder="请输入设备名称"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属部门ID" prop="deptId">
|
||||
<el-input
|
||||
v-model="queryParams.deptId"
|
||||
placeholder="请输入所属部门ID"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="删除标识" prop="isDelete">
|
||||
<el-input
|
||||
v-model="queryParams.isDelete"
|
||||
placeholder="请输入删除标识"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['worn:mqttDevice:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="Edit"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['worn:mqttDevice:edit']"
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['worn:mqttDevice:remove']"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="Download"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['worn:mqttDevice:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="mqttDeviceList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="主键ID" align="center" prop="id" />
|
||||
<el-table-column label="设备唯一标识" align="center" prop="devEui" />
|
||||
<el-table-column label="设备名称" align="center" prop="deviceName" />
|
||||
<el-table-column label="设备类型" align="center" prop="deviceType" />
|
||||
<el-table-column label="所属部门ID" align="center" prop="deptId" />
|
||||
<el-table-column label="状态" align="center" prop="status" />
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="删除标识" align="center" prop="isDelete" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['worn:mqttDevice:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['worn:mqttDevice:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改MQTT设备对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="mqttDeviceRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="设备唯一标识" prop="devEui">
|
||||
<el-input v-model="form.devEui" placeholder="请输入设备唯一标识" />
|
||||
</el-form-item>
|
||||
<el-form-item label="设备名称" prop="deviceName">
|
||||
<el-input v-model="form.deviceName" placeholder="请输入设备名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属部门ID" prop="deptId">
|
||||
<el-input v-model="form.deptId" placeholder="请输入所属部门ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="删除标识" prop="isDelete">
|
||||
<el-input v-model="form.isDelete" placeholder="请输入删除标识" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="MqttDevice">
|
||||
import { listMqttDevice, getMqttDevice, delMqttDevice, addMqttDevice, updateMqttDevice } from "@/api/worn/mqttDevice"
|
||||
|
||||
const { proxy } = getCurrentInstance()
|
||||
|
||||
const mqttDeviceList = ref([])
|
||||
const open = ref(false)
|
||||
const loading = ref(true)
|
||||
const showSearch = ref(true)
|
||||
const ids = ref([])
|
||||
const single = ref(true)
|
||||
const multiple = ref(true)
|
||||
const total = ref(0)
|
||||
const title = ref("")
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
devEui: null,
|
||||
deviceName: null,
|
||||
deviceType: null,
|
||||
deptId: null,
|
||||
status: null,
|
||||
isDelete: null
|
||||
},
|
||||
rules: {
|
||||
devEui: [
|
||||
{ required: true, message: "设备唯一标识不能为空", trigger: "blur" }
|
||||
],
|
||||
}
|
||||
})
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data)
|
||||
|
||||
/** 查询MQTT设备列表 */
|
||||
function getList() {
|
||||
loading.value = true
|
||||
listMqttDevice(queryParams.value).then(response => {
|
||||
mqttDeviceList.value = response.rows
|
||||
total.value = response.total
|
||||
loading.value = false
|
||||
})
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
function cancel() {
|
||||
open.value = false
|
||||
reset()
|
||||
}
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
form.value = {
|
||||
id: null,
|
||||
devEui: null,
|
||||
deviceName: null,
|
||||
deviceType: null,
|
||||
deptId: null,
|
||||
status: null,
|
||||
remark: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
isDelete: null
|
||||
}
|
||||
proxy.resetForm("mqttDeviceRef")
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNum = 1
|
||||
getList()
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm("queryRef")
|
||||
handleQuery()
|
||||
}
|
||||
|
||||
// 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map(item => item.id)
|
||||
single.value = selection.length != 1
|
||||
multiple.value = !selection.length
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset()
|
||||
open.value = true
|
||||
title.value = "添加MQTT设备"
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset()
|
||||
const _id = row.id || ids.value
|
||||
getMqttDevice(_id).then(response => {
|
||||
form.value = response.data
|
||||
open.value = true
|
||||
title.value = "修改MQTT设备"
|
||||
})
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs["mqttDeviceRef"].validate(valid => {
|
||||
if (valid) {
|
||||
if (form.value.id != null) {
|
||||
updateMqttDevice(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("修改成功")
|
||||
open.value = false
|
||||
getList()
|
||||
})
|
||||
} else {
|
||||
addMqttDevice(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("新增成功")
|
||||
open.value = false
|
||||
getList()
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const _ids = row.id || ids.value
|
||||
proxy.$modal.confirm('是否确认删除MQTT设备编号为"' + _ids + '"的数据项?').then(function() {
|
||||
return delMqttDevice(_ids)
|
||||
}).then(() => {
|
||||
getList()
|
||||
proxy.$modal.msgSuccess("删除成功")
|
||||
}).catch(() => {})
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download('worn/mqttDevice/export', {
|
||||
...queryParams.value
|
||||
}, `mqttDevice_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
|
||||
getList()
|
||||
</script>
|
||||
290
src/views/worn/mqttEvent/index.vue
Normal file
290
src/views/worn/mqttEvent/index.vue
Normal file
@@ -0,0 +1,290 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="设备ID" prop="deviceId">
|
||||
<el-input
|
||||
v-model="queryParams.deviceId"
|
||||
placeholder="请输入设备ID"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="事件描述" prop="eventDesc">
|
||||
<el-input
|
||||
v-model="queryParams.eventDesc"
|
||||
placeholder="请输入事件描述"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="等级" prop="level">
|
||||
<el-input
|
||||
v-model="queryParams.level"
|
||||
placeholder="请输入等级"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="删除标识" prop="isDelete">
|
||||
<el-input
|
||||
v-model="queryParams.isDelete"
|
||||
placeholder="请输入删除标识"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['worn:mqttEvent:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="Edit"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['worn:mqttEvent:edit']"
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['worn:mqttEvent:remove']"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="Download"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['worn:mqttEvent:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="mqttEventList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="主键ID" align="center" prop="id" />
|
||||
<el-table-column label="设备ID" align="center" prop="deviceId" />
|
||||
<el-table-column label="事件类型" align="center" prop="eventType" />
|
||||
<el-table-column label="事件描述" align="center" prop="eventDesc" />
|
||||
<el-table-column label="等级" align="center" prop="level" />
|
||||
<el-table-column label="处理状态" align="center" prop="status" />
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="删除标识" align="center" prop="isDelete" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['worn:mqttEvent:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['worn:mqttEvent:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改设备事件对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="mqttEventRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="设备ID" prop="deviceId">
|
||||
<el-input v-model="form.deviceId" placeholder="请输入设备ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="事件描述" prop="eventDesc">
|
||||
<el-input v-model="form.eventDesc" placeholder="请输入事件描述" />
|
||||
</el-form-item>
|
||||
<el-form-item label="等级" prop="level">
|
||||
<el-input v-model="form.level" placeholder="请输入等级" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="删除标识" prop="isDelete">
|
||||
<el-input v-model="form.isDelete" placeholder="请输入删除标识" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="MqttEvent">
|
||||
import { listMqttEvent, getMqttEvent, delMqttEvent, addMqttEvent, updateMqttEvent } from "@/api/worn/mqttEvent"
|
||||
|
||||
const { proxy } = getCurrentInstance()
|
||||
|
||||
const mqttEventList = ref([])
|
||||
const open = ref(false)
|
||||
const loading = ref(true)
|
||||
const showSearch = ref(true)
|
||||
const ids = ref([])
|
||||
const single = ref(true)
|
||||
const multiple = ref(true)
|
||||
const total = ref(0)
|
||||
const title = ref("")
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
deviceId: null,
|
||||
eventType: null,
|
||||
eventDesc: null,
|
||||
level: null,
|
||||
status: null,
|
||||
isDelete: null
|
||||
},
|
||||
rules: {
|
||||
deviceId: [
|
||||
{ required: true, message: "设备ID不能为空", trigger: "blur" }
|
||||
],
|
||||
eventType: [
|
||||
{ required: true, message: "事件类型不能为空", trigger: "change" }
|
||||
],
|
||||
}
|
||||
})
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data)
|
||||
|
||||
/** 查询设备事件列表 */
|
||||
function getList() {
|
||||
loading.value = true
|
||||
listMqttEvent(queryParams.value).then(response => {
|
||||
mqttEventList.value = response.rows
|
||||
total.value = response.total
|
||||
loading.value = false
|
||||
})
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
function cancel() {
|
||||
open.value = false
|
||||
reset()
|
||||
}
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
form.value = {
|
||||
id: null,
|
||||
deviceId: null,
|
||||
eventType: null,
|
||||
eventDesc: null,
|
||||
level: null,
|
||||
status: null,
|
||||
remark: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
isDelete: null
|
||||
}
|
||||
proxy.resetForm("mqttEventRef")
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNum = 1
|
||||
getList()
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm("queryRef")
|
||||
handleQuery()
|
||||
}
|
||||
|
||||
// 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map(item => item.id)
|
||||
single.value = selection.length != 1
|
||||
multiple.value = !selection.length
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset()
|
||||
open.value = true
|
||||
title.value = "添加设备事件"
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset()
|
||||
const _id = row.id || ids.value
|
||||
getMqttEvent(_id).then(response => {
|
||||
form.value = response.data
|
||||
open.value = true
|
||||
title.value = "修改设备事件"
|
||||
})
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs["mqttEventRef"].validate(valid => {
|
||||
if (valid) {
|
||||
if (form.value.id != null) {
|
||||
updateMqttEvent(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("修改成功")
|
||||
open.value = false
|
||||
getList()
|
||||
})
|
||||
} else {
|
||||
addMqttEvent(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("新增成功")
|
||||
open.value = false
|
||||
getList()
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const _ids = row.id || ids.value
|
||||
proxy.$modal.confirm('是否确认删除设备事件编号为"' + _ids + '"的数据项?').then(function() {
|
||||
return delMqttEvent(_ids)
|
||||
}).then(() => {
|
||||
getList()
|
||||
proxy.$modal.msgSuccess("删除成功")
|
||||
}).catch(() => {})
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download('worn/mqttEvent/export', {
|
||||
...queryParams.value
|
||||
}, `mqttEvent_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
|
||||
getList()
|
||||
</script>
|
||||
332
src/views/worn/threshold/index.vue
Normal file
332
src/views/worn/threshold/index.vue
Normal file
@@ -0,0 +1,332 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="设备ID" prop="deviceId">
|
||||
<el-input
|
||||
v-model="queryParams.deviceId"
|
||||
placeholder="请输入设备ID"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="预警最小值" prop="warnMin">
|
||||
<el-input
|
||||
v-model="queryParams.warnMin"
|
||||
placeholder="请输入预警最小值"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="预警最大值" prop="warnMax">
|
||||
<el-input
|
||||
v-model="queryParams.warnMax"
|
||||
placeholder="请输入预警最大值"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="报警最小值" prop="alarmMin">
|
||||
<el-input
|
||||
v-model="queryParams.alarmMin"
|
||||
placeholder="请输入报警最小值"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="报警最大值" prop="alarmMax">
|
||||
<el-input
|
||||
v-model="queryParams.alarmMax"
|
||||
placeholder="请输入报警最大值"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="单位" prop="unit">
|
||||
<el-input
|
||||
v-model="queryParams.unit"
|
||||
placeholder="请输入单位"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否删除" prop="isDelete">
|
||||
<el-input
|
||||
v-model="queryParams.isDelete"
|
||||
placeholder="请输入是否删除"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['worn:threshold:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="Edit"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['worn:threshold:edit']"
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['worn:threshold:remove']"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="Download"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['worn:threshold:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="thresholdList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="主键ID" align="center" prop="id" />
|
||||
<el-table-column label="设备ID" align="center" prop="deviceId" />
|
||||
<el-table-column label="指标类型" align="center" prop="metricType" />
|
||||
<el-table-column label="预警最小值" align="center" prop="warnMin" />
|
||||
<el-table-column label="预警最大值" align="center" prop="warnMax" />
|
||||
<el-table-column label="报警最小值" align="center" prop="alarmMin" />
|
||||
<el-table-column label="报警最大值" align="center" prop="alarmMax" />
|
||||
<el-table-column label="单位" align="center" prop="unit" />
|
||||
<el-table-column label="状态" align="center" prop="status" />
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="是否删除" align="center" prop="isDelete" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['worn:threshold:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['worn:threshold:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改传感器阈值配置对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="thresholdRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="设备ID" prop="deviceId">
|
||||
<el-input v-model="form.deviceId" placeholder="请输入设备ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="预警最小值" prop="warnMin">
|
||||
<el-input v-model="form.warnMin" placeholder="请输入预警最小值" />
|
||||
</el-form-item>
|
||||
<el-form-item label="预警最大值" prop="warnMax">
|
||||
<el-input v-model="form.warnMax" placeholder="请输入预警最大值" />
|
||||
</el-form-item>
|
||||
<el-form-item label="报警最小值" prop="alarmMin">
|
||||
<el-input v-model="form.alarmMin" placeholder="请输入报警最小值" />
|
||||
</el-form-item>
|
||||
<el-form-item label="报警最大值" prop="alarmMax">
|
||||
<el-input v-model="form.alarmMax" placeholder="请输入报警最大值" />
|
||||
</el-form-item>
|
||||
<el-form-item label="单位" prop="unit">
|
||||
<el-input v-model="form.unit" placeholder="请输入单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="是否删除" prop="isDelete">
|
||||
<el-input v-model="form.isDelete" placeholder="请输入是否删除" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Threshold">
|
||||
import { listThreshold, getThreshold, delThreshold, addThreshold, updateThreshold } from "@/api/worn/threshold"
|
||||
|
||||
const { proxy } = getCurrentInstance()
|
||||
|
||||
const thresholdList = ref([])
|
||||
const open = ref(false)
|
||||
const loading = ref(true)
|
||||
const showSearch = ref(true)
|
||||
const ids = ref([])
|
||||
const single = ref(true)
|
||||
const multiple = ref(true)
|
||||
const total = ref(0)
|
||||
const title = ref("")
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
deviceId: null,
|
||||
metricType: null,
|
||||
warnMin: null,
|
||||
warnMax: null,
|
||||
alarmMin: null,
|
||||
alarmMax: null,
|
||||
unit: null,
|
||||
status: null,
|
||||
isDelete: null
|
||||
},
|
||||
rules: {
|
||||
deviceId: [
|
||||
{ required: true, message: "设备ID不能为空", trigger: "blur" }
|
||||
],
|
||||
metricType: [
|
||||
{ required: true, message: "指标类型不能为空", trigger: "change" }
|
||||
],
|
||||
}
|
||||
})
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data)
|
||||
|
||||
/** 查询传感器阈值配置列表 */
|
||||
function getList() {
|
||||
loading.value = true
|
||||
listThreshold(queryParams.value).then(response => {
|
||||
thresholdList.value = response.rows
|
||||
total.value = response.total
|
||||
loading.value = false
|
||||
})
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
function cancel() {
|
||||
open.value = false
|
||||
reset()
|
||||
}
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
form.value = {
|
||||
id: null,
|
||||
deviceId: null,
|
||||
metricType: null,
|
||||
warnMin: null,
|
||||
warnMax: null,
|
||||
alarmMin: null,
|
||||
alarmMax: null,
|
||||
unit: null,
|
||||
status: null,
|
||||
remark: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
isDelete: null
|
||||
}
|
||||
proxy.resetForm("thresholdRef")
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNum = 1
|
||||
getList()
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm("queryRef")
|
||||
handleQuery()
|
||||
}
|
||||
|
||||
// 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map(item => item.id)
|
||||
single.value = selection.length != 1
|
||||
multiple.value = !selection.length
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset()
|
||||
open.value = true
|
||||
title.value = "添加传感器阈值配置"
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset()
|
||||
const _id = row.id || ids.value
|
||||
getThreshold(_id).then(response => {
|
||||
form.value = response.data
|
||||
open.value = true
|
||||
title.value = "修改传感器阈值配置"
|
||||
})
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs["thresholdRef"].validate(valid => {
|
||||
if (valid) {
|
||||
if (form.value.id != null) {
|
||||
updateThreshold(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("修改成功")
|
||||
open.value = false
|
||||
getList()
|
||||
})
|
||||
} else {
|
||||
addThreshold(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("新增成功")
|
||||
open.value = false
|
||||
getList()
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const _ids = row.id || ids.value
|
||||
proxy.$modal.confirm('是否确认删除传感器阈值配置编号为"' + _ids + '"的数据项?').then(function() {
|
||||
return delThreshold(_ids)
|
||||
}).then(() => {
|
||||
getList()
|
||||
proxy.$modal.msgSuccess("删除成功")
|
||||
}).catch(() => {})
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download('worn/threshold/export', {
|
||||
...queryParams.value
|
||||
}, `threshold_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
|
||||
getList()
|
||||
</script>
|
||||
Reference in New Issue
Block a user