Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

2 роки тому
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. # Add Or Update Dialog Configs
  2. > 通过传入合理的配置项来使用 addOrUpdate Dialog
  3. ## 示例
  4. ```js
  5. const addOrUpdateConfigs = {
  6. type: 'dialog', // dialog | drawer | page
  7. infoUrl: '/monitoring/product',
  8. fields: [
  9. 'name',
  10. {
  11. name: 'code',
  12. api: '/monitoring/product/getCode'
  13. },
  14. {
  15. name: 'processTime',
  16. label: '加工时间',
  17. placeholder: '请输入加工时间',
  18. type: 'number', // type: number(input+number) | default(input) | textarea | select(options在父组件里获取) | datetime
  19. required: true,
  20. rules: [
  21. // 除了required之外的验证规则
  22. {
  23. type: 'number',
  24. trigger: 'blur',
  25. transform: val => Number(val),
  26. message: '必须输入数字'
  27. }
  28. ]
  29. },
  30. 'remark',
  31. 'specifications',
  32. {
  33. name: 'typeDictValue',
  34. rules: [{ required: true, trigger: 'blur' }],
  35. label: '产品类型', // 对于非常见属性,最好自己指定label
  36. type: 'select',
  37. options: [
  38. // 动态获取
  39. ]
  40. },
  41. {
  42. name: 'unitDictValue',
  43. label: '单位',
  44. type: 'select',
  45. placeholder: '请选择单位',
  46. options: [
  47. // 动态获取
  48. ]
  49. }
  50. ],
  51. operations: [
  52. // { name: 'reset', url: true },
  53. { name: 'cancel', url: true, showAlways: true },
  54. { name: 'save', url: '/monitoring/product', permission: '', showOnEdit: false },
  55. { name: 'update', url: '/monitoring/product', permission: '', showOnEdit: true }
  56. ],
  57. subtable: {
  58. // for i18n
  59. title: '动态属性',
  60. url: '/monitoring/productArrt',
  61. tableConfigs: [
  62. { type: 'index', name: '序号' },
  63. { prop: 'createTime', name: '添加时间', filter: val => (val ? moment(val).format('YYYY-MM-DD hh:mm:ss') : '-') },
  64. { prop: 'name', name: '属性名', formField: true, rules: [{ required: true, message: '必填', trigger: 'blur' }] },
  65. { prop: 'code', name: '属性值', formField: true },
  66. { prop: 'operations', name: '操作', fixed: 'right', width: 180, subcomponent: TableOperateComponent, options: ['edit', 'delete'] }
  67. ]
  68. },
  69. extraComponents: [
  70. {
  71. name: 'CompName',
  72. label: 'markdown编辑器',
  73. component: () => import('xx.vue')
  74. }
  75. ]
  76. }
  77. ```
  78. ## 配置项
  79. <br>
  80. ### type
  81. 类型: string
  82. 值:dialog | drawer | page
  83. 含义:对话框、抽屉、新页面
  84. ### infoUrl
  85. 类型:string
  86. 含义:详情的接口,如 `/monitoring/product`
  87. ### fields
  88. 含义:设置新增、编辑时的字段
  89. 类型:`Array<string | object>`
  90. - 当类型为 string 时,默认渲染 `<input>`
  91. - 当类型为 object 时,有如下选项:
  92. - name: 字段名
  93. - label: 字段的 label
  94. - api: 如果设置了该属性,则该字段会自动从服务器获取值,一般为 code 字段需要
  95. - placeholder
  96. - type: 渲染何种类型的组件,默认值: 'input'
  97. - options: 当上一条 type 值为 'select' 时,需要自行动态获取并加载 options 列表
  98. - required: 是否是必须填写的字段(或可用过 rules 做更加具体的设定,设定方式参考 async-validator )
  99. - rules: 验证规则数组,如果只有"必填"的需求,可直接用上一条
  100. ### operations
  101. 含义:设置对话框等组件里,需要哪些按钮
  102. 类型:`Array<object>`
  103. 属性:
  104. - name,按钮的类型,决定按钮的文字和颜色
  105. - url,按钮操作的接口地址,不需要的可以给 null 或 true
  106. - permission,该操作需要的权限,如 "sys:xxx:add" 形式
  107. - showOnEdit: boolean,是否编辑页面展示,不设置则始终展示
  108. 示例:
  109. ```js
  110. operations: [
  111. { name: 'reset', url: true },
  112. { name: 'cancel', url: true, showAlways: true },
  113. { name: 'save', url: '/monitoring/product', permission: '', showOnEdit: false },
  114. { name: 'update', url: '/monitoring/product', permission: '', showOnEdit: true }
  115. ],
  116. ```
  117. ### subtable
  118. 含义:有些对话框里需要额外的表格来展示更深层次的数据,如“产品属性”
  119. 类型:object
  120. 选项:
  121. - title, 内嵌表格的标题
  122. - url, 内嵌表格的数据地址
  123. - tableConfigs,内嵌表格的配置选项
  124. - 类型:`Array<object>`
  125. - 配置:
  126. - type: 同 element-ui 的 table 属性的 type
  127. - fixed: 同 element-ui 的 table 属性的 fixed
  128. - width: 同 element-ui 的 table 属性的 width
  129. - name: 表头显示的内容
  130. - filter: 一般用于转换时间
  131. - prop: 字段
  132. - formField: boolean, 是否用于表单的填写
  133. - rules: 表单验证规则,详见:async-validator
  134. - subcomponent: 同 base-table 的 subcomponent
  135. - options: 表格操作列需要哪些操作
  136. - 值:`edit` | `delete` | `detail`,需要其他可自行添加(修改 base-table 组件)
  137. ### extraComponents
  138. 含义: 需要在对话框里使用的自定义组件列表
  139. 类型: Array<object>
  140. 对象选项:
  141. - name: 该组件对应的 dataForm 字段(需要参照后端文档来指定)
  142. - hasModel: boolean, 上传组件一般设置为 false,设置是否和 dataForm 关联
  143. - label
  144. - fieldType: 设置该组件的数据将以什么数据类型形式来保存
  145. - component: 组件
  146. - props 传给组件的配置