表单构建布局型组件新增按钮
This commit is contained in:
		
							
								
								
									
										1
									
								
								ruoyi-ui/src/assets/icons/svg/button.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								ruoyi-ui/src/assets/icons/svg/button.svg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +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> | ||||
| After Width: | Height: | Size: 2.3 KiB | 
| @@ -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' | ||||
|   } | ||||
| ] | ||||
|  | ||||
|   | ||||
| @@ -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.tag}>` | ||||
|   }, | ||||
|   '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 = [] | ||||
|   | ||||
| @@ -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 <template slot="prepend">{conf[key]}</template> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user