Commit 67d0df75 by 吴斌

update

parent 2913e9a5
...@@ -369,8 +369,12 @@ function changeDiagramConfig(key:string, value:string){ ...@@ -369,8 +369,12 @@ function changeDiagramConfig(key:string, value:string){
function importData(){ function importData(){
let json = diagramModelData['diagramData'] let json = diagramModelData['diagramData']
myDiagram.model = go.Model.fromJson(json) myDiagram.model = go.Model.fromJson(json)
rules.splice(0, rules.length)
for (let rule of diagramModelData['ruleData']){
rules.push(rule)
}
getRuleList() getRuleList()
deviceMap.value = getDeviceMapData(myDiagram)
changeDiagramConfig('mode', 'readonly') changeDiagramConfig('mode', 'readonly')
} }
...@@ -468,7 +472,6 @@ function initDiagram(){ ...@@ -468,7 +472,6 @@ function initDiagram(){
function listenDiagram(){ function listenDiagram(){
myDiagram.addDiagramListener('BackgroundSingleClicked', ()=>{ myDiagram.addDiagramListener('BackgroundSingleClicked', ()=>{
console.log(myDiagram.model.toJson())
}) })
myDiagram.addDiagramListener('Modified', ()=>{ myDiagram.addDiagramListener('Modified', ()=>{
}) })
...@@ -505,10 +508,20 @@ function listenDiagram(){ ...@@ -505,10 +508,20 @@ function listenDiagram(){
}) })
}); });
myDiagram.addModelChangedListener(function(e:any){ myDiagram.addModelChangedListener(function(e:any){
if (e.isTransactionFinished) runAllEnableRule(getDeviceMapData(myDiagram)); if (e.isTransactionFinished) {
runAllEnableRule(getDeviceMapData(myDiagram))
}
}) })
} }
// function cancelListenDiagram(){
// myDiagram.removeModelChangedListener(function(e:any){
// if (e.isTransactionFinished) {
// runAllEnableRule(getDeviceMapData(myDiagram))
// }
// })
// }
function freshSelectionNode(){ function freshSelectionNode(){
let selectedNodeKey = myDiagram.selection.first()?.data?.key let selectedNodeKey = myDiagram.selection.first()?.data?.key
selectedNode.value = myDiagram.findNodeForKey(selectedNodeKey) selectedNode.value = myDiagram.findNodeForKey(selectedNodeKey)
...@@ -767,7 +780,6 @@ function showAddRuleDialog(){ ...@@ -767,7 +780,6 @@ function showAddRuleDialog(){
ruleDialog.value.visible = true ruleDialog.value.visible = true
ruleDialog.value.type = 'add' ruleDialog.value.type = 'add'
// 图表有修改,需要更新设备列表 // 图表有修改,需要更新设备列表
deviceMap.value = getDeviceMapData(myDiagram)
ruleDialog.value.data = { ruleDialog.value.data = {
name: "", name: "",
inputs:[], inputs:[],
...@@ -787,7 +799,6 @@ function addRuleParam(){ ...@@ -787,7 +799,6 @@ function addRuleParam(){
} }
function confirmAddRule(){ function confirmAddRule(){
let ruleData = ruleDialog.value.data let ruleData = ruleDialog.value.data
console.log(ruleData)
if(!ruleData.name) { if(!ruleData.name) {
ElMessage.error('规则名称不能为空') ElMessage.error('规则名称不能为空')
return return
......
...@@ -127,31 +127,9 @@ export const diagramModelData = { ...@@ -127,31 +127,9 @@ export const diagramModelData = {
"key": "f78b6be4-4cc2-4812-96e1-aa065118398a", "key": "f78b6be4-4cc2-4812-96e1-aa065118398a",
"valueKey": "failurePossibility" "valueKey": "failurePossibility"
}], }],
func:'function a(data) {if(data<0.1)alert("测试小于0.1"+data)}', func:'function a(data) {if(data>0.0005)alert("当前冷却器失效可能性为:"+data)}',
enable:true, enable:true,
description:"测试小于0.1", description:"冷却器失效可能性大于0.0005",
}, }
{
id:"51b9d15b-8eea-4c4e-92a2-5bb9d99d298t",
name:"测试脚本",
inputs:[{
"key": "f78b6be4-4cc2-4812-96e1-aa065118398a",
"valueKey": "failurePossibility"
}],
func:'function a(data) {if(data ===0);alert("测试等于零"+data)}',
enable:true,
description:"测试等于零",
},
{
id:"51b9d16b-8eea-4c4e-92a2-5bb9599d298t",
name:"测试脚本",
inputs:[{
"key": "f78b6be4-4cc2-4812-96e1-aa065118398a",
"valueKey": "failurePossibility"
}],
func:'function a(data) {if(data < 0)alert("测试小于零"+data)}',
enable:true,
description:"测试<0",
},
] ]
} }
import {uuid} from "vue3-uuid"; import {uuid} from "vue3-uuid";
import {diagramModelData} from "../ModelData.ts";
export const rules :Record<string, any>[]= diagramModelData['ruleData']
export var rules :Record<string, any>[]= []
/** /**
* 添加规则 * 添加规则
* @param name 规则名称 * @param name 规则名称
...@@ -66,16 +65,32 @@ export function runRule(rule:any, deviceMap:Record<string, any>){ ...@@ -66,16 +65,32 @@ export function runRule(rule:any, deviceMap:Record<string, any>){
} }
/**
* 函数“runAllEnableRule”在给定的设备映射上运行所有启用的规则。
* @param deviceMap - 将设备名称映射到其相应信息或数据的记录对象。
*/
export function runAllEnableRule(deviceMap:Record<string, any>){ export function runAllEnableRule(deviceMap:Record<string, any>){
rules.forEach((item:any) => { rules.forEach((item:any) => {
if(item['enabled']) runRule(item, deviceMap) if(item['enable'].toString() === 'true') {
runRule(item, deviceMap)
}
}) })
} }
/**
* 函数“runRuleById”通过 ID 查找规则并使用给定的设备映射运行它。
* @param {string} id - “id”参数是一个字符串,表示规则的唯一标识符。它用于在“rules”数组中查找规则。
* @param deviceMap - “deviceMap”参数是一个记录对象,它将设备名称映射到其相应的信息或状态。它用于提供运行规则所需的数据。
*/
export function runRuleById(id:string, deviceMap:Record<string, any>){ export function runRuleById(id:string, deviceMap:Record<string, any>){
let rule = rules.find((item:any) => item.id == id) let rule = rules.find((item:any) => item.id == id)
runRule(rule, deviceMap) runRule(rule, deviceMap)
} }
/**
* 函数“testRule”将规则对象作为输入,从规则中提取测试数据,从规则的函数字符串创建一个新函数,然后使用测试数据作为参数执行该函数。
* @param {any} rule - “rule”参数是包含有关特定规则的信息的对象。
*/
export function testRule(rule:any){ export function testRule(rule:any){
let inputData = [] let inputData = []
let runFunc = null let runFunc = null
...@@ -92,6 +107,10 @@ export function testRule(rule:any){ ...@@ -92,6 +107,10 @@ export function testRule(rule:any){
} }
} }
/**
* 函数“testRuleById”通过 ID 查找规则,然后测试该规则。
* @param {string} id - “id”参数是一个字符串,表示规则的唯一标识符。
*/
export function testRuleById(id:string){ export function testRuleById(id:string){
let rule = rules.find((item:any) => item.id == id) let rule = rules.find((item:any) => item.id == id)
testRule(rule) testRule(rule)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment