新增规则节点

master
面包骑士 2024-09-10 20:53:16 +08:00
parent 10f8364946
commit b186934535
4 changed files with 261 additions and 27 deletions

View File

@ -24,9 +24,7 @@
</template> </template>
<script> <script>
import ClickOutside from 'vue-click-outside' import ClickOutside from 'vue-click-outside';
import Home from '../Home.vue'
import {listDbTableAll, selDbNameAll, selectDbTableColumnsByName} from "@/api/tool/gen";
import {listDisposition} from "@/api/quest/disposition"; import {listDisposition} from "@/api/quest/disposition";
import DispFind from "./node/dispFind.vue"; import DispFind from "./node/dispFind.vue";
@ -80,29 +78,29 @@ export default {
}, },
// //
onContextmenu() { onContextmenu() {
this.$contextmenu({ this.deleteNode()
items: [ // this.$contextmenu({
{ // items: [
label: '修改名称', // {
disabled: false, // label: '',
icon: "", // disabled: false,
onClick: () => { // icon: "",
this.toUpdName(); // onClick: () => {
} // this.toUpdName();
},{ // }
label: '删除节点', // },{
disabled: false, // label: '',
icon: "", // disabled: false,
onClick: () => { // icon: "",
this.deleteNode() // onClick: () => {
} //
} // }
], // }
event, // ],
customClass: 'custom-class', // customClass: 'custom-class',
zIndex: 9999, // zIndex: 9999,
minWidth: 180 // minWidth: 180
}) // })
}, },
setActive() { setActive() {
if (window.event.ctrlKey) { if (window.event.ctrlKey) {

View File

@ -13,6 +13,9 @@
<span v-else-if="node.type === 'unite'"> <span v-else-if="node.type === 'unite'">
<UniteFind :disp="disp" :data="data" :node="node" /> <UniteFind :disp="disp" :data="data" :node="node" />
</span> </span>
<span v-else-if="node.type === 'rule'">
<RuleFind :disp="disp" :data="data" :node="node" />
</span>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
@ -24,12 +27,13 @@
import TableFind from './type/tableFind.vue' import TableFind from './type/tableFind.vue'
import ExporFind from "./type/exporFind.vue"; import ExporFind from "./type/exporFind.vue";
import UniteFind from "./type/uniteFind.vue"; import UniteFind from "./type/uniteFind.vue";
import RuleFind from "./type/ruleFind.vue";
export default { export default {
// import使" // import使"
name: 'type-table', name: 'type-table',
components: {ExporFind, TableFind, UniteFind}, components: {ExporFind, TableFind, UniteFind,RuleFind},
props: { props: {
data: {}, data: {},
node: {}, node: {},

View File

@ -0,0 +1,224 @@
<template>
<div>
<el-form label-position="right" label-width="120px" :model="checkRule" :inline="true">
<el-form-item label="规则级别" style="width: 30%;">
<el-input v-model="checkRule.rule.ruleName" placeholder="未配置" disabled />
</el-form-item>
<el-form-item label="规则版本" style="width: 30%;">
<el-input v-model="checkRule.version.ruleVersionName" placeholder="未配置" disabled />
</el-form-item>
<el-form-item label="规则优先级" style="width: 30%;">
<el-input v-model="checkRule.priority" placeholder="未配置" disabled />
</el-form-item>
<el-descriptions class="margin-top" :column="2" border style="font-size: 16px;margin: 20px">
<el-descriptions-item span="2">
<template slot="label">
<i class="el-icon-user"></i>
版本类
</template>
{{ checkRule.version.ruleVersionClass }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-mobile-phone"></i>
版本名称
</template>
{{ checkRule.version.ruleVersionName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-location-outline"></i>
版本CODE
</template>
{{ checkRule.version.ruleVersionCode }}
</el-descriptions-item>
<el-descriptions-item span="2">
<template slot="label">
<i class="el-icon-office-building"></i>
规则描述
</template>
<span v-html="checkRule.version.ruleVersionDescribed"></span>
</el-descriptions-item>
</el-descriptions>
<div align="center">
<el-button @click="disp.findFlag = false">确认</el-button>
<el-button type="primary" @click="toRuleUpdFlag"></el-button>
</div>
</el-form>
<el-dialog title="修改配置" :visible.sync="updRuleFlag" width="70%" :modal="false">
<div>
<el-form label-position="right" label-width="120px" :model="checkRule" :inline="true">
<el-form-item label="规则级别" style="width: 30%;">
<el-select v-model="checkRule.rule.ruleCode" placeholder="请选择规则级别" @change="checkRuleCode">
<el-option v-for="item in ruleList" :label="item.ruleName" :value="item.ruleCode"/>
</el-select>
</el-form-item>
<el-form-item label="规则版本" style="width: 30%;">
<el-select :value="checkRule.version.ruleVersionClass" placeholder="请选择规则版本" @change="checkRuleVersionCode">
<el-option v-for="item in checkRule.rule.ruleVersionList" :label="item.ruleVersionName" :value="item.ruleVersionClass"/>
</el-select>
</el-form-item>
<el-form-item label="规则优先级" style="width: 30%;">
<el-input v-model="checkRule.priority" placeholder="请选择规则优先级" />
</el-form-item>
</el-form>
<el-descriptions class="margin-top" :column="2" border style="font-size: 16px;margin: 20px">
<el-descriptions-item span="2">
<template slot="label">
<i class="el-icon-user"></i>
版本类
</template>
{{ checkRule.version.ruleVersionClass }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-mobile-phone"></i>
版本名称
</template>
{{ checkRule.version.ruleVersionName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-location-outline"></i>
版本CODE
</template>
{{ checkRule.version.ruleVersionCode }}
</el-descriptions-item>
<el-descriptions-item span="2">
<template slot="label">
<i class="el-icon-office-building"></i>
规则描述
</template>
<span v-html="checkRule.version.ruleVersionDescribed"></span>
</el-descriptions-item>
</el-descriptions>
<div align="center">
<el-button @click="updRuleFlag = false">取消</el-button>
<el-button type="primary" @click="save"></el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
//jsjsjson,
//import from ',
import {listRuleInfo} from "../../../../../../api/engine/ruleInfo";
import {batchAddUpd, listDisposition} from "../../../../../../api/quest/disposition";
export default {
//import使"
components: {},
props: {
data: {},
node: {},
disp: {
nodeCode: undefined,
nodeType: undefined,
findFlag: false,
updFlag: false,
formData: {
db: {},
fields: []
}
}
},
data() {
//"
return {
//
ruleList: [],
//
checkRule: {
//
rule: {},
//
version: {},
priority: ''
},
//
updRuleFlag: false,
};
},
// data",
computed: {},
//data",
watch: {},
//",
methods: {
//
init() {
listRuleInfo({pageNum: 1, pageSize: 100}).then(response => {
this.ruleList = response.data.rows;
//
listDisposition({nodeCode: this.node.id}).then(res => {
var row = res.data.rows[0];
console.log(row)
this.checkRule.priority = row.dispDesc
this.checkRuleCode(row.dispLabel)
this.checkRuleVersionCode(row.dispValue)
console.log(this.checkRule)
})
});
},
//
toRuleUpdFlag() {
this.updRuleFlag = true
},
//
checkRuleCode(value) {
this.checkRule.rule = this.ruleList.filter(item => item.ruleCode === value)[0]
},
//
checkRuleVersionCode(value) {
this.checkRule.version = this.checkRule.rule.ruleVersionList.filter(item => item.ruleVersionClass === value)[0]
},
//
save() {
console.log(this.checkRule)
const checkRule = this.checkRule.version
let ruleCode = this.checkRule.rule.ruleCode
let priority = this.checkRule.priority
const dispList = []
dispList.push({
nodeCode: this.node.id,
dispKey: 'rule',
dispLabel: ruleCode,
dispValue: checkRule.ruleVersionClass,
dispType: 'string',
dispDesc: priority,
ruleId: checkRule.ruleVersionScope
})
batchAddUpd(dispList, this.node.id).then(res => {
this.$message.success(res.msg)
this.updRuleFlag = false
})
}
},
// - 访this",
created() {
this.init()
},
// - 访DOM",
mounted() {
},
beforeCreate() {
}, // - ",
beforeMount() {
}, // - ",
beforeUpdate() {
}, // - ",
updated() {
}, // - ",
beforeDestroy() {
}, // - ",
destroyed() {
}, // - ",
activated() {
} //keep-alive",
};
</script>
<style scoped>
</style>

View File

@ -30,6 +30,14 @@ const nodeTypeList = [
logImg: require('@/assets/svg/侧边栏测试任务.svg'), logImg: require('@/assets/svg/侧边栏测试任务.svg'),
log_bg_color: 'rgba(0, 128, 0, 0.2)' log_bg_color: 'rgba(0, 128, 0, 0.2)'
}, },
{
type: 'rule',
typeName: '规则清洗',
nodeName: '规则清洗',
partition: 'operation',
logImg: require('@/assets/svg/侧边栏测试任务.svg'),
log_bg_color: 'rgba(0, 128, 0, 0.2)'
},
{ {
type: 'exportation', type: 'exportation',
typeName: '数据输出', typeName: '数据输出',