Commit 2d5470bcf3bc85c703f5fd6e7c56ac480cd53265
1 parent
ff147137
xml转json
Showing
3 changed files
with
17 additions
and
21 deletions
yudao-ui-admin-vue3/package.json
| @@ -43,7 +43,7 @@ | @@ -43,7 +43,7 @@ | ||
| 43 | "echarts-wordcloud": "^2.1.0", | 43 | "echarts-wordcloud": "^2.1.0", |
| 44 | "element-plus": "2.2.28", | 44 | "element-plus": "2.2.28", |
| 45 | "fast-xml-parser": "^4.0.13", | 45 | "fast-xml-parser": "^4.0.13", |
| 46 | - "highlight.js": "^9.18.5", | 46 | + "highlight.js": "^11.7.0", |
| 47 | "intro.js": "^6.0.0", | 47 | "intro.js": "^6.0.0", |
| 48 | "jsencrypt": "^3.3.1", | 48 | "jsencrypt": "^3.3.1", |
| 49 | "lodash-es": "^4.17.21", | 49 | "lodash-es": "^4.17.21", |
| @@ -53,6 +53,7 @@ | @@ -53,6 +53,7 @@ | ||
| 53 | "pinia": "^2.0.29", | 53 | "pinia": "^2.0.29", |
| 54 | "qrcode": "^1.5.1", | 54 | "qrcode": "^1.5.1", |
| 55 | "qs": "^6.11.0", | 55 | "qs": "^6.11.0", |
| 56 | + "steady-xml": "^0.1.0", | ||
| 56 | "url": "^0.11.0", | 57 | "url": "^0.11.0", |
| 57 | "vue": "3.2.45", | 58 | "vue": "3.2.45", |
| 58 | "vue-i18n": "9.2.2", | 59 | "vue-i18n": "9.2.2", |
yudao-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue
| @@ -188,22 +188,14 @@ | @@ -188,22 +188,14 @@ | ||
| 188 | <!-- <div id="js-properties-panel" class="panel"></div> --> | 188 | <!-- <div id="js-properties-panel" class="panel"></div> --> |
| 189 | <!-- <div class="my-process-designer__canvas" ref="bpmn-canvas"></div> --> | 189 | <!-- <div class="my-process-designer__canvas" ref="bpmn-canvas"></div> --> |
| 190 | </div> | 190 | </div> |
| 191 | - <XModal | ||
| 192 | - title="预览" | ||
| 193 | - width="80%" | ||
| 194 | - height="90%" | ||
| 195 | - v-model="previewModelVisible" | ||
| 196 | - append-to-body | ||
| 197 | - destroy-on-close | ||
| 198 | - > | ||
| 199 | - <div v-highlight> | ||
| 200 | - <pre> | ||
| 201 | - <code> | 191 | + <XModal title="预览" width="80%" height="90%" v-model="previewModelVisible" destroy-on-close> |
| 192 | + <!-- append-to-body --> | ||
| 193 | + <pre v-highlight> | ||
| 194 | + <code class="hljs"> | ||
| 202 | <!-- 高亮代码块 --> | 195 | <!-- 高亮代码块 --> |
| 203 | {{ previewResult }} | 196 | {{ previewResult }} |
| 204 | </code> | 197 | </code> |
| 205 | </pre> | 198 | </pre> |
| 206 | - </div> | ||
| 207 | <!-- <pre> | 199 | <!-- <pre> |
| 208 | <code class="hljs" v-html="highlightedCode(previewType, previewResult)"></code> | 200 | <code class="hljs" v-html="highlightedCode(previewType, previewResult)"></code> |
| 209 | </pre> --> | 201 | </pre> --> |
| @@ -241,7 +233,7 @@ import flowableModdleExtension from './plugins/extension-moddle/flowable' | @@ -241,7 +233,7 @@ import flowableModdleExtension from './plugins/extension-moddle/flowable' | ||
| 241 | // 引入json转换与高亮 | 233 | // 引入json转换与高亮 |
| 242 | // import xml2js from 'xml-js' | 234 | // import xml2js from 'xml-js' |
| 243 | import xml2js from 'fast-xml-parser' | 235 | import xml2js from 'fast-xml-parser' |
| 244 | -// import { XmlNode, XmlNodeType, parseXmlString } from 'steady-xml' | 236 | +import { XmlNode, XmlNodeType, parseXmlString } from 'steady-xml' |
| 245 | // 代码高亮插件 | 237 | // 代码高亮插件 |
| 246 | // import hljs from 'highlight.js/lib/highlight' | 238 | // import hljs from 'highlight.js/lib/highlight' |
| 247 | // import 'highlight.js/styles/github-gist.css' | 239 | // import 'highlight.js/styles/github-gist.css' |
| @@ -638,18 +630,21 @@ const previewProcessJson = () => { | @@ -638,18 +630,21 @@ const previewProcessJson = () => { | ||
| 638 | 630 | ||
| 639 | // const rootNode = parseXmlString(xml) | 631 | // const rootNode = parseXmlString(xml) |
| 640 | // console.log(rootNode, 'rootNoderootNode') | 632 | // console.log(rootNode, 'rootNoderootNode') |
| 641 | - // const rootNodes = new XmlNode(XmlNodeType.Root) | ||
| 642 | - // rootNodes.toJsObject() | ||
| 643 | - // console.log(JSON.stringify(rootNodes), ';;;;;;;;;;;;;;;') | 633 | + const rootNodes = new XmlNode(XmlNodeType.Root, parseXmlString(xml)) |
| 634 | + // console.log(rootNodes, 'rootNodesrootNodesrootNodes') | ||
| 635 | + // console.log(rootNodes.parent.toJsObject(), 'rootNodes.toJSON()') | ||
| 636 | + // console.log(JSON.stringify(rootNodes.parent.toJsObject()), 'rootNodes.toJSON()') | ||
| 637 | + // console.log(JSON.stringify(rootNodes.parent.toJSON()), 'rootNodes.toJSON()') | ||
| 644 | 638 | ||
| 645 | const parser = new xml2js.XMLParser() | 639 | const parser = new xml2js.XMLParser() |
| 646 | let jObj = parser.parse(xml) | 640 | let jObj = parser.parse(xml) |
| 647 | - // console.log(jObj, 'jObjjObjjObjjObjjObj') | 641 | + console.log(jObj, 'jObjjObjjObjjObjjObj') |
| 648 | // const builder = new xml2js.XMLBuilder(xml) | 642 | // const builder = new xml2js.XMLBuilder(xml) |
| 649 | // const xmlContent = builder | 643 | // const xmlContent = builder |
| 650 | // console.log(xmlContent, 'xmlContent') | 644 | // console.log(xmlContent, 'xmlContent') |
| 651 | // console.log(xml2js, 'convertconvertconvert') | 645 | // console.log(xml2js, 'convertconvertconvert') |
| 652 | - previewResult.value = jObj | 646 | + previewResult.value = rootNodes.parent.toJSON() |
| 647 | + // previewResult.value = jObj | ||
| 653 | // previewResult.value = convert.xml2json(xml, {explicitArray : false},{ spaces: 2 }) | 648 | // previewResult.value = convert.xml2json(xml, {explicitArray : false},{ spaces: 2 }) |
| 654 | previewType.value = 'json' | 649 | previewType.value = 'json' |
| 655 | previewModelVisible.value = true | 650 | previewModelVisible.value = true |
yudao-ui-admin-vue3/src/main.ts
| @@ -50,7 +50,7 @@ import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css' | @@ -50,7 +50,7 @@ import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css' | ||
| 50 | import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css' | 50 | import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css' |
| 51 | 51 | ||
| 52 | import hljs from 'highlight.js' //导入代码高亮文件 | 52 | import hljs from 'highlight.js' //导入代码高亮文件 |
| 53 | -import 'highlight.js/styles/github-gist.css' //导入代码高亮样式 | 53 | +import 'highlight.js/styles/github.css' //导入代码高亮样式 新版 |
| 54 | 54 | ||
| 55 | // 本地开发模式 全局引入 element-plus 样式,加快第一次进入速度 | 55 | // 本地开发模式 全局引入 element-plus 样式,加快第一次进入速度 |
| 56 | if (isDevMode()) { | 56 | if (isDevMode()) { |
| @@ -66,7 +66,7 @@ const setupAll = async () => { | @@ -66,7 +66,7 @@ const setupAll = async () => { | ||
| 66 | app.directive('highlight', function (el) { | 66 | app.directive('highlight', function (el) { |
| 67 | const blocks = el.querySelectorAll('code') | 67 | const blocks = el.querySelectorAll('code') |
| 68 | blocks.forEach((block: any) => { | 68 | blocks.forEach((block: any) => { |
| 69 | - hljs.highlightBlock(block) | 69 | + hljs.highlightElement(block) |
| 70 | }) | 70 | }) |
| 71 | }) | 71 | }) |
| 72 | 72 |