userStatusManager.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import {defineStore} from 'pinia';
  2. import {reactive,ref} from 'vue';
  3. import { book_item_data, chapter_item_data, user_status } from '../data/data';
  4. import { tools } from '../framework/tools';
  5. export const UserStatus = defineStore('user-status',()=>{
  6. let data:user_status = reactive(new user_status())
  7. let directoryList = ref<chapter_item_data[]>(null)
  8. async function updateUserSelectBook(d:book_item_data){
  9. directoryList.value = null
  10. data.cur_select_book_data=d;
  11. }
  12. function getUserSelectBook():book_item_data{
  13. if(data==null){
  14. return null
  15. }
  16. if(data.cur_select_book_data==null){
  17. return null
  18. }
  19. return data.cur_select_book_data
  20. }
  21. function getSelectBookDirectoryList(call_back){
  22. if(directoryList.value!=null){
  23. call_back(directoryList.value)
  24. }else{
  25. let selectBook = getUserSelectBook()
  26. if(selectBook!=null){
  27. tools.getChapterList(selectBook.chapter_path,(chapter_ls)=>{
  28. directoryList.value = chapter_ls
  29. call_back(directoryList.value)
  30. })
  31. }else{
  32. call_back(null)
  33. }
  34. }
  35. }
  36. return {data,getUserSelectBook,updateUserSelectBook,getSelectBookDirectoryList}
  37. })