| | |
| | | <template> |
| | | <div class="h-full flex flex-col"> |
| | | <div class="grid grid-cols-2 gap-2 h-full flex-0"> |
| | | <titleBox class="flex-0" style="background-color: #fff" :title="supervisor?.title"> |
| | | <template v-slot:left> |
| | | <el-button |
| | | icon="ele-ArrowLeft" |
| | | text |
| | | style="margin-right: 10px; margin-left: 10px; width: 40px" |
| | | size="small" |
| | | @click="backLastPage" |
| | | > |
| | | </el-button> |
| | | </template> |
| | | </titleBox> |
| | | |
| | | <div class="grid grid-cols-2 gap-2 h-full flex-auto"> |
| | | <div class="h-full overflow-auto"> |
| | | <el-table |
| | | :data="configList" |
| | |
| | | /> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="flex-auto overflow-auto mt-3"> |
| | | <codemirror |
| | | disabled |
| | | class="h-full overflow-auto" |
| | | v-model="jsonCode" |
| | | :style="{ height: '100%' }" |
| | | :autofocus="true" |
| | | :indent-with-tab="true" |
| | | :tab-size="2" |
| | | :extensions="jsonEditorExtensions" |
| | | @change="log('change', $event)" |
| | | @focus="log('focus', $event)" |
| | | @blur="log('blur', $event)" |
| | | /> |
| | | </div> --> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import { sql } from '@codemirror/lang-sql'; |
| | | import { xml } from '@codemirror/lang-xml'; |
| | | import { vscodeDark } from '@uiw/codemirror-theme-vscode'; |
| | | import { ref } from 'vue'; |
| | | import _ from 'lodash'; |
| | | import { onMounted, ref } from 'vue'; |
| | | import { Codemirror } from 'vue-codemirror'; |
| | | import * as codeExample from './testData'; |
| | | import _, { uniqueId } from 'lodash'; |
| | | import {v4 as uuid} from 'uuid' |
| | | import titleBox from '/@/components/titleBox.vue'; |
| | | |
| | | import { v4 as uuid } from 'uuid'; |
| | | import { getAmisXml } from '/@/api/supervisorAdmin'; |
| | | import { useCompRef } from '/@/utils/types'; |
| | | import { XMLParser, XMLBuilder, XMLValidator } from 'fast-xml-parser'; |
| | | import { ElMessage } from 'element-plus'; |
| | | |
| | | const props = defineProps(['supervisor']); |
| | | const emit = defineEmits(['backLastPage']); |
| | | const log = console.log; |
| | | const jsonCode = ref(codeExample.jsonCode); |
| | | const dockCode = ref(codeExample.dockCode); |
| | |
| | | const jsonEditorExtensions = [json(), vscodeDark]; |
| | | const sqlEditorExtensions = [sql(), vscodeDark]; |
| | | const dockEditorExtensions = [xml(), vscodeDark]; |
| | | |
| | | const sqlCodeEditorRef = useCompRef(Codemirror); |
| | | const resetStatus = () => { |
| | | configList.value = []; |
| | | sqlCode.value = ''; |
| | | }; |
| | | const backLastPage = () => { |
| | | // setTimeout(() => { |
| | | // resetStatus(); |
| | | // }, 300); |
| | | emit('backLastPage'); |
| | | }; |
| | | const dockRowChange = (row) => {}; |
| | | /** @description 路径分隔符 */ |
| | | const PATH_SEPARATOR = '/'; |
| | |
| | | value: AmisDockValue; |
| | | }; |
| | | |
| | | type AmisDockSQLConfig = AmisDockConfig&{ |
| | | queryId:string; |
| | | recordId:string; |
| | | } |
| | | type AmisDockSQLConfig = AmisDockConfig & { |
| | | queryId: string; |
| | | recordId: string; |
| | | }; |
| | | |
| | | const configList = ref<AmisDockConfig[]>([]); |
| | | const parseJSONData = (json: string) => { |
| | |
| | | if (key === 'api') { |
| | | const url = value.url; |
| | | const urlPath = path + PATH_SEPARATOR + 'url'; |
| | | const queryId ='query_'+uuid().slice(0,12); |
| | | |
| | | const queryId = 'query_' + uuid().slice(0, 12); |
| | | |
| | | // const recordId = uniqueId() |
| | | configList.value.push({ |
| | | queryId:queryId, |
| | | recordId:queryId, |
| | | queryId: queryId, |
| | | recordId: queryId, |
| | | type: AmisDockType.Api, |
| | | path: urlPath, |
| | | value: url, |
| | | url:url, |
| | | url: url, |
| | | } as any); |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | parseJSONData(codeExample.jsonCode); |
| | | |
| | | const xmlParserInstance = new XMLParser(); |
| | | const xmlBuilderInstance = new XMLBuilder(); |
| | | let xmlConfig = null; |
| | | onMounted(async () => { |
| | | xmlConfig = await getAmisXml({ |
| | | agent_id: props.supervisor.id, |
| | | }); |
| | | if (!xmlConfig?.amis_xml) { |
| | | // ElMessage.warning('暂无数据'); |
| | | return; |
| | | } |
| | | const jObj = xmlParserInstance.parse(xmlConfig.amis_xml); |
| | | if (!jObj?.AMIS_JSON) { |
| | | return; |
| | | } |
| | | const amisJSON = jObj.AMIS_JSON; |
| | | parseJSONData(amisJSON); |
| | | }); |
| | | </script> |