diff --git a/src/views/datav/xm/branch1/cards.vue b/src/views/datav/xm/branch1/cards.vue
new file mode 100644
index 00000000..7ce515c5
--- /dev/null
+++ b/src/views/datav/xm/branch1/cards.vue
@@ -0,0 +1,275 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/datav/xm/branch1/digitalFlop.vue b/src/views/datav/xm/branch1/digitalFlop.vue
new file mode 100644
index 00000000..7c3b61f7
--- /dev/null
+++ b/src/views/datav/xm/branch1/digitalFlop.vue
@@ -0,0 +1,215 @@
+
+
+
+
{{ item.title }}
+
+
+ {{ item.unit }}
+
+
+
+
+
+
+
+
diff --git a/src/views/datav/xm/branch1/index.less b/src/views/datav/xm/branch1/index.less
new file mode 100644
index 00000000..edc03b33
--- /dev/null
+++ b/src/views/datav/xm/branch1/index.less
@@ -0,0 +1,104 @@
+#data-branch {
+ color: #d3d6dd;
+ width: 1920px;
+ height: 1080px;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ transform-origin: left top;
+ overflow: hidden;
+ .bg {
+ width: 100%;
+ height: 100%;
+ padding: 16px 16px 0 16px;
+ background-image: url("../../../../assets/image/datav_bg2.png");
+ background-size: cover;
+ background-position: center center;
+ }
+
+ .row_1 {
+ display: flex;
+ .dv-dec-10,
+ .dv-dec-10-s {
+ width: 33.3%;
+ height: 5px;
+ }
+ .dv-dec-10-s {
+ transform: rotateY(180deg);
+ }
+ .middle {
+ display: flex;
+ .dv-dec-8 {
+ width: 200px;
+ height: 30px;
+ }
+ .title {
+ position: relative;
+ width: 500px;
+ height: 40px;
+ text-align: center;
+ background-size: cover;
+ background-repeat: no-repeat;
+ line-height: 40px;
+ .title-text {
+ font-size: 36px;
+ position: absolute;
+ bottom: 0;
+ left: 50%;
+ width: 500px;
+ transform: translate(-50%);
+ }
+ .dv-dec-6 {
+ position: absolute;
+ bottom: -30px;
+ left: 50%;
+ width: 250px;
+ height: 8px;
+ transform: translate(-50%);
+ }
+ }
+ }
+ }
+
+ .row_2 {
+ display: flex;
+ margin-top: 42px;
+ }
+
+ .row_3 {
+ display: flex;
+ margin-top: 10px;
+ .left {
+ width: 300px;
+ height: 826px;
+ }
+ .right {
+ flex: 1;
+ height: 820px;
+ display: flex;
+ flex-direction: column;
+ .r_top {
+ display: flex;
+ flex: 1;
+ .top_1, .top_2, .top_3 {
+ height: 400px;
+ }
+ .top_1 {
+ width: 480px;
+ }
+ .top_2 {
+ width: 325px;
+ }
+ .top_3 {
+ width: 772px;
+ }
+ }
+ .r_bottom {
+ display: flex;
+ flex: 1;
+ }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/src/views/datav/xm/branch1/index.vue b/src/views/datav/xm/branch1/index.vue
new file mode 100644
index 00000000..384eec4d
--- /dev/null
+++ b/src/views/datav/xm/branch1/index.vue
@@ -0,0 +1,463 @@
+
+
+
+
加载中
+
+
+
+
+
+
+
+ 唛盟项目管理综合数据监控
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/datav/xm/branch1/rankingBoard.vue b/src/views/datav/xm/branch1/rankingBoard.vue
new file mode 100644
index 00000000..d3c907c8
--- /dev/null
+++ b/src/views/datav/xm/branch1/rankingBoard.vue
@@ -0,0 +1,108 @@
+
+
+ {{title}}
+
+
+
+
+
+
+
diff --git a/src/views/datav/xm/branch1/roseChart.vue b/src/views/datav/xm/branch1/roseChart.vue
new file mode 100644
index 00000000..15572e41
--- /dev/null
+++ b/src/views/datav/xm/branch1/roseChart.vue
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/datav/xm/branch1/scrollBoard.vue b/src/views/datav/xm/branch1/scrollBoard.vue
new file mode 100644
index 00000000..9721a55f
--- /dev/null
+++ b/src/views/datav/xm/branch1/scrollBoard.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/views/datav/xm/branch1/topHeader.vue b/src/views/datav/xm/branch1/topHeader.vue
new file mode 100644
index 00000000..0f2b4f28
--- /dev/null
+++ b/src/views/datav/xm/branch1/topHeader.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
diff --git a/src/views/datav/xm/branch1/waterLevelChart.vue b/src/views/datav/xm/branch1/waterLevelChart.vue
new file mode 100644
index 00000000..180afa8a
--- /dev/null
+++ b/src/views/datav/xm/branch1/waterLevelChart.vue
@@ -0,0 +1,109 @@
+
+
+
{{title}}
+
+
+ 累计完成{{myData.finishNum}}元
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/datav/xm/common/index.vue b/src/views/datav/xm/common/index.vue
new file mode 100644
index 00000000..db61b5eb
--- /dev/null
+++ b/src/views/datav/xm/common/index.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
diff --git a/src/views/datav/xm/common/theme.json b/src/views/datav/xm/common/theme.json
new file mode 100644
index 00000000..ce81abab
--- /dev/null
+++ b/src/views/datav/xm/common/theme.json
@@ -0,0 +1,490 @@
+{
+ "color": [
+ "#2d8cf0",
+ "#19be6b",
+ "#ff9900",
+ "#E46CBB",
+ "#9A66E4",
+ "#ed3f14"
+ ],
+ "backgroundColor": "rgba(0,0,0,0)",
+ "textStyle": {},
+ "title": {
+ "textStyle": {
+ "color": "#516b91"
+ },
+ "subtextStyle": {
+ "color": "#93b7e3"
+ }
+ },
+ "line": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": "2"
+ }
+ },
+ "lineStyle": {
+ "normal": {
+ "width": "2"
+ }
+ },
+ "symbolSize": "6",
+ "symbol": "emptyCircle",
+ "smooth": true
+ },
+ "radar": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": "2"
+ }
+ },
+ "lineStyle": {
+ "normal": {
+ "width": "2"
+ }
+ },
+ "symbolSize": "6",
+ "symbol": "emptyCircle",
+ "smooth": true
+ },
+ "bar": {
+ "itemStyle": {
+ "normal": {
+ "barBorderWidth": 0,
+ "barBorderColor": "#ccc"
+ },
+ "emphasis": {
+ "barBorderWidth": 0,
+ "barBorderColor": "#ccc"
+ }
+ }
+ },
+ "pie": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": 0,
+ "borderColor": "#ccc"
+ },
+ "emphasis": {
+ "borderWidth": 0,
+ "borderColor": "#ccc"
+ }
+ }
+ },
+ "scatter": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": 0,
+ "borderColor": "#ccc"
+ },
+ "emphasis": {
+ "borderWidth": 0,
+ "borderColor": "#ccc"
+ }
+ }
+ },
+ "boxplot": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": 0,
+ "borderColor": "#ccc"
+ },
+ "emphasis": {
+ "borderWidth": 0,
+ "borderColor": "#ccc"
+ }
+ }
+ },
+ "parallel": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": 0,
+ "borderColor": "#ccc"
+ },
+ "emphasis": {
+ "borderWidth": 0,
+ "borderColor": "#ccc"
+ }
+ }
+ },
+ "sankey": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": 0,
+ "borderColor": "#ccc"
+ },
+ "emphasis": {
+ "borderWidth": 0,
+ "borderColor": "#ccc"
+ }
+ }
+ },
+ "funnel": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": 0,
+ "borderColor": "#ccc"
+ },
+ "emphasis": {
+ "borderWidth": 0,
+ "borderColor": "#ccc"
+ }
+ }
+ },
+ "gauge": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": 0,
+ "borderColor": "#ccc"
+ },
+ "emphasis": {
+ "borderWidth": 0,
+ "borderColor": "#ccc"
+ }
+ }
+ },
+ "candlestick": {
+ "itemStyle": {
+ "normal": {
+ "color": "#edafda",
+ "color0": "transparent",
+ "borderColor": "#d680bc",
+ "borderColor0": "#8fd3e8",
+ "borderWidth": "2"
+ }
+ }
+ },
+ "graph": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": 0,
+ "borderColor": "#ccc"
+ }
+ },
+ "lineStyle": {
+ "normal": {
+ "width": 1,
+ "color": "#aaa"
+ }
+ },
+ "symbolSize": "6",
+ "symbol": "emptyCircle",
+ "smooth": true,
+ "color": [
+ "#2d8cf0",
+ "#19be6b",
+ "#f5ae4a",
+ "#9189d5",
+ "#56cae2",
+ "#cbb0e3"
+ ],
+ "label": {
+ "normal": {
+ "textStyle": {
+ "color": "#eee"
+ }
+ }
+ }
+ },
+ "map": {
+ "itemStyle": {
+ "normal": {
+ "areaColor": "#f3f3f3",
+ "borderColor": "#516b91",
+ "borderWidth": 0.5
+ },
+ "emphasis": {
+ "areaColor": "rgba(165,231,240,1)",
+ "borderColor": "#516b91",
+ "borderWidth": 1
+ }
+ },
+ "label": {
+ "normal": {
+ "textStyle": {
+ "color": "#000"
+ }
+ },
+ "emphasis": {
+ "textStyle": {
+ "color": "rgb(81,107,145)"
+ }
+ }
+ }
+ },
+ "geo": {
+ "itemStyle": {
+ "normal": {
+ "areaColor": "#f3f3f3",
+ "borderColor": "#516b91",
+ "borderWidth": 0.5
+ },
+ "emphasis": {
+ "areaColor": "rgba(165,231,240,1)",
+ "borderColor": "#516b91",
+ "borderWidth": 1
+ }
+ },
+ "label": {
+ "normal": {
+ "textStyle": {
+ "color": "#000"
+ }
+ },
+ "emphasis": {
+ "textStyle": {
+ "color": "rgb(81,107,145)"
+ }
+ }
+ }
+ },
+ "categoryAxis": {
+ "axisLine": {
+ "show": true,
+ "lineStyle": {
+ "color": "#cccccc"
+ }
+ },
+ "axisTick": {
+ "show": false,
+ "lineStyle": {
+ "color": "#333"
+ }
+ },
+ "axisLabel": {
+ "show": true,
+ "textStyle": {
+ "color": "#fff"
+ }
+ },
+ "splitLine": {
+ "show": false,
+ "lineStyle": {
+ "color": [
+ "#eeeeee"
+ ]
+ }
+ },
+ "splitArea": {
+ "show": false,
+ "areaStyle": {
+ "color": [
+ "rgba(250,250,250,0.05)",
+ "rgba(200,200,200,0.02)"
+ ]
+ }
+ }
+ },
+ "valueAxis": {
+ "axisLine": {
+ "show": true,
+ "lineStyle": {
+ "color": "#cccccc"
+ }
+ },
+ "axisTick": {
+ "show": false,
+ "lineStyle": {
+ "color": "#333"
+ }
+ },
+ "axisLabel": {
+ "show": true,
+ "textStyle": {
+ "color": "#fff"
+ }
+ },
+ "splitLine": {
+ "show": false,
+ "lineStyle": {
+ "color": [
+ "#eeeeee"
+ ]
+ }
+ },
+ "splitArea": {
+ "show": false,
+ "areaStyle": {
+ "color": [
+ "rgba(250,250,250,0.05)",
+ "rgba(200,200,200,0.02)"
+ ]
+ }
+ }
+ },
+ "logAxis": {
+ "axisLine": {
+ "show": true,
+ "lineStyle": {
+ "color": "#cccccc"
+ }
+ },
+ "axisTick": {
+ "show": false,
+ "lineStyle": {
+ "color": "#333"
+ }
+ },
+ "axisLabel": {
+ "show": true,
+ "textStyle": {
+ "color": "#999999"
+ }
+ },
+ "splitLine": {
+ "show": true,
+ "lineStyle": {
+ "color": [
+ "#eeeeee"
+ ]
+ }
+ },
+ "splitArea": {
+ "show": false,
+ "areaStyle": {
+ "color": [
+ "rgba(250,250,250,0.05)",
+ "rgba(200,200,200,0.02)"
+ ]
+ }
+ }
+ },
+ "timeAxis": {
+ "axisLine": {
+ "show": true,
+ "lineStyle": {
+ "color": "#cccccc"
+ }
+ },
+ "axisTick": {
+ "show": false,
+ "lineStyle": {
+ "color": "#333"
+ }
+ },
+ "axisLabel": {
+ "show": true,
+ "textStyle": {
+ "color": "#999999"
+ }
+ },
+ "splitLine": {
+ "show": true,
+ "lineStyle": {
+ "color": [
+ "#eeeeee"
+ ]
+ }
+ },
+ "splitArea": {
+ "show": false,
+ "areaStyle": {
+ "color": [
+ "rgba(250,250,250,0.05)",
+ "rgba(200,200,200,0.02)"
+ ]
+ }
+ }
+ },
+ "toolbox": {
+ "iconStyle": {
+ "normal": {
+ "borderColor": "#999"
+ },
+ "emphasis": {
+ "borderColor": "#666"
+ }
+ }
+ },
+ "legend": {
+ "textStyle": {
+ "color": "#fff"
+ }
+ },
+ "tooltip": {
+ "axisPointer": {
+ "lineStyle": {
+ "color": "#ccc",
+ "width": 1
+ },
+ "crossStyle": {
+ "color": "#ccc",
+ "width": 1
+ }
+ }
+ },
+ "timeline": {
+ "lineStyle": {
+ "color": "#8fd3e8",
+ "width": 1
+ },
+ "itemStyle": {
+ "normal": {
+ "color": "#8fd3e8",
+ "borderWidth": 1
+ },
+ "emphasis": {
+ "color": "#8fd3e8"
+ }
+ },
+ "controlStyle": {
+ "normal": {
+ "color": "#8fd3e8",
+ "borderColor": "#8fd3e8",
+ "borderWidth": 0.5
+ },
+ "emphasis": {
+ "color": "#8fd3e8",
+ "borderColor": "#8fd3e8",
+ "borderWidth": 0.5
+ }
+ },
+ "checkpointStyle": {
+ "color": "#8fd3e8",
+ "borderColor": "rgba(138,124,168,0.37)"
+ },
+ "label": {
+ "normal": {
+ "textStyle": {
+ "color": "#8fd3e8"
+ }
+ },
+ "emphasis": {
+ "textStyle": {
+ "color": "#8fd3e8"
+ }
+ }
+ }
+ },
+ "visualMap": {
+ "color": [
+ "#516b91",
+ "#59c4e6",
+ "#a5e7f0"
+ ]
+ },
+ "dataZoom": {
+ "backgroundColor": "rgba(0,0,0,0)",
+ "dataBackgroundColor": "rgba(255,255,255,0.3)",
+ "fillerColor": "rgba(167,183,204,0.4)",
+ "handleColor": "#a7b7cc",
+ "handleSize": "100%",
+ "textStyle": {
+ "color": "#333"
+ }
+ },
+ "markPoint": {
+ "label": {
+ "normal": {
+ "textStyle": {
+ "color": "#eee"
+ }
+ },
+ "emphasis": {
+ "textStyle": {
+ "color": "#eee"
+ }
+ }
+ }
+ }
+}
diff --git a/src/views/datav/xm/project/index.vue b/src/views/datav/xm/project/index.vue
index ed80475a..ce223038 100644
--- a/src/views/datav/xm/project/index.vue
+++ b/src/views/datav/xm/project/index.vue
@@ -9,18 +9,14 @@