Skip to content

Commit cd55c07

Browse files
committed
fix(ModelManager): Support custom list item component
1 parent 0c5730a commit cd55c07

3 files changed

Lines changed: 16 additions & 2 deletions

File tree

src/components/core/WorkflowMenu/script.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,8 @@ export default {
1313
const viewItem = this.dataModel.model.views[viewId];
1414
return 'size' in viewItem || 'children' in viewItem;
1515
},
16+
getListComponentByName(name) {
17+
return this.$store.state.properties.mapping[name.toLowerCase()];
18+
},
1619
},
1720
};

src/components/core/WorkflowMenu/template.html

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,13 @@
5353
<span
5454
:class="child.active ? $style.activeListItem : null"
5555
>
56-
{{ child.label }}
56+
<component
57+
v-if="node.listComponent"
58+
:is="getListComponentByName(node.listComponent)"
59+
:viewItem="child.viewItem"
60+
:label="child.label"
61+
/>
62+
<span v-else>{{ child.label }}</span>
5763
</span>
5864
<v-spacer />
5965
<v-icon

src/core/ModelManager.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,15 +361,18 @@ export default class ModelManager {
361361
const menu = [];
362362
this.model.order.forEach((id) => {
363363
if (this.hideViews.indexOf(id) === -1) {
364+
const { size, children, listComponent } = this.model.views[id];
365+
364366
const node = {
365367
id,
366368
label: this.localizedData.getView(id),
367369
bullet: this.isCollapsed(id, 0)
368370
? 'collapsedBullet'
369371
: 'expendedBullet',
370372
index: 0,
373+
listComponent,
371374
};
372-
const { size, children } = this.model.views[id];
375+
373376
const childCount = (this.data[id] && this.data[id].length) || 0;
374377

375378
// Flags
@@ -397,6 +400,7 @@ export default class ModelManager {
397400
readOnly: this.model.views[id].readOnly || viewItem.readOnly,
398401
clonable: this.model.views[id].clonable || viewItem.clonable,
399402
invalid: viewItem.invalid,
403+
viewItem,
400404
};
401405
nodeChildren.push(child);
402406
});
@@ -416,6 +420,7 @@ export default class ModelManager {
416420
noDelete: true,
417421
readOnly: true,
418422
clonable: false,
423+
viewItem,
419424
};
420425
nodeChildren.push(child);
421426
});

0 commit comments

Comments
 (0)