diff --git a/.gitignore b/.gitignore index ea49971..56958de 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,7 @@ CocosCreatorInspector/src/build /source/artifacts/ /cc-inspector-v1.2/ /test/ -cc-inspector/.yalc/ + cc-inspector/node_modules/ cc-inspector/yalc.lock cc-inspector/chrome/ diff --git a/cc-inspector/.vscode/settings.json b/cc-inspector/.vscode/settings.json index 1750db7..afb2c78 100644 --- a/cc-inspector/.vscode/settings.json +++ b/cc-inspector/.vscode/settings.json @@ -5,9 +5,16 @@ "[typescript]": { "editor.tabSize": 2, "editor.formatOnSave": true, - "prettier.printWidth": 800, + "prettier.printWidth": 1800, "editor.defaultFormatter": "vscode.typescript-language-features" }, + "[json]": { + "editor.quickSuggestions": { + "strings": true + }, + "editor.suggest.insertMode": "replace", + "editor.tabSize": 2 + }, "[vue]": { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.tabSize": 2, diff --git a/cc-inspector/package.json b/cc-inspector/package.json index 40ee893..3966aad 100644 --- a/cc-inspector/package.json +++ b/cc-inspector/package.json @@ -29,4 +29,4 @@ "tiny-emitter": "2.1.0", "uuid": "^8.3.2" } -} +} \ No newline at end of file diff --git a/cc-inspector/src/views/devtools/index.ts b/cc-inspector/src/views/devtools/index.ts index c160787..d2f0e4c 100644 --- a/cc-inspector/src/views/devtools/index.ts +++ b/cc-inspector/src/views/devtools/index.ts @@ -2,6 +2,7 @@ import ccui from "@xuyanfeng/cc-ui"; import "@xuyanfeng/cc-ui/dist/ccui.css"; import "@xuyanfeng/cc-ui/iconfont/iconfont.css"; import CCP from "cc-plugin/src/ccp/entry-render"; +import { createPinia } from 'pinia'; import { createApp } from "vue"; import pluginConfig from "../../../cc-plugin.config"; import "../global.less"; @@ -12,6 +13,7 @@ export default CCP.init(pluginConfig, { init(); const app = createApp(App); app.use(ccui); + app.use(createPinia()); app.mount(rootElement); }, }); diff --git a/cc-inspector/src/views/devtools/index.vue b/cc-inspector/src/views/devtools/index.vue index 835f2b0..7657e41 100644 --- a/cc-inspector/src/views/devtools/index.vue +++ b/cc-inspector/src/views/devtools/index.vue @@ -1,10 +1,6 @@ @@ -72,27 +70,31 @@ import ccui from "@xuyanfeng/cc-ui"; import { ButtonGroupItem } from "@xuyanfeng/cc-ui/types/cc-button-group/const"; import { Option } from "@xuyanfeng/cc-ui/types/cc-select/const"; import { ITreeData } from "@xuyanfeng/cc-ui/types/cc-tree/const"; -import { defineComponent, nextTick, onMounted, PropType, reactive, ref, toRaw, watch } from "vue"; +import { _UnwrapAll, Store, storeToRefs } from "pinia"; +import { defineComponent, nextTick, onMounted, PropType, reactive, Ref, ref, toRaw, watch } from "vue"; +import PluginConfig from "../../../cc-plugin.config"; import { Msg, Page, PluginEvent } from "../../core/types"; import Bus, { BusMsg } from "./bus"; import { connectBackground } from "./connectBackground"; import { EngineData, FrameDetails, Info, NodeInfoData, ObjectData, ObjectItemRequestData, TreeData } from "./data"; -import { RefreshType, settings } from "./settings"; +import { appStore, RefreshType } from "./store"; +import Test from "./test.vue"; import properties from "./ui/propertys.vue"; import SettingsVue from "./ui/settings.vue"; -const { CCTree, CCInput, CCButton, CCInputNumber, CCSelect, CCButtonGroup, CCCheckBox, CCColor, CCDivider } = ccui.components; +const { CCTree, CCFootBar, CCDialog, CCInput, CCButton, CCInputNumber, CCSelect, CCButtonGroup, CCCheckBox, CCColor, CCDivider } = ccui.components; interface FrameInfo { label: string; value: number; } export default defineComponent({ - components: { CCTree, CCDivider, CCButtonGroup, properties, SettingsVue, CCInput, CCButton, CCInputNumber, CCSelect, CCCheckBox, CCColor }, + components: { Test, CCFootBar, CCDialog, CCTree, CCDivider, CCButtonGroup, properties, SettingsVue, CCInput, CCButton, CCInputNumber, CCSelect, CCCheckBox, CCColor }, name: "devtools", props: {}, setup(props, ctx) { + appStore().init(); + const { config } = storeToRefs(appStore()); const treeItemData = ref({ uuid: "", group: [] }); - const showSettings = ref(false); const isShowDebug = ref(true); const frameID = ref(0); const iframes = ref>([]); @@ -108,7 +110,10 @@ export default defineComponent({ { icon: "icon_settings", click: () => { - showSettings.value = true; + ccui.dialog.showDialog({ + comp: SettingsVue, + title: "Settings", + }); }, }, ]); @@ -391,18 +396,16 @@ export default defineComponent({ } } function syncSettings() { - if (settings.data) { - const { refreshType, refreshTime } = settings.data; - switch (refreshType) { - case RefreshType.Auto: { - btnRefresh.visible = false; - onEnableTreeWatch(true, refreshTime); - break; - } - case RefreshType.Manual: { - btnRefresh.visible = true; - onEnableTreeWatch(false); - } + const { refreshType, refreshTime } = config.value; + switch (refreshType) { + case RefreshType.Auto: { + btnRefresh.visible = false; + onEnableTreeWatch(true, refreshTime); + break; + } + case RefreshType.Manual: { + btnRefresh.visible = true; + onEnableTreeWatch(false); } } } @@ -422,7 +425,9 @@ export default defineComponent({ connectBackground.sendMsgToContentScript(Msg.UseFrame, frameID); } const elLeft = ref(); + const version = ref(PluginConfig.manifest.version); return { + version, buttonGroup, elTree, memory, @@ -431,11 +436,13 @@ export default defineComponent({ matchCase, iframes, isShowDebug, - showSettings, expandedKeys, treeData, treeItemData, frameID, + testValidGame(b: boolean) { + isShowDebug.value = !!b; + }, getFramesData(): Option[] { const frames: FrameInfo[] = toRaw(iframes.value); const options: Option[] = []; @@ -471,10 +478,6 @@ export default defineComponent({ onBtnClickUpdatePage() { connectBackground.sendMsgToContentScript(Msg.Support); }, - onCloseSettings() { - syncSettings(); - }, - onMemoryTest() { connectBackground.sendMsgToContentScript(Msg.MemoryInfo); }, diff --git a/cc-inspector/src/views/devtools/settings.ts b/cc-inspector/src/views/devtools/settings.ts index 4ceb629..3f2ff2d 100644 --- a/cc-inspector/src/views/devtools/settings.ts +++ b/cc-inspector/src/views/devtools/settings.ts @@ -1,47 +1,5 @@ -const Key = "settings"; -export const enum RefreshType { - Auto = "auto", - Manual = "manual", -} -interface SettingsData { - refreshType: string; - refreshTime: number; -} -let defaultData: SettingsData = { - refreshTime: 500, - refreshType: RefreshType.Manual, -} -class Settings { - public data: SettingsData | null = null; - constructor() { - this.init(); - } - - private init() { - const data = localStorage.getItem(Key) - if (data) { - try { - this.data = JSON.parse(data) - } catch (e) { - this.data = defaultData; - } - } - this.data = Object.assign(defaultData, this.data) - } - - isManualRefresh() { - return this.data?.refreshType === RefreshType.Manual; - } - - save() { - const str = JSON.stringify(this.data); - localStorage.setItem(Key, str); - } -} - -export const settings = new Settings(); diff --git a/cc-inspector/src/views/devtools/store.ts b/cc-inspector/src/views/devtools/store.ts new file mode 100644 index 0000000..ca68a8a --- /dev/null +++ b/cc-inspector/src/views/devtools/store.ts @@ -0,0 +1,35 @@ +import profile from "cc-plugin/src/ccp/profile"; +import { defineStore } from "pinia"; +import { ref, toRaw } from "vue"; +import pluginConfig from "../../../cc-plugin.config"; +export const enum RefreshType { + Auto = "auto", + Manual = "manual", +} +export class ConfigData { + /** + * 刷新类型 + */ + refreshType: string = RefreshType.Manual; + /** + * 刷新间隔时间,单位ms + */ + refreshTime: number = 500; +} + +export const appStore = defineStore("app", () => { + const config = ref(new ConfigData()); + return { + config, + init() { + profile.init(new ConfigData(), pluginConfig); + const data = profile.load(`${pluginConfig.manifest.name}.json`) as ConfigData; + config.value.refreshType = data.refreshType || RefreshType.Manual; + config.value.refreshTime = data.refreshTime || 500; + }, + save() { + const cfg = toRaw(config.value); + profile.save(cfg); + }, + } +}); \ No newline at end of file diff --git a/cc-inspector/src/views/devtools/test.vue b/cc-inspector/src/views/devtools/test.vue new file mode 100644 index 0000000..bd51b96 --- /dev/null +++ b/cc-inspector/src/views/devtools/test.vue @@ -0,0 +1,39 @@ + + + diff --git a/cc-inspector/src/views/devtools/ui/propertys.vue b/cc-inspector/src/views/devtools/ui/propertys.vue index f62a010..c2fbba8 100644 --- a/cc-inspector/src/views/devtools/ui/propertys.vue +++ b/cc-inspector/src/views/devtools/ui/propertys.vue @@ -1,5 +1,5 @@ @@ -41,6 +41,7 @@ export default defineComponent({ diff --git a/cc-inspector/src/views/devtools/ui/settings.vue b/cc-inspector/src/views/devtools/ui/settings.vue index 95a63a7..01bef97 100644 --- a/cc-inspector/src/views/devtools/ui/settings.vue +++ b/cc-inspector/src/views/devtools/ui/settings.vue @@ -1,26 +1,26 @@