Commit 669c42795a04709f1be52a45f04a144bb3b85a02
1 parent
0d79f10c
表单构建布局型组件新增按钮
Showing
4 changed files
with
42 additions
and
0 deletions
ruoyi-ui/src/assets/icons/svg/button.svg
0 → 100644
1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1588670460195" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1314" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M230.4 307.712c13.824 0 25.088-11.264 25.088-25.088 0-100.352 81.92-182.272 182.272-182.272s182.272 81.408 182.272 182.272c0 13.824 11.264 25.088 25.088 25.088s25.088-11.264 24.576-25.088c0-127.488-103.936-231.936-231.936-231.936S205.824 154.624 205.824 282.624c-0.512 14.336 10.752 25.088 24.576 25.088z m564.736 234.496c-11.264 0-21.504 2.048-31.232 6.144 0-44.544-40.448-81.92-88.064-81.92-14.848 0-28.16 3.584-39.936 10.24-13.824-28.16-44.544-48.128-78.848-48.128-12.288 0-24.576 2.56-35.328 7.68V284.16c0-45.568-37.888-81.92-84.48-81.92s-84.48 36.864-84.48 81.92v348.672l-69.12-112.64c-18.432-28.16-58.368-36.864-91.136-19.968-26.624 14.336-46.592 47.104-30.208 88.064 3.072 8.192 76.8 205.312 171.52 311.296 0 0 28.16 24.576 43.008 58.88 4.096 9.728 13.312 15.36 22.528 15.36 3.072 0 6.656-0.512 9.728-2.048 12.288-5.12 18.432-19.968 12.8-32.256-19.456-44.544-53.76-74.752-53.76-74.752C281.6 768 209.408 573.44 208.384 570.88c-5.12-12.8-2.56-20.992 7.168-26.112 9.216-4.608 21.504-4.608 26.112 2.56l113.152 184.32c4.096 8.704 12.8 14.336 22.528 14.336 13.824 0 25.088-10.752 25.088-25.088V284.16c0-17.92 15.36-32.256 34.816-32.256s34.816 14.336 34.816 32.256v284.16c0 13.824 10.24 25.088 24.576 25.088 13.824 0 25.088-11.264 25.088-25.088v-57.344c0-17.92 15.36-32.768 34.816-32.768 19.968 0 37.376 15.36 37.376 32.768v95.232c0 7.168 3.072 13.312 7.68 17.92 4.608 4.608 10.752 7.168 17.92 7.168 13.824 0 24.576-11.264 24.576-25.088V547.84c0-18.432 13.824-32.256 32.256-32.256 20.48 0 38.912 15.36 38.912 32.256v95.232c0 13.824 11.264 25.088 25.088 25.088s24.576-11.264 25.088-25.088v-18.944c0-18.944 12.8-32.256 30.72-32.256 18.432 0 22.528 18.944 22.528 31.744 0 1.024-11.776 99.84-50.688 173.056-30.72 58.368-45.056 112.128-51.2 146.944-2.56 13.312 6.656 26.112 19.968 28.672 1.536 0 3.072 0.512 4.608 0.512 11.776 0 22.016-8.192 24.064-20.48 5.632-31.232 18.432-79.36 46.08-132.608 43.52-81.92 55.808-186.88 56.32-193.536-0.512-50.688-29.696-83.968-72.704-83.968z"></path></path></svg> | |
0 | 2 | \ No newline at end of file |
... | ... |
ruoyi-ui/src/utils/generator/config.js
... | ... | @@ -406,6 +406,21 @@ export const layoutComponents = [ |
406 | 406 | layoutTree: true, |
407 | 407 | children: [], |
408 | 408 | document: 'https://element.eleme.cn/#/zh-CN/component/layout' |
409 | + }, | |
410 | + { | |
411 | + layout: 'colFormItem', | |
412 | + label: '按钮', | |
413 | + changeTag: true, | |
414 | + labelWidth: null, | |
415 | + tag: 'el-button', | |
416 | + tagIcon: 'button', | |
417 | + span: 24, | |
418 | + default: '主要按钮', | |
419 | + type: 'primary', | |
420 | + icon: 'el-icon-search', | |
421 | + size: 'medium', | |
422 | + disabled: false, | |
423 | + document: 'https://element.eleme.cn/#/zh-CN/component/button' | |
409 | 424 | } |
410 | 425 | ] |
411 | 426 | |
... | ... |
ruoyi-ui/src/utils/generator/html.js
... | ... | @@ -107,6 +107,18 @@ const layouts = { |
107 | 107 | } |
108 | 108 | |
109 | 109 | const tags = { |
110 | + 'el-button': el => { | |
111 | + const { | |
112 | + tag, disabled | |
113 | + } = attrBuilder(el) | |
114 | + const type = el.type ? `type="${el.type}"` : '' | |
115 | + const icon = el.icon ? `icon="${el.icon}"` : '' | |
116 | + const size = el.size ? `size="${el.size}"` : '' | |
117 | + let child = buildElButtonChild(el) | |
118 | + | |
119 | + if (child) child = `\n${child}\n` // 换行 | |
120 | + return `<${el.tag} ${type} ${icon} ${size} ${disabled}>${child}</${el.tag}>` | |
121 | + }, | |
110 | 122 | 'el-input': el => { |
111 | 123 | const { |
112 | 124 | disabled, vModel, clearable, placeholder, width |
... | ... | @@ -272,6 +284,15 @@ function attrBuilder(el) { |
272 | 284 | } |
273 | 285 | } |
274 | 286 | |
287 | +// el-buttin 子级 | |
288 | +function buildElButtonChild(conf) { | |
289 | + const children = [] | |
290 | + if (conf.default) { | |
291 | + children.push(conf.default) | |
292 | + } | |
293 | + return children.join('\n') | |
294 | +} | |
295 | + | |
275 | 296 | // el-input innerHTML |
276 | 297 | function buildElInputChild(conf) { |
277 | 298 | const children = [] |
... | ... |
ruoyi-ui/src/utils/generator/render.js
... | ... | @@ -26,6 +26,11 @@ function vModel(self, dataObject, defaultValue) { |
26 | 26 | } |
27 | 27 | |
28 | 28 | const componentChild = { |
29 | + 'el-button': { | |
30 | + default(h, conf, key) { | |
31 | + return conf[key] | |
32 | + }, | |
33 | + }, | |
29 | 34 | 'el-input': { |
30 | 35 | prepend(h, conf, key) { |
31 | 36 | return <template slot="prepend">{conf[key]}</template> |
... | ... |