Commit 575ff3f01ceff549ef0e789592c1fb62fb825c48

Authored by xp.Huang
2 parents 7ca5f8be 07b93f91

Merge branch 'fix/DEFECT-2098' into 'v1.4.0_dev'

fix: TCP产品详情,点击传输配置时,点击测试转换脚本无效

See merge request yunteng/thingskit-front!1355
1 1 <script lang="ts" setup>
2 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 4 import { DeviceProfileModel } from '/@/api/device/model/deviceModel';
5 5 import { getScriptManageMeList } from '/@/api/scriptmanage/scriptManager';
6 6 import { Description, useDescription } from '/@/components/Description';
7 7 import { useModal } from '/@/components/Modal';
8   - import { SelectTypes } from 'ant-design-vue/es/select';
9 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 14 const props = defineProps<{
12 15 record: DeviceProfileModel['profileData']['transportConfiguration'];
... ... @@ -14,7 +17,7 @@
14 17
15 18 const upScriptIdStr = ref('');
16 19
17   - const selectUpOptions: Ref<SelectTypes['options']> = ref([]);
  20 + const selectUpOptions: any = ref([]);
18 21
19 22 onMounted(async () => {
20 23 selectUpOptions.value = await getAllScriptType('TRANSPORT_TCP_UP');
... ... @@ -25,7 +28,7 @@
25 28
26 29 const getAllScriptType = async (type) => {
27 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 34 const findScriptUpName = (scriptId) => {
... ... @@ -73,17 +76,44 @@
73 76
74 77 const [registerModal, { openModal }] = useModal();
75 78
  79 + const testScriptLanguage = ref<string>(ScriptLanguageEnum.JavaScript);
76 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 98 </script>
83 99
84 100 <template>
85 101 <section>
86 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 118 </section>
89 119 </template>
... ...
... ... @@ -136,6 +136,9 @@
136 136 const setValue = async (value) => {
137 137 const scriptOption = await getAllScriptType(props.scriptType, props.serviceType);
138 138 selectOptions.value = scriptOption;
  139 + if (props.modelValue && !unref(selectOptions)?.some((item) => item.id === props.modelValue)) {
  140 + emits('update:modelValue', null);
  141 + }
139 142 if (!scriptOption.map((item) => item.value).includes(value)) {
140 143 scriptId.value = null;
141 144 } else scriptId.value = value;
... ...