@jdlinker/ui
Version:
jdLinker UI库,基于ant-design-vue封装
210 lines • 6.47 kB
JSX
import { isVNode as _isVNode, createVNode as _createVNode, resolveComponent as _resolveComponent } from "vue";
import { translate } from '@jdlinker/utils';
function _isSlot(s) {
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !_isVNode(s);
}
export const createInputTextEditor = function (propName, propLabelKey) {
return {
props: {
optionModel: Object
},
render() {
return _createVNode(_resolveComponent("el-form-item"), {
"label": translate(propLabelKey)
}, {
default: () => [_createVNode(_resolveComponent("el-input"), {
"type": "text",
"modelValue": this.optionModel[propName],
"onUpdate:modelValue": $event => this.optionModel[propName] = $event
}, null)]
});
}
};
};
export const createInputNumberEditor = function (propName, propLabelKey) {
return {
props: {
optionModel: Object
},
methods: {
updateValue(newValue) {
if (newValue === undefined || newValue === null || isNaN(newValue)) {
this.optionModel[propName] = null;
} else {
this.optionModel[propName] = Number(newValue);
}
}
},
render() {
return _createVNode(_resolveComponent("el-form-item"), {
"label": translate(propLabelKey)
}, {
default: () => [_createVNode(_resolveComponent("el-input-number"), {
"type": "text",
"modelValue": this.optionModel[propName],
"onUpdate:modelValue": $event => this.optionModel[propName] = $event,
"onChange": this.updateValue,
"style": "width: 100%"
}, null)]
});
}
};
};
export const createBooleanEditor = function (propName, propLabelKey) {
return {
props: {
optionModel: Object
},
render() {
return _createVNode(_resolveComponent("el-form-item"), {
"label": translate(propLabelKey)
}, {
default: () => [_createVNode(_resolveComponent("el-switch"), {
"modelValue": this.optionModel[propName],
"onUpdate:modelValue": $event => this.optionModel[propName] = $event
}, null)]
});
}
};
};
export const createCheckboxGroupEditor = function (propName, propLabelKey, configs) {
return {
props: {
optionModel: Object
},
render() {
let _slot;
return _createVNode(_resolveComponent("el-form-item"), {
"label": translate(propLabelKey)
}, {
default: () => [_createVNode(_resolveComponent("el-checkbox-group"), {
"modelValue": this.optionModel[propName],
"onUpdate:modelValue": $event => this.optionModel[propName] = $event
}, _isSlot(_slot = configs.optionItems.map(item => {
return _createVNode(_resolveComponent("el-checkbox"), {
"label": item.value
}, {
default: () => [item.label]
});
})) ? _slot : {
default: () => [_slot]
})]
});
}
};
};
export const createRadioGroupEditor = function (propName, propLabelKey, configs) {
return {
props: {
optionModel: Object
},
render() {
let _slot2;
return _createVNode(_resolveComponent("el-form-item"), {
"label": translate(propLabelKey)
}, {
default: () => [_createVNode(_resolveComponent("el-radio-group"), {
"modelValue": this.optionModel[propName],
"onUpdate:modelValue": $event => this.optionModel[propName] = $event
}, _isSlot(_slot2 = configs.optionItems.map(item => {
return _createVNode(_resolveComponent("el-radio"), {
"label": item.value
}, {
default: () => [item.label]
});
})) ? _slot2 : {
default: () => [_slot2]
})]
});
}
};
};
export const createRadioButtonGroupEditor = function (propName, propLabelKey, configs) {
return {
props: {
optionModel: Object
},
render() {
let _slot3;
return _createVNode(_resolveComponent("el-form-item"), {
"label": translate(propLabelKey)
}, {
default: () => [_createVNode(_resolveComponent("el-radio-group"), {
"modelValue": this.optionModel[propName],
"onUpdate:modelValue": $event => this.optionModel[propName] = $event
}, _isSlot(_slot3 = configs.optionItems.map(item => {
return _createVNode(_resolveComponent("el-radio-button"), {
"label": item.value
}, {
default: () => [item.label]
});
})) ? _slot3 : {
default: () => [_slot3]
})]
});
}
};
};
export const createSelectEditor = function (propName, propLabelKey, configs) {
return {
props: {
optionModel: Object
},
render() {
let _slot4;
return _createVNode(_resolveComponent("el-form-item"), {
"label": translate(propLabelKey)
}, {
default: () => [_createVNode(_resolveComponent("el-select"), {
"modelValue": this.optionModel[propName],
"onUpdate:modelValue": $event => this.optionModel[propName] = $event
}, _isSlot(_slot4 = configs.optionItems.map(item => {
return _createVNode(_resolveComponent("el-option"), {
"label": item.label,
"value": item.value
}, null);
})) ? _slot4 : {
default: () => [_slot4]
})]
});
}
};
};
export const createEventHandlerEditor = function (eventPropName, eventParams) {
return {
props: {
optionModel: Object
},
methods: {
editEventHandler() {
this.dispatch('SettingPanel', 'editEventHandler', [eventPropName, [...eventParams]]);
}
},
render() {
let _slot5;
return _createVNode(_resolveComponent("el-form-item"), {
"label": eventPropName,
"label-width": "150px"
}, {
default: () => [_createVNode(_resolveComponent("el-button"), {
"type": "info",
"icon": "el-icon-edit",
"plain": true,
"round": true,
"onClick": this.editEventHandler
}, _isSlot(_slot5 = translate('designer.setting.addEventHandler')) ? _slot5 : {
default: () => [_slot5]
})]
});
}
};
};
export const createEmptyEditor = function () {
return {
render() {
return _createVNode("div", {
"style": "display: none"
}, null);
}
};
};