| 1 | <script lang="ts" setup> | 1 | <script lang="ts" setup> | 
| 2 | import { Button, Tag } from 'ant-design-vue'; | 2 | import { Button, Tag } from 'ant-design-vue'; | 
| 3 | -  import { h, onMounted, ref, unref, Ref } from 'vue'; | 3 | +  import { h, onMounted, ref, unref } from 'vue'; | 
| 4 | import { DeviceProfileModel } from '/@/api/device/model/deviceModel'; | 4 | import { DeviceProfileModel } from '/@/api/device/model/deviceModel'; | 
| 5 | import { getScriptManageMeList } from '/@/api/scriptmanage/scriptManager'; | 5 | import { getScriptManageMeList } from '/@/api/scriptmanage/scriptManager'; | 
| 6 | import { Description, useDescription } from '/@/components/Description'; | 6 | import { Description, useDescription } from '/@/components/Description'; | 
| 7 | import { useModal } from '/@/components/Modal'; | 7 | import { useModal } from '/@/components/Modal'; | 
| 8 | -  import { SelectTypes } from 'ant-design-vue/es/select'; |  |  | 
| 9 | import { TCPProtocolTypeEnum, TCPProtocolTypeNameEnum } from '/@/enums/deviceEnum'; | 8 | import { TCPProtocolTypeEnum, TCPProtocolTypeNameEnum } from '/@/enums/deviceEnum'; | 
|  |  | 9 | +  import ConvertScriptModal from '/@/views/rule/script/TcpConversionScript/components/ConvertScriptModal.vue'; | 
|  |  | 10 | +  import { ScriptLanguageEnum } from '/@/enums/scriptEnum'; | 
|  |  | 11 | +  import { DataActionModeEnum } from '/@/enums/toolEnum'; | 
|  |  | 12 | +  import JavaScriptTestModal from '/@/views/rule/designer/src/components/JavaScriptFilterModal/JavaScriptTestModal.vue'; | 
| 10 |  | 13 |  | 
| 11 | const props = defineProps<{ | 14 | const props = defineProps<{ | 
| 12 | record: DeviceProfileModel['profileData']['transportConfiguration']; | 15 | record: DeviceProfileModel['profileData']['transportConfiguration']; | 
|  | @@ -14,7 +17,7 @@ |  | @@ -14,7 +17,7 @@ | 
| 14 |  | 17 |  | 
| 15 | const upScriptIdStr = ref(''); | 18 | const upScriptIdStr = ref(''); | 
| 16 |  | 19 |  | 
| 17 | -  const selectUpOptions: Ref<SelectTypes['options']> = ref([]); | 20 | +  const selectUpOptions: any = ref([]); | 
| 18 |  | 21 |  | 
| 19 | onMounted(async () => { | 22 | onMounted(async () => { | 
| 20 | selectUpOptions.value = await getAllScriptType('TRANSPORT_TCP_UP'); | 23 | selectUpOptions.value = await getAllScriptType('TRANSPORT_TCP_UP'); | 
|  | @@ -25,7 +28,7 @@ |  | @@ -25,7 +28,7 @@ | 
| 25 |  | 28 |  | 
| 26 | const getAllScriptType = async (type) => { | 29 | const getAllScriptType = async (type) => { | 
| 27 | const rest = await getScriptManageMeList({ scriptType: type }); | 30 | const rest = await getScriptManageMeList({ scriptType: type }); | 
| 28 | -    return rest.map((m) => ({ label: m.name, value: m.id })); | 31 | +    return rest.map((m) => ({ ...m, label: m.name, value: m.id })); | 
| 29 | }; | 32 | }; | 
| 30 |  | 33 |  | 
| 31 | const findScriptUpName = (scriptId) => { | 34 | const findScriptUpName = (scriptId) => { | 
|  | @@ -73,17 +76,44 @@ |  | @@ -73,17 +76,44 @@ | 
| 73 |  | 76 |  | 
| 74 | const [registerModal, { openModal }] = useModal(); | 77 | const [registerModal, { openModal }] = useModal(); | 
| 75 |  | 78 |  | 
|  |  | 79 | +  const testScriptLanguage = ref<string>(ScriptLanguageEnum.JavaScript); | 
| 76 | const handleTestUpScript = () => { | 80 | const handleTestUpScript = () => { | 
| 77 | -    const modalParams = { |  |  | 
| 78 | -      record: { id: unref(upScriptIdStr) }, |  |  | 
| 79 | -    }; |  |  | 
| 80 | -    openModal(true, modalParams); | 81 | +    // const modalParams = { | 
|  |  | 82 | +    //   record: { id: unref(upScriptIdStr) }, | 
|  |  | 83 | +    // }; | 
|  |  | 84 | +    const record = selectUpOptions.value?.find((it) => it.value === unref(upScriptIdStr)); | 
|  |  | 85 | +    const { scriptLanguage = ScriptLanguageEnum.JavaScript, convertJs, convertTbel } = record; | 
|  |  | 86 | +    testScriptLanguage.value = scriptLanguage!; | 
|  |  | 87 | +    openModal(true, { | 
|  |  | 88 | +      mode: DataActionModeEnum.CREATE, | 
|  |  | 89 | +      record: scriptLanguage === ScriptLanguageEnum.JavaScript ? convertJs : convertTbel, | 
|  |  | 90 | +    } as ModalParamsType<string>); | 
|  |  | 91 | + | 
|  |  | 92 | +    // openModal(true, modalParams); | 
|  |  | 93 | +  }; | 
|  |  | 94 | + | 
|  |  | 95 | +  const beforeTest = (params: Recordable) => { | 
|  |  | 96 | +    return { ...params, needMetadataAndMsgType: true }; | 
| 81 | }; | 97 | }; | 
| 82 | </script> | 98 | </script> | 
| 83 |  | 99 |  | 
| 84 | <template> | 100 | <template> | 
| 85 | <section> | 101 | <section> | 
| 86 | <Description @register="register" /> | 102 | <Description @register="register" /> | 
| 87 | -    <ConverScriptModal @register="registerModal" /> | 103 | +    <ConvertScriptModal @register="registerModal" /> | 
|  |  | 104 | +    <JavaScriptTestModal | 
|  |  | 105 | +      onlyTest | 
|  |  | 106 | +      @register="registerModal" | 
|  |  | 107 | +      :language="testScriptLanguage" | 
|  |  | 108 | +      :messageValue="{ | 
|  |  | 109 | +        params: '010304026C00883BF0', | 
|  |  | 110 | +      }" | 
|  |  | 111 | +      :javaScriptEditorProps="{ | 
|  |  | 112 | +        functionName: 'Transform', | 
|  |  | 113 | +        paramsName: ['msg', 'metadata', 'msgType'], | 
|  |  | 114 | +        scriptType: 'update', | 
|  |  | 115 | +      }" | 
|  |  | 116 | +      :beforeTest="beforeTest" | 
|  |  | 117 | +    /> | 
| 88 | </section> | 118 | </section> | 
| 89 | </template> | 119 | </template> |