config.js 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423
  1. export const formConf = {
  2. formRef: 'elForm',
  3. formModel: 'formData',
  4. size: 'medium',
  5. labelPosition: 'right',
  6. labelWidth: 100,
  7. formRules: 'rules',
  8. gutter: 15,
  9. disabled: false,
  10. span: 24,
  11. formBtns: true
  12. }
  13. export const inputComponents = [
  14. {
  15. label: '单行文本',
  16. tag: 'el-input',
  17. tagIcon: 'input',
  18. placeholder: '请输入',
  19. defaultValue: undefined,
  20. span: 24,
  21. labelWidth: null,
  22. style: { width: '100%' },
  23. clearable: true,
  24. prepend: '',
  25. append: '',
  26. 'prefix-icon': '',
  27. 'suffix-icon': '',
  28. maxlength: null,
  29. 'show-word-limit': false,
  30. readonly: false,
  31. disabled: false,
  32. required: true,
  33. regList: [],
  34. changeTag: true,
  35. document: 'https://element.eleme.cn/#/zh-CN/component/input'
  36. },
  37. {
  38. label: '多行文本',
  39. tag: 'el-input',
  40. tagIcon: 'textarea',
  41. type: 'textarea',
  42. placeholder: '请输入',
  43. defaultValue: undefined,
  44. span: 24,
  45. labelWidth: null,
  46. autosize: {
  47. minRows: 4,
  48. maxRows: 4
  49. },
  50. style: { width: '100%' },
  51. maxlength: null,
  52. 'show-word-limit': false,
  53. readonly: false,
  54. disabled: false,
  55. required: true,
  56. regList: [],
  57. changeTag: true,
  58. document: 'https://element.eleme.cn/#/zh-CN/component/input'
  59. },
  60. {
  61. label: '密码',
  62. tag: 'el-input',
  63. tagIcon: 'password',
  64. placeholder: '请输入',
  65. defaultValue: undefined,
  66. span: 24,
  67. 'show-password': true,
  68. labelWidth: null,
  69. style: { width: '100%' },
  70. clearable: true,
  71. prepend: '',
  72. append: '',
  73. 'prefix-icon': '',
  74. 'suffix-icon': '',
  75. maxlength: null,
  76. 'show-word-limit': false,
  77. readonly: false,
  78. disabled: false,
  79. required: true,
  80. regList: [],
  81. changeTag: true,
  82. document: 'https://element.eleme.cn/#/zh-CN/component/input'
  83. },
  84. {
  85. label: '计数器',
  86. tag: 'el-input-number',
  87. tagIcon: 'number',
  88. placeholder: '',
  89. defaultValue: undefined,
  90. span: 24,
  91. labelWidth: null,
  92. min: undefined,
  93. max: undefined,
  94. step: undefined,
  95. 'step-strictly': false,
  96. precision: undefined,
  97. 'controls-position': '',
  98. disabled: false,
  99. required: true,
  100. regList: [],
  101. changeTag: true,
  102. document: 'https://element.eleme.cn/#/zh-CN/component/input-number'
  103. }
  104. ]
  105. export const selectComponents = [
  106. {
  107. label: '下拉选择',
  108. tag: 'el-select',
  109. tagIcon: 'select',
  110. placeholder: '请选择',
  111. defaultValue: undefined,
  112. span: 24,
  113. labelWidth: null,
  114. style: { width: '100%' },
  115. clearable: true,
  116. disabled: false,
  117. required: true,
  118. filterable: false,
  119. multiple: false,
  120. options: [{
  121. label: '选项一',
  122. value: 1
  123. }, {
  124. label: '选项二',
  125. value: 2
  126. }],
  127. regList: [],
  128. changeTag: true,
  129. document: 'https://element.eleme.cn/#/zh-CN/component/select'
  130. },
  131. {
  132. label: '级联选择',
  133. tag: 'el-cascader',
  134. tagIcon: 'cascader',
  135. placeholder: '请选择',
  136. defaultValue: [],
  137. span: 24,
  138. labelWidth: null,
  139. style: { width: '100%' },
  140. props: {
  141. props: {
  142. multiple: false
  143. }
  144. },
  145. 'show-all-levels': true,
  146. disabled: false,
  147. clearable: true,
  148. filterable: false,
  149. required: true,
  150. options: [{
  151. id: 1,
  152. value: 1,
  153. label: '选项1',
  154. children: [{
  155. id: 2,
  156. value: 2,
  157. label: '选项1-1'
  158. }]
  159. }],
  160. dataType: 'dynamic',
  161. labelKey: 'label',
  162. valueKey: 'value',
  163. childrenKey: 'children',
  164. separator: '/',
  165. regList: [],
  166. changeTag: true,
  167. document: 'https://element.eleme.cn/#/zh-CN/component/cascader'
  168. },
  169. {
  170. label: '单选框组',
  171. tag: 'el-radio-group',
  172. tagIcon: 'radio',
  173. defaultValue: undefined,
  174. span: 24,
  175. labelWidth: null,
  176. style: {},
  177. optionType: 'default',
  178. border: false,
  179. size: 'medium',
  180. disabled: false,
  181. required: true,
  182. options: [{
  183. label: '选项一',
  184. value: 1
  185. }, {
  186. label: '选项二',
  187. value: 2
  188. }],
  189. regList: [],
  190. changeTag: true,
  191. document: 'https://element.eleme.cn/#/zh-CN/component/radio'
  192. },
  193. {
  194. label: '多选框组',
  195. tag: 'el-checkbox-group',
  196. tagIcon: 'checkbox',
  197. defaultValue: [],
  198. span: 24,
  199. labelWidth: null,
  200. style: {},
  201. optionType: 'default',
  202. border: false,
  203. size: 'medium',
  204. disabled: false,
  205. required: true,
  206. options: [{
  207. label: '选项一',
  208. value: 1
  209. }, {
  210. label: '选项二',
  211. value: 2
  212. }],
  213. regList: [],
  214. changeTag: true,
  215. document: 'https://element.eleme.cn/#/zh-CN/component/checkbox'
  216. },
  217. {
  218. label: '开关',
  219. tag: 'el-switch',
  220. tagIcon: 'switch',
  221. defaultValue: false,
  222. span: 24,
  223. labelWidth: null,
  224. style: {},
  225. disabled: false,
  226. required: true,
  227. 'active-text': '',
  228. 'inactive-text': '',
  229. 'active-color': null,
  230. 'inactive-color': null,
  231. 'active-value': true,
  232. 'inactive-value': false,
  233. regList: [],
  234. changeTag: true,
  235. document: 'https://element.eleme.cn/#/zh-CN/component/switch'
  236. },
  237. {
  238. label: '滑块',
  239. tag: 'el-slider',
  240. tagIcon: 'slider',
  241. defaultValue: null,
  242. span: 24,
  243. labelWidth: null,
  244. disabled: false,
  245. required: true,
  246. min: 0,
  247. max: 100,
  248. step: 1,
  249. 'show-stops': false,
  250. range: false,
  251. regList: [],
  252. changeTag: true,
  253. document: 'https://element.eleme.cn/#/zh-CN/component/slider'
  254. },
  255. {
  256. label: '时间选择',
  257. tag: 'el-time-picker',
  258. tagIcon: 'time',
  259. placeholder: '请选择',
  260. defaultValue: null,
  261. span: 24,
  262. labelWidth: null,
  263. style: { width: '100%' },
  264. disabled: false,
  265. clearable: true,
  266. required: true,
  267. 'picker-options': {
  268. selectableRange: '00:00:00-23:59:59'
  269. },
  270. format: 'HH:mm:ss',
  271. 'value-format': 'HH:mm:ss',
  272. regList: [],
  273. changeTag: true,
  274. document: 'https://element.eleme.cn/#/zh-CN/component/time-picker'
  275. },
  276. {
  277. label: '时间范围',
  278. tag: 'el-time-picker',
  279. tagIcon: 'time-range',
  280. defaultValue: null,
  281. span: 24,
  282. labelWidth: null,
  283. style: { width: '100%' },
  284. disabled: false,
  285. clearable: true,
  286. required: true,
  287. 'is-range': true,
  288. 'range-separator': '至',
  289. 'start-placeholder': '开始时间',
  290. 'end-placeholder': '结束时间',
  291. format: 'HH:mm:ss',
  292. 'value-format': 'HH:mm:ss',
  293. regList: [],
  294. changeTag: true,
  295. document: 'https://element.eleme.cn/#/zh-CN/component/time-picker'
  296. },
  297. {
  298. label: '日期选择',
  299. tag: 'el-date-picker',
  300. tagIcon: 'date',
  301. placeholder: '请选择',
  302. defaultValue: null,
  303. type: 'date',
  304. span: 24,
  305. labelWidth: null,
  306. style: { width: '100%' },
  307. disabled: false,
  308. clearable: true,
  309. required: true,
  310. format: 'yyyy-MM-dd',
  311. 'value-format': 'yyyy-MM-dd',
  312. readonly: false,
  313. regList: [],
  314. changeTag: true,
  315. document: 'https://element.eleme.cn/#/zh-CN/component/date-picker'
  316. },
  317. {
  318. label: '日期范围',
  319. tag: 'el-date-picker',
  320. tagIcon: 'date-range',
  321. defaultValue: null,
  322. span: 24,
  323. labelWidth: null,
  324. style: { width: '100%' },
  325. type: 'daterange',
  326. 'range-separator': '至',
  327. 'start-placeholder': '开始日期',
  328. 'end-placeholder': '结束日期',
  329. disabled: false,
  330. clearable: true,
  331. required: true,
  332. format: 'yyyy-MM-dd',
  333. 'value-format': 'yyyy-MM-dd',
  334. readonly: false,
  335. regList: [],
  336. changeTag: true,
  337. document: 'https://element.eleme.cn/#/zh-CN/component/date-picker'
  338. },
  339. {
  340. label: '评分',
  341. tag: 'el-rate',
  342. tagIcon: 'rate',
  343. defaultValue: 0,
  344. span: 24,
  345. labelWidth: null,
  346. style: {},
  347. max: 5,
  348. 'allow-half': false,
  349. 'show-text': false,
  350. 'show-score': false,
  351. disabled: false,
  352. required: true,
  353. regList: [],
  354. changeTag: true,
  355. document: 'https://element.eleme.cn/#/zh-CN/component/rate'
  356. },
  357. {
  358. label: '颜色选择',
  359. tag: 'el-color-picker',
  360. tagIcon: 'color',
  361. defaultValue: null,
  362. labelWidth: null,
  363. 'show-alpha': false,
  364. 'color-format': '',
  365. disabled: false,
  366. required: true,
  367. size: 'medium',
  368. regList: [],
  369. changeTag: true,
  370. document: 'https://element.eleme.cn/#/zh-CN/component/color-picker'
  371. },
  372. {
  373. label: '上传',
  374. tag: 'el-upload',
  375. tagIcon: 'upload',
  376. action: 'https://jsonplaceholder.typicode.com/posts/',
  377. defaultValue: null,
  378. labelWidth: null,
  379. disabled: false,
  380. required: true,
  381. accept: '',
  382. name: 'file',
  383. 'auto-upload': true,
  384. showTip: false,
  385. buttonText: '点击上传',
  386. fileSize: 2,
  387. sizeUnit: 'MB',
  388. 'list-type': 'text',
  389. multiple: false,
  390. regList: [],
  391. changeTag: true,
  392. document: 'https://element.eleme.cn/#/zh-CN/component/upload'
  393. }
  394. ]
  395. export const layoutComponents = [
  396. {
  397. layout: 'rowFormItem',
  398. tagIcon: 'row',
  399. type: 'default',
  400. justify: 'start',
  401. align: 'top',
  402. label: '行容器',
  403. layoutTree: true,
  404. children: [],
  405. document: 'https://element.eleme.cn/#/zh-CN/component/layout'
  406. }
  407. ]
  408. // 组件rule的触发方式,无触发方式的组件不生成rule
  409. export const trigger = {
  410. 'el-input': 'blur',
  411. 'el-input-number': 'blur',
  412. 'el-select': 'change',
  413. 'el-radio-group': 'change',
  414. 'el-checkbox-group': 'change',
  415. 'el-cascader': 'change',
  416. 'el-time-picker': 'change',
  417. 'el-date-picker': 'change',
  418. 'el-rate': 'change'
  419. }