feat(): 增加规则版本功能-代码生成

master
DongZeLiang 2024-05-06 20:11:04 +08:00
parent 968b238057
commit a32d7140e2
2 changed files with 55 additions and 4 deletions

View File

@ -6,13 +6,22 @@
</div> </div>
<el-form ref="form" :model="ruleEngineCommonConfig" label-width="120px"> <el-form ref="form" :model="ruleEngineCommonConfig" label-width="120px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="24">
<el-form-item label="规则基础目录"> <el-form-item label="规则基础目录">
<el-input v-model="ruleEngineCommonConfig.packageName" disabled></el-input> <el-input v-model="ruleEngineCommonConfig.packageName" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="自定义基础目录">
<el-input v-model="ruleEngineCommonConfig.customName" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="模板基础目录">
<el-input v-model="ruleEngineCommonConfig.templateName" disabled></el-input>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
@ -24,7 +33,7 @@
</div> </div>
<el-tabs type="border-card" v-model="codeCardStatus"> <el-tabs type="border-card" v-model="codeCardStatus">
<el-tab-pane v-for="scope in scopeList" :label="scope.type" :name="scope.value"> <el-tab-pane v-for="scope in scopeList" :label="scope.type" :name="scope.value">
<encoding v-if="codeCardStatus === scope.value" style="height: 800px" v-model="scope.code" :read-only="true"></encoding> <encoding v-if="codeCardStatus === scope.value" style="height: 600px" v-model="scope.code" :read-only="true"></encoding>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</el-card> </el-card>
@ -44,6 +53,8 @@ export default {
codeCardStatus: "taskContext", codeCardStatus: "taskContext",
ruleEngineCommonConfig: { ruleEngineCommonConfig: {
packageName: "com.muyu.rule.engine", packageName: "com.muyu.rule.engine",
customName: "custom",
templateName: "template",
}, },
scopeList: [ scopeList: [
{ type: "任务", value: "taskContext", "code": { type: "任务", value: "taskContext", "code":

View File

@ -108,6 +108,12 @@
</el-form> </el-form>
<editor v-model="engineVersionForm.description" :min-height="150"/> <editor v-model="engineVersionForm.description" :min-height="150"/>
</el-card> </el-card>
<el-card class="box-card" v-if="engineVersionForm.codeIng != null">
<div slot="header" class="clearfix">
<span>引擎编码</span>
</div>
<encoding style="height: 800px" v-model="engineVersionForm.codeIng"></encoding>
</el-card>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="addVersionCancel"> </el-button> <el-button @click="addVersionCancel"> </el-button>
@ -118,8 +124,11 @@
</template> </template>
<script> <script>
import Encoding from "@/components/Encoding/index.vue";
export default { export default {
name: "EngineVersion", name: "EngineVersion",
components: {Encoding},
dicts: ['rule_engine_activate_status', 'rule_engine_type', 'sys_normal_disable', 'rule_engine_level', 'rule_engine_version_status'], dicts: ['rule_engine_activate_status', 'rule_engine_type', 'sys_normal_disable', 'rule_engine_level', 'rule_engine_version_status'],
data() { data() {
return { return {
@ -143,7 +152,7 @@ export default {
"versionCode": "", "versionCode": "",
"isActivate": "no-activate", "isActivate": "no-activate",
"description": "", "description": "",
"codeIng": "" "codeIng": null
} }
} }
}, },
@ -162,6 +171,7 @@ export default {
return false; return false;
} }
this.engineVersionForm.versionCode = this.ruleEngineInfo.engineCode + "_" + this.engineVersionForm.code this.engineVersionForm.versionCode = this.ruleEngineInfo.engineCode + "_" + this.engineVersionForm.code
this.engineVersionForm.codeIng = this.getCodeIng()
}, },
// //
addVersionSubmission(){ addVersionSubmission(){
@ -222,6 +232,36 @@ export default {
} }
} }
this.ruleEngineInfo = response.data this.ruleEngineInfo = response.data
},
//
getCodeIng(){
let packageName = "com.muyu.rule.engine";
let customName = "custom";
let templateName = "template";
let parentClass = "DataModelEngine";
let codeIng = `package ${packageName}.${customName};
import com.muyu.engine.action.ActionDiscard;
import com.muyu.engine.scope.${parentClass};
/**
* @Author: DongZeLiang
* @date: 2024/5/6
* @Description: ${this.engineVersionForm.name}-${this.engineVersionForm.code}
* @Version: 1.0
*/
public class ${this.engineVersionForm.versionCode} extends ${parentClass} {
@Override
public void execution () {
Object value = getValue();
if (value == null || "".equals(value) || "null".equals(value)) {
throw new ActionDiscard();
}
}
}`;
return codeIng;
} }
} }