Commit 1171fb985305bb7c7901033a76400463d8add1fd

Authored by loveumiko
1 parent 5b0be6fc

fix: 规则链转换脚本测试脚本功能修改

... ... @@ -151,6 +151,7 @@
151 151 defineExpose({
152 152 get,
153 153 set,
  154 + handleFormat,
154 155 });
155 156 </script>
156 157
... ...
1 1 <script lang="ts" setup>
2 2 import { Card, Select, Tag, Form, Button } from 'ant-design-vue';
3   - import { ref, toRaw, unref, watch } from 'vue';
  3 + import { nextTick, ref, toRaw, unref, watch } from 'vue';
4 4 import { MessageTypesEnum, MessageTypesNameEnum } from '../../../enum/form';
5 5 import { JSONEditor } from '/@/components/CodeEditor';
6 6 import { Icon } from '/@/components/Icon';
... ... @@ -38,6 +38,8 @@
38 38 (eventName: 'save', value: Value): void;
39 39 }>();
40 40
  41 + const jsonEditor = ref<InstanceType<typeof JSONEditor>>();
  42 +
41 43 const messageType = ref(MessageTypesEnum.POST_TELEMETRY_REQUEST);
42 44 const messageTypeOptions = Object.keys(MessageTypesEnum).map((value) => ({
43 45 label: MessageTypesNameEnum[value],
... ... @@ -118,6 +120,8 @@
118 120 const result = await executeTestScript();
119 121
120 122 outputContent.value = result;
  123 + await nextTick();
  124 + unref(jsonEditor)?.handleFormat();
121 125 };
122 126
123 127 const handleSave = async () => {
... ... @@ -196,6 +200,7 @@
196 200 <Card class="w-full h-full">
197 201 <JSONEditor
198 202 v-model:value="outputContent"
  203 + ref="jsonEditor"
199 204 title="输出"
200 205 class="flex-auto"
201 206 height="100%"
... ...
... ... @@ -27,6 +27,7 @@
27 27
28 28 const handleSaveScript = (value: SaveValueType) => {
29 29 emit('save', value);
  30 +
30 31 closeModal();
31 32 };
32 33 </script>
... ...
... ... @@ -2,6 +2,14 @@ import { BasicColumn, FormSchema } from '/@/components/Table';
2 2 import { h } from 'vue';
3 3 import { Tag } from 'ant-design-vue';
4 4 import moment from 'moment';
  5 +// import {
  6 +// ClearAlarmFieldsEnum,
  7 +// ClearAlarmFieldsNameEnum,
  8 +// } from '../../designer/enum/formField/action';
  9 +import { useComponentRegister } from '/@/components/Form';
  10 +import { JavascriptEditorWithTestModal } from '../../designer/src/components/JavaScriptFilterModal';
  11 +
  12 +useComponentRegister('JavascriptEditorWithTestModal', JavascriptEditorWithTestModal);
5 13
6 14 export enum StatusEnum {
7 15 ENABLE = 1,
... ... @@ -129,11 +137,25 @@ export const formSchema: FormSchema[] = [
129 137 placeholder: '请输入说明',
130 138 },
131 139 },
  140 + // {
  141 + // field: 'function',
  142 + // label: '',
  143 + // component: 'Input',
  144 + // slot: 'function',
  145 + // },
132 146 {
133 147 field: 'function',
134   - label: '',
135   - component: 'Input',
136   - slot: 'function',
  148 + component: 'JavascriptEditorWithTestModal',
  149 + label: '转换函数',
  150 + changeEvent: 'update:value',
  151 + componentProps: {
  152 + javaScriptEditorProps: {
  153 + functionName: 'Details',
  154 + paramsName: ['msg', 'metadata', 'msgType'],
  155 + scriptType: 'json',
  156 + },
  157 + buttonName: '测试转换功能',
  158 + },
137 159 },
138 160 {
139 161 field: 'id',
... ...
... ... @@ -111,6 +111,7 @@
111 111 aceEditor.value.setValue(
112 112 jsScript ?? 'return {msg: msg, metadata: metadata, msgType: msgType};'
113 113 );
  114 + setFieldsValue({ function: 'return {msg: msg, metadata: metadata, msgType: msgType};' });
114 115 beautify(aceEditor.value.session);
115 116 };
116 117
... ...