1、条件表达式只保留QL

2、修复组信息无法修改问题
3、组下拉列表显示中文名
4、修复系统参数显示异常
5、脚本参数新增提示信息
This commit is contained in:
SGK\17962 2025-11-06 17:12:52 +08:00
parent 56d52be0ec
commit 5d0680a78f
13 changed files with 42 additions and 33 deletions

View File

@ -27,31 +27,26 @@
<script setup lang="ts"> <script setup lang="ts">
import { computed, ref } from 'vue' import { computed, ref } from 'vue'
const props = defineProps({ const props = defineProps({
type: { type: 3
type: Number,
// required: true,
validator: (val: number) => [1, 2, 3, 4].includes(val),
default:4
}
}) })
const show = ref(false) const show = ref(false)
const typeMap = { const typeMap = {
1: 'SQEL', // 1: 'SpEL',
2: 'Aviator', // 2: 'Aviator',
3: 'QL', 3: 'QL',
4: '表达式' // 4: ''
} }
const examples = { const examples = {
1: `# SQEL条件表达式示例\nuser.age > 18 \nAND department == 'IT' \nOR (vipLevel >= 3 AND creditScore > 800)`, // 1: `# SQEL\nuser.age > 18 \nAND department == 'IT' \nOR (vipLevel >= 3 AND creditScore > 800)`,
3: `// 查询语言示例\nfrom Employee e\nwhere e.salary > 10000\nand e.joinDate > '2020-01-01'\nselect e.name, e.position`, 3: `// 查询语言示例\nfrom Employee e\nwhere e.salary > 10000\nand e.joinDate > '2020-01-01'\nselect e.name, e.position`,
2: `## Aviator脚本示例\nlet user = {\n name: '张三',\n vip: true,\n credit: 1500\n};\n\nif(user.vip&&user.credit>1000){\n "尊享VIP服务"\n} else {\n "标准服务"\n}`, // 2: `## Aviator\nlet user = {\n name: '',\n vip: true,\n credit: 1500\n};\n\nif(user.vip&&user.credit>1000){\n "VIP"\n} else {\n ""\n}`,
4: `// 状态判断\n"#status == 'SUCCESS'"\n"#taskStatus != 'FAILED'" ` // 4: `// \n"#status == 'SUCCESS'"\n"#taskStatus != 'FAILED'" `
} }
const typeLabel = computed(() => typeMap[props.type]) const typeLabel = 'QL'
const exampleText = computed(() => examples[props.type]) const exampleText = `// 查询语言示例\nfrom Employee e\nwhere e.salary > 10000\nand e.joinDate > '2020-01-01'\nselect e.name, e.position`
const toggleExample = () => { const toggleExample = () => {
show.value = !show.value show.value = !show.value

View File

@ -32,7 +32,7 @@ const drawer = ref<boolean>(false);
const form = ref<Workflow.ConditionNodeType>({ const form = ref<Workflow.ConditionNodeType>({
decision: { decision: {
logicalCondition: 1, logicalCondition: 1,
expressionType: 1, expressionType: 3,
nodeExpression: '', nodeExpression: '',
checkContents: [] checkContents: []
} }
@ -136,6 +136,7 @@ const rules: FormRules = {
:key="strategy.value" :key="strategy.value"
:label="strategy.label" :label="strategy.label"
:value="strategy.value" :value="strategy.value"
/> />
</NSpace> </NSpace>
<example-expression :type="form.decision!.expressionType" /> <example-expression :type="form.decision!.expressionType" />

View File

@ -48,7 +48,7 @@ const addType = (type: number) => {
nodeName: `${$t('workflow.node.condition.conditionNodes.nodeName')} 1`, nodeName: `${$t('workflow.node.condition.conditionNodes.nodeName')} 1`,
priorityLevel: 1, priorityLevel: 1,
decision: { decision: {
expressionType: 1, expressionType: 3,
nodeExpression: undefined, nodeExpression: undefined,
logicalCondition: 1, logicalCondition: 1,
defaultDecision: 0 defaultDecision: 0
@ -58,7 +58,7 @@ const addType = (type: number) => {
nodeName: $t('workflow.node.condition.conditionNodes.otherNodeName'), nodeName: $t('workflow.node.condition.conditionNodes.otherNodeName'),
priorityLevel: 2, priorityLevel: 2,
decision: { decision: {
expressionType: 1, expressionType: 3,
nodeExpression: '#true', nodeExpression: '#true',
logicalCondition: 1, logicalCondition: 1,
defaultDecision: 1 defaultDecision: 1

View File

@ -47,7 +47,7 @@ const addTerm = () => {
nodeName: `${$t('workflow.node.condition.conditionNodes.nodeName')} ${len}`, nodeName: `${$t('workflow.node.condition.conditionNodes.nodeName')} ${len}`,
priorityLevel: len, priorityLevel: len,
decision: { decision: {
expressionType: 1, expressionType: 3,
nodeExpression: undefined, nodeExpression: undefined,
logicalCondition: 1, logicalCondition: 1,
defaultDecision: 0 defaultDecision: 0

View File

@ -158,9 +158,9 @@ export const logicalConditionRecord: Record<Api.Common.LogicalCondition, string>
export const logicalConditionOptions = transformRecordToNumberOption(logicalConditionRecord); export const logicalConditionOptions = transformRecordToNumberOption(logicalConditionRecord);
/** 表达式类型 */ /** 表达式类型 */
export const expressionRecord: Record<Api.Common.Expression, string> = { export const expressionRecord: { 3: string } = {
1: 'SpEl', // 1: 'SpEl',
2: 'Aviator', // 2: 'Aviator',
3: 'QL' 3: 'QL'
}; };

View File

@ -400,7 +400,7 @@ const local: App.I18n.Schema = {
job_task: '任务管理', job_task: '任务管理',
job_batch: '执行批次', job_batch: '执行批次',
system: '系统参数', system: '系统参数',
system_variable: '参数管理', system_manager: '参数管理'
}, },
page: { page: {
common: { common: {

View File

@ -34,7 +34,7 @@ export const views: Record<LastLevelRouteKey, RouteComponent | (() => Promise<Ro
retry_info: () => import("@/views/retry/info/index.vue"), retry_info: () => import("@/views/retry/info/index.vue"),
retry_scene: () => import("@/views/retry/scene/index.vue"), retry_scene: () => import("@/views/retry/scene/index.vue"),
retry_task: () => import("@/views/retry/task/index.vue"), retry_task: () => import("@/views/retry/task/index.vue"),
system_variable: () => import("@/views/system/manager/index.vue"), system_manager: () => import("@/views/system/manager/index.vue"),
user_manager: () => import("@/views/user/manager/index.vue"), user_manager: () => import("@/views/user/manager/index.vue"),
workflow_batch: () => import("@/views/workflow/batch/index.vue"), workflow_batch: () => import("@/views/workflow/batch/index.vue"),
workflow_form_add: () => import("@/views/workflow/form/add/index.vue"), workflow_form_add: () => import("@/views/workflow/form/add/index.vue"),

View File

@ -280,13 +280,13 @@ export const generatedRoutes: GeneratedRoute[] = [
}, },
children: [ children: [
{ {
name: 'system_variable', name: 'system_manager',
path: '/system/variable', path: '/system/manager',
component: 'view.system_variable', component: 'view.system_manager',
meta: { meta: {
title: 'system_variable', title: 'system_manager',
icon: 'system:parameter', i18nKey: 'route.system_manager',
i18nKey: 'route.system_variable' icon: 'system:config'
} }
} }
] ]

View File

@ -1057,6 +1057,7 @@ declare namespace Api {
Pick< Pick<
Api.Job.Job, Api.Job.Job,
| 'groupName' | 'groupName'
| 'groupNameCn'
| 'jobName' | 'jobName'
| 'ownerId' | 'ownerId'
| 'argsStr' | 'argsStr'

View File

@ -116,7 +116,9 @@ async function handleSubmit() {
initScene, initScene,
groupPartition groupPartition
}); });
if (error) return; if (error) {
throw error;
};
window.$message?.success($t('common.addSuccess')); window.$message?.success($t('common.addSuccess'));
} else { } else {
@ -212,7 +214,6 @@ async function handleCopy(source: string) {
:maxlength="64" :maxlength="64"
show-count show-count
:placeholder="$t('page.groupConfig.form.groupNameCn')" :placeholder="$t('page.groupConfig.form.groupNameCn')"
:disabled="props.operateType === 'edit'"
/> />
</NFormItem> </NFormItem>
<NFormItem :label="$t('page.groupConfig.groupStatus')" path="groupStatus"> <NFormItem :label="$t('page.groupConfig.groupStatus')" path="groupStatus">

View File

@ -28,7 +28,7 @@ function search() {
<template> <template>
<SearchForm :model="model" @search="search" @reset="reset"> <SearchForm :model="model" @search="search" @reset="reset">
<NFormItemGi span="24 s:12 m:6" :label="$t('page.groupConfig.groupName')" path="groupName" class="pr-24px"> <NFormItemGi span="24 s:12 m:6" :label="$t('page.groupConfig.groupName')" path="groupName" class="pr-24px">
<NInput v-model:value="model.groupName" :placeholder="$t('page.groupConfig.form.groupName')" clearable /> <NInput v-model:value="model.groupNameCn" :placeholder="$t('page.groupConfig.form.groupName')" clearable />
</NFormItemGi> </NFormItemGi>
<NFormItemGi span="24 s:12 m:6" :label="$t('page.groupConfig.groupStatus')" path="groupStatus" class="pr-24px"> <NFormItemGi span="24 s:12 m:6" :label="$t('page.groupConfig.groupStatus')" path="groupStatus" class="pr-24px">
<NSelect <NSelect

View File

@ -618,6 +618,17 @@ const scriptMethodOptions = [
<NSelect v-model:value="scriptParams.method" :options="scriptMethodOptions" /> <NSelect v-model:value="scriptParams.method" :options="scriptMethodOptions" />
</NFormItem> </NFormItem>
<NFormItem label="脚本参数"> <NFormItem label="脚本参数">
<template #label>
脚本参数
<NTooltip trigger="hover">
<template #trigger>
<icon-ic-round-info class="text-icon ml-4px" />
</template>
需下载脚本-填写需下载脚本的httpurl<br />
本地脚本-填写客户端本地脚本路径<br />
脚本代码-填写脚本内容
</NTooltip>
</template>
<CodeMirror v-model="scriptParams.scriptParams" lang="json" placeholder="请输入脚本参数" /> <CodeMirror v-model="scriptParams.scriptParams" lang="json" placeholder="请输入脚本参数" />
</NFormItem> </NFormItem>
<NFormItem label="编码格式"> <NFormItem label="编码格式">

View File

@ -29,7 +29,7 @@ function search() {
<template> <template>
<SearchForm btn-span="24 s:12 m:18 l:18 xl:18" :model="model" @search="search" @reset="reset"> <SearchForm btn-span="24 s:12 m:18 l:18 xl:18" :model="model" @search="search" @reset="reset">
<NFormItemGi span="24 s:12 m:6" :label="$t('page.jobTask.groupName')" path="groupName" class="pr-24px"> <NFormItemGi span="24 s:12 m:6" :label="$t('page.jobTask.groupName')" path="groupName" class="pr-24px">
<SelectGroup v-model:value="model.groupName" clearable /> <SelectGroup v-model:value="model.groupNameCn" clearable />
</NFormItemGi> </NFormItemGi>
<NFormItemGi span="24 s:12 m:6" :label="$t('page.jobTask.jobName')" path="jobName" class="pr-24px"> <NFormItemGi span="24 s:12 m:6" :label="$t('page.jobTask.jobName')" path="jobName" class="pr-24px">
<NInput v-model:value="model.jobName" :placeholder="$t('page.jobTask.form.jobName')" clearable /> <NInput v-model:value="model.jobName" :placeholder="$t('page.jobTask.form.jobName')" clearable />