diff --git a/frontend/package.json b/frontend/package.json
index 1166c327d3..635ea4f43a 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -15,7 +15,9 @@
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"
},
"dependencies": {
+ "@riophae/vue-treeselect": "0.4.0",
"axios": "0.18.1",
+ "echarts": "^5.0.2",
"element-ui": "2.13.0",
"fit2cloud-ui": "^0.1.12",
"js-cookie": "2.2.0",
@@ -30,9 +32,8 @@
"vue": "2.6.10",
"vue-i18n": "7.3.2",
"vue-router": "3.0.6",
- "vuex": "3.1.0",
- "@riophae/vue-treeselect": "0.4.0",
- "vuedraggable": "^2.24.3"
+ "vuedraggable": "^2.24.3",
+ "vuex": "3.1.0"
},
"devDependencies": {
"@babel/core": "7.0.0",
diff --git a/frontend/src/api/chart/chart.js b/frontend/src/api/chart/chart.js
new file mode 100644
index 0000000000..fefee5bd38
--- /dev/null
+++ b/frontend/src/api/chart/chart.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function post(url, data) {
+ return request({
+ url: url,
+ method: 'post',
+ data
+ })
+}
diff --git a/frontend/src/api/dataset/dataset.js b/frontend/src/api/dataset/dataset.js
index 8f4df02745..a9a68dbe9d 100644
--- a/frontend/src/api/dataset/dataset.js
+++ b/frontend/src/api/dataset/dataset.js
@@ -52,4 +52,50 @@ export function groupTree(data) {
data
})
}
+
+export function listDatasource() {
+ return request({
+ url: '/datasource/list',
+ method: 'get'
+ })
+}
+
+export function getTable(id) {
+ return request({
+ url: '/dataset/table/get/' + id,
+ method: 'post'
+ })
+}
+
+export function getPreviewData(data) {
+ return request({
+ url: '/dataset/table/getPreviewData',
+ method: 'post',
+ data
+ })
+}
+
+export function fieldList(id) {
+ return request({
+ url: '/dataset/field/list/' + id,
+ method: 'post'
+ })
+}
+
+export function batchEdit(data) {
+ return request({
+ url: '/dataset/field/batchEdit',
+ method: 'post',
+ data
+ })
+}
+
+export function post(url, data) {
+ return request({
+ url: url,
+ method: 'post',
+ data
+ })
+}
+
export default { loadTable, getScene, addGroup, delGroup, addTable, delTable, groupTree }
diff --git a/frontend/src/layout/components/AppMain.vue b/frontend/src/layout/components/AppMain.vue
index 767353fa8d..72c3aff242 100644
--- a/frontend/src/layout/components/AppMain.vue
+++ b/frontend/src/layout/components/AppMain.vue
@@ -1,13 +1,13 @@
-
diff --git a/frontend/src/main.js b/frontend/src/main.js
index b62e785cb4..12ffe62f75 100644
--- a/frontend/src/main.js
+++ b/frontend/src/main.js
@@ -21,6 +21,10 @@ import message from '@/metersphere/common/js/message'
import { left2RightDrag, bottom2TopDrag, right2LeftDrag } from '@/metersphere/common/js/directive'
Vue.prototype.$api = api
+import echarts from 'echarts'
+
+Vue.prototype.$echarts = echarts
+
/**
* If you don't want to use mock-server
* you want to use MockJs for mock api
diff --git a/frontend/src/store/index.js b/frontend/src/store/index.js
index 805a771e03..ae20c164df 100644
--- a/frontend/src/store/index.js
+++ b/frontend/src/store/index.js
@@ -6,6 +6,7 @@ import settings from './modules/settings'
import user from './modules/user'
import permission from './modules/permission'
import dataset from './modules/dataset'
+import chart from './modules/chart'
Vue.use(Vuex)
@@ -15,7 +16,8 @@ const store = new Vuex.Store({
settings,
user,
permission,
- dataset
+ dataset,
+ chart
},
getters
})
diff --git a/frontend/src/store/modules/chart.js b/frontend/src/store/modules/chart.js
new file mode 100644
index 0000000000..671deba0f4
--- /dev/null
+++ b/frontend/src/store/modules/chart.js
@@ -0,0 +1,62 @@
+const getDefaultState = () => {
+ return {
+ sceneData: {},
+ table: {},
+ sceneId: {},
+ viewId: {},
+ tableId: {},
+ chartSceneData: {}
+ }
+}
+
+const state = getDefaultState()
+
+const mutations = {
+ setSceneData: (state, sceneData) => {
+ state.sceneData = sceneData
+ },
+ setTable: (state, table) => {
+ state.table = table
+ },
+ setSceneId: (state, sceneId) => {
+ state.sceneId = sceneId
+ },
+ setViewId: (state, viewId) => {
+ state.viewId = viewId
+ },
+ setTableId: (state, tableId) => {
+ state.tableId = tableId
+ },
+ setChartSceneData: (state, chartSceneData) => {
+ state.chartSceneData = chartSceneData
+ }
+}
+
+const actions = {
+ setSceneData({ commit }, sceneData) {
+ commit('setSceneData', sceneData)
+ },
+ setTable({ commit }, table) {
+ commit('setTable', table)
+ },
+ setSceneId: ({ commit }, sceneId) => {
+ commit('setSceneId', sceneId)
+ },
+ setViewId: ({ commit }, viewId) => {
+ commit('setViewId', viewId)
+ },
+ setTableId: ({ commit }, tableId) => {
+ commit('setTableId', tableId)
+ },
+ setChartSceneData: ({ commit }, chartSceneData) => {
+ commit('setChartSceneData', chartSceneData)
+ }
+}
+
+export default {
+ namespaced: true,
+ state,
+ mutations,
+ actions
+}
+
diff --git a/frontend/src/views/chart/data/AddDB.vue b/frontend/src/views/chart/data/AddDB.vue
deleted file mode 100644
index 6792f55343..0000000000
--- a/frontend/src/views/chart/data/AddDB.vue
+++ /dev/null
@@ -1,148 +0,0 @@
-
-
-
-
-
- {{ $t('dataset.add_db_table') }}
-
-
-
- {{ $t('dataset.cancel') }}
-
-
- {{ $t('dataset.confirm') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/frontend/src/views/chart/data/TabDataPreview.vue b/frontend/src/views/chart/data/TabDataPreview.vue
deleted file mode 100644
index c54dd647e5..0000000000
--- a/frontend/src/views/chart/data/TabDataPreview.vue
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/frontend/src/views/chart/data/ViewTable.vue b/frontend/src/views/chart/data/ViewTable.vue
deleted file mode 100644
index 31389e968b..0000000000
--- a/frontend/src/views/chart/data/ViewTable.vue
+++ /dev/null
@@ -1,122 +0,0 @@
-
-
-
-
- {{ tableId }}
-
- {{ table.name }}
-
-
-
- {{ $t('dataset.edit') }}
-
-
- {{ $t('dataset.create_view') }}
-
-
-
-
-
-
-
-
-
-
- tab2
-
-
- tab3
-
-
- tab4
-
-
-
-
-
-
-
-
-
diff --git a/frontend/src/views/chart/group/Group.vue b/frontend/src/views/chart/group/Group.vue
index 098af88c11..282caa8ff7 100644
--- a/frontend/src/views/chart/group/Group.vue
+++ b/frontend/src/views/chart/group/Group.vue
@@ -7,7 +7,7 @@
{{ $t('chart.datalist') }}
-
+
@@ -101,7 +101,7 @@
-
+