123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import type { SpecialTag, Track } from "@/types";
- export default function useTrackColor() {
- const colors = ["red", "blue", "green"];
- const colorMap: Record<number, Record<number, string>> = {};
- function addTrackColorAttr(tList: Track[], groupNumber: number): Track[] {
- let userIds: (number | undefined)[] = tList
- .map((v) => v.userId)
- .filter((x) => !!x);
- userIds = Array.from(new Set(userIds));
- const isByMultMark = userIds.length > 1;
- tList = tList.map((item) => {
- const uid = item.userId;
- if (item.headerMarkScore) {
- item.color = "green";
- } else {
- if (!colorMap[groupNumber]) colorMap[groupNumber] = {};
- if (!colorMap[groupNumber][uid]) {
- colorMap[groupNumber][uid] =
- colors[Object.keys(colorMap[groupNumber]).length] || "green";
- }
- item.color = colorMap[groupNumber][uid];
- }
- item.isByMultMark = isByMultMark;
- return item;
- });
- return tList;
- }
- function addSpecialTrackColorAttr(tList: SpecialTag[]): SpecialTag[] {
- return tList.map((item) => {
- item.color =
- colorMap[item.groupNumber] && colorMap[item.groupNumber][item.markerId]
- ? colorMap[item.groupNumber][item.markerId]
- : "green";
- return item;
- });
- }
- function addHeaderTrackColorAttr(headerTrack: any): any {
- return headerTrack.map((item: any) => {
- item.color = "green";
- return item;
- });
- }
- return {
- addTrackColorAttr,
- addSpecialTrackColorAttr,
- addHeaderTrackColorAttr,
- };
- }
|