维护列表 开启引擎 关闭引擎

master
Qin Dong Ming 2024-09-02 19:11:09 +08:00
parent c8ca1bf0c1
commit d11b539d1d
6 changed files with 386 additions and 38 deletions

View File

@ -49,6 +49,7 @@
"@vue/composition-api": "^1.7.2",
"axios": "0.24.0",
"clipboard": "2.0.8",
"codemirror": "^5.65.12",
"core-js": "3.25.3",
"echarts": "5.4.0",
"element-ui": "2.9.1",

View File

@ -79,7 +79,7 @@ export function findById(id) {
//通过id删除数据
export function dels(id) {
return request({
url: '/engine/engine/delete/' + id,
url: '/engine/version/delete/' + id,
method: 'post',
data: id
})
@ -107,5 +107,13 @@ export function selectEngineById(id){
})
}
//根据版本id查询版本信息
export function sel(id){
return request({
url: "/engine/version/selectListById/" + id,
method: "post"
})
}

View File

@ -0,0 +1,57 @@
<template>
<codemirror ref="mycode" :value="curCode" :options="cmOptions" class="code" v-show="aaa">
</codemirror>
</template>
<script>
import { codemirror } from 'vue-codemirror'
import "codemirror/theme/ambiance.css"; // theme
require("codemirror/mode/javascript/javascript"); // jsmode
export default {
name: 'ExecuteAction',
data() {
return {
curCode: '测试',
cmOptions: {
// autorefresh: true,
// tabSize: 4,
// mode: 'text/x-properties',
// theme: 'ayu-mirage',
// line: true,
// viewportMargin: Infinity, //使
// highlightDifferences: true,
// autofocus: false,
// indentUnit: 2,
// smartIndent: true,
// readOnly: true, //
// showCursorWhenSelecting: true,
// firstLineNumber: 1
lineNumbers: true, //
mode: 'text/x-yaml', // model
gutters: ['CodeMirror-lint-markers'], //
theme: "ambiance",
lint: true, //
}
}
},
components: {
codemirror
},
}
</script>
<style scoped>
.information-box>>>.CodeMirror {
font-family: monospace;
height: 71vh;
direction: ltr;
}
</style>

View File

@ -1,6 +1,23 @@
import Vue from 'vue'
import Cookies from 'js-cookie'
//引入文件、、
import VueCodeMirror from 'vue-codemirror'
import 'codemirror/lib/codemirror.css'
Vue.use(VueCodeMirror)
//
//codemirror
import VueCodemirror from 'vue-codemirror'
import 'codemirror/lib/codemirror.css'
Vue.use(VueCodemirror)
import 'codemirror/lib/codemirror.css'
import Element from 'element-ui'
import './assets/styles/element-variables.scss'

View File

@ -66,17 +66,21 @@
</el-form>
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="findSelectSourceExport"
v-hasPermi="['source:data:export']">导出
</el-button>
<!-- 添加按钮 /-->
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['source:data:add']">
新增
</el-button>
<!-- 添加或修改规则引擎对话框 -->
<el-dialog :title="title" :visible.sync="open" width="80%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
@ -564,8 +568,6 @@ export default {
handleAdd() {
// this.reset();
this.open = true;
this.title = "添加规则引擎";
@ -576,8 +578,6 @@ export default {
handleUpdate(row) {
// this.reset();
this.form = row;
this.open = true;
@ -673,20 +673,35 @@ export default {
beforeCreate() {
}, // - ",
beforeMount() {
}, // - ",
beforeUpdate() {
}, // - ",
updated() {
}, // - ",
beforeDestroy() {
}, // - ",
destroyed() {
}, // - ",
activated() {
} //keep-alive",
};
</script>
<style scoped>
</style>

View File

@ -2,119 +2,232 @@
<div>
<el-button type="text" @click="dialogFormVisible = true">新增</el-button>
<el-button type="text" @click="addVersion()"></el-button>
<el-dialog title="添加版本信息" :visible.sync="dialogFormVisible">
<el-form :model="versions">
<el-form-item label="版本类名" :label-width="formLabelWidth">
<el-input v-model="versions.versionClass" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="版本名称" :label-width="formLabelWidth">
<el-input v-model="versions.name" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="版本编码" :label-width="formLabelWidth">
<el-input v-model="versions.versionCode" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="是否激活" :label-width="formLabelWidth">
<el-input v-model="versions.isActivate" autocomplete="off"></el-input>
<el-input v-model="versions.isActivate" disabled autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="版本状态" :label-width="formLabelWidth">
<el-input v-model="versions.status" autocomplete="off"></el-input>
<el-input v-model="versions.status" disabled autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="版本测试状态" :label-width="formLabelWidth">
<el-input v-model="versions.testStatus" autocomplete="off"></el-input>
<el-form-item label="是否测试" :label-width="formLabelWidth">
<el-input v-model="versions.testStatus" disabled autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="规则内容" :label-width="formLabelWidth">
<el-input v-model="versions.ruleContent" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="版本描述" :label-width="formLabelWidth">
<el-form-item label="引擎维护编号" :label-width="formLabelWidth">
<el-input v-model="versions.engineMaintenanceId" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="描述" :label-width="formLabelWidth">
<el-input v-model="versions.description" autocomplete="off"></el-input>
</el-form-item>
<!-- ref="mycode" :value="curCode" class="code"-->
<codemirror :options="cmOptions" v-show="opens">
</codemirror>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click=handleInsert()> </el-button>
<el-button type="primary" @click=showCode()>生成引擎类</el-button>
</div>
</el-dialog>
<el-table :data="maintenance.engineMaintenanceList" style="width: 100%">
<el-table-column prop="id" label="编号"></el-table-column>
<el-table-column prop="versionClass" label="版本类名"></el-table-column>
<el-table-column prop="name" label="版本名称"></el-table-column>
<el-table-column prop="versionCode" label="版本编码"></el-table-column>
<el-table-column prop="isActivate" label="是否激活">
<template v-slot="scope">
<span v-if="scope.row.isActivate==1"></span>
<span v-if="scope.row.isActivate==2"></span>
</template>
</el-table-column>
<el-table-column prop="status" label="版本状态">
<template v-slot="scope">
<span v-if="scope.row.status===1"></span>
<span v-if="scope.row.status===2"></span>
</template>
</el-table-column>
<el-table-column prop="testStatus" label="版本测试状态">
<template v-slot="scope">
<span v-if="scope.row.testStatus===1"></span>
<span v-if="scope.row.testStatus===2"></span>
<span v-if="scope.row.testStatus===3"></span>
</template>
</el-table-column>
<el-table-column prop="ruleContent" label="规则内容"></el-table-column>
<el-table-column prop="engineMaintenanceId" label="引擎维护编号"></el-table-column>
<el-table-column prop="description" label="描述"></el-table-column>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="120">
<template slot-scope="scope">
<el-button @click.native.prevent="del(scope.row.id)" type="text" size="small">
删除
</el-button>
<el-button v-show="scope.row.isActivate==1" @click="forbiddenEngines(scope.row.id)" type="text" size="small"></el-button>
<el-button v-show="scope.row.isActivate==1" @click="forbiddenEngines(scope.row.id)" type="text" size="small">
关闭引擎
<el-button v-show="scope.row.isActivate==2" @click="onEngines(scope.row.id)" type="text" size="small"></el-button>
</el-button>
<el-button v-show="scope.row.isActivate==2" @click="onEngines(scope.row.id)" type="text" size="small">
开启引擎
</el-button>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="120">
<template slot-scope="scope">
<el-button @click.native.prevent="selectEngineById(scope.row.id)" type="text" size="small">
规则详情
</el-button>
</template>
</el-table-column>
</el-table>
<!--回显-->
<el-dialog title="收货地址" :visible.sync="versionFormVisible">
<el-form :model="versions">
<el-form-item label="版本类名" :label-width="formLabelWidth">
<el-input v-model="versions.versionClass" disabled autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="版本名称" :label-width="formLabelWidth">
<el-input v-model="versions.name" disabled autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="版本编码" :label-width="formLabelWidth">
<el-input v-model="versions.versionCode" disabled autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="是否激活" :label-width="formLabelWidth">
<el-input v-model="versions.isActivate" disabled autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="版本状态" :label-width="formLabelWidth">
<el-input v-model="versions.status" disabled autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="版本测试" :label-width="formLabelWidth">
<el-input v-model="versions.testStatus" disabled autocomplete="off"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="back()"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {add, dels, findById, forbiddenEngine, onEngine, selectEngineById} from "@/api/engine/engine";
import {add, dels, findById, forbiddenEngine, onEngine, sel, selectEngineById} from "@/api/engine/engine";
import Java from "@/components/JavaIDE.vue/java.vue";
import {codemirror} from 'vue-codemirror'
import "codemirror/theme/ambiance.css"; // theme
require("codemirror/mode/javascript/javascript"); // jsmode
export default {
@ -122,7 +235,10 @@ export default {
//import使"
components: {},
components: {
codemirror,
Java
},
props: {},
@ -133,12 +249,39 @@ export default {
return {
direction: 'rtl',
versionFormVisible: false,
maintenance: {
engineMaintenanceList: [],
},
opens: false,
javaClass: "package com.muyu.rule.engine.custom;\n" +
"\n" +
"import com.muyu.engine.action.ActionDiscard;\n" +
"import com.muyu.engine.scope.DataModelEngine;\n" +
"\n" +
"/**\n" +
" * @Author: DongZeLiang\n" +
" * @date: 2024/5/6\n" +
" * @Description: 231-231\n" +
" * @Version: 1.0\n" +
" */\n" +
"public class undefined_231 extends DataModelEngine {\n" +
" @Override\n" +
" public void execution () {\n" +
" Object value = getValue();\n" +
"\n" +
" if (value == null || \"\".equals(value) || \"null\".equals(value)) {\n" +
" throw new ActionDiscard();\n" +
" }\n" +
" }\n" +
"}",
title: "",
open: false,
@ -147,6 +290,51 @@ export default {
versions: {
isActivate: '未激活',
testStatus: '未测试',
status: '初始化'
},
cmOptions: {
// autorefresh: true,
// tabSize: 4,
// mode: 'text/x-properties',
// theme: 'ayu-mirage',
// line: true,
// viewportMargin: Infinity, //使
// highlightDifferences: true,
// autofocus: false,
// indentUnit: 2,
// smartIndent: true,
// readOnly: true, //
// showCursorWhenSelecting: true,
// firstLineNumber: 1
lineNumbers: true, //
mode: 'text/x-yaml', // model
gutters: ['CodeMirror-lint-markers'], //
theme: "ambiance",
lint: true, //
},
size: '',
@ -155,25 +343,75 @@ export default {
formLabelWidth: '120px',
arr:[]
arr: []
}
},
methods: {
selectEngineById,
showCode() {
this.opens = true
this.javaClass;
},
//
addVersion() {
this.versions = {},
this.versions.isActivate = '未激活',
this.versions.testStatus = '未测试',
this.versions.status = '初始化';
this.dialogFormVisible = true
},
back() {
this.versionFormVisible = false;
},
//id
selectEngineById(id) {
this.versionFormVisible = true;
sel(id).then(res => {
this.versions = res.data;
})
},
handleInsert() {
this.dialogFormVisible = true
this.dialogFormVisible = false;
this.versions.isActivate = 1
this.versions.testStatus = 1
this.versions.status = 1
add(this.versions).then(res => {
this.$modal.msgSuccess(res.msg || "新增成功")
})
this.dialogFormVisible=false;
this.List();
this.findById();
},
@ -184,7 +422,7 @@ export default {
this.$message.success(res.msg || "开启成功")
})
this.List();
this.findById();
},
forbiddenEngines(id) {
@ -208,8 +446,8 @@ export default {
},
selectEngine(){
selectEngineById(this.maintenance.id).then(res =>{
selectEngine() {
selectEngineById(this.maintenance.id).then(res => {
this.arr = res.data
})
},
@ -247,4 +485,16 @@ export default {
<style scoped>
.information-box >>> .CodeMirror {
font-family: monospace;
height: 71vh;
direction: ltr;
}
</style>