Commit 669c42795a04709f1be52a45f04a144bb3b85a02

Authored by RuoYi
1 parent 0d79f10c

表单构建布局型组件新增按钮

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>
... ...