From 669c42795a04709f1be52a45f04a144bb3b85a02 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sat, 3 Oct 2020 17:47:24 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A8=E5=8D=95=E6=9E=84=E5=BB=BA=E5=B8=83?= =?UTF-8?q?=E5=B1=80=E5=9E=8B=E7=BB=84=E4=BB=B6=E6=96=B0=E5=A2=9E=E6=8C=89?= =?UTF-8?q?=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/assets/icons/svg/button.svg | 1 + ruoyi-ui/src/utils/generator/config.js | 15 +++++++++++++++ ruoyi-ui/src/utils/generator/html.js | 21 +++++++++++++++++++++ ruoyi-ui/src/utils/generator/render.js | 5 +++++ 4 files changed, 42 insertions(+) create mode 100644 ruoyi-ui/src/assets/icons/svg/button.svg diff --git a/ruoyi-ui/src/assets/icons/svg/button.svg b/ruoyi-ui/src/assets/icons/svg/button.svg new file mode 100644 index 00000000..904fddc8 --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/button.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/utils/generator/config.js b/ruoyi-ui/src/utils/generator/config.js index 471f8387..005140a8 100644 --- a/ruoyi-ui/src/utils/generator/config.js +++ b/ruoyi-ui/src/utils/generator/config.js @@ -406,6 +406,21 @@ export const layoutComponents = [ layoutTree: true, children: [], document: 'https://element.eleme.cn/#/zh-CN/component/layout' + }, + { + layout: 'colFormItem', + label: '按钮', + changeTag: true, + labelWidth: null, + tag: 'el-button', + tagIcon: 'button', + span: 24, + default: '主要按钮', + type: 'primary', + icon: 'el-icon-search', + size: 'medium', + disabled: false, + document: 'https://element.eleme.cn/#/zh-CN/component/button' } ] diff --git a/ruoyi-ui/src/utils/generator/html.js b/ruoyi-ui/src/utils/generator/html.js index 8362ae4a..340dfb43 100644 --- a/ruoyi-ui/src/utils/generator/html.js +++ b/ruoyi-ui/src/utils/generator/html.js @@ -107,6 +107,18 @@ const layouts = { } const tags = { + 'el-button': el => { + const { + tag, disabled + } = attrBuilder(el) + const type = el.type ? `type="${el.type}"` : '' + const icon = el.icon ? `icon="${el.icon}"` : '' + const size = el.size ? `size="${el.size}"` : '' + let child = buildElButtonChild(el) + + if (child) child = `\n${child}\n` // 换行 + return `<${el.tag} ${type} ${icon} ${size} ${disabled}>${child}` + }, 'el-input': el => { const { disabled, vModel, clearable, placeholder, width @@ -272,6 +284,15 @@ function attrBuilder(el) { } } +// el-buttin 子级 +function buildElButtonChild(conf) { + const children = [] + if (conf.default) { + children.push(conf.default) + } + return children.join('\n') +} + // el-input innerHTML function buildElInputChild(conf) { const children = [] diff --git a/ruoyi-ui/src/utils/generator/render.js b/ruoyi-ui/src/utils/generator/render.js index 42cd6646..f187029d 100644 --- a/ruoyi-ui/src/utils/generator/render.js +++ b/ruoyi-ui/src/utils/generator/render.js @@ -26,6 +26,11 @@ function vModel(self, dataObject, defaultValue) { } const componentChild = { + 'el-button': { + default(h, conf, key) { + return conf[key] + }, + }, 'el-input': { prepend(h, conf, key) { return