build / build (push) Successful in 3m21s
Vue3 + Vite + view-ui-plus 前端源码,含流程工作台、实例详情、 任务处理、管理端(定义/实例/映射/回调)等页面。 保留远程 .gitea/workflows/build.yml CI 配置。
37 lines
1.0 KiB
Vue
37 lines
1.0 KiB
Vue
<template>
|
|
<Select v-model="innerId" @on-change="handleChange" v-bind="$attrs">
|
|
<Option v-for="item in stageSubjects" :key="item.k" :value="item.k">
|
|
{{ item.v }}
|
|
</Option>
|
|
</Select>
|
|
</template>
|
|
|
|
<script lang="ts" setup>
|
|
import { useDefaultStore } from '@/store'
|
|
|
|
const emit = defineEmits<{
|
|
'on-change': [stage: number, subject: string]
|
|
}>()
|
|
|
|
const store = useDefaultStore()
|
|
const stageSubjects = computed(() => store.getStageSubjects)
|
|
|
|
const innerId = ref<number | null>(null)
|
|
|
|
const cacheKey = 'bsch.learnmanage.cur_subject_id';
|
|
onMounted(async () => {
|
|
await nextTick()
|
|
if (!stageSubjects.value.length) return
|
|
const cached = sessionStorage.getItem(cacheKey)
|
|
const id = cached ? Number(cached) : stageSubjects.value[0]?.k;
|
|
if (id != null) innerId.value = id
|
|
handleChange(id)
|
|
})
|
|
|
|
function handleChange(val: number) {
|
|
const find = stageSubjects.value.find((i: any) => i.k === val)
|
|
if (!find) return
|
|
sessionStorage.setItem(cacheKey, String(val))
|
|
emit('on-change', find.stage, find.code)
|
|
}
|
|
</script> |