mirror of
https://github.com/dec0dOS/zero-ui.git
synced 2025-10-13 07:06:09 +08:00
73 lines
1.4 KiB
JavaScript
73 lines
1.4 KiB
JavaScript
import { pull } from "lodash";
|
|
|
|
export function parseValue(
|
|
event,
|
|
mode = "text",
|
|
data = null,
|
|
key1 = null,
|
|
key2 = null,
|
|
id = null
|
|
) {
|
|
let value;
|
|
if (mode === "json") {
|
|
value = JSON.parse(event.target.value);
|
|
} else if (mode === "checkbox") {
|
|
value = event.target.checked;
|
|
} else if (mode === "arrayDel") {
|
|
value = data[key1][key2];
|
|
if (id !== null) {
|
|
value.splice(id, 1);
|
|
}
|
|
} else if (mode === "arrayAdd") {
|
|
value = data[key1][key2];
|
|
if (id) {
|
|
value.push(id);
|
|
}
|
|
} else if (mode === "custom") {
|
|
value = data;
|
|
} else if (mode === "capChange") {
|
|
value = data[key1][key2];
|
|
if (event.target.checked) {
|
|
value.push(id);
|
|
} else {
|
|
pull(value, id);
|
|
}
|
|
} else if (mode === "tagChange") {
|
|
value = data[key1][key2];
|
|
let tagValue = event.target.value;
|
|
let tagIndex = value.findIndex((item) => {
|
|
return item[0] === id;
|
|
});
|
|
if (tagIndex !== -1) {
|
|
value.splice(tagIndex, 1);
|
|
}
|
|
if (tagValue !== "") {
|
|
value.push([id, tagValue]);
|
|
}
|
|
} else {
|
|
value = event.target.value;
|
|
}
|
|
return value;
|
|
}
|
|
|
|
export function replaceValue(data, key1, key2, value) {
|
|
if (key2) {
|
|
data[key1][key2] = value;
|
|
} else {
|
|
data[key1] = value;
|
|
}
|
|
return data;
|
|
}
|
|
|
|
export function setValue(data, key1, key2, value) {
|
|
if (key2) {
|
|
data = {
|
|
[key1]: { [key2]: value },
|
|
};
|
|
} else {
|
|
data = {
|
|
[key1]: value,
|
|
};
|
|
}
|
|
return data;
|
|
}
|