@jetlinks-web/components 2.0.30 → 2.0.32

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 (46) hide show
  1. package/es/CardSelect/style/index.css +24 -0
  2. package/es/CardSelect/style/index.less +1 -1
  3. package/es/Ellipsis/style/index.css +17 -0
  4. package/es/Ellipsis/style/index.less +20 -0
  5. package/es/FullPage/FullPage.js +1 -1
  6. package/es/ProLayout/Basic/BasicLayout.js +2 -0
  7. package/es/ProLayout/Basic/BasicLayout.less +66 -0
  8. package/es/ProLayout/Basic/Header.js +1 -0
  9. package/es/ProLayout/Basic/Header.less +8 -0
  10. package/es/ProLayout/PageContainer/index.less +103 -0
  11. package/es/ProLayout/SiderMenu/index.less +231 -0
  12. package/es/ProLayout/TopHeader/index.js +8 -1
  13. package/es/ProLayout/TopHeader/index.less +174 -0
  14. package/es/ProLayout/style/default.less +4 -0
  15. package/es/ProLayout/style/style.less +7 -0
  16. package/es/ProTable/style/index.css +69 -0
  17. package/es/ProTable/style/index.less +92 -0
  18. package/es/Search/Advanced/SaveHistory.js +1 -1
  19. package/es/Search/Item.js +1 -1
  20. package/es/Search/Search.js +1 -1
  21. package/es/Search/style/Item.less +33 -0
  22. package/es/Search/style/Search.less +179 -0
  23. package/lib/CardSelect/style/index.css +24 -0
  24. package/lib/CardSelect/style/index.less +1 -1
  25. package/lib/Ellipsis/style/index.css +17 -0
  26. package/lib/Ellipsis/style/index.less +20 -0
  27. package/lib/FullPage/FullPage.js +1 -1
  28. package/lib/ProLayout/Basic/BasicLayout.js +2 -0
  29. package/lib/ProLayout/Basic/BasicLayout.less +66 -0
  30. package/lib/ProLayout/Basic/Header.js +1 -0
  31. package/lib/ProLayout/Basic/Header.less +8 -0
  32. package/lib/ProLayout/PageContainer/index.less +103 -0
  33. package/lib/ProLayout/SiderMenu/index.less +231 -0
  34. package/lib/ProLayout/TopHeader/index.js +8 -1
  35. package/lib/ProLayout/TopHeader/index.less +174 -0
  36. package/lib/ProLayout/style/default.less +4 -0
  37. package/lib/ProLayout/style/style.less +7 -0
  38. package/lib/ProTable/style/index.css +69 -0
  39. package/lib/ProTable/style/index.less +92 -0
  40. package/lib/Search/Advanced/SaveHistory.js +1 -1
  41. package/lib/Search/Item.js +1 -1
  42. package/lib/Search/Search.js +1 -1
  43. package/lib/Search/style/Item.less +33 -0
  44. package/lib/Search/style/Search.less +179 -0
  45. package/lib/style/components.less +4 -0
  46. package/package.json +3 -3
@@ -0,0 +1,24 @@
1
+ /* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
2
+ /* stylelint-disable no-duplicate-selectors */
3
+ /* stylelint-disable */
4
+ /* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
5
+ .j-card-select {
6
+ display: grid;
7
+ gap: 12px;
8
+ }
9
+ .j-card-select .j-card-select-item {
10
+ padding: 12px;
11
+ border: 1px solid #e6e6e6;
12
+ border-radius: 2px;
13
+ cursor: pointer;
14
+ }
15
+ .j-card-select .j-card-select-item.active {
16
+ border-color: #1890ff;
17
+ }
18
+ .j-card-select .j-card-select-item.disabled {
19
+ cursor: not-allowed;
20
+ opacity: 0.75;
21
+ }
22
+ .j-card-select .j-card-select-item .j-card-select-describe {
23
+ color: #263237;
24
+ }
@@ -1,4 +1,4 @@
1
- @import 'ant-design-vue/es/style/themes/index.less';
1
+ @import '../../style/variable.less';
2
2
 
3
3
  .j-card-select {
4
4
  display: grid;
@@ -0,0 +1,17 @@
1
+ .j-ellipsis {
2
+ overflow: hidden;
3
+ vertical-align: bottom;
4
+ }
5
+ .j-ellipsis-cursor {
6
+ cursor: pointer;
7
+ }
8
+ .j-ellipsis-line-clamp {
9
+ display: -webkit-box;
10
+ -webkit-box-orient: vertical;
11
+ word-break: break-all;
12
+ }
13
+ .j-ellipsis-deep {
14
+ max-height: 380px;
15
+ -webkit-line-clamp: 17;
16
+ text-overflow: ellipsis;
17
+ }
@@ -0,0 +1,20 @@
1
+ .j-ellipsis {
2
+ overflow: hidden;
3
+ vertical-align: bottom;
4
+ }
5
+
6
+ .j-ellipsis-cursor {
7
+ cursor: pointer;
8
+ }
9
+
10
+ .j-ellipsis-line-clamp {
11
+ display: -webkit-box;
12
+ -webkit-box-orient: vertical;
13
+ word-break: break-all;
14
+ }
15
+
16
+ .j-ellipsis-deep {
17
+ max-height: 380px;
18
+ -webkit-line-clamp: 17;
19
+ text-overflow: ellipsis;
20
+ }
@@ -6,7 +6,7 @@
6
6
  } */
7
7
  import { defineComponent as _defineComponent } from 'vue';
8
8
  import { unref as _unref, renderSlot as _renderSlot, createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from "vue";
9
- const _withScopeId = n => (_pushScopeId("data-v-1715740839180"), n = n(), _popScopeId(), n);
9
+ const _withScopeId = n => (_pushScopeId("data-v-1716194136622"), n = n(), _popScopeId(), n);
10
10
  const _hoisted_1 = { class: "full-page-warp-content" };
11
11
  import { ref } from 'vue';
12
12
  import { useElementBounding } from '@vueuse/core';
@@ -210,6 +210,7 @@ export default defineComponent({
210
210
  var linksRender = getSlot(slots, props, 'linksRender');
211
211
  var logoRender = getSlot(slots, props, 'logoRender');
212
212
  var historyRender = getSlot(slots, props, 'historyRender');
213
+ var topHeaderMenuRender = getSlot(slots, props, 'topHeaderMenuRender');
213
214
  var headerDom = computed(function () {
214
215
  return headerRender(_objectSpread(_objectSpread({}, props), {}, {
215
216
  menuItemRender: menuItemRender,
@@ -228,6 +229,7 @@ export default defineComponent({
228
229
  headerContentRender: headerContentRender,
229
230
  logo: logoRender || props.logo,
230
231
  headerRender: customHeaderRender,
232
+ topHeaderMenuRender: topHeaderMenuRender,
231
233
  theme: (props.theme || 'dark').toLocaleLowerCase().includes('dark') ? 'dark' : 'light'
232
234
  }), props.matchMenuKeys);
233
235
  });
@@ -0,0 +1,66 @@
1
+ @import '../style/default.less';
2
+
3
+ .@{basicLayout-prefix-cls} {
4
+ // BFC
5
+ display: flex;
6
+ flex-direction: column;
7
+ width: 100%;
8
+ min-height: 100%;
9
+
10
+ .@{ant-prefix}-layout-header {
11
+ &.@{ant-prefix}-pro-fixed-header {
12
+ position: fixed;
13
+ top: 0;
14
+ }
15
+ }
16
+
17
+ &-content {
18
+ position: relative;
19
+ margin: 24px;
20
+
21
+ .@{ant-prefix}-pro-page-container {
22
+ margin: -24px -24px 0;
23
+ }
24
+
25
+ &-disable-margin {
26
+ margin: 0;
27
+
28
+ .@{ant-prefix}-pro-page-container {
29
+ margin: 0;
30
+ }
31
+ }
32
+
33
+ > .@{ant-prefix}-layout {
34
+ max-height: 100%;
35
+ }
36
+ }
37
+
38
+ // children should support fixed
39
+ .@{basicLayout-prefix-cls}-is-children.@{basicLayout-prefix-cls}-fix-siderbar {
40
+ height: 100vh;
41
+ overflow: hidden;
42
+ transform: rotate(0);
43
+ }
44
+
45
+ .@{basicLayout-prefix-cls}-has-header {
46
+ // tech-page-container
47
+ .tech-page-container {
48
+ height: calc(100vh - @pro-layout-header-height);
49
+ }
50
+
51
+ .@{basicLayout-prefix-cls}-is-children.@{basicLayout-prefix-cls}-has-header {
52
+ .tech-page-container {
53
+ height: calc(100vh - @pro-layout-header-height -
54
+ @pro-layout-header-height);
55
+ }
56
+
57
+ .@{basicLayout-prefix-cls}-is-children {
58
+ min-height: calc(100vh - @pro-layout-header-height);
59
+
60
+ &.@{basicLayout-prefix-cls}-fix-siderbar {
61
+ height: calc(100vh - @pro-layout-header-height);
62
+ }
63
+ }
64
+ }
65
+ }
66
+ }
@@ -53,6 +53,7 @@ export default defineComponent({
53
53
  var className = computed(function () {
54
54
  return _defineProperty(_defineProperty({}, "".concat(prefixCls.value, "-fixed-header"), needFixedHeader.value), "".concat(prefixCls.value, "-top-menu"), isTop.value);
55
55
  });
56
+ var headerMenuRender = computed(function () {});
56
57
  var renderContent = function renderContent() {
57
58
  var defaultDom = _createVNode(TopNavHeader, _objectSpread(_objectSpread({
58
59
  "theme": theme.value,
@@ -0,0 +1,8 @@
1
+ @import '../style/default.less';
2
+
3
+ @pro-layout-fixed-header-prefix-cls: ~'@{ant-prefix}-pro-fixed-header';
4
+
5
+ .@{pro-layout-fixed-header-prefix-cls} {
6
+ z-index: 9;
7
+ width: 100%;
8
+ }
@@ -0,0 +1,103 @@
1
+ @import '../style/default.less';
2
+
3
+ @pro-layout-page-container: ~'@{ant-prefix}-pro-page-container';
4
+
5
+ .@{pro-layout-page-container}-children-content {
6
+ margin: 24px 24px 0;
7
+ }
8
+
9
+ .@{pro-layout-page-container} {
10
+ &-warp {
11
+ background-color: @component-background;
12
+ .@{ant-prefix}-tabs-bar {
13
+ margin: 0;
14
+ }
15
+ }
16
+ &-ghost {
17
+ .@{pro-layout-page-container}-warp {
18
+ background-color: @component-background;
19
+ }
20
+ }
21
+ }
22
+
23
+ .@{pro-layout-page-container}-main {
24
+ .@{pro-layout-page-container}-detail {
25
+ display: flex;
26
+ }
27
+
28
+ .@{pro-layout-page-container}-row {
29
+ display: flex;
30
+ width: 100%;
31
+ }
32
+
33
+ .@{pro-layout-page-container}-title-content {
34
+ margin-bottom: 16px;
35
+ }
36
+
37
+ .@{pro-layout-page-container}-title,
38
+ .@{pro-layout-page-container}-content {
39
+ flex: auto;
40
+ }
41
+
42
+ .@{pro-layout-page-container}-extraContent,
43
+ .@{pro-layout-page-container}-main {
44
+ flex: 0 1 auto;
45
+ }
46
+
47
+ .@{pro-layout-page-container}-main {
48
+ width: 100%;
49
+ }
50
+
51
+ .@{pro-layout-page-container}-title {
52
+ margin-bottom: 16px;
53
+ }
54
+
55
+ .@{pro-layout-page-container}-logo {
56
+ margin-bottom: 16px;
57
+ }
58
+
59
+ .@{pro-layout-page-container}-extraContent {
60
+ min-width: 242px;
61
+ margin-left: 88px;
62
+ text-align: right;
63
+ }
64
+ }
65
+
66
+ @media screen and (max-width: @screen-xl) {
67
+ .@{pro-layout-page-container}-main {
68
+ .@{pro-layout-page-container}-extraContent {
69
+ margin-left: 44px;
70
+ }
71
+ }
72
+ }
73
+
74
+ @media screen and (max-width: @screen-lg) {
75
+ .@{pro-layout-page-container}-main {
76
+ .@{pro-layout-page-container}-extraContent {
77
+ margin-left: 20px;
78
+ }
79
+ }
80
+ }
81
+
82
+ @media screen and (max-width: @screen-md) {
83
+ .@{pro-layout-page-container}-main {
84
+ .@{pro-layout-page-container}-row {
85
+ display: block;
86
+ }
87
+
88
+ .@{pro-layout-page-container}-action,
89
+ .@{pro-layout-page-container}-extraContent {
90
+ margin-left: 0;
91
+ text-align: left;
92
+ }
93
+ }
94
+ }
95
+
96
+ @media screen and (max-width: @screen-sm) {
97
+ .@{pro-layout-page-container}-detail {
98
+ display: block;
99
+ }
100
+ .@{pro-layout-page-container}-extraContent {
101
+ margin-left: 0;
102
+ }
103
+ }
@@ -0,0 +1,231 @@
1
+ @import '../style/default.less';
2
+
3
+ @pro-layout-sider-menu-prefix-cls: ~'@{ant-prefix}-pro-sider';
4
+
5
+ @nav-header-height: @pro-layout-header-height;
6
+
7
+ .@{pro-layout-sider-menu-prefix-cls} {
8
+ position: relative;
9
+ background-color: @layout-sider-background;
10
+ border-right: 0;
11
+ // FIXME: 临时修正(可能不会做兼容)
12
+ z-index: 20;
13
+
14
+ // 这里关掉了动画,不然使用无法兼容
15
+ .@{ant-prefix}-menu {
16
+ background: transparent;
17
+ }
18
+
19
+ &.@{ant-prefix}-layout-sider-light {
20
+ .@{ant-prefix}-menu-item a {
21
+ color: @heading-color;
22
+ }
23
+ .@{ant-prefix}-menu-item-selected a,
24
+ .@{ant-prefix}-menu-item a:hover {
25
+ color: @primary-color;
26
+ }
27
+ }
28
+
29
+ &-logo {
30
+ position: relative;
31
+ display: flex;
32
+ align-items: center;
33
+ padding: 16px 16px;
34
+ cursor: pointer;
35
+ transition: padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
36
+
37
+ > a {
38
+ display: flex;
39
+ align-items: center;
40
+ justify-content: center;
41
+ min-height: 32px;
42
+ }
43
+
44
+ img {
45
+ display: inline-block;
46
+ height: 32px;
47
+ vertical-align: middle;
48
+ }
49
+
50
+ h1 {
51
+ display: inline-block;
52
+ height: 32px;
53
+ margin: 0 0 0 12px;
54
+ color: white;
55
+ font-weight: 600;
56
+ font-size: 18px;
57
+ line-height: 32px;
58
+ vertical-align: middle;
59
+ animation: pro-layout-title-hide 0.3s;
60
+ }
61
+ }
62
+
63
+ &-logo-card {
64
+ padding: 16px 0;
65
+ justify-content: center;
66
+ }
67
+
68
+ &-extra {
69
+ margin-bottom: 16px;
70
+ padding: 0 16px;
71
+ &-no-logo {
72
+ margin-top: 16px;
73
+ }
74
+ }
75
+
76
+ &-menu {
77
+ position: relative;
78
+ z-index: 10;
79
+ min-height: 100%;
80
+ box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35);
81
+ }
82
+
83
+ .@{ant-prefix}-layout-sider-children {
84
+ display: flex;
85
+ flex-direction: column;
86
+ height: 100%;
87
+
88
+ ::-webkit-scrollbar {
89
+ width: 6px;
90
+ height: 6px;
91
+ }
92
+
93
+ ::-webkit-scrollbar-track {
94
+ background: rgba(255, 255, 255, 0.15);
95
+ border-radius: 3px;
96
+ box-shadow: inset 0 0 5px rgba(37, 37, 37, 0.05);
97
+ }
98
+
99
+ /* 滚动条滑块 */
100
+ ::-webkit-scrollbar-thumb {
101
+ background: rgba(255, 255, 255, 0.2);
102
+ border-radius: 3px;
103
+ box-shadow: inset 0 0 5px rgba(255, 255, 255, 0.05);
104
+ }
105
+ }
106
+
107
+ &.@{ant-prefix}-layout-sider-collapsed {
108
+ .@{ant-prefix}-menu-inline-collapsed {
109
+ width: 48px;
110
+ }
111
+ .@{pro-layout-sider-menu-prefix-cls} {
112
+ &-logo {
113
+ padding: 16px 8px;
114
+ }
115
+ }
116
+ }
117
+
118
+ &.@{ant-prefix}-layout-sider.@{pro-layout-sider-menu-prefix-cls}-fixed {
119
+ position: fixed;
120
+ top: 0;
121
+ left: 0;
122
+ z-index: 99; // react pro-components: z-index: 100;
123
+ height: 100%;
124
+ overflow: auto;
125
+ overflow-x: hidden;
126
+ box-shadow: 2px 0 8px 0 rgba(29, 35, 41, 0.05);
127
+ > .@{ant-prefix}-menu-root {
128
+ :not(.@{pro-layout-sider-menu-prefix-cls}-link-menu) {
129
+ height: ~'calc(100vh - @{nav-header-height})';
130
+ overflow-y: auto;
131
+ }
132
+ }
133
+ }
134
+
135
+ &-light {
136
+ background-color: @component-background;
137
+ box-shadow: 2px 0 8px 0 rgba(29, 35, 41, 0.05);
138
+
139
+ .@{ant-prefix}-layout-sider-children {
140
+ ::-webkit-scrollbar-track {
141
+ background: rgba(0, 0, 0, 0.06);
142
+ border-radius: 3px;
143
+ box-shadow: inset 0 0 5px rgba(0, 21, 41, 0.05);
144
+ }
145
+
146
+ /* 滚动条滑块 */
147
+ ::-webkit-scrollbar-thumb {
148
+ background: rgba(0, 0, 0, 0.12);
149
+ border-radius: 3px;
150
+ box-shadow: inset 0 0 5px rgba(0, 21, 41, 0.05);
151
+ }
152
+ }
153
+
154
+ .@{pro-layout-sider-menu-prefix-cls}-logo {
155
+ h1 {
156
+ color: @primary-color;
157
+ }
158
+ }
159
+ .@{ant-prefix}-menu-light {
160
+ border-right-color: transparent;
161
+ }
162
+
163
+ .@{pro-layout-sider-menu-prefix-cls}-collapsed-button {
164
+ border-top: @border-width-base @border-style-base
165
+ @border-color-split;
166
+ }
167
+ }
168
+
169
+ &-icon {
170
+ width: 14px;
171
+ vertical-align: baseline;
172
+ }
173
+
174
+ &-links {
175
+ width: 100%;
176
+ ul.@{ant-prefix}-menu-root {
177
+ height: auto;
178
+ }
179
+ }
180
+
181
+ &-collapsed-button {
182
+ border-top: @border-width-base @border-style-base rgba(0, 0, 0, 0.25);
183
+ .anticon {
184
+ font-size: 16px;
185
+ }
186
+ }
187
+
188
+ .top-nav-menu li.@{ant-prefix}-menu-item {
189
+ height: 100%;
190
+ line-height: 1;
191
+ }
192
+ .drawer .drawer-content {
193
+ background: @layout-sider-background;
194
+ }
195
+ }
196
+
197
+ // 修正菜单 collapsed 时,icon 与 title 的间距
198
+ .@{ant-prefix}-pro-menu-item {
199
+ .anticon + .@{ant-prefix}-pro-menu-item-title {
200
+ margin-left: 10px;
201
+ }
202
+ }
203
+
204
+ .sider-app-menus {
205
+ width: 100px;
206
+ background-color: #fff;
207
+ cursor: pointer;
208
+ padding: 6px;
209
+ transition: all .3s;
210
+ border-radius: 4px;
211
+ color: #333;
212
+
213
+ &:hover {
214
+ background-color: #efefef;
215
+ }
216
+ }
217
+
218
+ @keyframes pro-layout-title-hide {
219
+ 0% {
220
+ display: none;
221
+ opacity: 0;
222
+ }
223
+ 80% {
224
+ display: none;
225
+ opacity: 0;
226
+ }
227
+ 100% {
228
+ display: unset;
229
+ opacity: 1;
230
+ }
231
+ }
@@ -39,6 +39,12 @@ export var baseHeaderProps = _objectSpread(_objectSpread({}, defaultSettingProps
39
39
  },
40
40
  menuHeaderRender: siderMenuProps.menuHeaderRender,
41
41
  menuItemRender: siderMenuProps.menuItemRender,
42
+ topHeaderMenuRender: {
43
+ type: [Function, Object, Boolean],
44
+ default: function _default() {
45
+ return undefined;
46
+ }
47
+ },
42
48
  subMenuItemRender: siderMenuProps.subMenuItemRender,
43
49
  rightContentRender: {
44
50
  type: [Object, Function],
@@ -86,6 +92,7 @@ export var TopNavHeader = function TopNavHeader(props) {
86
92
  onSelect = props.onSelect,
87
93
  contentWidth = props.contentWidth,
88
94
  rightContentRender = props.rightContentRender,
95
+ topHeaderMenuRender = props.topHeaderMenuRender,
89
96
  layout = props.layout,
90
97
  menuData = props.menuData,
91
98
  mode = props.mode;
@@ -136,7 +143,7 @@ export var TopNavHeader = function TopNavHeader(props) {
136
143
  flex: 1
137
144
  },
138
145
  "class": "".concat(prefixCls, "-menu")
139
- }, [_createVNode(BaseMenu, {
146
+ }, [topHeaderMenuRender ? topHeaderMenuRender() : _createVNode(BaseMenu, {
140
147
  "prefixCls": propPrefixCls,
141
148
  "locale": props.locale || context.locale,
142
149
  "theme": props.theme,