|
@@ -0,0 +1,169 @@
|
|
|
|
+<template>
|
|
|
|
+ <div class="qpage">
|
|
|
|
+ <el-form :inline="true" :model="queryForm" class="query-form-inline" label-width="auto">
|
|
|
|
+ <el-form-item label=" ">
|
|
|
|
+ <el-input v-model="queryForm.deviceKey" placeholder="请输入设备名/编码" clearable class="edit-form-item"/>
|
|
|
|
+ </el-form-item>
|
|
|
|
+
|
|
|
|
+ <el-form-item>
|
|
|
|
+ <el-button type="primary" :loading="isQuerying" @click="queryHandle">检索</el-button>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+
|
|
|
|
+ <div class="qpage-body">
|
|
|
|
+ <CrudTable
|
|
|
|
+ ref="crudTable"
|
|
|
|
+ page-info-opts="total, prev, pager, next,sizes"
|
|
|
|
+ url="/base/device/query"
|
|
|
|
+ :pageSize="20"
|
|
|
|
+ >
|
|
|
|
+ <template #toolGroup>
|
|
|
|
+ <el-button type="primary" icon="plus" @click="openEditHandle()">新增</el-button>
|
|
|
|
+
|
|
|
|
+ </template>
|
|
|
|
+ <template #tabColumns={indexGenerate}>
|
|
|
|
+ <el-table-column type="index" :index="indexGenerate" label="序号" width="60" align="center"/>
|
|
|
|
+ <el-table-column prop="deviceCode" label="编号" width="120" />
|
|
|
|
+ <el-table-column prop="deviceName" label="设备名" width="160" />
|
|
|
|
+ <el-table-column prop="deviceType" label="设备类型" width="160" />
|
|
|
|
+ <el-table-column prop="deviceModel" label="规格型号" width="160" />
|
|
|
|
+ <el-table-column prop="factory" label="厂家" width="120" />
|
|
|
|
+ <el-table-column prop="serialNum" label="设备序号" width="120" />
|
|
|
|
+ <el-table-column prop="onlineIf" label="是否在线" width="100" align="center">
|
|
|
|
+ <template #default="scope">
|
|
|
|
+ <el-icon v-if="scope.row.onlineIf" size="20" color="#00b600"><CircleCheckFilled /></el-icon>
|
|
|
|
+ <div v-else>否</div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column prop="heartbeatLast" label="最后心跳" width="160" />
|
|
|
|
+ <el-table-column prop="oper" label="操作" width="160" fixed="right">
|
|
|
|
+ <template #default="scope">
|
|
|
|
+ <div class="tool-column">
|
|
|
|
+ <el-button type="primary" icon="edit" size="small" @click="openEditHandle(scope.row)">编辑</el-button>
|
|
|
|
+
|
|
|
|
+ <el-button type="warning" icon="delete" size="small" @click="delHandle(scope.row)">删除</el-button>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </template>
|
|
|
|
+
|
|
|
|
+ </CrudTable>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <el-dialog v-model="editDialogShow" title="数据编辑" :close-on-click-modal="false"
|
|
|
|
+ :destroy-on-close="true"
|
|
|
|
+ >
|
|
|
|
+ <DeviceMgrEdit ref="editWin" :record="crtEditRecord"/>
|
|
|
|
+ <template #footer>
|
|
|
|
+ <span class="dialog-footer">
|
|
|
|
+ <el-button @click="beforeCloseHandle('cancel')">取消</el-button>
|
|
|
|
+ <el-button type="primary" @click="beforeCloseHandle('sure')">
|
|
|
|
+ 确定
|
|
|
|
+ </el-button>
|
|
|
|
+ </span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script setup>
|
|
|
|
+ import {reactive,ref} from 'vue'
|
|
|
|
+ import CrudTable from "../../components/crudtable/CrudTable.vue"
|
|
|
|
+ import DeviceMgrEdit from "./DeviceMgrEdit.vue"
|
|
|
|
+ import deviceMgrAPI from "../../api/deviceMgr.js"
|
|
|
|
+ import {ElMessageBox,ElMessage} from 'element-plus'
|
|
|
|
+
|
|
|
|
+ const crudTable=ref(null)
|
|
|
|
+
|
|
|
|
+ const isQuerying=ref(false)
|
|
|
|
+
|
|
|
|
+ const editDialogShow=ref(false)
|
|
|
|
+
|
|
|
|
+ const crtEditRecord=ref(null)
|
|
|
|
+
|
|
|
|
+ const queryForm = reactive({
|
|
|
|
+ deviceKey: ''
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ const queryHandle=()=>{
|
|
|
|
+ isQuerying.value=true
|
|
|
|
+ crudTable.value.query(queryForm).then(resp=>{
|
|
|
|
+ isQuerying.value=false
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ const delHandle=(record)=>{
|
|
|
|
+ ElMessageBox.confirm(
|
|
|
|
+ '确定要删除该记录吗?',
|
|
|
|
+ '操作确认',
|
|
|
|
+ {
|
|
|
|
+ confirmButtonText:'确定',
|
|
|
|
+ cancelButtonText:'取消',
|
|
|
|
+ type: 'warning'
|
|
|
|
+ }
|
|
|
|
+ ).then(()=>{
|
|
|
|
+ deviceMgrAPI.del({deviceId:record.deviceId}).then(resp=>{
|
|
|
|
+ if(resp.code!=0){
|
|
|
|
+ ElMessage.error(resp.msg)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ ElMessage.success('操作成功')
|
|
|
|
+ queryHandle()
|
|
|
|
+
|
|
|
|
+ }).catch(err=>{
|
|
|
|
+ ElMessage.error(err||'操作失败')
|
|
|
|
+ })
|
|
|
|
+ }).catch(()=>{
|
|
|
|
+ console.log('cancel del')
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ const editWin=ref(null)
|
|
|
|
+
|
|
|
|
+ const openEditHandle=(record)=>{
|
|
|
|
+ editDialogShow.value=true
|
|
|
|
+ crtEditRecord.value=record
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ const beforeCloseHandle=async (tag)=>{
|
|
|
|
+ if(tag==='cancel'){
|
|
|
|
+ editDialogShow.value=false
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ /* editWin.value.submitForm().then(()=>{
|
|
|
|
+ editDialogShow.value=false
|
|
|
|
+ queryHandle()
|
|
|
|
+ }) */
|
|
|
|
+ try{
|
|
|
|
+ await editWin.value.submitForm()
|
|
|
|
+ editDialogShow.value=false
|
|
|
|
+ queryHandle()
|
|
|
|
+ }
|
|
|
|
+ catch(err){
|
|
|
|
+ console.log(err)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style scoped>
|
|
|
|
+ @import url('../../assets/css/qpage.css');
|
|
|
|
+
|
|
|
|
+ .edit-form-item{
|
|
|
|
+ width:260px;
|
|
|
|
+ }
|
|
|
|
+</style>
|