@jx3box/jx3box-ui 2.3.25 → 2.3.27

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jx3box/jx3box-ui",
3
- "version": "2.3.25",
3
+ "version": "2.3.27",
4
4
  "description": "JX3BOX Vue3 UI",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -3,7 +3,7 @@
3
3
  append-to-body
4
4
  v-model="visible"
5
5
  custom-class="c-alternate"
6
- width="320px"
6
+ width="360px"
7
7
  :title="$jx3boxT('jx3boxUi.commonHeader.alternate.title', '切换马甲')"
8
8
  >
9
9
  <div class="c-alternate__content">
@@ -218,33 +218,40 @@ export default {
218
218
  <style lang="less">
219
219
  /* src/header/alternate.vue */
220
220
  .c-alternate {
221
+ border-radius: 6px;
222
+
221
223
  .el-dialog__title {
222
- .fz(12px);
224
+ color: #303133;
225
+ .fz(16px);
226
+ font-weight: 600;
223
227
  }
224
228
  .el-dialog__body {
225
229
  padding: 0;
226
230
  }
227
231
  .el-dialog__header {
228
- // padding: 10px;
229
- border-bottom: #dcdfe6 1px solid;
232
+ margin-right: 0;
233
+ padding: 16px 20px;
234
+ border-bottom: 1px solid #ebeef5;
230
235
  }
231
236
  }
232
237
 
233
238
  .c-alternate__content {
234
- max-height: 600px;
239
+ max-height: min(600px, calc(100vh - 120px));
235
240
  overflow-y: auto;
236
241
 
237
242
  .c-alternate-item {
238
243
  .flex;
239
- gap: 10px;
244
+ align-items: center;
245
+ gap: 12px;
240
246
  .pointer;
241
- padding: 10px;
247
+ padding: 12px 16px;
242
248
  .pr;
243
- border-bottom: 1px solid #eee;
249
+ border-bottom: 1px solid #ebeef5;
244
250
  .fz(13px);
251
+ transition: background-color 0.15s ease;
245
252
 
246
253
  &:hover {
247
- background-color: @bg-light;
254
+ background-color: @bg-gray;
248
255
 
249
256
  .u-remove {
250
257
  display: block;
@@ -254,11 +261,12 @@ export default {
254
261
 
255
262
  .u-remove {
256
263
  .pa;
257
- right: 10px;
258
- top: 5px;
259
- color: #999;
264
+ right: 14px;
265
+ top: 50%;
266
+ color: #909399;
260
267
  .pointer;
261
268
  font-size: 16px;
269
+ transform: translateY(-50%);
262
270
 
263
271
  &:hover {
264
272
  color: #333;
@@ -270,9 +278,12 @@ export default {
270
278
  .pr;
271
279
  }
272
280
  .u-avatar {
281
+ display: block;
273
282
  width: 50px;
274
283
  height: 50px;
284
+ background-color: #fff;
275
285
  border-radius: 50%;
286
+ object-fit: cover;
276
287
  }
277
288
  .u-active {
278
289
  .pa;
@@ -280,18 +291,26 @@ export default {
280
291
  top: -6px;
281
292
  width: 20px;
282
293
  height: 20px;
283
- // fill: #fff;
284
294
  color: #0dbc19;
295
+ background-color: #fff;
296
+ border-radius: 50%;
297
+ box-shadow: 0 0 0 2px #fff;
285
298
  }
286
299
 
287
300
  .m-misc {
301
+ min-width: 0;
288
302
  .flex;
289
303
  flex-direction: column;
290
- gap: 10px;
304
+ gap: 4px;
305
+ }
306
+ .u-name,
307
+ .u-time {
308
+ color: #606266;
309
+ line-height: 20px;
291
310
  }
292
311
  .u-label {
293
312
  font-size: 12px;
294
- color: #999;
313
+ color: #909399;
295
314
  }
296
315
 
297
316
  .u-extra {
@@ -306,17 +325,16 @@ export default {
306
325
  }
307
326
 
308
327
  .c-alternate-btn {
309
- // padding: 10px;
310
328
  text-align: center;
311
329
  .pointer;
312
- // width: 100%;
313
- // border-radius: 0;
314
330
  .size(100%,74px);
315
331
  .fz(40px,74px);
316
- color: #999;
332
+ color: #909399;
333
+ transition: background-color 0.15s ease, color 0.15s ease;
334
+
317
335
  &:hover {
318
- background-color: @bg-light;
319
- color: #888;
336
+ background-color: @bg-gray;
337
+ color: #606266;
320
338
  }
321
339
  }
322
340
  }
@@ -219,13 +219,20 @@ export default {
219
219
  .flex;
220
220
  align-items: center;
221
221
  gap: 4px;
222
+ transition: background-color 0.15s ease;
222
223
 
223
224
  &:hover {
224
225
  .u-menu-icon {
225
226
  filter: invert(100%) sepia(0%) saturate(5658%) hue-rotate(215deg) brightness(114%) contrast(106%);
226
227
  }
227
228
  .u-new {
228
- color: #fff;
229
+ background-color: #fff;
230
+ color: @v4primary-dark;
231
+ box-shadow: inset 0 0 0 1px fade(@v4primary-dark, 20%);
232
+ }
233
+ .u-new--important {
234
+ color: #f56c6c;
235
+ box-shadow: inset 0 0 0 1px fade(#f56c6c, 20%);
229
236
  }
230
237
  }
231
238
  }
@@ -260,11 +267,14 @@ export default {
260
267
  }
261
268
 
262
269
  .u-new {
263
- font-size: 12px;
270
+ font-size: 11px;
271
+ line-height: 18px;
264
272
  margin-left: 4px;
265
273
  background-color: @v4primary-dark;
266
274
  color: #fff;
267
- padding: 0px 6px;
275
+ padding: 0 5px;
276
+ border-radius: 2px;
277
+ transition: color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
268
278
  }
269
279
 
270
280
  .u-new--important {
@@ -0,0 +1,16 @@
1
+ import ManagePanelStage from "./ManagePanelStage.vue";
2
+
3
+ export default {
4
+ title: "Layout/CommonHeader/ManagePanel",
5
+ component: ManagePanelStage,
6
+ parameters: {
7
+ layout: "fullscreen",
8
+ },
9
+ };
10
+
11
+ export const Refined = {
12
+ render: () => ({
13
+ components: { ManagePanelStage },
14
+ template: "<ManagePanelStage />",
15
+ }),
16
+ };
@@ -0,0 +1,135 @@
1
+ <template>
2
+ <div class="manage-preview">
3
+ <div class="manage-preview__header">
4
+ <div class="manage-preview__brand">JX3BOX</div>
5
+ <div class="manage-preview__tools">
6
+ <span class="manage-preview__tool">◯</span>
7
+ <span class="manage-preview__tool">◇</span>
8
+ <span class="manage-preview__tool">♢</span>
9
+ <Manage
10
+ ref="manage"
11
+ :header-config-loaded="false"
12
+ :account-ready-incomplete="true"
13
+ :account-ready-issues="['contact']"
14
+ />
15
+ <span class="manage-preview__tool">文</span>
16
+ <span class="manage-preview__avatar">侠</span>
17
+ </div>
18
+ </div>
19
+ <main class="manage-preview__body">
20
+ <div class="manage-preview__eyebrow">COMMON HEADER</div>
21
+ <h1>公共头扩展菜单</h1>
22
+ <p>重新梳理信息密度、状态层级与悬浮反馈后的实际组件预览。</p>
23
+ </main>
24
+ </div>
25
+ </template>
26
+
27
+ <script>
28
+ import Manage from "../../header/manage.vue";
29
+
30
+ export default {
31
+ name: "ManagePanelStage",
32
+ components: { Manage },
33
+ mounted() {
34
+ this.$refs.manage.panel = [
35
+ {
36
+ key: "featureUpdate",
37
+ label: "功能更新",
38
+ link: "javascript:;",
39
+ icon: "feature.svg",
40
+ remark: "feature",
41
+ meta: "storybook-preview",
42
+ },
43
+ ];
44
+ this.$refs.manage.showPop = true;
45
+ },
46
+ };
47
+ </script>
48
+
49
+ <style lang="less">
50
+ .manage-preview {
51
+ min-height: 100vh;
52
+ background:
53
+ radial-gradient(circle at 72% 8%, rgba(79, 70, 229, 0.09), transparent 26rem),
54
+ #f5f7fa;
55
+ }
56
+
57
+ .manage-preview__header {
58
+ height: 64px;
59
+ display: flex;
60
+ align-items: center;
61
+ justify-content: space-between;
62
+ box-sizing: border-box;
63
+ padding: 0 32px;
64
+ color: #fff;
65
+ background: #202124;
66
+ box-shadow: 0 4px 18px rgba(15, 23, 42, 0.2);
67
+ }
68
+
69
+ .manage-preview__brand {
70
+ font-size: 14px;
71
+ font-weight: 800;
72
+ letter-spacing: 0.12em;
73
+ }
74
+
75
+ .manage-preview__tools {
76
+ height: 100%;
77
+ display: flex;
78
+ align-items: center;
79
+ gap: 8px;
80
+ }
81
+
82
+ .manage-preview__tool {
83
+ width: 38px;
84
+ height: 38px;
85
+ display: flex;
86
+ align-items: center;
87
+ justify-content: center;
88
+ color: rgba(255, 255, 255, 0.88);
89
+ font-size: 19px;
90
+ }
91
+
92
+ .manage-preview__avatar {
93
+ width: 34px;
94
+ height: 34px;
95
+ display: flex;
96
+ align-items: center;
97
+ justify-content: center;
98
+ margin-left: 4px;
99
+ border: 2px solid rgba(255, 255, 255, 0.75);
100
+ border-radius: 50%;
101
+ color: #7c2d12;
102
+ background: #fef3c7;
103
+ font-size: 13px;
104
+ font-weight: 700;
105
+ }
106
+
107
+ .manage-preview .c-header-manage .u-pop-content {
108
+ visibility: visible;
109
+ opacity: 1;
110
+ }
111
+
112
+ .manage-preview__body {
113
+ padding: 112px 9vw;
114
+ }
115
+
116
+ .manage-preview__eyebrow {
117
+ color: #4f46e5;
118
+ font-size: 12px;
119
+ font-weight: 800;
120
+ letter-spacing: 0.14em;
121
+ }
122
+
123
+ .manage-preview__body h1 {
124
+ margin: 12px 0 0;
125
+ color: #111827;
126
+ font-size: 34px;
127
+ line-height: 1.2;
128
+ }
129
+
130
+ .manage-preview__body p {
131
+ margin: 14px 0 0;
132
+ color: #6b7280;
133
+ font-size: 15px;
134
+ }
135
+ </style>