feat(): 引擎维护,规则维护,初始化,测试连接

chao
chao 2024-05-05 14:25:19 +08:00
parent 0bf495b599
commit 92091dfb28
4 changed files with 150 additions and 7 deletions

View File

@ -42,3 +42,17 @@ export function delEngine(id) {
method: 'delete'
})
}
export function initializeRuleEngine(data) {
return request({
url: '/data/engine/initializeRuleEngine',
method: 'post',
data: data
})
}
export function testMethod(encoding) {
return request({
url: `/data/engine/testMethod/` + encoding ,
method: 'get'
})
}

View File

@ -1,6 +1,6 @@
<template>
<div style="height: 800px">
<codemirror ref="codeMirror" :value="code" :options="cmOptions" style="height: 800px"/>
<codemirror ref="codeMirror" v-model="code" :value="code" :options="cmOptions" style="height: 800px"/>
</div>
</template>
@ -26,11 +26,39 @@ import 'codemirror/addon/fold/foldcode.js';
import 'codemirror/addon/fold/foldgutter.js';
import 'codemirror/addon/fold/foldgutter.css';
import 'codemirror/addon/fold/brace-fold.js';
import {updateEngine} from "@/api/data/engine";
export default {
components: {
codemirror,
},
watch: {
'value': {
handler(val) {
this.code = val
},
},
'modification': {
handler(val) {
if (val != null) {
console.log(val)
console.log(this.code)
updateEngine({id: this.modification, codeText: this.code}).then(res => {
this.$message.success('保存成功')
setTimeout(() => {
this.$router.push({path: `/rule/engineMaintenance`});
}, 100)
})
}
},
}
},
props: {
modification: {
default: null,
type: Number
},
value: {
default: "",
type: String

View File

@ -114,7 +114,21 @@
<el-button
size="mini"
type="text"
icon="el-icon-takeaway-box"
icon="el-icon-key"
@click="initializeRuleEngine(scope.row)"
>初始化
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-switch-button"
@click="testMethod(scope.row)"
>测试
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-setting"
@click="toEngineVersion(scope.row)"
v-hasPermi="['system:engine:edit']"
>规则维护
@ -221,8 +235,7 @@
</template>
<script>
import {listEngine, getEngine, delEngine, addEngine, updateEngine} from "@/api/data/engine";
import item from "@/layout/components/Sidebar/Item.vue";
import { listEngine, getEngine, delEngine, addEngine, updateEngine, initializeRuleEngine, testMethod } from "@/api/data/engine";
export default {
name: "Engine",
@ -265,6 +278,51 @@ export default {
this.getList();
},
methods: {
testMethod(row) {
testMethod(row.encoding).then(response => {
if (response.code === 200) {
this.$message.success(response.msg)
} else {
this.$message.error(response.msg)
}
})
},
initializeRuleEngine(row) {
if (row.type === "规则模板") {
row.type = 1
} else if (item.type === "自定义模板") {
row.type = 2
}
if (row.scope === "数据字段") {
row.scope = 1
} else if (row.scope === '数据集') {
row.scope = 2
} else if (row.scope === '记录') {
row.scope = 3
}
if (row.activatedOrNot === '激活') {
row.activatedOrNot = "Y"
} else if (row.activatedOrNot === '未激活') {
row.activatedOrNot = "N"
}
if (row.status === '正常') {
row.status = "Y"
} else if (row.status === '停用') {
row.status = "N"
}
initializeRuleEngine(row).then(response => {
if (response.code === 200) {
this.$message.success(response.msg)
} else {
this.$message.error(response.msg)
}
this.getList()
})
},
toEngineVersion(row) {
console.log(row.id)
this.$router.push({path: `/rule/ruleEngine`,query:{id: row.id}})
},
/** 查询引擎维护列表 */
getList() {
this.loading = true;

View File

@ -1,20 +1,63 @@
<template>
<div>
{{ruleEngineId}}
<el-card style="height: 90%">
<div slot="header" class="clearfix">
<span>{{ ruleEngineInfo.name }}</span>
<el-button @click="dialogVisible = true" style="float: right;" type="primary"> </el-button>
</div>
<div class="text item">
<encoding ref="encoding" style="height: 800px" :modification="modification"
:value="ruleEngineInfo.codeText"></encoding>
</div>
</el-card>
<el-dialog
title="提示"
:visible.sync="dialogVisible"
width="20%">
<span style="font-size: 16px;align-content: center">确认保存吗?</span>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="updRuleEngine"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import Encoding from "@/components/Encoding/index.vue";
import {getEngine} from "@/api/data/engine";
export default {
name: "EngineVersion",
components: {Encoding},
data() {
return {
ruleEngineId: this.$route.params && this.$route.params.ruleEngineId,
dialogVisible: false,
ruleEngineId: this.$route.query.id,
ruleEngineInfo: {},
modification: null
}
},
created() {
this.getInfo()
},
methods: {}
methods: {
updRuleEngine() {
this.modification = parseInt(this.ruleEngineId)
setTimeout(() => {
this.modification = null
this.dialogVisible = false
}, 50)
},
getInfo() {
getEngine(this.$route.query.id).then(res => {
this.ruleEngineInfo = res.data
console.log(this.ruleEngineInfo)
})
}
}
}
</script>