@jdlinker/ui
Version:
jdLinker UI库,基于ant-design-vue封装
218 lines (204 loc) • 7.05 kB
JavaScript
//import { vfApp } from '@/utils/create-app'
/**
* 格式说明:属性名称==对应属性编辑器的组件名称
*/
const COMMON_PROPERTIES = {
//字段
name: 'name-editor',
label: 'label-editor',
labelAlign: 'labelAlign-editor',
type: 'type-editor',
defaultValue: 'defaultValue-editor',
placeholder: 'placeholder-editor',
startPlaceholder: 'startPlaceholder-editor',
endPlaceholder: 'endPlaceholder-editor',
columnWidth: 'columnWidth-editor',
autoFullWidth: 'autoFullWidth-editor',
size: 'size-editor',
showStops: 'showStops-editor',
displayStyle: 'displayStyle-editor',
buttonStyle: 'buttonStyle-editor',
border: 'border-editor',
labelWidth: 'labelWidth-editor',
labelHidden: 'labelHidden-editor',
rows: 'rows-editor',
required: 'required-editor',
requiredHint: 'requiredHint-editor',
validation: 'validation-editor',
validationHint: 'validationHint-editor',
readonly: 'readonly-editor',
disabled: 'disabled-editor',
hidden: 'hidden-editor',
clearable: 'clearable-editor',
editable: 'editable-editor',
showPassword: 'showPassword-editor',
textContent: 'textContent-editor',
textAlign: 'textAlign-editor',
fontSize: 'fontSize-editor',
preWrap: 'preWrap-editor',
htmlContent: 'htmlContent-editor',
format: 'format-editor',
valueFormat: 'valueFormat-editor',
filterable: 'filterable-editor',
allowCreate: 'allowCreate-editor',
remote: 'remote-editor',
automaticDropdown: 'automaticDropdown-editor',
checkStrictly: 'checkStrictly-editor',
showAllLevels: 'showAllLevels-editor',
multiple: 'multiple-editor',
multipleLimit: 'multipleLimit-editor',
contentPosition: 'contentPosition-editor',
optionItems: 'optionItems-editor',
uploadURL: 'uploadURL-editor',
uploadTip: 'uploadTip-editor',
withCredentials: 'withCredentials-editor',
multipleSelect: 'multipleSelect-editor',
limit: 'limit-editor',
fileMaxSize: 'fileMaxSize-editor',
fileTypes: 'fileTypes-editor',
contentHeight: 'contentHeight-editor',
customClass: 'customClass-editor',
//容器
showBlankRow: 'showBlankRow-editor',
showRowNumber: 'showRowNumber-editor',
cellWidth: 'cellWidth-editor',
cellHeight: 'cellHeight-editor',
colHeight: 'colHeight-editor',
wordBreak: 'wordBreak-editor',
gutter: 'gutter-editor',
responsive: 'responsive-editor',
span: 'span-editor',
offset: 'offset-editor',
push: 'push-editor',
pull: 'pull-editor'
};
const ADVANCED_PROPERTIES = {
min: 'min-editor',
max: 'max-editor',
precision: 'precision-editor',
step: 'step-editor',
controlsPosition: 'controlsPosition-editor',
minLength: 'minLength-editor',
maxLength: 'maxLength-editor',
showWordLimit: 'showWordLimit-editor',
prefixIcon: 'prefixIcon-editor',
suffixIcon: 'suffixIcon-editor',
switchWidth: 'switchWidth-editor',
activeText: 'activeText-editor',
inactiveText: 'inactiveText-editor',
activeColor: 'activeColor-editor',
inactiveColor: 'inactiveColor-editor',
lowThreshold: 'lowThreshold-editor',
highThreshold: 'highThreshold-editor',
allowHalf: 'allowHalf-editor',
showText: 'showText-editor',
showScore: 'showScore-editor',
range: 'range-editor',
vertical: 'vertical-editor',
plain: 'plain-editor',
round: 'round-editor',
circle: 'circle-editor',
icon: 'icon-editor',
labelIconClass: 'labelIconClass-editor',
labelIconPosition: 'labelIconPosition-editor',
labelTooltip: 'labelTooltip-editor',
appendButton: 'appendButton-editor',
appendButtonDisabled: 'appendButtonDisabled-editor',
buttonIcon: 'buttonIcon-editor'
};
const EVENT_PROPERTIES = {
//字段
onCreated: 'onCreated-editor',
onMounted: 'onMounted-editor',
onClick: 'onClick-editor',
onInput: 'onInput-editor',
onChange: 'onChange-editor',
onFocus: 'onFocus-editor',
onBlur: 'onBlur-editor',
onRemoteQuery: 'onRemoteQuery-editor',
onBeforeUpload: 'onBeforeUpload-editor',
onUploadSuccess: 'onUploadSuccess-editor',
onUploadError: 'onUploadError-editor',
onFileRemove: 'onFileRemove-editor',
onValidate: 'onValidate-editor',
onAppendButtonClick: 'onAppendButtonClick-editor',
//容器
onSubFormRowAdd: 'onSubFormRowAdd-editor',
onSubFormRowInsert: 'onSubFormRowInsert-editor',
onSubFormRowDelete: 'onSubFormRowDelete-editor',
onSubFormRowChange: 'onSubFormRowChange-editor'
};
/**
* 注册组件常见属性
* 如属性编辑器的组件名称propEditorName设置为null,则不显示该属性编辑器!!
* @param uniquePropName 属性名称(保证名称唯一,不跟其他组件属性冲突)
* @param propEditorName 对应属性编辑器的组件名称
*/
export function registerCommonProperty(uniquePropName, propEditorName) {
COMMON_PROPERTIES[uniquePropName] = propEditorName;
}
/**
* 注册组件高级属性
* 如属性编辑器的组件名称propEditorName设置为null,则不显示该属性编辑器!!
* @param uniquePropName 属性名称(保证名称唯一,不跟其他组件属性冲突)
* @param propEditorName 对应属性编辑器的组件名称
*/
export function registerAdvancedProperty(uniquePropName, propEditorName) {
ADVANCED_PROPERTIES[uniquePropName] = propEditorName;
}
/**
* 注册组件事件属性
* 如属性编辑器的组件名称propEditorName设置为null,则不显示该属性编辑器!!
* @param uniquePropName 属性名称(保证名称唯一,不跟其他组件属性冲突)
* @param propEditorName 对应属性编辑器的组件名称
*/
export function registerEventProperty(uniquePropName, propEditorName) {
EVENT_PROPERTIES[uniquePropName] = propEditorName;
}
/**
* 判断属性是否已注册
* @param uniquePropName 属性名称(保证名称唯一,不跟其他组件属性冲突)
*/
export function propertyRegistered(uniquePropName) {
return (
!!COMMON_PROPERTIES[uniquePropName] || !!ADVANCED_PROPERTIES[uniquePropName] || !!EVENT_PROPERTIES[uniquePropName]
);
}
/**
* 注册常见属性对应的属性编辑器
* @param app
* @param uniquePropName
* @param propEditorName
* @param editorComponent
*/
export function registerCPEditor(app, uniquePropName, propEditorName, editorComponent) {
app.component(propEditorName, editorComponent);
registerCommonProperty(uniquePropName, propEditorName);
}
/**
* 注册高级属性对应的属性编辑器
* @param app
* @param uniquePropName
* @param propEditorName
* @param editorComponent
*/
export function registerAPEditor(app, uniquePropName, propEditorName, editorComponent) {
app.component(propEditorName, editorComponent);
registerAdvancedProperty(uniquePropName, propEditorName);
}
/**
* 注册事件属性对应的属性编辑器
* @param app
* @param uniquePropName
* @param propEditorName
* @param editorComponent
*/
export function registerEPEditor(app, uniquePropName, propEditorName, editorComponent) {
app.component(propEditorName, editorComponent);
registerEventProperty(uniquePropName, propEditorName);
}
export default {
COMMON_PROPERTIES,
ADVANCED_PROPERTIES,
EVENT_PROPERTIES
};