1- import { ref } from 'vue'
1+ import { ref , toRaw , watch } from 'vue'
22import { defineStore } from 'pinia'
33import axios from 'axios'
4- import { debounce } from 'lodash'
4+ import { cloneDeep , debounce } from 'lodash'
55
66import localStorage from '@/utils/localStorage'
77import { HOST , IS_DEV , USER_CONFIG_PATH } from '@/utils/env'
@@ -17,6 +17,7 @@ interface LikeModel {
1717 // 文件
1818 confirm : boolean // 保存二次确认
1919 fileMdView : boolean // MD打开默认预览
20+ fileAllOpen : boolean // Web端全文件支持
2021 editorOption : {
2122 // 编辑器配置
2223 fontSize : number // 字体大小
@@ -38,6 +39,7 @@ const getDef = (): LikeModel => ({
3839 // 文件
3940 confirm : true , // 保存二次确认
4041 fileMdView : false , // md默认预览
42+ fileAllOpen : false , // Web端全文件支持
4143 editorOption : {
4244 // 编辑器配置
4345 fontSize : 14 , // 字体大小
@@ -58,6 +60,7 @@ export const useUserStore = defineStore('user', () => {
5860
5961 const initialized = ref ( false )
6062
63+ const org = ref ( Object . assign ( { } , getDef ( ) , localStorage . get ( key ) ) )
6164 const cfg = ref ( Object . assign ( { } , getDef ( ) , localStorage . get ( key ) ) )
6265
6366 const load = async ( ) => {
@@ -68,7 +71,8 @@ export const useUserStore = defineStore('user', () => {
6871 if ( result1 . code === 404 ) {
6972 await update ( )
7073 } else {
71- cfg . value = Object . assign ( cfg . value , result1 as LikeModel )
74+ org . value = Object . assign ( org . value , cloneDeep ( result1 ) as LikeModel )
75+ cfg . value = Object . assign ( cfg . value , cloneDeep ( result1 ) as LikeModel )
7276 }
7377
7478 like . cfg . folderActive = cfg . value . folderDefOpen || cfg . value . dir [ 0 ] || ''
@@ -89,7 +93,20 @@ export const useUserStore = defineStore('user', () => {
8993 params : { _api : 'save' } ,
9094 } ,
9195 )
96+
97+ org . value = cloneDeep ( toRaw ( cfg . value ) )
9298 } , 300 )
9399
100+ watch (
101+ ( ) => cfg . value . fileAllOpen ,
102+ ( ) => {
103+ if ( ! initialized . value ) {
104+ return
105+ }
106+
107+ axios . post ( HOST , { open : Number ( cfg . value . fileAllOpen ) } , { params : { _api : 'def' } } )
108+ } ,
109+ )
110+
94111 return { initialized, cfg, load, update }
95112} )
0 commit comments