tav-ui
Version:
72 lines (69 loc) • 2.03 kB
JavaScript
import { ref, unref, computed } from 'vue';
function useSelectRecord(param) {
const selectRecordRef = ref(unref(param.defaultValue).selectRecord);
const selectRecord = computed(() => unref(selectRecordRef));
const selectRecordFibersRef = ref({
id: "",
pid: "",
fieldIndex: 0,
idPathSplitResult: []
});
const selectRecordFibers = computed(() => unref(selectRecordFibersRef));
function setSelectRecord(selectRecord2) {
setSelectRecordFibers(selectRecord2.idPath);
selectRecordRef.value = {
...selectRecord2,
fieldIndex: unref(selectRecordFibers).fieldIndex
};
}
function setSelectRecordFibers(selectRecordIdPath) {
const idPath = unref(selectRecordIdPath);
const fields = unref(param.fields);
if (!idPath) {
selectRecordFibersRef.value = {
id: "",
pid: "",
fieldIndex: 0,
idPathSplitResult: []
};
} else {
const result = idPath.split("-");
if (result.length > fields.length) {
console.warn("CascadePro handleOptions has error.");
selectRecordFibersRef.value = {
id: "",
pid: "",
fieldIndex: 0,
idPathSplitResult: []
};
}
if (result.length === 1) {
if (result[0] === "") {
selectRecordFibersRef.value = {
id: "",
pid: "",
fieldIndex: 0,
idPathSplitResult: []
};
} else {
selectRecordFibersRef.value = {
id: result[0],
pid: "",
fieldIndex: 0,
idPathSplitResult: result
};
}
} else {
selectRecordFibersRef.value = {
id: result[result.length - 1],
pid: result[result.length - 1 - 1],
fieldIndex: result.length - 1,
idPathSplitResult: result
};
}
}
}
return { selectRecord, setSelectRecord, selectRecordFibers };
}
export { useSelectRecord };
//# sourceMappingURL=use-select-record2.mjs.map