1、命令行增加常用指令
2、部分界面做了优化
This commit is contained in:
parent
e87818248a
commit
2004255275
29
sec-api/src/main/java/com/imdroid/secapi/dto/DeviceCmd.java
Normal file
29
sec-api/src/main/java/com/imdroid/secapi/dto/DeviceCmd.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package com.imdroid.secapi.dto;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GNSS收发统计消息,每个工作周期结束的时候统计一次
|
||||||
|
*
|
||||||
|
* @author LiGang
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName(value = "devicecmd")
|
||||||
|
public class DeviceCmd {
|
||||||
|
// device type definition
|
||||||
|
public static final short TYPE_GNSS = 0;
|
||||||
|
public static final short TYPE_DTU = 1;
|
||||||
|
public static final short TYPE_MPU = 2;
|
||||||
|
public static final short TYPE_DEBUG = 3;
|
||||||
|
|
||||||
|
public static final short MAX_CMD_LEN = 800;
|
||||||
|
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
Long id;
|
||||||
|
String name;
|
||||||
|
Short type;
|
||||||
|
String content;
|
||||||
|
}
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
package com.imdroid.secapi.dto;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface DeviceCmdMapper extends BaseMapper<DeviceCmd> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,18 +1,17 @@
|
|||||||
package com.imdroid.beidou.controller;
|
package com.imdroid.beidou.controller;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.imdroid.beidou.common.HttpResult;
|
import com.imdroid.beidou.common.HttpResult;
|
||||||
import com.imdroid.secapi.client.HttpResp;
|
import com.imdroid.secapi.client.HttpResp;
|
||||||
import com.imdroid.secapi.client.RtcmClient;
|
import com.imdroid.secapi.client.RtcmClient;
|
||||||
import com.imdroid.secapi.dto.GnssMsg;
|
import com.imdroid.secapi.dto.*;
|
||||||
import com.imdroid.secapi.dto.GnssMsgMapper;
|
|
||||||
import com.imdroid.secapi.utils.HexUtil;
|
import com.imdroid.secapi.utils.HexUtil;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.ui.Model;
|
import org.springframework.ui.Model;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpSession;
|
import javax.servlet.http.HttpSession;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
@ -26,6 +25,8 @@ public class CmdLineController extends BasicController{
|
|||||||
RtcmClient rtcmClient;
|
RtcmClient rtcmClient;
|
||||||
@Autowired
|
@Autowired
|
||||||
GnssMsgMapper msgMapper;
|
GnssMsgMapper msgMapper;
|
||||||
|
@Autowired
|
||||||
|
DeviceCmdMapper deviceCmdMapper;
|
||||||
|
|
||||||
/**** 推送页面 *****/
|
/**** 推送页面 *****/
|
||||||
@RequestMapping("/page/cmd_line")
|
@RequestMapping("/page/cmd_line")
|
||||||
@ -35,6 +36,13 @@ public class CmdLineController extends BasicController{
|
|||||||
return "/page/cmd_line";
|
return "/page/cmd_line";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/page/table/frequent_cmd")
|
||||||
|
public String frequentCmd(Model m, HttpSession session) {
|
||||||
|
initModel(m, session);
|
||||||
|
|
||||||
|
return "/page/table/frequent_cmd";
|
||||||
|
}
|
||||||
|
|
||||||
/****** 发送指令 *******/
|
/****** 发送指令 *******/
|
||||||
@PostMapping(value = "/gnss/config_cmd")
|
@PostMapping(value = "/gnss/config_cmd")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@ -83,4 +91,40 @@ public class CmdLineController extends BasicController{
|
|||||||
|
|
||||||
return HttpResult.success(txInfo);
|
return HttpResult.success(txInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/gnss/cmd/list")
|
||||||
|
@ResponseBody
|
||||||
|
public JSONObject list(int page, int limit) {
|
||||||
|
Page<DeviceCmd> pageable = new Page<>(page, limit);
|
||||||
|
IPage<DeviceCmd> cs = deviceCmdMapper.selectPage(pageable, null);
|
||||||
|
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put("code", 0);
|
||||||
|
jsonObject.put("msg", "");
|
||||||
|
jsonObject.put("count", cs.getTotal());
|
||||||
|
jsonObject.put("data", cs.getRecords());
|
||||||
|
return jsonObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/gnss/cmd/add")
|
||||||
|
@ResponseBody
|
||||||
|
public String add(@RequestBody JSONObject object) throws Exception {
|
||||||
|
DeviceCmd deviceCmd = JSONObject.toJavaObject(object,DeviceCmd.class);
|
||||||
|
int num = deviceCmdMapper.insert(deviceCmd);
|
||||||
|
|
||||||
|
if (num == 0) {
|
||||||
|
return HttpResult.failed();
|
||||||
|
} else{
|
||||||
|
return HttpResult.ok();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/gnss/cmd/delete")
|
||||||
|
@ResponseBody
|
||||||
|
public String delete(@RequestParam int del_id) throws Exception {
|
||||||
|
int num = deviceCmdMapper.deleteById(del_id);
|
||||||
|
if (num == 0) {
|
||||||
|
return HttpResult.failed();
|
||||||
|
} else return HttpResult.ok();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -57,4 +57,16 @@ public class WebSocketServer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void sendMessage(HttpSession httpSession, String msg) {
|
||||||
|
Session session = webSocketSet.get(httpSession.getId());
|
||||||
|
if(session != null){
|
||||||
|
try {
|
||||||
|
session.getBasicRemote().sendText(msg);
|
||||||
|
}
|
||||||
|
catch (Exception e){
|
||||||
|
log.error("websocket send msg error:", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -246,3 +246,14 @@ CREATE TABLE IF NOT EXISTS `fwdrecords` (
|
|||||||
`fwd_group_id` varchar(64) DEFAULT NULL,
|
`fwd_group_id` varchar(64) DEFAULT NULL,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
/***
|
||||||
|
常用指令
|
||||||
|
*/
|
||||||
|
CREATE TABLE IF NOT EXISTS `devicecmd` (
|
||||||
|
`id` bigint AUTO_INCREMENT,
|
||||||
|
`name` varchar(80) NOT NULL,
|
||||||
|
`type` smallint NOT NULL,
|
||||||
|
`content` varchar(800) NOT NULL,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
@ -43,7 +43,7 @@
|
|||||||
<div class="layui-inline">
|
<div class="layui-inline">
|
||||||
<label class="layui-form-label">指令类型</label>
|
<label class="layui-form-label">指令类型</label>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
<select name="cmd_type" lay-filter="cmd_type">
|
<select name="cmd_type" id="cmd_type" lay-filter="cmd_type">
|
||||||
<option value="0">GNSS</option>
|
<option value="0">GNSS</option>
|
||||||
<option value="1">DTU</option>
|
<option value="1">DTU</option>
|
||||||
<option value="2">MPU</option>
|
<option value="2">MPU</option>
|
||||||
@ -56,6 +56,7 @@
|
|||||||
<div class="layui-input-block">
|
<div class="layui-input-block">
|
||||||
<button class="layui-btn" lay-submit="" lay-filter="send_btn">发送</button>
|
<button class="layui-btn" lay-submit="" lay-filter="send_btn">发送</button>
|
||||||
<button class="layui-btn" lay-submit="" lay-filter="clear_btn">清屏</button>
|
<button class="layui-btn" lay-submit="" lay-filter="clear_btn">清屏</button>
|
||||||
|
<button class="layui-btn" lay-submit="" lay-filter="frequent_btn">常用指令</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -63,7 +64,6 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script src="../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
|
<script src="../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
|
||||||
@ -111,7 +111,31 @@
|
|||||||
rxWin.val("");
|
rxWin.val("");
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
form.on('submit(frequent_btn)', function (data) {
|
||||||
|
var index = layer.open({
|
||||||
|
title: '常用指令',
|
||||||
|
type: 2,
|
||||||
|
shade: 0.2,
|
||||||
|
maxmin:true,
|
||||||
|
shadeClose: true,
|
||||||
|
offset: 'rb',
|
||||||
|
anim: 2,
|
||||||
|
area: ['70%', '100%'],
|
||||||
|
content: '../page/table/frequent_cmd',
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function setCmd(type, content){
|
||||||
|
var form = layui.form
|
||||||
|
, $ = layui.$;
|
||||||
|
console.log(type);
|
||||||
|
$('#cmd_type').val(type);
|
||||||
|
$('#tx_win').val(content);
|
||||||
|
form.render();
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- Web socket operations-->
|
<!-- Web socket operations-->
|
||||||
@ -160,12 +184,13 @@
|
|||||||
layui.layer.alert("Open web socket failed!");
|
layui.layer.alert("Open web socket failed!");
|
||||||
}
|
}
|
||||||
websocket.onclose = function (){
|
websocket.onclose = function (){
|
||||||
|
console.log("Socket close");
|
||||||
rxWin.val(rxWin.val()+"websocket closed!");
|
rxWin.val(rxWin.val()+"websocket closed!");
|
||||||
clearInterval(intervalId);
|
clearInterval(intervalId);
|
||||||
}
|
}
|
||||||
//接收信息
|
//接收信息
|
||||||
websocket.onmessage = function (event) {
|
websocket.onmessage = function (event) {
|
||||||
console.log(event.data);
|
//console.log(event.data);
|
||||||
rxWin.val(rxWin.val()+event.data + "\r\n");
|
rxWin.val(rxWin.val()+event.data + "\r\n");
|
||||||
rxWin.scrollTop = rxWin.scrollHeight;
|
rxWin.scrollTop = rxWin.scrollHeight;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,12 +12,7 @@
|
|||||||
<body>
|
<body>
|
||||||
<div class="layuimini-container">
|
<div class="layuimini-container">
|
||||||
<div class="layuimini-main">
|
<div class="layuimini-main">
|
||||||
<div class="layui-card top-panel">
|
<table class="layui-hide" id="forwardParaTableId" lay-filter="forwardParaTableFilter"></table>
|
||||||
<div class="layui-card-header">代理信息</div>
|
|
||||||
<div class="layui-card-body">
|
|
||||||
<table class="layui-hide" id="forwardParaTableId" lay-filter="forwardParaTableFilter"></table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -34,7 +29,6 @@
|
|||||||
table.render({
|
table.render({
|
||||||
elem: '#forwardParaTableId',
|
elem: '#forwardParaTableId',
|
||||||
url: '/fwd/agents',
|
url: '/fwd/agents',
|
||||||
toolbar: '#toolbarTable',
|
|
||||||
cols: [[
|
cols: [[
|
||||||
{field: 'name', title: '名称'},
|
{field: 'name', title: '名称'},
|
||||||
{field: 'description', title: '描述'},
|
{field: 'description', title: '描述'},
|
||||||
|
|||||||
@ -12,12 +12,7 @@
|
|||||||
<body>
|
<body>
|
||||||
<div class="layuimini-container">
|
<div class="layuimini-container">
|
||||||
<div class="layuimini-main">
|
<div class="layuimini-main">
|
||||||
<div class="layui-card top-panel">
|
<table class="layui-hide" id="forwardParaTableId" lay-filter="forwardParaTableFilter"></table>
|
||||||
<div class="layui-card-header">推送记录</div>
|
|
||||||
<div class="layui-card-body">
|
|
||||||
<table class="layui-hide" id="forwardParaTableId" lay-filter="forwardParaTableFilter"></table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -82,11 +82,6 @@
|
|||||||
table.render({
|
table.render({
|
||||||
elem: '#currentTableId',
|
elem: '#currentTableId',
|
||||||
url: '/gnss/data/list_calc',
|
url: '/gnss/data/list_calc',
|
||||||
defaultToolbar: ['filter', 'exports', 'print', {
|
|
||||||
title: '提示',
|
|
||||||
layEvent: 'LAYTABLE_TIPS',
|
|
||||||
icon: 'layui-icon-tips'
|
|
||||||
}],
|
|
||||||
cols: [[
|
cols: [[
|
||||||
{field: 'deviceid', title: '设备号'},
|
{field: 'deviceid', title: '设备号'},
|
||||||
{field: 'createtime', title: '上报时间', width:'18%', templet: "<div>{{layui.util.toDateString(d.createtime, 'yyyy-MM-dd HH:mm:ss')}}</div>"},
|
{field: 'createtime', title: '上报时间', width:'18%', templet: "<div>{{layui.util.toDateString(d.createtime, 'yyyy-MM-dd HH:mm:ss')}}</div>"},
|
||||||
|
|||||||
@ -39,7 +39,6 @@
|
|||||||
<div class="layui-inline">
|
<div class="layui-inline">
|
||||||
<label class="layui-form-label">所属部门</label>
|
<label class="layui-form-label">所属部门</label>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
</select>
|
|
||||||
<select name="tenantname" id="tenantname" lay-search="">
|
<select name="tenantname" id="tenantname" lay-search="">
|
||||||
<option value="">全部</option>
|
<option value="">全部</option>
|
||||||
<option th:each="item : ${tenant_list}" th:text="${item.name}" th:value="${item.name}"></option>
|
<option th:each="item : ${tenant_list}" th:text="${item.name}" th:value="${item.name}"></option>
|
||||||
|
|||||||
@ -0,0 +1,152 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>常用指令</title>
|
||||||
|
<meta name="renderer" content="webkit">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||||
|
<link rel="stylesheet" href="../../lib/layui-v2.6.3/css/layui.css" media="all">
|
||||||
|
<link rel="stylesheet" href="../../css/public.css" media="all">
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="layui-form layuimini-form">
|
||||||
|
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
|
||||||
|
|
||||||
|
<div class="layui-card top-panel">
|
||||||
|
<div class="layui-card-body">
|
||||||
|
<input type="hidden" name="id" id="id">
|
||||||
|
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<div class="layui-inline">
|
||||||
|
<label class="layui-form-label required">指令名称</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" name="name" id="name" lay-verify="required" lay-reqtext="不能为空" class="layui-input">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-inline">
|
||||||
|
<label class="layui-form-label">指令类型</label>
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<select name="type" lay-filter="type">
|
||||||
|
<option value="0">GNSS</option>
|
||||||
|
<option value="1">DTU</option>
|
||||||
|
<option value="2">MPU</option>
|
||||||
|
<option value="3">DEBUG</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label required">指令</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<textarea name="content" id="content" class="layui-textarea"></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">保存</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="../../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
|
||||||
|
|
||||||
|
<script type="text/html" id="currentTableBar">
|
||||||
|
<a class="layui-btn layui-btn-normal layui-btn-xs " lay-event="use">使用</a>
|
||||||
|
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script th:inline="none">
|
||||||
|
layui.use(['form', 'table'], function () {
|
||||||
|
var $ = layui.$,
|
||||||
|
form = layui.form,
|
||||||
|
table = layui.table;
|
||||||
|
var iframeIndex = parent.layer.getFrameIndex(window.name);
|
||||||
|
/**
|
||||||
|
* 初始化表单,要加上,不然刷新部分组件可能会不加载
|
||||||
|
*/
|
||||||
|
form.render();
|
||||||
|
|
||||||
|
table.render({
|
||||||
|
elem: '#currentTableId',
|
||||||
|
url: '/gnss/cmd/list',
|
||||||
|
cols: [[
|
||||||
|
{field: 'name', title: '指令名称'},
|
||||||
|
{field: 'type', title: '类型',templet: '#typeTrans'},
|
||||||
|
{field: 'content', title: '指令',width:'50%'},
|
||||||
|
{title: '操作', toolbar: '#currentTableBar', align: "center", minWidth: 120}
|
||||||
|
]],
|
||||||
|
limits: [10, 15, 20, 25, 50, 100],
|
||||||
|
limit: 10,
|
||||||
|
page: true,
|
||||||
|
skin: 'line'
|
||||||
|
});
|
||||||
|
|
||||||
|
table.on('tool(currentTableFilter)', function (obj) {
|
||||||
|
var data = obj.data;
|
||||||
|
if (obj.event === 'use') {
|
||||||
|
parent.setCmd(data.type, data.content);
|
||||||
|
parent.layer.close(iframeIndex);
|
||||||
|
}
|
||||||
|
else if (obj.event === 'delete') {
|
||||||
|
layer.confirm('确定删除'+data.name+"?", function(index){
|
||||||
|
$.ajax({
|
||||||
|
type:"POST",
|
||||||
|
url:"/gnss/cmd/delete",
|
||||||
|
data:{
|
||||||
|
'del_id':data.id
|
||||||
|
},
|
||||||
|
success: function (data) {
|
||||||
|
//data是cotroller相应处理函数的返回值
|
||||||
|
table.reload('currentTableId');
|
||||||
|
},
|
||||||
|
error: function () {
|
||||||
|
console.log("ajax error");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
layer.close(index);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
form.on('submit(saveBtn)', function (data) {
|
||||||
|
$.ajax({
|
||||||
|
type:"POST",
|
||||||
|
url:"/gnss/cmd/add",
|
||||||
|
contentType: "application/json;charset=UTF-8",
|
||||||
|
data: JSON.stringify(data.field),
|
||||||
|
success: function (result) {
|
||||||
|
table.reload('currentTableId');
|
||||||
|
},
|
||||||
|
error: function () {
|
||||||
|
console.log("ajax error");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script type="text/html" id="typeTrans">
|
||||||
|
{{# if(d.type == 0){ }}
|
||||||
|
<span>GNSS</span>
|
||||||
|
{{# } else if(d.type == 1){ }}
|
||||||
|
<span >DTU</span>
|
||||||
|
{{# } else if(d.type == 2){ }}
|
||||||
|
<span >MPU</span>
|
||||||
|
{{# } else { }}
|
||||||
|
<span >DEBUG</span>
|
||||||
|
{{# } }}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -47,7 +47,6 @@
|
|||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label required">所属部门</label>
|
<label class="layui-form-label required">所属部门</label>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
</select>
|
|
||||||
<select name="tenantname" id="tenantname" lay-verify="required" lay-search="">
|
<select name="tenantname" id="tenantname" lay-verify="required" lay-search="">
|
||||||
<option th:each="item : ${tenant_list}" th:text="${item.name}" th:value="${item.name}"></option>
|
<option th:each="item : ${tenant_list}" th:text="${item.name}" th:value="${item.name}"></option>
|
||||||
</select>
|
</select>
|
||||||
@ -62,7 +61,6 @@
|
|||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label required">基本参数组</label>
|
<label class="layui-form-label required">基本参数组</label>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
</select>
|
|
||||||
<select name="group_id" id="group_id" lay-verify="required" lay-search="">
|
<select name="group_id" id="group_id" lay-verify="required" lay-search="">
|
||||||
<option th:each="item : ${gnss_group_list}" th:text="${item.id}" th:value="${item.id}"></option>
|
<option th:each="item : ${gnss_group_list}" th:text="${item.id}" th:value="${item.id}"></option>
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@ -30,7 +30,6 @@
|
|||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label required">告警类型</label>
|
<label class="layui-form-label required">告警类型</label>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
</select>
|
|
||||||
<select name="type" id="type" lay-verify="required" lay-search="">
|
<select name="type" id="type" lay-verify="required" lay-search="">
|
||||||
<option th:each="item : ${warn_map}" th:text="${item.value}" th:value="${item.key}"></option>
|
<option th:each="item : ${warn_map}" th:text="${item.value}" th:value="${item.key}"></option>
|
||||||
</select>
|
</select>
|
||||||
@ -59,7 +58,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<script src="../../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
|
<script src="../../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
|
||||||
<script>
|
<script>
|
||||||
layui.use(['form'], function () {
|
layui.use(['form'], function () {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user