- {{ props.modelValue.avatar.name }}
- Lv.{{ props.modelValue.avatar.level }}
- 好感{{ props.modelValue.avatar.fetter }}
+ {{ props.avatar.avatar.name }}
+ Lv.{{ props.avatar.avatar.level }}
+ 好感{{ props.avatar.avatar.fetter }}
mdi-tshirt-crew
-
+
@@ -37,40 +38,40 @@
-
-
+
+
@@ -88,28 +89,35 @@ import TuaDcRelic from "./tua-dc-relic.vue";
import TuaDcTalents from "./tua-dc-talents.vue";
import TuaDcWeapon from "./tua-dc-weapon.vue";
+import { AppCharacterData } from "@/data/index.js";
+
type fixedLenArr
= [T, ...Array] & { length: N };
type RelicList = fixedLenArr;
-type TuaDetailCardProps = { modelValue: TGApp.Sqlite.Character.TableTrans };
+type TuaDetailCardProps = { avatar: TGApp.Sqlite.Character.TableTrans };
const props = defineProps();
const userStore = useUserStore();
+const fullIcon = computed(() => {
+ const costume = getCostume();
+ if (costume) return `/WIKI/costume/${costume.id}_full.webp`;
+ return props.avatar.avatar.image;
+});
const relicList = computed(() => {
return [
- props.modelValue.relics.find((item) => item.pos === 1) || false,
- props.modelValue.relics.find((item) => item.pos === 2) || false,
- props.modelValue.relics.find((item) => item.pos === 3) || false,
- props.modelValue.relics.find((item) => item.pos === 4) || false,
- props.modelValue.relics.find((item) => item.pos === 5) || false,
+ props.avatar.relics.find((item) => item.pos === 1) || false,
+ props.avatar.relics.find((item) => item.pos === 2) || false,
+ props.avatar.relics.find((item) => item.pos === 3) || false,
+ props.avatar.relics.find((item) => item.pos === 4) || false,
+ props.avatar.relics.find((item) => item.pos === 5) || false,
];
});
const propMain = computed>(() =>
- props.modelValue.propSelected.map((item) => userStore.getProp(item.property_type)),
+ props.avatar.propSelected.map((item) => userStore.getProp(item.property_type)),
);
const bg = computed(() => {
- const card = TSUserAvatar.getAvatarCard(props.modelValue.cid);
+ const card = TSUserAvatar.getAvatarCard(props.avatar.cid);
return `url("/WIKI/nameCard/profile/${card}.webp")`;
});
const loading = ref(false);
@@ -120,11 +128,23 @@ async function share(): Promise {
showSnackbar.error("分享失败,未找到分享内容");
return;
}
- const fileName = `【角色详情】${props.modelValue.avatar.name}`;
+ const fileName = `【角色详情】${props.avatar.avatar.name}`;
loading.value = true;
await generateShareImg(fileName, shareBox);
loading.value = false;
}
+
+function getCostume(): TGApp.App.Character.Costume | false {
+ if (props.avatar.costumes.length === 0) return false;
+ const findC = AppCharacterData.find((i) => i.id === props.avatar.cid);
+ if (!findC) return false;
+ let res: TGApp.App.Character.Costume | false = false;
+ for (const costume of props.avatar.costumes) {
+ const findCostume = findC.costumes.find((i) => i.id === costume.id);
+ if (findCostume !== undefined && !findCostume.isDefault) return findCostume;
+ }
+ return res;
+}