【发布时间】:2019-07-02 10:54:15
【问题描述】:
我正在按照说明进行操作 https://www.telerik.com/kendo-vue-ui/components/diagram/ 但我正在运行一个带有 .vue 文件的独立 Vue 应用程序。
首先,它在 kendo.dataviz 失败,saing kendo 未定义(在 visualTemplate 函数中)。
我查看了 STACKBLITZ 中的代码,看起来示例代码是匆忙拼凑起来的。有点“让我们导入所有内容,不要太担心”。 index.js 中的导入也是如此。性能很重要,我不想在我的组件中导入超出我需要的东西。
https://stackblitz.com/edit/jhqgbd?file=index.js
那么,要让它在 Vue 中运行,我实际上需要什么?
import Vue from 'vue'
import '@progress/kendo-ui'
import '@progress/kendo-theme-default/dist/all.css'
import { DataSourceInstaller, DiagramInstaller } from '@progress/kendo-diagram-vue-wrapper'
Vue.use(DiagramInstaller);
Vue.use(DataSourceInstaller);
new Vue({
el: '#vueapp',
data: function() {
return {
diagramModel: {
children: 'items'
},
diagramData: myData
}
},
methods: {
kendowidgetready: function (widget) {
widget.bringIntoView(widget.shapes)
},
visualTemplate: function (options) {
var dataviz = kendo.dataviz
var g = new dataviz.diagram.Group()
var dataItem = options.dataItem
g.append(new dataviz.diagram.Rectangle({
width: 210,
height: 75,
stroke: {
width: 0
},
fill: {
gradient: {
type: 'linear',
stops: [{
color: dataItem.colorScheme,
offset: 0,
opacity: 0.5
}, {
color: dataItem.colorScheme,
offset: 1,
opacity: 1
}]
}
}
}))
g.append(new dataviz.diagram.TextBlock({
text: dataItem.firstName + ' ' + dataItem.lastName,
x: 85,
y: 20,
fill: '#fff'
}))
g.append(new dataviz.diagram.TextBlock({
text: dataItem.title,
x: 85,
y: 40,
fill: '#fff'
}))
g.append(new dataviz.diagram.Image({
source: 'https://demos.telerik.com/kendo-ui/content/dataviz/diagram/people/' + dataItem.image,
x: 3,
y: 3,
width: 68,
height: 68
}))
return g
}
}
})
【问题讨论】:
标签: vue.js kendo-ui kendo-dataviz