fix:filter evaluator commander commanderHigh

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2025-10-31 11:29:51 +07:00
parent 68e8e6575d
commit cbc7e91967

View file

@ -67,6 +67,12 @@ const formRound = reactive({
posExecutiveName: "", posExecutiveName: "",
}); });
const FILTER_TYPES = {
EVALUATOR: "evaluatorIdOp",
COMMANDER: "commanderIdOp",
COMMANDER_HIGH: "commanderHighOp",
} as const;
const evaluatorIdOp = ref<DataOption[]>([]); const evaluatorIdOp = ref<DataOption[]>([]);
const commanderIdOp = ref<DataOption[]>([]); const commanderIdOp = ref<DataOption[]>([]);
const commanderHighOp = ref<DataOption[]>([]); const commanderHighOp = ref<DataOption[]>([]);
@ -199,31 +205,38 @@ function fetchRoundOption() {
* @param refData เเยกประเภท * @param refData เเยกประเภท
*/ */
function filterOption(val: string, update: Function, refData: string) { function filterOption(val: string, update: Function, refData: string) {
switch (refData) { const filterConfig = {
case "evaluatorIdOp": [FILTER_TYPES.EVALUATOR]: {
update(() => { sourceData: evaluatorIdMainOp.value,
evaluatorIdOp.value = evaluatorIdMainOp.value.filter( targetRef: evaluatorIdOp,
(v: DataOption) => v.name.indexOf(val) > -1 excludeIds: [formRound.commanderId, formRound.commanderHighId],
); },
}); [FILTER_TYPES.COMMANDER]: {
break; sourceData: commanderIdMainOp.value,
case "commanderIdOp": targetRef: commanderIdOp,
update(() => { excludeIds: [formRound.evaluatorId, formRound.commanderHighId],
commanderIdOp.value = commanderIdMainOp.value.filter( },
(v: DataOption) => v.name.indexOf(val) > -1 [FILTER_TYPES.COMMANDER_HIGH]: {
); sourceData: commanderHighMainOp.value,
}); targetRef: commanderHighOp,
break; excludeIds: [formRound.evaluatorId, formRound.commanderId],
case "commanderHighOp": },
update(() => { };
commanderHighOp.value = commanderHighMainOp.value.filter(
(v: DataOption) => v.name.indexOf(val) > -1 const config = filterConfig[refData as keyof typeof filterConfig];
);
}); if (!config) return;
break;
default: // excludeIds
break; const filteredData = config.sourceData.filter(
} (item: DataOption) => !config.excludeIds.includes(item.id)
);
update(() => {
config.targetRef.value = filteredData.filter((item: DataOption) =>
item.name.toLowerCase().includes(val.toLowerCase())
);
});
} }
/** เช็ครอบการประเมินที่ปิดรอบ */ /** เช็ครอบการประเมินที่ปิดรอบ */