tav-ui
Version:
39 lines (34 loc) • 1 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var lodashEs = require('lodash-es');
function useRuleFormItem(props, key = "value", changeEvent = "change", emitData) {
const instance = vue.getCurrentInstance();
const emit = instance?.emit;
const innerState = vue.reactive({
value: props[key]
});
const defaultState = vue.readonly(innerState);
const setState = (val) => {
innerState.value = val;
};
vue.watchEffect(() => {
innerState.value = props[key];
});
const state = vue.computed({
get() {
return innerState.value;
},
set(value) {
if (lodashEs.isEqual(value, defaultState.value))
return;
innerState.value = value;
vue.nextTick(() => {
emit?.(changeEvent, value, ...vue.toRaw(vue.unref(emitData)) || []);
});
}
});
return [state, setState, defaultState];
}
exports.useRuleFormItem = useRuleFormItem;
//# sourceMappingURL=useFormItem2.js.map