|
@@ -31,7 +31,7 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
|
-import { ref, watch, onMounted } from 'vue'
|
|
|
|
|
|
|
+import { ref, watch } from 'vue'
|
|
|
import { useBatchYear } from '@/views/dz/papers/hooks/useBatchYear.js'
|
|
import { useBatchYear } from '@/views/dz/papers/hooks/useBatchYear.js'
|
|
|
|
|
|
|
|
const props = defineProps({
|
|
const props = defineProps({
|
|
@@ -45,10 +45,10 @@ const props = defineProps({
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
|
|
+const emit = defineEmits(['update:batchId'])
|
|
|
|
|
+
|
|
|
// 创建本地 ref,用于双向绑定
|
|
// 创建本地 ref,用于双向绑定
|
|
|
// 注意:在 Vue 3 中,当父组件传递 ref 时,Vue 会自动解包,所以 props.batchId 是值,不是 ref
|
|
// 注意:在 Vue 3 中,当父组件传递 ref 时,Vue 会自动解包,所以 props.batchId 是值,不是 ref
|
|
|
-// 但是,如果父组件传递的是 ref,我们需要保持响应式连接
|
|
|
|
|
-// 最简单的方法是:直接使用 props,并在 useBatchYear 中处理
|
|
|
|
|
const localBatchId = ref(props.batchId)
|
|
const localBatchId = ref(props.batchId)
|
|
|
const localBatchList = ref(Array.isArray(props.batchList) ? props.batchList : [])
|
|
const localBatchList = ref(Array.isArray(props.batchList) ? props.batchList : [])
|
|
|
|
|
|
|
@@ -62,16 +62,8 @@ watch(() => props.batchId, (val) => {
|
|
|
watch(() => props.batchList, (val) => {
|
|
watch(() => props.batchList, (val) => {
|
|
|
const listValue = Array.isArray(val) ? val : []
|
|
const listValue = Array.isArray(val) ? val : []
|
|
|
localBatchList.value = listValue
|
|
localBatchList.value = listValue
|
|
|
- console.log('BatchYearSelect - batchList 更新:', listValue)
|
|
|
|
|
}, { immediate: true, deep: true })
|
|
}, { immediate: true, deep: true })
|
|
|
|
|
|
|
|
-// 调试信息
|
|
|
|
|
-onMounted(() => {
|
|
|
|
|
- console.log('BatchYearSelect - props.batchId:', props.batchId)
|
|
|
|
|
- console.log('BatchYearSelect - props.batchList:', props.batchList)
|
|
|
|
|
- console.log('BatchYearSelect - localBatchList.value:', localBatchList.value)
|
|
|
|
|
-})
|
|
|
|
|
-
|
|
|
|
|
const {
|
|
const {
|
|
|
selectedYear,
|
|
selectedYear,
|
|
|
yearList,
|
|
yearList,
|
|
@@ -87,12 +79,7 @@ const {
|
|
|
|
|
|
|
|
// 监听 localBatchId 的变化,同步回父组件
|
|
// 监听 localBatchId 的变化,同步回父组件
|
|
|
watch(localBatchId, (val) => {
|
|
watch(localBatchId, (val) => {
|
|
|
- // 如果父组件传递的是 ref,我们需要更新它
|
|
|
|
|
- // 但由于 Vue 3 会自动解包,我们无法直接访问原始 ref
|
|
|
|
|
- // 所以我们需要通过其他方式来实现双向绑定
|
|
|
|
|
- // 实际上,如果父组件传递的是 ref,我们可以直接修改它
|
|
|
|
|
- // 但更标准的方法是使用 emit
|
|
|
|
|
- // 暂时不做处理,因为父组件的 ref 会自动更新(如果它是响应式的)
|
|
|
|
|
|
|
+ emit('update:batchId', val)
|
|
|
})
|
|
})
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|