This commit is contained in:
2026-06-29 07:48:13 -06:00
parent 4261bae104
commit 1d285c8694
12 changed files with 28 additions and 28 deletions

View File

@@ -907,7 +907,7 @@ const radarChartOptions = {
class="stat-ac-rate" class="stat-ac-rate"
> >
<template #suffix> <template #suffix>
<Icon icon="streamline-emojis:check-mark" width="20" /> <Icon icon="fluent-emoji:check-mark-button" width="20" />
</template> </template>
</n-statistic> </n-statistic>
</n-gi> </n-gi>

View File

@@ -204,8 +204,8 @@ onMounted(() => {
<IconButton <IconButton
:icon=" :icon="
syncEnabled syncEnabled
? 'ph:wifi-slash' ? 'streamline-ultimate-color:wifi-off'
: 'ph:wifi-high' : 'streamline-ultimate-color:wifi-signal-2'
" "
:tip="syncEnabled ? SYNC_MESSAGES.SYNC_ON : SYNC_MESSAGES.SYNC_OFF" :tip="syncEnabled ? SYNC_MESSAGES.SYNC_ON : SYNC_MESSAGES.SYNC_OFF"
:type="syncEnabled ? 'warning' : 'default'" :type="syncEnabled ? 'warning' : 'default'"

View File

@@ -18,7 +18,7 @@
> >
<Icon <Icon
v-if="hasCommented" v-if="hasCommented"
icon="noto:star" icon="fluent-emoji:star"
:width="24" :width="24"
v-for="(_, i) in description_rating" v-for="(_, i) in description_rating"
:key="i" :key="i"
@@ -35,7 +35,7 @@
> >
<Icon <Icon
v-if="hasCommented" v-if="hasCommented"
icon="noto:star" icon="fluent-emoji:star"
:width="24" :width="24"
v-for="(_, i) in difficulty_rating" v-for="(_, i) in difficulty_rating"
:key="i" :key="i"
@@ -50,7 +50,7 @@
> >
<Icon <Icon
v-if="hasCommented" v-if="hasCommented"
icon="noto:star" icon="fluent-emoji:star"
:width="24" :width="24"
v-for="(_, i) in difficulty_rating" v-for="(_, i) in difficulty_rating"
:key="i" :key="i"

View File

@@ -63,7 +63,7 @@ const numbers = computed(() => {
suffix: "", suffix: "",
}, },
{ {
icon: "emojione:chart-increasing", icon: "fluent-emoji:chart-increasing",
title: getACRateNumber( title: getACRateNumber(
problem.value?.accepted_number ?? 0, problem.value?.accepted_number ?? 0,
problem.value?.submission_number ?? 0, problem.value?.submission_number ?? 0,

View File

@@ -31,7 +31,7 @@ function showCodePanel(id: string, problem: string) {
const columns: DataTableColumn<Submission>[] = [ const columns: DataTableColumn<Submission>[] = [
{ {
title: renderTableTitle("提交时间", "noto:seven-oclock"), title: renderTableTitle("提交时间", "fluent-emoji:seven-oclock"),
key: "create_time", key: "create_time",
width: 200, width: 200,
render: (row) => parseTime(row.create_time, "YYYY-MM-DD HH:mm:ss"), render: (row) => parseTime(row.create_time, "YYYY-MM-DD HH:mm:ss"),

View File

@@ -57,7 +57,7 @@ function handleJoin() {
<n-h2 style="margin: 0">{{ problemSet.title }}</n-h2> <n-h2 style="margin: 0">{{ problemSet.title }}</n-h2>
<n-tooltip trigger="hover" v-if="problemSet.description"> <n-tooltip trigger="hover" v-if="problemSet.description">
<template #trigger> <template #trigger>
<Icon width="20" icon="emojione:information" /> <Icon width="20" icon="fluent-emoji:information" />
</template> </template>
{{ problemSet.description }} {{ problemSet.description }}
</n-tooltip> </n-tooltip>

View File

@@ -40,7 +40,7 @@ function handleProblemClick(problemId: string) {
<Icon <Icon
style="margin-right: 10px" style="margin-right: 10px"
width="48" width="48"
icon="noto:check-mark-button" icon="fluent-emoji:check-mark-button"
v-if="problemSetProblem.is_completed" v-if="problemSetProblem.is_completed"
/> />

View File

@@ -642,7 +642,7 @@ watch(
class="stat-ac-rate" class="stat-ac-rate"
> >
<template #suffix> <template #suffix>
<Icon icon="streamline-emojis:check-mark" width="20" /> <Icon icon="fluent-emoji:check-mark-button" width="20" />
</template> </template>
</n-statistic> </n-statistic>
</n-gi> </n-gi>

View File

@@ -230,7 +230,7 @@ watch(
const columns = computed(() => { const columns = computed(() => {
const res: DataTableColumn<SubmissionListItem>[] = [ const res: DataTableColumn<SubmissionListItem>[] = [
{ {
title: renderTableTitle("提交时间", "noto:seven-oclock"), title: renderTableTitle("提交时间", "fluent-emoji:seven-oclock"),
key: "create_time", key: "create_time",
minWidth: 200, minWidth: 200,
render: (row) => parseTime(row.create_time, "YYYY-MM-DD HH:mm:ss"), render: (row) => parseTime(row.create_time, "YYYY-MM-DD HH:mm:ss"),
@@ -319,7 +319,7 @@ const columns = computed(() => {
const flowchartColumns = computed(() => { const flowchartColumns = computed(() => {
const res: DataTableColumn<FlowchartSubmissionListItem>[] = [ const res: DataTableColumn<FlowchartSubmissionListItem>[] = [
{ {
title: renderTableTitle("提交时间", "noto:seven-oclock"), title: renderTableTitle("提交时间", "fluent-emoji:seven-oclock"),
key: "create_time", key: "create_time",
render: (row) => parseTime(row.create_time, "YYYY-MM-DD HH:mm:ss"), render: (row) => parseTime(row.create_time, "YYYY-MM-DD HH:mm:ss"),
}, },

View File

@@ -6,8 +6,8 @@ defineProps<{ value: string }>()
const [copied, toggle] = useToggle() const [copied, toggle] = useToggle()
const { start } = useTimeoutFn(() => toggle(false), 1000, { immediate: false }) const { start } = useTimeoutFn(() => toggle(false), 1000, { immediate: false })
const COPY = h(Icon, { icon: "twemoji:clipboard" }) const COPY = h(Icon, { icon: "fluent-emoji:clipboard" })
const OK = h(Icon, { icon: "twemoji:check-mark-button" }) const OK = h(Icon, { icon: "fluent-emoji:check-mark-button" })
async function handleClick(value: string) { async function handleClick(value: string) {
const success = await copyToClipboard(value) const success = await copyToClipboard(value)

View File

@@ -120,47 +120,47 @@ const menus = computed<MenuOption[]>(() => [
{ {
label: () => h(RouterLink, { to: "/learn/01" }, { default: () => "自学" }), label: () => h(RouterLink, { to: "/learn/01" }, { default: () => "自学" }),
key: "learn", key: "learn",
icon: renderIcon("twemoji:books"), icon: renderIcon("fluent-emoji:books"),
}, },
{ {
label: () => h(RouterLink, { to: "/" }, { default: () => "题目" }), label: () => h(RouterLink, { to: "/" }, { default: () => "题目" }),
key: "problem", key: "problem",
icon: renderIcon("twemoji:memo"), icon: renderIcon("fluent-emoji:memo"),
}, },
{ {
label: () => label: () =>
h(RouterLink, { to: "/problemset" }, { default: () => "题单" }), h(RouterLink, { to: "/problemset" }, { default: () => "题单" }),
key: "problemset", key: "problemset",
icon: renderIcon("twemoji:clipboard"), icon: renderIcon("fluent-emoji:clipboard"),
}, },
{ {
label: () => label: () =>
h(RouterLink, { to: "/submission" }, { default: () => "提交" }), h(RouterLink, { to: "/submission" }, { default: () => "提交" }),
key: "submission", key: "submission",
icon: renderIcon("twemoji:inbox-tray"), icon: renderIcon("fluent-emoji:inbox-tray"),
show: userStore.showSubmissions, show: userStore.showSubmissions,
}, },
{ {
label: () => h(RouterLink, { to: "/contest" }, { default: () => "比赛" }), label: () => h(RouterLink, { to: "/contest" }, { default: () => "比赛" }),
key: "contest", key: "contest",
icon: renderIcon("twemoji:chequered-flag"), icon: renderIcon("fluent-emoji:chequered-flag"),
}, },
{ {
label: () => h(RouterLink, { to: "/rank" }, { default: () => "排名" }), label: () => h(RouterLink, { to: "/rank" }, { default: () => "排名" }),
key: "rank", key: "rank",
icon: renderIcon("twemoji:trophy"), icon: renderIcon("fluent-emoji:trophy"),
}, },
{ {
label: () => h(RouterLink, { to: "/class/pk" }, { default: () => "班级" }), label: () => h(RouterLink, { to: "/class/pk" }, { default: () => "班级" }),
show: false, show: false,
key: "class", key: "class",
icon: renderIcon("twemoji:crossed-swords"), icon: renderIcon("fluent-emoji:crossed-swords"),
}, },
{ {
label: () => label: () =>
h(RouterLink, { to: "/announcement" }, { default: () => "公告" }), h(RouterLink, { to: "/announcement" }, { default: () => "公告" }),
key: "announcement", key: "announcement",
icon: renderIcon("twemoji:loudspeaker"), icon: renderIcon("fluent-emoji:loudspeaker"),
}, },
{ {
label: () => label: () =>
@@ -171,7 +171,7 @@ const menus = computed<MenuOption[]>(() => [
), ),
show: userStore.isAdminRole, show: userStore.isAdminRole,
key: "admin", key: "admin",
icon: renderIcon("twemoji:gear"), icon: renderIcon("fluent-emoji:gear"),
}, },
]) ])
@@ -263,7 +263,7 @@ function handleMenuSelect(key: string) {
@select="handleMenuSelect" @select="handleMenuSelect"
> >
<n-button> <n-button>
<Icon icon="twemoji:artist-palette" height="20"></Icon> <Icon icon="fluent-emoji:artist-palette" height="20"></Icon>
<span style="padding-left: 8px">菜单</span> <span style="padding-left: 8px">菜单</span>
</n-button> </n-button>
</n-dropdown> </n-dropdown>
@@ -304,8 +304,8 @@ function handleMenuSelect(key: string) {
</div> </div>
<n-button :bordered="false" circle @click="toggleDark"> <n-button :bordered="false" circle @click="toggleDark">
<template #icon> <template #icon>
<Icon v-if="isDark" icon="twemoji:sun-behind-small-cloud"></Icon> <Icon v-if="isDark" icon="fluent-emoji:sun-behind-small-cloud"></Icon>
<Icon v-else icon="twemoji:cloud-with-lightning-and-rain"></Icon> <Icon v-else icon="fluent-emoji:cloud-with-lightning-and-rain"></Icon>
</template> </template>
</n-button> </n-button>
</n-flex> </n-flex>

View File

@@ -1,7 +1,7 @@
<template> <template>
<n-tooltip> <n-tooltip>
<template #trigger> <template #trigger>
<n-button circle :type="type ?? 'default'" @click="$emit('click')"> <n-button round :type="type ?? 'default'" @click="$emit('click')">
<template #icon> <template #icon>
<Icon :icon="icon" /> <Icon :icon="icon" />
</template> </template>