ll-plus 2.3.8 → 2.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/es/components/api-component/index.d.ts +416 -174
  2. package/es/components/api-component/index.mjs +1 -0
  3. package/es/components/api-component/index.mjs.map +1 -1
  4. package/es/components/api-component/src/api-component.vue.d.ts +416 -174
  5. package/es/components/api-component/src/api-component.vue2.mjs +14 -65
  6. package/es/components/api-component/src/api-component.vue2.mjs.map +1 -1
  7. package/es/components/api-component/src/components/api-url.vue.d.ts +12 -38
  8. package/es/components/api-component/src/components/body-component.vue.d.ts +393 -0
  9. package/es/components/api-component/src/components/body-component.vue.mjs +8 -0
  10. package/es/components/api-component/src/components/body-component.vue.mjs.map +1 -0
  11. package/es/components/api-component/src/components/body-component.vue2.mjs +126 -0
  12. package/es/components/api-component/src/components/body-component.vue2.mjs.map +1 -0
  13. package/es/components/api-component/src/components/json-xml-table-row.vue.d.ts +5 -2
  14. package/es/components/api-component/src/components/json-xml-table-row.vue2.mjs +10 -4
  15. package/es/components/api-component/src/components/json-xml-table-row.vue2.mjs.map +1 -1
  16. package/es/components/api-component/src/components/json-xml-table.vue.d.ts +14 -1
  17. package/es/components/api-component/src/components/json-xml-table.vue2.mjs +16 -5
  18. package/es/components/api-component/src/components/json-xml-table.vue2.mjs.map +1 -1
  19. package/es/components/api-component/src/components/json-xml.vue.d.ts +19 -2
  20. package/es/components/api-component/src/components/json-xml.vue2.mjs +18 -22
  21. package/es/components/api-component/src/components/json-xml.vue2.mjs.map +1 -1
  22. package/es/components/api-component/src/config/api-component.d.ts +8 -12
  23. package/es/components/api-component/src/config/api-component.mjs +4 -6
  24. package/es/components/api-component/src/config/api-component.mjs.map +1 -1
  25. package/es/components/api-component/src/config/api-url.d.ts +4 -6
  26. package/es/components/api-component/src/config/api-url.mjs +4 -6
  27. package/es/components/api-component/src/config/api-url.mjs.map +1 -1
  28. package/es/components/api-component/src/config/body.d.ts +19 -0
  29. package/es/components/api-component/src/config/body.mjs +30 -0
  30. package/es/components/api-component/src/config/body.mjs.map +1 -0
  31. package/es/components/api-component/src/config/index.d.ts +1 -0
  32. package/es/components/api-component/src/config/index.mjs +1 -0
  33. package/es/components/api-component/src/config/index.mjs.map +1 -1
  34. package/es/components/api-component/src/config/json-xml.d.ts +9 -1
  35. package/es/components/api-component/src/config/json-xml.mjs +12 -1
  36. package/es/components/api-component/src/config/json-xml.mjs.map +1 -1
  37. package/es/components/code-editor/index.d.ts +6 -6
  38. package/es/components/code-editor/src/code-editor.vue.d.ts +6 -6
  39. package/es/components/code-editor/src/config/code-editor.d.ts +2 -2
  40. package/es/components/code-editor/src/config/code-editor.mjs +1 -1
  41. package/es/components/code-editor/src/config/code-editor.mjs.map +1 -1
  42. package/es/components/index.mjs +1 -0
  43. package/es/components/index.mjs.map +1 -1
  44. package/es/components/operate-icon/index.d.ts +1 -1
  45. package/es/components/operate-icon/src/operate-icon.vue.d.ts +1 -1
  46. package/es/components/tabs-simple/index.d.ts +4 -0
  47. package/es/components/tabs-simple/src/tabs-simple.d.ts +1 -0
  48. package/es/components/tabs-simple/src/tabs-simple.mjs +4 -0
  49. package/es/components/tabs-simple/src/tabs-simple.mjs.map +1 -1
  50. package/es/components/tabs-simple/src/tabs-simple.vue.d.ts +4 -0
  51. package/es/components/tabs-simple/src/tabs-simple.vue2.mjs +5 -1
  52. package/es/components/tabs-simple/src/tabs-simple.vue2.mjs.map +1 -1
  53. package/es/index.mjs +1 -0
  54. package/es/index.mjs.map +1 -1
  55. package/es/utils/props/runtime.d.ts +2 -2
  56. package/index.full.js +548 -432
  57. package/index.full.min.js +25 -23
  58. package/index.full.min.js.map +1 -1
  59. package/index.full.min.mjs +24 -22
  60. package/index.full.min.mjs.map +1 -1
  61. package/index.full.mjs +548 -434
  62. package/lib/components/api-component/index.d.ts +416 -174
  63. package/lib/components/api-component/index.js +3 -0
  64. package/lib/components/api-component/index.js.map +1 -1
  65. package/lib/components/api-component/src/api-component.vue.d.ts +416 -174
  66. package/lib/components/api-component/src/api-component.vue2.js +11 -62
  67. package/lib/components/api-component/src/api-component.vue2.js.map +1 -1
  68. package/lib/components/api-component/src/components/api-url.vue.d.ts +12 -38
  69. package/lib/components/api-component/src/components/body-component.vue.d.ts +393 -0
  70. package/lib/components/api-component/src/components/body-component.vue.js +12 -0
  71. package/lib/components/api-component/src/components/body-component.vue.js.map +1 -0
  72. package/lib/components/api-component/src/components/body-component.vue2.js +130 -0
  73. package/lib/components/api-component/src/components/body-component.vue2.js.map +1 -0
  74. package/lib/components/api-component/src/components/json-xml-table-row.vue.d.ts +5 -2
  75. package/lib/components/api-component/src/components/json-xml-table-row.vue2.js +10 -4
  76. package/lib/components/api-component/src/components/json-xml-table-row.vue2.js.map +1 -1
  77. package/lib/components/api-component/src/components/json-xml-table.vue.d.ts +14 -1
  78. package/lib/components/api-component/src/components/json-xml-table.vue2.js +15 -4
  79. package/lib/components/api-component/src/components/json-xml-table.vue2.js.map +1 -1
  80. package/lib/components/api-component/src/components/json-xml.vue.d.ts +19 -2
  81. package/lib/components/api-component/src/components/json-xml.vue2.js +18 -22
  82. package/lib/components/api-component/src/components/json-xml.vue2.js.map +1 -1
  83. package/lib/components/api-component/src/config/api-component.d.ts +8 -12
  84. package/lib/components/api-component/src/config/api-component.js +4 -6
  85. package/lib/components/api-component/src/config/api-component.js.map +1 -1
  86. package/lib/components/api-component/src/config/api-url.d.ts +4 -6
  87. package/lib/components/api-component/src/config/api-url.js +4 -6
  88. package/lib/components/api-component/src/config/api-url.js.map +1 -1
  89. package/lib/components/api-component/src/config/body.d.ts +19 -0
  90. package/lib/components/api-component/src/config/body.js +33 -0
  91. package/lib/components/api-component/src/config/body.js.map +1 -0
  92. package/lib/components/api-component/src/config/index.d.ts +1 -0
  93. package/lib/components/api-component/src/config/index.js +3 -0
  94. package/lib/components/api-component/src/config/index.js.map +1 -1
  95. package/lib/components/api-component/src/config/json-xml.d.ts +9 -1
  96. package/lib/components/api-component/src/config/json-xml.js +12 -1
  97. package/lib/components/api-component/src/config/json-xml.js.map +1 -1
  98. package/lib/components/code-editor/index.d.ts +6 -6
  99. package/lib/components/code-editor/src/code-editor.vue.d.ts +6 -6
  100. package/lib/components/code-editor/src/config/code-editor.d.ts +2 -2
  101. package/lib/components/code-editor/src/config/code-editor.js +1 -1
  102. package/lib/components/code-editor/src/config/code-editor.js.map +1 -1
  103. package/lib/components/index.js +3 -0
  104. package/lib/components/index.js.map +1 -1
  105. package/lib/components/operate-icon/index.d.ts +1 -1
  106. package/lib/components/operate-icon/src/operate-icon.vue.d.ts +1 -1
  107. package/lib/components/tabs-simple/index.d.ts +4 -0
  108. package/lib/components/tabs-simple/src/tabs-simple.d.ts +1 -0
  109. package/lib/components/tabs-simple/src/tabs-simple.js +4 -0
  110. package/lib/components/tabs-simple/src/tabs-simple.js.map +1 -1
  111. package/lib/components/tabs-simple/src/tabs-simple.vue.d.ts +4 -0
  112. package/lib/components/tabs-simple/src/tabs-simple.vue2.js +5 -1
  113. package/lib/components/tabs-simple/src/tabs-simple.vue2.js.map +1 -1
  114. package/lib/index.js +3 -0
  115. package/lib/index.js.map +1 -1
  116. package/lib/utils/props/runtime.d.ts +2 -2
  117. package/package.json +1 -1
  118. package/theme-chalk/css/api-component.css +1 -1
  119. package/theme-chalk/css/index.css +1 -1
  120. package/theme-chalk/css/tabs-simple.css +1 -1
  121. package/types/packages/components/api-component/index.d.ts +416 -174
  122. package/types/packages/components/api-component/src/api-component.vue.d.ts +416 -174
  123. package/types/packages/components/api-component/src/components/api-url.vue.d.ts +12 -38
  124. package/types/packages/components/api-component/src/components/body-component.vue.d.ts +393 -0
  125. package/types/packages/components/api-component/src/components/json-xml-table-row.vue.d.ts +5 -2
  126. package/types/packages/components/api-component/src/components/json-xml-table.vue.d.ts +14 -1
  127. package/types/packages/components/api-component/src/components/json-xml.vue.d.ts +19 -2
  128. package/types/packages/components/api-component/src/config/api-component.d.ts +8 -12
  129. package/types/packages/components/api-component/src/config/api-url.d.ts +4 -6
  130. package/types/packages/components/api-component/src/config/body.d.ts +19 -0
  131. package/types/packages/components/api-component/src/config/index.d.ts +1 -0
  132. package/types/packages/components/api-component/src/config/json-xml.d.ts +9 -1
  133. package/types/packages/components/code-editor/index.d.ts +6 -6
  134. package/types/packages/components/code-editor/src/code-editor.vue.d.ts +6 -6
  135. package/types/packages/components/code-editor/src/config/code-editor.d.ts +2 -2
  136. package/types/packages/components/operate-icon/index.d.ts +1 -1
  137. package/types/packages/components/operate-icon/src/operate-icon.vue.d.ts +1 -1
  138. package/types/packages/components/tabs-simple/index.d.ts +4 -0
  139. package/types/packages/components/tabs-simple/src/tabs-simple.d.ts +1 -0
  140. package/types/packages/components/tabs-simple/src/tabs-simple.vue.d.ts +4 -0
  141. package/types/packages/utils/props/runtime.d.ts +2 -2
@@ -0,0 +1,8 @@
1
+ import _sfc_main from './body-component.vue2.mjs';
2
+ import _export_sfc from '../../../../_virtual/_plugin-vue_export-helper.mjs';
3
+
4
+ "use strict";
5
+ var BodyComponent = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "body-component.vue"]]);
6
+
7
+ export { BodyComponent as default };
8
+ //# sourceMappingURL=body-component.vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"body-component.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,126 @@
1
+ import { defineComponent, inject, ref, watch, resolveComponent, openBlock, createElementBlock, normalizeClass, unref, createVNode, createElementVNode, createBlock, createCommentVNode, createTextVNode } from 'vue';
2
+ import '../../../../utils/index.mjs';
3
+ import JsonXml from './json-xml.vue.mjs';
4
+ import paramsTable from './params-table.vue.mjs';
5
+ import '../config/index.mjs';
6
+ import { bodyProps, bodyEmits } from '../config/body.mjs';
7
+ import { createNamespace } from '../../../../utils/create-namespace.mjs';
8
+ import { bodyList } from '../config/api-component.mjs';
9
+ import { paramsTableColumns, formdataTableColumns } from '../config/table.mjs';
10
+
11
+ "use strict";
12
+ var _sfc_main = /* @__PURE__ */ defineComponent({
13
+ ...{ name: "BodyComponent" },
14
+ __name: "body-component",
15
+ props: bodyProps,
16
+ emits: bodyEmits,
17
+ setup(__props, { emit: __emit }) {
18
+ const props = __props;
19
+ const emits = __emit;
20
+ const bem = createNamespace("api-component");
21
+ const disabled = inject("disabled");
22
+ const bodyKey = ref(props.value.bodyParams.type);
23
+ const parameters = ref(
24
+ props.value.bodyParams.parameters
25
+ );
26
+ const jsonSchema = ref(
27
+ props.value.bodyParams.jsonSchema
28
+ );
29
+ const description = ref(
30
+ props.value.bodyParams.description
31
+ );
32
+ const handleChange = (e) => {
33
+ if (e === "none") {
34
+ parameters.value = [];
35
+ }
36
+ };
37
+ watch([parameters, jsonSchema, description], () => {
38
+ const obj = {
39
+ ...props.value,
40
+ bodyParams: {
41
+ type: bodyKey.value,
42
+ parameters: parameters.value,
43
+ jsonSchema: jsonSchema.value,
44
+ description: description.value
45
+ }
46
+ };
47
+ emits("change", obj);
48
+ emits("update:value", obj);
49
+ });
50
+ return (_ctx, _cache) => {
51
+ const _component_ll_tabs_simple = resolveComponent("ll-tabs-simple");
52
+ const _component_ll_code_editor = resolveComponent("ll-code-editor");
53
+ return openBlock(), createElementBlock(
54
+ "div",
55
+ {
56
+ class: normalizeClass(unref(bem).m("body"))
57
+ },
58
+ [
59
+ createVNode(_component_ll_tabs_simple, {
60
+ "active-key": bodyKey.value,
61
+ "onUpdate:activeKey": _cache[0] || (_cache[0] = ($event) => bodyKey.value = $event),
62
+ tabs: unref(bodyList),
63
+ class: normalizeClass(unref(bem).m("body-tab")),
64
+ disabled: unref(disabled),
65
+ onChange: handleChange
66
+ }, null, 8, ["active-key", "tabs", "class", "disabled"]),
67
+ createElementVNode(
68
+ "div",
69
+ {
70
+ class: normalizeClass(unref(bem).m("body-container"))
71
+ },
72
+ [
73
+ bodyKey.value === "json" ? (openBlock(), createBlock(JsonXml, {
74
+ key: 0,
75
+ value: jsonSchema.value,
76
+ "onUpdate:value": _cache[1] || (_cache[1] = ($event) => jsonSchema.value = $event),
77
+ type: bodyKey.value
78
+ }, null, 8, ["value", "type"])) : createCommentVNode("v-if", true),
79
+ bodyKey.value === "xml" ? (openBlock(), createBlock(JsonXml, {
80
+ key: 1,
81
+ value: jsonSchema.value,
82
+ "onUpdate:value": _cache[2] || (_cache[2] = ($event) => jsonSchema.value = $event),
83
+ type: bodyKey.value
84
+ }, null, 8, ["value", "type"])) : createCommentVNode("v-if", true),
85
+ bodyKey.value === "raw" ? (openBlock(), createBlock(_component_ll_code_editor, {
86
+ key: 2,
87
+ value: description.value,
88
+ "onUpdate:value": _cache[3] || (_cache[3] = ($event) => description.value = $event)
89
+ }, null, 8, ["value"])) : createCommentVNode("v-if", true),
90
+ bodyKey.value === "x-www-form-urlencoded" ? (openBlock(), createBlock(paramsTable, {
91
+ key: 3,
92
+ columns: unref(paramsTableColumns),
93
+ "data-source": parameters.value
94
+ }, null, 8, ["columns", "data-source"])) : createCommentVNode("v-if", true),
95
+ bodyKey.value === "form-data" ? (openBlock(), createBlock(paramsTable, {
96
+ key: 4,
97
+ columns: unref(formdataTableColumns),
98
+ "data-source": parameters.value
99
+ }, null, 8, ["columns", "data-source"])) : createCommentVNode("v-if", true),
100
+ bodyKey.value === "none" ? (openBlock(), createElementBlock(
101
+ "div",
102
+ {
103
+ key: 5,
104
+ class: normalizeClass(unref(bem).e("none"))
105
+ },
106
+ [
107
+ createCommentVNode(" <ll-empty>\n <template #title> \u8BE5\u8BF7\u6C42\u6CA1\u6709 Body \u4F53 </template>\n </ll-empty> "),
108
+ createTextVNode(" \u8BE5\u8BF7\u6C42\u6CA1\u6709 Body \u4F53 ")
109
+ ],
110
+ 2
111
+ /* CLASS */
112
+ )) : createCommentVNode("v-if", true)
113
+ ],
114
+ 2
115
+ /* CLASS */
116
+ )
117
+ ],
118
+ 2
119
+ /* CLASS */
120
+ );
121
+ };
122
+ }
123
+ });
124
+
125
+ export { _sfc_main as default };
126
+ //# sourceMappingURL=body-component.vue2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"body-component.vue2.mjs","sources":["../../../../../../packages/components/api-component/src/components/body-component.vue"],"sourcesContent":["<template>\n <div :class=\"bem.m('body')\">\n <ll-tabs-simple\n v-model:active-key=\"bodyKey\"\n :tabs=\"bodyList\"\n :class=\"bem.m('body-tab')\"\n :disabled=\"disabled\"\n @change=\"handleChange\"\n />\n <div :class=\"bem.m('body-container')\">\n <json-xml\n v-if=\"bodyKey === 'json'\"\n v-model:value=\"jsonSchema\"\n :type=\"bodyKey\"\n />\n <json-xml\n v-if=\"bodyKey === 'xml'\"\n v-model:value=\"jsonSchema\"\n :type=\"bodyKey\"\n />\n <ll-code-editor v-if=\"bodyKey === 'raw'\" v-model:value=\"description\" />\n <params-table\n v-if=\"bodyKey === 'x-www-form-urlencoded'\"\n :columns=\"paramsTableColumns\"\n :data-source=\"parameters\"\n />\n <params-table\n v-if=\"bodyKey === 'form-data'\"\n :columns=\"formdataTableColumns\"\n :data-source=\"parameters\"\n />\n <div v-if=\"bodyKey === 'none'\" :class=\"bem.e('none')\">\n <!-- <ll-empty>\n <template #title> 该请求没有 Body 体 </template>\n </ll-empty> -->\n 该请求没有 Body 体\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, inject } from 'vue'\nimport { createNamespace } from '@ll-plus/utils'\n\nimport JsonXml from './json-xml.vue'\n\nimport paramsTable from './params-table.vue'\n\nimport type { BodyParams } from '../config'\n\nimport {\n bodyProps,\n bodyEmits,\n formdataTableColumns,\n paramsTableColumns,\n bodyList\n} from '../config'\n\ndefineOptions({ name: 'BodyComponent' })\n\nconst props = defineProps(bodyProps)\n\nconst emits = defineEmits(bodyEmits)\n\nconst bem = createNamespace('api-component')\n\nconst disabled = inject('disabled')\n\nconst bodyKey = ref<BodyParams['type']>(props.value.bodyParams.type)\n\nconst parameters = ref<BodyParams['parameters']>(\n props.value.bodyParams.parameters\n)\n\nconst jsonSchema = ref<BodyParams['jsonSchema']>(\n props.value.bodyParams.jsonSchema\n)\n\nconst description = ref<BodyParams['description']>(\n props.value.bodyParams.description\n)\n\nconst handleChange = e => {\n if (e === 'none') {\n parameters.value = []\n }\n}\n\nwatch([parameters, jsonSchema, description], () => {\n const obj = {\n ...props.value,\n bodyParams: {\n type: bodyKey.value,\n parameters: parameters.value,\n jsonSchema: jsonSchema.value,\n description: description.value\n }\n }\n emits('change', obj)\n emits('update:value', obj)\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AA6DA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AAEd,IAAM,MAAA,GAAA,GAAM,gBAAgB,eAAe,CAAA,CAAA;AAE3C,IAAM,MAAA,QAAA,GAAW,OAAO,UAAU,CAAA,CAAA;AAElC,IAAA,MAAM,OAAU,GAAA,GAAA,CAAwB,KAAM,CAAA,KAAA,CAAM,WAAW,IAAI,CAAA,CAAA;AAEnE,IAAA,MAAM,UAAa,GAAA,GAAA;AAAA,MACjB,KAAA,CAAM,MAAM,UAAW,CAAA,UAAA;AAAA,KACzB,CAAA;AAEA,IAAA,MAAM,UAAa,GAAA,GAAA;AAAA,MACjB,KAAA,CAAM,MAAM,UAAW,CAAA,UAAA;AAAA,KACzB,CAAA;AAEA,IAAA,MAAM,WAAc,GAAA,GAAA;AAAA,MAClB,KAAA,CAAM,MAAM,UAAW,CAAA,WAAA;AAAA,KACzB,CAAA;AAEA,IAAA,MAAM,eAAe,CAAK,CAAA,KAAA;AACxB,MAAA,IAAI,MAAM,MAAQ,EAAA;AAChB,QAAA,UAAA,CAAW,QAAQ,EAAC,CAAA;AAAA,OACtB;AAAA,KACF,CAAA;AAEA,IAAA,KAAA,CAAM,CAAC,UAAA,EAAY,UAAY,EAAA,WAAW,GAAG,MAAM;AACjD,MAAA,MAAM,GAAM,GAAA;AAAA,QACV,GAAG,KAAM,CAAA,KAAA;AAAA,QACT,UAAY,EAAA;AAAA,UACV,MAAM,OAAQ,CAAA,KAAA;AAAA,UACd,YAAY,UAAW,CAAA,KAAA;AAAA,UACvB,YAAY,UAAW,CAAA,KAAA;AAAA,UACvB,aAAa,WAAY,CAAA,KAAA;AAAA,SAC3B;AAAA,OACF,CAAA;AACA,MAAA,KAAA,CAAM,UAAU,GAAG,CAAA,CAAA;AACnB,MAAA,KAAA,CAAM,gBAAgB,GAAG,CAAA,CAAA;AAAA,KAC1B,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,19 +1,22 @@
1
1
  declare const _default: import("vue").DefineComponent<{
2
2
  readonly data: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("../config").IJsonXmlItem) | (() => import("../config").IJsonXmlItem) | ((new (...args: any[]) => import("../config").IJsonXmlItem) | (() => import("../config").IJsonXmlItem))[], unknown, unknown, () => void, boolean>;
3
+ readonly list: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("../config").IJsonXmlItem[]) | (() => import("../config").IJsonXmlItem[]) | ((new (...args: any[]) => import("../config").IJsonXmlItem[]) | (() => import("../config").IJsonXmlItem[]))[], unknown, unknown, () => never[], boolean>;
3
4
  readonly parentData: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("../config").IJsonXmlItem) | (() => import("../config").IJsonXmlItem) | ((new (...args: any[]) => import("../config").IJsonXmlItem) | (() => import("../config").IJsonXmlItem))[], unknown, unknown, () => null, boolean>;
4
5
  readonly layer: import("ll-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
5
6
  readonly treeKey: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
6
7
  }, any, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
- change: () => boolean;
8
+ change: (val: import("../config").IJsonXmlItem) => boolean;
8
9
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
9
10
  readonly data: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("../config").IJsonXmlItem) | (() => import("../config").IJsonXmlItem) | ((new (...args: any[]) => import("../config").IJsonXmlItem) | (() => import("../config").IJsonXmlItem))[], unknown, unknown, () => void, boolean>;
11
+ readonly list: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("../config").IJsonXmlItem[]) | (() => import("../config").IJsonXmlItem[]) | ((new (...args: any[]) => import("../config").IJsonXmlItem[]) | (() => import("../config").IJsonXmlItem[]))[], unknown, unknown, () => never[], boolean>;
10
12
  readonly parentData: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("../config").IJsonXmlItem) | (() => import("../config").IJsonXmlItem) | ((new (...args: any[]) => import("../config").IJsonXmlItem) | (() => import("../config").IJsonXmlItem))[], unknown, unknown, () => null, boolean>;
11
13
  readonly layer: import("ll-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
12
14
  readonly treeKey: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
13
15
  }>> & {
14
- onChange?: (() => any) | undefined;
16
+ onChange?: ((val: import("../config").IJsonXmlItem) => any) | undefined;
15
17
  }, {
16
18
  readonly data: import("../config").IJsonXmlItem;
19
+ readonly list: import("../config").IJsonXmlItem[];
17
20
  readonly parentData: import("../config").IJsonXmlItem;
18
21
  readonly layer: number;
19
22
  readonly treeKey: string;
@@ -107,13 +107,18 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
107
107
  const { type, parentData: parentData2, innerData: innerData2 } = item;
108
108
  handleAdd(type, parentData2, innerData2);
109
109
  };
110
- const handleRowChange = () => {
111
- emits("change");
110
+ const handleRowChange = (child) => {
111
+ if (innerData.value.children) {
112
+ const index = innerData.value.children.findIndex(
113
+ (item) => item.key === child.key
114
+ );
115
+ innerData.value.children[index] = child;
116
+ }
112
117
  };
113
118
  watch(
114
119
  innerData,
115
120
  () => {
116
- emits("change");
121
+ emits("change", innerData.value);
117
122
  },
118
123
  {
119
124
  deep: true
@@ -440,11 +445,12 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
440
445
  return openBlock(), createBlock(TableRow, {
441
446
  key: index,
442
447
  "parent-data": innerData.value,
448
+ list: innerData.value.children,
443
449
  data: child,
444
450
  layer: props.layer + 1,
445
451
  "tree-key": props.treeKey + "-" + (index + 1),
446
452
  onChange: handleRowChange
447
- }, null, 8, ["parent-data", "data", "layer", "tree-key"]);
453
+ }, null, 8, ["parent-data", "list", "data", "layer", "tree-key"]);
448
454
  }),
449
455
  128
450
456
  /* KEYED_FRAGMENT */
@@ -1 +1 @@
1
- {"version":3,"file":"json-xml-table-row.vue2.mjs","sources":["../../../../../../packages/components/api-component/src/components/json-xml-table-row.vue"],"sourcesContent":["<template>\n <a-row :gutter=\"20\" :class=\"bem.e('table-row')\">\n <a-col style=\"display: flex\" :span=\"7\" :class=\"bem.e('table-col')\">\n <p :style=\"{ width: 10 * props.layer + 'px' }\" />\n <div style=\"margin-right: 30px\" :class=\"bem.m('table-row-icon')\">\n <ll-button\n v-if=\"innerData.type === 'object' || innerData.type === 'array'\"\n type=\"link\"\n style=\"width: 10px\"\n :disabled=\"disabled\"\n @click=\"expanded = !expanded\"\n >\n <ll-icon\n v-if=\"!expanded\"\n style=\"font-size: 14px\"\n icon-name=\"icon-list-expand\"\n />\n <ll-icon\n v-else\n style=\"font-size: 14px\"\n icon-name=\"icon-list-retract\"\n />\n </ll-button>\n </div>\n\n <div v-if=\"!props.parentData\" :class=\"bem.m('table-row-tag')\">根节点</div>\n <template v-else>\n <div\n v-if=\"props.parentData.type === 'array'\"\n :class=\"bem.m('table-row-tag')\"\n >\n ITEMS\n </div>\n <ll-input\n v-if=\"props.parentData.type === 'object'\"\n v-model:value=\"innerData.name\"\n :disabled=\"disabled\"\n placeholder=\"添加字段名\"\n :bordered=\"false\"\n ></ll-input>\n </template>\n </a-col>\n <a-col :span=\"3\" :class=\"bem.e('table-col')\">\n <ll-select\n v-model:value=\"innerData.type\"\n :options=\"jsonXmlTypeOptions\"\n :disabled=\"disabled\"\n style=\"width: 100%\"\n @change=\"handleChange\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <click-input\n v-model:value=\"innerData.mock\"\n placeholder=\"Mock\"\n :disabled=\"innerData.type === 'object' || disabled\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <ll-input\n v-model:value=\"innerData.chineseName\"\n :disabled=\"disabled\"\n placeholder=\"中文名\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <click-input\n v-model:value=\"innerData.description\"\n :disabled=\"disabled\"\n placeholder=\"说明\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"2\">\n <div :class=\"bem.e('table-operation')\">\n <ll-tooltip\n v-if=\"\n (props.parentData &&\n props.parentData.type === 'object' &&\n innerData.type !== 'object') ||\n (!props.parentData && innerData.type === 'object')\n \"\n :tip=\"\n getTip(parentData, innerData) === 'child'\n ? '添加子节点'\n : '添加相邻节点'\n \"\n >\n <ll-button\n type=\"link\"\n :disabled=\"disabled\"\n :class=\"bem.m('table-icon')\"\n @click=\"\n handleAdd(\n getTip(parentData, innerData),\n props.parentData,\n innerData\n )\n \"\n >\n <ll-icon icon-name=\"icon-list-add\" />\n </ll-button>\n </ll-tooltip>\n\n <ll-dropdown\n :dropdown-items=\"customOverlay(props.parentData, innerData)\"\n placement=\"bottomRight\"\n @claim-selected=\"handleClaimSelected\"\n >\n <ll-button\n v-if=\"\n props.parentData &&\n props.parentData.type === 'object' &&\n innerData.type === 'object'\n \"\n :class=\"bem.m('table-icon')\"\n :disabled=\"disabled\"\n type=\"link\"\n >\n <ll-icon icon-name=\"icon-list-add\" />\n </ll-button>\n </ll-dropdown>\n\n <a-popconfirm\n v-if=\"props.parentData && props.parentData.type !== 'array'\"\n title=\"你确定要移除吗?\"\n ok-text=\"确认\"\n cancel-text=\"取消\"\n placement=\"topRight\"\n :overlay-class-name=\"bem.e('popconfirm')\"\n :disabled=\"disabled\"\n @confirm=\"handleConfirm(props.parentData, innerData)\"\n >\n <ll-button\n type=\"link\"\n :disabled=\"disabled\"\n :class=\"bem.m('table-icon')\"\n >\n <ll-icon icon-name=\"icon-remove\" />\n </ll-button>\n </a-popconfirm>\n </div>\n </a-col>\n </a-row>\n\n <template v-if=\"expanded\">\n <a-row\n v-if=\"\n innerData.type === 'object' &&\n innerData.children &&\n innerData.children.length === 0\n \"\n :gutter=\"20\"\n :class=\"bem.e('table-row')\"\n >\n <a-col style=\"display: flex\" :span=\"7\" :class=\"bem.e('table-col')\">\n <p :style=\"{ width: 10 * props.layer + 'px' }\" />\n <div style=\"margin-right: 30px\" :class=\"bem.m('table-row-icon')\" />\n <ll-input\n v-model:value=\"addValue\"\n placeholder=\"添加字段名\"\n :bordered=\"false\"\n :disabled=\"disabled\"\n @input=\"handleInput\"\n />\n </a-col>\n </a-row>\n\n <template v-if=\"innerData.children && innerData.children.length > 0\">\n <template v-for=\"(child, index) in innerData.children\" :key=\"index\">\n <table-row\n :parent-data=\"innerData\"\n :data=\"child\"\n :layer=\"props.layer + 1\"\n :tree-key=\"props.treeKey + '-' + (index + 1)\"\n @change=\"handleRowChange\"\n />\n </template>\n </template>\n </template>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, inject } from 'vue'\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport {\n jsonXmlTypeOptions,\n jsonXmlTableRowProps,\n jsonXmlTableRowEmits\n} from '../config'\n\nimport TableRow from './json-xml-table-row.vue'\n\nimport ClickInput from './click-input.vue'\n\ndefineOptions({ name: 'LlJsonXmlTableRow' })\n\nconst bem = createNamespace('json-xml')\n\nconst props = defineProps(jsonXmlTableRowProps)\n\nconst emits = defineEmits(jsonXmlTableRowEmits)\n\nconst disabled = inject('disabled') as boolean\n\nconst innerData = ref(props.data)\n\nconst parentData = ref(props.parentData)\n\nconst expanded = ref(true)\n\nconst addValue = ref('')\n\nconst customOverlay = (parentData, innerData) => [\n {\n label: '添加子节点',\n type: 'child',\n parentData,\n innerData\n },\n {\n label: '添加相邻节点',\n type: 'next',\n parentData,\n innerData\n }\n]\n\nconst getTip = (parentData, innerData) => {\n if (\n !parentData ||\n (parentData.type === 'array' && innerData.type === 'object')\n ) {\n return 'child'\n }\n if (parentData.type === 'object' && innerData.type !== 'object') {\n return 'next'\n }\n}\n\nconst handleChange = () => {\n if (innerData.value.type === 'object' || innerData.value.type === 'array') {\n innerData.value.children = []\n if (innerData.value.type === 'array') {\n innerData.value.children[0] = {\n key: props.treeKey + '-1',\n name: 'ITEMS',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n }\n }\n } else {\n delete innerData.value.children\n }\n}\n\nconst handleConfirm = (parentData, innerData) => {\n const findIndex = parentData.children.findIndex(\n item => item.key === innerData.key\n )\n parentData.children.splice(findIndex, 1)\n}\n\nconst handleInput = () => {\n innerData.value.children = []\n innerData.value.children[0] = {\n key: props.treeKey + '-1',\n name: addValue.value,\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n }\n addValue.value = ''\n}\n\nconst handleAdd = (type, parentData, innerData) => {\n if (type === 'next') {\n parentData.children.push({\n key: `${parentData.children.length + 1}`,\n name: '',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n })\n } else {\n innerData.children.push({\n key: props.treeKey + `${innerData.children.length + 1}`,\n name: '',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n })\n }\n}\nconst handleClaimSelected = item => {\n const { type, parentData, innerData } = item\n handleAdd(type, parentData, innerData)\n}\n\nconst handleRowChange = () => {\n emits('change')\n}\nwatch(\n innerData,\n () => {\n emits('change')\n },\n {\n deep: true\n }\n)\n</script>\n"],"names":["parentData","innerData"],"mappings":"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"}
1
+ {"version":3,"file":"json-xml-table-row.vue2.mjs","sources":["../../../../../../packages/components/api-component/src/components/json-xml-table-row.vue"],"sourcesContent":["<template>\n <a-row :gutter=\"20\" :class=\"bem.e('table-row')\">\n <a-col style=\"display: flex\" :span=\"7\" :class=\"bem.e('table-col')\">\n <p :style=\"{ width: 10 * props.layer + 'px' }\" />\n <div style=\"margin-right: 30px\" :class=\"bem.m('table-row-icon')\">\n <ll-button\n v-if=\"innerData.type === 'object' || innerData.type === 'array'\"\n type=\"link\"\n style=\"width: 10px\"\n :disabled=\"disabled\"\n @click=\"expanded = !expanded\"\n >\n <ll-icon\n v-if=\"!expanded\"\n style=\"font-size: 14px\"\n icon-name=\"icon-list-expand\"\n />\n <ll-icon\n v-else\n style=\"font-size: 14px\"\n icon-name=\"icon-list-retract\"\n />\n </ll-button>\n </div>\n\n <div v-if=\"!props.parentData\" :class=\"bem.m('table-row-tag')\">根节点</div>\n <template v-else>\n <div\n v-if=\"props.parentData.type === 'array'\"\n :class=\"bem.m('table-row-tag')\"\n >\n ITEMS\n </div>\n <ll-input\n v-if=\"props.parentData.type === 'object'\"\n v-model:value=\"innerData.name\"\n :disabled=\"disabled\"\n placeholder=\"添加字段名\"\n :bordered=\"false\"\n ></ll-input>\n </template>\n </a-col>\n <a-col :span=\"3\" :class=\"bem.e('table-col')\">\n <ll-select\n v-model:value=\"innerData.type\"\n :options=\"jsonXmlTypeOptions\"\n :disabled=\"disabled\"\n style=\"width: 100%\"\n @change=\"handleChange\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <click-input\n v-model:value=\"innerData.mock\"\n placeholder=\"Mock\"\n :disabled=\"innerData.type === 'object' || disabled\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <ll-input\n v-model:value=\"innerData.chineseName\"\n :disabled=\"disabled\"\n placeholder=\"中文名\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <click-input\n v-model:value=\"innerData.description\"\n :disabled=\"disabled\"\n placeholder=\"说明\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"2\">\n <div :class=\"bem.e('table-operation')\">\n <ll-tooltip\n v-if=\"\n (props.parentData &&\n props.parentData.type === 'object' &&\n innerData.type !== 'object') ||\n (!props.parentData && innerData.type === 'object')\n \"\n :tip=\"\n getTip(parentData, innerData) === 'child'\n ? '添加子节点'\n : '添加相邻节点'\n \"\n >\n <ll-button\n type=\"link\"\n :disabled=\"disabled\"\n :class=\"bem.m('table-icon')\"\n @click=\"\n handleAdd(\n getTip(parentData, innerData),\n props.parentData,\n innerData\n )\n \"\n >\n <ll-icon icon-name=\"icon-list-add\" />\n </ll-button>\n </ll-tooltip>\n\n <ll-dropdown\n :dropdown-items=\"customOverlay(props.parentData, innerData)\"\n placement=\"bottomRight\"\n @claim-selected=\"handleClaimSelected\"\n >\n <ll-button\n v-if=\"\n props.parentData &&\n props.parentData.type === 'object' &&\n innerData.type === 'object'\n \"\n :class=\"bem.m('table-icon')\"\n :disabled=\"disabled\"\n type=\"link\"\n >\n <ll-icon icon-name=\"icon-list-add\" />\n </ll-button>\n </ll-dropdown>\n\n <a-popconfirm\n v-if=\"props.parentData && props.parentData.type !== 'array'\"\n title=\"你确定要移除吗?\"\n ok-text=\"确认\"\n cancel-text=\"取消\"\n placement=\"topRight\"\n :overlay-class-name=\"bem.e('popconfirm')\"\n :disabled=\"disabled\"\n @confirm=\"handleConfirm(props.parentData, innerData)\"\n >\n <ll-button\n type=\"link\"\n :disabled=\"disabled\"\n :class=\"bem.m('table-icon')\"\n >\n <ll-icon icon-name=\"icon-remove\" />\n </ll-button>\n </a-popconfirm>\n </div>\n </a-col>\n </a-row>\n\n <template v-if=\"expanded\">\n <a-row\n v-if=\"\n innerData.type === 'object' &&\n innerData.children &&\n innerData.children.length === 0\n \"\n :gutter=\"20\"\n :class=\"bem.e('table-row')\"\n >\n <a-col style=\"display: flex\" :span=\"7\" :class=\"bem.e('table-col')\">\n <p :style=\"{ width: 10 * props.layer + 'px' }\" />\n <div style=\"margin-right: 30px\" :class=\"bem.m('table-row-icon')\" />\n <ll-input\n v-model:value=\"addValue\"\n placeholder=\"添加字段名\"\n :bordered=\"false\"\n :disabled=\"disabled\"\n @input=\"handleInput\"\n />\n </a-col>\n </a-row>\n\n <template v-if=\"innerData.children && innerData.children.length > 0\">\n <template v-for=\"(child, index) in innerData.children\" :key=\"index\">\n <table-row\n :parent-data=\"innerData\"\n :list=\"innerData.children\"\n :data=\"child\"\n :layer=\"props.layer + 1\"\n :tree-key=\"props.treeKey + '-' + (index + 1)\"\n @change=\"handleRowChange\"\n />\n </template>\n </template>\n </template>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, inject } from 'vue'\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport {\n jsonXmlTypeOptions,\n jsonXmlTableRowProps,\n jsonXmlTableRowEmits\n} from '../config'\n\nimport TableRow from './json-xml-table-row.vue'\n\nimport ClickInput from './click-input.vue'\n\ndefineOptions({ name: 'LlJsonXmlTableRow' })\n\nconst bem = createNamespace('json-xml')\n\nconst props = defineProps(jsonXmlTableRowProps)\n\nconst emits = defineEmits(jsonXmlTableRowEmits)\n\nconst disabled = inject('disabled') as boolean\n\nconst innerData = ref(props.data)\n\nconst parentData = ref(props.parentData)\n\nconst expanded = ref(true)\n\nconst addValue = ref('')\n\nconst customOverlay = (parentData, innerData) => [\n {\n label: '添加子节点',\n type: 'child',\n parentData,\n innerData\n },\n {\n label: '添加相邻节点',\n type: 'next',\n parentData,\n innerData\n }\n]\n\nconst getTip = (parentData, innerData) => {\n if (\n !parentData ||\n (parentData.type === 'array' && innerData.type === 'object')\n ) {\n return 'child'\n }\n if (parentData.type === 'object' && innerData.type !== 'object') {\n return 'next'\n }\n}\n\nconst handleChange = () => {\n if (innerData.value.type === 'object' || innerData.value.type === 'array') {\n innerData.value.children = []\n if (innerData.value.type === 'array') {\n innerData.value.children[0] = {\n key: props.treeKey + '-1',\n name: 'ITEMS',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n }\n }\n } else {\n delete innerData.value.children\n }\n}\n\nconst handleConfirm = (parentData, innerData) => {\n const findIndex = parentData.children.findIndex(\n item => item.key === innerData.key\n )\n parentData.children.splice(findIndex, 1)\n}\n\nconst handleInput = () => {\n innerData.value.children = []\n innerData.value.children[0] = {\n key: props.treeKey + '-1',\n name: addValue.value,\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n }\n addValue.value = ''\n}\n\nconst handleAdd = (type, parentData, innerData) => {\n if (type === 'next') {\n parentData.children.push({\n key: `${parentData.children.length + 1}`,\n name: '',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n })\n } else {\n innerData.children.push({\n key: props.treeKey + `${innerData.children.length + 1}`,\n name: '',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n })\n }\n}\nconst handleClaimSelected = item => {\n const { type, parentData, innerData } = item\n handleAdd(type, parentData, innerData)\n}\n\nconst handleRowChange = child => {\n if (innerData.value.children) {\n const index = innerData.value.children.findIndex(\n item => item.key === child.key\n )\n innerData.value.children[index] = child\n }\n}\nwatch(\n innerData,\n () => {\n emits('change', innerData.value)\n },\n {\n deep: true\n }\n)\n</script>\n"],"names":["parentData","innerData"],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  declare const _default: import("vue").DefineComponent<{
2
2
  readonly dataSource: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("../config").IJsonXmlItem[]) | (() => import("../config").IJsonXmlItem[]) | ((new (...args: any[]) => import("../config").IJsonXmlItem[]) | (() => import("../config").IJsonXmlItem[]))[], unknown, unknown, () => never[], boolean>;
3
+ readonly type: {
4
+ readonly type: import("vue").PropType<import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => "json" | "xml") | (() => "json" | "xml") | ((new (...args: any[]) => "json" | "xml") | (() => "json" | "xml"))[], unknown, unknown>>;
5
+ readonly required: false;
6
+ readonly validator: ((val: unknown) => boolean) | undefined;
7
+ __epPropKey: true;
8
+ };
3
9
  }, {
4
10
  bem: {
5
11
  b: (blockSuffix?: string) => string;
@@ -13,15 +19,22 @@ declare const _default: import("vue").DefineComponent<{
13
19
  };
14
20
  props: import("@vue/shared").LooseRequired<{
15
21
  readonly dataSource: import("../config").IJsonXmlItem[];
22
+ readonly type?: import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => "json" | "xml") | (() => "json" | "xml") | ((new (...args: any[]) => "json" | "xml") | (() => "json" | "xml"))[], unknown, unknown> | undefined;
16
23
  readonly onChange?: ((value: any) => any) | undefined;
17
24
  } & {}>;
18
25
  emits: (event: "change", value: any) => void;
19
- handleChange: (dataSource: any) => void;
26
+ handleChange: (child: any) => void;
20
27
  TableRow: any;
21
28
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
22
29
  change: (value: any) => boolean;
23
30
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
24
31
  readonly dataSource: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("../config").IJsonXmlItem[]) | (() => import("../config").IJsonXmlItem[]) | ((new (...args: any[]) => import("../config").IJsonXmlItem[]) | (() => import("../config").IJsonXmlItem[]))[], unknown, unknown, () => never[], boolean>;
32
+ readonly type: {
33
+ readonly type: import("vue").PropType<import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => "json" | "xml") | (() => "json" | "xml") | ((new (...args: any[]) => "json" | "xml") | (() => "json" | "xml"))[], unknown, unknown>>;
34
+ readonly required: false;
35
+ readonly validator: ((val: unknown) => boolean) | undefined;
36
+ __epPropKey: true;
37
+ };
25
38
  }>> & {
26
39
  onChange?: ((value: any) => any) | undefined;
27
40
  }, {
@@ -1,4 +1,4 @@
1
- import { defineComponent, resolveComponent, openBlock, createElementBlock, normalizeClass, unref, createVNode, withCtx, createTextVNode, createElementVNode, Fragment, renderList, createBlock } from 'vue';
1
+ import { defineComponent, resolveComponent, openBlock, createElementBlock, normalizeClass, unref, toDisplayString, createCommentVNode, createVNode, withCtx, createTextVNode, createElementVNode, Fragment, renderList, createBlock } from 'vue';
2
2
  import TableRow from './json-xml-table-row.vue.mjs';
3
3
  import '../../../../utils/index.mjs';
4
4
  import '../config/index.mjs';
@@ -15,8 +15,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
15
15
  const bem = createNamespace("json-xml");
16
16
  const props = __props;
17
17
  const emits = __emit;
18
- const handleChange = (dataSource) => {
19
- emits("change", dataSource);
18
+ const handleChange = (child) => {
19
+ emits("change", [child]);
20
20
  };
21
21
  return (_ctx, _cache) => {
22
22
  const _component_a_col = resolveComponent("a-col");
@@ -27,6 +27,16 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
27
27
  class: normalizeClass(unref(bem).e("table"))
28
28
  },
29
29
  [
30
+ props.type === "xml" ? (openBlock(), createElementBlock(
31
+ "div",
32
+ {
33
+ key: 0,
34
+ class: normalizeClass(unref(bem).m("xml"))
35
+ },
36
+ toDisplayString('<?xml version="1.0" encoding="UTF-8"?>'),
37
+ 2
38
+ /* CLASS */
39
+ )) : createCommentVNode("v-if", true),
30
40
  createVNode(_component_a_row, {
31
41
  class: normalizeClass(unref(bem).m("table-header")),
32
42
  gutter: 20
@@ -93,10 +103,11 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
93
103
  renderList(props.dataSource, (item, index) => {
94
104
  return openBlock(), createBlock(TableRow, {
95
105
  key: index,
106
+ list: props.dataSource,
96
107
  data: item,
97
108
  "tree-key": (index + 1).toString(),
98
- onChange: _cache[0] || (_cache[0] = ($event) => handleChange(props.dataSource))
99
- }, null, 8, ["data", "tree-key"]);
109
+ onChange: handleChange
110
+ }, null, 8, ["list", "data", "tree-key"]);
100
111
  }),
101
112
  128
102
113
  /* KEYED_FRAGMENT */
@@ -1 +1 @@
1
- {"version":3,"file":"json-xml-table.vue2.mjs","sources":["../../../../../../packages/components/api-component/src/components/json-xml-table.vue"],"sourcesContent":["<template>\n <div :class=\"bem.e('table')\">\n <a-row :class=\"bem.m('table-header')\" :gutter=\"20\">\n <a-col :span=\"7\" style=\"padding-left: 60px\"> 名称 </a-col>\n <a-col :span=\"3\"> 类型 </a-col>\n <a-col :span=\"4\"> Mock </a-col>\n <a-col :span=\"4\"> 中文名 </a-col>\n <a-col :span=\"4\"> 说明 </a-col>\n <a-col :span=\"2\"> 操作 </a-col>\n </a-row>\n <div :class=\"bem.m('table-body')\">\n <table-row\n v-for=\"(item, index) in props.dataSource\"\n :key=\"index\"\n :data=\"item\"\n :tree-key=\"(index + 1).toString()\"\n @change=\"handleChange(props.dataSource)\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport TableRow from './json-xml-table-row.vue'\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport { jsonXmlTableProps, jsonXmlTableEmits } from '../config'\n\ndefineOptions({ name: 'LlJsonXmlTable' })\n\nconst bem = createNamespace('json-xml')\n\nconst props = defineProps(jsonXmlTableProps)\n\nconst emits = defineEmits(jsonXmlTableEmits)\n\nconst handleChange = dataSource => {\n emits('change', dataSource)\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;AA+BA,IAAM,MAAA,GAAA,GAAM,gBAAgB,UAAU,CAAA,CAAA;AAEtC,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AAEd,IAAA,MAAM,eAAe,CAAc,UAAA,KAAA;AACjC,MAAA,KAAA,CAAM,UAAU,UAAU,CAAA,CAAA;AAAA,KAC5B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"json-xml-table.vue2.mjs","sources":["../../../../../../packages/components/api-component/src/components/json-xml-table.vue"],"sourcesContent":["<template>\n <div :class=\"bem.e('table')\">\n <div v-if=\"props.type === 'xml'\" :class=\"bem.m('xml')\">\n {{'<?xml version=\"1.0\" encoding=\"UTF-8\"?>'}}\n </div>\n <a-row :class=\"bem.m('table-header')\" :gutter=\"20\">\n <a-col :span=\"7\" style=\"padding-left: 60px\"> 名称 </a-col>\n <a-col :span=\"3\"> 类型 </a-col>\n <a-col :span=\"4\"> Mock </a-col>\n <a-col :span=\"4\"> 中文名 </a-col>\n <a-col :span=\"4\"> 说明 </a-col>\n <a-col :span=\"2\"> 操作 </a-col>\n </a-row>\n <div :class=\"bem.m('table-body')\">\n <table-row\n v-for=\"(item, index) in props.dataSource\"\n :key=\"index\"\n :list=\"props.dataSource\"\n :data=\"item\"\n :tree-key=\"(index + 1).toString()\"\n @change=\"handleChange\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport TableRow from './json-xml-table-row.vue'\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport { jsonXmlTableProps, jsonXmlTableEmits } from '../config'\n\ndefineOptions({ name: 'LlJsonXmlTable' })\n\nconst bem = createNamespace('json-xml')\n\nconst props = defineProps(jsonXmlTableProps)\n\nconst emits = defineEmits(jsonXmlTableEmits)\nconst handleChange = child => {\n emits('change', [child])\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAmCA,IAAM,MAAA,GAAA,GAAM,gBAAgB,UAAU,CAAA,CAAA;AAEtC,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AACd,IAAA,MAAM,eAAe,CAAS,KAAA,KAAA;AAC5B,MAAM,KAAA,CAAA,QAAA,EAAU,CAAC,KAAK,CAAC,CAAA,CAAA;AAAA,KACzB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,8 +1,10 @@
1
1
  import { type IJsonXmlItem } from '../config';
2
2
  declare const _default: import("vue").DefineComponent<{
3
3
  readonly value: import("ll-plus/es/utils").EpPropFinalized<ObjectConstructor, unknown, unknown, () => void, boolean>;
4
+ readonly type: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => "json" | "xml") | (() => "json" | "xml") | ((new (...args: any[]) => "json" | "xml") | (() => "json" | "xml"))[], unknown, unknown, "json", boolean>;
4
5
  }, {
5
6
  props: import("@vue/shared").LooseRequired<{
7
+ readonly type: import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => "json" | "xml") | (() => "json" | "xml") | ((new (...args: any[]) => "json" | "xml") | (() => "json" | "xml"))[], unknown, unknown>;
6
8
  readonly value: Record<string, any>;
7
9
  readonly "onUpdate:value"?: ((value: any) => any) | undefined;
8
10
  } & {}>;
@@ -17,7 +19,7 @@ declare const _default: import("vue").DefineComponent<{
17
19
  bem: (blockSuffix: string, element: string, modifier: string) => string;
18
20
  is: (name?: string) => string;
19
21
  };
20
- disabled: unknown;
22
+ disabled: boolean;
21
23
  type: import("vue").Ref<string>;
22
24
  innerValue: import("vue").Ref<any>;
23
25
  dataSource: import("vue").Ref<{
@@ -45,6 +47,12 @@ declare const _default: import("vue").DefineComponent<{
45
47
  }[];
46
48
  TreeTable: import("vue").DefineComponent<{
47
49
  readonly dataSource: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => IJsonXmlItem[]) | (() => IJsonXmlItem[]) | ((new (...args: any[]) => IJsonXmlItem[]) | (() => IJsonXmlItem[]))[], unknown, unknown, () => never[], boolean>;
50
+ readonly type: {
51
+ readonly type: import("vue").PropType<import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => "json" | "xml") | (() => "json" | "xml") | ((new (...args: any[]) => "json" | "xml") | (() => "json" | "xml"))[], unknown, unknown>>;
52
+ readonly required: false;
53
+ readonly validator: ((val: unknown) => boolean) | undefined;
54
+ __epPropKey: true;
55
+ };
48
56
  }, {
49
57
  bem: {
50
58
  b: (blockSuffix?: string) => string;
@@ -58,15 +66,22 @@ declare const _default: import("vue").DefineComponent<{
58
66
  };
59
67
  props: import("@vue/shared").LooseRequired<{
60
68
  readonly dataSource: IJsonXmlItem[];
69
+ readonly type?: import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => "json" | "xml") | (() => "json" | "xml") | ((new (...args: any[]) => "json" | "xml") | (() => "json" | "xml"))[], unknown, unknown> | undefined;
61
70
  readonly onChange?: ((value: any) => any) | undefined;
62
71
  } & {}>;
63
72
  emits: (event: "change", value: any) => void;
64
- handleChange: (dataSource: any) => void;
73
+ handleChange: (child: any) => void;
65
74
  TableRow: any;
66
75
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
67
76
  change: (value: any) => boolean;
68
77
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
69
78
  readonly dataSource: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => IJsonXmlItem[]) | (() => IJsonXmlItem[]) | ((new (...args: any[]) => IJsonXmlItem[]) | (() => IJsonXmlItem[]))[], unknown, unknown, () => never[], boolean>;
79
+ readonly type: {
80
+ readonly type: import("vue").PropType<import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => "json" | "xml") | (() => "json" | "xml") | ((new (...args: any[]) => "json" | "xml") | (() => "json" | "xml"))[], unknown, unknown>>;
81
+ readonly required: false;
82
+ readonly validator: ((val: unknown) => boolean) | undefined;
83
+ __epPropKey: true;
84
+ };
70
85
  }>> & {
71
86
  onChange?: ((value: any) => any) | undefined;
72
87
  }, {
@@ -76,9 +91,11 @@ declare const _default: import("vue").DefineComponent<{
76
91
  'update:value': (value: any) => boolean;
77
92
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
78
93
  readonly value: import("ll-plus/es/utils").EpPropFinalized<ObjectConstructor, unknown, unknown, () => void, boolean>;
94
+ readonly type: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => "json" | "xml") | (() => "json" | "xml") | ((new (...args: any[]) => "json" | "xml") | (() => "json" | "xml"))[], unknown, unknown, "json", boolean>;
79
95
  }>> & {
80
96
  "onUpdate:value"?: ((value: any) => any) | undefined;
81
97
  }, {
98
+ readonly type: import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => "json" | "xml") | (() => "json" | "xml") | ((new (...args: any[]) => "json" | "xml") | (() => "json" | "xml"))[], unknown, unknown>;
82
99
  readonly value: Record<string, any>;
83
100
  }, {}>;
84
101
  export default _default;
@@ -160,7 +160,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
160
160
  }
161
161
  ];
162
162
  }
163
- console.log(dataSource.value, n);
164
163
  },
165
164
  {
166
165
  deep: true,
@@ -179,16 +178,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
179
178
  emits("update:value", n);
180
179
  }
181
180
  });
182
- watch(
183
- () => dataSource.value,
184
- (n) => {
185
- console.log({ n });
186
- },
187
- {
188
- deep: true,
189
- immediate: true
190
- }
191
- );
192
181
  return (_ctx, _cache) => {
193
182
  const _component_ll_segmented = resolveComponent("ll-segmented");
194
183
  const _component_ll_button = resolveComponent("ll-button");
@@ -232,8 +221,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
232
221
  { key: 0 },
233
222
  [
234
223
  createVNode(_component_ll_button, {
235
- disabled: unref(disabled),
236
- type: "text"
224
+ type: "link",
225
+ disabled: unref(disabled)
237
226
  }, {
238
227
  default: withCtx(() => [
239
228
  createCommentVNode(" <ll-icon/> "),
@@ -243,8 +232,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
243
232
  /* STABLE */
244
233
  }, 8, ["disabled"]),
245
234
  createVNode(_component_ll_button, {
246
- disabled: unref(disabled),
247
- type: "text"
235
+ type: "link",
236
+ disabled: unref(disabled)
248
237
  }, {
249
238
  default: withCtx(() => [
250
239
  createCommentVNode(" <ll-icon/> "),
@@ -254,8 +243,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
254
243
  /* STABLE */
255
244
  }, 8, ["disabled"]),
256
245
  createVNode(_component_ll_button, {
257
- disabled: unref(disabled),
258
- type: "text"
246
+ type: "link",
247
+ disabled: unref(disabled)
259
248
  }, {
260
249
  default: withCtx(() => [
261
250
  createCommentVNode(" <ll-icon/> "),
@@ -272,8 +261,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
272
261
  { key: 1 },
273
262
  [
274
263
  createVNode(_component_ll_button, {
275
- disabled: unref(disabled),
276
- type: "text"
264
+ type: "link",
265
+ disabled: unref(disabled)
277
266
  }, {
278
267
  default: withCtx(() => [
279
268
  createCommentVNode(" <ll-icon/> "),
@@ -283,8 +272,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
283
272
  /* STABLE */
284
273
  }, 8, ["disabled"]),
285
274
  createVNode(_component_ll_button, {
286
- disabled: unref(disabled),
287
- type: "text"
275
+ type: "link",
276
+ disabled: unref(disabled)
288
277
  }, {
289
278
  default: withCtx(() => [
290
279
  createCommentVNode(" <ll-icon/> "),
@@ -324,12 +313,19 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
324
313
  value: innerValue.value,
325
314
  "onUpdate:value": _cache[1] || (_cache[1] = ($event) => innerValue.value = $event),
326
315
  disabled: unref(disabled),
316
+ style: { "height": "200px" },
317
+ options: {
318
+ minimap: {
319
+ enabled: false
320
+ }
321
+ },
327
322
  language: "json"
328
323
  }, null, 8, ["value", "disabled"])) : (openBlock(), createBlock(TreeTable, {
329
324
  key: 1,
325
+ type: props.type,
330
326
  "data-source": dataSource.value,
331
327
  onChange: handleChange
332
- }, null, 8, ["data-source"]))
328
+ }, null, 8, ["type", "data-source"]))
333
329
  ],
334
330
  2
335
331
  /* CLASS */
@@ -1 +1 @@
1
- {"version":3,"file":"json-xml.vue2.mjs","sources":["../../../../../../packages/components/api-component/src/components/json-xml.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b('json-xml')\">\n <div :class=\"bem.e('header')\">\n <ll-segmented\n v-model:value=\"type\"\n size=\"middle\"\n :options=\"jsonXmlOptions\"\n @change=\"handleTypeChange\"\n >\n <template #label=\"{ payload }\">\n <div>{{ payload.title }}</div>\n </template>\n </ll-segmented>\n <div class=\"flex\">\n <template v-if=\"type === 'json'\">\n <ll-button :disabled=\"disabled\" type=\"text\">\n <!-- <ll-icon/> -->\n 预览\n </ll-button>\n <ll-button :disabled=\"disabled\" type=\"text\">\n <!-- <ll-icon/> -->\n 生成代码\n </ll-button>\n <ll-button :disabled=\"disabled\" type=\"text\">\n <!-- <ll-icon/> -->\n JSON Schema\n </ll-button>\n </template>\n <template v-else>\n <ll-button :disabled=\"disabled\" type=\"text\">\n <!-- <ll-icon/> -->\n 格式化\n </ll-button>\n <ll-button :disabled=\"disabled\" type=\"text\">\n <!-- <ll-icon/> -->\n 生成代码\n </ll-button>\n <ll-dropdown\n :disabled=\"disabled\"\n :dropdown-items=\"customOverlay\"\n placement=\"bottomRight\"\n >\n <ll-icon icon-name=\"icon-line-arrow-down\" />\n </ll-dropdown>\n </template>\n </div>\n </div>\n <div :class=\"bem.e('body')\">\n <template v-if=\"type === 'json'\">\n <ll-code-editor\n v-model:value=\"innerValue\"\n :disabled=\"disabled\"\n language=\"json\"\n />\n </template>\n <template v-else>\n <tree-table :data-source=\"dataSource\" @change=\"handleChange\" />\n </template>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, inject } from 'vue'\n\nimport { isEmpty } from 'lodash-es'\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport {\n DEFAULT_TYPE,\n jsonXmlOptions,\n customOverlay,\n jsonXmlProps,\n jsonXmlEmits,\n type IJsonXmlItem\n} from '../config'\n\nimport TreeTable from './json-xml-table.vue'\n\ndefineOptions({ name: 'LlJsonXml' })\n\nconst props = defineProps(jsonXmlProps)\n\nconst emits = defineEmits(jsonXmlEmits)\n\nconst bem = createNamespace('json-xml')\n\nconst disabled = inject('disabled')\n\nconst type = ref(DEFAULT_TYPE)\n\nconst innerValue = ref<any>(JSON.stringify(props.value))\n\nconst dataSource = ref([\n {\n key: '1',\n name: '根节点',\n type: 'object',\n value: '',\n chineseName: '',\n description: '',\n mock: '',\n children: []\n }\n] as IJsonXmlItem[])\n\nconst parseJson2Array = (\n json: object,\n parentKey: string = '1',\n parentType: string = 'object'\n) => {\n let num = 0\n const result = [] as IJsonXmlItem[]\n for (const key in json) {\n num++\n if (Object.prototype.hasOwnProperty.call(json, key)) {\n const element = json[key]\n if (typeof element === 'object' || Array.isArray(element)) {\n const currentType = Array.isArray(element) ? 'array' : 'object'\n result.push({\n key: `${parentKey}-${num}`,\n name: parentType === 'array' ? 'ITEM' : key,\n type: currentType,\n value:\n parentType === 'array' && currentType !== 'object' ? element : '',\n chineseName: '',\n description: '',\n mock: '',\n children: parseJson2Array(element, `${parentKey}-${num}`, currentType)\n } as IJsonXmlItem)\n } else {\n result.push({\n key: `${parentKey}-${num}`,\n name: parentType === 'array' ? 'ITEM' : key,\n type: typeof element,\n value: '',\n chineseName: '',\n description: '',\n mock: element\n } as IJsonXmlItem)\n }\n }\n }\n return result\n}\n\nconst parseArray2Json = (data: IJsonXmlItem[]) => {\n const result = {} as any\n data.forEach((item: IJsonXmlItem) => {\n if (item.name) {\n if (item.type === 'object' || item.type === 'array') {\n if (item.children && item.children.length) {\n result[item.name] = parseArray2Json(item.children)\n }\n } else {\n result[item.name] = item.mock\n }\n }\n })\n return result\n}\n\nconst handleTypeChange = e => {\n if (e === 'json') {\n innerValue.value = JSON.stringify(parseArray2Json(dataSource.value))\n } else {\n try {\n const value = JSON.parse(innerValue.value)\n if (typeof value === 'object') {\n dataSource.value = parseJson2Array(value)\n } else {\n dataSource.value = [\n {\n key: '1',\n name: '根节点',\n type: typeof value,\n value: '',\n chineseName: '',\n description: '',\n mock: value,\n children: []\n }\n ] as IJsonXmlItem[]\n }\n } catch (error) {\n dataSource.value = [\n {\n key: '1',\n name: '根节点',\n type: typeof innerValue.value,\n value: '',\n chineseName: '',\n description: '',\n mock: innerValue.value,\n children: []\n }\n ] as IJsonXmlItem[]\n }\n }\n}\n\nconst handleChange = arr => {\n dataSource.value = arr\n emits('update:value', parseArray2Json(arr))\n}\n\nwatch(\n () => props.value,\n n => {\n if (!isEmpty(n)) {\n if (typeof n === 'object') {\n innerValue.value = JSON.stringify(n)\n dataSource.value = parseJson2Array(props.value)\n } else {\n innerValue.value = n\n dataSource.value = [\n {\n key: '1',\n name: '根节点',\n type: typeof props.value,\n value: '',\n chineseName: '',\n description: '',\n mock: n,\n children: []\n }\n ] as IJsonXmlItem[]\n }\n } else {\n innerValue.value = ''\n dataSource.value = [\n {\n key: '1',\n name: '根节点',\n type: 'object',\n value: '',\n chineseName: '',\n description: '',\n mock: '',\n children: []\n }\n ] as IJsonXmlItem[]\n }\n console.log(dataSource.value, n)\n },\n {\n deep: true,\n immediate: true\n }\n)\n\nwatch(innerValue, n => {\n try {\n const value = JSON.parse(n)\n if (typeof value === 'object') {\n emits('update:value', value)\n } else {\n emits('update:value', value)\n }\n } catch (error) {\n emits('update:value', n)\n }\n})\n\nwatch(\n () => dataSource.value,\n n => {\n console.log({ n })\n },\n {\n deep: true,\n immediate: true\n }\n)\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-xml.vue2.mjs","sources":["../../../../../../packages/components/api-component/src/components/json-xml.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b('json-xml')\">\n <div :class=\"bem.e('header')\">\n <ll-segmented\n v-model:value=\"type\"\n size=\"middle\"\n :options=\"jsonXmlOptions\"\n @change=\"handleTypeChange\"\n >\n <template #label=\"{ payload }\">\n <div>{{ payload.title }}</div>\n </template>\n </ll-segmented>\n <div class=\"flex\">\n <template v-if=\"type === 'json'\">\n <ll-button type=\"link\" :disabled=\"disabled\">\n <!-- <ll-icon/> -->\n 预览\n </ll-button>\n <ll-button type=\"link\" :disabled=\"disabled\">\n <!-- <ll-icon/> -->\n 生成代码\n </ll-button>\n <ll-button type=\"link\" :disabled=\"disabled\">\n <!-- <ll-icon/> -->\n JSON Schema\n </ll-button>\n </template>\n <template v-else>\n <ll-button type=\"link\" :disabled=\"disabled\">\n <!-- <ll-icon/> -->\n 格式化\n </ll-button>\n <ll-button type=\"link\" :disabled=\"disabled\">\n <!-- <ll-icon/> -->\n 生成代码\n </ll-button>\n <ll-dropdown\n :disabled=\"disabled\"\n :dropdown-items=\"customOverlay\"\n placement=\"bottomRight\"\n >\n <ll-icon icon-name=\"icon-line-arrow-down\" />\n </ll-dropdown>\n </template>\n </div>\n </div>\n <div :class=\"bem.e('body')\">\n <template v-if=\"type === 'json'\">\n <ll-code-editor\n v-model:value=\"innerValue\"\n :disabled=\"disabled\"\n style=\"height: 200px\"\n :options=\"{\n minimap: {\n enabled: false\n }\n }\"\n language=\"json\"\n />\n </template>\n <template v-else>\n <tree-table\n :type=\"props.type\"\n :data-source=\"dataSource\"\n @change=\"handleChange\"\n />\n </template>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, inject } from 'vue'\n\nimport { isEmpty } from 'lodash-es'\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport {\n DEFAULT_TYPE,\n jsonXmlOptions,\n customOverlay,\n jsonXmlProps,\n jsonXmlEmits,\n type IJsonXmlItem\n} from '../config'\n\nimport TreeTable from './json-xml-table.vue'\n\ndefineOptions({ name: 'LlJsonXml' })\n\nconst props = defineProps(jsonXmlProps)\n\nconst emits = defineEmits(jsonXmlEmits)\n\nconst bem = createNamespace('json-xml')\n\nconst disabled = inject('disabled') as boolean\n\nconst type = ref(DEFAULT_TYPE)\n\nconst innerValue = ref<any>(JSON.stringify(props.value))\n\nconst dataSource = ref([\n {\n key: '1',\n name: '根节点',\n type: 'object',\n value: '',\n chineseName: '',\n description: '',\n mock: '',\n children: []\n }\n] as IJsonXmlItem[])\n\nconst parseJson2Array = (\n json: object,\n parentKey: string = '1',\n parentType: string = 'object'\n) => {\n let num = 0\n const result = [] as IJsonXmlItem[]\n for (const key in json) {\n num++\n if (Object.prototype.hasOwnProperty.call(json, key)) {\n const element = json[key]\n if (typeof element === 'object' || Array.isArray(element)) {\n const currentType = Array.isArray(element) ? 'array' : 'object'\n result.push({\n key: `${parentKey}-${num}`,\n name: parentType === 'array' ? 'ITEM' : key,\n type: currentType,\n value:\n parentType === 'array' && currentType !== 'object' ? element : '',\n chineseName: '',\n description: '',\n mock: '',\n children: parseJson2Array(element, `${parentKey}-${num}`, currentType)\n } as IJsonXmlItem)\n } else {\n result.push({\n key: `${parentKey}-${num}`,\n name: parentType === 'array' ? 'ITEM' : key,\n type: typeof element,\n value: '',\n chineseName: '',\n description: '',\n mock: element\n } as IJsonXmlItem)\n }\n }\n }\n return result\n}\n\nconst parseArray2Json = (data: IJsonXmlItem[]) => {\n const result = {} as any\n data.forEach((item: IJsonXmlItem) => {\n if (item.name) {\n if (item.type === 'object' || item.type === 'array') {\n if (item.children && item.children.length) {\n result[item.name] = parseArray2Json(item.children)\n }\n } else {\n result[item.name] = item.mock\n }\n }\n })\n return result\n}\n\nconst handleTypeChange = e => {\n if (e === 'json') {\n innerValue.value = JSON.stringify(parseArray2Json(dataSource.value))\n } else {\n try {\n const value = JSON.parse(innerValue.value)\n if (typeof value === 'object') {\n dataSource.value = parseJson2Array(value)\n } else {\n dataSource.value = [\n {\n key: '1',\n name: '根节点',\n type: typeof value,\n value: '',\n chineseName: '',\n description: '',\n mock: value,\n children: []\n }\n ] as IJsonXmlItem[]\n }\n } catch (error) {\n dataSource.value = [\n {\n key: '1',\n name: '根节点',\n type: typeof innerValue.value,\n value: '',\n chineseName: '',\n description: '',\n mock: innerValue.value,\n children: []\n }\n ] as IJsonXmlItem[]\n }\n }\n}\n\nconst handleChange = arr => {\n dataSource.value = arr\n emits('update:value', parseArray2Json(arr))\n}\n\nwatch(\n () => props.value,\n n => {\n if (!isEmpty(n)) {\n if (typeof n === 'object') {\n innerValue.value = JSON.stringify(n)\n dataSource.value = parseJson2Array(props.value)\n } else {\n innerValue.value = n\n dataSource.value = [\n {\n key: '1',\n name: '根节点',\n type: typeof props.value,\n value: '',\n chineseName: '',\n description: '',\n mock: n,\n children: []\n }\n ] as IJsonXmlItem[]\n }\n } else {\n innerValue.value = ''\n dataSource.value = [\n {\n key: '1',\n name: '根节点',\n type: 'object',\n value: '',\n chineseName: '',\n description: '',\n mock: '',\n children: []\n }\n ] as IJsonXmlItem[]\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n\nwatch(innerValue, n => {\n try {\n const value = JSON.parse(n)\n if (typeof value === 'object') {\n emits('update:value', value)\n } else {\n emits('update:value', value)\n }\n } catch (error) {\n emits('update:value', n)\n }\n})\n</script>\n"],"names":[],"mappings":"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"}