diff --git a/src/components/BasicNjBjSelect/index.vue b/src/components/BasicNjBjSelect/index.vue
index 17086dc..e1b991c 100644
--- a/src/components/BasicNjBjSelect/index.vue
+++ b/src/components/BasicNjBjSelect/index.vue
@@ -199,6 +199,9 @@ const props = withDefaults(defineProps<{
title?: string
useKzTree?: boolean // 是否使用不受权限控制的接口
multiple?: boolean // 是否支持多选
+ onlyConfirmChangeFlag: boolean // 确认选择时才触发 change 事件
+ autoSelectedFirst: boolean // 是否自动选择第一个
+ bjRequired: boolean // 班级是否是必选
}>(), {
modelValue: null,
defaultValue: null,
@@ -209,7 +212,10 @@ const props = withDefaults(defineProps<{
disabled: false,
title: '选择班级',
useKzTree: false,
- multiple: false
+ multiple: false,
+ onlyConfirmChangeFlag: false,
+ autoSelectedFirst: false,
+ bjRequired: false
})
// Emits 定义
@@ -307,6 +313,9 @@ const onGradeRadioChange = (event: any) => {
if (selectedGrade) {
selectedGrades.value = [selectedGrade]
selectedClasses.value = []
+ if (props.autoSelectedFirst) {
+ selectedClasses.value = [selectedGrade.children[0]]
+ }
} else {
selectedGrades.value = []
selectedClasses.value = []
@@ -365,7 +374,16 @@ const onClassRadioChange = (event: any) => {
}
// 更新模型值
-const updateModelValue = () => {
+const updateModelValue = (confirmFlag: boolean = false) => {
+ // 如果不是确认选择,且仅确认选择时才触发 change 事件
+ if (!confirmFlag && props.onlyConfirmChangeFlag) {
+ return;
+ }
+ if (props.bjRequired && selectedClasses.value.length === 0) {
+ uni.showToast({ title: '请选择班级', icon: 'error' });
+ return;
+ }
+
const result: TreeSelectResult = {
selectedGrades: [...selectedGrades.value],
selectedClasses: [...selectedClasses.value],
@@ -390,7 +408,7 @@ const closeSelector = () => {
// 确认选择
const confirmSelection = () => {
- updateModelValue()
+ updateModelValue(true)
closeSelector()
}
@@ -414,6 +432,11 @@ const loadData = async () => {
if (props.defaultValue) {
selectedGrades.value = props.defaultValue.selectedGrades || []
selectedClasses.value = props.defaultValue.selectedClasses || []
+ } else if (props.autoSelectedFirst) {
+ // 默认选中第一个
+ selectedGrades.value = [njList.value[0]]
+ selectedClasses.value = [njList.value[0].children[0]]
+ updateModelValue(true)
}
} catch (error) {
console.error('加载年级班级数据失败:', error)
diff --git a/src/pages/view/routine/jc/bzList.vue b/src/pages/view/routine/jc/bzList.vue
index 5807644..066da59 100644
--- a/src/pages/view/routine/jc/bzList.vue
+++ b/src/pages/view/routine/jc/bzList.vue
@@ -1,149 +1,400 @@
-
-
-
-
-
-
-
-
-
- 年级:
- {{ data.njmc }}
-
-
- 说明:
- {{ data.bzSm }}
-
-
-
-
+
+
+
+
+
+ 📚
+ 暂无就餐数据
+ 请联系管理员添加就餐信息
+
+
+
+
+ 正在加载...
+
+
+
+
+ 上拉加载更多
+
+
+
+
+ 没有更多数据了
+
diff --git a/src/pages/view/routine/jc/components/dm.vue b/src/pages/view/routine/jc/components/dm.vue
index a402972..ecd6143 100644
--- a/src/pages/view/routine/jc/components/dm.vue
+++ b/src/pages/view/routine/jc/components/dm.vue
@@ -2,9 +2,23 @@
- 选择班级
-
-
+ 选择班级
+
ℹ️
@@ -59,7 +73,7 @@