jinlin
2023-11-03 35435e8b1995e6775c82b86652381e07e3faff54
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// 创建“el-tab-pane”
function createTabPaneHtml(tabs) {
  let tabPaneHtml = ''
  const slot = tabs.__slot__
  if (slot && slot.tabPanes && slot.tabPanes.length) {
    slot.tabPanes.forEach(tabPane => {
      tabPaneHtml += `<el-tab-pane label="${tabPane.label}">${tabPane.label}</el-tab-pane>\n`
    })
  }
  return tabPaneHtml
}
 
// 创建“el-tabs”
// <el-tabs type="border-card">
//   <el-tab-pane label="标签1">标签1</el-tab-pane>
//   <el-tab-pane label="标签2">标签2</el-tab-pane>
// </el-tabs>
function createTabsHtml(formJson, tabs) {
  const width = tabs.style && tabs.style.width ? ':style="{width: \'100%\'}"' : ''
  const type = tabs.type ? `type="${tabs.type}"` : ''
 
  // 创建“el-tab-pane”
  const tabPaneHtml = createTabPaneHtml(tabs)
 
  return `<el-tabs ${type} ${width}>${tabPaneHtml}</el-tabs>`
}
 
/**
 * 获取“标签页”HTML
 * @param formJson 表单结构
 * @param tabs “标签页”组件
 * @returns {string} “标签页”HTML
 */
export default function getTabsHtml(formJson, tabs) {
  // 创建“el-tabs”
  const tabsHtml = createTabsHtml(formJson, tabs)
 
  return tabsHtml
}