oxy-uni-ui 2.1.1 → 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 (183) hide show
  1. package/attributes.json +1 -1
  2. package/components/common/abstracts/variable.scss +13 -2
  3. package/components/oxy-checkbox/index.scss +37 -2
  4. package/components/oxy-sort-button/index.scss +3 -4
  5. package/components/oxy-tag/index.scss +157 -17
  6. package/components/oxy-tag/oxy-tag.vue +14 -2
  7. package/components/oxy-tag/types.ts +9 -0
  8. package/dev-tools.ts +2 -0
  9. package/devTools/components/DevToolsOverlay.vue +56 -0
  10. package/devTools/components/DevToolsUiHost.vue +589 -0
  11. package/devTools/config.js +55 -0
  12. package/devTools/core/components/mpDevBubble.vue +174 -0
  13. package/devTools/core/libs/createH5Bubble.js +156 -0
  14. package/devTools/core/libs/devCache.js +151 -0
  15. package/devTools/core/libs/devOptions.js +163 -0
  16. package/devTools/core/libs/devUi.js +219 -0
  17. package/devTools/core/libs/drawView.js +140 -0
  18. package/devTools/core/libs/errorReport.js +64 -0
  19. package/devTools/core/libs/jsonCompress.js +334 -0
  20. package/devTools/core/libs/logReport.js +59 -0
  21. package/devTools/core/libs/pageLinkList.js +125 -0
  22. package/devTools/core/libs/timeFormat.js +94 -0
  23. package/devTools/core/proxy/console.js +430 -0
  24. package/devTools/core/proxy/index.js +36 -0
  25. package/devTools/core/proxy/request.js +495 -0
  26. package/devTools/core/proxy/storage.js +113 -0
  27. package/devTools/core/proxy/uniBus.js +153 -0
  28. package/devTools/core/proxy/uniListen.js +192 -0
  29. package/devTools/core/proxy/vueMixin.js +120 -0
  30. package/devTools/index.js +168 -0
  31. package/devTools/page/components/bottomTools.vue +1046 -0
  32. package/devTools/page/components/dialog/addStorage.vue +204 -0
  33. package/devTools/page/components/dialog/createDir.vue +366 -0
  34. package/devTools/page/components/dialog/editDialog.vue +192 -0
  35. package/devTools/page/components/dialog/routeDialog.vue +184 -0
  36. package/devTools/page/components/dialog/sendRequest.vue +603 -0
  37. package/devTools/page/components/dialog/textFileEditDialog.vue +391 -0
  38. package/devTools/page/components/libs/appDelDir.js +86 -0
  39. package/devTools/page/components/libs/dirReader.js +248 -0
  40. package/devTools/page/components/libs/fileSize.js +15 -0
  41. package/devTools/page/components/libs/getRuntimeInfo.js +134 -0
  42. package/devTools/page/components/listItem/consoleItem.vue +314 -0
  43. package/devTools/page/components/listItem/errorItem.vue +292 -0
  44. package/devTools/page/components/listItem/fileSysItem.vue +533 -0
  45. package/devTools/page/components/listItem/infoList.vue +100 -0
  46. package/devTools/page/components/listItem/jsRunnerItem.vue +255 -0
  47. package/devTools/page/components/listItem/logItem.vue +193 -0
  48. package/devTools/page/components/listItem/networkItem.vue +398 -0
  49. package/devTools/page/components/listItem/objectAnalysis.vue +651 -0
  50. package/devTools/page/components/listItem/pages.vue +319 -0
  51. package/devTools/page/components/listItem/routeItem.vue +153 -0
  52. package/devTools/page/components/listItem/setting.vue +734 -0
  53. package/devTools/page/components/listItem/storageList.vue +681 -0
  54. package/devTools/page/components/listItem/tools.vue +315 -0
  55. package/devTools/page/components/listItem/vuexList.vue +599 -0
  56. package/devTools/page/components/main.vue +1867 -0
  57. package/devTools/page/components/mixins/animationControl.js +91 -0
  58. package/devTools/page/components/mixins/mp.js +83 -0
  59. package/devTools/page/components/ui/btnTabs.vue +90 -0
  60. package/devTools/page/components/ui/codeHisPicker.vue +172 -0
  61. package/devTools/page/components/ui/h5Cell.vue +13 -0
  62. package/devTools/page/components/ui/menuBtn.vue +94 -0
  63. package/devTools/page/components/ui/mobileSwiperScroll.vue +74 -0
  64. package/devTools/page/components/ui/requestSpeedLimit.vue +52 -0
  65. package/devTools/page/components/ui/requestTimeoutMock.vue +55 -0
  66. package/devTools/page/components/ui/subTitleBar.vue +101 -0
  67. package/devTools/page/static/copy.png +0 -0
  68. package/devTools/page/static/delete.png +0 -0
  69. package/devTools/page/static/fileSys/AI.png +0 -0
  70. package/devTools/page/static/fileSys/DWG.png +0 -0
  71. package/devTools/page/static/fileSys/EXE.png +0 -0
  72. package/devTools/page/static/fileSys/GIF.png +0 -0
  73. package/devTools/page/static/fileSys/HTML.png +0 -0
  74. package/devTools/page/static/fileSys/PSD.png +0 -0
  75. package/devTools/page/static/fileSys/RVT.png +0 -0
  76. package/devTools/page/static/fileSys/SKP.png +0 -0
  77. package/devTools/page/static/fileSys/SVG.png +0 -0
  78. package/devTools/page/static/fileSys/excel.png +0 -0
  79. package/devTools/page/static/fileSys/pdf.png +0 -0
  80. package/devTools/page/static/fileSys/pptl.png +0 -0
  81. package/devTools/page/static/fileSys/shipin.png +0 -0
  82. package/devTools/page/static/fileSys/tupian.png +0 -0
  83. package/devTools/page/static/fileSys/txt.png +0 -0
  84. package/devTools/page/static/fileSys/weizhiwenjian.png +0 -0
  85. package/devTools/page/static/fileSys/wenjianjia.png +0 -0
  86. package/devTools/page/static/fileSys/word.png +0 -0
  87. package/devTools/page/static/fileSys/yasuo.png +0 -0
  88. package/devTools/page/static/fileSys/yinpin.png +0 -0
  89. package/devTools/page/static/fold.png +0 -0
  90. package/devTools/page/static/menu.png +0 -0
  91. package/devTools/page/static/refresh.png +0 -0
  92. package/devTools/page/static/unfold.png +0 -0
  93. package/devTools/tools.vue +25 -0
  94. package/devTools/type/devTools.d.ts +406 -0
  95. package/oxy-dev-tools/components/DevToolsUiHost.vue +555 -0
  96. package/oxy-dev-tools/config.js +61 -0
  97. package/oxy-dev-tools/core/components/mpDevBubble.vue +176 -0
  98. package/oxy-dev-tools/core/libs/createH5Bubble.js +156 -0
  99. package/oxy-dev-tools/core/libs/devCache.js +149 -0
  100. package/oxy-dev-tools/core/libs/devOptions.js +160 -0
  101. package/oxy-dev-tools/core/libs/devUi.js +219 -0
  102. package/oxy-dev-tools/core/libs/drawView.js +144 -0
  103. package/oxy-dev-tools/core/libs/errorReport.js +60 -0
  104. package/oxy-dev-tools/core/libs/jsonCompress.js +328 -0
  105. package/oxy-dev-tools/core/libs/logReport.js +55 -0
  106. package/oxy-dev-tools/core/libs/pageLinkList.js +121 -0
  107. package/oxy-dev-tools/core/libs/timeFormat.js +93 -0
  108. package/oxy-dev-tools/core/proxy/console.js +398 -0
  109. package/oxy-dev-tools/core/proxy/index.js +33 -0
  110. package/oxy-dev-tools/core/proxy/request.js +473 -0
  111. package/oxy-dev-tools/core/proxy/storage.js +96 -0
  112. package/oxy-dev-tools/core/proxy/uniBus.js +148 -0
  113. package/oxy-dev-tools/core/proxy/uniListen.js +190 -0
  114. package/oxy-dev-tools/core/proxy/vueMixin.js +115 -0
  115. package/oxy-dev-tools/index.ts +183 -0
  116. package/oxy-dev-tools/oxy-dev-tools.vue +62 -0
  117. package/oxy-dev-tools/page/components/bottomTools.vue +933 -0
  118. package/oxy-dev-tools/page/components/dialog/addStorage.vue +184 -0
  119. package/oxy-dev-tools/page/components/dialog/createDir.vue +352 -0
  120. package/oxy-dev-tools/page/components/dialog/editDialog.vue +178 -0
  121. package/oxy-dev-tools/page/components/dialog/routeDialog.vue +170 -0
  122. package/oxy-dev-tools/page/components/dialog/sendRequest.vue +530 -0
  123. package/oxy-dev-tools/page/components/dialog/textFileEditDialog.vue +379 -0
  124. package/oxy-dev-tools/page/components/libs/appDelDir.js +77 -0
  125. package/oxy-dev-tools/page/components/libs/dirReader.js +239 -0
  126. package/oxy-dev-tools/page/components/libs/fileSize.js +15 -0
  127. package/oxy-dev-tools/page/components/libs/getRuntimeInfo.js +132 -0
  128. package/oxy-dev-tools/page/components/listItem/consoleItem.vue +292 -0
  129. package/oxy-dev-tools/page/components/listItem/errorItem.vue +268 -0
  130. package/oxy-dev-tools/page/components/listItem/fileSysItem.vue +511 -0
  131. package/oxy-dev-tools/page/components/listItem/infoList.vue +89 -0
  132. package/oxy-dev-tools/page/components/listItem/jsRunnerItem.vue +236 -0
  133. package/oxy-dev-tools/page/components/listItem/logItem.vue +185 -0
  134. package/oxy-dev-tools/page/components/listItem/networkItem.vue +362 -0
  135. package/oxy-dev-tools/page/components/listItem/objectAnalysis.vue +642 -0
  136. package/oxy-dev-tools/page/components/listItem/pages.vue +285 -0
  137. package/oxy-dev-tools/page/components/listItem/routeItem.vue +140 -0
  138. package/oxy-dev-tools/page/components/listItem/setting.vue +687 -0
  139. package/oxy-dev-tools/page/components/listItem/storageList.vue +623 -0
  140. package/oxy-dev-tools/page/components/listItem/tools.vue +273 -0
  141. package/oxy-dev-tools/page/components/listItem/vuexList.vue +559 -0
  142. package/oxy-dev-tools/page/components/main.vue +1824 -0
  143. package/oxy-dev-tools/page/components/mixins/animationControl.js +80 -0
  144. package/oxy-dev-tools/page/components/mixins/mp.js +76 -0
  145. package/oxy-dev-tools/page/components/ui/btnTabs.vue +77 -0
  146. package/oxy-dev-tools/page/components/ui/codeHisPicker.vue +161 -0
  147. package/oxy-dev-tools/page/components/ui/h5Cell.vue +13 -0
  148. package/oxy-dev-tools/page/components/ui/menuBtn.vue +87 -0
  149. package/oxy-dev-tools/page/components/ui/mobileSwiperScroll.vue +71 -0
  150. package/oxy-dev-tools/page/components/ui/requestSpeedLimit.vue +47 -0
  151. package/oxy-dev-tools/page/components/ui/requestTimeoutMock.vue +50 -0
  152. package/oxy-dev-tools/page/components/ui/subTitleBar.vue +87 -0
  153. package/oxy-dev-tools/page/static/copy.png +0 -0
  154. package/oxy-dev-tools/page/static/delete.png +0 -0
  155. package/oxy-dev-tools/page/static/fileSys/AI.png +0 -0
  156. package/oxy-dev-tools/page/static/fileSys/DWG.png +0 -0
  157. package/oxy-dev-tools/page/static/fileSys/EXE.png +0 -0
  158. package/oxy-dev-tools/page/static/fileSys/GIF.png +0 -0
  159. package/oxy-dev-tools/page/static/fileSys/HTML.png +0 -0
  160. package/oxy-dev-tools/page/static/fileSys/PSD.png +0 -0
  161. package/oxy-dev-tools/page/static/fileSys/RVT.png +0 -0
  162. package/oxy-dev-tools/page/static/fileSys/SKP.png +0 -0
  163. package/oxy-dev-tools/page/static/fileSys/SVG.png +0 -0
  164. package/oxy-dev-tools/page/static/fileSys/excel.png +0 -0
  165. package/oxy-dev-tools/page/static/fileSys/pdf.png +0 -0
  166. package/oxy-dev-tools/page/static/fileSys/pptl.png +0 -0
  167. package/oxy-dev-tools/page/static/fileSys/shipin.png +0 -0
  168. package/oxy-dev-tools/page/static/fileSys/tupian.png +0 -0
  169. package/oxy-dev-tools/page/static/fileSys/txt.png +0 -0
  170. package/oxy-dev-tools/page/static/fileSys/weizhiwenjian.png +0 -0
  171. package/oxy-dev-tools/page/static/fileSys/wenjianjia.png +0 -0
  172. package/oxy-dev-tools/page/static/fileSys/word.png +0 -0
  173. package/oxy-dev-tools/page/static/fileSys/yasuo.png +0 -0
  174. package/oxy-dev-tools/page/static/fileSys/yinpin.png +0 -0
  175. package/oxy-dev-tools/page/static/fold.png +0 -0
  176. package/oxy-dev-tools/page/static/menu.png +0 -0
  177. package/oxy-dev-tools/page/static/refresh.png +0 -0
  178. package/oxy-dev-tools/page/static/unfold.png +0 -0
  179. package/oxy-dev-tools/tools.vue +22 -0
  180. package/oxy-dev-tools/type/devTools.d.ts +406 -0
  181. package/package.json +1 -1
  182. package/tags.json +1 -1
  183. package/web-types.json +1 -1
@@ -0,0 +1,255 @@
1
+ <template>
2
+ <view class="jsRunnerItem">
3
+ <view class="card">
4
+ <view class="codeInput">
5
+ <view class="sectionTag input">输入</view>
6
+ <image
7
+ src="@/devTools/page/static/fold.png"
8
+ class="fold-left"
9
+ />
10
+ <view class="codeView">
11
+ <text class="codeText">{{ item.code }}</text>
12
+ </view>
13
+ </view>
14
+
15
+ <view class="codeResult">
16
+ <view class="sectionTag output">输出</view>
17
+ <image
18
+ src="@/devTools/page/static/fold.png"
19
+ class="fold-right"
20
+ />
21
+ <view class="codeResultView">
22
+ <template v-if="item.isEnd">
23
+ <template v-if="isObj(item.result)">
24
+ <objectAnalysis
25
+ :data="item.result"
26
+ :showObjProto="true"
27
+ :width="610"
28
+ />
29
+ </template>
30
+ <template v-else>
31
+ <view>
32
+ <text
33
+ class="context"
34
+ :class="[getTypeClass(item.result)]"
35
+ selectable
36
+ >
37
+ {{ getText(item.result) }}
38
+ </text>
39
+ </view>
40
+ </template>
41
+ </template>
42
+ <text
43
+ v-else
44
+ class="loadingOutput"
45
+ >
46
+ 运行中...
47
+ </text>
48
+ </view>
49
+ </view>
50
+ </view>
51
+ </view>
52
+ </template>
53
+ <script>
54
+ import objectAnalysis from "./objectAnalysis.vue";
55
+ export default {
56
+ components: {
57
+ objectAnalysis,
58
+ },
59
+ props: {
60
+ /**
61
+ * 单行数据
62
+ */
63
+ item: {
64
+ type: Object,
65
+ default() {
66
+ return {
67
+ id: "",
68
+ code: "",
69
+ result: "",
70
+ isEnd: false,
71
+ };
72
+ },
73
+ },
74
+ },
75
+ methods: {
76
+ /**
77
+ * 是否为对象类型
78
+ */
79
+ isObj(data) {
80
+ return typeof data == "object" && data != null && data != undefined;
81
+ },
82
+ /**
83
+ * 获取对应的类型样式
84
+ */
85
+ getTypeClass(obj) {
86
+ try {
87
+ let type = typeof obj;
88
+
89
+ if (type == "string") {
90
+ if (obj.indexOf("at ") == 0) {
91
+ return "t-line";
92
+ } else if (obj === undefined || obj == "undefined") {
93
+ return "t-undefined";
94
+ } else if (obj === null || obj == "null") {
95
+ return "t-null";
96
+ } else if (obj == "true" || obj == "false") {
97
+ return "t-boolean";
98
+ } else if (Number.isFinite(Number(obj))) {
99
+ return "t-number";
100
+ }
101
+ } else if (type == "function") {
102
+ return "t-function";
103
+ }
104
+ return "t-" + type;
105
+ } catch (error) {}
106
+ return "t-string";
107
+ },
108
+ /**
109
+ * 获取数据文字
110
+ */
111
+ getText(data) {
112
+ if (data === null) {
113
+ return "null";
114
+ }
115
+ switch (typeof data) {
116
+ case "string":
117
+ // return data.replace(/\n/g, "");
118
+ return data;
119
+ case "boolean":
120
+ return data ? "true" : "false";
121
+ case "undefined":
122
+ return "undefined";
123
+ case "function":
124
+ return data.toString();
125
+ case "symbol":
126
+ return "js:symbol";
127
+ default:
128
+ return data;
129
+ }
130
+ },
131
+ },
132
+ };
133
+ </script>
134
+ <style lang="scss" scoped>
135
+ .jsRunnerItem {
136
+ width: 100%;
137
+ box-sizing: border-box;
138
+ padding: 10rpx 20rpx;
139
+ .card {
140
+ width: 100%;
141
+ box-sizing: border-box;
142
+ border-radius: 16rpx;
143
+ padding: 14rpx 16rpx 12rpx;
144
+ border: 1px solid rgba(148, 163, 184, 0.2);
145
+ background: #fff;
146
+ box-shadow: 0 4rpx 16rpx rgba(15, 23, 42, 0.05);
147
+ }
148
+
149
+ .codeInput {
150
+ display: flex;
151
+ flex-direction: row;
152
+ align-items: flex-start;
153
+ margin-bottom: 12rpx;
154
+ .sectionTag {
155
+ height: 32rpx;
156
+ min-width: 50rpx;
157
+ padding: 0 8rpx;
158
+ border-radius: 999rpx;
159
+ font-size: 18rpx;
160
+ line-height: 32rpx;
161
+ text-align: center;
162
+ color: #1d4ed8;
163
+ background: #dbeafe;
164
+ margin-right: 8rpx;
165
+ &.output {
166
+ color: #0f766e;
167
+ background: #ccfbf1;
168
+ }
169
+ }
170
+ .codeView {
171
+ flex: 1;
172
+ min-width: 0;
173
+ display: flex;
174
+ flex-direction: column;
175
+ .codeText {
176
+ font-size: 23rpx;
177
+ color: #334155;
178
+ line-height: 34rpx;
179
+ word-break: break-all;
180
+ }
181
+ }
182
+ }
183
+ .codeResult {
184
+ display: flex;
185
+ flex-direction: row;
186
+ align-items: flex-start;
187
+ border-top: 1px solid rgba(148, 163, 184, 0.16);
188
+ padding-top: 12rpx;
189
+ .sectionTag {
190
+ height: 32rpx;
191
+ min-width: 50rpx;
192
+ padding: 0 8rpx;
193
+ border-radius: 999rpx;
194
+ font-size: 18rpx;
195
+ line-height: 32rpx;
196
+ text-align: center;
197
+ color: #0f766e;
198
+ background: #ccfbf1;
199
+ margin-right: 8rpx;
200
+ }
201
+ .codeResultView {
202
+ flex: 1;
203
+ min-width: 0;
204
+ display: flex;
205
+ flex-direction: column;
206
+ .loadingOutput {
207
+ font-size: 22rpx;
208
+ color: #94a3b8;
209
+ line-height: 32rpx;
210
+ }
211
+ .context {
212
+ font-size: 23rpx;
213
+ color: rgb(227, 54, 46);
214
+ line-height: 34rpx;
215
+ word-break: break-all;
216
+ &.t-number {
217
+ color: rgb(8, 66, 160);
218
+ }
219
+ &.t-boolean {
220
+ color: rgb(133, 2, 255);
221
+ }
222
+ &.t-string {
223
+ color: rgb(227, 54, 46);
224
+ }
225
+ &.t-undefined {
226
+ color: rgba(0, 0, 0, 0.2);
227
+ }
228
+ &.t-null {
229
+ color: rgba(0, 0, 0, 0.2);
230
+ }
231
+ &.t-line {
232
+ color: rgba(0, 0, 0, 0.5);
233
+ }
234
+ &.t-function {
235
+ color: rgb(121, 38, 117);
236
+ }
237
+ }
238
+ }
239
+ }
240
+ }
241
+ .fold-left {
242
+ transform: rotate(90deg);
243
+ width: 24rpx;
244
+ height: 24rpx;
245
+ margin-right: 10rpx;
246
+ margin-top: 4rpx;
247
+ }
248
+ .fold-right {
249
+ transform: rotate(-90deg);
250
+ width: 24rpx;
251
+ height: 24rpx;
252
+ margin-right: 10rpx;
253
+ margin-top: 4rpx;
254
+ }
255
+ </style>
@@ -0,0 +1,193 @@
1
+ <template>
2
+ <view class="logItem">
3
+ <view class="card">
4
+ <view class="content">
5
+ <view>
6
+ <text class="text-xs">{{ item.m }}</text>
7
+ </view>
8
+ <view class="msgBar">
9
+ <text class="typeTag">log</text>
10
+ <text class="time">{{ item.date }}</text>
11
+ </view>
12
+ <view class="actionBar">
13
+ <view
14
+ class="actionBtn"
15
+ @click.stop="copyItem"
16
+ >
17
+ <text class="actionText">复制</text>
18
+ </view>
19
+ <view
20
+ class="actionBtn more"
21
+ @click.stop="openMenu"
22
+ >
23
+ <text class="actionText">更多</text>
24
+ </view>
25
+ </view>
26
+ </view>
27
+ </view>
28
+ </view>
29
+ </template>
30
+ <script>
31
+ import devCache from "../../../core/libs/devCache";
32
+ import devUi from "../../../core/libs/devUi.js";
33
+ export default {
34
+ props: {
35
+ /**
36
+ * logs单行数据
37
+ */
38
+ item: {
39
+ type: Object,
40
+ default() {
41
+ return {
42
+ date: "",
43
+ m: "", //日志内容
44
+ };
45
+ },
46
+ },
47
+ },
48
+ methods: {
49
+ /**
50
+ * 复制
51
+ */
52
+ copyItem() {
53
+ this.copyToClipboard(this.item.m);
54
+ },
55
+ copyToClipboard(data) {
56
+ uni.setClipboardData({
57
+ data,
58
+ success: () => {
59
+ devUi.showToast({
60
+ title: "复制成功",
61
+ icon: "success",
62
+ });
63
+ },
64
+ });
65
+ },
66
+ /**
67
+ * 更多菜单
68
+ */
69
+ openMenu() {
70
+ let that = this;
71
+
72
+ let menu = [
73
+ {
74
+ text: `复制日志信息`,
75
+ click() {
76
+ that.copyToClipboard(JSON.stringify(that.item));
77
+ },
78
+ },
79
+ {
80
+ text: `删除此记录`,
81
+ click() {
82
+ uni.$emit("devTools_delLog", that.item);
83
+ let logs = devCache.get("logReport");
84
+ if (!logs) logs = [];
85
+ let i = logs.findIndex(
86
+ (x) => x.m == that.item.m && x.t == that.item.t
87
+ );
88
+ if (i != -1) {
89
+ logs.splice(i, 1);
90
+ devCache.set("logReport", logs);
91
+ }
92
+ devUi.showToast({
93
+ title: "删除成功!",
94
+ icon: "success",
95
+ });
96
+ },
97
+ },
98
+ ];
99
+
100
+ devUi.showActionSheet({
101
+ itemList: menu.map((x) => x.text),
102
+ success({ tapIndex }) {
103
+ menu[tapIndex].click();
104
+ },
105
+ });
106
+ },
107
+ },
108
+ };
109
+ </script>
110
+ <style lang="scss" scoped>
111
+ .logItem {
112
+ width: 100%;
113
+ box-sizing: border-box;
114
+ padding: 10rpx 20rpx;
115
+ .card {
116
+ width: 100%;
117
+ box-sizing: border-box;
118
+ border-radius: 16rpx;
119
+ padding: 14rpx 16rpx 12rpx;
120
+ border: 1px solid rgba(148, 163, 184, 0.2);
121
+ background: #fff;
122
+ box-shadow: 0 4rpx 16rpx rgba(15, 23, 42, 0.05);
123
+ }
124
+ .content {
125
+ display: flex;
126
+ flex-direction: column;
127
+ gap: 8rpx;
128
+ .context {
129
+ font-size: 20rpx;
130
+ color: #333;
131
+ line-height: 24rpx;
132
+ }
133
+ .msgBar {
134
+ display: flex;
135
+ flex-direction: row;
136
+ align-items: center;
137
+ gap: 10rpx;
138
+ .typeTag {
139
+ font-size: 20rpx;
140
+ line-height: 28rpx;
141
+ padding: 2rpx 10rpx;
142
+ border-radius: 999rpx;
143
+ color: #1e3a8a;
144
+ background: #dbeafe;
145
+ }
146
+ .time {
147
+ font-size: 20rpx;
148
+ color: #64748b;
149
+ }
150
+ .page {
151
+ font-size: 16rpx;
152
+ color: #888;
153
+ margin-left: 20rpx;
154
+ }
155
+ }
156
+ .actionBar {
157
+ margin-top: 4rpx;
158
+ display: flex;
159
+ flex-direction: row;
160
+ justify-content: flex-end;
161
+ gap: 12rpx;
162
+ .actionBtn {
163
+ height: 42rpx;
164
+ border-radius: 999rpx;
165
+ border: 1px solid #bfdbfe;
166
+ background: #eff6ff;
167
+ padding: 0 14rpx;
168
+ display: flex;
169
+ align-items: center;
170
+ gap: 6rpx;
171
+ &:active {
172
+ background: #dbeafe;
173
+ }
174
+ &.more {
175
+ border-color: #cbd5e1;
176
+ background: #f8fafc;
177
+ }
178
+ .actionText {
179
+ font-size: 20rpx;
180
+ line-height: 20rpx;
181
+ color: #1e3a8a;
182
+ }
183
+ }
184
+ }
185
+ }
186
+ }
187
+ .text-xs {
188
+ font-size: 23rpx;
189
+ line-height: 32rpx;
190
+ color: #1f2937;
191
+ word-break: break-all;
192
+ }
193
+ </style>