oxy-uni-ui 2.1.0 → 2.1.2

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 (269) hide show
  1. package/attributes.json +1 -1
  2. package/components/common/abstracts/variable.scss +145 -100
  3. package/components/common/util.ts +25 -0
  4. package/components/composables/useDynamicVirtualScroll.ts +80 -0
  5. package/components/oxy-action-sheet/index.scss +6 -6
  6. package/components/oxy-backtop/index.scss +1 -1
  7. package/components/oxy-badge/index.scss +2 -2
  8. package/components/oxy-button/index.scss +3 -6
  9. package/components/oxy-calendar/index.scss +2 -2
  10. package/components/oxy-calendar/oxy-calendar.vue +3 -3
  11. package/components/oxy-calendar-view/monthPanel/month-panel.vue +72 -37
  12. package/components/oxy-calendar-view/monthPanel/types.ts +43 -1
  13. package/components/oxy-calendar-view/types.ts +1 -1
  14. package/components/oxy-calendar-view/utils.ts +12 -1
  15. package/components/oxy-calendar-view/yearPanel/types.ts +36 -2
  16. package/components/oxy-calendar-view/yearPanel/year-panel.vue +64 -45
  17. package/components/oxy-card/index.scss +4 -4
  18. package/components/oxy-cell/index.scss +1 -1
  19. package/components/oxy-cell-group/index.scss +2 -2
  20. package/components/oxy-checkbox/index.scss +87 -197
  21. package/components/oxy-collapse/index.scss +1 -1
  22. package/components/oxy-collapse-item/index.scss +2 -2
  23. package/components/oxy-corner/index.scss +3 -3
  24. package/components/oxy-count-to/oxy-count-to.vue +3 -3
  25. package/components/oxy-count-to/types.ts +1 -1
  26. package/components/oxy-date-strip-item/index.scss +4 -4
  27. package/components/oxy-datetime-picker/types.ts +1 -1
  28. package/components/oxy-datetime-picker-view/types.ts +2 -2
  29. package/components/oxy-fab/index.scss +1 -5
  30. package/components/oxy-file-list/index.scss +2 -2
  31. package/components/oxy-footer/index.scss +2 -2
  32. package/components/oxy-footer/oxy-footer.vue +2 -3
  33. package/components/oxy-form-item/index.scss +0 -5
  34. package/components/oxy-grid/oxy-grid.vue +1 -1
  35. package/components/oxy-grid-item/index.scss +1 -1
  36. package/components/oxy-guidance/index.scss +2 -2
  37. package/components/oxy-img/index.scss +2 -2
  38. package/components/oxy-img-cropper/index.scss +0 -2
  39. package/components/oxy-img-lazy/index.scss +0 -1
  40. package/components/oxy-index-anchor/index.scss +3 -3
  41. package/components/oxy-input/index.scss +2 -2
  42. package/components/oxy-input-number/index.scss +21 -3
  43. package/components/oxy-input-number/oxy-input-number.vue +9 -1
  44. package/components/oxy-keyboard/index.scss +1 -1
  45. package/components/oxy-link/index.scss +11 -10
  46. package/components/oxy-loading/index.scss +1 -1
  47. package/components/oxy-loadmore/index.scss +1 -1
  48. package/components/oxy-message-box/index.scss +7 -7
  49. package/components/oxy-navbar/index.scss +1 -1
  50. package/components/oxy-navbar/oxy-navbar.vue +2 -3
  51. package/components/oxy-password-input/index.scss +4 -4
  52. package/components/oxy-picker/types.ts +1 -1
  53. package/components/oxy-picker-view/oxy-picker-view.vue +8 -5
  54. package/components/oxy-picker-view/types.ts +2 -2
  55. package/components/oxy-progress/index.scss +2 -2
  56. package/components/oxy-radio/index.scss +8 -4
  57. package/components/oxy-radio-group/index.scss +0 -1
  58. package/components/oxy-rich-text/index.scss +2 -6
  59. package/components/oxy-rich-text/mp-html/mp-html.d.ts +2 -0
  60. package/components/oxy-rich-text/mp-html/mp-html.vue +2 -1
  61. package/components/oxy-rich-text/mp-html/node/node.vue +23 -0
  62. package/components/oxy-rich-text/mp-html/parser.js +6 -6
  63. package/components/oxy-rich-text/oxy-rich-text.vue +23 -0
  64. package/components/oxy-search/index.scss +1 -1
  65. package/components/oxy-segmented/index.scss +4 -8
  66. package/components/oxy-select/index.scss +6 -6
  67. package/components/oxy-sidebar-item/index.scss +20 -11
  68. package/components/oxy-slider/index.scss +4 -5
  69. package/components/oxy-sort-button/index.scss +6 -9
  70. package/components/oxy-splitter-panel/index.scss +8 -8
  71. package/components/oxy-step/index.scss +9 -9
  72. package/components/oxy-swiper-nav/index.scss +2 -2
  73. package/components/oxy-switch/index.scss +3 -3
  74. package/components/oxy-tab/index.scss +8 -2
  75. package/components/oxy-tabbar/index.scss +3 -3
  76. package/components/oxy-tabbar/oxy-tabbar.vue +3 -3
  77. package/components/oxy-table/index.scss +0 -1
  78. package/components/oxy-table-col/index.scss +1 -2
  79. package/components/oxy-tabs/index.scss +3 -3
  80. package/components/oxy-tag/index.scss +160 -20
  81. package/components/oxy-tag/oxy-tag.vue +14 -2
  82. package/components/oxy-tag/types.ts +9 -0
  83. package/components/oxy-text/index.scss +1 -1
  84. package/components/oxy-textarea/index.scss +2 -6
  85. package/components/oxy-toast/index.scss +1 -1
  86. package/components/oxy-tree/index.scss +31 -11
  87. package/components/oxy-tree/oxy-tree.vue +113 -2
  88. package/components/oxy-tree/types.ts +1 -0
  89. package/components/oxy-upload/index.scss +3 -3
  90. package/components/oxy-video-preview/index.scss +3 -3
  91. package/components/oxy-virtual-scroll/index.scss +1 -1
  92. package/components/oxy-voice-player/index.scss +36 -36
  93. package/components/oxy-watermark/index.scss +1 -1
  94. package/dev-tools.ts +2 -0
  95. package/devTools/components/DevToolsOverlay.vue +56 -0
  96. package/devTools/components/DevToolsUiHost.vue +589 -0
  97. package/devTools/config.js +55 -0
  98. package/devTools/core/components/mpDevBubble.vue +174 -0
  99. package/devTools/core/libs/createH5Bubble.js +156 -0
  100. package/devTools/core/libs/devCache.js +151 -0
  101. package/devTools/core/libs/devOptions.js +163 -0
  102. package/devTools/core/libs/devUi.js +219 -0
  103. package/devTools/core/libs/drawView.js +140 -0
  104. package/devTools/core/libs/errorReport.js +64 -0
  105. package/devTools/core/libs/jsonCompress.js +334 -0
  106. package/devTools/core/libs/logReport.js +59 -0
  107. package/devTools/core/libs/pageLinkList.js +125 -0
  108. package/devTools/core/libs/timeFormat.js +94 -0
  109. package/devTools/core/proxy/console.js +430 -0
  110. package/devTools/core/proxy/index.js +36 -0
  111. package/devTools/core/proxy/request.js +495 -0
  112. package/devTools/core/proxy/storage.js +113 -0
  113. package/devTools/core/proxy/uniBus.js +153 -0
  114. package/devTools/core/proxy/uniListen.js +192 -0
  115. package/devTools/core/proxy/vueMixin.js +120 -0
  116. package/devTools/index.js +168 -0
  117. package/devTools/page/components/bottomTools.vue +1046 -0
  118. package/devTools/page/components/dialog/addStorage.vue +204 -0
  119. package/devTools/page/components/dialog/createDir.vue +366 -0
  120. package/devTools/page/components/dialog/editDialog.vue +192 -0
  121. package/devTools/page/components/dialog/routeDialog.vue +184 -0
  122. package/devTools/page/components/dialog/sendRequest.vue +603 -0
  123. package/devTools/page/components/dialog/textFileEditDialog.vue +391 -0
  124. package/devTools/page/components/libs/appDelDir.js +86 -0
  125. package/devTools/page/components/libs/dirReader.js +248 -0
  126. package/devTools/page/components/libs/fileSize.js +15 -0
  127. package/devTools/page/components/libs/getRuntimeInfo.js +134 -0
  128. package/devTools/page/components/listItem/consoleItem.vue +314 -0
  129. package/devTools/page/components/listItem/errorItem.vue +292 -0
  130. package/devTools/page/components/listItem/fileSysItem.vue +533 -0
  131. package/devTools/page/components/listItem/infoList.vue +100 -0
  132. package/devTools/page/components/listItem/jsRunnerItem.vue +255 -0
  133. package/devTools/page/components/listItem/logItem.vue +193 -0
  134. package/devTools/page/components/listItem/networkItem.vue +398 -0
  135. package/devTools/page/components/listItem/objectAnalysis.vue +651 -0
  136. package/devTools/page/components/listItem/pages.vue +319 -0
  137. package/devTools/page/components/listItem/routeItem.vue +153 -0
  138. package/devTools/page/components/listItem/setting.vue +734 -0
  139. package/devTools/page/components/listItem/storageList.vue +681 -0
  140. package/devTools/page/components/listItem/tools.vue +315 -0
  141. package/devTools/page/components/listItem/vuexList.vue +599 -0
  142. package/devTools/page/components/main.vue +1867 -0
  143. package/devTools/page/components/mixins/animationControl.js +91 -0
  144. package/devTools/page/components/mixins/mp.js +83 -0
  145. package/devTools/page/components/ui/btnTabs.vue +90 -0
  146. package/devTools/page/components/ui/codeHisPicker.vue +172 -0
  147. package/devTools/page/components/ui/h5Cell.vue +13 -0
  148. package/devTools/page/components/ui/menuBtn.vue +94 -0
  149. package/devTools/page/components/ui/mobileSwiperScroll.vue +74 -0
  150. package/devTools/page/components/ui/requestSpeedLimit.vue +52 -0
  151. package/devTools/page/components/ui/requestTimeoutMock.vue +55 -0
  152. package/devTools/page/components/ui/subTitleBar.vue +101 -0
  153. package/devTools/page/static/copy.png +0 -0
  154. package/devTools/page/static/delete.png +0 -0
  155. package/devTools/page/static/fileSys/AI.png +0 -0
  156. package/devTools/page/static/fileSys/DWG.png +0 -0
  157. package/devTools/page/static/fileSys/EXE.png +0 -0
  158. package/devTools/page/static/fileSys/GIF.png +0 -0
  159. package/devTools/page/static/fileSys/HTML.png +0 -0
  160. package/devTools/page/static/fileSys/PSD.png +0 -0
  161. package/devTools/page/static/fileSys/RVT.png +0 -0
  162. package/devTools/page/static/fileSys/SKP.png +0 -0
  163. package/devTools/page/static/fileSys/SVG.png +0 -0
  164. package/devTools/page/static/fileSys/excel.png +0 -0
  165. package/devTools/page/static/fileSys/pdf.png +0 -0
  166. package/devTools/page/static/fileSys/pptl.png +0 -0
  167. package/devTools/page/static/fileSys/shipin.png +0 -0
  168. package/devTools/page/static/fileSys/tupian.png +0 -0
  169. package/devTools/page/static/fileSys/txt.png +0 -0
  170. package/devTools/page/static/fileSys/weizhiwenjian.png +0 -0
  171. package/devTools/page/static/fileSys/wenjianjia.png +0 -0
  172. package/devTools/page/static/fileSys/word.png +0 -0
  173. package/devTools/page/static/fileSys/yasuo.png +0 -0
  174. package/devTools/page/static/fileSys/yinpin.png +0 -0
  175. package/devTools/page/static/fold.png +0 -0
  176. package/devTools/page/static/menu.png +0 -0
  177. package/devTools/page/static/refresh.png +0 -0
  178. package/devTools/page/static/unfold.png +0 -0
  179. package/devTools/tools.vue +25 -0
  180. package/devTools/type/devTools.d.ts +406 -0
  181. package/oxy-dev-tools/components/DevToolsUiHost.vue +555 -0
  182. package/oxy-dev-tools/config.js +61 -0
  183. package/oxy-dev-tools/core/components/mpDevBubble.vue +176 -0
  184. package/oxy-dev-tools/core/libs/createH5Bubble.js +156 -0
  185. package/oxy-dev-tools/core/libs/devCache.js +149 -0
  186. package/oxy-dev-tools/core/libs/devOptions.js +160 -0
  187. package/oxy-dev-tools/core/libs/devUi.js +219 -0
  188. package/oxy-dev-tools/core/libs/drawView.js +144 -0
  189. package/oxy-dev-tools/core/libs/errorReport.js +60 -0
  190. package/oxy-dev-tools/core/libs/jsonCompress.js +328 -0
  191. package/oxy-dev-tools/core/libs/logReport.js +55 -0
  192. package/oxy-dev-tools/core/libs/pageLinkList.js +121 -0
  193. package/oxy-dev-tools/core/libs/timeFormat.js +93 -0
  194. package/oxy-dev-tools/core/proxy/console.js +398 -0
  195. package/oxy-dev-tools/core/proxy/index.js +33 -0
  196. package/oxy-dev-tools/core/proxy/request.js +473 -0
  197. package/oxy-dev-tools/core/proxy/storage.js +96 -0
  198. package/oxy-dev-tools/core/proxy/uniBus.js +148 -0
  199. package/oxy-dev-tools/core/proxy/uniListen.js +190 -0
  200. package/oxy-dev-tools/core/proxy/vueMixin.js +115 -0
  201. package/oxy-dev-tools/index.ts +183 -0
  202. package/oxy-dev-tools/oxy-dev-tools.vue +62 -0
  203. package/oxy-dev-tools/page/components/bottomTools.vue +933 -0
  204. package/oxy-dev-tools/page/components/dialog/addStorage.vue +184 -0
  205. package/oxy-dev-tools/page/components/dialog/createDir.vue +352 -0
  206. package/oxy-dev-tools/page/components/dialog/editDialog.vue +178 -0
  207. package/oxy-dev-tools/page/components/dialog/routeDialog.vue +170 -0
  208. package/oxy-dev-tools/page/components/dialog/sendRequest.vue +530 -0
  209. package/oxy-dev-tools/page/components/dialog/textFileEditDialog.vue +379 -0
  210. package/oxy-dev-tools/page/components/libs/appDelDir.js +77 -0
  211. package/oxy-dev-tools/page/components/libs/dirReader.js +239 -0
  212. package/oxy-dev-tools/page/components/libs/fileSize.js +15 -0
  213. package/oxy-dev-tools/page/components/libs/getRuntimeInfo.js +132 -0
  214. package/oxy-dev-tools/page/components/listItem/consoleItem.vue +292 -0
  215. package/oxy-dev-tools/page/components/listItem/errorItem.vue +268 -0
  216. package/oxy-dev-tools/page/components/listItem/fileSysItem.vue +511 -0
  217. package/oxy-dev-tools/page/components/listItem/infoList.vue +89 -0
  218. package/oxy-dev-tools/page/components/listItem/jsRunnerItem.vue +236 -0
  219. package/oxy-dev-tools/page/components/listItem/logItem.vue +185 -0
  220. package/oxy-dev-tools/page/components/listItem/networkItem.vue +362 -0
  221. package/oxy-dev-tools/page/components/listItem/objectAnalysis.vue +642 -0
  222. package/oxy-dev-tools/page/components/listItem/pages.vue +285 -0
  223. package/oxy-dev-tools/page/components/listItem/routeItem.vue +140 -0
  224. package/oxy-dev-tools/page/components/listItem/setting.vue +687 -0
  225. package/oxy-dev-tools/page/components/listItem/storageList.vue +623 -0
  226. package/oxy-dev-tools/page/components/listItem/tools.vue +273 -0
  227. package/oxy-dev-tools/page/components/listItem/vuexList.vue +559 -0
  228. package/oxy-dev-tools/page/components/main.vue +1824 -0
  229. package/oxy-dev-tools/page/components/mixins/animationControl.js +80 -0
  230. package/oxy-dev-tools/page/components/mixins/mp.js +76 -0
  231. package/oxy-dev-tools/page/components/ui/btnTabs.vue +77 -0
  232. package/oxy-dev-tools/page/components/ui/codeHisPicker.vue +161 -0
  233. package/oxy-dev-tools/page/components/ui/h5Cell.vue +13 -0
  234. package/oxy-dev-tools/page/components/ui/menuBtn.vue +87 -0
  235. package/oxy-dev-tools/page/components/ui/mobileSwiperScroll.vue +71 -0
  236. package/oxy-dev-tools/page/components/ui/requestSpeedLimit.vue +47 -0
  237. package/oxy-dev-tools/page/components/ui/requestTimeoutMock.vue +50 -0
  238. package/oxy-dev-tools/page/components/ui/subTitleBar.vue +87 -0
  239. package/oxy-dev-tools/page/static/copy.png +0 -0
  240. package/oxy-dev-tools/page/static/delete.png +0 -0
  241. package/oxy-dev-tools/page/static/fileSys/AI.png +0 -0
  242. package/oxy-dev-tools/page/static/fileSys/DWG.png +0 -0
  243. package/oxy-dev-tools/page/static/fileSys/EXE.png +0 -0
  244. package/oxy-dev-tools/page/static/fileSys/GIF.png +0 -0
  245. package/oxy-dev-tools/page/static/fileSys/HTML.png +0 -0
  246. package/oxy-dev-tools/page/static/fileSys/PSD.png +0 -0
  247. package/oxy-dev-tools/page/static/fileSys/RVT.png +0 -0
  248. package/oxy-dev-tools/page/static/fileSys/SKP.png +0 -0
  249. package/oxy-dev-tools/page/static/fileSys/SVG.png +0 -0
  250. package/oxy-dev-tools/page/static/fileSys/excel.png +0 -0
  251. package/oxy-dev-tools/page/static/fileSys/pdf.png +0 -0
  252. package/oxy-dev-tools/page/static/fileSys/pptl.png +0 -0
  253. package/oxy-dev-tools/page/static/fileSys/shipin.png +0 -0
  254. package/oxy-dev-tools/page/static/fileSys/tupian.png +0 -0
  255. package/oxy-dev-tools/page/static/fileSys/txt.png +0 -0
  256. package/oxy-dev-tools/page/static/fileSys/weizhiwenjian.png +0 -0
  257. package/oxy-dev-tools/page/static/fileSys/wenjianjia.png +0 -0
  258. package/oxy-dev-tools/page/static/fileSys/word.png +0 -0
  259. package/oxy-dev-tools/page/static/fileSys/yasuo.png +0 -0
  260. package/oxy-dev-tools/page/static/fileSys/yinpin.png +0 -0
  261. package/oxy-dev-tools/page/static/fold.png +0 -0
  262. package/oxy-dev-tools/page/static/menu.png +0 -0
  263. package/oxy-dev-tools/page/static/refresh.png +0 -0
  264. package/oxy-dev-tools/page/static/unfold.png +0 -0
  265. package/oxy-dev-tools/tools.vue +22 -0
  266. package/oxy-dev-tools/type/devTools.d.ts +406 -0
  267. package/package.json +1 -1
  268. package/tags.json +1 -1
  269. package/web-types.json +1 -1
@@ -0,0 +1,398 @@
1
+ import devCache from '../libs/devCache'
2
+ import devOptions from '../libs/devOptions'
3
+ import jsonCompress from '../libs/jsonCompress'
4
+
5
+ export default {
6
+ logList: [],
7
+ options: null,
8
+ /**
9
+ * 挂载打印拦截器
10
+ */
11
+ install() {
12
+ let that = this
13
+
14
+ this.options = devOptions.getOptions()
15
+ if (!this.options.console.status) return
16
+
17
+ this.logList = devCache.get('console')
18
+ if (!this.logList) this.logList = []
19
+ this.syncReqData() //同步缓存
20
+
21
+ if (uni.__log__) {
22
+ // ! VUE3在app端时有这个特殊的方法
23
+ that.mountUniConsole()
24
+ } else {
25
+ that.mountJsConsole()
26
+ }
27
+
28
+ //! 删除指定记录
29
+ uni.$on('devTools_delConsoleItem', (item) => {
30
+ let i = that.logList.findIndex((x) => {
31
+ let t = JSON.stringify(x.list)
32
+ return t == JSON.stringify(item.list) && x.time == item.time && x.page == item.page && x.type == item.type
33
+ })
34
+ if (i != -1) {
35
+ that.logList.splice(i, 1)
36
+ }
37
+ that.saveData()
38
+ })
39
+
40
+ //! 清空console日志
41
+ uni.$on('devTools_delConsoleAll', () => {
42
+ that.logList = []
43
+ devCache.clearItem('console')
44
+ })
45
+ },
46
+ /**
47
+ * 同步请求信息到缓存数据中
48
+ */
49
+ syncReqData() {
50
+ let that = this
51
+ setTimeout(() => {
52
+ try {
53
+ that.saveData()
54
+ } catch (error) {
55
+ console.log('console.syncReqData error', error)
56
+ }
57
+ that.syncReqData()
58
+ }, 3000)
59
+ },
60
+ /**
61
+ * 同步数据到缓存
62
+ */
63
+ saveData() {
64
+ let that = this
65
+ that.logList = jsonCompress.compressArray(that.logList, 'end', that.options.console.cache.size)
66
+ devCache.set('console', that.logList)
67
+ },
68
+ /**
69
+ * 挂载监听js自带的console函数
70
+ */
71
+ mountJsConsole() {
72
+ let that = this
73
+ try {
74
+ let l = console.log
75
+ try {
76
+ globalThis.consoleLog = function () {
77
+ console.log(...arguments)
78
+ }
79
+ } catch (error) {}
80
+ try {
81
+ window.consoleLog = function () {
82
+ console.log(...arguments)
83
+ }
84
+ } catch (error) {}
85
+ console.log = function () {
86
+ replaceConsole('log', arguments)
87
+ }
88
+ let e = console.error
89
+ function _error() {
90
+ try {
91
+ let args = [...arguments]
92
+ if (
93
+ args[0] &&
94
+ typeof args[0] == 'string' &&
95
+ (args[0] == '__ignoreReport__' || //! 忽略错误日志上报
96
+ args[0].indexOf('__ignoreReport__') == 0)
97
+ ) {
98
+ let _args = []
99
+ if (args.length > 1) {
100
+ for (let i = 0; i < args.length; i++) {
101
+ if (i != 0) {
102
+ _args.push(args[i])
103
+ }
104
+ }
105
+ } else {
106
+ _args[0] = args[0]
107
+ _args[0] = _args[0].replace('__ignoreReport__', '')
108
+ }
109
+ if (that.options.console.isOutput) {
110
+ e(..._args)
111
+ }
112
+ return
113
+ }
114
+ replaceConsole('error', args)
115
+ } catch (error) {
116
+ e('监听console.error出错', error)
117
+ }
118
+ }
119
+ console.error = _error
120
+ let w = console.warn
121
+ console.warn = function () {
122
+ replaceConsole('warn', arguments)
123
+ }
124
+ let i = console.info
125
+ console.info = function () {
126
+ replaceConsole('info', arguments)
127
+ }
128
+
129
+ /**
130
+ * 替换系统打印函数
131
+ */
132
+ function replaceConsole(type, args) {
133
+ try {
134
+ let data = []
135
+ if (args && args.length > 0) {
136
+ let argList = args
137
+
138
+ // #ifdef APP-PLUS
139
+ if (args.length == 1) {
140
+ argList = args[0].split('---COMMA---')
141
+
142
+ let endItem = argList[argList.length - 1]
143
+ if (endItem && typeof endItem == 'string' && endItem.indexOf(' at ') > -1 && endItem.indexOf(':') > -1) {
144
+ // 可能包含路径信息
145
+ let endList = endItem.split(' at ')
146
+ if (endList.length == 2) {
147
+ argList.pop()
148
+ argList.push(endList[0])
149
+ argList.push('at ' + endList[1])
150
+ }
151
+ }
152
+
153
+ argList = argList.map((item, index) => {
154
+ try {
155
+ if (typeof item == 'string') {
156
+ if (item.indexOf('---BEGIN') > -1) {
157
+ let isJson = item.indexOf('---BEGIN:JSON---') > -1
158
+ item = item.replace(/---BEGIN:.*?---/g, '')
159
+ item = item.replace(/---END:.*?---/g, '')
160
+ if (isJson) {
161
+ item = JSON.parse(item)
162
+ }
163
+ } else if (item == '---NULL---') {
164
+ item = null
165
+ } else if (item == '---UNDEFINED---') {
166
+ item = undefined
167
+ }
168
+ }
169
+ } catch (error) {
170
+ console.log('replaceConsole 尝试解析对象出错:', error)
171
+ }
172
+ return item
173
+ })
174
+ }
175
+ // #endif
176
+
177
+ let oneSize = that.options.console.cache.rowSize / argList.length
178
+ for (let i = 0; i < argList.length; i++) {
179
+ let row = jsonCompress.compressObject(argList[i], oneSize)
180
+ data.push(row)
181
+ }
182
+ } else {
183
+ data = []
184
+ }
185
+
186
+ let page = '未知'
187
+ try {
188
+ let pages = getCurrentPages()
189
+ let item = pages[pages.length - 1]
190
+ if (item && item.route) {
191
+ page = item.route
192
+ }
193
+ } catch (error) {}
194
+ that.logList.unshift({
195
+ list: data,
196
+ time: new Date().getTime(),
197
+ page,
198
+ type
199
+ })
200
+ if (that.options.console.isOutput) {
201
+ if (type == 'error') {
202
+ e(...args)
203
+ } else if (type == 'warn') {
204
+ w(...args)
205
+ } else if (type == 'info') {
206
+ i(...args)
207
+ } else {
208
+ l(...args)
209
+ }
210
+ }
211
+ } catch (error) {
212
+ if (that.options.console.isOutput) {
213
+ e('监听console出错', error)
214
+ }
215
+ }
216
+ }
217
+ } catch (error) {
218
+ console.log('console.install error', error)
219
+ }
220
+ },
221
+ /**
222
+ * 挂载监听uni自带的打印函数
223
+ */
224
+ mountUniConsole() {
225
+ let that = this
226
+ try {
227
+ let uniSysConsole = uni.__log__
228
+ try {
229
+ globalThis.consoleLog = function () {
230
+ uni.__log__('log', '未知来源', ...arguments)
231
+ }
232
+ } catch (error) {}
233
+ try {
234
+ window.consoleLog = function () {
235
+ uni.__log__('log', '未知来源', ...arguments)
236
+ }
237
+ } catch (error) {}
238
+
239
+ uni.__log__ = function (type, line, ...args) {
240
+ try {
241
+ // 处理特殊情况 "__ignoreReport__" 忽略错误日志上报
242
+ if (type == 'error') {
243
+ if (
244
+ args[0] &&
245
+ typeof args[0] == 'string' &&
246
+ (args[0] == '__ignoreReport__' || //! 忽略错误日志上报
247
+ args[0].indexOf('__ignoreReport__') == 0)
248
+ ) {
249
+ let _args = []
250
+ if (args.length > 1) {
251
+ for (let i = 0; i < args.length; i++) {
252
+ if (i != 0) {
253
+ _args.push(args[i])
254
+ }
255
+ }
256
+ } else {
257
+ _args[0] = args[0]
258
+ _args[0] = _args[0].replace('__ignoreReport__', '')
259
+ }
260
+ if (that.options.console.isOutput) {
261
+ uniSysConsole(type, line, ..._args)
262
+ }
263
+ return
264
+ }
265
+ }
266
+
267
+ let data = []
268
+ if (args && args.length > 0) {
269
+ let argList = args
270
+ let oneSize = that.options.console.cache.rowSize / argList.length
271
+ for (let i = 0; i < argList.length; i++) {
272
+ let row = jsonCompress.compressObject(argList[i], oneSize)
273
+ data.push(row)
274
+ }
275
+ } else {
276
+ data = []
277
+ }
278
+
279
+ let page = '未知'
280
+ try {
281
+ let pages = getCurrentPages()
282
+ let item = pages[pages.length - 1]
283
+ if (item && item.route) {
284
+ page = item.route
285
+ }
286
+ } catch (error) {}
287
+
288
+ data.push(line)
289
+
290
+ that.logList.unshift({
291
+ list: data,
292
+ time: new Date().getTime(),
293
+ page,
294
+ type
295
+ })
296
+ if (that.options.console.isOutput) {
297
+ uniSysConsole(type, line, ...data)
298
+ }
299
+ } catch (error) {
300
+ if (that.options.console.isOutput) {
301
+ uniSysConsole('error', '监听console出错', error)
302
+ }
303
+ }
304
+ }
305
+
306
+ /**
307
+ * 替换系统打印函数
308
+ */
309
+ function replaceConsole(type, args) {
310
+ try {
311
+ let data = []
312
+ if (args && args.length > 0) {
313
+ let argList = args
314
+
315
+ // #ifdef APP-PLUS
316
+ if (args.length == 1) {
317
+ argList = args[0].split('---COMMA---')
318
+
319
+ let endItem = argList[argList.length - 1]
320
+ if (endItem && typeof endItem == 'string' && endItem.indexOf(' at ') > -1 && endItem.indexOf(':') > -1) {
321
+ // 可能包含路径信息
322
+ let endList = endItem.split(' at ')
323
+ if (endList.length == 2) {
324
+ argList.pop()
325
+ argList.push(endList[0])
326
+ argList.push('at ' + endList[1])
327
+ }
328
+ }
329
+
330
+ argList = argList.map((item, index) => {
331
+ try {
332
+ if (typeof item == 'string') {
333
+ if (item.indexOf('---BEGIN') > -1) {
334
+ let isJson = item.indexOf('---BEGIN:JSON---') > -1
335
+ item = item.replace(/---BEGIN:.*?---/g, '')
336
+ item = item.replace(/---END:.*?---/g, '')
337
+ if (isJson) {
338
+ item = JSON.parse(item)
339
+ }
340
+ } else if (item == '---NULL---') {
341
+ item = null
342
+ } else if (item == '---UNDEFINED---') {
343
+ item = undefined
344
+ }
345
+ }
346
+ } catch (error) {
347
+ console.log('replaceConsole 尝试解析对象出错:', error)
348
+ }
349
+ return item
350
+ })
351
+ }
352
+ // #endif
353
+
354
+ let oneSize = that.options.console.cache.rowSize / argList.length
355
+ for (let i = 0; i < argList.length; i++) {
356
+ let row = jsonCompress.compressObject(argList[i], oneSize)
357
+ data.push(row)
358
+ }
359
+ } else {
360
+ data = []
361
+ }
362
+
363
+ let page = '未知'
364
+ try {
365
+ let pages = getCurrentPages()
366
+ let item = pages[pages.length - 1]
367
+ if (item && item.route) {
368
+ page = item.route
369
+ }
370
+ } catch (error) {}
371
+ that.logList.unshift({
372
+ list: data,
373
+ time: new Date().getTime(),
374
+ page,
375
+ type
376
+ })
377
+ if (that.options.console.isOutput) {
378
+ if (type == 'error') {
379
+ e(...args)
380
+ } else if (type == 'warn') {
381
+ w(...args)
382
+ } else if (type == 'info') {
383
+ i(...args)
384
+ } else {
385
+ l(...args)
386
+ }
387
+ }
388
+ } catch (error) {
389
+ if (that.options.console.isOutput) {
390
+ e('监听console出错', error)
391
+ }
392
+ }
393
+ }
394
+ } catch (error) {
395
+ console.log('console.install error', error)
396
+ }
397
+ }
398
+ }
@@ -0,0 +1,33 @@
1
+ import devCache from '../libs/devCache'
2
+ import console from './console'
3
+ import request from './request'
4
+ import storage from './storage'
5
+ import uniBus from './uniBus'
6
+ import uniListen from './uniListen'
7
+
8
+ /**
9
+ * dev调试工具初始化
10
+ */
11
+ export default function devToolsProxyInstall(options) {
12
+ try {
13
+ if (options.network && options.network.status) {
14
+ request.install()
15
+ }
16
+ if (options.console && options.console.status) {
17
+ console.install()
18
+ }
19
+ if (options.logs && options.logs.status) {
20
+ uniListen.install()
21
+ }
22
+
23
+ storage.install()
24
+
25
+ if (options.uniBus && options.uniBus.status) {
26
+ uniBus.install()
27
+ }
28
+
29
+ devCache.syncLocalCache()
30
+ } catch (error) {
31
+ console.log('devToolsProxyInstall error', error)
32
+ }
33
+ }