add role
Some checks failed
Deploy / deploy (build, debian, 22) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822) (push) Has been cancelled

This commit is contained in:
2026-03-31 04:55:27 -06:00
parent 85e1681017
commit f16104b011
5 changed files with 42 additions and 18 deletions

View File

@@ -270,5 +270,4 @@ watch([() => messages.value.length, streamingContent], () => {
padding: 12px;
border-top: 1px solid #e0e0e0;
}
</style>

View File

@@ -195,7 +195,10 @@ async function loadMessages() {
messages.value = []
selectedRound.value = 0
try {
messages.value = await Prompt.getMessagesByUserTask(props.taskId, props.userId)
messages.value = await Prompt.getMessagesByUserTask(
props.taskId,
props.userId,
)
const last = rounds.value.length - 1
if (last >= 0) selectedRound.value = last
} finally {
@@ -205,6 +208,8 @@ async function loadMessages() {
watch(
() => [props.show, props.userId, props.taskId] as const,
([visible]) => { if (visible) loadMessages() },
([visible]) => {
if (visible) loadMessages()
},
)
</script>

View File

@@ -45,7 +45,10 @@
<n-flex vertical>
<n-form inline>
<n-form-item label="序号" label-placement="left">
<n-input-number v-model:value="challenge.display" />
<n-input-number
style="width: 100px"
v-model:value="challenge.display"
/>
</n-form-item>
<n-form-item label="标题" label-placement="left">
@@ -53,7 +56,11 @@
</n-form-item>
<n-form-item label="分数" label-placement="left">
<n-input-number v-model:value="challenge.score" :min="0" />
<n-input-number
style="width: 100px"
v-model:value="challenge.score"
:min="0"
/>
</n-form-item>
<n-form-item label="公开" label-placement="left">

View File

@@ -19,22 +19,36 @@
</n-flex>
</template>
<script lang="ts" setup>
import { computed } from "vue"
import { taskTab } from "../store/task"
import { step } from "../store/tutorial"
import { roleAdmin, roleSuper } from "../store/user"
import { goHome } from "../utils/helper"
const menu = [
const menu = computed(() =>
[
{
label: "教程",
route: { name: "tutorial-editor", params: { display: step.value } },
show: roleSuper.value,
},
{
label: "挑战",
route: { name: "challenge-editor", params: { display: 0 } },
show: roleAdmin.value || roleSuper.value,
},
{ label: "用户", route: { name: "user-manage", params: { page: 1 } } },
{ label: "提交", route: { name: "submissions", params: { page: 1 } } },
]
{
label: "用户",
route: { name: "user-manage", params: { page: 1 } },
show: roleSuper.value,
},
{
label: "提交",
route: { name: "submissions", params: { page: 1 } },
show: roleAdmin.value || roleSuper.value,
},
].filter((item) => item.show),
)
</script>
<style scoped>
.container {

View File

@@ -109,7 +109,6 @@ export function sendPrompt(content: string) {
ws.send(JSON.stringify({ type: "message", content }))
}
function applyCode(code: {
html: string | null
css: string | null