346 lines
10 KiB
QML
346 lines
10 KiB
QML
|
|
import QtQuick
|
|||
|
|
import "./common"
|
|||
|
|
MainWinForm {
|
|||
|
|
id: self
|
|||
|
|
anchors.centerIn: parent
|
|||
|
|
width: parent.width
|
|||
|
|
height: parent.height
|
|||
|
|
clip: true
|
|||
|
|
Alert{id: alert;z:99}
|
|||
|
|
Component.onCompleted: getCodecList()
|
|||
|
|
|
|||
|
|
Connections{
|
|||
|
|
target: self
|
|||
|
|
|
|||
|
|
// 关闭
|
|||
|
|
function onCloseClick()
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
close()
|
|||
|
|
}
|
|||
|
|
// 登出
|
|||
|
|
function onLogoutClick()
|
|||
|
|
{
|
|||
|
|
if(lstRunning)
|
|||
|
|
_command.stopLstCmd()
|
|||
|
|
g_curPro = {"id":"","name":"","operator":"", "date":"","remark":"", "path": "", "tsdb_name":"", "test_info":"", "history":""}
|
|||
|
|
g_session = {"id":"","name":"","password":"","role":"","role_name":"","valid":""}
|
|||
|
|
root.visible = false
|
|||
|
|
login.show()
|
|||
|
|
}
|
|||
|
|
// 弹出创建工程窗口
|
|||
|
|
function onCreateProClick()
|
|||
|
|
{
|
|||
|
|
_createDialog.visible = true
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function onDeleteDialogAcceptClick()
|
|||
|
|
{
|
|||
|
|
var pro = proModel.get(_proTableView.currentRow)
|
|||
|
|
var result = backend_proxy.delete_project(pro.id)
|
|||
|
|
if(result.code !== 200)
|
|||
|
|
{
|
|||
|
|
alert.show(result.msg)
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
if(pro.id == g_curPro.id)
|
|||
|
|
{
|
|||
|
|
g_curPro = {"id":"","name":"","operator":"", "date":"","remark":"", "path": "", "tsdb_name":"", "test_info":"", "history":""}
|
|||
|
|
}
|
|||
|
|
result = backend_proxy.get_projects()
|
|||
|
|
if(result.code === 200)
|
|||
|
|
{
|
|||
|
|
refreshProData(result.data)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function onOpenDialogAcceptClick()
|
|||
|
|
{
|
|||
|
|
if(_proTableView.currentRow < 0)
|
|||
|
|
return
|
|||
|
|
var pro = proModel.get(_proTableView.currentRow)
|
|||
|
|
if(!pro)
|
|||
|
|
return
|
|||
|
|
g_curPro = {"id":pro.id,"name":pro.name,"operator":pro.operator, "date":pro.date,"remark":pro.remark, "path": pro.path, "tsdb_name":pro.tsdb_name, "test_info":pro.test_info, "history":pro.history}
|
|||
|
|
var result = backend_proxy.selected_project(g_curPro.id)
|
|||
|
|
if(result.code !== 200)
|
|||
|
|
{
|
|||
|
|
alert.show(result.msg)
|
|||
|
|
}
|
|||
|
|
if(g_curPro.test_info != "" && g_curPro.test_info != undefined)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
g_proData = JSON.parse(g_curPro.test_info)
|
|||
|
|
}
|
|||
|
|
catch(e){
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if(g_curPro.history != "" && g_curPro.history != undefined)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
g_proHistoryData = JSON.parse(g_curPro.history)
|
|||
|
|
}
|
|||
|
|
catch(e){
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
openCom()
|
|||
|
|
updateGrafana()
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function is_serial_port_open() {
|
|||
|
|
var result = backend_proxy.is_serial_port_open()
|
|||
|
|
if(result.code !== 200)
|
|||
|
|
{
|
|||
|
|
alert.show(result.msg)
|
|||
|
|
}
|
|||
|
|
return result.data
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 创建工程
|
|||
|
|
function onCreateDialogAcceptClick()
|
|||
|
|
{
|
|||
|
|
var json = {"name":_tfProName.text, "operator": g_session.id, "remark": _tfRemark.text}
|
|||
|
|
var result = backend_proxy.add_project(JSON.stringify(json))
|
|||
|
|
if(result.code === 200)
|
|||
|
|
{
|
|||
|
|
g_curPro = result.data
|
|||
|
|
result = backend_proxy.selected_project(g_curPro.id)
|
|||
|
|
if(result.code === 200)
|
|||
|
|
{
|
|||
|
|
if(g_curPro.remark != "")
|
|||
|
|
g_proData = JSON.parse(g_curPro.remark)
|
|||
|
|
openCom()
|
|||
|
|
updateGrafana()
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
alert.show(result.msg)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
alert.show(result.msg)
|
|||
|
|
}
|
|||
|
|
_tfProName.text = ""
|
|||
|
|
_tfRemark.text = ""
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 删除工程窗口
|
|||
|
|
function onDeleteProClick()
|
|||
|
|
{
|
|||
|
|
var result = backend_proxy.get_projects()
|
|||
|
|
if(result.code === 200)
|
|||
|
|
{
|
|||
|
|
refreshProData(result.data)
|
|||
|
|
_openDialog.title = "删除工程"
|
|||
|
|
_openDialog.visible = true
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
alert.show(result.msg)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 获取工程打开窗口
|
|||
|
|
function onOpenProClick()
|
|||
|
|
{
|
|||
|
|
var result = backend_proxy.get_projects()
|
|||
|
|
if(result.code === 200)
|
|||
|
|
{
|
|||
|
|
refreshProData(result.data)
|
|||
|
|
_openDialog.title = "打开工程"
|
|||
|
|
_openDialog.visible = true
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
alert.show(result.msg)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 打开串口
|
|||
|
|
function openCom()
|
|||
|
|
{
|
|||
|
|
var result = backend_proxy.open_serial_port()
|
|||
|
|
if(result.code !== 200)
|
|||
|
|
{
|
|||
|
|
alert.show(result.msg)
|
|||
|
|
_statusToolbar.setComStatus(false)
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
_statusToolbar.setComStatus(true)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
property string pattern: "_(.*?)\\."
|
|||
|
|
function getCodecList()
|
|||
|
|
{
|
|||
|
|
var result = backend_proxy.get_codec_lists()
|
|||
|
|
|
|||
|
|
if(result.code === 200)
|
|||
|
|
{
|
|||
|
|
var checks = [""]
|
|||
|
|
var codecs = [""]
|
|||
|
|
var dpchecks = ["无"]
|
|||
|
|
var dpcodecs = ["无"]
|
|||
|
|
var data = result.data
|
|||
|
|
var regExp = new RegExp(pattern)
|
|||
|
|
var match = []
|
|||
|
|
for(var i = 0; i < data.length; ++i)
|
|||
|
|
{
|
|||
|
|
var item = data[i]
|
|||
|
|
|
|||
|
|
if(item.indexOf("check_") > -1)
|
|||
|
|
{
|
|||
|
|
checks.push(item)
|
|||
|
|
|
|||
|
|
match = regExp.exec(item)
|
|||
|
|
if(match.length === 2)
|
|||
|
|
dpchecks.push(match[1])
|
|||
|
|
}
|
|||
|
|
else if(item.indexOf("codec_") > -1)
|
|||
|
|
{
|
|||
|
|
codecs.push(item)
|
|||
|
|
match = regExp.exec(item)
|
|||
|
|
if(match.length === 2)
|
|||
|
|
dpcodecs.push(match[1])
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
check_lists = checks
|
|||
|
|
codec_lists = codecs
|
|||
|
|
codec_display_lists = dpcodecs
|
|||
|
|
check_display_lists = dpchecks
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
alert.show(result.msg)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
function defaultCreatePro()
|
|||
|
|
{
|
|||
|
|
var json = {"name": g_settingProFirstName + new Date().getTime().toString(), "operator": g_session.id, "remark": ""}
|
|||
|
|
var result = backend_proxy.add_project(JSON.stringify(json))
|
|||
|
|
if(result.code === 200)
|
|||
|
|
{
|
|||
|
|
g_curPro = result.data
|
|||
|
|
result = backend_proxy.selected_project(g_curPro.id)
|
|||
|
|
if(result.code === 200)
|
|||
|
|
{
|
|||
|
|
if(g_curPro.remark != "")
|
|||
|
|
g_proData = JSON.parse(g_curPro.remark)
|
|||
|
|
updateGrafana()
|
|||
|
|
update_proData()
|
|||
|
|
openCom()
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
alert.show(result.msg)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
alert.show(result.msg)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 更新Grafana Time
|
|||
|
|
function updateGrafanaTime(start, stop)
|
|||
|
|
{
|
|||
|
|
var url = "http://" + g_settingGrafanaHost + ":" + g_settingGrafanaPort
|
|||
|
|
var result = backend_proxy.get_dashboard_uid(url,g_settingGrafanaToken,g_settingGrafanaDashboards2)
|
|||
|
|
if(result.code == 200)
|
|||
|
|
{
|
|||
|
|
if (result.data.length == 1)
|
|||
|
|
{
|
|||
|
|
var uid = result.data[0].uid
|
|||
|
|
g_settingGrafanaDashboardsUrl2 = result.data[0].url
|
|||
|
|
backend_proxy.update_dashboard_time(uid, url,g_settingGrafanaToken,start, stop)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 更新Grafana bucket
|
|||
|
|
function updateGrafana()
|
|||
|
|
{
|
|||
|
|
var url = "http://" + g_settingGrafanaHost + ":" + g_settingGrafanaPort
|
|||
|
|
var result = backend_proxy.get_dashboard_uid(url,g_settingGrafanaToken,g_settingGrafanaDashboards1)
|
|||
|
|
if(result.code == 200)
|
|||
|
|
{
|
|||
|
|
if (result.data.length == 1)
|
|||
|
|
{
|
|||
|
|
var uid = result.data[0].uid
|
|||
|
|
g_settingGrafanaDashboardsUrl1 = result.data[0].url
|
|||
|
|
backend_proxy.update_dashboard_data(uid,url,g_settingGrafanaToken, g_curPro.name)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
result = backend_proxy.get_dashboard_uid(url,g_settingGrafanaToken,g_settingGrafanaDashboards2)
|
|||
|
|
if(result.code == 200)
|
|||
|
|
{
|
|||
|
|
if (result.data.length == 1)
|
|||
|
|
{
|
|||
|
|
var uid = result.data[0].uid
|
|||
|
|
g_settingGrafanaDashboardsUrl2 = result.data[0].url
|
|||
|
|
backend_proxy.update_dashboard_data(uid, url,g_settingGrafanaToken,g_curPro.name)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 工程数量不足默认弹出创建
|
|||
|
|
function checkProCountClick()
|
|||
|
|
{
|
|||
|
|
var result = backend_proxy.get_projects()
|
|||
|
|
if(result.code === 200)
|
|||
|
|
{
|
|||
|
|
if(result.data.length > 0)
|
|||
|
|
{
|
|||
|
|
refreshProData(result.data)
|
|||
|
|
_openDialog.visible = true
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
_createDialog.visible = true
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
_createDialog.visible = true
|
|||
|
|
// alert.show(result.msg)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function refreshProData(data)
|
|||
|
|
{
|
|||
|
|
proModel.clear()
|
|||
|
|
var arr = data
|
|||
|
|
for(var i = 0; i < arr.length; ++i)
|
|||
|
|
{
|
|||
|
|
var obj = {}
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
obj = (arr[i].test_info == "" || arr[i].test_info == undefined) ? {} : JSON.parse(arr[i].test_info)
|
|||
|
|
}
|
|||
|
|
catch(e)
|
|||
|
|
{
|
|||
|
|
console.info(e)
|
|||
|
|
}
|
|||
|
|
proModel.append({
|
|||
|
|
"id": arr[i].id,
|
|||
|
|
"name": arr[i].name,
|
|||
|
|
"date": arr[i].date,
|
|||
|
|
"last_date":arr[i].last_date,
|
|||
|
|
"remark":arr[i].remark,
|
|||
|
|
"test_info": arr[i].test_info == undefined ? "" : arr[i].test_info,
|
|||
|
|
"history": arr[i].history == undefined ? "" : arr[i].history ,
|
|||
|
|
"csperson": !!obj.csperson ? obj.csperson : "",
|
|||
|
|
"cslocation": !!obj.cslocation ? obj.cslocation : "",
|
|||
|
|
"cscompany": !!obj.cscompany ? obj.cscompany : "",
|
|||
|
|
"cssummary": !!obj.cssummary ? obj.cssummary : ""
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|