feat()引擎规则调整

dev-1
王熙朝 2024-05-08 21:49:20 +08:00
parent 0a520c4265
commit 158996e680
2 changed files with 103 additions and 76 deletions

View File

@ -13,15 +13,17 @@
</template>
<el-descriptions-item label="规则名称">{{ruleInfo.ruleName}}</el-descriptions-item>
<el-descriptions-item label="引擎编码">{{ruleInfo.ruleCode}}</el-descriptions-item>
<el-descriptions-item label="规则级别">{{ruleInfo.ruleLevel}}</el-descriptions-item>
<el-descriptions-item label="规则类型">{{ruleInfo.ruleType}}</el-descriptions-item>
<el-descriptions-item label="规则级别">
<dict-tag :options="dict.type.rule_engine_level" :value="ruleInfo.ruleLevel"></dict-tag>
</el-descriptions-item>
<el-descriptions-item label="规则类型">
<dict-tag :options="dict.type.rule_engine_type" :value="ruleInfo.ruleType"></dict-tag>
</el-descriptions-item>
<el-descriptions-item label="是否激活">
<el-tag size="small" v-if="ruleInfo.ruleIsActivate === 'Y'"></el-tag>
<el-tag size="small" v-if="ruleInfo.ruleIsActivate === 'N'"></el-tag>
<dict-tag :options="dict.type.rule_engine_is_test" :value="ruleInfo.ruleIsActivate"></dict-tag>
</el-descriptions-item>
<el-descriptions-item label="规则状态">
<el-tag size="small" v-if="ruleInfo.ruleStatus === 'Y'"></el-tag>
<el-tag size="small" v-if="ruleInfo.ruleStatus === 'N'"></el-tag>
<dict-tag :options="dict.type.rule_engine_activate_status" :value="ruleInfo.ruleStatus"></dict-tag>
</el-descriptions-item>
</el-descriptions>
@ -45,13 +47,14 @@
:disabled="edition.editionStatus === '-1'"
>测试规则</el-dropdown-item>
<el-dropdown-item :command="{event: 'status', rule: edition}" :disabled="edition.editionStatus !== '1'">
{{editionList.ruleIsTest !== 'no-activate' ? "禁用" : "激活"}}规则
{{editionList.ruleIsTest !== '0' ? "禁用" : "激活"}}规则
</el-dropdown-item>
<el-dropdown-item
:command="{event: 'publish', rule: editionList}"
v-if="editionList.editionStatus === '1' && edition.ruleIsTest === '1'">
发布规则
</el-dropdown-item>
<el-dropdown-item :command="{event: 'delete', rule: edition}">规则删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
@ -120,10 +123,12 @@
<el-drawer title="查看详情" size="80%" :before-close="ruleEngineVersionInfoStatusClose"
:visible.sync="oppten"
:direction="'rtl'">
<div class="app-container">
<div>
<el-descriptions v-if="selectList != null" class="margin-tog" :column="2" border>
<el-descriptions-item label="版本类" :span="2">{{selectList.versionClass}}</el-descriptions-item>
<el-descriptions-item label="版本名称">{{selectList.name}}</el-descriptions-item>
<el-descriptions-item label="版本名称">
<input v-model="selectList.name">
</el-descriptions-item>
<el-descriptions-item label="版本编码">{{selectList.versionCode}}</el-descriptions-item>
<el-descriptions-item label="引擎状态">
<dict-tag :options="dict.type.rule_engine_edition_status" :value="selectList.editionStatus"></dict-tag>
@ -135,13 +140,31 @@
<dict-tag :options="dict.type.rule_engine_is_test" :value="selectList.ruleIsTest"></dict-tag>
</el-descriptions-item>
</el-descriptions>
<editor style="margin-top: 10px" :read-only="true" :min-height="100" v-model="selectList.editionContent"></editor>
<edition style="margin-top: 10px">
<el-button @click="saveCoding"></el-button>
</edition>
<editor style="margin-top: 10px" :min-height="100" v-model="selectList.editionContent"></editor>
<el-row style="margin-top: 10px">
<el-button @click="saveCoding(selectList)"></el-button>
</el-row>
<encoding style="height: 800px; margin-top: 20px" v-model="selectList.ruleContent"></encoding>
</div>
</el-drawer>
<!-- 规则测试 -->
<el-drawer title="规则版本测试" size="80%" :before-close="ruleEngineVersionTestStatusClose"
:visible.sync="openRuleTest" :direction="'rtl'">
<el-row :gutter="20">
<el-col :span="12">
<el-descriptions v-if="form!=null" class="margin-tog" :column="2" border>
<el-descriptions-item label="版本类" :span="2">{{}}</el-descriptions-item>
<el-descriptions-item label="版本名称"></el-descriptions-item>
<el-descriptions-item label="版本编码"></el-descriptions-item>
<el-descriptions-item label="引擎状态"></el-descriptions-item>
<el-descriptions-item label="是否激活"></el-descriptions-item>
<el-descriptions-item label="是否描述"></el-descriptions-item>
<editor style="margin-top: 10px" :min-height="100" v-model="selectList.editionContent"></editor>
<encoding style="height: 800px; margin-top: 20px" v-model="selectList.ruleContent"></encoding>
</el-descriptions>
</el-col>
</el-row>
</el-drawer>
</div>
</template>
@ -180,12 +203,17 @@ export default {
title: "",
//
open: false,
//
oppten: false,
//
openRuleTest: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
},
//
ruleEngineTest:{},
//
form: {},
//
@ -197,6 +225,7 @@ export default {
this.getList();
},
methods: {
//
ruleEngineVersionInfoStatusClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
@ -223,8 +252,33 @@ export default {
this.open = false;
this.reset();
},
saveCoding(row) {
updateEdition(row).then(res => {
this.$message.success(res.data)
})
},
//
playEngineVersion(slickType){
switch (slickType.event){
case "update"://
console.log(slickType.rule)
this.form = slickType.rule
this.open = true
break;
case "status"://
break;
}
},
//
checkRuleEngineVersion(clickType) {
switch (clickType.event){
case "delete"://
if (confirm("确认删除吗")){
delEdition(clickType.rule.id)
}
this.getList()
break;
case "select"://
console.log(clickType.rule)
this.selectList = clickType.rule
@ -236,6 +290,7 @@ export default {
break;
}
},
//
handleClick(clickType) {
if (clickType === "add"){
this.open = true;
@ -293,23 +348,29 @@ export default {
this.$message.error('版本编码不可为空');
return false;
}
// this.ruleInfo.versionClass = this.ruleInfo.ruleCode + "_" + this.form.versionCode
spliceNameToCode(this.ruleInfo.ruleCode,this.form.versionCode,this.ruleInfo.ruleLevel).then(res => {
// this.form.versionClass = res.data
console.log(res.data)
console.log(res.msg)
this.form.versionClass = res.data.val;
this.form.ruleContent = res.data.code
})
// this.form.ruleContent = this.getCodeIng()
// console.log(this.form.ruleContent)
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateEdition(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addEdition(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
@ -324,7 +385,6 @@ export default {
},
//
getCodeIng(){
let packageName = "com.muyu.rule.engine";
let customName = "custom";
let templateName = "template";

View File

@ -99,8 +99,16 @@
<el-table-column label="主键" align="center" prop="ruleId" />
<el-table-column label="规则名称" align="center" prop="ruleName" />
<el-table-column label="引擎编码" align="center" prop="ruleCode" />
<el-table-column label="规则级别" align="center" prop="ruleLevel" />
<el-table-column label="规则类型" align="center" prop="ruleType" />
<el-table-column label="规则级别" align="center" prop="ruleLevel" >
<template slot-scope="scope">
<dict-tag :options="dict.type.rule_engine_level" :value="scope.row.ruleLevel"></dict-tag>
</template>
</el-table-column>
<el-table-column label="规则类型" align="center" prop="ruleType" >
<template slot-scope="scope">
<dict-tag :options="dict.type.rule_engine_type" :value="scope.row.ruleType"></dict-tag>
</template>
</el-table-column>
<el-table-column label="是否激活" align="center" prop="ruleIsActivate" >
<template slot-scope="scope">
<el-tag size="small" v-if="scope.row.ruleIsActivate === 'Y'"></el-tag>
@ -166,47 +174,24 @@
<el-col :span="12">
<el-form-item label="规则类型" prop="ruleType">
<el-select v-model="form.ruleType" placeholder="请选择规则类型" style="width: 100%">
<el-option v-for="types in ruleType"
:key="types.val"
:label="types.val"
:value="types.val"></el-option>
<el-option v-for="(val,cod) in dict.type.rule_engine_type"
:key="cod"
:label="val.label"
:value="Number(val.value)"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规则级别" prop="ruleLevel">
<el-select v-model="form.ruleLevel" placeholder="请选择规则等级" style="width: 100%;">
<el-option v-for="level in ruleLevel"
:key="level.val"
:label="level.val"
:value="level.val"></el-option>
<el-select v-model="form.ruleLevel" placeholder="请选择规则作用域级别" style="width: 100%;">
<el-option v-for="(val,cod) in dict.type.rule_engine_level"
:key="cod"
:label="val.label"
:value="Number(val.value)"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="是否激活" prop="ruleIsActivate">
<el-radio-group v-model="form.ruleIsActivate">
<el-radio
v-for="active in isActive"
:key="active.val"
:label="active.val"
>{{active.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规则状态" prop="ruleStatus">
<el-radio-group v-model="form.ruleStatus">
<el-radio v-for="status in ruleStatus"
:key="status.val"
:label="status.val"
>{{status.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="规则描述">
@ -250,6 +235,10 @@ import path from "path";
export default {
name: "Engine",
components: {},
dicts: ['rule_engine_level', 'rule_engine_activate_status', 'rule_engine_type', 'rule_engine_edition_status', 'rule_engine_is_test'],
data() {
return {
//
@ -298,28 +287,6 @@ export default {
{val:'记录'},
{val:'数据字段'},
],
//
isActive: [
{
val:'Y',
label:'是',
},
{
val:'N',
label:'否',
}
],
//
ruleStatus: [
{
val:'Y',
label:'在用'
},
{
val:'N',
label:'停用'
}
],
//
form: {},
//