n20-common-lib 3.0.74 → 3.0.76

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": "n20-common-lib",
3
- "version": "3.0.74",
3
+ "version": "3.0.76",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -1,6 +1,6 @@
1
1
  .n20-pagination-1 {
2
2
  display: inline-block;
3
- // padding-right: 5px;
3
+ padding-right: 5px;
4
4
 
5
5
  > * {
6
6
  vertical-align: middle;
@@ -14,7 +14,7 @@
14
14
  .btn-next {
15
15
  padding-left: 6px;
16
16
  padding-right: 6px;
17
- // border: 1px solid $--border-color-base;
17
+ border: 1px solid $--border-color-base;
18
18
 
19
19
  &:not([disabled]):hover {
20
20
  border-color: $--color-primary;
@@ -25,88 +25,27 @@
25
25
  margin-left: 6px;
26
26
  }
27
27
 
28
- .el-pagination span:not([class*='suffix']) {
29
- color: $--color-text-primary;
30
- font-size: 14px;
31
- min-width: 24px;
32
- height: 24px;
33
- line-height: 24px;
34
- font-style: normal;
35
- font-weight: 400;
36
- line-height: 22px; /* 157.143% */
37
- vertical-align: middle;
38
- }
39
-
40
- .el-pagination .el-select .el-input {
41
- margin: 0;
42
- }
43
28
  .el-pagination {
44
- padding: 0;
45
- button {
46
- min-width: 32px;
47
- height: 32px;
48
- }
49
- .el-pager {
50
- padding: 4px 0;
51
- }
52
- .el-pager .more::before {
53
- line-height: 24px;
54
- }
55
- .el-pager li {
56
- min-width: 24px;
57
- height: 24px;
58
- font-family: 'Open Sans';
59
- font-size: 14px;
60
- font-style: normal;
61
- font-weight: 600;
62
- line-height: 22px; /* 157.143% */
63
- }
64
- .el-pagination__sizes {
65
- height: 32px !important;
66
- margin: 0;
67
- .el-input--mini .el-input__inner {
68
- height: 32px;
69
- line-height: 32px;
70
- border-radius: 4px;
71
- border: 1px solid var(--border-2, #e5e6eb);
72
- background: var(--bg-2, #fff);
73
- }
74
- }
75
- .el-pagination__jump {
76
- height: 32px !important;
77
- margin-left: 8px;
78
- .el-input--small .el-input__inner {
79
- height: 32px;
80
- line-height: 32px;
81
- border-radius: 4px;
82
- border: 1px solid var(--border-2, #e5e6eb);
83
- background: var(--bg-2, #fff);
84
- }
85
- }
29
+ padding: 1px 5px;
86
30
  }
87
31
  }
88
32
 
89
33
  .n20-pagination-jumper-1 {
90
- width: 32px;
34
+ width: 36px;
91
35
  text-align: center;
92
- margin-left: 8px;
36
+ margin-left: 6px;
37
+ margin-right: 6px;
93
38
 
94
39
  &.is-without-controls {
95
40
  .el-input__inner {
96
- height: 32px;
41
+ height: 26px;
97
42
  text-align: center;
98
- line-height: 32px;
99
- border-radius: 4px;
43
+ line-height: 26px;
44
+ padding-left: 4px;
45
+ padding-right: 4px;
46
+ border-radius: 2px;
100
47
  }
101
48
  }
102
- .el-input--mini .el-input__inner {
103
- height: 32px;
104
- line-height: 32px;
105
- border-radius: 4px;
106
- border: 1px solid var(--border-2, #e5e6eb);
107
- background: var(--bg-2, #fff);
108
- padding: 0 4px;
109
- }
110
49
  }
111
50
 
112
51
  .n20-pagination-sizes-1 {
@@ -129,6 +68,8 @@
129
68
  .el-input__inner {
130
69
  height: 26px;
131
70
  line-height: 26px;
71
+ padding-left: 4px;
72
+ padding-right: 4px;
132
73
  border-radius: 2px;
133
74
  }
134
75
  }
@@ -158,7 +158,7 @@
158
158
  />
159
159
  </vxe-colgroup>
160
160
  <vxe-column
161
- v-else
161
+ v-else-if="item.formatter"
162
162
  :key="'vxe-table-base__column' + i"
163
163
  :class-name="`${item.wrap && `vxe-table-custom-wrap`} ${item.bold && `font-w600`}`"
164
164
  :formatter="item.formatter ? item.formatter : 'formatName'"
@@ -167,6 +167,53 @@
167
167
  :title="item.label"
168
168
  :field="item.prop"
169
169
  v-bind="item"
170
+ >
171
+ <template #header="{ column }">
172
+ <div
173
+ class="flex-box flex-v flex-c"
174
+ @mouseenter="hoverHeaderProp = item.prop"
175
+ @mouseleave="hoverHeaderProp = null"
176
+ >
177
+ <span
178
+ v-if="item.tooltip"
179
+ v-title="typeof item.tooltip === 'function' ? item.tooltip(column) : item.tooltip"
180
+ class="pointer"
181
+ style="border-bottom: 1px dashed"
182
+ >
183
+ <slot :name="`header_${column.field}`" :column="column">
184
+ {{ column.title }}
185
+ </slot>
186
+ </span>
187
+ <template v-else>
188
+ <slot :name="`header_${column.field}`" :column="column">
189
+ {{ column.title }}
190
+ </slot>
191
+ </template>
192
+ <!-- 已固定列(fixed='left'):hover 时显示 lock 图标,点击取消固定 -->
193
+ <i
194
+ v-if="item.fixed === 'left'"
195
+ class="v3-icon-lock vxe-table--column__icon m-l-ss pointer color-primary"
196
+ @click.stop="unlockColumn(item)"
197
+ ></i>
198
+ <!-- 未固定列(且非静态列):hover 时显示 unlock 图标,点击设为固定 -->
199
+ <i
200
+ v-if="!item.fixed && !item.static"
201
+ v-show="hoverHeaderProp === item.prop"
202
+ class="v3-icon-unlock vxe-table--column__icon m-l-ss pointer"
203
+ @click.stop="lockColumn(item)"
204
+ ></i>
205
+ </div>
206
+ </template>
207
+ </vxe-column>
208
+ <vxe-column
209
+ v-else
210
+ :key="'vxe-table-base__column' + i"
211
+ :class-name="`${item.wrap && `vxe-table-custom-wrap`} ${item.bold && `font-w600`}`"
212
+ :filters="item.filters"
213
+ :filter-render="item.filters && item.filters.length > 0 ? { name: 'FilterInput' } : null"
214
+ :title="item.label"
215
+ :field="item.prop"
216
+ v-bind="item"
170
217
  >
171
218
  <template #header="{ column }">
172
219
  <div
@@ -205,19 +252,14 @@
205
252
  </div>
206
253
  </template>
207
254
  <!-- 处理旧格式 formatter 和 render -->
208
- <template v-if="item._oldFormatter || item._oldRender" #default="{ row, column }">
209
- <!-- 旧的 render 函数 -->
210
- <template v-if="item._oldRender && item.render">
211
- <vxe-tooltip :content="row[column.property]">
212
- <template #default>
213
- <div v-html="item.render($createElement, row)"></div>
214
- </template>
215
- </vxe-tooltip>
216
- </template>
217
- <!-- 旧的 formatter 函数:formatter: ({ row }) => html -->
218
- <template v-else-if="item._oldFormatter && item._originalFormatter">
219
- <div v-html="item._originalFormatter({ row })"></div>
255
+ <template #default="{ row, column }">
256
+ <!-- 纯对象字段 -->
257
+ <template
258
+ v-if="row[column.property] && typeof row[column.property] === 'object' && row[column.property].name"
259
+ >
260
+ {{ row[column.property].name }}
220
261
  </template>
262
+ <slot v-else :name="`cell_${item.prop}`" :row="row">{{ row[column.property] }}</slot>
221
263
  </template>
222
264
  </vxe-column>
223
265
  </template>