vite-uni-dev-tool 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/README.md +46 -0
  2. package/dist/const.cjs +1 -1
  3. package/dist/const.d.ts +12 -0
  4. package/dist/const.d.ts.map +1 -1
  5. package/dist/const.js +1 -1
  6. package/dist/core-shared.d.ts +1 -1
  7. package/dist/core-shared.d.ts.map +1 -1
  8. package/dist/core-shared.js +1 -1
  9. package/dist/core.d.ts +10 -3
  10. package/dist/core.d.ts.map +1 -1
  11. package/dist/core.js +2 -2
  12. package/dist/i18n/locales/en.cjs +1 -1
  13. package/dist/i18n/locales/en.d.ts +81 -0
  14. package/dist/i18n/locales/en.d.ts.map +1 -1
  15. package/dist/i18n/locales/en.js +1 -1
  16. package/dist/i18n/locales/zh-Hans.cjs +1 -1
  17. package/dist/i18n/locales/zh-Hans.d.ts +82 -1
  18. package/dist/i18n/locales/zh-Hans.d.ts.map +1 -1
  19. package/dist/i18n/locales/zh-Hans.js +1 -1
  20. package/dist/modules/devConsole/index.cjs +1 -1
  21. package/dist/modules/devConsole/index.js +3 -3
  22. package/dist/modules/devEvent/index.cjs +3 -3
  23. package/dist/modules/devEvent/index.d.ts +1 -0
  24. package/dist/modules/devEvent/index.d.ts.map +1 -1
  25. package/dist/modules/devEvent/index.js +3 -3
  26. package/dist/modules/devIntercept/index.cjs +14 -13
  27. package/dist/modules/devIntercept/index.d.ts +19 -0
  28. package/dist/modules/devIntercept/index.d.ts.map +1 -1
  29. package/dist/modules/devIntercept/index.js +14 -13
  30. package/dist/modules/devStore/index.cjs +1 -1
  31. package/dist/modules/devStore/index.d.ts +21 -0
  32. package/dist/modules/devStore/index.d.ts.map +1 -1
  33. package/dist/modules/devStore/index.js +1 -1
  34. package/dist/plugins/uniDevTool/transform/transformMain.cjs +1 -1
  35. package/dist/plugins/uniDevTool/transform/transformMain.js +1 -1
  36. package/dist/type.d.ts +47 -2
  37. package/dist/type.d.ts.map +1 -1
  38. package/dist/utils/language.cjs +1 -1
  39. package/dist/utils/language.d.ts.map +1 -1
  40. package/dist/utils/language.js +1 -1
  41. package/dist/utils/object.cjs +1 -1
  42. package/dist/utils/object.d.ts.map +1 -1
  43. package/dist/utils/object.js +1 -1
  44. package/dist/v3/DevTool/components/BluetoothList/BluetoothItem.vue +199 -0
  45. package/dist/v3/DevTool/components/BluetoothList/BluetoothTool.vue +730 -0
  46. package/dist/v3/DevTool/components/BluetoothList/index.vue +167 -0
  47. package/dist/v3/{CaptureScreen → DevTool/components/CaptureScreen}/index.vue +109 -109
  48. package/dist/v3/{ConsoleList → DevTool/components/ConsoleList}/ConsoleItem.vue +225 -224
  49. package/dist/v3/{ConsoleList → DevTool/components/ConsoleList}/RunJSInput.vue +247 -249
  50. package/dist/v3/{ConsoleList → DevTool/components/ConsoleList}/index.vue +171 -160
  51. package/dist/v3/{ConsoleList → DevTool/components/ConsoleList}/staticTips.ts +1145 -1145
  52. package/dist/v3/{DevToolButton → DevTool/components/DevToolButton}/index.vue +7 -4
  53. package/dist/v3/{DevToolTitle → DevTool/components/DevToolTitle}/index.vue +24 -24
  54. package/dist/v3/{DevToolWindow → DevTool/components/DevToolWindow}/DevToolOverlay.vue +197 -182
  55. package/dist/v3/{DevToolWindow → DevTool/components/DevToolWindow}/const.ts +28 -5
  56. package/dist/v3/{DevToolWindow → DevTool/components/DevToolWindow}/hooks/dataUtils.ts +48 -48
  57. package/dist/v3/{DevToolWindow → DevTool/components/DevToolWindow}/hooks/useDevToolData.ts +387 -338
  58. package/dist/v3/{DevToolWindow → DevTool/components/DevToolWindow}/hooks/useDevToolHandlers.ts +629 -549
  59. package/dist/v3/{DevToolWindow → DevTool/components/DevToolWindow}/hooks/useDevToolOverlay.ts +197 -184
  60. package/dist/v3/{DevToolWindow → DevTool/components/DevToolWindow}/index.vue +67 -16
  61. package/dist/v3/{ElEvent → DevTool/components/ElEvent}/ElEventItem.vue +105 -105
  62. package/dist/v3/{ElEvent → DevTool/components/ElEvent}/index.vue +106 -109
  63. package/dist/v3/{Instance → DevTool/components/Instance}/components/InstanceTreeNode.vue +265 -265
  64. package/dist/v3/{Instance → DevTool/components/Instance}/flatten.ts +226 -226
  65. package/dist/v3/{Instance → DevTool/components/Instance}/index.vue +94 -94
  66. package/dist/v3/{Instance → DevTool/components/Instance}/registry.ts +49 -49
  67. package/dist/v3/{Instance → DevTool/components/Instance}/transformTree.ts +375 -375
  68. package/dist/v3/{Instance → DevTool/components/Instance}/transformTreeCtx.ts +268 -268
  69. package/dist/v3/{Instance → DevTool/components/Instance}/typing.d.ts +43 -43
  70. package/dist/v3/{InstanceDetail → DevTool/components/InstanceDetail}/index.vue +485 -485
  71. package/dist/v3/{JsonDetail → DevTool/components/JsonDetail}/index.vue +70 -70
  72. package/dist/v3/{NFCList → DevTool/components/NFCList}/NFCItem.vue +112 -113
  73. package/dist/v3/{NFCList → DevTool/components/NFCList}/NFCTool.vue +454 -478
  74. package/dist/v3/{NFCList → DevTool/components/NFCList}/const.ts +56 -56
  75. package/dist/v3/{NFCList → DevTool/components/NFCList}/index.vue +94 -98
  76. package/dist/v3/{NetworkList → DevTool/components/NetworkList}/InterceptConfig.vue +624 -608
  77. package/dist/v3/{NetworkList → DevTool/components/NetworkList}/InterceptItem.vue +140 -140
  78. package/dist/v3/{NetworkList → DevTool/components/NetworkList}/NetworkDetail.vue +287 -296
  79. package/dist/v3/{NetworkList → DevTool/components/NetworkList}/NetworkIntercept.vue +88 -93
  80. package/dist/v3/{NetworkList → DevTool/components/NetworkList}/NetworkItem.vue +163 -167
  81. package/dist/v3/{NetworkList → DevTool/components/NetworkList}/NetworkSend.vue +589 -556
  82. package/dist/v3/{NetworkList → DevTool/components/NetworkList}/const.ts +4 -4
  83. package/dist/v3/{NetworkList → DevTool/components/NetworkList}/hooks/useNetworkForm.ts +86 -86
  84. package/dist/v3/{NetworkList → DevTool/components/NetworkList}/index.vue +160 -160
  85. package/dist/v3/{NetworkList → DevTool/components/NetworkList}/utils.ts +101 -101
  86. package/dist/v3/{Performance → DevTool/components/Performance}/index.vue +498 -495
  87. package/dist/v3/{Performance → DevTool/components/Performance}/modules/PerformanceMetrics.vue +153 -153
  88. package/dist/v3/{Performance → DevTool/components/Performance}/modules/PerformanceWidget.vue +12 -9
  89. package/dist/v3/{Performance → DevTool/components/Performance}/modules/usePerformanceChart.ts +460 -460
  90. package/dist/v3/{Performance → DevTool/components/Performance}/modules/usePerformanceData.ts +258 -258
  91. package/dist/v3/{PiniaList → DevTool/components/PiniaList}/index.vue +93 -94
  92. package/dist/v3/{RouteList → DevTool/components/RouteList}/index.vue +21 -24
  93. package/dist/v3/{RunJS → DevTool/components/RunJS}/index.vue +148 -148
  94. package/dist/v3/{ScanCodeList → DevTool/components/ScanCodeList}/ScanCodeItem.vue +97 -98
  95. package/dist/v3/{ScanCodeList → DevTool/components/ScanCodeList}/index.vue +100 -104
  96. package/dist/v3/{SettingButton → DevTool/components/SettingButton}/index.vue +45 -45
  97. package/dist/v3/{SettingList → DevTool/components/SettingList}/index.vue +218 -150
  98. package/dist/v3/DevTool/components/SettingList/modules/SettingBarrage.vue +304 -0
  99. package/dist/v3/{SettingList → DevTool/components/SettingList}/modules/SettingDevTool.vue +212 -208
  100. package/dist/v3/{SettingList → DevTool/components/SettingList}/modules/SettingInfo.vue +157 -119
  101. package/dist/v3/{SettingList → DevTool/components/SettingList}/modules/SettingLanguage.vue +74 -74
  102. package/dist/v3/{SettingList → DevTool/components/SettingList}/modules/SettingLog.vue +230 -230
  103. package/dist/v3/{SettingList → DevTool/components/SettingList}/modules/SettingNetwork.vue +3 -3
  104. package/dist/v3/{SettingList → DevTool/components/SettingList}/modules/SettingTheme.vue +37 -7
  105. package/dist/v3/{SettingList → DevTool/components/SettingList}/typing.d.ts +2 -2
  106. package/dist/v3/{SourceCode → DevTool/components/SourceCode}/Line.vue +127 -116
  107. package/dist/v3/{SourceCode → DevTool/components/SourceCode}/index.vue +8 -8
  108. package/dist/v3/{SourceCode → DevTool/components/SourceCode}/parseCode.ts +609 -701
  109. package/dist/v3/{StorageList → DevTool/components/StorageList}/index.vue +174 -174
  110. package/dist/v3/{TransferList → DevTool/components/TransferList}/TransferDetail.vue +268 -268
  111. package/dist/v3/{TransferList → DevTool/components/TransferList}/TransferItem.vue +4 -4
  112. package/dist/v3/{TransferList → DevTool/components/TransferList}/index.vue +8 -8
  113. package/dist/v3/{UniEvent → DevTool/components/UniEvent}/UniEventItem.vue +6 -7
  114. package/dist/v3/{UniEvent → DevTool/components/UniEvent}/index.vue +6 -6
  115. package/dist/v3/{VuexList → DevTool/components/VuexList}/index.vue +84 -84
  116. package/dist/v3/{WebSocket → DevTool/components/WebSocket}/WebSocketDetail.vue +8 -8
  117. package/dist/v3/{WebSocket → DevTool/components/WebSocket}/WebSocketItem.vue +4 -4
  118. package/dist/v3/{WebSocket → DevTool/components/WebSocket}/index.vue +8 -8
  119. package/dist/v3/DevTool/index.vue +179 -5
  120. package/dist/v3/{AppTransition → components/AppTransition}/index.vue +176 -170
  121. package/dist/v3/{AutoSizer → components/AutoSizer}/index.vue +192 -192
  122. package/dist/v3/{AutoSizer → components/AutoSizer}/index1.vue +184 -184
  123. package/dist/v3/{AutoSizer → components/AutoSizer}/utils.ts +49 -49
  124. package/dist/v3/components/Barrage/BarrageItem.vue +137 -0
  125. package/dist/v3/components/Barrage/index.vue +202 -0
  126. package/dist/v3/{CircularButton → components/CircularButton}/index.vue +84 -84
  127. package/dist/v3/{CustomSwiper → components/CustomSwiper}/CustomSwiperItem.vue +49 -49
  128. package/dist/v3/{CustomSwiper → components/CustomSwiper}/index.vue +104 -104
  129. package/dist/v3/{DraggableContainer → components/DraggableContainer}/index.vue +1 -1
  130. package/dist/v3/{Empty → components/Empty}/index.vue +29 -29
  131. package/dist/v3/{FilterInput → components/FilterInput}/index.vue +1 -1
  132. package/dist/v3/{FilterSelect → components/FilterSelect}/index.vue +179 -179
  133. package/dist/v3/{JsonPretty → components/JsonPretty}/components/Brackets/index.vue +27 -27
  134. package/dist/v3/{JsonPretty → components/JsonPretty}/components/Carets/index.vue +59 -59
  135. package/dist/v3/{JsonPretty → components/JsonPretty}/components/CheckController/index.vue +136 -136
  136. package/dist/v3/{JsonPretty → components/JsonPretty}/components/TreeNode/index.vue +387 -381
  137. package/dist/v3/{JsonPretty → components/JsonPretty}/hooks/useClipboard.ts +21 -21
  138. package/dist/v3/{JsonPretty → components/JsonPretty}/hooks/useError.ts +21 -21
  139. package/dist/v3/{JsonPretty → components/JsonPretty}/index.vue +16 -13
  140. package/dist/v3/{JsonPretty → components/JsonPretty}/type.ts +127 -126
  141. package/dist/v3/{JsonPretty → components/JsonPretty}/utils/index.ts +169 -169
  142. package/dist/v3/{MovableContainer → components/MovableContainer}/index.vue +1 -1
  143. package/dist/v3/{Pick → components/Pick}/index.vue +322 -322
  144. package/dist/v3/{Tabs → components/Tabs}/index.vue +30 -4
  145. package/dist/v3/{Tag → components/Tag}/index.vue +113 -113
  146. package/dist/v3/{VirtualList → components/VirtualList}/AutoSize.vue +40 -40
  147. package/dist/v3/{VirtualList → components/VirtualList}/index.vue +416 -412
  148. package/dist/v3/hooks/useBluetooth/index.ts +561 -0
  149. package/dist/v3/hooks/useContainerStyle.ts +153 -153
  150. package/dist/v3/hooks/useNFC/index.ts +107 -107
  151. package/dist/v3/hooks/useNFC/typing.d.ts +396 -396
  152. package/dist/v3/hooks/useNFC/useNFCAndroid.ts +966 -966
  153. package/dist/v3/hooks/useNFC/useNFCMpWeiXin.ts +812 -812
  154. package/dist/v3/hooks/useNFC/utils.ts +754 -754
  155. package/dist/v3/hooks/useRequest/index.ts +586 -573
  156. package/dist/v3/hooks/useRequest/utils.ts +267 -267
  157. package/dist/v3/hooks/useScanCode/index.ts +206 -206
  158. package/dist/v3/hooks/useWebsocket/README.md +79 -0
  159. package/dist/v3/hooks/useWebsocket/index.ts +253 -0
  160. package/dist/v3/styles/theme.css +17 -10
  161. package/dist/v3/styles/theme.ts +12 -12
  162. package/package.json +59 -64
  163. package/dist/plugins/uniParseStock/index.d.ts +0 -10
  164. package/dist/plugins/uniParseStock/index.d.ts.map +0 -1
  165. /package/dist/v3/{DevToolWindow → DevTool/components/DevToolWindow}/index.css +0 -0
  166. /package/dist/v3/{SettingList → DevTool/components/SettingList}/index.css +0 -0
  167. /package/dist/v3/{Empty → components/Empty}/empty.png +0 -0
  168. /package/dist/v3/{VirtualList → components/VirtualList}/readme.md +0 -0
@@ -1,184 +1,197 @@
1
- import { ref, reactive, shallowRef, nextTick } from 'vue';
2
- import type { DevTool } from '../../../type';
3
- import { isMockWX, isAndroid } from '../../../utils/index';
4
- import { emptyNetwork } from '../const';
5
-
6
- export function useDevToolOverlay(props: any) {
7
- const openCode = ref(false);
8
- const stack = ref('');
9
- const showNetworkSend = ref(false);
10
- const showNetworkDetail = ref(false);
11
- const showNetworkIntercept = ref(false);
12
- const showInterceptConfig = ref(false);
13
- const showJsonDetail = ref(false);
14
- const jsonData = shallowRef<
15
- { title?: string; data: Record<string, any> } | undefined
16
- >();
17
- const showNfcTool = ref(false);
18
- const showTransferDetail = ref(false);
19
- const showWebSocketDetail = ref(false);
20
-
21
- const network = reactive<DevTool.NetworkItem>({ ...emptyNetwork });
22
- const transfer = reactive<DevTool.TransferItem>({
23
- index: 0,
24
- status: '',
25
- type: 'upload',
26
- });
27
- const webSocket = reactive<DevTool.WS>({ url: '', message: [] });
28
-
29
- function onCloseCode() {
30
- openCode.value = false;
31
- stack.value = '';
32
- }
33
-
34
- function onOpenCode(value?: string) {
35
- if (!value) return;
36
- stack.value = value;
37
- const isWXLink = isMockWX(value ?? '') || props.mode !== 'development';
38
- const isUseDevSource = !isWXLink && props.useDevSource;
39
-
40
- if (isWXLink) {
41
- uni.showToast({
42
- icon: 'none',
43
- title: '[DevTool] 请在小程序真机调试模式下查看源码',
44
- });
45
- return;
46
- }
47
- if (!isUseDevSource) return;
48
-
49
- if (isAndroid()) {
50
- if (props.sourceFileServers && props.sourceFileServers?.length > 0) {
51
- openCode.value = true;
52
- } else {
53
- uni.showToast({
54
- icon: 'none',
55
- title: '[DevTool] sourceFileServers 配置异常',
56
- });
57
- }
58
- } else {
59
- openCode.value = true;
60
- }
61
- }
62
-
63
- function onOpenJson(data?: { title?: string; data: Record<string, any> }) {
64
- showJsonDetail.value = true;
65
- jsonData.value = data;
66
- }
67
- function onCloseJson() {
68
- showJsonDetail.value = false;
69
- jsonData.value = undefined;
70
- }
71
-
72
- function onOpenNfcTool() {
73
- showNfcTool.value = true;
74
- }
75
- function onCloseNfcTool() {
76
- showNfcTool.value = false;
77
- }
78
-
79
- function onOpenNetworkDetail(ni?: DevTool.NetworkItem) {
80
- Object.assign(network, emptyNetwork);
81
- Object.assign(network, ni);
82
- showNetworkDetail.value = true;
83
- }
84
- function onCloseNetworkDetail() {
85
- showNetworkDetail.value = false;
86
- }
87
-
88
- function onOpenNetworkSend(ni?: DevTool.NetworkItem) {
89
- Object.assign(network, emptyNetwork);
90
- Object.assign(network, ni);
91
- showNetworkSend.value = true;
92
- }
93
- function onCloseNetworkSend() {
94
- showNetworkSend.value = false;
95
- }
96
-
97
- function onOpenNetworkIntercept() {
98
- showNetworkIntercept.value = true;
99
- }
100
- function onCloseNetworkIntercept() {
101
- showNetworkIntercept.value = false;
102
- }
103
-
104
- function onOpenInterceptConfig(ni?: DevTool.NetworkItem) {
105
- Object.assign(network, emptyNetwork);
106
- if (ni) Object.assign(network, ni);
107
- showInterceptConfig.value = true;
108
- }
109
- function onCloseInterceptConfig() {
110
- showInterceptConfig.value = false;
111
- }
112
-
113
- function onOpenTransferDetail(item?: DevTool.TransferItem) {
114
- if ((item as any).formData) {
115
- delete (transfer as any).formData;
116
- }
117
- if ((item as any).filePath) {
118
- delete (transfer as any).filePath;
119
- }
120
- Object.assign(transfer, item);
121
- showTransferDetail.value = true;
122
- }
123
- function onCloseTransferDetail() {
124
- showTransferDetail.value = false;
125
- }
126
-
127
- function onOpenWebSocketDetail(ws?: DevTool.WS, currentWebSocket?: any) {
128
- Object.assign(webSocket, ws);
129
- nextTick(() => {
130
- // 兼容直接传入对象或传入 Ref 的情况
131
- if (
132
- currentWebSocket === undefined ||
133
- currentWebSocket?.value ||
134
- currentWebSocket
135
- ) {
136
- showWebSocketDetail.value = true;
137
- }
138
- });
139
- }
140
- function onCloseWebSocketDetail() {
141
- showWebSocketDetail.value = false;
142
- }
143
-
144
- return {
145
- state: reactive({
146
- openCode,
147
- stack,
148
- showNetworkSend,
149
- showNetworkDetail,
150
- showNetworkIntercept,
151
- showInterceptConfig,
152
- showJsonDetail,
153
- jsonData,
154
- showNfcTool,
155
- showTransferDetail,
156
- showWebSocketDetail,
157
- }),
158
- network,
159
- transfer,
160
- webSocket,
161
- handlers: {
162
- onCloseCode,
163
- onOpenCode,
164
- onOpenJson,
165
- onCloseJson,
166
- onOpenNfcTool,
167
- onCloseNfcTool,
168
- onOpenNetworkDetail,
169
- onCloseNetworkDetail,
170
- onOpenNetworkSend,
171
- onCloseNetworkSend,
172
- onOpenNetworkIntercept,
173
- onCloseNetworkIntercept,
174
- onOpenInterceptConfig,
175
- onCloseInterceptConfig,
176
- onOpenTransferDetail,
177
- onCloseTransferDetail,
178
- onOpenWebSocketDetail,
179
- onCloseWebSocketDetail,
180
- },
181
- };
182
- }
183
-
184
- import { emptyNetwork as _emptyNetwork } from '../const';
1
+ import { ref, reactive, shallowRef, nextTick } from 'vue';
2
+ import type { DevTool } from '../../../../../type';
3
+ import { isMockWX, isAndroid } from '../../../../../utils/index';
4
+ import { emptyNetwork } from '../const';
5
+
6
+ export function useDevToolOverlay(props: any) {
7
+ const openCode = ref(false);
8
+ const stack = ref('');
9
+ const showNetworkSend = ref(false);
10
+ const showNetworkDetail = ref(false);
11
+ const showNetworkIntercept = ref(false);
12
+ const showInterceptConfig = ref(false);
13
+ const showJsonDetail = ref(false);
14
+ const jsonData = shallowRef<
15
+ { title?: string; data: Record<string, any> } | undefined
16
+ >();
17
+ const showNfcTool = ref(false);
18
+ const showTransferDetail = ref(false);
19
+ const showWebSocketDetail = ref(false);
20
+ const showBluetoothTool = ref(false);
21
+ const bluetoothDevice = shallowRef<DevTool.BluetoothItem | null>(null);
22
+
23
+ const network = reactive<DevTool.NetworkItem>({ ...emptyNetwork });
24
+ const transfer = reactive<DevTool.TransferItem>({
25
+ index: 0,
26
+ status: '',
27
+ type: 'upload',
28
+ });
29
+ const webSocket = reactive<DevTool.WS>({ url: '', message: [] });
30
+
31
+ function onCloseCode() {
32
+ openCode.value = false;
33
+ stack.value = '';
34
+ }
35
+
36
+ function onOpenCode(value?: string) {
37
+ if (!value) return;
38
+ stack.value = value;
39
+ const isWXLink = isMockWX(value ?? '') || props.mode !== 'development';
40
+ const isUseDevSource = !isWXLink && props.useDevSource;
41
+
42
+ if (isWXLink) {
43
+ uni.showToast({
44
+ icon: 'none',
45
+ title: '[DevTool] 请在小程序真机调试模式下查看源码',
46
+ });
47
+ return;
48
+ }
49
+ if (!isUseDevSource) return;
50
+
51
+ if (isAndroid()) {
52
+ if (props.sourceFileServers && props.sourceFileServers?.length > 0) {
53
+ openCode.value = true;
54
+ } else {
55
+ uni.showToast({
56
+ icon: 'none',
57
+ title: '[DevTool] sourceFileServers 配置异常',
58
+ });
59
+ }
60
+ } else {
61
+ openCode.value = true;
62
+ }
63
+ }
64
+
65
+ function onOpenJson(data?: { title?: string; data: Record<string, any> }) {
66
+ showJsonDetail.value = true;
67
+ jsonData.value = data;
68
+ }
69
+ function onCloseJson() {
70
+ showJsonDetail.value = false;
71
+ jsonData.value = undefined;
72
+ }
73
+
74
+ function onOpenNfcTool() {
75
+ showNfcTool.value = true;
76
+ }
77
+ function onCloseNfcTool() {
78
+ showNfcTool.value = false;
79
+ }
80
+
81
+ function onOpenBluetoothTool(device: DevTool.BluetoothItem) {
82
+ bluetoothDevice.value = device;
83
+ showBluetoothTool.value = true;
84
+ }
85
+ function onCloseBluetoothTool() {
86
+ showBluetoothTool.value = false;
87
+ bluetoothDevice.value = null;
88
+ }
89
+
90
+ function onOpenNetworkDetail(ni?: DevTool.NetworkItem) {
91
+ Object.assign(network, emptyNetwork);
92
+ Object.assign(network, ni);
93
+ showNetworkDetail.value = true;
94
+ }
95
+ function onCloseNetworkDetail() {
96
+ showNetworkDetail.value = false;
97
+ }
98
+
99
+ function onOpenNetworkSend(ni?: DevTool.NetworkItem) {
100
+ Object.assign(network, emptyNetwork);
101
+ Object.assign(network, ni);
102
+ showNetworkSend.value = true;
103
+ }
104
+ function onCloseNetworkSend() {
105
+ showNetworkSend.value = false;
106
+ }
107
+
108
+ function onOpenNetworkIntercept() {
109
+ showNetworkIntercept.value = true;
110
+ }
111
+ function onCloseNetworkIntercept() {
112
+ showNetworkIntercept.value = false;
113
+ }
114
+
115
+ function onOpenInterceptConfig(ni?: DevTool.NetworkItem) {
116
+ Object.assign(network, emptyNetwork);
117
+ if (ni) Object.assign(network, ni);
118
+ showInterceptConfig.value = true;
119
+ }
120
+ function onCloseInterceptConfig() {
121
+ showInterceptConfig.value = false;
122
+ }
123
+
124
+ function onOpenTransferDetail(item?: DevTool.TransferItem) {
125
+ if ((item as any).formData) {
126
+ delete (transfer as any).formData;
127
+ }
128
+ if ((item as any).filePath) {
129
+ delete (transfer as any).filePath;
130
+ }
131
+ Object.assign(transfer, item);
132
+ showTransferDetail.value = true;
133
+ }
134
+ function onCloseTransferDetail() {
135
+ showTransferDetail.value = false;
136
+ }
137
+
138
+ function onOpenWebSocketDetail(ws?: DevTool.WS, currentWebSocket?: any) {
139
+ Object.assign(webSocket, ws);
140
+ nextTick(() => {
141
+ // 兼容直接传入对象或传入 Ref 的情况
142
+ if (
143
+ currentWebSocket === undefined ||
144
+ currentWebSocket?.value ||
145
+ currentWebSocket
146
+ ) {
147
+ showWebSocketDetail.value = true;
148
+ }
149
+ });
150
+ }
151
+ function onCloseWebSocketDetail() {
152
+ showWebSocketDetail.value = false;
153
+ }
154
+
155
+ return {
156
+ state: reactive({
157
+ openCode,
158
+ stack,
159
+ showNetworkSend,
160
+ showNetworkDetail,
161
+ showNetworkIntercept,
162
+ showInterceptConfig,
163
+ showJsonDetail,
164
+ jsonData,
165
+ showNfcTool,
166
+ showTransferDetail,
167
+ showWebSocketDetail,
168
+ showBluetoothTool,
169
+ bluetoothDevice,
170
+ }),
171
+ network,
172
+ transfer,
173
+ webSocket,
174
+ handlers: {
175
+ onCloseCode,
176
+ onOpenCode,
177
+ onOpenJson,
178
+ onCloseJson,
179
+ onOpenNfcTool,
180
+ onCloseNfcTool,
181
+ onOpenNetworkDetail,
182
+ onCloseNetworkDetail,
183
+ onOpenNetworkSend,
184
+ onCloseNetworkSend,
185
+ onOpenNetworkIntercept,
186
+ onCloseNetworkIntercept,
187
+ onOpenInterceptConfig,
188
+ onCloseInterceptConfig,
189
+ onOpenTransferDetail,
190
+ onCloseTransferDetail,
191
+ onOpenWebSocketDetail,
192
+ onCloseWebSocketDetail,
193
+ onOpenBluetoothTool,
194
+ onCloseBluetoothTool,
195
+ },
196
+ };
197
+ }
@@ -282,6 +282,17 @@
282
282
  @openTool="overlay.handlers.onOpenNfcTool" />
283
283
  </CustomSwiperItem>
284
284
 
285
+ <!-- Bluetooth -->
286
+ <CustomSwiperItem
287
+ v-if="isTabVisible('Bluetooth')"
288
+ :key="tabIndex.Bluetooth"
289
+ style="width: 100%; height: 100%">
290
+ <BluetoothList
291
+ v-if="swiperShow(tabIndex.Bluetooth)"
292
+ :contentHeight="dynamicContentHeight"
293
+ @openTool="overlay.handlers.onOpenBluetoothTool" />
294
+ </CustomSwiperItem>
295
+
285
296
  <!-- Storage -->
286
297
  <CustomSwiperItem
287
298
  v-if="isTabVisible('Storage')"
@@ -341,6 +352,14 @@
341
352
  :performanceVisible="performanceVisible"
342
353
  :performanceShowFps="performanceShowFps"
343
354
  :performanceShowCpu="performanceShowCpu"
355
+ :barrage-visible="barrageVisible"
356
+ :barrage-max-tracks="barrageMaxTracks"
357
+ :barrage-track-height="barrageTrackHeight"
358
+ :barrage-start-top="barrageStartTop"
359
+ :barrage-duration="barrageDuration"
360
+ :barrage-max-length="barrageMaxLength"
361
+ :barrage-types="barrageTypes"
362
+ :barrage-show-when-open="barrageShowWhenOpen"
344
363
  :sizeFormat="sizeFormat"
345
364
  :buildInfo="buildInfo"
346
365
  :cache-intercept-config="cacheInterceptConfig"
@@ -365,6 +384,14 @@
365
384
  @change-cache-intercept-config="onChangeCacheInterceptConfig"
366
385
  @change-cache-network-log="onChangeCacheNetworkLog"
367
386
  @change-cache-console-log="onChangeCacheConsoleLog"
387
+ @change-barrage="onChangeBarrage"
388
+ @change-barrage-max-tracks="onChangeBarrageMaxTracks"
389
+ @change-barrage-track-height="onChangeBarrageTrackHeight"
390
+ @change-barrage-start-top="onChangeBarrageStartTop"
391
+ @change-barrage-duration="onChangeBarrageDuration"
392
+ @change-barrage-max-length="onChangeBarrageMaxLength"
393
+ @change-barrage-types="onChangeBarrageTypes"
394
+ @change-barrage-show-when-open="onChangeBarrageShowWhenOpen"
368
395
  @change-use-transition="onChangeUseTransition"
369
396
  @changeFont="onChangeFontSize"
370
397
  @onChangePerformanceShowFps="onChangePerformanceShowFps"
@@ -414,8 +441,8 @@ import {
414
441
  ref,
415
442
  watch,
416
443
  } from 'vue';
417
- import AppTransition from '../AppTransition/index.vue';
418
- import Tabs from '../Tabs/index.vue';
444
+ import AppTransition from '../../../components/AppTransition/index.vue';
445
+ import Tabs from '../../../components/Tabs/index.vue';
419
446
  import ConsoleList from '../ConsoleList/index.vue';
420
447
  import NetworkList from '../NetworkList/index.vue';
421
448
  import StorageList from '../StorageList/index.vue';
@@ -431,18 +458,22 @@ import UniEvent from '../UniEvent/index.vue';
431
458
  import CaptureScreen from '../CaptureScreen/index.vue';
432
459
  import ScanCodeList from '../ScanCodeList/index.vue';
433
460
  import NFCList from '../NFCList/index.vue';
461
+ import BluetoothList from '../BluetoothList/index.vue';
434
462
  import InstanceDetail from '../InstanceDetail/index.vue';
435
463
  import DevToolOverlay from './DevToolOverlay.vue';
436
- import CustomSwiper from '../CustomSwiper/index.vue';
437
- import CustomSwiperItem from '../CustomSwiper/CustomSwiperItem.vue';
438
- import DraggableContainer from '../DraggableContainer/index.vue';
439
- import CircularButton from '../CircularButton/index.vue';
440
- import { useI18n } from '../../i18n';
441
-
442
- import { DEV_CORE_MESSAGE, MSG_TYPE, CMD_TYPE } from '../../const';
443
- import { getCurrentPagePath } from '../../utils/index';
444
- import type { DevTool } from '../../type';
445
- import { getDevToolInfo, setDevToolInfo } from '../../modules/devToolInfo';
464
+ import CustomSwiper from '../../../components/CustomSwiper/index.vue';
465
+ import CustomSwiperItem from '../../../components/CustomSwiper/CustomSwiperItem.vue';
466
+ import DraggableContainer from '../../../components/DraggableContainer/index.vue';
467
+ import CircularButton from '../../../components/CircularButton/index.vue';
468
+ import { useI18n } from '../../../../i18n';
469
+
470
+ import { DEV_CORE_MESSAGE, MSG_TYPE, CMD_TYPE } from '../../../../const';
471
+ import { getCurrentPagePath } from '../../../../utils/index';
472
+ import type { DevTool } from '../../../../type';
473
+ import {
474
+ getDevToolInfo,
475
+ setDevToolInfo,
476
+ } from '../../../../modules/devToolInfo';
446
477
  import { getTabItems, tabIndex } from './const';
447
478
 
448
479
  // 引入 Hooks
@@ -532,6 +563,14 @@ const {
532
563
  performanceVisible,
533
564
  performanceShowFps,
534
565
  performanceShowCpu,
566
+ barrageVisible,
567
+ barrageMaxTracks,
568
+ barrageTrackHeight,
569
+ barrageStartTop,
570
+ barrageDuration,
571
+ barrageMaxLength,
572
+ barrageTypes,
573
+ barrageShowWhenOpen,
535
574
  isFullScreen,
536
575
  windowX,
537
576
  windowY,
@@ -640,6 +679,14 @@ const {
640
679
  onChangePerformance,
641
680
  onChangePerformanceShowFps,
642
681
  onChangePerformanceShowCpu,
682
+ onChangeBarrage,
683
+ onChangeBarrageMaxTracks,
684
+ onChangeBarrageTrackHeight,
685
+ onChangeBarrageStartTop,
686
+ onChangeBarrageDuration,
687
+ onChangeBarrageMaxLength,
688
+ onChangeBarrageTypes,
689
+ onChangeBarrageShowWhenOpen,
643
690
  basicSendMessage,
644
691
  } = handlers;
645
692
 
@@ -811,6 +858,10 @@ onMounted(() => {
811
858
  'ElEvent',
812
859
  'UniEvent',
813
860
  ];
861
+ barrageShowWhenOpen.value =
862
+ devToolInfo?.barrageShowWhenOpen !== undefined
863
+ ? devToolInfo.barrageShowWhenOpen
864
+ : false;
814
865
 
815
866
  // 延迟恢复滚动位置,确保布局已渲染
816
867
  setTimeout(() => {
@@ -824,10 +875,10 @@ onMounted(() => {
824
875
 
825
876
  if (devToolInfo.windowSettings) {
826
877
  isFullScreen.value = devToolInfo.windowSettings.isFullScreen ?? true;
827
- windowX.value = devToolInfo.windowSettings.x ?? 10;
828
- windowY.value = devToolInfo.windowSettings.y ?? 100;
829
- windowWidth.value = devToolInfo.windowSettings.width ?? 375;
830
- windowHeight.value = devToolInfo.windowSettings.height ?? 450;
878
+ windowX.value = Number(devToolInfo.windowSettings.x) || 10;
879
+ windowY.value = Number(devToolInfo.windowSettings.y) || 100;
880
+ windowWidth.value = Number(devToolInfo.windowSettings.width) || 375;
881
+ windowHeight.value = Number(devToolInfo.windowSettings.height) || 450;
831
882
  }
832
883
  }
833
884
  if (props.data) {