Browse Source

update

main
wangshaoping 6 months ago
parent
commit
e66f058414
  1. 8
      io.sc.engine.rule.frontend/package.json
  2. 4
      io.sc.engine.rule.frontend/src/views/authorization/Authorization.vue
  3. 1
      io.sc.engine.rule.frontend/src/views/dictionary/ImportSampleDialog.vue
  4. 71
      io.sc.engine.rule.frontend/src/views/dictionary/dictionary.vue
  5. 4
      io.sc.engine.rule.frontend/src/views/function/Function.vue
  6. 1
      io.sc.engine.rule.frontend/src/views/lib/ImportSampleDialog.vue
  7. 10
      io.sc.engine.rule.frontend/src/views/lib/IndicatorGrid.vue
  8. 18
      io.sc.engine.rule.frontend/src/views/lib/Lib.vue
  9. 10
      io.sc.engine.rule.frontend/src/views/lib/LibGrid.vue
  10. 4
      io.sc.engine.rule.frontend/src/views/lib/ObjectPropertiesMatcherDialog.vue
  11. 94
      io.sc.engine.rule.frontend/src/views/lib/ProcessorGrid.vue
  12. 18
      io.sc.engine.rule.frontend/src/views/lib/TestCase.vue
  13. 16
      io.sc.engine.rule.frontend/src/views/lib/TestCaseParameter.vue
  14. 6
      io.sc.engine.rule.frontend/src/views/lib/ValidatorGrid.vue
  15. 2
      io.sc.engine.rule.frontend/src/views/resources/AttachmentDialog.vue
  16. 4
      io.sc.engine.rule.frontend/src/views/resources/Resources.vue
  17. 2
      io.sc.engine.rule.frontend/src/views/resources/StartDeployWorkflowDialog.vue
  18. 2
      io.sc.engine.rule.frontend/src/views/resources/designer/Model.vue
  19. 4
      io.sc.engine.rule.frontend/src/views/resources/designer/ObjectPropertiesMatcherDialog.vue
  20. 4
      io.sc.engine.rule.frontend/src/views/resources/designer/Option.vue
  21. 16
      io.sc.engine.rule.frontend/src/views/resources/designer/Parameter.vue
  22. 105
      io.sc.engine.rule.frontend/src/views/resources/designer/Processor.vue
  23. 16
      io.sc.engine.rule.frontend/src/views/resources/designer/TestCaseParameter.vue
  24. 18
      io.sc.engine.rule.frontend/src/views/resources/designer/Testcase.vue
  25. 5
      io.sc.engine.rule.frontend/src/views/resources/designer/Validator.vue
  26. 4
      io.sc.engine.rule.frontend/src/views/shared/AutoCompletionManager.ts
  27. 4
      io.sc.engine.rule.frontend/src/views/shared/MoveParameterDialog.vue
  28. 5
      io.sc.engine.rule.frontend/src/views/shared/SelectIndicatorDialog.vue
  29. 30
      io.sc.engine.rule.frontend/src/views/testcase/Testcase.vue
  30. 2
      io.sc.engine.rule.frontend/src/views/workflow/CompleteTaskDialog.vue
  31. 8
      io.sc.engine.rule.frontend/src/views/workflow/Workflow.vue
  32. 4
      io.sc.platform.core.frontend/package.json

8
io.sc.engine.rule.frontend/package.json

@ -34,7 +34,7 @@
"@types/node": "22.5.4",
"@typescript-eslint/eslint-plugin": "8.5.0",
"@typescript-eslint/parser": "8.5.0",
"@vue/compiler-sfc": "3.5.3",
"@vue/compiler-sfc": "3.5.4",
"@webpack-cli/serve": "2.0.5",
"autoprefixer": "10.4.20",
"babel-loader": "9.1.3",
@ -65,7 +65,7 @@
"webpack-cli": "5.1.4",
"webpack-dev-server": "5.1.0",
"webpack-merge": "6.0.1",
"@vue/babel-plugin-jsx": "1.2.4"
"@vue/babel-plugin-jsx": "1.2.2"
},
"dependencies": {
"@codemirror/autocomplete": "6.18.0",
@ -95,7 +95,7 @@
"platform-core": "8.1.323",
"quasar": "2.16.11",
"tailwindcss": "3.4.10",
"vue": "3.4.38",
"vue": "3.5.4",
"vue-dompurify-html": "5.1.0",
"vue-i18n": "10.0.0",
"vue-router": "4.4.3",
@ -115,4 +115,4 @@
"@univerjs/thread-comment": "0.2.12",
"svg-path-commander": "2.0.10"
}
}
}

4
io.sc.engine.rule.frontend/src/views/authorization/Authorization.vue

@ -45,8 +45,8 @@
},
}"
@row-click="
(evt, row, index) => {
roleIdRef = row.id;
(args) => {
roleIdRef = args.row.id;
resourceTreeGridRef?.refresh();
}
"

1
io.sc.engine.rule.frontend/src/views/dictionary/ImportSampleDialog.vue

@ -25,7 +25,6 @@
click: (arg) => {
if (arg.tickeds && arg.tickeds.length > 0) {
const ids = Tools.extractProperties(arg.tickeds, 'id');
console.log(ids);
DialogManager.confirm($t('re.dictionary.importSample.grid.toolbar.import.tip'), () => {
axios.post(Environment.apiContextPath('/api/re/dictionary/createExample'), ids).then(() => {
close();

71
io.sc.engine.rule.frontend/src/views/dictionary/dictionary.vue

@ -255,8 +255,8 @@
form: {
colsNum: 1,
fields: [
{ name: 'parent', label: $t('parent'), type: 'w-text', hidden: true },
{ name: 'type', label: $t('type'), type: 'w-text', hidden: true },
{ name: 'parent', label: $t('parent'), type: 'w-text', showIf: false },
{ name: 'type', label: $t('type'), type: 'w-text', showIf: false },
{
name: 'code',
label: $t('code'),
@ -266,7 +266,7 @@
return type !== 'FOLDER';
},
},
{ name: 'name', label: $t('name'), type: 'w-text', required: true },
{ name: 'name', label: $t('name'), type: 'w-text', requiredIf: true },
{ name: 'description', label: $t('description'), type: 'w-text' },
{
name: 'javaClassName',
@ -301,14 +301,13 @@
},
}"
@row-click="
(evt, row, index) => {
currentSelectedDictionaryIdRef = row.id;
console.log(currentSelectedDictionaryIdRef);
if (row.type === 'UD_JAVA_CLASS') {
(args) => {
currentSelectedDictionaryIdRef = args.row.id;
if (args.row.type === 'UD_JAVA_CLASS') {
divStatus.isShowFieldGrid = true;
divStatus.isShowEnumGrid = false;
fieldGridRef?.refresh();
} else if (row.type === 'ENUM') {
} else if (args.row.type === 'ENUM') {
divStatus.isShowFieldGrid = false;
divStatus.isShowEnumGrid = true;
enumGridRef?.refresh();
@ -353,7 +352,7 @@
:fetch-data-url="Environment.apiContextPath('/api/re/dictionary/userDefinedJavaClassField?dictionary=' + currentSelectedDictionaryIdRef)"
:data-url="Environment.apiContextPath('/api/re/dictionary/userDefinedJavaClassField')"
:pageable="false"
sort-by="order"
:sort-by="['order']"
:query-form-cols-num="3"
:query-form-fields="[
{ name: 'code', label: $t('code'), type: 'w-text', clearable: true },
@ -400,14 +399,14 @@
form: {
colsNum: 1,
fields: [
{ name: 'dictionary', label: $t('dictionary'), type: 'w-text', hidden: true, defaultValue: currentSelectedDictionaryIdRef },
{ name: 'dictionary', label: $t('dictionary'), type: 'w-text', showIf: false, defaultValue: currentSelectedDictionaryIdRef },
{ name: 'code', label: $t('code'), type: 'w-text' },
{ name: 'name', label: $t('name'), type: 'w-text', required: true },
{ name: 'name', label: $t('name'), type: 'w-text', requiredIf: true },
{ name: 'description', label: $t('description'), type: 'w-text' },
{
name: 'valueType',
label: $t('re.dictionary.field.grid.entity.valueType'),
required: true,
requiredIf: true,
type: 'w-select',
options: ValueTypeList,
'onUpdate:modelValue': (value) => {
@ -415,9 +414,9 @@
axios.get(Environment.apiContextPath('/api/re/dictionary/getVersionsByCode?code=' + valueType)).then((response) => {
const versions = response.data;
const options = [];
for (const version of versions) {
versions.forEach((version) => {
options.push({ label: version.key, value: version.value });
}
});
valueTypeVersionOptionsRef = options;
});
},
@ -455,9 +454,8 @@
lang: 'java',
rows: 3,
placeholder: true,
autoCompletion: true,
autoCompletionOptions: autoCompletionOptionsRef,
extAutoCompletionOptions: GroovyFunctions,
autoCompletion: autoCompletion,
userDefinedFunctions: userDefinedFunctionsRef,
},
{ name: 'order', label: $t('order'), type: 'w-number' },
],
@ -493,14 +491,14 @@
.then((response) => {
const names = [];
if (response.data?.parentParameterNames && response.data?.parentParameterNames.length > 0) {
for (const item of response.data?.parentParameterNames) {
response.data.parentParameterNames.forEach((item) => {
names.push({ label: item, type: 'variable', apply: '${' + item + '}' });
}
});
}
if (response.data?.parameterNames && response.data?.parameterNames.length > 0) {
for (const item of response.data?.parameterNames) {
response.data.parameterNames.forEach((item) => {
names.push({ label: item, type: 'variable', apply: '${' + item + '}' });
}
});
}
autoCompletionOptionsRef = names;
});
@ -525,9 +523,9 @@
axios.get(Environment.apiContextPath('/api/re/dictionary/getVersionsByCode?code=' + valueType)).then((response) => {
const versions = response.data;
const options = [];
for (const version of versions) {
versions.forEach((version) => {
options.push({ label: version.key, value: version.value });
}
});
valueTypeVersionOptionsRef = options;
});
}
@ -613,9 +611,9 @@ import { axios, Environment, Formater, EnumTools, DialogManager, Downloader } fr
import UserDefinedJavaClassDictionaryJsonDialog from './UserDefinedJavaClassDictionaryJsonDialog.vue';
import ImportDialog from './ImportDialog.vue';
import ImportSampleDialog from './ImportSampleDialog.vue';
import GroovyFunctions from '@/views/resources/designer/GroovyFunctions';
import { PlaceHolder } from '@/utils/PlaceHolder';
import ResourceDeployStatusTag from '@/views/shared/ResourceDeployStatusTag.vue';
import { AutoCompletionManager } from '@/views/shared/AutoCompletionManager';
const treeGridRef = ref();
const fieldGridRef = ref();
@ -625,7 +623,13 @@ const importDialogRef = ref();
const importSampleDialogRef = ref();
const currentSelectedDictionaryIdRef = ref('');
const valueTypeVersionOptionsRef = ref();
const autoCompletionOptionsRef = ref();
const autoCompletionManager = new AutoCompletionManager();
const userDefinedFunctionsRef = ref();
const autoCompletion = (context) => {
return autoCompletionManager.autoCompletion(context);
};
const divStatus = reactive({
isShowFieldGrid: false,
isShowEnumGrid: false,
@ -638,9 +642,22 @@ const response = await axios.get(Environment.apiContextPath('/api/re/dictionary/
if (response && response.data) {
ValueTypeMap = {};
ValueTypeList = [];
for (const item of response.data) {
response.data.forEach((item) => {
ValueTypeMap[item.key] = item.value;
ValueTypeList.push({ value: item.key, label: item.value });
}
});
}
axios.get(Environment.apiContextPath('/api/re/function?pageable=false')).then((response) => {
const options = [];
const items = response.data?.content;
if (items && items.length > 0) {
items.forEach((item) => {
if (item.enable) {
options.push(item);
}
});
}
userDefinedFunctionsRef.value = options;
});
</script>

4
io.sc.engine.rule.frontend/src/views/function/Function.vue

@ -80,8 +80,8 @@
form: {
colsNum: 1,
fields: [
{ name: 'name', label: $t('name'), type: 'w-text', required: true },
{ name: 'signature', label: $t('re.function.grid.entity.signature'), type: 'w-text', required: true },
{ name: 'name', label: $t('name'), type: 'w-text', requiredIf: true },
{ name: 'signature', label: $t('re.function.grid.entity.signature'), type: 'w-text', requiredIf: true },
{ name: 'description', label: $t('description'), type: 'w-text' },
{
name: 'mathXml',

1
io.sc.engine.rule.frontend/src/views/lib/ImportSampleDialog.vue

@ -25,7 +25,6 @@
click: (arg) => {
if (arg.tickeds && arg.tickeds.length > 0) {
const ids = Tools.extractProperties(arg.tickeds, 'id');
console.log(ids);
DialogManager.confirm($t('re.dictionary.importSample.grid.toolbar.import.tip'), () => {
axios.post(Environment.apiContextPath('/api/re/dictionary/createExample'), ids).then(() => {
close();

10
io.sc.engine.rule.frontend/src/views/lib/IndicatorGrid.vue

@ -135,7 +135,7 @@
form: {
colsNum: 1,
fields: [
{ name: 'lib', label: $t('lib'), type: 'w-text', defaultValue: lib.id, hidden: true },
{ name: 'lib', label: $t('lib'), type: 'w-text', defaultValue: lib.id, showIf: false },
{ name: 'name', label: $t('name'), type: 'w-text' },
{ name: 'type', label: $t('type'), type: 'w-select', options: Options.enum(Enums.IndicatorType) },
{
@ -147,9 +147,9 @@
axios.get(Environment.apiContextPath('/api/re/dictionary/getVersionsByCode?code=' + value)).then((response) => {
const data = response.data;
const options = [];
for (const item of data) {
data.forEach((item) => {
options.push({ label: item.key, value: item.value });
}
});
valueTypeVersionRef = options;
});
},
@ -301,9 +301,9 @@ const response = await axios.get(Environment.apiContextPath('/api/re/dictionary/
if (response && response.data) {
ValueTypeMap = {};
ValueTypeList = [];
for (const item of response.data) {
response.data.forEach((item) => {
ValueTypeMap[item.key] = item.value;
ValueTypeList.push({ value: item.key, label: item.value });
}
});
}
</script>

18
io.sc.engine.rule.frontend/src/views/lib/Lib.vue

@ -4,9 +4,9 @@
<LibGrid
ref="libTreeGridRef"
@row-click="
(evt, row, index) => {
if (row.type === 'INDICATOR') {
currentSelectedLibRef = row;
(args) => {
if (args.row.type === 'INDICATOR') {
currentSelectedLibRef = args.row;
readOnlyRef = currentSelectedLibRef.status !== 'SKETCH';
showStatus.detail = true;
indicatorGridRef?.refresh();
@ -39,13 +39,13 @@
:lib="currentSelectedLibRef"
:read-only="readOnlyRef"
@row-click="
(evt, row, index) => {
currentSelectedIndicatorRef = row;
if (row.type === 'INTERFACE') {
(args) => {
currentSelectedIndicatorRef = args.row;
if (args.row.type === 'INTERFACE') {
showStatus.validator = true;
showStatus.processor = false;
validatorGridRef?.refresh();
} else if (row.type === 'INDICATOR') {
} else if (args.row.type === 'INDICATOR') {
showStatus.validator = false;
showStatus.processor = true;
processorGridRef?.refresh();
@ -86,8 +86,8 @@
ref="testcaseGridRef"
:lib="currentSelectedLibRef"
@row-click="
(evt, row, index) => {
currentSelectedTestCaseRef = row;
(args) => {
currentSelectedTestCaseRef = args.row;
testcaseParameterGridRef?.refresh();
}
"

10
io.sc.engine.rule.frontend/src/views/lib/LibGrid.vue

@ -224,8 +224,8 @@
form: {
colsNum: 1,
fields: [
{ name: 'parent', label: $t('parent'), type: 'w-text', hidden: true },
{ name: 'type', label: $t('type'), type: 'w-text', hidden: true },
{ name: 'parent', label: $t('parent'), type: 'w-text', showIf: false },
{ name: 'type', label: $t('type'), type: 'w-text', showIf: false },
{
name: 'code',
label: $t('code'),
@ -235,7 +235,7 @@
return type !== 'FOLDER';
},
},
{ name: 'name', label: $t('name'), type: 'w-text', required: true },
{ name: 'name', label: $t('name'), type: 'w-text', requiredIf: true },
{ name: 'description', label: $t('description'), type: 'w-text' },
],
},
@ -296,9 +296,9 @@ const response = await axios.get(Environment.apiContextPath('/api/re/dictionary/
if (response && response.data) {
ValueTypeMap = {};
ValueTypeList.splice(0, ValueTypeList.length);
for (const item of response.data) {
response.data.forEach((item) => {
ValueTypeMap[item.key] = item.value;
ValueTypeList.push({ value: item.key, label: item.value });
}
});
}
</script>

4
io.sc.engine.rule.frontend/src/views/lib/ObjectPropertiesMatcherDialog.vue

@ -51,7 +51,7 @@ const open = (objectProperties) => {
dialogRef.value.show();
axios.get(Environment.apiContextPath('/api/re/indicator/findIndicatorsByIndicatorId?indicatorId=' + props.indicator.id)).then((response) => {
const options = [];
for (const item of response.data) {
response.data.forEach((item) => {
const valueType = item.valueType;
if (
valueType !== 'java.lang.Boolean' &&
@ -69,7 +69,7 @@ const open = (objectProperties) => {
) {
options.push({ value: item.id, label: item.name });
}
}
});
indicatorOptionsRef.value = options;
});
};

94
io.sc.engine.rule.frontend/src/views/lib/ProcessorGrid.vue

@ -192,13 +192,12 @@
if (objs) {
str += `<div class='border border-b-0 overflow-auto' style='max-height:100px'>`;
str += `<table width='100%' height='100%'>`;
for (let i = 0; i < objs.length; i++) {
const obj = objs[i];
objs.forEach((obj) => {
str += '<tr>';
str += ` <td width='30%'>` + obj.name + `</td>`;
str += ` <td width='70%'><span>` + ('' + PlaceHolder.replace(obj.expression)) + '</span></td>';
str += '</tr>';
}
});
str += '</table>';
str += `</div>`;
}
@ -247,8 +246,7 @@
if (objs) {
let str = `<div class='border border-b-0'>`;
str += `<table width='100%'>`;
for (let i = 0; i < objs.length; i++) {
const obj = objs[i];
objs.forEach((obj) => {
str += '<tr>';
if (i == 0) {
str += ' <td rowspan=' + objs.length + '>' + PlaceHolder.replace(row.numberRangeVar) + '</td>';
@ -256,7 +254,7 @@
str += ' <td>' + Tools.generateIntervalRange(obj.minIncluded, obj.min, obj.max, obj.maxIncluded) + '</td>';
str += ' <td>' + ('' + PlaceHolder.replace('' + obj.value)) + '</td>';
str += '</tr>';
}
});
str += '</table>';
str += '</div>';
return str;
@ -267,13 +265,12 @@
if (objs) {
let str = `<div class='border border-b-0'>`;
str += `<table width='100%'>`;
for (let i = 0; i < objs.length; i++) {
const obj = objs[i];
objs.forEach((obj) => {
str += '<tr>';
str += ' <td>' + PlaceHolder.replace(obj.condition) + '</td>';
str += ' <td><span>' + ('' + PlaceHolder.replace(obj.value)) + '</span></td>';
str += '</tr>';
}
});
str += '</table>';
str += `</div>`;
return str;
@ -303,10 +300,10 @@
form: {
colsNum: 5,
fields: [
{ colSpan: 5, name: 'indicator', label: 'indicator', type: 'w-text', defaultValue: indicator.id, hidden: true },
{ colSpan: 5, name: 'id', label: $t('id'), type: 'w-text', hidden: true },
{ colSpan: 5, name: 'order', label: $t('order'), type: 'w-number', hidden: true },
{ colSpan: 5, name: 'type', label: $t('type'), type: 'w-text', hidden: true },
{ colSpan: 5, name: 'indicator', label: 'indicator', type: 'w-text', defaultValue: indicator.id, showIf: false },
{ colSpan: 5, name: 'id', label: $t('id'), type: 'w-text', showIf: false },
{ colSpan: 5, name: 'order', label: $t('order'), type: 'w-number', showIf: false },
{ colSpan: 5, name: 'type', label: $t('type'), type: 'w-text', showIf: false },
{
colSpan: 5,
name: 'objectCondition',
@ -350,13 +347,13 @@
const grid = gridRef.getEditorForm().getFieldComponent('objectProperties');
const localData = grid.getLocalData();
const objectProperties = [];
for (const item of localData) {
localData.forEach((item) => {
objectProperties.push({
code: item.code,
name: item.name,
expression: item.expression,
});
}
});
objectPropertiesMatcherDialogRef.open(objectProperties);
},
},
@ -367,10 +364,10 @@
click: (arg) => {
const grid = gridRef.getEditorForm().getFieldComponent('objectProperties');
const selecteds = arg.selecteds;
for (const selected of selecteds) {
selecteds.forEach((selected) => {
selected.expression = '';
grid.replaceRow(selected);
}
});
},
},
'separator',
@ -385,16 +382,16 @@
click: (arg) => {
const grid = gridRef.getEditorForm().getFieldComponent('objectProperties');
const rows = grid.getLocalData();
for (const row of rows) {
rows.forEach((row) => {
row.expression = '';
}
});
grid.setLocalData(rows);
},
},
],
primaryKey: 'code',
columns: [
{ name: 'code', label: 'code', hidden: true },
{ name: 'code', label: 'code', showIf: false },
{
width: 300,
name: 'name',
@ -428,7 +425,7 @@
form: {
colsNum: 1,
fields: [
{ name: 'code', label: 'code', hidden: true },
{ name: 'code', label: 'code', showIf: false },
{
name: 'expression',
label: $t('expression'),
@ -631,7 +628,7 @@
],
primaryKey: 'uuid',
columns: [
{ width: 200, name: 'uuid', label: 'uuid', hidden: true },
{ width: 200, name: 'uuid', label: 'uuid', showIf: false },
{
width: 60,
name: 'minIncluded',
@ -671,7 +668,7 @@
form: {
colsNum: 4,
fields: [
{ name: 'uuid', label: 'uuid', hidden: true, colSpan: 4 },
{ name: 'uuid', label: 'uuid', showIf: false, colSpan: 4 },
{ name: 'min', label: $t('minValue'), type: 'w-text', colSpan: 3 },
{ name: 'minIncluded', label: $t('include'), type: 'w-checkbox' },
{ name: 'max', label: $t('maxValue'), type: 'w-text', colSpan: 3 },
@ -738,7 +735,7 @@
],
primaryKey: 'uuid',
columns: [
{ name: 'uuid', label: 'uuid', hidden: true },
{ name: 'uuid', label: 'uuid', showIf: false },
{
name: 'condition',
label: $t('condition'),
@ -764,7 +761,7 @@
form: {
colsNum: 1,
fields: [
{ name: 'uuid', label: 'uuid', hidden: true },
{ name: 'uuid', label: 'uuid', showIf: false },
{
name: 'condition',
label: $t('condition'),
@ -874,9 +871,9 @@
const regex = /\$\{[\u0000-\uFFFF]+?\}/g;
const array = sql.match(regex);
const rows = [];
for (const item of array) {
array.forEach((item) => {
rows.push({ uuid: Tools.uuid(), name: item, value: '' });
}
});
const grid = gridRef.getEditorForm().getFieldComponent('sqlParameterValues');
grid.setLocalData(rows);
},
@ -905,7 +902,7 @@
],
primaryKey: 'uuid',
columns: [
{ name: 'uuid', label: 'uuid', hidden: true },
{ name: 'uuid', label: 'uuid', showIf: false },
{
width: '50%',
name: 'name',
@ -930,7 +927,7 @@
form: {
colsNum: 1,
fields: [
{ name: 'uuid', label: 'uuid', hidden: true },
{ name: 'uuid', label: 'uuid', showIf: false },
{
name: 'name',
label: $t('name'),
@ -995,9 +992,9 @@
})
.then((response) => {
const fieldMetaDatas = response.data.fieldMetaDatas;
for (const field of fieldMetaDatas) {
fieldMetaDatas.forEach((field) => {
field.value = field.name;
}
});
const data = response.data.data;
const grid = gridRef.getEditorForm().getFieldComponent('sqlQueryResult');
sqlQueryResultFieldsRef = fieldMetaDatas;
@ -1052,7 +1049,7 @@
],
primaryKey: 'uuid',
columns: [
{ name: 'uuid', label: 'uuid', hidden: true },
{ name: 'uuid', label: 'uuid', showIf: false },
{
width: '50%',
name: 'field',
@ -1077,7 +1074,7 @@
form: {
colsNum: 1,
fields: [
{ name: 'uuid', label: 'uuid', hidden: true },
{ name: 'uuid', label: 'uuid', showIf: false },
{
name: 'field',
label: $t('fieldName'),
@ -1155,19 +1152,19 @@
const grid = form.getFieldComponent('objectProperties');
const localData = grid.getLocalData();
const objectProperties = [];
for (const item of localData) {
localData.forEach((item) => {
objectProperties.push({
code: item.code,
name: item.name,
expression: item.expression,
});
}
});
data.objectProperties = Tools.object2Json(objectProperties);
} else if ('NUMBER_RANGE' === data.type) {
const grid = form.getFieldComponent('numberRange');
const localData = grid.getLocalData();
const ranges = [];
for (const item of localData) {
localData.forEach((item) => {
ranges.push({
uuid: item.uuid,
minIncluded: item.minIncluded,
@ -1176,49 +1173,50 @@
maxIncluded: item.maxIncluded,
value: item.value,
});
}
});
data.numberRange = Tools.object2Json(ranges);
} else if ('CONDITION_RANGE' === data.type) {
const grid = form.getFieldComponent('conditionRange');
const localData = grid.getLocalData();
const ranges = [];
for (const item of localData) {
localData.forEach((item) => {
ranges.push({
uuid: item.uuid,
condition: item.condition,
value: item.value,
});
}
});
data.conditionRange = Tools.object2Json(ranges);
} else if ('SQL' === data.type) {
const sqlParameterValuesGrid = form.getFieldComponent('sqlParameterValues');
const sqlParameterValuesLocalData = sqlParameterValuesGrid.getLocalData();
const sqlParameterValues = [];
for (const item of sqlParameterValuesLocalData) {
sqlParameterValuesLocalData.forEach((item) => {
sqlParameterValues.push({
uuid: item.uuid,
name: item.name,
value: item.value,
});
}
});
data.sqlParameterValues = Tools.object2Json(sqlParameterValues);
const sqlFieldMappingGrid = form.getFieldComponent('sqlFieldMapping');
const sqlFieldMappingLocalData = sqlFieldMappingGrid.getLocalData();
const sqlFieldMapping = [];
for (const item of sqlFieldMappingLocalData) {
sqlFieldMappingLocalData.forEach((item) => {
sqlFieldMapping.push({
uuid: item.uuid,
field: item.field,
parameter: item.parameter,
});
}
});
data.sqlFieldMapping = Tools.object2Json(sqlFieldMapping);
}
}
"
@after-editor-open="
(row) => {
(args) => {
const row = args.data;
//
axios.get(Environment.apiContextPath('/api/re/common/listParameterAndValueTypeByIndicatorId/' + indicator.id)).then((response) => {
autoCompletionManager.setParameters(response.data.parameters);
@ -1242,9 +1240,9 @@
//
axios.get(Environment.apiContextPath('api/re/indicator/findIndicatorsByIndicatorId?indicatorId=' + indicator.id)).then((response) => {
const options = [];
for (const indicator of response.data) {
response.data.forEach((indicator) => {
options.push({ label: indicator.name, value: '${' + indicator.name + '}' });
}
});
indicatorOptionsRef = options;
});
@ -1331,11 +1329,11 @@ axios.get(Environment.apiContextPath('/api/re/function?pageable=false')).then((r
const options = [];
const items = response.data?.content;
if (items && items.length > 0) {
for (const item of items) {
items.forEach((item) => {
if (item.enable) {
options.push(item);
}
}
});
}
userDefinedFunctionsRef.value = options;
});

18
io.sc.engine.rule.frontend/src/views/lib/TestCase.vue

@ -58,8 +58,8 @@
'export',
]"
:columns="[
{ width: 50, name: 'order', label: $t('order'), hidden: true },
{ width: 100, name: 'id', label: $t('id'), hidden: true },
{ width: 50, name: 'order', label: $t('order'), showIf: false },
{ width: 100, name: 'id', label: $t('id'), showIf: false },
{
width: 80,
name: 'testResult',
@ -80,11 +80,11 @@
form: {
colsNum: 1,
fields: [
{ name: 'order', label: $t('order'), type: 'w-text', hidden: true },
{ name: 'id', label: $t('id'), type: 'w-text', hidden: true },
{ name: 'ownerType', label: $t('ownerType'), type: 'w-text', defaultValue: 'LIB', hidden: true },
{ name: 'owner', label: $t('owner'), type: 'w-text', defaultValue: lib.id, hidden: true },
{ name: 'name', label: $t('name'), type: 'w-text', required: true },
{ name: 'order', label: $t('order'), type: 'w-text', showIf: false },
{ name: 'id', label: $t('id'), type: 'w-text', showIf: false },
{ name: 'ownerType', label: $t('ownerType'), type: 'w-text', defaultValue: 'LIB', showIf: false },
{ name: 'owner', label: $t('owner'), type: 'w-text', defaultValue: lib.id, showIf: false },
{ name: 'name', label: $t('name'), type: 'w-text', requiredIf: true },
{ name: 'description', label: $t('description'), type: 'w-text' },
],
},
@ -146,9 +146,9 @@ const response = await axios.get(Environment.apiContextPath('/api/re/dictionary/
if (response && response.data) {
ValueTypeMap = {};
ValueTypeList = [];
for (const item of response.data) {
response.data.forEach((item) => {
ValueTypeMap[item.key] = item.value;
ValueTypeList.push({ value: item.key, label: item.value });
}
});
}
</script>

16
io.sc.engine.rule.frontend/src/views/lib/TestCaseParameter.vue

@ -87,12 +87,12 @@
form: {
colsNum: 1,
fields: [
{ name: 'testCase', label: $t('testCase'), type: 'w-text', defaultValue: testCase.id, hidden: true },
{ name: 'id', label: $t('id'), type: 'w-text', hidden: true },
{ name: 'source', label: $t('source'), type: 'w-text', hidden: true },
{ name: 'parameterType', label: $t('parameterType'), type: 'w-text', hidden: true },
{ name: 'scoreCardVarType', label: $t('scoreCardVarType'), type: 'w-text', hidden: true },
{ name: 'indicatorType', label: $t('indicatorType'), type: 'w-text', hidden: true },
{ name: 'testCase', label: $t('testCase'), type: 'w-text', defaultValue: testCase.id, showIf: false },
{ name: 'id', label: $t('id'), type: 'w-text', showIf: false },
{ name: 'source', label: $t('source'), type: 'w-text', showIf: false },
{ name: 'parameterType', label: $t('parameterType'), type: 'w-text', showIf: false },
{ name: 'scoreCardVarType', label: $t('scoreCardVarType'), type: 'w-text', showIf: false },
{ name: 'indicatorType', label: $t('indicatorType'), type: 'w-text', showIf: false },
{
name: 'inputValue',
label: $t('re.resources.designer.testCaseParameter.grid.entity.inputValue'),
@ -202,8 +202,8 @@ let ValueTypeMap = {};
const response = await axios.get(Environment.apiContextPath('/api/re/dictionary/getAllDictionaryMap'));
if (response && response.data) {
ValueTypeMap = {};
for (const item of response.data) {
response.data.forEach((item) => {
ValueTypeMap[item.key] = item.value;
}
});
}
</script>

6
io.sc.engine.rule.frontend/src/views/lib/ValidatorGrid.vue

@ -43,8 +43,8 @@
form: {
colsNum: 1,
fields: [
{ name: 'indicator', label: 'indicator', type: 'w-text', defaultValue: indicator.id, hidden: true },
{ name: 'id', label: $t('id'), type: 'w-text', hidden: true },
{ name: 'indicator', label: 'indicator', type: 'w-text', defaultValue: indicator.id, showIf: false },
{ name: 'id', label: $t('id'), type: 'w-text', showIf: false },
{
name: 'description',
label: $t('description'),
@ -54,7 +54,7 @@
name: 'type',
label: $t('type'),
type: 'w-select',
required: true,
requiredIf: true,
options:
ValueTypeAndValidatorTypeMapping[ValueTypeAndValidatorTypeMapping[indicator.valueType] == null ? 'java.lang.Object' : indicator.valueType],
},

2
io.sc.engine.rule.frontend/src/views/resources/AttachmentDialog.vue

@ -37,7 +37,7 @@
:fetch-data-url="fetchDataUrl + '?' + foreignKey + '=' + foreignValue"
:data-url="dataUrl"
:columns="[
{ width: 120, name: 'id', label: $t('id'), hidden: true },
{ width: 120, name: 'id', label: $t('id'), showIf: false },
{
width: '100%',
name: 'name',

4
io.sc.engine.rule.frontend/src/views/resources/Resources.vue

@ -290,7 +290,7 @@
form: {
colsNum: 1,
fields: [
{ name: 'type', label: $t('type'), type: 'w-text', hidden: true },
{ name: 'type', label: $t('type'), type: 'w-text', showIf: false },
{
name: 'code',
label: $t('code'),
@ -300,7 +300,7 @@
return type === 'MODEL' || type === 'SCORE_CARD';
},
},
{ name: 'name', label: $t('name'), type: 'w-text', required: true },
{ name: 'name', label: $t('name'), type: 'w-text', requiredIf: true },
{ name: 'description', label: $t('description'), type: 'w-text' },
{
name: 'imports',

2
io.sc.engine.rule.frontend/src/views/resources/StartDeployWorkflowDialog.vue

@ -18,7 +18,7 @@
<w-form
ref="formRef"
:cols-num="1"
:fields="[{ name: 'treatment', label: $t('re.workflow.dialog.entity.treatment'), type: 'w-textarea', rows: 5, required: true }]"
:fields="[{ name: 'treatment', label: $t('re.workflow.dialog.entity.treatment'), type: 'w-textarea', rows: 5, requiredIf: true }]"
class="p-2"
></w-form>
<w-select-assignee-dialog ref="selectAssigneeDialogRef" @assignee-selected="assigneeSelected"></w-select-assignee-dialog>

2
io.sc.engine.rule.frontend/src/views/resources/designer/Model.vue

@ -135,7 +135,7 @@
colsNum: 1,
fields: [
{ name: 'code', label: $t('code'), type: 'w-text' },
{ name: 'name', label: $t('name'), type: 'w-text', required: true },
{ name: 'name', label: $t('name'), type: 'w-text', requiredIf: true },
{
name: 'category',
label: $t('category'),

4
io.sc.engine.rule.frontend/src/views/resources/designer/ObjectPropertiesMatcherDialog.vue

@ -51,7 +51,7 @@ const open = (objectProperties) => {
dialogRef.value.show();
axios.get(Environment.apiContextPath('/api/re/model/parameter/findParametersByParameterId?parameterId=' + props.parameter.id)).then((response) => {
const options = [];
for (const item of response.data) {
response.data.forEach((item) => {
const valueType = item.valueType;
if (
valueType !== 'java.lang.Boolean' &&
@ -69,7 +69,7 @@ const open = (objectProperties) => {
) {
options.push({ value: item.id, label: item.name });
}
}
});
parameterOptionsRef.value = options;
});
};

4
io.sc.engine.rule.frontend/src/views/resources/designer/Option.vue

@ -60,8 +60,8 @@
form: {
colsNum: 1,
fields: [
{ name: 'parameter', label: 'parameter', type: 'w-text', defaultValue: parameter.id, hidden: true },
{ name: 'id', label: $t('id'), type: 'w-text', hidden: true },
{ name: 'parameter', label: 'parameter', type: 'w-text', defaultValue: parameter.id, showIf: false },
{ name: 'id', label: $t('id'), type: 'w-text', showIf: false },
{
name: 'inputValue',
label: $t('re.resources.designer.option.grid.entity.inputValue'),

16
io.sc.engine.rule.frontend/src/views/resources/designer/Parameter.vue

@ -208,9 +208,9 @@
colsNum: 1,
fields: [
{ name: 'type', label: $t('type'), type: 'w-select', options: Options.enum(Enums.ParameterType), 'onUpdate:modelValue': (value) => {} },
{ name: 'model', label: $t('modelId'), type: 'w-text', defaultValue: model.id, hidden: true },
{ name: 'model', label: $t('modelId'), type: 'w-text', defaultValue: model.id, showIf: false },
{ name: 'code', label: $t('code'), type: 'w-text' },
{ name: 'name', label: $t('name'), type: 'w-text', required: true },
{ name: 'name', label: $t('name'), type: 'w-text', requiredIf: true },
{ name: 'description', label: $t('description'), type: 'w-text' },
{
name: 'libCode',
@ -267,9 +267,9 @@
axios.get(Environment.apiContextPath('/api/re/dictionary/getVersionsByCode?code=' + valueType)).then((response) => {
const versions = response.data;
const options = [];
for (const version of versions) {
versions.forEach((version) => {
options.push({ label: version.key, value: version.value });
}
});
valueTypeVersionOptionsRef = options;
});
},
@ -454,9 +454,9 @@
axios.get(Environment.apiContextPath('/api/re/dictionary/getVersionsByCode?code=' + valueType)).then((response) => {
const versions = response.data;
const options = [];
for (const version of versions) {
versions.forEach((version) => {
options.push({ label: version.key, value: version.value });
}
});
valueTypeVersionOptionsRef = options;
});
}
@ -514,10 +514,10 @@ const response = await axios.get(Environment.apiContextPath('/api/re/dictionary/
if (response && response.data) {
ValueTypeMap = {};
ValueTypeList.splice(0, ValueTypeList.length);
for (const item of response.data) {
response.data.forEach((item) => {
ValueTypeMap[item.key] = item.value;
ValueTypeList.push({ value: item.key, label: item.value });
}
});
}
onMounted(() => {

105
io.sc.engine.rule.frontend/src/views/resources/designer/Processor.vue

@ -319,13 +319,12 @@
if (objs) {
str += `<div class='border border-b-0 overflow-auto' style='max-height:100px'>`;
str += `<table width='100%' height='100%'>`;
for (let i = 0; i < objs.length; i++) {
const obj = objs[i];
objs.forEach((obj) => {
str += '<tr>';
str += ` <td width='30%'>` + obj.name + `</td>`;
str += ` <td width='70%'><span>` + ('' + PlaceHolder.replace(obj.expression)) + '</span></td>';
str += '</tr>';
}
});
str += '</table>';
str += `</div>`;
}
@ -372,16 +371,15 @@
if (objs) {
let str = `<div class='border border-b-0 overflow-auto' style='max-height:100px'>`;
str += `<table width='100%' height='100%'>`;
for (let i = 0; i < objs.length; i++) {
const obj = objs[i];
objs.forEach((obj, index) => {
str += '<tr>';
if (i == 0) {
if (index == 0) {
str += ' <td rowspan=' + objs.length + '>' + PlaceHolder.replace(row.numberRangeVar) + '</td>';
}
str += ' <td>' + Tools.generateIntervalRange(obj.minIncluded, obj.min, obj.max, obj.maxIncluded) + '</td>';
str += ' <td>' + ('' + PlaceHolder.replace('' + obj.value)) + '</td>';
str += '</tr>';
}
});
str += '</table>';
str += '</div>';
return str;
@ -392,13 +390,12 @@
if (objs) {
let str = `<div class='border border-b-0 overflow-auto' style='max-height:100px'>`;
str += `<table width='100%' height='100%'>`;
for (let i = 0; i < objs.length; i++) {
const obj = objs[i];
objs.forEach((obj) => {
str += '<tr>';
str += ' <td>' + PlaceHolder.replace(obj.condition) + '</td>';
str += ' <td><span>' + ('' + PlaceHolder.replace(obj.value)) + '</span></td>';
str += '</tr>';
}
});
str += '</table>';
str += `</div>`;
return str;
@ -434,12 +431,12 @@
form: {
colsNum: 5,
fields: [
{ colSpan: 5, name: 'parameter', label: 'parameter', type: 'w-text', defaultValue: parameter.id, hidden: true },
{ colSpan: 5, name: 'id', label: $t('id'), type: 'w-text', hidden: true },
{ colSpan: 5, name: 'order', label: $t('order'), type: 'w-number', hidden: true },
{ colSpan: 5, name: 'type', label: $t('type'), type: 'w-text', hidden: true },
{ colSpan: 5, name: 'description', label: $t('description'), type: 'w-text', hidden: true },
{ colSpan: 5, name: 'enable', label: $t('enable'), type: 'w-checkbox', defaultValue: true, hidden: true },
{ colSpan: 5, name: 'parameter', label: 'parameter', type: 'w-text', defaultValue: parameter.id, showIf: false },
{ colSpan: 5, name: 'id', label: $t('id'), type: 'w-text', showIf: false },
{ colSpan: 5, name: 'order', label: $t('order'), type: 'w-number', showIf: false },
{ colSpan: 5, name: 'type', label: $t('type'), type: 'w-text', showIf: false },
{ colSpan: 5, name: 'description', label: $t('description'), type: 'w-text', showIf: false },
{ colSpan: 5, name: 'enable', label: $t('enable'), type: 'w-checkbox', defaultValue: true, showIf: false },
{
colSpan: 5,
name: 'objectCondition',
@ -482,13 +479,13 @@
const grid = gridRef.getEditorForm().getFieldComponent('objectProperties');
const localData = grid.getLocalData();
const objectProperties = [];
for (const item of localData) {
localData.forEach((item) => {
objectProperties.push({
code: item.code,
name: item.name,
expression: item.expression,
});
}
});
objectPropertiesMatcherDialogRef.open(objectProperties);
},
},
@ -498,10 +495,10 @@
click: (arg) => {
const grid = gridRef.getEditorForm().getFieldComponent('objectProperties');
const selecteds = arg.selecteds;
for (const selected of selecteds) {
selecteds.forEach((selected) => {
selected.expression = '';
grid.replaceRow(selected);
}
});
},
},
'separator',
@ -516,16 +513,16 @@
click: (arg) => {
const grid = gridRef.getEditorForm().getFieldComponent('objectProperties');
const rows = grid.getLocalData();
for (const row of rows) {
rows.forEach((row) => {
row.expression = '';
}
});
grid.setLocalData(rows);
},
},
],
primaryKey: 'code',
columns: [
{ name: 'code', label: 'code', hidden: true },
{ name: 'code', label: 'code', showIf: false },
{
width: 300,
name: 'name',
@ -559,7 +556,7 @@
form: {
colsNum: 1,
fields: [
{ name: 'code', label: 'code', hidden: true },
{ name: 'code', label: 'code', showIf: false },
{
name: 'expression',
label: $t('expression'),
@ -773,7 +770,7 @@
],
primaryKey: 'uuid',
columns: [
{ width: 200, name: 'uuid', label: 'uuid', hidden: true },
{ width: 200, name: 'uuid', label: 'uuid', showIf: false },
{
width: 60,
name: 'minIncluded',
@ -813,7 +810,7 @@
form: {
colsNum: 4,
fields: [
{ name: 'uuid', label: 'uuid', hidden: true, colSpan: 4 },
{ name: 'uuid', label: 'uuid', showIf: false, colSpan: 4 },
{ name: 'min', label: $t('minValue'), type: 'w-text', colSpan: 3 },
{ name: 'minIncluded', label: $t('include'), type: 'w-checkbox' },
{ name: 'max', label: $t('maxValue'), type: 'w-text', colSpan: 3 },
@ -882,7 +879,7 @@
],
primaryKey: 'uuid',
columns: [
{ name: 'uuid', label: 'uuid', hidden: true },
{ name: 'uuid', label: 'uuid', showIf: false },
{
name: 'condition',
label: $t('condition'),
@ -908,7 +905,7 @@
form: {
colsNum: 1,
fields: [
{ name: 'uuid', label: 'uuid', hidden: true },
{ name: 'uuid', label: 'uuid', showIf: false },
{
name: 'condition',
label: $t('condition'),
@ -1076,9 +1073,9 @@
const regex = /\$\{[\u0000-\uFFFF]+?\}/g;
const array = sql.match(regex);
const rows = [];
for (const item of array) {
array.forEach((item) => {
rows.push({ uuid: Tools.uuid(), name: item, value: '' });
}
});
const grid = gridRef.getEditorForm().getFieldComponent('sqlParameterValues');
grid.setLocalData(rows);
},
@ -1107,7 +1104,7 @@
],
primaryKey: 'uuid',
columns: [
{ name: 'uuid', label: 'uuid', hidden: true },
{ name: 'uuid', label: 'uuid', showIf: false },
{
width: '50%',
name: 'name',
@ -1132,7 +1129,7 @@
form: {
colsNum: 1,
fields: [
{ name: 'uuid', label: 'uuid', hidden: true },
{ name: 'uuid', label: 'uuid', showIf: false },
{
name: 'name',
label: $t('name'),
@ -1196,9 +1193,9 @@
})
.then((response) => {
const fieldMetaDatas = response.data.fieldMetaDatas;
for (const field of fieldMetaDatas) {
fieldMetaDatas.forEach((field) => {
field.value = field.name;
}
});
const data = response.data.data;
const grid = gridRef.getEditorForm().getFieldComponent('sqlQueryResult');
sqlQueryResultFieldsRef = fieldMetaDatas;
@ -1253,7 +1250,7 @@
],
primaryKey: 'uuid',
columns: [
{ name: 'uuid', label: 'uuid', hidden: true },
{ name: 'uuid', label: 'uuid', showIf: false },
{
width: '50%',
name: 'field',
@ -1278,7 +1275,7 @@
form: {
colsNum: 1,
fields: [
{ name: 'uuid', label: 'uuid', hidden: true },
{ name: 'uuid', label: 'uuid', showIf: false },
{
name: 'field',
label: $t('fieldName'),
@ -1356,19 +1353,19 @@
const grid = form.getFieldComponent('objectProperties');
const localData = grid.getLocalData();
const objectProperties = [];
for (const item of localData) {
localData.forEach((item) => {
objectProperties.push({
code: item.code,
name: item.name,
expression: item.expression,
});
}
});
data.objectProperties = Tools.object2Json(objectProperties);
} else if ('NUMBER_RANGE' === data.type) {
const grid = form.getFieldComponent('numberRange');
const localData = grid.getLocalData();
const ranges = [];
for (const item of localData) {
localData.forEach((item) => {
ranges.push({
uuid: item.uuid,
minIncluded: item.minIncluded,
@ -1377,43 +1374,43 @@
maxIncluded: item.maxIncluded,
value: item.value,
});
}
});
data.numberRange = Tools.object2Json(ranges);
} else if ('CONDITION_RANGE' === data.type) {
const grid = form.getFieldComponent('conditionRange');
const localData = grid.getLocalData();
const ranges = [];
for (const item of localData) {
localData.forEach((item) => {
ranges.push({
uuid: item.uuid,
condition: item.condition,
value: item.value,
});
}
});
data.conditionRange = Tools.object2Json(ranges);
} else if ('SQL' === data.type) {
const sqlParameterValuesGrid = form.getFieldComponent('sqlParameterValues');
const sqlParameterValuesLocalData = sqlParameterValuesGrid.getLocalData();
const sqlParameterValues = [];
for (const item of sqlParameterValuesLocalData) {
sqlParameterValuesLocalData.forEach((item) => {
sqlParameterValues.push({
uuid: item.uuid,
name: item.name,
value: item.value,
});
}
});
data.sqlParameterValues = Tools.object2Json(sqlParameterValues);
const sqlFieldMappingGrid = form.getFieldComponent('sqlFieldMapping');
const sqlFieldMappingLocalData = sqlFieldMappingGrid.getLocalData();
const sqlFieldMapping = [];
for (const item of sqlFieldMappingLocalData) {
sqlFieldMappingLocalData.forEach((item) => {
sqlFieldMapping.push({
uuid: item.uuid,
field: item.field,
parameter: item.parameter,
});
}
});
data.sqlFieldMapping = Tools.object2Json(sqlFieldMapping);
}
}
@ -1431,11 +1428,11 @@
axios.get(Environment.apiContextPath('/api/re/model/parameter/listParemtersByParameterId/' + parameter.id)).then((response) => {
const parameters = response.data;
const options = [];
for (const item of parameters) {
parameters.forEach((item) => {
if (item.type === 'IN_OPTION') {
options.push({ label: item.name, value: item.code });
}
}
});
optionOptionsRef = options;
});
@ -1458,9 +1455,9 @@
//
axios.get(Environment.apiContextPath('api/re/model/parameter/findParametersByParameterId?parameterId=' + parameter.id)).then((response) => {
const options = [];
for (const indicator of response.data) {
response.data.forEach((indicator) => {
options.push({ label: indicator.name, value: '${' + indicator.name + '}' });
}
});
parameterOptionsRef = options;
});
@ -1582,9 +1579,9 @@ axios.get(Environment.apiContextPath('/api/system/datasource')).then((response)
const items = response.data?.content;
if (items) {
const options = [];
for (const item of items) {
items.forEach((item) => {
options.push({ label: item.name, value: item.name });
}
});
dsOptionsRef.value = options;
}
});
@ -1593,11 +1590,11 @@ axios.get(Environment.apiContextPath('/api/re/function?pageable=false')).then((r
const options = [];
const items = response.data?.content;
if (items && items.length > 0) {
for (const item of items) {
items.forEach((item) => {
if (item.enable) {
options.push(item);
}
}
});
}
userDefinedFunctionsRef.value = options;
});

16
io.sc.engine.rule.frontend/src/views/resources/designer/TestCaseParameter.vue

@ -83,12 +83,12 @@
form: {
colsNum: 1,
fields: [
{ name: 'testCase', label: $t('testCase'), type: 'w-text', defaultValue: testCase.id, hidden: true },
{ name: 'id', label: $t('id'), type: 'w-text', hidden: true },
{ name: 'source', label: $t('source'), type: 'w-text', hidden: true },
{ name: 'parameterType', label: $t('parameterType'), type: 'w-text', hidden: true },
{ name: 'scoreCardVarType', label: $t('scoreCardVarType'), type: 'w-text', hidden: true },
{ name: 'indicatorType', label: $t('indicatorType'), type: 'w-text', hidden: true },
{ name: 'testCase', label: $t('testCase'), type: 'w-text', defaultValue: testCase.id, showIf: false },
{ name: 'id', label: $t('id'), type: 'w-text', showIf: false },
{ name: 'source', label: $t('source'), type: 'w-text', showIf: false },
{ name: 'parameterType', label: $t('parameterType'), type: 'w-text', showIf: false },
{ name: 'scoreCardVarType', label: $t('scoreCardVarType'), type: 'w-text', showIf: false },
{ name: 'indicatorType', label: $t('indicatorType'), type: 'w-text', showIf: false },
{
name: 'inputValue',
label: $t('re.resources.designer.testCaseParameter.grid.entity.inputValue'),
@ -193,8 +193,8 @@ let ValueTypeMap = {};
const response = await axios.get(Environment.apiContextPath('/api/re/dictionary/getAllDictionaryMap'));
if (response && response.data) {
ValueTypeMap = {};
for (const item of response.data) {
response.data.forEach((item) => {
ValueTypeMap[item.key] = item.value;
}
});
}
</script>

18
io.sc.engine.rule.frontend/src/views/resources/designer/Testcase.vue

@ -82,8 +82,8 @@
'export',
]"
:columns="[
{ width: 60, name: 'order', label: $t('order'), align: 'right', hidden: true },
{ width: 100, name: 'id', label: $t('id'), hidden: true },
{ width: 60, name: 'order', label: $t('order'), align: 'right', showIf: false },
{ width: 100, name: 'id', label: $t('id'), showIf: false },
{
width: 60,
name: 'testResult',
@ -104,11 +104,11 @@
form: {
colsNum: 1,
fields: [
{ name: 'id', label: $t('id'), type: 'w-text', hidden: true },
{ name: 'ownerType', label: $t('ownerType'), type: 'w-text', defaultValue: 'MODEL', hidden: true },
{ name: 'owner', label: $t('owner'), type: 'w-text', defaultValue: model.resource, hidden: true },
{ name: 'ownerId', label: $t('ownerId'), type: 'w-text', defaultValue: model.resource, hidden: true },
{ name: 'name', label: $t('name'), type: 'w-text', required: true },
{ name: 'id', label: $t('id'), type: 'w-text', showIf: false },
{ name: 'ownerType', label: $t('ownerType'), type: 'w-text', defaultValue: 'MODEL', showIf: false },
{ name: 'owner', label: $t('owner'), type: 'w-text', defaultValue: model.resource, showIf: false },
{ name: 'ownerId', label: $t('ownerId'), type: 'w-text', defaultValue: model.resource, showIf: false },
{ name: 'name', label: $t('name'), type: 'w-text', requiredIf: true },
{ name: 'description', label: $t('description'), type: 'w-text' },
{ name: 'order', label: $t('order'), type: 'w-number' },
],
@ -188,10 +188,10 @@ const response = await axios.get(Environment.apiContextPath('/api/re/dictionary/
if (response && response.data) {
ValueTypeMap = {};
ValueTypeList = [];
for (const item of response.data) {
response.data.forEach((item) => {
ValueTypeMap[item.key] = item.value;
ValueTypeList.push({ value: item.key, label: item.value });
}
});
}
onMounted(() => {

5
io.sc.engine.rule.frontend/src/views/resources/designer/Validator.vue

@ -65,13 +65,12 @@
:editor="{
dialog: {
width: '600px',
height: '550px',
},
form: {
colsNum: 1,
fields: [
{ name: 'parameter', label: 'parameter', type: 'w-text', defaultValue: parameter.id, hidden: true },
{ name: 'id', label: $t('id'), type: 'w-text', hidden: true },
{ name: 'parameter', label: 'parameter', type: 'w-text', defaultValue: parameter.id, showIf: false },
{ name: 'id', label: $t('id'), type: 'w-text', showIf: false },
{
name: 'description',
label: $t('description'),

4
io.sc.engine.rule.frontend/src/views/shared/AutoCompletionManager.ts

@ -111,9 +111,9 @@ class AutoCompletionManager {
if (parameterType.properties && parameterType.properties.length > 0) {
const options = [];
for (const property of parameterType.properties) {
parameterType.properties.forEach((property) => {
options.push({ label: property.name, type: 'property', apply: '${' + property.name + '}', detail: this.findValueTypeInfo(property.valueType) });
}
});
return options;
}
}

4
io.sc.engine.rule.frontend/src/views/shared/MoveParameterDialog.vue

@ -11,9 +11,9 @@
click: () => {
const tickeds = parameterGrid.getTickedRows();
const parameterIds = [];
for (const ticked of tickeds) {
tickeds.forEach((ticked) => {
parameterIds.push(ticked.id);
}
});
axios
.post(Environment.apiContextPath('/api/re/model/parameter/move'), {
one: modelGridRef.getSelectedRows()[0].id,

5
io.sc.engine.rule.frontend/src/views/shared/SelectIndicatorDialog.vue

@ -81,7 +81,6 @@
]"
@row-click="
(evt, row, index) => {
console.log(row);
if (row.type === 'INDICATOR') {
currentSelectedLibIdRef = row.id;
} else {
@ -177,9 +176,9 @@ const response = await axios.get(Environment.apiContextPath('/api/re/dictionary/
if (response && response.data) {
ValueTypeMap = {};
ValueTypeList = [];
for (const item of response.data) {
response.data.forEach((item) => {
ValueTypeMap[item.key] = item.value;
ValueTypeList.push({ value: item.key, label: item.value });
}
});
}
</script>

30
io.sc.engine.rule.frontend/src/views/testcase/Testcase.vue

@ -62,8 +62,8 @@
'export',
]"
:columns="[
{ width: 50, name: 'order', label: $t('order'), hidden: true },
{ width: 100, name: 'id', label: $t('id'), hidden: true },
{ width: 50, name: 'order', label: $t('order'), showIf: false },
{ width: 100, name: 'id', label: $t('id'), showIf: false },
{
width: 60,
name: 'testResult',
@ -100,9 +100,9 @@
form: {
colsNum: 1,
fields: [
{ name: 'order', label: $t('order'), type: 'w-text', hidden: true },
{ name: 'id', label: $t('id'), type: 'w-text', hidden: true },
{ name: 'name', label: $t('name'), type: 'w-text', required: true },
{ name: 'order', label: $t('order'), type: 'w-text', showIf: false },
{ name: 'id', label: $t('id'), type: 'w-text', showIf: false },
{ name: 'name', label: $t('name'), type: 'w-text', requiredIf: true },
{ name: 'description', label: $t('description'), type: 'w-text' },
],
},
@ -126,8 +126,8 @@
},
}"
@row-click="
(evt, row, index) => {
currentSelectedTestCaseRef = row;
(args) => {
currentSelectedTestCaseRef = args.row;
testcaseParameterGridRef?.refresh();
}
"
@ -228,12 +228,12 @@
form: {
colsNum: 1,
fields: [
{ name: 'testCase', label: $t('testCase'), type: 'w-text', defaultValue: currentSelectedTestCaseRef.id, hidden: true },
{ name: 'id', label: $t('id'), type: 'w-text', hidden: true },
{ name: 'source', label: $t('source'), type: 'w-text', hidden: true },
{ name: 'parameterType', label: $t('parameterType'), type: 'w-text', hidden: true },
{ name: 'scoreCardVarType', label: $t('scoreCardVarType'), type: 'w-text', hidden: true },
{ name: 'indicatorType', label: $t('indicatorType'), type: 'w-text', hidden: true },
{ name: 'testCase', label: $t('testCase'), type: 'w-text', defaultValue: currentSelectedTestCaseRef.id, showIf: false },
{ name: 'id', label: $t('id'), type: 'w-text', showIf: false },
{ name: 'source', label: $t('source'), type: 'w-text', showIf: false },
{ name: 'parameterType', label: $t('parameterType'), type: 'w-text', showIf: false },
{ name: 'scoreCardVarType', label: $t('scoreCardVarType'), type: 'w-text', showIf: false },
{ name: 'indicatorType', label: $t('indicatorType'), type: 'w-text', showIf: false },
{
name: 'inputValue',
label: $t('re.resources.designer.testCaseParameter.grid.entity.inputValue'),
@ -334,9 +334,9 @@ const response = await axios.get(Environment.apiContextPath('/api/re/dictionary/
if (response && response.data) {
ValueTypeMap = {};
ValueTypeList = [];
for (const item of response.data) {
response.data.forEach((item) => {
ValueTypeMap[item.key] = item.value;
ValueTypeList.push({ value: item.key, label: item.value });
}
});
}
</script>

2
io.sc.engine.rule.frontend/src/views/workflow/CompleteTaskDialog.vue

@ -14,7 +14,7 @@
<w-form
v-model="formModelValue"
:cols-num="1"
:fields="[{ name: 'treatment', label: $t('re.workflow.dialog.entity.treatment'), type: 'w-textarea', rows: 5, required: true }]"
:fields="[{ name: 'treatment', label: $t('re.workflow.dialog.entity.treatment'), type: 'w-textarea', rows: 5, requiredIf: true }]"
>
</w-form>
</w-dialog>

8
io.sc.engine.rule.frontend/src/views/workflow/Workflow.vue

@ -129,7 +129,7 @@
'export',
]"
:columns="[
{ width: 150, name: 'resourceCode', label: $t('code'), hidden: true },
{ width: 150, name: 'resourceCode', label: $t('code'), showIf: false },
{ width: '100%', name: 'resourceName', label: $t('name') },
{ width: 100, name: 'resourceType', label: $t('type'), format: Formater.enum(Enums.ResourceType) },
{ width: 100, name: 'resourceVersion', label: $t('version') },
@ -156,9 +156,9 @@
form: {
colsNum: 1,
fields: [
{ name: 'order', label: $t('order'), type: 'w-text', hidden: true },
{ name: 'id', label: $t('id'), type: 'w-text', hidden: true },
{ name: 'name', label: $t('name'), type: 'w-text', required: true },
{ name: 'order', label: $t('order'), type: 'w-text', showIf: false },
{ name: 'id', label: $t('id'), type: 'w-text', showIf: false },
{ name: 'name', label: $t('name'), type: 'w-text', requiredIf: true },
{ name: 'description', label: $t('description'), type: 'w-text' },
],
},

4
io.sc.platform.core.frontend/package.json

@ -64,7 +64,7 @@
"@typescript-eslint/eslint-plugin": "8.5.0",
"@typescript-eslint/parser": "8.5.0",
"@vue/babel-plugin-jsx": "1.2.4",
"@vue/compiler-sfc": "3.5.3",
"@vue/compiler-sfc": "3.5.4",
"@webpack-cli/serve": "2.0.5",
"autoprefixer": "10.4.20",
"babel-loader": "9.1.3",
@ -136,7 +136,7 @@
"quasar": "2.16.11",
"svg-path-commander": "2.0.10",
"tailwindcss": "3.4.10",
"vue": "3.4.38",
"vue": "3.5.4",
"vue-dompurify-html": "5.1.0",
"vue-i18n": "10.0.0",
"vue-router": "4.4.3",

Loading…
Cancel
Save