diff --git a/src/AppV2.vue b/src/AppV2.vue new file mode 100644 index 0000000..1ea59ce --- /dev/null +++ b/src/AppV2.vue @@ -0,0 +1,24 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/assets/chart-bar.png b/src/assets/chart-bar.png new file mode 100644 index 0000000..37e8eae Binary files /dev/null and b/src/assets/chart-bar.png differ diff --git a/src/assets/chart-line.png b/src/assets/chart-line.png new file mode 100644 index 0000000..081ee0b Binary files /dev/null and b/src/assets/chart-line.png differ diff --git a/src/assets/chart-pie.png b/src/assets/chart-pie.png new file mode 100644 index 0000000..4d74870 Binary files /dev/null and b/src/assets/chart-pie.png differ diff --git a/src/assets/table-basic.png b/src/assets/table-basic.png new file mode 100644 index 0000000..f2a5de4 Binary files /dev/null and b/src/assets/table-basic.png differ diff --git a/src/assets/table-paged.png b/src/assets/table-paged.png new file mode 100644 index 0000000..f2a5de4 Binary files /dev/null and b/src/assets/table-paged.png differ diff --git a/src/assets/text-paragraph.png b/src/assets/text-paragraph.png new file mode 100644 index 0000000..0b6c04b Binary files /dev/null and b/src/assets/text-paragraph.png differ diff --git a/src/assets/text-title.png b/src/assets/text-title.png new file mode 100644 index 0000000..beca9e2 Binary files /dev/null and b/src/assets/text-title.png differ diff --git a/src/main.js b/src/main.js index b03b12e..abeab96 100644 --- a/src/main.js +++ b/src/main.js @@ -1,5 +1,6 @@ import Vue from 'vue' -import App from './App.vue' +//import App from './App.vue' +import App from './AppV2.vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' diff --git a/src/v2/components/Canvas.vue b/src/v2/components/Canvas.vue new file mode 100644 index 0000000..05d7d39 --- /dev/null +++ b/src/v2/components/Canvas.vue @@ -0,0 +1,65 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/v2/components/LayerPanel.vue b/src/v2/components/LayerPanel.vue new file mode 100644 index 0000000..c3f3081 --- /dev/null +++ b/src/v2/components/LayerPanel.vue @@ -0,0 +1,61 @@ + + + + 图层 + + + + {{ element.name || `元素${index + 1}` }} + + + + + + + + \ No newline at end of file diff --git a/src/v2/components/PropertyPanel.vue b/src/v2/components/PropertyPanel.vue new file mode 100644 index 0000000..ad73c97 --- /dev/null +++ b/src/v2/components/PropertyPanel.vue @@ -0,0 +1,170 @@ + + + + 属性设置 + + + + {{ tab }} + + + + + + + {{ prop.label }} + + + + + + + + + + \ No newline at end of file diff --git a/src/v2/components/Toolbar.vue b/src/v2/components/Toolbar.vue new file mode 100644 index 0000000..cfae134 --- /dev/null +++ b/src/v2/components/Toolbar.vue @@ -0,0 +1,151 @@ + + + + + + + + + {{ category.name }} + + + + {{ item.name }} + + + + + + + 清除 + 保存 + 预览 + + + + + + + \ No newline at end of file diff --git a/src/v2/components/componentData.js b/src/v2/components/componentData.js new file mode 100644 index 0000000..954086b --- /dev/null +++ b/src/v2/components/componentData.js @@ -0,0 +1,107 @@ +export const componentList = [ + { + id: 'chart-line', + name: '线图', + type: 'line-chart', + icon: require('@/assets/chart-line.png'), + groupName: '图表', + component: () => import('./elements/chart-line.vue') // 新增组件引用 + }, + { + id: 'chart-bar', + name: '柱图', + type: 'bar-chart', + icon: require('@/assets/chart-bar.png'), + groupName: '图表', + component: () => import('./elements/chart-bar.vue'), + props: [ + { + name: 'title', + type: 'string', + label: '标题', + default: '柱图标题', + group: '基础' + }, + { + name: 'dbName', + type: 'string', + label: '数据源对象', + default: '', + group: '数据' + }, + ] + }, + { + id: 'chart-pie', + name: '饼图', + type: 'pie-chart', + icon: require('@/assets/chart-pie.png'), + groupName: '图表', + component: () => import('./elements/chart-pie.vue'), + props: [ // 新增props数组 + { + name: 'title', + type: 'string', + label: '标题', + default: '饼图标题', + group: '基础' + }, + { + name: 'dbName', + type: 'string', + label: '数据源对象', + default: '', + group: '数据' + }, + ], + defaultOption: { + x: 100, + y: 100, + width: 300, + height: 300 + } + }, + { + id: 'table-basic', + name: '基础表格', + type: 'basic-table', + icon: require('@/assets/table-basic.png'), + groupName: '表格' + }, + { + id: 'table-paged', + name: '分页表格', + type: 'paged-table', + icon: require('@/assets/table-paged.png'), + groupName: '表格' + }, + { + id: 'text-title', + name: '标题', + type: 'title-text', + icon: require('@/assets/text-title.png'), + groupName: '文字' + }, + { + id: 'text-paragraph', + name: '正文', + type: 'paragraph', + icon: require('@/assets/text-paragraph.png'), + groupName: '文字' + } +] + +// 根据groupName分组 +export function getComponentCategories() { + const groups = {} + componentList.forEach(item => { + if (!groups[item.groupName]) { + groups[item.groupName] = { + name: item.groupName, + items: [] + } + } + groups[item.groupName].items.push(item) + }) + return Object.values(groups) +} \ No newline at end of file diff --git a/src/v2/components/elements/chart-bar.vue b/src/v2/components/elements/chart-bar.vue new file mode 100644 index 0000000..b1a64ad --- /dev/null +++ b/src/v2/components/elements/chart-bar.vue @@ -0,0 +1,24 @@ + + + {{ option }} + + + + + + \ No newline at end of file diff --git a/src/v2/components/elements/chart-line.vue b/src/v2/components/elements/chart-line.vue new file mode 100644 index 0000000..374dd69 --- /dev/null +++ b/src/v2/components/elements/chart-line.vue @@ -0,0 +1,25 @@ + + + + {{ option }} + + + + + + \ No newline at end of file diff --git a/src/v2/components/elements/chart-pie.vue b/src/v2/components/elements/chart-pie.vue new file mode 100644 index 0000000..fac0fdf --- /dev/null +++ b/src/v2/components/elements/chart-pie.vue @@ -0,0 +1,82 @@ + + + + + + + \ No newline at end of file diff --git a/src/v2/design.vue b/src/v2/design.vue new file mode 100644 index 0000000..2521c38 --- /dev/null +++ b/src/v2/design.vue @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/v2/index.vue b/src/v2/index.vue new file mode 100644 index 0000000..c3ce931 --- /dev/null +++ b/src/v2/index.vue @@ -0,0 +1,115 @@ + + + + + + + + + + + + \ No newline at end of file