vue-admin-core
Version:
A Component Library for Vue 3
45 lines (42 loc) • 1.5 kB
JavaScript
import { ref, watch } from 'vue';
import { useField, useFieldSchema } from '@formily/vue';
import { isString, isArray } from 'lodash-es';
import { isField } from '@formily/core';
import { UPDATE_MODEL_EVENT, CHANGE_EVENT } from 'element-plus';
const useArrToStr = (props, { emit }, ext) => {
const fieldRef = useField();
const schema = useFieldSchema();
const modelValue = ref();
watch(
() => props.modelValue,
(value) => {
var _a, _b;
if (schema.value.type === "string" && (props.multiple || ((_a = props.props) == null ? void 0 : _a.multiple) || ext.always) && isString(value) && value) {
modelValue.value = value.split(((_b = schema.value["x-data"]) == null ? void 0 : _b["separator"]) || ",");
} else {
modelValue.value = value;
}
},
{
immediate: true,
deep: true
}
);
return {
modelValue,
"onUpdate:modelValue": (value) => {
var _a, _b;
if (isField(fieldRef.value)) {
if (schema.value.type === "string" && (props.multiple || ((_a = props.props) == null ? void 0 : _a.multiple) || ext.always) && isArray(value)) {
modelValue.value = value.join(((_b = schema.value["x-data"]) == null ? void 0 : _b["separator"]) || ",");
} else {
modelValue.value = value;
}
emit(UPDATE_MODEL_EVENT, modelValue.value);
emit(CHANGE_EVENT, modelValue.value);
}
}
};
};
export { useArrToStr };
//# sourceMappingURL=useArrToStr.mjs.map