TG-PlatformPlus/qml/MainWin.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 : ""
})
}
}
}