提交 a6bd6dd1 编写于 作者: View Design's avatar View Design

自动更新已选

上级 96d7237c
...@@ -52,6 +52,7 @@ ...@@ -52,6 +52,7 @@
const { $isLibrarySelectOpen, $selectCollectionId, $selectThreadId, $collection } = storeToRefs(useLibraryStore()) const { $isLibrarySelectOpen, $selectCollectionId, $selectThreadId, $collection } = storeToRefs(useLibraryStore())
const { $closeLibrarySelect, $openLibraryCreate, $setSelectCollectionId, $getCollection } = useLibraryStore() const { $closeLibrarySelect, $openLibraryCreate, $setSelectCollectionId, $getCollection } = useLibraryStore()
const { saveCollection, deleteCollectionRecord } = useCollectionRequest() const { saveCollection, deleteCollectionRecord } = useCollectionRequest()
const emits = defineEmits(['success'])
// 合集列表 // 合集列表
const selected = ref([]) const selected = ref([])
const loading = ref(false) const loading = ref(false)
...@@ -83,6 +84,11 @@ async function handleSave() { ...@@ -83,6 +84,11 @@ async function handleSave() {
loading.value = false loading.value = false
handleClose() handleClose()
$getCollection() $getCollection()
emits('success', {
c_id: $selectThreadId.value,
collection_id: selected.value[0],
collection_name: $collection.value.find(i => i.id === selected.value[0]).name
})
} }
watch(() => $isLibrarySelectOpen.value, () => { watch(() => $isLibrarySelectOpen.value, () => {
selected.value = [...$selectCollectionId.value] selected.value = [...$selectCollectionId.value]
......
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
<UDivider /> <UDivider />
</template> </template>
<script setup> <script setup>
const Layout = inject('Layout')
const { $openLibrarySelect } = useLibraryStore() const { $openLibrarySelect } = useLibraryStore()
const textColor = 'text-gray-500 dark:text-gray-400' const textColor = 'text-gray-500 dark:text-gray-400'
const props = defineProps({ const props = defineProps({
...@@ -73,4 +74,11 @@ const thread = computed(() => { ...@@ -73,4 +74,11 @@ const thread = computed(() => {
function handleOpenSelect () { function handleOpenSelect () {
$openLibrarySelect(props.item.c_id) $openLibrarySelect(props.item.c_id)
} }
function handleUpdateCollect (data) {
const { c_id } = data.value
if (c_id === thread.value.c_id) thread.value.collections = [data.value]
}
watch(()=> Layout.selectCollectData, (data) => {
handleUpdateCollect(data)
}, { deep: true })
</script> </script>
\ No newline at end of file
...@@ -30,17 +30,26 @@ ...@@ -30,17 +30,26 @@
</USlideover> </USlideover>
</div> </div>
<ILibraryCreate /> <ILibraryCreate />
<ILibrarySelect /> <ILibrarySelect @success="handleCollectSuccess" />
</template> </template>
<script setup> <script setup>
const isOpenAside = ref(false) const isOpenAside = ref(false)
const handleToggleAside = () => { const selectCollectData = ref(null)
function handleToggleAside () {
isOpenAside.value = !isOpenAside.value isOpenAside.value = !isOpenAside.value
} }
const handleCloseAside = () => { function handleCloseAside () {
isOpenAside.value = false isOpenAside.value = false
} }
function handleCollectSuccess (data) {
selectCollectData.value = data
}
function clearCollectData () {
selectCollectData.value = null
}
provide('Layout', { provide('Layout', {
handleCloseAside handleCloseAside,
selectCollectData,
clearCollectData
}) })
</script> </script>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册