n20-common-lib 3.0.73 → 3.0.75

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.73",
3
+ "version": "3.0.75",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -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
@@ -206,21 +253,9 @@
206
253
  </template>
207
254
  <!-- 处理旧格式 formatter 和 render -->
208
255
  <template #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>
220
- </template>
221
256
  <!-- 纯对象字段 -->
222
257
  <template
223
- v-else-if="row[column.property] && typeof row[column.property] === 'object' && row[column.property].name"
258
+ v-if="row[column.property] && typeof row[column.property] === 'object' && row[column.property].name"
224
259
  >
225
260
  {{ row[column.property].name }}
226
261
  </template>