simple-frame-unit 1.0.2

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 (260) hide show
  1. package/.env.dev +14 -0
  2. package/CHANGELOG.md +9 -0
  3. package/README.md +24 -0
  4. package/dist/ed-frame-vue.common.1.js +11046 -0
  5. package/dist/ed-frame-vue.common.1.js.map +1 -0
  6. package/dist/ed-frame-vue.common.2.js +1715 -0
  7. package/dist/ed-frame-vue.common.2.js.map +1 -0
  8. package/dist/ed-frame-vue.common.js +53427 -0
  9. package/dist/ed-frame-vue.common.js.map +1 -0
  10. package/dist/ed-frame-vue.umd.1.js +11046 -0
  11. package/dist/ed-frame-vue.umd.1.js.map +1 -0
  12. package/dist/ed-frame-vue.umd.2.js +1715 -0
  13. package/dist/ed-frame-vue.umd.2.js.map +1 -0
  14. package/dist/ed-frame-vue.umd.js +53437 -0
  15. package/dist/ed-frame-vue.umd.js.map +1 -0
  16. package/dist/ed-frame-vue.umd.min.1.js +17 -0
  17. package/dist/ed-frame-vue.umd.min.1.js.map +1 -0
  18. package/dist/ed-frame-vue.umd.min.2.js +4 -0
  19. package/dist/ed-frame-vue.umd.min.2.js.map +1 -0
  20. package/dist/ed-frame-vue.umd.min.js +470 -0
  21. package/dist/ed-frame-vue.umd.min.js.map +1 -0
  22. package/import.easydata.js +46 -0
  23. package/lib/CHANGELOG.md +18 -0
  24. package/lib/README.md +27 -0
  25. package/lib/api/ds/index.js +124 -0
  26. package/lib/api/easyData.js +90 -0
  27. package/lib/api/easyform/easyForm.js +32 -0
  28. package/lib/api/index.js +61 -0
  29. package/lib/api/interface/index.js +32 -0
  30. package/lib/api/system.js +20 -0
  31. package/lib/index.js +80 -0
  32. package/lib/packages/BasicTemplate/EasyDataTemplate.vue +189 -0
  33. package/lib/packages/BasicTemplate/Props.js +64 -0
  34. package/lib/packages/BasicTemplate/components/TemplateComp.vue +263 -0
  35. package/lib/packages/BasicTemplate/components/TemplateViews.vue +292 -0
  36. package/lib/packages/BasicTemplate/hooks/business.js +74 -0
  37. package/lib/packages/BasicTemplate/hooks/getFormData.js +89 -0
  38. package/lib/packages/BasicTemplate/hooks/queryFormData.js +194 -0
  39. package/lib/packages/BasicTemplate/hooks/submitForm.js +53 -0
  40. package/lib/packages/BasicTemplate/hooks/useEmits.js +15 -0
  41. package/lib/packages/BasicTemplate/hooks/validate.js +42 -0
  42. package/lib/packages/EasyDataForm/EasyDataForm.vue +597 -0
  43. package/lib/packages/EasyDataForm/Props.js +22 -0
  44. package/lib/packages/EasyDataForm/components/FormItem.vue +228 -0
  45. package/lib/packages/EasyDataForm/hooks/useChosePopup.js +85 -0
  46. package/lib/packages/EasyDataForm/hooks/useEmits.js +19 -0
  47. package/lib/packages/EasyDataForm/hooks/useForm.js +169 -0
  48. package/lib/packages/EasyDataForm/hooks/useUpload.js +168 -0
  49. package/lib/packages/EasyDataList/EasyDataList.vue +348 -0
  50. package/lib/packages/EasyDataList/Props.js +116 -0
  51. package/lib/packages/EasyDataList/components/BasicModal.vue +150 -0
  52. package/lib/packages/EasyDataList/components/FormAction.vue +63 -0
  53. package/lib/packages/EasyDataList/hooks/useEmits.js +30 -0
  54. package/lib/packages/EasyDataList/hooks/useForm.js +62 -0
  55. package/lib/packages/EasyDataList/hooks/useTable.js +314 -0
  56. package/lib/packages/EasyDataTable/EasyDataTable.vue +233 -0
  57. package/lib/packages/EasyDataView/EasyDataView.vue +105 -0
  58. package/lib/packages/EdRichPreview/index.js +32 -0
  59. package/lib/packages/EdRichText/index.vue +167 -0
  60. package/lib/packages/EdRichText/replaceUrl.js +49 -0
  61. package/lib/packages/components/FileView.vue +97 -0
  62. package/lib/packages/index.js +11 -0
  63. package/lib/packages/mixins/EasyDataMixins.js +133 -0
  64. package/lib/packages/mixins/useTable.jsx +130 -0
  65. package/lib/pages/DataSource/index.js +8 -0
  66. package/lib/pages/DataSource/src/components/ControlViews/BaseProps.js +103 -0
  67. package/lib/pages/DataSource/src/components/ControlViews/control.js +1089 -0
  68. package/lib/pages/DataSource/src/components/ControlViews/index.vue +301 -0
  69. package/lib/pages/DataSource/src/components/TableOperationModal.vue +225 -0
  70. package/lib/pages/DataSource/src/components/TablePropsModal.vue +367 -0
  71. package/lib/pages/DataSource/src/components/ViewPropsModal.vue +737 -0
  72. package/lib/pages/DataSource/src/components/modal/ChooseDict.vue +119 -0
  73. package/lib/pages/DataSource/src/hooks/useTable.js +138 -0
  74. package/lib/pages/DataSource/src/index.vue +431 -0
  75. package/lib/pages/Interface/index.js +8 -0
  76. package/lib/pages/Interface/src/components/InterfaceCall.vue +73 -0
  77. package/lib/pages/Interface/src/components/InterfaceDepend.vue +299 -0
  78. package/lib/pages/Interface/src/components/InterfaceFee.vue +131 -0
  79. package/lib/pages/Interface/src/components/InterfaceMessage.vue +878 -0
  80. package/lib/pages/Interface/src/components/InterfaceMock.vue +203 -0
  81. package/lib/pages/Interface/src/components/InterfaceParam.vue +308 -0
  82. package/lib/pages/Interface/src/components/InterfaceRepeat.vue +281 -0
  83. package/lib/pages/Interface/src/components/InterfaceVariable.vue +31 -0
  84. package/lib/pages/Interface/src/index.vue +216 -0
  85. package/lib/pages/Template/index.js +8 -0
  86. package/lib/pages/Template/src/components/DefineModal.vue +524 -0
  87. package/lib/pages/Template/src/components/TemplatePreview.vue +109 -0
  88. package/lib/pages/Template/src/components/model/AddDialog.vue +60 -0
  89. package/lib/pages/Template/src/components/model/TemplatePreview2.vue +101 -0
  90. package/lib/pages/Template/src/hooks/index.js +3 -0
  91. package/lib/pages/Template/src/hooks/useEmits.js +64 -0
  92. package/lib/pages/Template/src/index.vue +124 -0
  93. package/lib/popup/index.js +8 -0
  94. package/lib/popup/src/DataSourceChoose.vue +44 -0
  95. package/lib/popup/src/DataSourceViewIdChoose.vue +67 -0
  96. package/lib/popup/src/DictChoose.vue +104 -0
  97. package/lib/popup/src/InterfaceChoose.vue +46 -0
  98. package/lib/popup/src/OrgChoose.vue +121 -0
  99. package/lib/popup/src/RoleChoose.vue +101 -0
  100. package/lib/popup/src/TemplateChoose.vue +43 -0
  101. package/lib/popup/src/UserChoose.vue +161 -0
  102. package/lib/popup//347/273/204/344/273/266/345/274/200/345/217/221/350/247/204/350/214/203.md +25 -0
  103. package/lib/style/custom.scss +126 -0
  104. package/lib/style/deep.scss +109 -0
  105. package/lib/style/index.scss +4 -0
  106. package/lib/utils/MapLoader.js +48 -0
  107. package/lib/utils/dateUtils.js +58 -0
  108. package/lib/utils/index.js +8 -0
  109. package/lib/utils/setting.js +25 -0
  110. package/lib/utils/sortable/index.js +3784 -0
  111. package/lib/utils/useBusiness.js +212 -0
  112. package/lib/utils/utils.js +588 -0
  113. package/package.json +77 -0
  114. package/src/App.vue +12 -0
  115. package/src/assets/Vue.png +0 -0
  116. package/src/assets/avatar.png +0 -0
  117. package/src/assets/images/bg.png +0 -0
  118. package/src/assets/images/logo-bills.png +0 -0
  119. package/src/assets/images/pic.png +0 -0
  120. package/src/assets/images/weplus-logo.png +0 -0
  121. package/src/assets/marker.png +0 -0
  122. package/src/assets/styles/common.scss +359 -0
  123. package/src/assets/styles/ele-docs.css +3278 -0
  124. package/src/assets/styles/fonts/icomoon.eot +0 -0
  125. package/src/assets/styles/fonts/icomoon.svg +14 -0
  126. package/src/assets/styles/fonts/icomoon.ttf +0 -0
  127. package/src/assets/styles/fonts/icomoon.woff +0 -0
  128. package/src/assets/styles/fonts/style.css +39 -0
  129. package/src/assets/styles/higtlightEle.css +84 -0
  130. package/src/assets/svg/code.svg +7 -0
  131. package/src/assets/svg/password.svg +1 -0
  132. package/src/components/Popups/DiyCompDictChoose.vue +112 -0
  133. package/src/components/Popups/index.js +28 -0
  134. package/src/components/ed-base-vue/global/variable.js +8 -0
  135. package/src/components/ed-base-vue/index.js +81 -0
  136. package/src/components/ed-base-vue/package/EdCard/index.js +7 -0
  137. package/src/components/ed-base-vue/package/EdCard/src/index.vue +87 -0
  138. package/src/components/ed-base-vue/package/EdCodeEditor/index.js +8 -0
  139. package/src/components/ed-base-vue/package/EdCodeEditor/src/AceEditor/AceConfig.js +71 -0
  140. package/src/components/ed-base-vue/package/EdCodeEditor/src/AceEditor/Editor.vue +137 -0
  141. package/src/components/ed-base-vue/package/EdCodeEditor/src/AceEditor/Toolbar.vue +68 -0
  142. package/src/components/ed-base-vue/package/EdCodeEditor/src/AceEditor/index.vue +119 -0
  143. package/src/components/ed-base-vue/package/EdCodeEditor/src/AceEditor/webpack-resolver.js +51 -0
  144. package/src/components/ed-base-vue/package/EdCodeEditor/src/Codemirror/Toolbar.vue +57 -0
  145. package/src/components/ed-base-vue/package/EdCodeEditor/src/Codemirror/config.js +64 -0
  146. package/src/components/ed-base-vue/package/EdCodeEditor/src/Codemirror/index.vue +309 -0
  147. package/src/components/ed-base-vue/package/EdCodeEditor/src/EdCodeEditor.vue +238 -0
  148. package/src/components/ed-base-vue/package/EdDate/index.js +8 -0
  149. package/src/components/ed-base-vue/package/EdDate/src/index.js +50 -0
  150. package/src/components/ed-base-vue/package/EdDescriptions/index.js +8 -0
  151. package/src/components/ed-base-vue/package/EdDescriptions/src/EdDescriptions.vue +46 -0
  152. package/src/components/ed-base-vue/package/EdDescriptions/src/EdDescriptionsItem.js +20 -0
  153. package/src/components/ed-base-vue/package/EdDescriptions/src/Props.js +20 -0
  154. package/src/components/ed-base-vue/package/EdDialog/index.js +8 -0
  155. package/src/components/ed-base-vue/package/EdDialog/src/EdDialog.vue +138 -0
  156. package/src/components/ed-base-vue/package/EdDialog/src/Props.js +91 -0
  157. package/src/components/ed-base-vue/package/EdDialog/src/components/DialogFooter.vue +42 -0
  158. package/src/components/ed-base-vue/package/EdDialog/src/components/DialogWrapper.vue +53 -0
  159. package/src/components/ed-base-vue/package/EdDrawer/index.js +8 -0
  160. package/src/components/ed-base-vue/package/EdDrawer/src/DrawerFooter.vue +41 -0
  161. package/src/components/ed-base-vue/package/EdDrawer/src/EdDrawer.vue +150 -0
  162. package/src/components/ed-base-vue/package/EdDrawer/src/props.js +71 -0
  163. package/src/components/ed-base-vue/package/EdFlow/index.js +8 -0
  164. package/src/components/ed-base-vue/package/EdFlow/src/EdFlowItem.vue +733 -0
  165. package/src/components/ed-base-vue/package/EdFlow/src/index.vue +148 -0
  166. package/src/components/ed-base-vue/package/EdForm/index.js +8 -0
  167. package/src/components/ed-base-vue/package/EdForm/src/EdForm.vue +172 -0
  168. package/src/components/ed-base-vue/package/EdForm/src/Props.js +33 -0
  169. package/src/components/ed-base-vue/package/EdForm/src/components/EdFormItem.vue +34 -0
  170. package/src/components/ed-base-vue/package/EdIcons/index.js +8 -0
  171. package/src/components/ed-base-vue/package/EdIcons/src/hooks/Icons.js +406 -0
  172. package/src/components/ed-base-vue/package/EdIcons/src/hooks/Icons1.js +830 -0
  173. package/src/components/ed-base-vue/package/EdIcons/src/index.vue +13 -0
  174. package/src/components/ed-base-vue/package/EdImage/index.js +8 -0
  175. package/src/components/ed-base-vue/package/EdImage/src/index.vue +28 -0
  176. package/src/components/ed-base-vue/package/EdInputArray/index.js +8 -0
  177. package/src/components/ed-base-vue/package/EdInputArray/src/Props.js +26 -0
  178. package/src/components/ed-base-vue/package/EdInputArray/src/index.vue +97 -0
  179. package/src/components/ed-base-vue/package/EdInputColor/index.js +8 -0
  180. package/src/components/ed-base-vue/package/EdInputColor/src/InputColor.vue +81 -0
  181. package/src/components/ed-base-vue/package/EdInputMap/index.js +9 -0
  182. package/src/components/ed-base-vue/package/EdInputMap/src/EdInputMap.vue +246 -0
  183. package/src/components/ed-base-vue/package/EdInputMap/src/EdInputMapProps.js +6 -0
  184. package/src/components/ed-base-vue/package/EdInputPop/index.js +13 -0
  185. package/src/components/ed-base-vue/package/EdInputPop/src/EdInputPop.vue +144 -0
  186. package/src/components/ed-base-vue/package/EdInputPop/src/Props.js +48 -0
  187. package/src/components/ed-base-vue/package/EdInputTable/index.js +8 -0
  188. package/src/components/ed-base-vue/package/EdInputTable/src/EdInputTable.vue +368 -0
  189. package/src/components/ed-base-vue/package/EdInputTable/src/Fetch.js +40 -0
  190. package/src/components/ed-base-vue/package/EdJsonEditor/index.js +13 -0
  191. package/src/components/ed-base-vue/package/EdJsonEditor/src/EdJsonEditor.vue +198 -0
  192. package/src/components/ed-base-vue/package/EdJsonEditor/src/assets/img/jsoneditor-icons.svg +749 -0
  193. package/src/components/ed-base-vue/package/EdJsonEditor/src/assets/jsoneditor.css +2031 -0
  194. package/src/components/ed-base-vue/package/EdJsonEditor/src/assets/plus.svg +1 -0
  195. package/src/components/ed-base-vue/package/EdJsonEditor/src/hooks.js +63 -0
  196. package/src/components/ed-base-vue/package/EdJsonViewer/index.js +8 -0
  197. package/src/components/ed-base-vue/package/EdJsonViewer/src/EdJsonViewer.vue +44 -0
  198. package/src/components/ed-base-vue/package/EdLable/index.js +8 -0
  199. package/src/components/ed-base-vue/package/EdLable/src/index.vue +34 -0
  200. package/src/components/ed-base-vue/package/EdLink/index.js +8 -0
  201. package/src/components/ed-base-vue/package/EdLink/src/index.vue +43 -0
  202. package/src/components/ed-base-vue/package/EdMarkEditor/index.js +15 -0
  203. package/src/components/ed-base-vue/package/EdMarkEditor/src/EdMarkEditor.vue +368 -0
  204. package/src/components/ed-base-vue/package/EdMarkEditor/src/extra-function.js +538 -0
  205. package/src/components/ed-base-vue/package/EdMarkEditor/src/highlight.js +95 -0
  206. package/src/components/ed-base-vue/package/EdTable/index.js +8 -0
  207. package/src/components/ed-base-vue/package/EdTable/src/EdTable.vue +240 -0
  208. package/src/components/ed-base-vue/package/EdTable/src/Props.js +97 -0
  209. package/src/components/ed-base-vue/package/EdTable/src/components/TableColumnItem.js +24 -0
  210. package/src/components/ed-base-vue/package/EdTable/src/components/TablePagination.vue +73 -0
  211. package/src/components/ed-base-vue/package/EdTableEditor/index.js +8 -0
  212. package/src/components/ed-base-vue/package/EdTableEditor/src/EdTableEditor.vue +282 -0
  213. package/src/components/ed-base-vue/package/EdTableEditor/src/Props.js +107 -0
  214. package/src/components/ed-base-vue/package/EdTableEditor/src/hooks/validate.js +90 -0
  215. package/src/components/ed-base-vue/package/EdUpload/index.js +8 -0
  216. package/src/components/ed-base-vue/package/EdUpload/src/Props.js +90 -0
  217. package/src/components/ed-base-vue/package/EdUpload/src/index.vue +88 -0
  218. package/src/components/ed-base-vue/package/EdViewer/index.js +8 -0
  219. package/src/components/ed-base-vue/package/EdViewer/src/EdViewer.vue +310 -0
  220. package/src/components/ed-base-vue/package/EdWangEditor/index.js +14 -0
  221. package/src/components/ed-base-vue/package/EdWangEditor/src/EdWangEditor.vue +127 -0
  222. package/src/components/ed-base-vue/package/ExtendSlot.js +12 -0
  223. package/src/components/ed-base-vue/package/OptionSlot.js +65 -0
  224. package/src/components/ed-base-vue/plugin/Message/index.js +2 -0
  225. package/src/components/ed-base-vue/plugin/Message/src/main.js +91 -0
  226. package/src/components/ed-base-vue/plugin/Message/src/main.vue +253 -0
  227. package/src/components/ed-base-vue/plugin/print/index.js +156 -0
  228. package/src/components/ed-base-vue/plugin/sortable/index.js +3784 -0
  229. package/src/components/ed-base-vue/style/custom.scss +107 -0
  230. package/src/components/ed-base-vue/style/deep.scss +100 -0
  231. package/src/components/ed-base-vue/style/index.scss +4 -0
  232. package/src/components/ed-base-vue/tools/date-format.js +315 -0
  233. package/src/components/ed-base-vue/tools/utils.js +124 -0
  234. package/src/layouts/components/AppMain.vue +17 -0
  235. package/src/layouts/components/Header.vue +256 -0
  236. package/src/layouts/components/Logo.vue +56 -0
  237. package/src/layouts/components/Navbar.vue +169 -0
  238. package/src/layouts/components/SideBar.vue +107 -0
  239. package/src/layouts/components/index.js +5 -0
  240. package/src/layouts/index.vue +57 -0
  241. package/src/main.js +42 -0
  242. package/src/request/config.js +6 -0
  243. package/src/request/index.js +85 -0
  244. package/src/request/request.js +147 -0
  245. package/src/router/index.js +65 -0
  246. package/src/router/modules/baseRouter.js +43 -0
  247. package/src/router/modules/easydata.js +49 -0
  248. package/src/views/base/BaseRichPreview.vue +23 -0
  249. package/src/views/base/BaseRichText.vue +28 -0
  250. package/src/views/base/EdFormView.vue +54 -0
  251. package/src/views/base/EdTable.vue +98 -0
  252. package/src/views/base/inputTable.vue +103 -0
  253. package/src/views/easydata/Interface.vue +3 -0
  254. package/src/views/easydata/dataSource.vue +13 -0
  255. package/src/views/easydata/dataSourceView.vue +71 -0
  256. package/src/views/easydata/templateDemo.vue +89 -0
  257. package/src/views/easydata/templateInfo.vue +13 -0
  258. package/src/views/index.vue +17 -0
  259. package/src/views/login.vue +208 -0
  260. package/src/views/redirect.vue +15 -0
@@ -0,0 +1,878 @@
1
+ <template>
2
+ <ed-dialog ref="BasicDialog" :fullscreen="true" :showOkBtn="false" :title="title"
3
+ :visible.sync="visibleDialog"
4
+ v-if="visibleDialog"
5
+ @close="closeDialog">
6
+ <el-card class="box-card">
7
+ <div slot="header" class="clearfix">
8
+ <span>元数据</span>
9
+ <el-button-group style="float: right;">
10
+ <el-button :loading="loading" icon="el-icon-document-add" size="small " type="primary"
11
+ @click="saveInterfaceMeta">保存
12
+ </el-button>
13
+ <el-button :loading="loading" icon="el-icon-refresh-right" size="small " type="" @click="refresh">
14
+ 刷新
15
+ </el-button>
16
+ </el-button-group>
17
+ </div>
18
+ <el-tabs v-model="activeTabName" @tab-click="handleClick">
19
+ <el-tab-pane :label="row.keyInfoObject.is_custom === 'xml'?'请求Head':'请求Header'" name="requestHead">
20
+ <el-tabs style="" tab-position="left">
21
+ <el-tab-pane label="报文">
22
+ <el-button size="small" style="margin-bottom: 10px" type="primary" @click="resolveReqHeadMeta">解析元数据
23
+ </el-button>
24
+ <ed-code-editor
25
+ ref="commonEditor"
26
+ :value="form.xmlReqHeadConstruct"
27
+ language="javascript"
28
+ @input="changeTextareaReqHead"
29
+ ></ed-code-editor>
30
+
31
+ </el-tab-pane>
32
+ <el-tab-pane label="元数据">
33
+ <div style="display: flex;justify-content: space-between;">
34
+ <div style="width: 70%">
35
+ <el-table
36
+ :data="reqHeadTableDataSource"
37
+ border
38
+ style="width: 100%"
39
+ @row-click="clickRowReqHead">
40
+ <el-table-column align="center" label="选择" width="55">
41
+ <template slot-scope="scope">
42
+ <!-- 可以手动的修改label的值,从而控制选择哪一项 -->
43
+ <el-radio v-model="selectVal" :label="scope.row.name" class="radio">&nbsp;
44
+ </el-radio>
45
+ </template>
46
+ </el-table-column>
47
+ <el-table-column
48
+ label="节点"
49
+ prop="name"
50
+ width="180">
51
+ </el-table-column>
52
+ <el-table-column
53
+ label="路径"
54
+ prop="path"
55
+ width="180">
56
+ </el-table-column>
57
+ </el-table>
58
+ </div>
59
+ <div style="width: 130%;margin-left: 10px">
60
+ <el-form ref="tableInfoForm" :inline="true" :model="tableInfoForm"
61
+ class="demo-form-inline">
62
+ <el-table
63
+ :data="reqHeadFieldDataSource"
64
+ border
65
+ style="width: 100%">
66
+ <el-table-column
67
+ label="字段名"
68
+ prop="name"
69
+ width="180">
70
+ </el-table-column>
71
+ <el-table-column
72
+ label="数据类型"
73
+ prop="dataType"
74
+ width="180">
75
+ <template slot-scope="scope">
76
+ <el-form-item>
77
+ <el-select v-model="scope.row.dataType">
78
+ <el-option label="STR" value="STR"></el-option>
79
+ <el-option label="PROP" value="PROP"></el-option>
80
+ <el-option label="ARRAY" value="ARRAY"></el-option>
81
+ <el-option label="OBJECT" value="OBJECT"></el-option>
82
+ </el-select>
83
+ </el-form-item>
84
+ </template>
85
+ </el-table-column>
86
+ <el-table-column
87
+ label="备注"
88
+ prop="remark"
89
+ width="180">
90
+ <template slot-scope="scope">
91
+ <el-form-item>
92
+ <el-input v-model="scope.row.remark"
93
+ placeholder="备注"></el-input>
94
+ </el-form-item>
95
+ </template>
96
+ </el-table-column>
97
+ <el-table-column
98
+ label="字段映射"
99
+ prop="fieldMapping"
100
+ width="180">
101
+ <template slot-scope="scope">
102
+ <el-form-item>
103
+ <el-input v-model="scope.row.fieldMapping"
104
+ placeholder="字段映射"></el-input>
105
+ </el-form-item>
106
+ </template>
107
+ </el-table-column>
108
+ <el-table-column
109
+ label="接口变量"
110
+ prop="interfaceVariable"
111
+ width="180">
112
+ <template slot-scope="scope">
113
+ <el-form-item>
114
+ <el-input v-model="scope.row.interfaceVariable"
115
+ placeholder="字段映射"></el-input>
116
+ </el-form-item>
117
+ </template>
118
+ </el-table-column>
119
+ <el-table-column
120
+ label="是否必输"
121
+ prop="isRequired"
122
+ width="100">
123
+ <template slot-scope="scope">
124
+ <el-form-item>
125
+ <el-select v-model="scope.row.isRequired">
126
+ <el-option :value="true" label="是"></el-option>
127
+ <el-option :value="false" label="否"></el-option>
128
+ </el-select>
129
+ </el-form-item>
130
+ </template>
131
+ </el-table-column>
132
+ </el-table>
133
+ </el-form>
134
+ </div>
135
+ </div>
136
+ </el-tab-pane>
137
+ </el-tabs>
138
+ </el-tab-pane>
139
+ <el-tab-pane :lazy="true" label="请求Body" name="requestBody">
140
+ <el-tabs style="" tab-position="left">
141
+ <el-tab-pane label="报文">
142
+ <el-button size="small" style="margin-bottom: 10px" type="primary" @click="resolveReqBodyMeta">解析元数据
143
+ </el-button>
144
+ <ed-code-editor ref="commonEditor"
145
+ :value="form.xmlReqBodyConstruct"
146
+ language="javascript"
147
+ @input="changeTextareaReqBody"
148
+ ></ed-code-editor>
149
+
150
+ </el-tab-pane>
151
+ <el-tab-pane label="元数据">
152
+ <div style="display: flex;justify-content: space-between;">
153
+ <div style="width: 70%">
154
+ <el-table
155
+ :data="reqBodyTableDataSource"
156
+ border
157
+ style="width: 100%"
158
+ @row-click="clickRowReqBody">
159
+ <el-table-column align="center" label="选择" width="55">
160
+ <template slot-scope="scope">
161
+ <!-- 可以手动的修改label的值,从而控制选择哪一项 -->
162
+ <el-radio v-model="selectVal" :label="scope.row.name" class="radio">&nbsp;
163
+ </el-radio>
164
+ </template>
165
+ </el-table-column>
166
+ <el-table-column
167
+ label="节点"
168
+ prop="name"
169
+ width="180">
170
+ </el-table-column>
171
+ <el-table-column
172
+ label="路径"
173
+ prop="path"
174
+ width="180">
175
+ </el-table-column>
176
+ </el-table>
177
+ </div>
178
+ <div style="width: 130%;margin-left: 10px">
179
+ <el-form ref="tableInfoForm" :inline="true"
180
+ class="demo-form-inline">
181
+ <el-table
182
+ :data="reqBodyFieldDataSource"
183
+ border
184
+ style="width: 100%">
185
+ <el-table-column
186
+ label="字段名"
187
+ prop="name"
188
+ width="180">
189
+ </el-table-column>
190
+ <el-table-column
191
+ label="数据类型"
192
+ prop="dataType"
193
+ width="180">
194
+ <template slot-scope="scope">
195
+ <el-form-item>
196
+ <el-select v-model="scope.row.dataType">
197
+ <el-option label="STR" value="STR"></el-option>
198
+ <el-option label="PROP" value="PROP"></el-option>
199
+ <el-option label="ARRAY" value="ARRAY"></el-option>
200
+ <el-option label="OBJECT" value="OBJECT"></el-option>
201
+ </el-select>
202
+ </el-form-item>
203
+ </template>
204
+ </el-table-column>
205
+ <el-table-column
206
+ label="备注"
207
+ prop="remark"
208
+ width="180">
209
+ <template slot-scope="scope">
210
+ <el-form-item>
211
+ <el-input v-model="scope.row.remark"
212
+ placeholder="备注"></el-input>
213
+ </el-form-item>
214
+ </template>
215
+ </el-table-column>
216
+ <el-table-column
217
+ label="字段映射"
218
+ prop="fieldMapping"
219
+ width="180">
220
+ <template slot-scope="scope">
221
+ <el-form-item>
222
+ <el-input v-model="scope.row.fieldMapping"
223
+ placeholder="字段映射"></el-input>
224
+ </el-form-item>
225
+ </template>
226
+ </el-table-column>
227
+ <el-table-column
228
+ label="接口变量"
229
+ prop="interfaceVariable"
230
+ width="180">
231
+ <template slot-scope="scope">
232
+ <el-form-item>
233
+ <el-input v-model="scope.row.interfaceVariable"
234
+ placeholder="字段映射"></el-input>
235
+ </el-form-item>
236
+ </template>
237
+ </el-table-column>
238
+ <el-table-column
239
+ label="是否必输"
240
+ prop="isRequired"
241
+ width="100">
242
+ <template slot-scope="scope">
243
+ <el-form-item>
244
+ <el-select v-model="scope.row.isRequired">
245
+ <el-option :value="true" label="是"></el-option>
246
+ <el-option :value="false" label="否"></el-option>
247
+ </el-select>
248
+ </el-form-item>
249
+ </template>
250
+ </el-table-column>
251
+ </el-table>
252
+ </el-form>
253
+ </div>
254
+ </div>
255
+ </el-tab-pane>
256
+ </el-tabs>
257
+ </el-tab-pane>
258
+ <el-tab-pane v-if="row.keyInfoObject.is_custom === 'xml'" :lazy="true" label="响应Head" name="responseHead">
259
+ <el-tabs style="" tab-position="left">
260
+ <el-tab-pane label="报文">
261
+ <el-button size="small" style="margin-bottom: 10px" type="primary" @click="resolveRespHeadMeta">解析元数据
262
+ </el-button>
263
+ <ed-code-editor
264
+ ref="commonEditor"
265
+ :value="form.xmlRespHeadConstruct"
266
+ language="javascript"
267
+ @input="changeTextareaRespHead"
268
+ ></ed-code-editor>
269
+
270
+ </el-tab-pane>
271
+ <el-tab-pane label="元数据">
272
+ <div style="display: flex;justify-content: space-between;">
273
+ <div style="width: 60%">
274
+ <el-form ref="tableInfoForm" :inline="true"
275
+ class="demo-form-inline">
276
+ <el-table
277
+ :data="respHeadTableDataSource"
278
+ border
279
+ style="width: 100%"
280
+ @row-click="clickRowRespHead">
281
+ <el-table-column align="center" label="选择" width="55">
282
+ <template slot-scope="scope">
283
+ <!-- 可以手动的修改label的值,从而控制选择哪一项 -->
284
+ <el-radio v-model="selectVal" :label="scope.row.name" class="radio">&nbsp;
285
+ </el-radio>
286
+ </template>
287
+ </el-table-column>
288
+ <el-table-column
289
+ label="节点"
290
+ prop="name"
291
+ width="100">
292
+ </el-table-column>
293
+ <el-table-column
294
+ label="路径"
295
+ prop="path"
296
+ width="100">
297
+ </el-table-column>
298
+ <el-table-column
299
+ label="数据包装器"
300
+ prop="dataPackage"
301
+ width="150">
302
+ <template slot-scope="scope">
303
+ <el-form-item>
304
+ <el-select v-model="scope.row.dataPackage">
305
+ <el-option label="无" value="Null"></el-option>
306
+ <el-option label="列表" value="Array"></el-option>
307
+ <el-option label="对象" value="Object"></el-option>
308
+ </el-select>
309
+ </el-form-item>
310
+ </template>
311
+ </el-table-column>
312
+ </el-table>
313
+ </el-form>
314
+ </div>
315
+ <div style="width: 140%;margin-left: 10px">
316
+ <el-form ref="tableInfoForm" :inline="true" :model="tableInfoForm"
317
+ class="demo-form-inline">
318
+ <el-table
319
+ :data="respHeadFieldDataSource"
320
+ border
321
+ style="width: 100%">
322
+ <el-table-column
323
+ label="字段名"
324
+ prop="name"
325
+ width="100">
326
+ </el-table-column>
327
+ <el-table-column
328
+ label="数据类型"
329
+ prop="dataType"
330
+ width="100">
331
+ </el-table-column>
332
+ <el-table-column
333
+ label="备注"
334
+ prop="remark"
335
+ width="120">
336
+ <template slot-scope="scope">
337
+ <el-form-item>
338
+ <el-input v-model="scope.row.remark"
339
+ placeholder="备注"></el-input>
340
+ </el-form-item>
341
+ </template>
342
+ </el-table-column>
343
+ <el-table-column
344
+ label="字段映射"
345
+ prop="fieldMapping"
346
+ width="140">
347
+ <template slot-scope="scope">
348
+ <el-form-item>
349
+ <el-input v-model="scope.row.fieldMapping"
350
+ placeholder="字段映射"></el-input>
351
+ </el-form-item>
352
+ </template>
353
+ </el-table-column>
354
+ <el-table-column
355
+ label="接口变量"
356
+ prop="interfaceVariable"
357
+ width="140">
358
+ <template slot-scope="scope">
359
+ <el-form-item>
360
+ <el-input v-model="scope.row.interfaceVariable"
361
+ placeholder="字段映射"></el-input>
362
+ </el-form-item>
363
+ </template>
364
+ </el-table-column>
365
+ <el-table-column
366
+ label="值校验(条件)"
367
+ prop="valueValidateCondition"
368
+ width="140">
369
+ <template slot-scope="scope">
370
+ <el-form-item>
371
+ <el-select v-if="scope.row.dataType === 'STR'" v-model="scope.row.valueValidateCondition">
372
+ <el-option label="测试" value="test"></el-option>
373
+ </el-select>
374
+ </el-form-item>
375
+ </template>
376
+ </el-table-column>
377
+ <el-table-column
378
+ label="值校验(值)"
379
+ prop="valueValidateValue"
380
+ width="150">
381
+ <template slot-scope="scope">
382
+ <el-form-item>
383
+ <el-input v-model="scope.row.valueValidateValue"
384
+ placeholder=""></el-input>
385
+ </el-form-item>
386
+ </template>
387
+ </el-table-column>
388
+ </el-table>
389
+ </el-form>
390
+ </div>
391
+ </div>
392
+ </el-tab-pane>
393
+ </el-tabs>
394
+ </el-tab-pane>
395
+ <el-tab-pane :lazy="true" label="响应Body" name="responseBody">
396
+ <el-tabs style="" tab-position="left">
397
+ <el-tab-pane label="报文">
398
+ <el-button size="small" style="margin-bottom: 10px" type="primary" @click="resolveRespBodyMeta">解析元数据
399
+ </el-button>
400
+ <ed-code-editor
401
+ ref="commonEditor"
402
+ :value="form.xmlRespBodyConstruct"
403
+ language="javascript"
404
+ @input="changeTextareaRespBody"
405
+ ></ed-code-editor>
406
+
407
+ </el-tab-pane>
408
+ <el-tab-pane label="元数据">
409
+ <div style="display: flex;justify-content: space-between;">
410
+ <div style="width: 60%">
411
+ <el-form ref="tableInfoForm" :inline="true"
412
+ class="demo-form-inline">
413
+ <el-table
414
+ :data="respBodyTableDataSource"
415
+ border
416
+ style="width: 100%"
417
+ @row-click="clickRowRespBody">
418
+ <el-table-column align="center" label="选择" width="55">
419
+ <template slot-scope="scope">
420
+ <!-- 可以手动的修改label的值,从而控制选择哪一项 -->
421
+ <el-radio v-model="selectVal" :label="scope.row.name" class="radio">&nbsp;
422
+ </el-radio>
423
+ </template>
424
+ </el-table-column>
425
+ <el-table-column
426
+ label="节点"
427
+ prop="name"
428
+ width="100">
429
+ </el-table-column>
430
+ <el-table-column
431
+ label="路径"
432
+ prop="path"
433
+ width="100">
434
+ </el-table-column>
435
+ <el-table-column
436
+ label="数据包装器"
437
+ prop="dataPackage"
438
+ width="150">
439
+ <template slot-scope="scope">
440
+ <el-form-item>
441
+ <el-select v-model="scope.row.dataPackage">
442
+ <el-option label="无" value="Null"></el-option>
443
+ <el-option label="列表" value="Array"></el-option>
444
+ <el-option label="对象" value="Object"></el-option>
445
+ </el-select>
446
+ </el-form-item>
447
+ </template>
448
+ </el-table-column>
449
+ </el-table>
450
+ </el-form>
451
+ </div>
452
+ <div style="width: 140%;margin-left: 10px">
453
+ <el-form ref="tableInfoForm" :inline="true" :model="tableInfoForm"
454
+ class="demo-form-inline">
455
+ <el-table
456
+ :data="respBodyFieldDataSource"
457
+ border
458
+ style="width: 100%">
459
+ <el-table-column
460
+ label="字段名"
461
+ prop="name"
462
+ width="100">
463
+ </el-table-column>
464
+ <el-table-column
465
+ label="数据类型"
466
+ prop="dataType"
467
+ width="100">
468
+ </el-table-column>
469
+ <el-table-column
470
+ label="备注"
471
+ prop="remark"
472
+ width="120">
473
+ <template slot-scope="scope">
474
+ <el-form-item>
475
+ <el-input v-model="scope.row.remark"
476
+ placeholder="备注"></el-input>
477
+ </el-form-item>
478
+ </template>
479
+ </el-table-column>
480
+ <el-table-column
481
+ label="字段映射"
482
+ prop="fieldMapping"
483
+ width="140">
484
+ <template slot-scope="scope">
485
+ <el-form-item>
486
+ <el-input v-model="scope.row.fieldMapping"
487
+ placeholder="字段映射"></el-input>
488
+ </el-form-item>
489
+ </template>
490
+ </el-table-column>
491
+ <el-table-column
492
+ label="接口变量"
493
+ prop="interfaceVariable"
494
+ width="140">
495
+ <template slot-scope="scope">
496
+ <el-form-item>
497
+ <el-input v-model="scope.row.interfaceVariable"
498
+ placeholder="字段映射"></el-input>
499
+ </el-form-item>
500
+ </template>
501
+ </el-table-column>
502
+ <el-table-column
503
+ label="循环节点"
504
+ prop="repeatValueNode"
505
+ width="140">
506
+ <template slot-scope="scope">
507
+ <el-form-item>
508
+ <el-select v-if="scope.row.dataType === 'ARRAY'" v-model="scope.row.repeatValueNode">
509
+ <el-option label="测试" value="test"></el-option>
510
+ </el-select>
511
+ </el-form-item>
512
+ </template>
513
+ <template slot="header" slot-scope="scope">
514
+ {{ scope.column.label }}
515
+ <el-tooltip class="item"
516
+ content="适用于循环分页接口;只有数据类型为ARRAY时才能操作;响应的每页数据将在选择的节点上进行数据合并"
517
+ effect="dark"
518
+ placement="top-start">
519
+ <i class="el-icon-question"></i>
520
+ </el-tooltip>
521
+ </template>
522
+ </el-table-column>
523
+ <el-table-column
524
+ label="值校验(条件)"
525
+ prop="valueValidateCondition"
526
+ width="140">
527
+ <template slot-scope="scope">
528
+ <el-form-item>
529
+ <el-select v-if="scope.row.dataType === 'STR'" v-model="scope.row.valueValidateCondition">
530
+ <el-option label="测试" value="test"></el-option>
531
+ </el-select>
532
+ </el-form-item>
533
+ </template>
534
+ </el-table-column>
535
+ <el-table-column
536
+ label="值校验(值)"
537
+ prop="valueValidateValue"
538
+ width="150">
539
+ <template slot-scope="scope">
540
+ <el-form-item>
541
+ <el-input v-model="scope.row.valueValidateValue"
542
+ placeholder=""></el-input>
543
+ </el-form-item>
544
+ </template>
545
+ </el-table-column>
546
+ </el-table>
547
+ </el-form>
548
+ </div>
549
+ </div>
550
+ </el-tab-pane>
551
+ </el-tabs>
552
+ </el-tab-pane>
553
+ </el-tabs>
554
+ </el-card>
555
+ </ed-dialog>
556
+ </template>
557
+
558
+ <script>
559
+ import {resolveMeta, saveMeta, getMeta} from "../../../../api/interface";
560
+
561
+ export default {
562
+ name: "InterfaceMessage",
563
+ data() {
564
+ return {
565
+ loading: false,
566
+ visibleDialog: false,
567
+ activeTabName: 'requestHead',
568
+ form: {
569
+ xmlReqHeadConstruct: '',
570
+ xmlReqBodyConstruct: '',
571
+ xmlRespHeadConstruct: '',
572
+ xmlRespBodyConstruct: ''
573
+ },
574
+ reqHeadTableDataSource: [],
575
+ reqHeadFieldDataSource: [],
576
+
577
+ reqBodyTableDataSource: [],
578
+ reqBodyFieldDataSource: [],
579
+
580
+ respHeadTableDataSource: [],
581
+ respHeadFieldDataSource: [],
582
+
583
+ respBodyTableDataSource: [],
584
+ respBodyFieldDataSource: [],
585
+
586
+ selectVal: '',
587
+ tableInfoForm: {},
588
+ row: {keyInfoObject: {}},
589
+ title: ''
590
+ }
591
+ },
592
+
593
+ methods: {
594
+ show(row, title) {
595
+ this.row = row
596
+ this.title = title
597
+ this.visibleDialog = true
598
+ this.getInterfaceMeta()
599
+ },
600
+ refresh() {
601
+ this.reqHeadFieldDataSource = []
602
+ this.reqBodyFieldDataSource = []
603
+ this.respHeadFieldDataSource = []
604
+ this.respBodyFieldDataSource = []
605
+ this.getInterfaceMeta()
606
+ },
607
+ getInterfaceMeta() {
608
+ let params = {
609
+ dataSourceName: 'interface_meta',
610
+ key: {
611
+ interface_id: this.row.id,
612
+ type: 'request'
613
+ }
614
+ }
615
+ const loading = this.$loading({
616
+ lock: true,
617
+ text: 'Loading',
618
+ spinner: 'el-icon-loading',
619
+ });
620
+ getMeta(params).then((res) => {
621
+ if (res.success) {
622
+ if (res.data && res.data.dataInfoArray) {
623
+ if (res.data.dataInfoArray[0]) {
624
+ this.form.xmlReqHeadConstruct = res.data.dataInfoArray[0].source
625
+ let metas = res.data.dataInfoArray[0].meta
626
+ metas.forEach(meta => {
627
+ meta.metaType = 'requestHead'
628
+ return meta
629
+ })
630
+ this.reqHeadTableDataSource = metas
631
+ }
632
+ if (res.data.dataInfoArray[1]) {
633
+ this.form.xmlReqBodyConstruct = res.data.dataInfoArray[1].source
634
+ let metas = res.data.dataInfoArray[1].meta
635
+ metas.forEach(meta => {
636
+ meta.metaType = 'requestBody'
637
+ return meta
638
+ })
639
+ this.reqBodyTableDataSource = metas
640
+ }
641
+ if (res.data.dataInfoArray[2]) {
642
+ this.form.xmlRespHeadConstruct = res.data.dataInfoArray[2].source
643
+ let metas = res.data.dataInfoArray[2].meta
644
+ metas.forEach(meta => {
645
+ meta.metaType = 'responseHead'
646
+ return meta
647
+ })
648
+ this.respHeadTableDataSource = metas
649
+ }
650
+ if (res.data.dataInfoArray[3]) {
651
+ this.form.xmlRespBodyConstruct = res.data.dataInfoArray[3].source
652
+ let metas = res.data.dataInfoArray[3].meta
653
+ metas.forEach(meta => {
654
+ meta.metaType = 'responseBody'
655
+ return meta
656
+ })
657
+ this.respBodyTableDataSource = metas
658
+ }
659
+ }
660
+ } else {
661
+ this.$message.error(res.msg)
662
+ }
663
+ }).finally(() => {
664
+ loading.close()
665
+ })
666
+ },
667
+ handleClick() {
668
+ },
669
+ changeTextareaReqHead(val) {
670
+ this.form.xmlReqHeadConstruct = val
671
+ },
672
+ changeTextareaReqBody(val) {
673
+ this.form.xmlReqBodyConstruct = val
674
+ },
675
+ changeTextareaRespHead(val) {
676
+ this.form.xmlRespHeadConstruct = val
677
+ },
678
+ changeTextareaRespBody(val) {
679
+ this.form.xmlRespBodyConstruct = val
680
+ },
681
+ resolveReqHeadMeta() {
682
+ if (this.form.xmlReqHeadConstruct) {
683
+ //验证报文格式
684
+ let headRule = this.validateXml(this.form.xmlReqHeadConstruct)
685
+ if (headRule) {
686
+ this.$message.warning("请求head" + headRule.message)
687
+ } else {
688
+ const loading = this.$loading({
689
+ lock: true,
690
+ text: 'Loading',
691
+ spinner: 'el-icon-loading',
692
+ });
693
+ resolveMeta({source: this.form.xmlReqHeadConstruct}).then((res) => {
694
+ if (res.success) {
695
+ this.reqHeadTableDataSource = res.data
696
+ } else {
697
+ this.$message.error(res.msg)
698
+ }
699
+ }).finally(() => {
700
+ loading.close()
701
+ })
702
+ }
703
+ } else {
704
+ this.$message.warning('请输入请求head')
705
+ }
706
+ },
707
+ resolveReqBodyMeta() {
708
+ if (this.form.xmlReqBodyConstruct) {
709
+ //验证报文格式
710
+ let headRule = this.validateXml(this.form.xmlReqBodyConstruct)
711
+ if (headRule) {
712
+ this.$message.warning("请求body" + headRule.message)
713
+ } else {
714
+ const loading = this.$loading({
715
+ lock: true,
716
+ text: 'Loading',
717
+ spinner: 'el-icon-loading',
718
+ });
719
+ resolveMeta({source: this.form.xmlReqBodyConstruct}).then((res) => {
720
+ if (res.success) {
721
+ this.reqBodyTableDataSource = res.data
722
+ } else {
723
+ this.$message.error(res.msg)
724
+ }
725
+ }).finally(() => {
726
+ loading.close()
727
+ })
728
+ }
729
+ } else {
730
+ this.$message.warning('请输入请求body')
731
+ }
732
+ },
733
+ resolveRespHeadMeta() {
734
+ if (this.form.xmlRespHeadConstruct) {
735
+ //验证报文格式
736
+ let headRule = this.validateXml(this.form.xmlRespHeadConstruct)
737
+ if (headRule) {
738
+ this.$message.warning("响应head" + headRule.message)
739
+ } else {
740
+ const loading = this.$loading({
741
+ lock: true,
742
+ text: 'Loading',
743
+ spinner: 'el-icon-loading',
744
+ });
745
+ resolveMeta({source: this.form.xmlRespHeadConstruct}).then((res) => {
746
+ if (res.success) {
747
+ this.respHeadTableDataSource = res.data
748
+ } else {
749
+ this.$message.error(res.msg)
750
+ }
751
+ }).finally(() => {
752
+ loading.close()
753
+ })
754
+ }
755
+ } else {
756
+ this.$message.warning('请输入响应head')
757
+ }
758
+ },
759
+ resolveRespBodyMeta() {
760
+ if (this.form.xmlRespBodyConstruct) {
761
+ //验证报文格式
762
+ let headRule = this.validateXml(this.form.xmlRespBodyConstruct)
763
+ if (headRule) {
764
+ this.$message.warning("响应body" + headRule.message)
765
+ } else {
766
+ const loading = this.$loading({
767
+ lock: true,
768
+ text: 'Loading',
769
+ spinner: 'el-icon-loading',
770
+ });
771
+ resolveMeta({source: this.form.xmlRespBodyConstruct}).then((res) => {
772
+ if (res.success) {
773
+ this.respBodyTableDataSource = res.data
774
+ } else {
775
+ this.$message.error(res.msg)
776
+ }
777
+ }).finally(() => {
778
+ loading.close()
779
+ })
780
+ }
781
+ } else {
782
+ this.$message.warn('请输入响应body')
783
+ }
784
+ },
785
+ clickRowReqHead(row) {
786
+ this.selectVal = row.name
787
+ this.reqHeadFieldDataSource = row.fields
788
+ },
789
+ clickRowReqBody(row) {
790
+ this.selectVal = row.name
791
+ this.reqBodyFieldDataSource = row.fields
792
+ },
793
+ clickRowRespHead(row) {
794
+ this.selectVal = row.name
795
+ this.respHeadFieldDataSource = row.fields
796
+ },
797
+ clickRowRespBody(row) {
798
+ this.selectVal = row.name
799
+ this.respBodyFieldDataSource = row.fields
800
+ },
801
+ validateXml(value) {
802
+ try {
803
+ JSON.parse(value)
804
+ } catch (e) {
805
+ let xmlDoc;
806
+ // code for IE
807
+ if (window.ActiveXObject) {
808
+ xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
809
+ xmlDoc.async = "false";
810
+ xmlDoc.loadXML(value);
811
+
812
+ if (xmlDoc.parseError.errorCode != 0) {
813
+ return new Error('1格式不正确')
814
+ }
815
+ }
816
+ // code for Mozilla, Firefox, Opera, chrome, safari,etc.
817
+ else if (document.implementation.createDocument) {
818
+ let parser = new DOMParser();
819
+ xmlDoc = parser.parseFromString(value, "text/xml");
820
+ let error = xmlDoc.getElementsByTagName("parsererror");
821
+ if (error.length > 0) {
822
+ return new Error('2格式不正确')
823
+ }
824
+ } else {
825
+ return new Error('3格式不正确')
826
+ }
827
+ }
828
+ },
829
+ saveInterfaceMeta() {
830
+ let paramsRequest = {
831
+ dataSourceName: 'interface_meta',
832
+ data: [
833
+ {
834
+ source: this.form.xmlReqHeadConstruct,
835
+ meta: this.reqHeadTableDataSource
836
+ },
837
+ {
838
+ source: this.form.xmlReqBodyConstruct,
839
+ meta: this.reqBodyTableDataSource
840
+ },
841
+ {
842
+ source: this.form.xmlRespHeadConstruct,
843
+ meta: this.respHeadTableDataSource
844
+ },
845
+ {
846
+ source: this.form.xmlRespBodyConstruct,
847
+ meta: this.respBodyTableDataSource
848
+ }
849
+ ],
850
+ key: {
851
+ interface_id: this.row.id,
852
+ type: 'request'
853
+ }
854
+ }
855
+ this.loading = true
856
+ saveMeta(paramsRequest).then((res) => {
857
+ if (res.success) {
858
+ this.$message.success(res.msg)
859
+ } else {
860
+ this.$message.error(res.msg)
861
+ }
862
+ }).finally(() => {
863
+ this.loading = false
864
+ })
865
+ },
866
+ closeDialog() {
867
+ this.visibleDialog = false
868
+ },
869
+ }
870
+ }
871
+ </script>
872
+
873
+ <style scoped>
874
+ .el-form-item {
875
+ margin-bottom: 0px
876
+ }
877
+
878
+ </style>