Closed Xuechengqi closed 8 months ago
"@form-create/designer": "^3.1.1", "@form-create/element-ui": "^3.1.17"
"vue": "^3.2.39"
现在的需求是,将组件配置中的字段 ID置为不可编辑,自定义一个配置项,通过该属性配置项能改变组件的字段 ID 取值,并实时反应到组件配置的对应地方。
组件配置
字段 ID
属性配置
import uniqueId from '@form-create/utils/lib/unique' import { localeProps, makeRequiredRule } from '../../utils' const label = '用户' const fieldKey = 'user-select' export default { icon: 'icon-select', label, name: fieldKey, rule() { return { field: uniqueId(), type: 'select', title: '用户选择器', info: '', effect: { fetch: { action: '/api/v2/xxx/user_list', method: 'GET', data: {}, headers: {}, parse: function(res) { return (res.data || []).map(i => ({ ... i, value: i.id, label: i.name })) }, to: 'options' } }, props: { filterable: true, reserveKeyword: false, usage: 'normal' } } }, watch: { multiple({rule}) { rule.key = uniqueId() }, width({ value, rule }) { if (value) { rule.style = { width: value } } }, usage({ value, rule }) { const idField = document.querySelector('.component-id-input') if (idField) { idField.setAttribute('readOnly', false) } switch (value) { case 'normal': rule.field = uniqueId() rule.title = '用户选择器' break case 'default_carbon_copy': rule.title = '默认抄送人' rule.field = value break case 'carbon_copy': rule.title = '抄送人' rule.field = value break default: } rule.key = uniqueId() if (idField) { idField.setAttribute('readOnly', true) } } }, props(_, {t}) { return localeProps(t, fieldKey + '.props', [ makeRequiredRule(), { type: 'select', field: 'usage', title: '用途', options: [ { value: 'default_carbon_copy', label: '默认抄送人' }, { value: 'carbon_copy', label: '抄送人' }, { value: 'normal', label: '其它' } ], control: [ { handle: val => ['default_carbon_copy', 'carbon_copy'].includes(val), rule: [ { type: 'switch', field: 'multiple', title: '是否多选', value: true, props: { disabled: true } } ] }, { handle: val => !['default_carbon_copy', 'carbon_copy'].includes(val), rule: [ { type: 'switch', field: 'multiple', title: '是否多选', disabled: false } ] } ] }, { type: 'input', field: 'width', title: '组件宽度' }, { type: 'switch', field: 'disabled', title: '是否禁用' }, { type: 'switch', field: 'clearable', title: '是否可以清空选项' }, { type: 'switch', field: 'collapseTags', title: '多选时是否将选中值按文字的形式展示' }, {type: 'inputNumber', field: 'multipleLimit', title: '多选时用户最多可以选择的项目数,为 0 则不限制', props: {min: 0}}, {type: 'input', field: 'placeholder', title: '选择器灰色提示语'} ]) } }
配置面板
用途
默认抄送人
字段名称
用户选择器
default_carbon_copy
字段ID
在上述操作步骤中,第3步组件配置(未进行组件激活状态的切换)应该和第4步保存下去的东西一致(就像第5步一样)。
目前不支持这个操作, 下个版本会支持
@xaboy 请问下个版本大概什么时候发布呀
最新版本已经支持自定义设置表单配置,基础配置,组件配置,验证配置
版本号 (version)
"@form-create/designer": "^3.1.1", "@form-create/element-ui": "^3.1.17"
UI 框架的版本 (UI version)
"vue": "^3.2.39"
问题描述 (Issue)
现在的需求是,将
组件配置
中的字段 ID
置为不可编辑,自定义一个配置项,通过该属性配置
项能改变组件的字段 ID
取值,并实时反应到组件配置
的对应地方。复现步骤/生成规则 (Duplicate steps/generate rules)
配置面板
中的组件配置
-用途
选为默认抄送人。默认抄送人
,但是查看配置面板
中的组件配置
-字段名称
依然显示的是用户选择器
;并且字段 ID
也依旧是随机生成的id,而不是固定的default_carbon_copy
。默认抄送人
,field 也是default_carbon_copy
。字段名称
为默认抄送人
,字段ID
为default_carbon_copy
。期望的结果 (Desired outcome)
在上述操作步骤中,第3步
组件配置
(未进行组件激活状态的切换)应该和第4步保存下去的东西一致(就像第5步一样)。