Commit 6ad91962d462d3400ab7336c77d432a0c92c9958
1 parent
02fc83cf
fix: 修复JavaScriptFilterTest组件无法进行测试
Showing
3 changed files
with
41 additions
and
1 deletions
| 1 | -import { DeviceInfoItemType, DeviceTypeItem, PageParams } from './model'; | 1 | +import { DeviceInfoItemType, DeviceTypeItem, PageParams, ScriptTestParams } from './model'; |
| 2 | import { TBPaginationResult } from '/#/axios'; | 2 | import { TBPaginationResult } from '/#/axios'; |
| 3 | import { defHttp } from '/@/utils/http/axios'; | 3 | import { defHttp } from '/@/utils/http/axios'; |
| 4 | 4 | ||
| @@ -6,6 +6,7 @@ enum Api { | @@ -6,6 +6,7 @@ enum Api { | ||
| 6 | GET_DEVICE_INFOS = '/tenant/deviceInfos', | 6 | GET_DEVICE_INFOS = '/tenant/deviceInfos', |
| 7 | GET_DEVICE_TYPE = '/device/types', | 7 | GET_DEVICE_TYPE = '/device/types', |
| 8 | TENANT_QUEUE = '/tenant/queues', | 8 | TENANT_QUEUE = '/tenant/queues', |
| 9 | + TEST_SCRIPT = '/ruleChain/testScript', | ||
| 9 | } | 10 | } |
| 10 | 11 | ||
| 11 | enum Entity { | 12 | enum Entity { |
| @@ -142,3 +143,13 @@ export const getEntityEdge = (params: PageParams) => { | @@ -142,3 +143,13 @@ export const getEntityEdge = (params: PageParams) => { | ||
| 142 | } | 143 | } |
| 143 | ); | 144 | ); |
| 144 | }; | 145 | }; |
| 146 | + | ||
| 147 | +export const testScript = (data: ScriptTestParams) => { | ||
| 148 | + return defHttp.post<Record<'error' | 'output', string>>( | ||
| 149 | + { | ||
| 150 | + url: Api.TEST_SCRIPT, | ||
| 151 | + data, | ||
| 152 | + }, | ||
| 153 | + { joinPrefix: false } | ||
| 154 | + ); | ||
| 155 | +}; |
| @@ -52,3 +52,12 @@ export interface PageParams { | @@ -52,3 +52,12 @@ export interface PageParams { | ||
| 52 | sortProperty?: string; | 52 | sortProperty?: string; |
| 53 | sortOrder?: string; | 53 | sortOrder?: string; |
| 54 | } | 54 | } |
| 55 | + | ||
| 56 | +export interface ScriptTestParams { | ||
| 57 | + argNames?: string[]; | ||
| 58 | + metadata?: Recordable; | ||
| 59 | + msg?: string; | ||
| 60 | + msgType?: string; | ||
| 61 | + script?: string; | ||
| 62 | + scriptType?: string; | ||
| 63 | +} |
| @@ -77,13 +77,33 @@ | @@ -77,13 +77,33 @@ | ||
| 77 | return { msg, msgType, metadata: toRaw(unref(metadata)), javascriptFunction }; | 77 | return { msg, msgType, metadata: toRaw(unref(metadata)), javascriptFunction }; |
| 78 | }; | 78 | }; |
| 79 | 79 | ||
| 80 | + function executeTestScript() { | ||
| 81 | + try { | ||
| 82 | + const { javaScriptEditorProps } = props; | ||
| 83 | + const { paramsName } = javaScriptEditorProps; | ||
| 84 | + const fn = new Function(...(paramsName || [])!, unref(scriptContent)); | ||
| 85 | + const value = getValue(); | ||
| 86 | + const executeParams = paramsName!.map((key) => value[key]); | ||
| 87 | + | ||
| 88 | + return fn(...executeParams); | ||
| 89 | + } catch (error) { | ||
| 90 | + return error; | ||
| 91 | + } | ||
| 92 | + } | ||
| 93 | + | ||
| 80 | const handleTestScript = async () => { | 94 | const handleTestScript = async () => { |
| 81 | const flag = await handleValidate(); | 95 | const flag = await handleValidate(); |
| 96 | + | ||
| 82 | flag && emit('test', getValue()); | 97 | flag && emit('test', getValue()); |
| 98 | + | ||
| 99 | + const result = executeTestScript(); | ||
| 100 | + | ||
| 101 | + outputContent.value = result; | ||
| 83 | }; | 102 | }; |
| 84 | 103 | ||
| 85 | const handleSave = async () => { | 104 | const handleSave = async () => { |
| 86 | const flag = await handleValidate(); | 105 | const flag = await handleValidate(); |
| 106 | + | ||
| 87 | flag && emit('save', getValue()); | 107 | flag && emit('save', getValue()); |
| 88 | }; | 108 | }; |
| 89 | 109 |