Browse Source

第一次提交林业系统大屏前端代码-代码由杨俊提供

bobo 4 years ago
commit
eca0066ab6
100 changed files with 7341 additions and 0 deletions
  1. 17 0
      .babelrc
  2. 4 0
      .gitignore
  3. 2 0
      README.md
  4. 52 0
      package.json
  5. 28 0
      src/Layout/Detail/index.css
  6. 130 0
      src/Layout/Detail/index.jsx
  7. 35 0
      src/Layout/Home/index.css
  8. 275 0
      src/Layout/Home/index.jsx
  9. BIN
      src/Layout/MainFrame/bg.png
  10. 47 0
      src/Layout/MainFrame/index.css
  11. 58 0
      src/Layout/MainFrame/index.jsx
  12. 54 0
      src/api/data/CropCount.js
  13. 48 0
      src/api/data/DropDownListData.js
  14. 66 0
      src/api/data/FirmExplanation.js
  15. 50 0
      src/api/data/FloatWindowData.js
  16. 46 0
      src/api/data/HorizontalListTitleData.js
  17. 39 0
      src/api/data/InfoCount.js
  18. 38 0
      src/api/data/Layout.js
  19. 231 0
      src/api/data/LeftRoundChart.js
  20. 45 0
      src/api/data/MapDataNav.js
  21. 171 0
      src/api/data/MapDataNavEcharts.js
  22. 62 0
      src/api/data/MapDataNavTable.js
  23. 62 0
      src/api/data/MapDataNavTable1.js
  24. 83 0
      src/api/data/MapPointData/index.js
  25. 17 0
      src/api/data/MapPointData/湄潭县.json
  26. 1 0
      src/api/data/MapPointData/贵州省.json
  27. 81 0
      src/api/data/MapPointData1.js
  28. 47 0
      src/api/data/MapTooLNav.js
  29. 21 0
      src/api/data/MonitorData.js
  30. 77 0
      src/api/data/ParkDetailAMap.js
  31. 27 0
      src/api/data/ParkDetailMenu.js
  32. 48 0
      src/api/data/ParkDetailsInfo.js
  33. 44 0
      src/api/data/ParkDetailsInfo2.js
  34. 81 0
      src/api/data/ParkList.js
  35. 29 0
      src/api/data/PovertyAlleviation.js
  36. 40 0
      src/api/data/PovertyAlleviationArticle.js
  37. 42 0
      src/api/data/PovertyAlleviationArticleItem.js
  38. 18 0
      src/api/data/PovertyAlleviationResult.js
  39. 61 0
      src/api/data/ProductDetailsData.js
  40. 43 0
      src/api/data/RightAutoListData.js
  41. 234 0
      src/api/data/RightRoundChart.js
  42. 245 0
      src/api/data/SalesRatio.js
  43. 250 0
      src/api/data/ThingsEchartsData.js
  44. 39 0
      src/api/data/ThingsPiontData.js
  45. 47 0
      src/api/data/ThingsTypeData.js
  46. 67 0
      src/api/data/WarningData.js
  47. 69 0
      src/api/data/Weather.js
  48. 237 0
      src/api/data/YearOutputSales.js
  49. 208 0
      src/api/data/YieldScale.js
  50. 46 0
      src/api/data/childMenuData.js
  51. 44 0
      src/api/data/classificationListData.js
  52. 45 0
      src/api/data/leftMenuData.js
  53. 51 0
      src/api/data/merchantsData.js
  54. 49 0
      src/api/data/productListData.js
  55. 248 0
      src/api/index.js
  56. 154 0
      src/api/tool.js
  57. 539 0
      src/assets/font/demo.css
  58. 1412 0
      src/assets/font/demo_index.html
  59. 233 0
      src/assets/font/iconfont.css
  60. BIN
      src/assets/font/iconfont.eot
  61. 1 0
      src/assets/font/iconfont.js
  62. 387 0
      src/assets/font/iconfont.json
  63. 188 0
      src/assets/font/iconfont.svg
  64. BIN
      src/assets/font/iconfont.ttf
  65. BIN
      src/assets/font/iconfont.woff
  66. BIN
      src/assets/font/iconfont.woff2
  67. BIN
      src/assets/images/bg_yns.png
  68. BIN
      src/assets/images/fullScreen.png
  69. BIN
      src/assets/images/fullScreen_hover.png
  70. BIN
      src/assets/images/point.png
  71. BIN
      src/assets/images/support.png
  72. BIN
      src/assets/images/text_bg.png
  73. BIN
      src/assets/images/weather/null.png
  74. BIN
      src/assets/images/weather/中雨.png
  75. BIN
      src/assets/images/weather/中雪.png
  76. BIN
      src/assets/images/weather/冰雹.png
  77. BIN
      src/assets/images/weather/冻雨.png
  78. BIN
      src/assets/images/weather/多云.png
  79. BIN
      src/assets/images/weather/大暴雨.png
  80. BIN
      src/assets/images/weather/大雨.png
  81. BIN
      src/assets/images/weather/大雪.png
  82. BIN
      src/assets/images/weather/小雨.png
  83. BIN
      src/assets/images/weather/小雪.png
  84. BIN
      src/assets/images/weather/扬沙.png
  85. BIN
      src/assets/images/weather/晴.png
  86. BIN
      src/assets/images/weather/暴雨.png
  87. BIN
      src/assets/images/weather/暴雪.png
  88. BIN
      src/assets/images/weather/沙尘暴.png
  89. BIN
      src/assets/images/weather/浮尘.png
  90. BIN
      src/assets/images/weather/特大暴雨.png
  91. BIN
      src/assets/images/weather/阴.png
  92. BIN
      src/assets/images/weather/阵雨.png
  93. BIN
      src/assets/images/weather/阵雪.png
  94. BIN
      src/assets/images/weather/雨夹雪.png
  95. BIN
      src/assets/images/weather/雷阵雨.png
  96. BIN
      src/assets/images/weather/雷阵雨加冰雹.png
  97. BIN
      src/assets/images/weather/雾.png
  98. BIN
      src/assets/images/weather/风.png
  99. 228 0
      src/assets/monitor/U/U.js
  100. 0 0
      src/assets/monitor/U/css/my.css

+ 17 - 0
.babelrc

@@ -0,0 +1,17 @@
+{
+  "presets": [
+    [
+      "@babel/preset-env"
+    ],
+    "@babel/preset-react"
+  ],
+  "plugins": [
+    "transform-es2015-modules-amd",
+    "@babel/plugin-proposal-class-properties",
+    [
+      "react-css-modules",{
+        "generateScopedName": "[hash:base64]"
+      }
+    ]
+  ]
+}

+ 4 - 0
.gitignore

@@ -0,0 +1,4 @@
+/node_modules
+/dist
+/dist.zip
+/package-lock.json

+ 2 - 0
README.md

@@ -0,0 +1,2 @@
+# 大屏H5Tpl
+

+ 52 - 0
package.json

@@ -0,0 +1,52 @@
+{
+  "name": "analyze",
+  "version": "1.0.0",
+  "description": "",
+  "main": "index.js",
+  "scripts": {
+    "start": "webpack-dev-server --mode=development",
+    "build": "webpack --mode=production",
+    "dev": "webpack --mode=development"
+  },
+  "author": "",
+  "license": "ISC",
+  "devDependencies": {
+    "@babel/core": "^7.5.4",
+    "@babel/plugin-proposal-class-properties": "^7.5.0",
+    "@babel/preset-env": "^7.5.4",
+    "@babel/preset-react": "^7.0.0",
+    "babel-loader": "^8.0.6",
+    "babel-plugin-react-css-modules": "^5.2.6",
+    "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
+    "babel-plugin-transform-runtime": "^6.23.0",
+    "clean-webpack-plugin": "^3.0.0",
+    "copy-webpack-plugin": "^5.0.3",
+    "css-loader": "^3.0.0",
+    "file-loader": "^4.0.0",
+    "html-loader": "^0.5.5",
+    "html-webpack-plugin": "^3.2.0",
+    "mini-css-extract-plugin": "^0.7.0",
+    "sass-loader": "^7.1.0",
+    "url-loader": "^2.0.1",
+    "webpack": "^4.35.3",
+    "webpack-cli": "^3.3.5",
+    "webpack-dev-server": "^3.7.2",
+    "webpack-sftp-client": "^1.2.1"
+  },
+  "dependencies": {
+    "@babel/polyfill": "^7.4.4",
+    "echarts": "^4.2.1",
+    "echarts-amap": "^1.4.15-rc.1",
+    "echarts-for-react": "^2.0.15-beta.0",
+    "md5": "^2.2.1",
+    "react": "^16.8.6",
+    "react-amap": "^1.2.8",
+    "react-dom": "^16.8.6",
+    "react-loadable": "^5.5.0",
+    "react-redux": "^7.1.1",
+    "react-router-dom": "^5.0.1",
+    "react-slick": "^0.24.0",
+    "redux": "^4.0.4",
+    "redux-thunk": "^2.3.0"
+  }
+}

+ 28 - 0
src/Layout/Detail/index.css

@@ -0,0 +1,28 @@
+.returnBtn {
+    /*左上角返回按钮*/
+    position: absolute;
+    top: 85px;
+    left: 59px;
+    width: 36px;
+    height: 40px;
+    background: rgba(11, 24, 56, 1);
+    box-shadow: 0 1px 2px 0 rgba(4, 8, 22, 0.1), 0 0 12px 0 rgba(29, 150, 246, 0.64) inset;
+    border-radius: 4px;
+    border: 1px solid rgba(5, 146, 247, 0.5);
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    transform: rotateZ(180deg);
+}
+.returnBtn::before {
+    content: "";
+    display: block;
+    border: 1px solid;
+    border-image: linear-gradient(0deg, rgba(12, 196, 252, 0.7), rgba(2, 115, 255, 0.7)) 2 2;
+    width: 18px;
+    height: 18px;
+    transform: rotateZ(-45deg);
+    border-top: none;
+    border-left: none;
+    margin-left: -11px;
+}

+ 130 - 0
src/Layout/Detail/index.jsx

@@ -0,0 +1,130 @@
+import "@babel/polyfill";
+import React from 'react';
+import styles from './index.css';
+import MainFrame from '../MainFrame/index.jsx';
+import NavMenu from '../../components/NavMenu/index.jsx';
+import Weather from '../../components/Weather/index.jsx';
+import Overview from '../../pages/Overview/index';
+import {getData} from "../../api/index";
+
+export default class Init extends React.Component {
+    state = {
+        config: {
+            data: {
+                list: []
+            }
+        },
+        title:"贵州“林产品态势图”应用平台",
+        navIndex: 0
+    }
+    componentDidMount() {
+        const {match: {
+                params
+            },item} = this.props;
+        getData({
+            port: "ParkList",
+            ...params,
+            id:(item || {}).id
+        }).then(res => {
+            let {
+                    code,
+                    config,
+                    config: {
+                        pId,
+                        title = '',
+                        data: {
+                            list = []
+                        }
+                    }
+                } = res, {
+                    navIndex = 0
+                } = this.state;
+            if (!code) {
+                list.map((x,i)=>{
+                    //查找当前pId项
+                    pId.includes(x.id) && (navIndex = i);
+                });
+                //控制只显示一个
+                navIndex>-1 && (config.data.list = [list[navIndex]]);
+                this.setState({config,title});
+                config.data.list.length && this.click(0);
+            }
+        });
+    }
+    click = navIndex => {
+        //点击切换pId
+        let {
+            match: {
+                path,
+                url
+            }
+        } = this.props;
+        const {config:{
+            data:{
+                title = '',
+                list = []
+            }
+        }} = this.state;
+        url = url.split("/");
+        path = path
+        .split("/")
+        .map((x, i) => {
+            const iu = url[i];
+            const k = x.indexOf(":"),
+                j = x.indexOf("?");
+            if (k != -1) {
+                x = x.substring(k + 1, j);
+            }
+            if(x == "pId"){
+                let fg = iu.split("-");
+                fg.splice(1,1,list[navIndex].id);
+                x = fg.join("-") || x;
+            }
+            return iu || x;
+        }).join("/");
+        this.props.history.push(path);
+        //如果标题为空 取动态标题
+        this.setState({navIndex,title:title || (list[navIndex] || {}).name || ''});
+    }
+    //内页后退
+    goBack = ()=>{
+        const {match:{
+            params = {}
+        }} = this.props;
+        const path = Object.keys(params).map(x=>{
+            if(x == "pId"){
+               return params[x].split("-")[0] || x;
+            }
+           return params[x];
+        }).join("/");
+        this.props.history.push("/home/"+path);
+    }
+    render() {
+        const {
+            config,
+            navIndex,
+            title,
+            config: {
+                data,
+                data: {
+                    list = []
+                }
+            }
+        } = this.state;
+        return (
+            <MainFrame title={title}>
+                <div slot={'SubCenter'}></div>
+                <NavMenu
+                    time={120000}
+                    noEdit={true}
+                    slot={'SubCenter'}
+                    index={navIndex}
+                    data={config}
+                    active={navIndex => this.click(navIndex)}></NavMenu>
+                <Weather slot={"SubRight"} RequestData={data}/>
+                <a onClick={()=>this.goBack()} className={styles.returnBtn}></a>
+                <Overview {...this.props} navItem={list[navIndex]}></Overview>
+            </MainFrame>
+        );
+    }
+}

+ 35 - 0
src/Layout/Home/index.css

@@ -0,0 +1,35 @@
+.active {
+  color: rgba(255, 255, 255, 1);
+  background: rgba(71, 147, 250, 0.24);
+  box-shadow: 0 0 13px 0 rgba(97, 173, 246, 1) inset;
+  width: 100%;
+}
+.FloatWindow {
+  position: fixed !important;
+  cursor: pointer;
+  width: 380px;
+  z-index: 999999999999999;
+  box-shadow: 0 0 30px 0 rgba(255, 255, 255, .2);
+}
+.FloatWindowBox {
+  height: 100%;
+}
+
+.FloatWindowBox ul {
+  max-height: 150px;
+  overflow: hidden;
+  overflow-y: auto;
+  margin-bottom: 10px;
+}
+.FloatWindowBox ul li {
+  padding: 0 2em;
+  text-align: center;
+  font-size: 13px;
+  line-height: 2em;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+.FloatWindowBox ul li:hover{
+    background: rgba(255, 255, 255, .2);
+}

+ 275 - 0
src/Layout/Home/index.jsx

@@ -0,0 +1,275 @@
+import "@babel/polyfill";
+import React from 'react';
+import styles from "./index.css";
+import MainFrame from '../MainFrame/index.jsx';
+import NavMenu from '../../components/NavMenu/index.jsx';
+import Weather from '../../components/Weather/index.jsx';
+import { Route, Redirect, NavLink, Link } from "react-router-dom";
+import { getData } from "../../api/index";
+import component from '../../config/component';
+import Box from "../../components/Box/index.jsx";
+import Title from "../../components/Title/index.jsx";
+const urlPath = props => {
+    try {
+        let {
+            match: {
+                path: _path,
+                url
+            },
+            item: {
+                path
+            },
+            list = []
+        } = props,
+            page = -1;
+        url = url.split("/");
+        _path = _path
+            .split("/")
+            .map((x, i) => {
+                const iu = url[i];
+                const k = x.indexOf(":"),
+                    j = x.indexOf("?");
+                if (k != -1) {
+                    x = x.substring(k + 1, j);
+                }
+                if (x == "pId") {
+                    x = iu.split("-")[0] || x;
+                }
+                if (x == 'page') {
+                    page = i;
+                    //查找是否存在
+                    const a = list.filter(x => {
+                        if (x.path == "/" + iu)
+                            return x;
+                    }
+                    );
+                    if (a.length) {
+                        x = iu || x;
+                    } else {
+                        x = list[0]
+                            .path
+                            .split("/")[1] || x;
+                    }
+                }
+                return iu || x;
+            });
+        //替换page项路由
+        page != -1 && _path.splice(page, 1, path.substring(1, path.length));
+        return _path.join("/");
+    } catch (error) {
+        return "";
+    }
+
+}
+const ALink = props => {
+    const {
+        item: {
+            name,
+            icon
+        }
+    } = props;
+    return <NavLink
+        to={urlPath(props)}
+        className={`iconfont ${icon}`}
+        activeClassName={styles.active}
+        style={{
+            padding: "5px 14px"
+        }}>{name}</NavLink>
+}
+export default class Init extends React.Component {
+    state = {
+        config: {
+            data: {
+                title: "",
+                cityCode: "",
+                list: []
+            }
+        },
+        navIndex: 0,
+        FloatWindowData: {
+            data: {
+                list: [],
+                title: ""
+            }
+        }
+    }
+    componentDidMount() {
+        const {
+            match: {
+                params,
+                params: {
+                    pId = ""
+                }
+            }
+        } = this.props;
+        getData({
+            port: "Layout",
+            ...params,
+            pId: (pId || "").split("-")[0]
+        }).then(res => {
+            const { code, config } = res;
+            if (!code) {
+                this.setState({ config });
+            }
+        });
+
+        getData({
+            port: "FloatWindowData",
+            ...params,
+            pId: (pId || "").split("-")[0]
+        }).then(res => {
+            const { code, config } = res;
+            if (!code) {
+                this.setState({ FloatWindowData: config });
+            }
+        });
+
+    }
+    click = navIndex => {
+        this.setState({ navIndex });
+    }
+    redirect = e => {
+        const {
+            config: {
+                data: {
+                    list = []
+                }
+            }
+        } = this.state,
+            path = urlPath({
+                ...(this.props),
+                list,
+                item: list[0]
+            });
+        return path && <Redirect to={path} />
+    }
+    path = path => {
+        let {
+            match: {
+                path: _path,
+            }
+        } = this.props;
+        return _path.split("/").map(x => {
+            let zs = "";
+            const k = x.indexOf(":"),
+                j = x.indexOf("?");
+            if (k != -1) {
+                zs = x.substring(k + 1, j);
+            }
+            if (zs == 'page') {
+                return path.split("/")[1];
+            }
+            return x;
+        }).join("/");
+    }
+    a1a = null;
+    oneInner = null;
+    floatWindow = oneInner => {
+        clearInterval(this.a1a);
+        if (!oneInner) return '';
+        //定时器
+        this.a1a = setInterval(moves, 400);
+        //函数
+        var x = 10;
+        var y = 10;
+
+        function moves() {
+            var tops = oneInner.offsetTop
+            var lefts = oneInner.offsetLeft
+
+            if (lefts >= document.documentElement.clientWidth - oneInner.offsetWidth || lefts <= 0) {
+                x = -x
+            }
+
+            if (tops >= document.documentElement.clientHeight - oneInner.offsetHeight || tops <= 0) {
+                y = -y
+            }
+
+            tops += y;
+            lefts += x;
+
+            oneInner.style.top = tops + "px"
+            oneInner.style.left = lefts + "px"
+        }
+        this.oneInner = oneInner;
+        //悬停停止
+        oneInner.onmouseover = function () {
+            clearInterval(this.a1a);
+        }
+        //放手继续运动
+        oneInner.onmouseout = function () {
+            this.a1a = setInterval(moves, 400);
+        }
+    }
+    //进入内页
+    goLink = (e, i) => {
+        //处理path  替换 页面 与 pId
+        let { match: {
+            path,
+            url
+        } } = this.props;
+        url = url.split("/");
+        path = path.split("/").map((x, i) => {
+            const iu = url[i];
+            if (i == 1) {
+                return "detail";
+            }
+            const k = x.indexOf(":"),
+                j = x.indexOf("?");
+            if (k != -1) {
+                x = x.substring(k + 1, j);
+            }
+            if (x == 'pId') {
+                return iu + "-" + e.id;
+            }
+            return iu;
+        }).join("/");
+        return <Link style={{color:"#fff"}} to={path}>{e.name}</Link>
+    }
+    render() {
+        const {
+            config,
+            navIndex,
+            config: {
+                data,
+                data: {
+                    title = "",
+                    list = [],
+                    floatWindow
+                }
+            },
+            FloatWindowData
+        } = this.state;
+        return (
+            <MainFrame title={title}>
+                {floatWindow?<div ref={e => this.floatWindow(e)} className={styles.FloatWindow}>
+                    <Box className={styles.FloatWindowBox}>
+                        <Title>{FloatWindowData.data.title}</Title>
+                        <ul onMouseOver={e => clearInterval(this.a1a)}>
+                            {FloatWindowData.data.list.map(x => {
+                                return (<li key={x.id} onClick={e => this.go(x)}>{this.goLink(x)}</li>)
+                            })}
+                        </ul>
+                    </Box>
+                </div>:''}
+
+                <NavMenu
+                    noEdit={true}
+                    slot={'SubCenter'}
+                    index={navIndex}
+                    data={config}
+                    active={navIndex => this.click(navIndex)}>
+                    <ALink
+                        {...this.props}
+                        list={list}
+                        style={{
+                            padding: "0"
+                        }}></ALink>
+                </NavMenu>
+                <Weather slot={"SubRight"} RequestData={data} />
+                <Route exact={true} path={this.props.path} render={e => this.redirect(e)} />
+                {!!list.length && list.map((x, key) => < Route exact={false} key={key} path={this.path(x.path)} component={component[x.path]} />)}
+            </MainFrame>
+        );
+    }
+}

BIN
src/Layout/MainFrame/bg.png


+ 47 - 0
src/Layout/MainFrame/index.css

@@ -0,0 +1,47 @@
+.MainBg{
+    width: 1920px;
+    height: 1080px;
+    background: #08071f url(./bg.png) no-repeat center center;
+    background-size: 100% 100%;
+    position: relative;
+    display: flex;
+    flex-direction: column;
+}
+.MainBg * {
+    box-sizing: border-box;
+}
+.MainBg .Title{
+    height: 60px;
+    color:#0b9cdf;
+    line-height: 70px;
+    text-align: center;
+    overflow: hidden;
+    font-size:24px;
+    font-weight:400;
+}
+.MainBg .FullScreen{
+    position: absolute;
+    right: 15px;
+    top: 15px;
+}
+.MainBg .subTitle{
+    display: flex;
+    margin-top: 25px;
+}
+.MainBg .subTitle .subLeft,
+.MainBg .subTitle .subRight{
+    width: 460px;
+    display: flex;
+}
+.MainBg .subTitle .subCenter{
+    flex: 1;
+}
+.MainBg .content{
+    margin: 20px 40px 0;
+    /* flex: 1; */
+    display: flex;
+    height: 897px;
+}
+.MainBg .foot{
+    min-height: 40px;
+}

+ 58 - 0
src/Layout/MainFrame/index.jsx

@@ -0,0 +1,58 @@
+//主要框架 大背景标题 全屏
+import React from 'react';
+import styles from './index.css';
+import FullScreen from '../../components/FullScreen/index.jsx';
+export const MainFrame = props => {
+    let {
+        children,
+        className,
+        title = '',
+        ...othProps
+    } = props,
+    SubCenter = '',Footer = '',SubRight = "",SubLeft = "";
+    children = React.Children.map(children, child=>{
+        if(!child)return child;
+        const {slot = '',className,...oth} = child.props;
+        switch(slot){
+            case "SubCenter":
+                SubCenter = React.cloneElement(child,{
+                    ...oth,
+                    className:`${styles.subCenter} ${className}`
+                });
+                return '';
+            case "Foot":
+                Footer = child;
+                return '';
+            case "SubRight":
+                SubRight = child;
+                return;
+            case "SubLeft":
+                SubLeft = child;
+                return;
+            default:
+                return child
+        }
+    })
+    return (
+        <div {...othProps} className={`${styles.MainBg} ${className}`}>
+            <FullScreen className={styles.FullScreen}/>
+            <div className={styles.Title}>{title}</div>
+            <div className={styles.subTitle}>
+                <div className={styles.subLeft}>
+                    {SubLeft}
+                </div>
+                    {SubCenter}
+                <div className={styles.subRight}>
+                    {SubRight}
+                </div>
+            </div>
+            <div className={styles.content}>
+                {children}
+            </div>
+            <div className={styles.foot}>
+                {Footer}
+            </div>
+        </div>
+    );
+}
+export default MainFrame;

+ 54 - 0
src/api/data/CropCount.js

@@ -0,0 +1,54 @@
+export default {
+    mName: "TitleBgTextList",
+    edit: "All",
+    keys: {
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "接口连接",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                _name: "数据源结构关联",
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构",
+                keyRelated: "集合键关联"
+            }
+        },
+        list: {
+            name: '名称',
+            id: "数据ID",
+            value: "统计",
+            title: "标题"
+        }
+    },
+    data: {
+        dataInterface: {
+            url:"/forest-admin/big/company/cat",
+            params: [
+                {
+                    value: "id"
+                }
+            ],
+            dataSource: [
+                {
+                    SourceKey: "data.title",
+                    AimsKey: "data.title"
+                }, {
+                    SourceKey: "data",
+                    AimsKey: "data.list",
+                    keyRelated:'type.name|num.value'
+                }
+            ]
+        },
+        list: [
+            // {
+            //     name: '全部',
+            //     id: 1,
+            //     value: 12,
+            //     title: "全部涉林企业统计"
+            // }
+        ]
+    }
+}

+ 48 - 0
src/api/data/DropDownListData.js

@@ -0,0 +1,48 @@
+export default {
+    mName: "TitleListText",
+    edit: "All",
+    keys: {
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "数据接口",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                _name: "数据源结构关联",
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构"
+            }
+        },
+        list: {
+            title:"标题",
+            name: '名称',
+            id: "数据ID"
+        }
+    },
+    data: {
+        dataInterface: {
+            url: "",
+            params: [
+                {
+                    value: 'id'
+                }
+            ],
+            dataSource: [
+                {
+                    SourceKey: "retBody.list",
+                    AimsKey: "data.list",
+                    keyRelated:""
+                }
+            ]
+        },
+        list: [
+            {
+                id: 1,
+                name: '1',
+                title:""
+            }
+        ]
+    }
+}

File diff suppressed because it is too large
+ 66 - 0
src/api/data/FirmExplanation.js


+ 50 - 0
src/api/data/FloatWindowData.js

@@ -0,0 +1,50 @@
+export default {
+    mName: "FloatWindowData",
+    edit: "All",
+    keys: {
+        title: "标题",
+        list: {
+            name: '名称',
+            id: "数据ID"
+        },
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "接口连接",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                _name: "数据源结构关联",
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构",
+                keyRelated: "集合键关联"
+            }
+        }
+    },
+    data: {
+        dataInterface: {
+            url: "/forest-admin/big/1/data9",
+            params: [
+                {
+                    value: "id"
+                }
+            ],
+            dataSource: [
+                {
+                    SourceKey: "data.title",
+                    AimsKey: "data.title"
+                }, {
+                    SourceKey: "data.detail",
+                    AimsKey: "data.list"
+                }
+            ]
+        },
+        list: [
+            {
+                name: '全部',
+                id: 1,
+            }
+        ]
+    }
+}

+ 46 - 0
src/api/data/HorizontalListTitleData.js

@@ -0,0 +1,46 @@
+export default {
+    mName: "TitleListText",
+    edit: "All",
+    keys: {
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "数据接口",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                _name: "数据源结构关联",
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构"
+            }
+        },
+        list: {
+            name: '名称',
+            value: "数据"
+        }
+    },
+    data: {
+        dataInterface: {
+            url: "",
+            params: [
+                {
+                    value: 'id'
+                }
+            ],
+            dataSource: [
+                {
+                    SourceKey: "retBody.list",
+                    AimsKey: "data.list",
+                    keyRelated:""
+                }
+            ]
+        },
+        list: [
+            {
+                id: 1,
+                name: '签约农户0',
+            }
+        ]
+    }
+}

+ 39 - 0
src/api/data/InfoCount.js

@@ -0,0 +1,39 @@
+export default {
+    mName:"TitlePieList",
+    edit : "All",
+    keys : {
+        title: "主标题",
+        total: "中心标题",
+        totalName: '中心副标题',
+        list: {
+            name: "名称",
+            value: "数据"
+        }
+    },
+    data : {
+        title: "坝区统计",
+        totalName: '坝区个数(个)',
+        total: "12",
+        list: [
+            {
+                name: '总种植面积(亩)',
+                value: '18350'
+            }, {
+                name: '耕地出产值(元)',
+                value: '18350'
+            }, {
+                name: '土地流转率',
+                value: '18350'
+            }, {
+                name: '农民收入贡献率',
+                value: '18350'
+            }, {
+                name: '产销对接率',
+                value: '18350'
+            }, {
+                name: '产业参保率',
+                value: '18350'
+            }
+        ]
+    }
+}

+ 38 - 0
src/api/data/Layout.js

@@ -0,0 +1,38 @@
+export default {
+    edit : "All",
+    mName:"Layout",
+    keys : {
+        title: "大屏标题",
+        cityCode: "城市名称或编码",
+        floatWindow:"漂浮窗口(有值=显示)",
+        list: {
+            name: "名称",
+            path: "路径",
+            icon: "图标"
+        }
+    },
+    data : {
+        title: "贵州“林产品态势图”应用平台",
+        cityCode: "贵阳市",
+        floatWindow:"1",
+        list: [
+            {
+                name: "林业态势",
+                path: "/situation",
+                icon: "icon-daohang"
+            }, {
+                name: "涉林分布",
+                path: "/distributed",
+                icon: "icon-daohang"
+            },{
+                name: "产业现状",
+                path: "/Analysis",
+                icon: "icon-daohang"
+            }, {
+                name: "林产品展示",
+                path: "/industry",
+                icon: "icon-daohang"
+            }
+        ]
+    }
+}

+ 231 - 0
src/api/data/LeftRoundChart.js

@@ -0,0 +1,231 @@
+export default {
+    mName : "LeftRoundChart123",
+    edit : "Echarts",
+    keys : {
+        dataInterface:{
+            _name:"数据接口配置",
+            url:"接口连接",
+            params:{
+                _name:"请求参数",
+                value:"接口参数名称(需有父级数据关联)"
+            },
+            dataSource:{
+                _name:"数据源结构关联",
+                SourceKey:"源数据结构",
+                AimsKey:"目标数据结构",
+                keyRelated:"集合键关联"
+            }
+        },
+        config: {
+            title: {
+                text: "中心标题",
+                subtext: "副标题"
+            },
+            legend: {
+                data: {
+                    _name: "图例列表",
+                    name: "对应数据名称"
+                }
+            },
+            series: {
+                data: {
+                    name: "名称",
+                    value: "数据",
+                    color: "颜色"
+                }
+            }
+        }
+    },
+    option : {
+        title: {
+            x: '54%',
+            y: '38%',
+            textAlign:"center",
+            textStyle: {
+                fontWeight: 300,
+                fontSize: 10,
+                color: 'rgba(174, 220, 244, 1)',
+                align:"center"
+            },
+            subtextStyle: {
+                color:"rgba(174, 220, 244, 1)",
+                fontSize:14,
+                align:"center"
+            }
+        },
+        legend: {
+            left:"5%",
+            right: "0%",
+            top:"auto",
+            bottom:"5%",
+            itemHeight: 8,
+            itemWidth: 16,
+            itemGap: 10,
+            textStyle: {
+                fontSize: 12,
+                color: '{c}'
+            }
+        },
+        tooltip: {
+            show: false
+        },
+        series: [
+            {
+                radius: [
+                    '35%', '60%'
+                ],
+                center: [
+                    '55%', '45%'
+                ],
+                type: 'pie',
+                label: {
+                    normal: {
+                        show: false
+                    },
+                    emphasis: {
+                        show: false
+                    }
+                },
+                labelLine: {
+                    normal: {
+                        show: false
+                    },
+                    emphasis: {
+                        show: false
+                    }
+                },
+                animation: false,
+                tooltip: {
+                    show: false
+                },
+                itemStyle: {
+                    normal: {
+                        color: 'rgba(68, 102, 244, 0.2)'
+                    }
+                },
+                data: [
+                    {
+                        value: 1
+                    }
+                ]
+            }, {
+                radius: [
+                    '28%', '35%'
+                ],
+                center: [
+                    '55%', '45%'
+                ],
+                type: 'pie',
+                label: {
+                    normal: {
+                        show: false
+                    },
+                    emphasis: {
+                        show: false
+                    }
+                },
+                labelLine: {
+                    normal: {
+                        show: false
+                    },
+                    emphasis: {
+                        show: false
+                    }
+                },
+                animation: false,
+                tooltip: {
+                    show: false
+                },
+                itemStyle: {
+                    normal: {
+                        color: 'rgba(68, 102, 244, 0.2)'
+                    }
+                },
+                data: [
+                    {
+                        value: 1
+                    }
+                ]
+            }, {
+                radius: [
+                    '35%', "55%"
+                ],
+                center: [
+                    '55%', '45%'
+                ],
+                type: 'pie',
+                roseType: 'area',
+                itemStyle: {
+                    normal: {
+                        color: params => params.data.color
+                    }
+                },
+                labelLine: {
+                    normal: {
+                        show: true,
+                        length: 4,
+                        length2: 4
+                    },
+                    emphasis: {
+                        show: true
+                    }
+                },
+                label: {
+                    normal: {
+                        show: true,
+                        formatter: "{d}%",
+                        textStyle: {
+                            fontSize: 12
+                        }
+                    },
+                    emphasis: {
+                        show: true
+                    }
+                }
+            }
+        ]
+
+    },
+    data : {
+        dataInterface:{
+            url:"",
+            params:[{
+                value:"typeId"
+            }],
+            dataSource:[{
+                SourceKey:"data.list",
+                AimsKey:"data.config.legend.data",
+                keyRelated:'name.name'
+            },{
+                SourceKey:"data.list",
+                AimsKey:"data.config.series.2.data",
+                keyRelated:'name.name|value.value|color.color'
+            }],
+        },
+        config: {
+            title: {
+                text: '销售额(万元)',
+                subtext:"8999"
+            },
+            legend: {
+                data: [
+                    {
+                        name: '野谷米'
+                    }
+                ]
+            },
+            series: [
+                null,
+                null, {
+                    data: [
+                        {
+                            value: 435,
+                            name: '野谷米',
+                            color: "rgba(76, 132, 255, 1)"
+                        }
+                    ]
+                }
+            ]
+        }
+    }
+}

+ 45 - 0
src/api/data/MapDataNav.js

@@ -0,0 +1,45 @@
+export default {
+    mName:"VerticalList",
+    edit : "All",
+    keys : {
+        dataInterface:{
+            _name:"数据接口配置",
+            url:"接口连接",
+            params:{
+                _name:"请求参数",
+                value:"接口参数名称(需有父级数据关联)"
+            },
+            dataSource:{
+                _name:"数据源结构关联",
+                SourceKey:"源数据结构",
+                AimsKey:"目标数据结构",
+                keyRelated:"集合键关联"
+            }
+        },
+        list: {
+            name: '名称',
+            value: "数据",
+            unit: "单位"
+        }
+    },
+    data : {
+        dataInterface:{
+            url:"/htdata/map/findTopicList",
+            params:[{
+                value:"id"
+            }],
+            dataSource:[{
+                SourceKey:"retBody.list",
+                AimsKey:"data.list",
+                keyRelated:''
+            }],
+        },
+        list: [
+            {
+                name: '1',
+                value: "1",
+                unit: "1"
+            }
+        ]
+    }
+}

+ 171 - 0
src/api/data/MapDataNavEcharts.js

@@ -0,0 +1,171 @@
+export default {
+    mName : "TitleEcharts",
+    edit : "Echarts",
+    keys : {
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "接口连接",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构",
+                keyRelated: "集合键关联"
+            }
+        },
+        title: "标题",
+        config: {
+            xAxis: {
+                data: {
+                    _name: "X轴数据",
+                    value: "数据"
+                }
+            },
+            series: {
+                type: "图表类型",
+                barWidth: "柱宽度",
+                data: {
+                    _name: "柱状数据",
+                    value: "数据"
+                }
+            }
+        }
+    },
+    option : {
+        grid: {
+            left: '2%',
+            right: '2%',
+            bottom: '32%',
+            top: "10%",
+            containLabel: true
+        },
+        tooltip: {
+            show: false
+        },
+        xAxis: {
+            axisLine: {
+                show: false
+            },
+            axisTick: {
+                show: false
+            },
+            axisLabel: {
+                color: "rgba(50, 86, 111, 1)",
+                fontSize: 14,
+                interval:0,
+                rotate:40
+            }
+        },
+        yAxis: {
+            show: true,
+            scale: true,
+            minInterval: 0.1,
+            axisLine: {
+                show: false
+            },
+            axisTick: {
+                show: false
+            },
+            axisLabel: {
+                color: "rgba(50, 86, 111, 1)",
+                fontSize: 14
+            },
+            splitLine: {
+                lineStyle: {
+                    color: 'rgba(50, 86, 111, 0.2)'
+                }
+            }
+        },
+        dataZoom: [
+            {
+                show: true,
+                height: 15,
+                xAxisIndex: [0],
+                handleSize: '150%',
+                bottom:"26%",
+                handleStyle: {
+                    color: "rgba(12, 196, 252, .9)"
+                },
+                textStyle: {
+                    color: "rgba(174, 220, 244, 1)"
+                },
+                borderColor: "rgba(2, 115, 255, .6)"
+            }, {
+                type: "inside",
+                show: true,
+                height: 15,
+                bottom:"26%"
+            }
+        ],
+        series: [
+            {
+                type: 'bar',
+                barWidth: 14,
+                itemStyle: {
+                    barBorderRadius: 6,
+                    color: {
+                        type: 'linear',
+                        x: 0,
+                        y: 1,
+                        colorStops: [
+                            {
+                                offset: 0,
+                                color: '#073B50' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: '#09BDEF' // 100% 处的颜色
+                            }
+                        ],
+                        global: false // 缺省为 false
+                    }
+                }
+            }
+        ]
+    },
+    data : {
+        dataInterface: {
+            url:'',
+            params: [
+                {
+                    value: "id"
+                }
+            ],
+            dataSource: [
+                {
+                    SourceKey: "retBody.title",
+                    AimsKey: "data.title"
+                }, {
+                    SourceKey: "retBody.list",
+                    AimsKey: "data.config.series.0.data",
+                    keyRelated: 'value.value'
+                }, {
+                    SourceKey: "retBody.list",
+                    AimsKey: "data.config.xAxis.data",
+                    keyRelated: 'name.value'
+                }
+            ]
+        },
+        config: {
+            xAxis: {
+                data: [
+                    {
+                        value: "竹"
+                    }
+                ]
+            },
+            series: [
+                {
+                    type: "bar",
+                    barWidth: 14,
+                    data: [
+                        {
+                            value: "100"
+                        }
+                    ]
+                }
+            ]
+        }
+    }
+}

+ 62 - 0
src/api/data/MapDataNavTable.js

@@ -0,0 +1,62 @@
+export default {
+    mName:"VerticalList",
+    edit : "All",
+    keys : {
+        dataInterface:{
+            _name:"数据接口配置",
+            url:"接口连接",
+            params:{
+                _name:"请求参数",
+                value:"接口参数名称(需有父级数据关联)"
+            },
+            dataSource:{
+                _name:"数据源结构关联",
+                SourceKey:"源数据结构",
+                AimsKey:"目标数据结构",
+                keyRelated:"集合键关联"
+            }
+        },
+        title: "主标题",
+		tabHeader: {
+			_name:"表头列表",
+			name: "表头"
+		},
+		list: {
+			value: "0"
+		}
+    },
+    data : {
+        dataInterface:{
+            url:"/forest-admin/big/1/data6",
+            params:[{
+                value:"id"
+            }],
+            dataSource:[{
+                SourceKey:"data.tabHeader",
+                AimsKey:"data.tabHeader",
+                keyRelated:''
+            },{
+                SourceKey:"data.list",
+                AimsKey:"data.list",
+                keyRelated:''
+            },{
+                SourceKey:"data.title",
+                AimsKey:"data.title",
+                keyRelated:''
+            }],
+        },
+        title:"",
+        tabHeader:[{
+            name: "日期"
+        }, {
+            name: "名称"
+        }],
+        list: [
+            [{
+                value: "1"
+            }, {
+                value: "1"
+            },]
+        ]
+    }
+}

+ 62 - 0
src/api/data/MapDataNavTable1.js

@@ -0,0 +1,62 @@
+export default {
+    mName:"VerticalList12",
+    edit : "All",
+    keys : {
+        dataInterface:{
+            _name:"数据接口配置",
+            url:"接口连接",
+            params:{
+                _name:"请求参数",
+                value:"接口参数名称(需有父级数据关联)"
+            },
+            dataSource:{
+                _name:"数据源结构关联",
+                SourceKey:"源数据结构",
+                AimsKey:"目标数据结构",
+                keyRelated:"集合键关联"
+            }
+        },
+        title: "主标题",
+		tabHeader: {
+			_name:"表头列表",
+			name: "表头"
+		},
+		list: {
+			value: "0"
+		}
+    },
+    data : {
+        dataInterface:{
+            url:"/forest-admin/big/1/data7",
+            params:[{
+                value:"id"
+            }],
+            dataSource:[{
+                SourceKey:"data.tabHeader",
+                AimsKey:"data.tabHeader",
+                keyRelated:''
+            },{
+                SourceKey:"data.list",
+                AimsKey:"data.list",
+                keyRelated:''
+            },{
+                SourceKey:"data.title",
+                AimsKey:"data.title",
+                keyRelated:''
+            }],
+        },
+        title:"",
+        tabHeader:[{
+            name: "日期"
+        }, {
+            name: "名称"
+        }],
+        list: [
+            [{
+                value: "2019-0-9"
+            }, {
+                value: "牛腿南瓜"
+            },]
+        ]
+    }
+}

+ 83 - 0
src/api/data/MapPointData/index.js

@@ -0,0 +1,83 @@
+import meitan from './贵州省.json';
+export default {
+    mName: "AMap",
+    edit: "AMap",
+    keys: {
+        "amapkey": "key",
+        center: "中心点",
+        "map": {
+            "mapStyle": "地图样式"
+        },
+        "legend": {
+            "_name": "图例",
+            "name": "图例名称",
+            "icon": "图例内容",
+            "color": "颜色"
+        },
+        "covers": {
+            "_name": "覆盖物集合",
+            "type": "覆盖物类型",
+            "legend": "绑定图例序号",
+            "value": "数据(只在点类型起作用)"
+        },
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "数据接口",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                _name: "数据源结构关联",
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构"
+            }
+        }
+    },
+    option: {
+        geoJson: {
+            meitan
+        }
+    },
+    data: {
+        dataInterface: {
+            url: "/htdata/map/findTopicFigure",
+            params: [
+                {
+                    value: 'id'
+                }
+            ],
+            dataSource: [
+                {
+                    SourceKey: "retBody.list",
+                    AimsKey: "data.list",
+                    keyRelated:""
+                }
+            ]
+        },
+        list: [{
+            type: "",
+            value: "",
+            lng: "",
+            lat: ""
+        }],
+        center: [106.630153, 26.647661],
+        "_caveat": "提示:目前地图配置使用高德地图API。(图例内容:图标、图片地址、文字)",
+        "amapkey": "",
+        "map": {
+            "mapStyle": "",
+            "center": [
+                106.630153,26.647661
+            ],
+            "zoom": 15
+        },
+        "legend": [
+            {
+                "name": "",
+                "icon": "",
+                "color": ""
+            }
+        ],
+        "covers": []
+    }
+}

File diff suppressed because it is too large
+ 17 - 0
src/api/data/MapPointData/湄潭县.json


File diff suppressed because it is too large
+ 1 - 0
src/api/data/MapPointData/贵州省.json


+ 81 - 0
src/api/data/MapPointData1.js

@@ -0,0 +1,81 @@
+export default {
+    mName: "AMap",
+    edit: "AMap",
+    keys: {
+        "amapkey": "key",
+        center: "中心点",
+        "map": {
+            "mapStyle": "地图样式"
+        },
+        "legend": {
+            "_name": "图例",
+            "name": "图例名称",
+            "icon": "图例内容",
+            "color": "颜色"
+        },
+        "covers": {
+            "_name": "覆盖物集合",
+            "type": "覆盖物类型",
+            "legend": "绑定图例序号",
+            "value": "数据(只在点类型起作用)"
+        },
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "数据接口",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                _name: "数据源结构关联",
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构"
+            }
+        }
+    },
+    option: {
+        geoJson: {
+        }
+    },
+    data: {
+        dataInterface: {
+            url: "",
+            params: [
+                {
+                    value: 'id'
+                }
+            ],
+            dataSource: [
+                {
+                    SourceKey: "retBody.list",
+                    AimsKey: "data.list",
+                    keyRelated:""
+                }
+            ]
+        },
+        list: [{
+            type: "",
+            value: "",
+            lng: "",
+            lat: ""
+        }],
+        center: [106.630153, 26.647661],
+        "_caveat": "提示:目前地图配置使用高德地图API。(图例内容:图标、图片地址、文字)",
+        "amapkey": "",
+        "map": {
+            "mapStyle": "",
+            "center": [
+                106.630153,26.647661
+            ],
+            "zoom": 9
+        },
+        "legend": [
+            {
+                "name": "",
+                "icon": "",
+                "color": ""
+            }
+        ],
+        "covers": []
+    }
+}

+ 47 - 0
src/api/data/MapTooLNav.js

@@ -0,0 +1,47 @@
+export default {
+    mName : "ToolNav",
+    edit : "All",
+    keys : {
+        "list": {
+            "type": "类型",
+            "name": "名称",
+            "icon": "图标",
+            "url": "连接"
+        }
+    },
+    data : {
+        "_caveat": "提示:类型请填写{link(网页),video(视频),map(内置地图模块),monitor(实时监控)},连接对应(网页地址,视频地址,不填,监控直播地址)。",
+        "list": [
+            {
+                "type": "map",
+                "name": "地图",
+                "icon": "icon-diqiu",
+                "url": ""
+            },
+            {
+                "type": "link",
+                "name": "网页",
+                "icon": "icon-VRD",
+                "url": "https://www.skypixel.com/photos/play/360-0959a676-471a-4c9d-b6a8-3af9378a83ab?buttons=on"
+            },
+            {
+                "type": "video",
+                "name": "视频",
+                "icon": "icon-shexiangtou",
+                "url": "/screen/assets/video/2.mp4"
+            },
+            {
+                "type": "link",
+                "name": "图片",
+                "icon": "icon-jibenxinxi",
+                "url": "https://icweiliimg6.pstatp.com/weili/l/903132984186765362.webp"
+            },
+            // {
+            //     "type": "monitor",
+            //     "name": "实时监控",
+            //     "icon": "icon-shexiangtou",
+            //     "url": "ezopen://open.ys7.com/9fe72175f136495da31e246ebe8c7761.hd.live"
+            // }
+        ]
+    }
+}

+ 21 - 0
src/api/data/MonitorData.js

@@ -0,0 +1,21 @@
+export default {
+    mName : "LeftMenu",
+    edit : "MonitorList",
+    keys : {
+        "list": {
+            "_name": "监控列表",
+            "name": "名称",
+            "url": "监控地址"
+        }
+    },
+    data : {
+        "list": [
+            {
+                "deviceSerial": "122595206",
+                "channelNo": 4,
+                "url": "ezopen://open.ys7.com/D40453969/8.hd.live",
+                "name": "竹香米业八区"
+            }
+        ]
+    }
+}

+ 77 - 0
src/api/data/ParkDetailAMap.js

@@ -0,0 +1,77 @@
+export default {
+    mName : "AMap",
+    edit : "AMap",
+    keys : {
+        dataInterface:{
+            _name:"数据接口配置",
+            url:"接口连接",
+            params:{
+                _name:"请求参数",
+                value:"接口参数名称(需有父级数据关联)"
+            },
+            dataSource:{
+                _name:"数据源结构关联",
+                SourceKey:"源数据结构",
+                AimsKey:"目标数据结构"
+            }
+        },
+        "amapkey": "key",
+        "map": {
+            "mapStyle": "地图样式",
+            center:"中心",
+            zoom: "地图层级"
+        },
+        "legend": {
+            "_name": "图例",
+            "name": "图例名称",
+            "icon": "图例内容",
+            "color": "颜色"
+        },
+        "covers": {
+            "_name": "覆盖物集合",
+            "type": "覆盖物类型",
+            "legend": "绑定图例序号",
+            "value": "数据(只在点类型起作用)"
+        }
+    },
+    data : {
+        dataInterface:{
+            // url:"/htdata/map/findOrchardBorder",
+            url:"",
+            params:[{
+                value:''
+            }],
+            dataSource:[{
+                SourceKey:"retBody.info",
+                AimsKey:"data.covers"
+            }],
+        },
+        "_caveat": "提示:目前地图配置使用高德地图API。(图例内容:图标、图片地址、文字)",
+        "amapkey": "",
+        "map": {
+            "mapStyle": "",
+            "center": [
+                106.630153,26.647661
+            ],
+            "zoom": 14
+        },
+        "legend": [
+            {
+                "name": "红",
+                "icon": "icon-luyouqi",
+                "color": "#FF0000"
+            },
+            {
+                "name": "黄",
+                "icon": "",
+                "color": "#FFFF00"
+            },
+            {
+                "name": "蓝",
+                "icon": "icon-shexiangtou",
+                "color": "#0000FF"
+            }
+        ],
+        "covers": []
+    }
+}

+ 27 - 0
src/api/data/ParkDetailMenu.js

@@ -0,0 +1,27 @@
+export default {
+    mName : "LeftMenu",
+    edit : "All",
+    keys : {
+        "list": {
+            "icon": "图标",
+            "name": "名称",
+            "path": "路径",
+        }
+    },
+    data : {
+        "list": [
+            {
+                "icon": "icon-jianshe",
+                "name": "企业详情",
+                "path": "/parkDetail",
+                tpl:"ParkDetail",
+            }
+            /*, {
+                "icon": "icon-jibenxinxi",
+                "name": "物联检测",
+                "path": "/things",
+                tpl:"Things"
+            }*/
+        ]
+    }
+}

+ 48 - 0
src/api/data/ParkDetailsInfo.js

@@ -0,0 +1,48 @@
+export default {
+    mName:"TitleListText",
+    edit: "All",
+    keys: {
+        introduce: "描述:",
+        list: {
+            name: '名称',
+            value: "数据"
+        },
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "园区信息接口",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                _name: "数据源结构关联",
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构",
+                keyRelated: "集合键关联"
+            }
+        }
+    },
+    data: {
+        dataInterface:{
+            url:"/forest-admin/big/company/detail",
+            params:[{
+                value:"id"
+            }],
+            dataSource:[{
+                SourceKey:"data.list",
+                AimsKey:"data.list",
+                keyRelated:'title.name|data.value'
+            },{
+                SourceKey:"data.desc",
+                AimsKey:"data.introduce"
+            }],
+        },
+        introduce: "",
+        list: [
+            {
+                name: '小标题',
+                value: "102"
+            }
+        ]
+    }
+}

+ 44 - 0
src/api/data/ParkDetailsInfo2.js

@@ -0,0 +1,44 @@
+export default {
+    mName:"TitleListText",
+    edit: "All",
+    keys: {
+        list: {
+            name: '名称',
+            value: "数据"
+        },
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "园区信息接口",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                _name: "数据源结构关联",
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构",
+                keyRelated: "集合键关联"
+            }
+        }
+    },
+    data: {
+        dataInterface:{
+            url:"/htdata/map/findOrchardProd",
+            params:[{
+                value:"id"
+            }],
+            dataSource:[{
+                SourceKey:"retBody.list",
+                AimsKey:"data.list",
+                keyRelated:"info.name|info1.value1|info2.value2"
+            }],
+        },
+        list: [
+            {
+                name: '标题',
+                value: "",
+                value1:""
+            }
+        ]
+    }
+}

+ 81 - 0
src/api/data/ParkList.js

@@ -0,0 +1,81 @@
+export default {
+    mName:"DistributedList",
+    edit : "DistributedList",
+    keys : {
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "接口连接",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                _name: "数据源结构关联",
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构",
+                keyRelated: "集合键关联"
+            }
+        },
+        title:"公用标题:",
+        cityCode:"城市名称或编码",
+        legend:{
+            _name: "图例",
+			name: "图例名称",
+			icon: '图例内容',
+			color: "颜色"
+        },
+        list: {
+            legend:"图例序号",
+            name: "名称",
+            info:"信息",
+            addmap: "地图数据"
+        }
+    },
+    data : {
+        title:"贵州“林产品态势图”应用平台",
+        cityCode:"贵州省",
+        dataInterface: {
+            url:'/forest-admin/big/company/list',
+            params: [
+                {
+                    value: "id"
+                }
+            ],
+            dataSource: [
+                {
+                    SourceKey: "data",
+                    AimsKey: "data.list.info",
+                    keyRelated:'info.value'
+                }, {
+                    SourceKey: "data",
+                    AimsKey: "data.list",
+                    keyRelated:'laglat.lnglat'
+                }
+            ]
+        },
+        legend:[{
+			name: "直营园区",
+			icon: '',
+			color: "#FFDF00"
+        },{
+			name: "签约园区",
+			icon: '',
+			color: "#00F7FF"
+        }],
+        list: [
+            // {
+            //     legend:1,
+            //     name: "永兴桥村基地",
+            //     info: [
+            //         {
+            //             "value": "产量:729.2吨"
+            //         }, {
+            //             "value": "规模:1610亩"
+            //         }
+            //     ],
+            //     url: "//baidu.com",
+            //     lnglat: [107.465407,27.749055]
+            // }
+        ]
+    }
+}

+ 29 - 0
src/api/data/PovertyAlleviation.js

@@ -0,0 +1,29 @@
+export default {
+    mName : "TitleListText",
+    edit : "All",
+    keys : {
+        title: "标题:",
+        list: {
+            name: '名称',
+            value: "数据"
+        }
+    },
+    data : {
+        title: "扶贫数据",
+        list: [
+            {
+                name: '签约农户0',
+                value: "1588+"
+            }, {
+                name: '涉及贫困户1',
+                value: "1588+"
+            }, {
+                name: '贫困户增加收入2',
+                value: "878787"
+            }, {
+                name: '贫困户人均增加收入3',
+                value: "1999"
+            }
+        ]
+    }
+}

+ 40 - 0
src/api/data/PovertyAlleviationArticle.js

@@ -0,0 +1,40 @@
+export default {
+    mName:"LevelList",
+    edit : "All",
+    keys : {
+        dataInterface:{
+            _name:"数据接口配置",
+            url:"接口连接",
+            params:{
+                _name:"请求参数",
+                value:"接口参数名称(需有父级数据关联)"
+            },
+            dataSource:{
+                _name:"数据源结构关联",
+                SourceKey:"源数据结构",
+                AimsKey:"目标数据结构"
+            }
+        },
+        list: {
+            name: '标题'
+        }
+    },
+    data : {
+        dataInterface:{
+            url:"/htdata/map/findHelpAll",
+            params:[{
+                value:''
+            }],
+            dataSource:[{
+                SourceKey:"retBody.data.list",
+                AimsKey:"data.list"
+            }],
+        },
+        list: [
+            {
+                id:0,
+                name: '产业扶贫(发展优质稻基地)'
+            }
+        ]
+    }
+}

+ 42 - 0
src/api/data/PovertyAlleviationArticleItem.js

@@ -0,0 +1,42 @@
+export default {
+    mName:"VerticalList",
+    edit : "All",
+    keys : {
+        dataInterface:{
+            _name:"数据接口配置",
+            url:"接口连接",
+            params:{
+                _name:"请求参数",
+                value:"接口参数名称(需有父级数据关联)"
+            },
+            dataSource:{
+                _name:"数据源结构关联",
+                SourceKey:"源数据结构",
+                AimsKey:"目标数据结构"
+            }
+        },
+        list: {
+            src: '图片连接',
+            value: "内容"
+        }
+    },
+    data : {
+        dataInterface:{
+            url:"/htdata/map/findHelpDetail",
+            params:[{
+                value:"id"
+            }],
+            dataSource:[{
+                SourceKey:"retBody.data.list",
+                AimsKey:"data.list"
+            }],
+        },
+        list: [
+            {
+                id:0,
+                src: "https://weiliicimg1.pstatp.com/weili/l/259110489371705409.webp",
+                value:"年轻的高加索美女游客在泰国北部隐藏在丛林中的秘密温泉中享受沐浴。东南亚夏季与男人和自然的景观"
+            }
+        ]
+    }
+}

+ 18 - 0
src/api/data/PovertyAlleviationResult.js

@@ -0,0 +1,18 @@
+export default {
+    mName : "TitleImgList",
+    edit : "ProfessorDoc",
+    keys : {
+        title: "标题:",
+        list: {
+            imgUrl: "图片链接"
+        }
+    },
+    data : {
+        title: "扶贫成绩",
+        list: [
+            {
+                imgUrl: 'https://weiliicimg1.pstatp.com/weili/l/57412657510230889.webp'
+            }
+        ]
+    }
+}

+ 61 - 0
src/api/data/ProductDetailsData.js

@@ -0,0 +1,61 @@
+export default {
+    mName:"productListData1",
+    edit : "All",
+    keys : {
+        dataInterface:{
+            _name:"数据接口配置",
+            url:"接口连接",
+            params:{
+                _name:"请求参数",
+                value:"接口参数名称(需有父级数据关联)"
+            },
+            dataSource:{
+                _name:"数据源结构关联",
+                SourceKey:"源数据结构",
+                AimsKey:"目标数据结构",
+                keyRelated:"集合键关联"
+            }
+        },
+        retailPriceTitle:"零售价标题:",
+        PurchaseLinkTitle:"购买链接标题:",
+        priceIcon:"价格符号",
+        IntroductionTitle:"简介标题",
+        buyList:{
+            icon:"图标链接",
+            url:"购买链接"
+        },
+        minTitle1:"小标题1",
+        minTitle2:"小标题2",
+        minTitle3:"小标题3",
+        minTitle4:"小标题4",
+        minTitle5:"小标题5",
+    },
+    data : {
+        dataInterface:{
+            url:"/forest-admin/bigData/product/info",
+            params:[{
+                value:"id"
+            }],
+            dataSource:[{
+                SourceKey:"data",
+                AimsKey:"data",
+                keyRelated:''
+            }],
+        },
+        retailPriceTitle:"零售价",
+        PurchaseLinkTitle:"点击链接购买",
+        priceIcon:"¥",
+        IntroductionTitle:"产品简介",
+        buyList:[
+        //     {
+        //     icon:"http://img.qdaily.com/uploads/201904301229232wqMV87xmtnNOKdD.jpg-w600",
+        //     url:"https://www.tmall.com/"
+        // }
+    ],
+        minTitle1:"产品品牌",
+        minTitle2:"产品规格",
+        minTitle3:"保质期",
+        minTitle4:"生产地",
+        minTitle5:"供应商",
+    }
+}

+ 43 - 0
src/api/data/RightAutoListData.js

@@ -0,0 +1,43 @@
+export default {
+    mName:"RightAutoListData",
+    edit : "All",
+    keys : {
+        dataInterface:{
+            _name:"数据接口配置",
+            url:"接口连接",
+            params:{
+                _name:"请求参数",
+                value:"接口参数名称(需有父级数据关联)"
+            },
+            dataSource:{
+                _name:"数据源结构关联",
+                SourceKey:"源数据结构",
+                AimsKey:"目标数据结构",
+                keyRelated:"集合键关联"
+            }
+        },
+        list: {
+            id:"数据ID",
+            name: '名称',
+            value:"数据"
+        }
+    },
+    data : {
+        dataInterface:{
+            url:"",
+            params:[{
+                value:"typeId"
+            }],
+            dataSource:[{
+                SourceKey:"data.list",
+                AimsKey:"data.list",
+                keyRelated:''
+            }],
+        },
+        list: [{
+            id:"1",
+            name: '名称1',
+            value:"数据2"
+        }]
+    }
+}

+ 234 - 0
src/api/data/RightRoundChart.js

@@ -0,0 +1,234 @@
+export default {
+    mName : "RightRoundChart321",
+    edit : "Echarts",
+    keys : {
+        dataInterface:{
+            _name:"数据接口配置",
+            url:"接口连接",
+            params:{
+                _name:"请求参数",
+                value:"接口参数名称(需有父级数据关联)"
+            },
+            dataSource:{
+                _name:"数据源结构关联",
+                SourceKey:"源数据结构",
+                AimsKey:"目标数据结构",
+                keyRelated:"集合键关联"
+            }
+        },
+        config: {
+            title: {
+                text: "中心标题",
+                subtext: "副标题"
+            },
+            legend: {
+                data: {
+                    _name: "图例列表",
+                    name: "对应数据名称"
+                }
+            },
+            series: {
+                data: {
+                    name: "名称",
+                    value: "数据",
+                    color: "颜色"
+                }
+            }
+        }
+    },
+    option : {
+        title: {
+            x: '54%',
+            y: '38%',
+            textAlign:"center",
+            textStyle: {
+                fontWeight: 300,
+                fontSize: 10,
+                color: 'rgba(174, 220, 244, 1)',
+                align:"center"
+            },
+            subtextStyle: {
+                color:"rgba(174, 220, 244, 1)",
+                fontSize:14,
+                align:"center"
+            }
+        },
+        legend: {
+            left:"5%",
+            right: "0%",
+            top:"auto",
+            bottom:"5%",
+            itemHeight: 8,
+            itemWidth: 16,
+            itemGap: 10,
+            textStyle: {
+                fontSize: 12,
+                color: '{c}'
+            }
+        },
+        tooltip: {
+            show: false
+        },
+        series: [
+            {
+                radius: [
+                    '35%', '60%'
+                ],
+                center: [
+                    '55%', '45%'
+                ],
+                type: 'pie',
+                label: {
+                    normal: {
+                        show: false
+                    },
+                    emphasis: {
+                        show: false
+                    }
+                },
+                labelLine: {
+                    normal: {
+                        show: false
+                    },
+                    emphasis: {
+                        show: false
+                    }
+                },
+                animation: false,
+                tooltip: {
+                    show: false
+                },
+                itemStyle: {
+                    normal: {
+                        color: 'rgba(68, 102, 244, 0.2)'
+                    }
+                },
+                data: [
+                    {
+                        value: 1
+                    }
+                ]
+            }, {
+                radius: [
+                    '28%', '35%'
+                ],
+                center: [
+                    '55%', '45%'
+                ],
+                type: 'pie',
+                label: {
+                    normal: {
+                        show: false
+                    },
+                    emphasis: {
+                        show: false
+                    }
+                },
+                labelLine: {
+                    normal: {
+                        show: false
+                    },
+                    emphasis: {
+                        show: false
+                    }
+                },
+                animation: false,
+                tooltip: {
+                    show: false
+                },
+                itemStyle: {
+                    normal: {
+                        color: 'rgba(68, 102, 244, 0.2)'
+                    }
+                },
+                data: [
+                    {
+                        value: 1
+                    }
+                ]
+            }, {
+                radius: [
+                    '35%', "55%"
+                ],
+                center: [
+                    '55%', '45%'
+                ],
+                type: 'pie',
+                roseType: 'area',
+                itemStyle: {
+                    normal: {
+                        color: params => params.data.color
+                    }
+                },
+                labelLine: {
+                    normal: {
+                        show: true,
+                        length: 4,
+                        length2: 4
+                    },
+                    emphasis: {
+                        show: true
+                    }
+                },
+                label: {
+                    normal: {
+                        show: true,
+                        formatter: "{d}%",
+                        textStyle: {
+                            fontSize: 12
+                        }
+                    },
+                    emphasis: {
+                        show: true
+                    }
+                }
+            }
+        ]
+
+    },
+    data : {
+        dataInterface:{
+            url:"",
+            params:[{
+                value:"typeId"
+            }],
+            dataSource:[{
+                SourceKey:"data.list",
+                AimsKey:"data.config.legend.data",
+                keyRelated:'name.name'
+            },{
+                SourceKey:"data.list",
+                AimsKey:"data.config.series.2.data",
+                keyRelated:'name.name|value.value|color.color'
+            }],
+        },
+        config: {
+            title: {
+                text: '销售额(万元)',
+                subtext:"12"
+            },
+            legend: {
+                data: [
+                    {
+                        name: '123'
+                    },
+                    {
+                        name: '234'
+                    }
+                ]
+            },
+            series: [
+                null,
+                null, {
+                    data: [
+                        {
+                            value: 435,
+                            name: '123',
+                            color: "rgba(76, 132, 255, 1)"
+                        }
+                    ]
+                }
+            ]
+        }
+    }
+}

+ 245 - 0
src/api/data/SalesRatio.js

@@ -0,0 +1,245 @@
+export default {
+    mName : "TitleEcharts",
+    edit : "Echarts",
+    keys : {
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "数据接口",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                _name: "数据源结构关联",
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构"
+            }
+        },
+        title: "标题",
+        config: {
+            title: {
+                text: "中心标题",
+                subtext: "副标题"
+            },
+            legend: {
+                data: {
+                    _name: "图例列表",
+                    name: "对应数据名称"
+                }
+            },
+            series: {
+                data: {
+                    name: "名称",
+                    value: "数据",
+                    color: "颜色"
+                }
+            }
+        }
+    },
+    option : {
+        title: {
+            x: '49%',
+            y: '33%',
+            textAlign:"center",
+            textStyle: {
+                fontWeight: 300,
+                fontSize: 14,
+                color: 'rgba(174, 220, 244, 1)',
+                align:"center"
+            },
+            subtextStyle: {
+                color:"rgba(174, 220, 244, 1)",
+                fontSize:16,
+                align:"center"
+            }
+        },
+        legend: {
+            left:"5%",
+            right: "2%",
+            top:"auto",
+            bottom:"20%",
+            itemHeight: 8,
+            itemWidth: 16,
+            itemGap: 10,
+            textStyle: {
+                fontSize: 12,
+                color: '{c}'
+            }
+        },
+        tooltip: {
+            show: false
+        },
+        series: [
+            {
+                radius: [
+                    '35%', '60%'
+                ],
+                center: [
+                    '50%', '40%'
+                ],
+                type: 'pie',
+                label: {
+                    normal: {
+                        show: false
+                    },
+                    emphasis: {
+                        show: false
+                    }
+                },
+                labelLine: {
+                    normal: {
+                        show: false
+                    },
+                    emphasis: {
+                        show: false
+                    }
+                },
+                animation: false,
+                tooltip: {
+                    show: false
+                },
+                itemStyle: {
+                    normal: {
+                        color: 'rgba(68, 102, 244, 0.2)'
+                    }
+                },
+                data: [
+                    {
+                        value: 1
+                    }
+                ]
+            }, {
+                radius: [
+                    '28%', '35%'
+                ],
+                center: [
+                    '50%', '40%'
+                ],
+                type: 'pie',
+                label: {
+                    normal: {
+                        show: false
+                    },
+                    emphasis: {
+                        show: false
+                    }
+                },
+                labelLine: {
+                    normal: {
+                        show: false
+                    },
+                    emphasis: {
+                        show: false
+                    }
+                },
+                animation: false,
+                tooltip: {
+                    show: false
+                },
+                itemStyle: {
+                    normal: {
+                        color: 'rgba(68, 102, 244, 0.2)'
+                    }
+                },
+                data: [
+                    {
+                        value: 1
+                    }
+                ]
+            }, {
+                radius: [
+                    '35%', "55%"
+                ],
+                center: [
+                    '50%', '40%'
+                ],
+                type: 'pie',
+                roseType: 'area',
+                itemStyle: {
+                    normal: {
+                        color: params => params.data.color
+                    }
+                },
+                labelLine: {
+                    normal: {
+                        show: true,
+                        length: 16,
+                        length2: 14
+                    },
+                    emphasis: {
+                        show: true
+                    }
+                },
+                label: {
+                    normal: {
+                        show: true,
+                        formatter: "{d}%",
+                        textStyle: {
+                            fontSize: 12
+                        }
+                    },
+                    emphasis: {
+                        show: true
+                    }
+                }
+            }
+        ]
+
+    },
+    data : {
+        dataInterface: {
+            url: "",
+            params: [
+                {
+                    value: 'id'
+                }
+            ],
+            dataSource: [
+                {
+                    SourceKey: "retBody.title",
+                    AimsKey: "data.title"
+                }, {
+                    SourceKey: "retBody.list",
+                    AimsKey: "data.config.series.2.data",
+                    keyRelated: 'value.value'
+                }, {
+                    SourceKey: "retBody.list",
+                    AimsKey: "data.config.legend.data",
+                    keyRelated: 'name.value'
+                }
+            ]
+        },
+        title: '',
+        config: {
+            title: {
+                text: '销售额(万元)',
+                subtext:"8999"
+            },
+            legend: {
+                data: [
+                    {
+                        name: '野谷米'
+                    }, {
+                        name: '盛世竹香'
+                    }
+                ]
+            },
+            series: [
+                null,
+                null, {
+                    data: [
+                        {
+                            value: 435,
+                            name: '野谷米',
+                            color: "rgba(76, 132, 255, 1)"
+                        }, {
+                            value: 679,
+                            name: '盛世竹香',
+                            color: "rgba(9, 189, 215, 1)"
+                        }
+                    ]
+                }
+            ]
+        }
+    }
+}

+ 250 - 0
src/api/data/ThingsEchartsData.js

@@ -0,0 +1,250 @@
+const nowDateH = new Date().getHours();
+const start = nowDateH / 23 * 100 - 30;
+export default {
+    edit : "All",
+    keys : {
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "采集点接口",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                _name: "数据源结构关联",
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构"
+            }
+        }
+    },
+    option : {
+        "grid": {
+            "left": "6%",
+            "right": "8%",
+            "bottom": "17%",
+            "top": "15%",
+            "containLabel": true
+        },
+        "tooltip": {
+            "trigger": "axis",
+            "axisPointer": {
+                "type": "line",
+                "lineStyle": {
+                    "color": {
+                        "type": "linear",
+                        "x": 0,
+                        "y": 0,
+                        "x2": 0,
+                        "y2": 1,
+                        "colorStops": [
+                            {
+                                "offset": 0,
+                                "color": "rgba(26, 118, 230, 1)"
+                            }, {
+                                "offset": 1,
+                                "color": "rgba(29, 236, 198, 0)"
+                            }
+                        ],
+                        "global": false
+                    }
+                }
+            },
+            "showContent": false,
+            "show": false
+        },
+        "legend": {
+            "show": false
+        },
+        "xAxis": {
+            "type": "category",
+            "boundaryGap": false,
+            "axisLine": {
+                "lineStyle": {
+                    "color": "rgba(50, 86, 111, 1)"
+                },
+                "show": false
+            },
+            "axisTick": {
+                "show": false
+            },
+            axisLabel: {
+                color: p => parseInt(p) == nowDateH
+                    ? 'rgba(193, 144, 255, 1)'
+                    : 'rgba(174, 220, 244, 1)',
+                fontSize: 12,
+                lineHeight: 12,
+                formatter: p => parseInt(p) == nowDateH
+                    ? '现在'
+                    : p
+            },
+            data:[]
+        },
+        "yAxis": {
+            "type": "value",
+            "name": "",
+            "nameTextStyle": {
+                "color": "rgba(50, 86, 111, 1)",
+                "fontSize": 12
+            },
+            "axisLine": {
+                "show": false
+            },
+            "axisLabel": {
+                "color": "rgba(50, 86, 111, 1)",
+                "fontSize": 12,
+                "show": false
+            },
+            "splitLine": {
+                "show": false,
+                "lineStyle": {
+                    "color": "rgba(255, 255, 255, 0.1)"
+                }
+            },
+            "axisTick": {
+                "show": false
+            }
+        },
+        "dataZoom": [
+            {
+                show: true,
+                height: 15,
+                xAxisIndex: [0],
+                // start: start > 50
+                //     ? 50
+                //     : start,
+                // end: start + 60,
+                handleSize: '150%',
+                handleStyle: {
+                    color: "rgba(12, 196, 252, .9)"
+                },
+                textStyle: {
+                    color: "rgba(174, 220, 244, 1)"
+                },
+                borderColor: "rgba(2, 115, 255, .6)"
+            }, {
+                type: "inside",
+                show: true,
+                height: 15
+            }
+        ],
+        "series": [
+            {
+                "type": "line",
+                "smooth": true,
+                "symbol": "circle",
+                "symbolSize": 10,
+                "showSymbol": true,
+                "lineStyle": {
+                    "normal": {
+                        "width": 1
+                    }
+                },
+                "label": {
+                    "show": false,
+                    "fontSize": 16,
+                    "color": "rgba(255, 255, 255, 1)",
+                    "position": "right",
+                    "padding": [
+                        8, 18, 6, 18
+                    ],
+                    "borderColor": "rgba(8,106,189,1)",
+                    "rich": {}
+                },
+                "areaStyle": {
+                    "normal": {
+                        "color": {
+                            "x": 0,
+                            "y": 0,
+                            "x2": 0,
+                            "y2": 1,
+                            "type": "linear",
+                            "global": false,
+                            "colorStops": [
+                                {
+                                    "offset": 0,
+                                    "color": "rgba(31, 78, 180, 0.8)"
+                                }, {
+                                    "offset": 1,
+                                    "color": "rgba(0,0,0,0)"
+                                }
+                            ]
+                        },
+                        "opacity": 0
+                    }
+                },
+                itemStyle: {
+                    normal: {
+                        color: p => parseInt(p.name) == nowDateH
+                        ? 'rgba(193, 144, 255, 1)'
+                        : 'rgba(11, 48, 79, 1)',
+                        borderColor: "rgba(0, 196, 255, 1)",
+                        lineStyle: {
+                            color: 'rgba(0, 196, 255, 1)'
+                        }
+                    }
+                },
+                "showAllSymbol": true,
+                "data": []
+            }, {
+                "type": "pictorialBar",
+                "symbol": "circle",
+                itemStyle: {
+                    normal: {
+                        color: p => parseInt(p.name) == nowDateH
+                        ? 'rgba(193, 144, 255, 1)'
+                        : 'rgba(11, 48, 79, 1)'
+                    }
+                },
+                "symbolRepeat": true,
+                "symbolSize": [
+                    3, 3
+                ],
+                "symbolMargin": 1,
+                label: {
+                    color: "rgba(174, 220, 244, 1)",
+                    fontSize: 14,
+                    show: true,
+                    position: 'top',
+                    formatter: p => `${p.value}`
+                },
+                data: []
+            }
+        ]
+    },
+    data : {
+        dataInterface: {
+            url: "/htdata/map/findMonitorHourData",
+            params: [
+                {
+                    value: 'authCode'
+                }, {
+                    value: 'sensorCode'
+                }
+            ],
+            dataSource: [
+                {
+                    SourceKey: "retBody.x.data",
+                    AimsKey: "data.config.xAxis.data"
+                },
+                {
+                    SourceKey: "retBody.chartData.0",
+                    AimsKey: "data.config.series.0.data"
+                },
+                {
+                    SourceKey: "retBody.chartData.0",
+                    AimsKey: "data.config.series.1.data"
+                }
+            ]
+        },
+        config:{
+            xAxis:{
+                data:[]
+            },
+            series:[{
+                data:[]
+            },{
+                data:[]
+            }]
+        }
+    }
+}

+ 39 - 0
src/api/data/ThingsPiontData.js

@@ -0,0 +1,39 @@
+export default {
+    edit : "All",
+    keys : {
+        "list": {
+            "_name": "采集点列表",
+            "name": "名称"
+        },
+        dataInterface:{
+            _name:"数据接口配置",
+            url:"采集点接口",
+            params:{
+                _name:"请求参数",
+                value:"接口参数名称(需有父级数据关联)"
+            },
+            dataSource:{
+                _name:"数据源结构关联",
+                SourceKey:"源数据结构",
+                AimsKey:"目标数据结构"
+            }
+        },
+    },
+    data : {
+        dataInterface:{
+            url:"/htdata/map/findMonitorPoint",
+            params:[{
+                value:'id'
+            }],
+            dataSource:[{
+                SourceKey:"retBody.list",
+                AimsKey:"data.list"
+            }],
+        },
+        list: new Array(1).fill().map((x,i)=>{
+            return {
+                name: `采集点${i+1}`
+            }
+        })
+    }
+}

+ 47 - 0
src/api/data/ThingsTypeData.js

@@ -0,0 +1,47 @@
+export default {
+    edit : "All",
+    keys : {
+        "list": {
+            "_name": "监测列表",
+            "name": "名称",
+            icon:"图标",
+            value:"数据",
+            unit:"单位"
+        },
+        dataInterface:{
+            _name:"数据接口配置",
+            url:"采集点接口",
+            params:{
+                _name:"请求参数",
+                value:"接口参数名称(需有父级数据关联)"
+            },
+            dataSource:{
+                _name:"数据源结构关联",
+                SourceKey:"源数据结构",
+                AimsKey:"目标数据结构"
+            }
+        },
+    },
+    data : {
+        dataInterface:{
+            url:"/htdata/map/findMonitorData",
+            params:[{
+                value:'id'
+            },{
+                value:'monId'
+            }],
+            dataSource:[{
+                SourceKey:"retBody.list",
+                AimsKey:"data.list"
+            }],
+        },
+        list: new Array(1).fill().map((x,i)=>{
+            return {
+                name:i,
+                value:i,
+                unit:"C",
+                icon:"icon-turangshidu"
+            }
+        })
+    }
+}

+ 67 - 0
src/api/data/WarningData.js

@@ -0,0 +1,67 @@
+export default {
+    mName:"WarningData",
+    edit : "DistributedList",
+    keys : {
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "接口连接",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                _name: "数据源结构关联",
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构",
+                keyRelated: "集合键关联"
+            }
+        },
+        title:"公用标题:",
+        legend:{
+            _name: "图例",
+			name: "图例名称",
+			icon: '图例内容',
+			color: "颜色"
+        },
+        list: {
+            legend:"图例序号",
+            name: "名称",
+            desc:"信息",
+            addmap: "地图数据"
+        }
+    },
+    data : {
+        dataInterface: {
+            url: "",
+            params: [
+                {
+                    value: "id"
+                }
+            ],
+            dataSource: [
+                {
+                    SourceKey: "retBody.list",
+                    AimsKey: "data.list.info",
+                    keyRelated:'info.value'
+                }, {
+                    SourceKey: "retBody.list",
+                    AimsKey: "data.list"
+                }
+            ]
+        },
+        title:"贵州“林产品态势图”应用平台",
+        legend:[{
+			name: "点",
+			icon: '',
+			color: "#FFDF00"
+        }],
+        list: [
+            {
+                legend:1,
+                name: "预警预警",
+                desc:"1212112211",
+                lnglat: [107.465407,27.749055]
+            }
+        ]
+    }
+}

+ 69 - 0
src/api/data/Weather.js

@@ -0,0 +1,69 @@
+export default {
+    mName : "Weather",
+    edit : "All",
+    keys : {
+        todayWeather: {
+            _name: "今天天气",
+            cityName: '城市名称',
+            currDate: "日期",
+            week: "星期",
+            maxTemp: "高温",
+            minTemp: "低温"
+        },
+        castWeather: {
+            _name: "明日天气",
+            castDate: "日期",
+            castWeek: "星期",
+            castMaxTemp: "高温",
+            castMinTemp: "低温"
+        },
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "接口连接",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                _name: "数据源结构关联",
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构",
+                keyRelated: "集合键关联"
+            }
+        }
+    },
+    data : {
+        dataInterface: {
+            url: "/htdata/public/weather",
+            params: [
+                {
+                    value: "cityCode"
+                }
+            ],
+            dataSource: [
+                {
+                    SourceKey: "retBody.todayWeather",
+                    AimsKey: "data.todayWeather"
+                }, {
+                    SourceKey: "retBody.castWeather",
+                    AimsKey: "data.castWeather"
+                }
+            ]
+        },
+        todayWeather: {
+            cityName: "贵阳市",
+            currDate: "01月07日",
+            week: "周二",
+            maxTemp: "16",
+            minTemp: "5"
+        },
+        castWeather: [
+            {
+                castDate: "01月08日",
+                castWeek: "周三",
+                castMaxTemp: "14",
+                castMinTemp: "9"
+            }
+        ]
+    }
+}

+ 237 - 0
src/api/data/YearOutputSales.js

@@ -0,0 +1,237 @@
+//全局随机数重写
+const random = Math.random;
+Math.random = (a = 0, b = 1, c = 6) => {
+	return (random() * (b - a) + a).toFixed(c) - 0;
+};
+export default {
+    mName : "TitleEcharts",
+    edit : "Echarts",
+    keys : {
+        title: "标题",
+        config: {
+            legend: {
+                data: {
+                    _name: "图例列表",
+                    name: "对应数据名称"
+                }
+            },
+            series: {
+                data: {
+                    name: "名称",
+                    value: "数据",
+                    color: "颜色"
+                }
+            }
+        }
+    },
+    option : {
+        grid: {x: '6%', y: '5%', width: '90%', height: '70%'},
+        legend: {
+            icon:"roundRect",
+            left: "5%",
+            bottom: "5%",
+            itemHeight: 8,
+            itemWidth: 16,
+            itemGap: 10,
+            textStyle: {
+                fontSize: 12,
+                color: '{c}'
+            }
+        },
+        xAxis: {
+            boundaryGap: false,
+            axisLine: {
+                show: false
+            },
+            axisTick: {
+                show: false
+            },
+            axisLabel: {
+                color: "rgba(50, 86, 111, 1)",
+                fontSize: 10
+            },
+            data: new Array(10).fill().map((x,i)=>{
+                return {
+                    value:i
+                };
+            })
+        },
+        yAxis: {
+            show: true,
+            scale: true,
+            minInterval: 0.1,
+            axisLine: {
+                show: false
+            },
+            axisTick: {
+                show: false
+            },
+            axisLabel: {
+                color: "rgba(50, 86, 111, 1)",
+                fontSize: 10
+            },
+            splitLine: {
+                lineStyle: {
+                    color: 'rgba(50, 86, 111, 0.2)'
+                }
+            }
+        },
+        tooltip: {
+            trigger: 'axis',
+            enterable: true,
+            renderMode: "richText",
+            confine: false,
+            axisPointer: {
+                lineStyle: {
+                    width: 1,
+                    color: {
+                        type: 'linear',
+                        x: 0,
+                        y: 0,
+                        x2: 0,
+                        y2: 1,
+                        colorStops: [
+                            {
+                                offset: 0,
+                                color: '#1a76e6' // 0% 处的颜色
+                            }, {
+                                offset: 1,
+                                color: 'rgba(29,236,198,0)' // 100% 处的颜色
+                            }
+                        ]
+                    }
+                }
+            }
+        },
+        series: [
+            {
+                type: 'line',
+                smooth: true,
+                showSymbol: false,
+                lineStyle: {
+                    normal: {
+                        width: 1
+                    }
+                },
+                areaStyle: {
+                    normal: {
+                        color: {
+                            type: 'linear',
+                            x2: 0,
+                            y2: 1,
+                            colorStops: [
+                                {
+                                    offset: 1,
+                                    color: 'rgba(122, 253, 101, 0)' // 0% 处的颜色
+                                }, {
+                                    offset: 0,
+                                    color: 'rgba(75, 252, 0, 0.4)' // 100% 处的颜色
+                                }
+                            ]
+                        }
+                    }
+                },
+                itemStyle: {
+                    normal: {
+                        color: 'rgba(74, 255, 0, 0.6)'
+                    }
+                },
+                data: new Array(10).fill().map(x=>{
+                    return Math.random(0,20,1);
+                })
+            },
+            {
+                type: 'line',
+                smooth: true,
+                showSymbol: false,
+                lineStyle: {
+                    normal: {
+                        width: 1
+                    }
+                },
+                areaStyle: {
+                    normal: {
+                        color: {
+                            type: 'linear',
+                            x2: 0,
+                            y2: 1,
+                            colorStops: [
+                                {
+                                    offset: 1,
+                                    color: 'rgba(252, 253, 101, 0)' // 0% 处的颜色
+                                }, {
+                                    offset: 0,
+                                    color: 'rgba(252, 253, 101, 0.4)' // 100% 处的颜色
+                                }
+                            ]
+                        }
+                    }
+                },
+                itemStyle: {
+                    normal: {
+                        color: 'rgba(252, 253, 101, 0.6)'
+                    }
+                },
+                data: new Array(10).fill().map(x=>{
+                    return {
+                        value:Math.random(0,30,1)
+                    };
+                })
+            },
+            {
+                type: 'line',
+                smooth: true,
+                showSymbol: false,
+                lineStyle: {
+                    normal: {
+                        width: 1
+                    }
+                },
+                areaStyle: {
+                    normal: {
+                        color: {
+                            type: 'linear',
+                            x2: 0,
+                            y2: 1,
+                            colorStops: [
+                                {
+                                    offset: 1,
+                                    color: 'rgba(8, 106, 189, 0)' // 0% 处的颜色
+                                }, {
+                                    offset: 0,
+                                    color: 'rgba(8, 106, 189, .4)' // 100% 处的颜色
+                                }
+                            ]
+                        }
+                    }
+                },
+                itemStyle: {
+                    normal: {
+                        color: 'rgba(8, 106, 189, .6)'
+                    }
+                },
+                data: new Array(10).fill().map(x=>{
+                    return {
+                        value:Math.random(0,30,1)
+                    };
+                })
+            }
+        ]
+    },
+    data : {
+        title: '2018年生产销售数据',
+        config: {
+            legend: {
+                data: [
+                    {
+                        name: '野谷米'
+                    }, {
+                        name: '盛世竹香'
+                    }, {
+                        name: '玉珍香'
+                    }
+                ]
+            }
+        }
+    }
+}

+ 208 - 0
src/api/data/YieldScale.js

@@ -0,0 +1,208 @@
+export default {
+    mName : "TitleEcharts",
+    edit : "Echarts",
+    keys : {
+        title: "标题",
+        config: {
+            title: {
+                text: "中心标题",
+                subtext: "副标题"
+            },
+            legend: {
+                data: {
+                    _name: "图例列表",
+                    name: "对应数据名称"
+                }
+            },
+            series: {
+                data: {
+                    name: "名称",
+                    value: "数据",
+                    color: "颜色"
+                }
+            }
+        }
+    },
+    option : {
+        title: {
+            x: '22%',
+            y: '40%',
+            textStyle: {
+                fontWeight: 300,
+                fontSize: 12,
+                color: 'rgba(174, 220, 244, 1)'
+            },
+            subtextStyle: {
+                show: false
+            }
+        },
+        legend: {
+            left: "5%",
+            bottom: "5%",
+            itemHeight: 8,
+            itemWidth: 16,
+            itemGap: 10,
+            textStyle: {
+                fontSize: 12,
+                color: '{c}'
+            }
+        },
+        tooltip: {
+            show: false
+        },
+        series: [
+            {
+                radius: [
+                    '54%', '60%'
+                ],
+                center: [
+                    '30%', '45%'
+                ],
+                type: 'pie',
+                label: {
+                    normal: {
+                        show: false
+                    },
+                    emphasis: {
+                        show: false
+                    }
+                },
+                labelLine: {
+                    normal: {
+                        show: false
+                    },
+                    emphasis: {
+                        show: false
+                    }
+                },
+                animation: false,
+                tooltip: {
+                    show: false
+                },
+                itemStyle: {
+                    normal: {
+                        color: 'rgba(68, 102, 244, 0.2)'
+                    }
+                },
+                data: [
+                    {
+                        value: 1
+                    }
+                ]
+            }, {
+                radius: [
+                    '28%', '35%'
+                ],
+                center: [
+                    '30%', '45%'
+                ],
+                type: 'pie',
+                label: {
+                    normal: {
+                        show: false
+                    },
+                    emphasis: {
+                        show: false
+                    }
+                },
+                labelLine: {
+                    normal: {
+                        show: false
+                    },
+                    emphasis: {
+                        show: false
+                    }
+                },
+                animation: false,
+                tooltip: {
+                    show: false
+                },
+                itemStyle: {
+                    normal: {
+                        color: 'rgba(68, 102, 244, 0.2)'
+                    }
+                },
+                data: [
+                    {
+                        value: 1
+                    }
+                ]
+            }, {
+                radius: [
+                    '35%', "55%"
+                ],
+                center: [
+                    '30%', '45%'
+                ],
+                type: 'pie',
+                itemStyle: {
+                    normal: {
+                        color: params => params.data.color
+                    }
+                },
+                labelLine: {
+                    normal: {
+                        show: false,
+                        length: 12,
+                        length2: 0
+                    },
+                    emphasis: {
+                        show: false
+                    }
+                },
+                label: {
+                    normal: {
+                        show: true,
+                        formatter: "{d}%",
+                        textStyle: {
+                            fontSize: 12
+                        }
+                    },
+                    emphasis: {
+                        show: true
+                    }
+                }
+            }
+        ]
+
+    },
+    data : {
+        title: '产品产量占比统计',
+        config: {
+            title: {
+                text: '占比统计'
+            },
+            legend: {
+                data: [
+                    {
+                        name: '野谷米'
+                    }, {
+                        name: '盛世竹香'
+                    }, {
+                        name: '玉珍香'
+                    }
+                ]
+            },
+            series: [
+                null,
+                null, {
+                    data: [
+                        {
+                            value: 435,
+                            name: '野谷米',
+                            color: "rgba(76, 132, 255, 1)"
+                        }, {
+                            value: 679,
+                            name: '盛世竹香',
+                            color: "rgba(9, 189, 215, 1)"
+                        }, {
+                            value: 200,
+                            name: '玉珍香',
+                            color: "rgba(34, 85, 196, 1)"
+                        }
+                    ]
+                }
+            ]
+        }
+    }
+}

+ 46 - 0
src/api/data/childMenuData.js

@@ -0,0 +1,46 @@
+export default {
+    mName: "childMenuData",
+    edit: "All",
+    keys: {
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "接口连接",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                _name: "数据源结构关联",
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构",
+                keyRelated: "集合键关联"
+            }
+        },
+        list: {
+            name: '名称',
+            id: "数据ID",
+            icon: "图标"
+        }
+    },
+    data: {
+        dataInterface: {
+            // url:"/htdata/map/findTopicList",
+            url: "",
+            params: [{
+                value: "id"
+            }],
+            dataSource: [{
+                SourceKey: "retBody.list",
+                AimsKey: "data.list",
+                keyRelated: ''
+            }],
+        },
+        list: [
+            {
+                "icon": "icon-chudian_shuiguo",
+                "name": "全部",
+                "id": 0
+            }
+        ]
+    }
+}

+ 44 - 0
src/api/data/classificationListData.js

@@ -0,0 +1,44 @@
+export default {
+    mName: "classificationListData1",
+    edit: "All",
+    keys: {
+        scrollTime:"滚动时间",
+        list: {
+            name: '名称',
+            value: "数据ID"
+        },
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "接口连接",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                _name: "数据源结构关联",
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构",
+                keyRelated: "集合键关联"
+            }
+        }
+    },
+    data: {
+        scrollTime:9999999999,
+        dataInterface: {
+            url: "/forest-admin/bigData/product/type",
+            params: [
+                {
+                    value: "id"
+                }
+            ],
+            dataSource: [
+                {
+                    SourceKey: "data",
+                    AimsKey: "data.list",
+                    keyRelated:'text.name|lable.id'
+                }
+            ]
+        },
+        list: []
+    }
+}

+ 45 - 0
src/api/data/leftMenuData.js

@@ -0,0 +1,45 @@
+export default {
+    mName: "leftMenuData",
+    edit: "All",
+    keys: {
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "接口连接",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                _name: "数据源结构关联",
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构",
+                keyRelated: "集合键关联"
+            }
+        },
+        list: {
+            name: '名称',
+            id: "数据ID",
+            icon: "图标"
+        }
+    },
+    data: {
+        dataInterface: {
+            url: "/forest-admin/big/1/data3",
+            params: [{
+                value: "id"
+            }],
+            dataSource: [{
+                SourceKey: "data",
+                AimsKey: "data.list",
+                keyRelated: ''
+            }],
+        },
+        list: [
+            /*{
+                "icon": "icon-chudian_shuiguo",
+                "name": "刺梨",
+                "id": 0
+            },*/
+        ]
+    }
+}

+ 51 - 0
src/api/data/merchantsData.js

@@ -0,0 +1,51 @@
+export default {
+    mName: "TitleListText",
+    edit: "All",
+    keys: {
+        dataInterface: {
+            _name: "数据接口配置",
+            url: "数据接口",
+            params: {
+                _name: "请求参数",
+                value: "接口参数名称(需有父级数据关联)"
+            },
+            dataSource: {
+                _name: "数据源结构关联",
+                SourceKey: "源数据结构",
+                AimsKey: "目标数据结构"
+            }
+        },
+        title: "标题:",
+        list: {
+            name: '名称',
+            value: "数据"
+        }
+    },
+    data: {
+        dataInterface: {
+            url: "",
+            params: [
+                {
+                    value: 'id'
+                }
+            ],
+            dataSource: [
+                {
+                    SourceKey: "retBody.title",
+                    AimsKey: "data.title"
+                }, {
+                    SourceKey: "retBody.list",
+                    AimsKey: "data.list",
+                    keyRelated: ''
+                }
+            ]
+        },
+        title: "数据",
+        list: [
+            {
+                name: '标题士大夫大师傅',
+                value: "1234.56万元"
+            }
+        ]
+    }
+}

+ 49 - 0
src/api/data/productListData.js

@@ -0,0 +1,49 @@
+export default {
+    mName:"productListData1",
+    edit : "All",
+    keys : {
+        scrollTime:"轮播时间",
+        dataInterface:{
+            _name:"数据接口配置",
+            url:"接口连接",
+            params:{
+                _name:"请求参数",
+                value:"接口参数名称(需有父级数据关联)"
+            },
+            dataSource:{
+                _name:"数据源结构关联",
+                SourceKey:"源数据结构",
+                AimsKey:"目标数据结构",
+                keyRelated:"集合键关联"
+            }
+        },
+        list: {
+            id:"数据ID",
+            name: '名称',
+            price: "售价",
+            brandName: "品牌",
+            umsCompanyInfo:"供应商"
+        }
+    },
+    data : {
+        scrollTime:0,
+        dataInterface:{
+            url:"/forest-admin/bigData/product/list",
+            params:[{
+                value:"typeId"
+            },{
+                value:"search"
+            },{
+                value:"pageNum"
+            },{
+                value:"pageSize"
+            }],
+            dataSource:[{
+                SourceKey:"data.list",
+                AimsKey:"data.list",
+                keyRelated:''
+            }],
+        },
+        list: []
+    }
+}

+ 248 - 0
src/api/index.js

@@ -0,0 +1,248 @@
+import "@babel/polyfill";
+import md5 from 'md5';
+import { assign, getSet, setData, depthCopy } from './tool';
+/**
+ * 数据结构配置
+ */
+import Layout from './data/Layout';
+import FirmExplanation from './data/FirmExplanation';
+import MapDataNav from "./data/MapDataNav";
+import MapDataNavEcharts from "./data/MapDataNavEcharts";
+import YieldScale from "./data/YieldScale";
+import SalesRatio from "./data/SalesRatio";
+import YearOutputSales from './data/YearOutputSales';
+import InfoCount from './data/InfoCount';
+import CropCount from './data/CropCount';
+import ParkList from './data/ParkList';
+import PovertyAlleviation from './data/PovertyAlleviation';
+import PovertyAlleviationResult from './data/PovertyAlleviationResult';
+import PovertyAlleviationArticle from './data/PovertyAlleviationArticle';
+import PovertyAlleviationArticleItem from './data/PovertyAlleviationArticleItem';
+import Weather from './data/Weather';
+import ParkDetailMenu from './data/ParkDetailMenu';
+import ParkDetailsInfo from './data/ParkDetailsInfo';
+import ParkDetailsInfo2 from './data/ParkDetailsInfo2';
+import MapTooLNav from "./data/MapTooLNav";
+import MonitorData from './data/MonitorData';
+import ParkDetailAMap from './data/ParkDetailAMap';
+import ThingsPiontData from './data/ThingsPiontData';
+import ThingsTypeData from './data/ThingsTypeData';
+import ThingsEchartsData from './data/ThingsEchartsData';
+import MapPointData from './data/MapPointData/index';
+
+import MapDataNavTable from "./data/MapDataNavTable";
+import MapDataNavTable1 from "./data/MapDataNavTable1";
+import merchantsData from "./data/merchantsData";
+import HorizontalListTitleData from "./data/HorizontalListTitleData";
+import DropDownListData from "./data/DropDownListData";
+import productListData from "./data/productListData";
+import classificationListData from "./data/classificationListData";
+import ProductDetailsData from "./data/ProductDetailsData";
+import leftMenuData from "./data/leftMenuData";
+import childMenuData from "./data/childMenuData";
+import RightAutoListData from "./data/RightAutoListData";
+import LeftRoundChart from "./data/LeftRoundChart";
+import RightRoundChart from "./data/RightRoundChart";
+import WarningData from "./data/WarningData";
+import FloatWindowData from "./data/FloatWindowData";
+import MapPointData1 from "./data/MapPointData1";
+//数据接口
+const Initdata = {
+    //天气
+    Weather,
+    //整个框架数据开始
+    Layout,
+    //公司介绍
+    FirmExplanation,
+    //地图与中图表数据导航
+    MapDataNav,
+    //中图表
+    MapDataNavEcharts,
+    //产品产量比例
+    YieldScale,
+    //产品销售比率
+    SalesRatio,
+    //年生产销售数据
+    YearOutputSales,
+    //坝区统计
+    InfoCount,
+    //公司种植统计
+    CropCount,
+    //园区分布列表
+    ParkList,
+    //扶贫数据
+    PovertyAlleviation,
+    //扶贫成就
+    PovertyAlleviationResult,
+    //扶贫文章
+    PovertyAlleviationArticle,
+    //文章详情
+    PovertyAlleviationArticleItem,
+    //园区详情左菜单
+    ParkDetailMenu,
+    //园区情况 信息
+    ParkDetailsInfo,
+    ParkDetailsInfo2,
+    //地图工具导航
+    MapTooLNav,
+    //监控列表
+    MonitorData,
+    //园区详情地图
+    ParkDetailAMap,
+    //物联监测点
+    ThingsPiontData,
+    //监测类型项数据
+    ThingsTypeData,
+    //监测类型单项图表数据
+    ThingsEchartsData,
+    //态势 湄潭海量点 地图 
+    MapPointData,
+    //态势 下部 表格
+    MapDataNavTable,
+    MapDataNavTable1,
+    merchantsData,
+    HorizontalListTitleData,
+    DropDownListData,
+    productListData,
+    classificationListData,
+    ProductDetailsData,
+    leftMenuData,
+    childMenuData,
+    RightAutoListData,
+    LeftRoundChart,
+    RightRoundChart,
+    WarningData,
+    FloatWindowData,
+    MapPointData1
+}
+//参数转换
+const par = e => {
+    const arr = Object
+        .keys(e)
+        .map(x => {
+            return `${x}=${e[x]}`;
+        });
+    return !!arr.length
+        ? `?${arr.join("&")}`
+        : '';
+}
+//获取模板结构与默认数据
+export const getData = async data => {
+    // port 模板名称 - 作为参数 传到后台 获取对应组件下数据
+    const {
+        id = '', //数据id
+        pId = '', //结构id
+        port = '', //模板id
+        mapId = '', //大屏id
+        mId = ''
+    } = data;
+    //取得结构默认数据
+    let defdata = {
+        ...depthCopy(Initdata[port]),
+        ...data
+    };
+
+    (defdata.data || {}).id = id;
+    /**
+	 * pId 框架+父页 唯一ID
+	 * mapId 当前大屏ID
+	 * mId 同页多组件 用这个ID来区分
+	 * id 数据ID
+	 */
+    // 读取修改数据 mId 同页多组件 用这个ID来区分
+    // console.log("读", port,id, md5(pId + port + mapId + mId + id));
+    const res = await fetch(`/htdata/map/findModuleData${par({
+        moduleCode: md5(pId + port + mapId + mId + id),
+        mapId
+    })}`, {
+        method: 'GET',
+        headers: {
+            'Content-Type': 'application/json'
+        }
+    });
+    const res_1 = await res.json();
+    const body = res_1.retBody || {};
+    let returnData = {};
+    if ((body.content + "") == "null") {
+        returnData = {
+            config: {
+                ...defdata
+            }
+        };
+    } else {
+        try {
+            returnData = {
+                config: {
+                    ...defdata,
+                    data: JSON.parse(body.content)
+                }
+            };
+        } catch (e_1) {
+            returnData = {
+                config: {
+                    ...defdata
+                }
+            };
+        }
+    }
+    const {
+        config: {
+            data: __data = {}
+        }
+    } = returnData, url = (__data.dataInterface || {}).url;
+    //如果存在接口数据 - 则读取接口数据
+    if (url) {
+        //恢复配置参数对象
+        let params = {};
+        (((__data || {}).dataInterface || {}).params || []).map((x, i) => {
+            x.value && (params[x.value] = (data.params || {})[x.value] || '');
+        });
+        try {
+            const res = await fetch(`${url}${par(params)}`).then(res => res.json()).catch(error => {
+                return {
+
+                }
+            });
+            //在返回数据中查找数据关联集合
+            const AimsData = {};
+            (((__data || {}).dataInterface || {}).dataSource || []).map(x => {
+                const fun = (m, n) => {
+                    //key关联
+                    const type = Object.prototype.toString.call(n);
+                    const typem = Object.prototype.toString.call(m);
+                    let data = null;
+                    if (type === "[object Object]") {
+                        data = {};
+                        m = typem == "[object Object]" ? m : {};
+                    } else if (type === "[object Array]") {
+                        data = [];
+                        m = typem == "[object Array]" ? m : [];
+                    }
+                    data && (x.keyRelated + "").split("|").map(x => {
+                        const keys = (x + "").split(".");
+                        if (keys.length == 2) {
+                            data = assign(data, n.map(c => {
+                                const _c = {};
+                                _c[keys[1]] = c[keys[0]];
+                                return {
+                                    ..._c
+                                };
+                            }));
+                        }
+                    });
+                    return assign(depthCopy(n), assign(depthCopy(m), data));
+                };
+                //取得数据源
+                setData(AimsData, x.AimsKey, getSet(res, x.SourceKey), fun);
+            });
+            returnData = assign(returnData, {
+                config: {
+                    ...AimsData
+                }
+            });
+        } catch (error) {
+
+        }
+    }
+    return returnData;
+}

+ 154 - 0
src/api/tool.js

@@ -0,0 +1,154 @@
+//对对象进行深度合并
+export const assign = (v = {}, n = {}) => {
+    let K = v;
+    for (let key in n) {
+        if (n.hasOwnProperty(key)) {
+            const type = Object
+                .prototype
+                .toString
+                .call(K[key]);
+            if (K[key] && type === "[object Object]" || type === "[object Array]") {
+                K[key] = assign(v[key], n[key]);
+            } else {
+                K[key] = n[key]
+            }
+        }
+    }
+    return K;
+}
+//对象深复制
+export const depthCopy = obj => {
+    if (obj === null || typeof obj !== 'object') 
+        return obj;
+    var cpObj = obj instanceof Array
+        ? []
+        : {};
+    for (var key in obj) 
+        cpObj[key] = depthCopy(obj[key]);
+    return cpObj;
+}
+/**
+ * 递归查找集合数据
+ * @param {Object} set 需要取值的对象
+ * @param {String} key 取值结构 data.list.a
+ */
+export const getSet = (set, key) => {
+    key = (key + "").split(".");
+    const obj = set[key.shift()];
+    return key.length
+        ? getSet(obj, key.join('.'))
+        : obj;
+}
+/**
+ * 设置集合数据
+ * @param {*} set 接收数据对象
+ * @param {*} key 取值结构 data.list.a
+ * @param {*} data 数据
+ */
+export const setData = (set, key, data, fun) => {
+    key = (key + "").split(".");
+    const k = key.shift();
+    set[k] = set[k] || {};
+    if (key.length) {
+        set[k] = setData(set[k], key.join('.'), data, fun);
+    } else {
+        set[k] = typeof fun == "function"
+            ? fun(set[k], data)
+            : data;
+    }
+    return set;
+}
+/**
+ * @desc 贝塞尔曲线算法,包含了3阶贝塞尔
+ */
+export class Bezier {
+    /**
+     * @desc 获取点,这里可以设置点的个数
+     * @param {number} num 点个数
+     * @param {Array} p1 点坐标 起点
+     * @param {Array} p2 点坐标 动态基点(可选)
+     * @param {Array} p3 点坐标 动态基点(可选)
+     * @param {Array} p4 点坐标 终点
+     * 如果参数是 num, p1, p2 为一阶贝塞尔
+     * 如果参数是 num, p1, c1, p2 为二阶贝塞尔
+     * 如果参数是 num, p1, c1, c2, p2 为三阶贝塞尔
+     */
+    getBezierPoints(num = 100, p1, p2, p3, p4) {
+        let func = null;
+        const points = [];
+        if (!p3 && !p4) {
+            func = this.oneBezier;
+        } else if (p3 && !p4) {
+            func = this.twoBezier;
+        } else if (p3 && p4) {
+            func = this.threeBezier;
+        }
+        for (let i = 0; i < num; i++) {
+            points.push(func(i / num, p1, p2, p3, p4));
+        }
+        if (p4) {
+            points.push([...p4]);
+        } else if (p3) {
+            points.push([...p3]);
+        }
+        return points;
+    }
+
+    /**
+     * @desc 一阶贝塞尔
+     * @param {number} t 当前百分比
+     * @param {Array} p1 起点坐标
+     * @param {Array} p2 终点坐标
+     */
+    oneBezier(t, p1, p2) {
+        const [x1, y1] = p1;
+        const [x2, y2] = p2;
+        let x = x1 + (x2 - x1) * t;
+        let y = y1 + (y2 - y1) * t;
+        return [x, y];
+    }
+
+    /**
+     * @desc 二阶贝塞尔
+     * @param {number} t 当前百分比
+     * @param {Array} p1 起点坐标
+     * @param {Array} p2 终点坐标
+     * @param {Array} cp 控制点
+     */
+    twoBezier(t, p1, cp, p2) {
+        const [x1, y1] = p1;
+        const [cx, cy] = cp;
+        const [x2, y2] = p2;
+        let x = (1 - t) * (1 - t) * x1 + 2 * t * (1 - t) * cx + t * t * x2;
+        let y = (1 - t) * (1 - t) * y1 + 2 * t * (1 - t) * cy + t * t * y2;
+        return [x, y];
+    }
+
+    /**
+     * @desc 三阶贝塞尔
+     * @param {number} t 当前百分比
+     * @param {Array} p1 起点坐标
+     * @param {Array} p2 终点坐标
+     * @param {Array} cp1 控制点1
+     * @param {Array} cp2 控制点2
+     */
+    threeBezier(t, p1, cp1, cp2, p2) {
+        const [x1, y1] = p1;
+        const [x2, y2] = p2;
+        const [cx1, cy1] = cp1;
+        const [cx2, cy2] = cp2;
+        let x =
+            x1 * (1 - t) * (1 - t) * (1 - t) +
+            3 * cx1 * t * (1 - t) * (1 - t) +
+            3 * cx2 * t * t * (1 - t) +
+            x2 * t * t * t;
+        let y =
+            y1 * (1 - t) * (1 - t) * (1 - t) +
+            3 * cy1 * t * (1 - t) * (1 - t) +
+            3 * cy2 * t * t * (1 - t) +
+            y2 * t * t * t;
+        return [x, y];
+    }
+}
+
+export default new Bezier();

+ 539 - 0
src/assets/font/demo.css

@@ -0,0 +1,539 @@
+/* Logo 字体 */
+@font-face {
+  font-family: "iconfont logo";
+  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
+  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
+}
+
+.logo {
+  font-family: "iconfont logo";
+  font-size: 160px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+/* tabs */
+.nav-tabs {
+  position: relative;
+}
+
+.nav-tabs .nav-more {
+  position: absolute;
+  right: 0;
+  bottom: 0;
+  height: 42px;
+  line-height: 42px;
+  color: #666;
+}
+
+#tabs {
+  border-bottom: 1px solid #eee;
+}
+
+#tabs li {
+  cursor: pointer;
+  width: 100px;
+  height: 40px;
+  line-height: 40px;
+  text-align: center;
+  font-size: 16px;
+  border-bottom: 2px solid transparent;
+  position: relative;
+  z-index: 1;
+  margin-bottom: -1px;
+  color: #666;
+}
+
+
+#tabs .active {
+  border-bottom-color: #f00;
+  color: #222;
+}
+
+.tab-container .content {
+  display: none;
+}
+
+/* 页面布局 */
+.main {
+  padding: 30px 100px;
+  width: 960px;
+  margin: 0 auto;
+}
+
+.main .logo {
+  color: #333;
+  text-align: left;
+  margin-bottom: 30px;
+  line-height: 1;
+  height: 110px;
+  margin-top: -50px;
+  overflow: hidden;
+  *zoom: 1;
+}
+
+.main .logo a {
+  font-size: 160px;
+  color: #333;
+}
+
+.helps {
+  margin-top: 40px;
+}
+
+.helps pre {
+  padding: 20px;
+  margin: 10px 0;
+  border: solid 1px #e7e1cd;
+  background-color: #fffdef;
+  overflow: auto;
+}
+
+.icon_lists {
+  width: 100% !important;
+  overflow: hidden;
+  *zoom: 1;
+}
+
+.icon_lists li {
+  width: 100px;
+  margin-bottom: 10px;
+  margin-right: 20px;
+  text-align: center;
+  list-style: none !important;
+  cursor: default;
+}
+
+.icon_lists li .code-name {
+  line-height: 1.2;
+}
+
+.icon_lists .icon {
+  display: block;
+  height: 100px;
+  line-height: 100px;
+  font-size: 42px;
+  margin: 10px auto;
+  color: #333;
+  -webkit-transition: font-size 0.25s linear, width 0.25s linear;
+  -moz-transition: font-size 0.25s linear, width 0.25s linear;
+  transition: font-size 0.25s linear, width 0.25s linear;
+}
+
+.icon_lists .icon:hover {
+  font-size: 100px;
+}
+
+.icon_lists .svg-icon {
+  /* 通过设置 font-size 来改变图标大小 */
+  width: 1em;
+  /* 图标和文字相邻时,垂直对齐 */
+  vertical-align: -0.15em;
+  /* 通过设置 color 来改变 SVG 的颜色/fill */
+  fill: currentColor;
+  /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
+      normalize.css 中也包含这行 */
+  overflow: hidden;
+}
+
+.icon_lists li .name,
+.icon_lists li .code-name {
+  color: #666;
+}
+
+/* markdown 样式 */
+.markdown {
+  color: #666;
+  font-size: 14px;
+  line-height: 1.8;
+}
+
+.highlight {
+  line-height: 1.5;
+}
+
+.markdown img {
+  vertical-align: middle;
+  max-width: 100%;
+}
+
+.markdown h1 {
+  color: #404040;
+  font-weight: 500;
+  line-height: 40px;
+  margin-bottom: 24px;
+}
+
+.markdown h2,
+.markdown h3,
+.markdown h4,
+.markdown h5,
+.markdown h6 {
+  color: #404040;
+  margin: 1.6em 0 0.6em 0;
+  font-weight: 500;
+  clear: both;
+}
+
+.markdown h1 {
+  font-size: 28px;
+}
+
+.markdown h2 {
+  font-size: 22px;
+}
+
+.markdown h3 {
+  font-size: 16px;
+}
+
+.markdown h4 {
+  font-size: 14px;
+}
+
+.markdown h5 {
+  font-size: 12px;
+}
+
+.markdown h6 {
+  font-size: 12px;
+}
+
+.markdown hr {
+  height: 1px;
+  border: 0;
+  background: #e9e9e9;
+  margin: 16px 0;
+  clear: both;
+}
+
+.markdown p {
+  margin: 1em 0;
+}
+
+.markdown>p,
+.markdown>blockquote,
+.markdown>.highlight,
+.markdown>ol,
+.markdown>ul {
+  width: 80%;
+}
+
+.markdown ul>li {
+  list-style: circle;
+}
+
+.markdown>ul li,
+.markdown blockquote ul>li {
+  margin-left: 20px;
+  padding-left: 4px;
+}
+
+.markdown>ul li p,
+.markdown>ol li p {
+  margin: 0.6em 0;
+}
+
+.markdown ol>li {
+  list-style: decimal;
+}
+
+.markdown>ol li,
+.markdown blockquote ol>li {
+  margin-left: 20px;
+  padding-left: 4px;
+}
+
+.markdown code {
+  margin: 0 3px;
+  padding: 0 5px;
+  background: #eee;
+  border-radius: 3px;
+}
+
+.markdown strong,
+.markdown b {
+  font-weight: 600;
+}
+
+.markdown>table {
+  border-collapse: collapse;
+  border-spacing: 0px;
+  empty-cells: show;
+  border: 1px solid #e9e9e9;
+  width: 95%;
+  margin-bottom: 24px;
+}
+
+.markdown>table th {
+  white-space: nowrap;
+  color: #333;
+  font-weight: 600;
+}
+
+.markdown>table th,
+.markdown>table td {
+  border: 1px solid #e9e9e9;
+  padding: 8px 16px;
+  text-align: left;
+}
+
+.markdown>table th {
+  background: #F7F7F7;
+}
+
+.markdown blockquote {
+  font-size: 90%;
+  color: #999;
+  border-left: 4px solid #e9e9e9;
+  padding-left: 0.8em;
+  margin: 1em 0;
+}
+
+.markdown blockquote p {
+  margin: 0;
+}
+
+.markdown .anchor {
+  opacity: 0;
+  transition: opacity 0.3s ease;
+  margin-left: 8px;
+}
+
+.markdown .waiting {
+  color: #ccc;
+}
+
+.markdown h1:hover .anchor,
+.markdown h2:hover .anchor,
+.markdown h3:hover .anchor,
+.markdown h4:hover .anchor,
+.markdown h5:hover .anchor,
+.markdown h6:hover .anchor {
+  opacity: 1;
+  display: inline-block;
+}
+
+.markdown>br,
+.markdown>p>br {
+  clear: both;
+}
+
+
+.hljs {
+  display: block;
+  background: white;
+  padding: 0.5em;
+  color: #333333;
+  overflow-x: auto;
+}
+
+.hljs-comment,
+.hljs-meta {
+  color: #969896;
+}
+
+.hljs-string,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-strong,
+.hljs-emphasis,
+.hljs-quote {
+  color: #df5000;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-type {
+  color: #a71d5d;
+}
+
+.hljs-literal,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-attribute {
+  color: #0086b3;
+}
+
+.hljs-section,
+.hljs-name {
+  color: #63a35c;
+}
+
+.hljs-tag {
+  color: #333333;
+}
+
+.hljs-title,
+.hljs-attr,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+  color: #795da3;
+}
+
+.hljs-addition {
+  color: #55a532;
+  background-color: #eaffea;
+}
+
+.hljs-deletion {
+  color: #bd2c00;
+  background-color: #ffecec;
+}
+
+.hljs-link {
+  text-decoration: underline;
+}
+
+/* 代码高亮 */
+/* PrismJS 1.15.0
+https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
+/**
+ * prism.js default theme for JavaScript, CSS and HTML
+ * Based on dabblet (http://dabblet.com)
+ * @author Lea Verou
+ */
+code[class*="language-"],
+pre[class*="language-"] {
+  color: black;
+  background: none;
+  text-shadow: 0 1px white;
+  font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+  text-align: left;
+  white-space: pre;
+  word-spacing: normal;
+  word-break: normal;
+  word-wrap: normal;
+  line-height: 1.5;
+
+  -moz-tab-size: 4;
+  -o-tab-size: 4;
+  tab-size: 4;
+
+  -webkit-hyphens: none;
+  -moz-hyphens: none;
+  -ms-hyphens: none;
+  hyphens: none;
+}
+
+pre[class*="language-"]::-moz-selection,
+pre[class*="language-"] ::-moz-selection,
+code[class*="language-"]::-moz-selection,
+code[class*="language-"] ::-moz-selection {
+  text-shadow: none;
+  background: #b3d4fc;
+}
+
+pre[class*="language-"]::selection,
+pre[class*="language-"] ::selection,
+code[class*="language-"]::selection,
+code[class*="language-"] ::selection {
+  text-shadow: none;
+  background: #b3d4fc;
+}
+
+@media print {
+
+  code[class*="language-"],
+  pre[class*="language-"] {
+    text-shadow: none;
+  }
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+  padding: 1em;
+  margin: .5em 0;
+  overflow: auto;
+}
+
+:not(pre)>code[class*="language-"],
+pre[class*="language-"] {
+  background: #f5f2f0;
+}
+
+/* Inline code */
+:not(pre)>code[class*="language-"] {
+  padding: .1em;
+  border-radius: .3em;
+  white-space: normal;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+  color: slategray;
+}
+
+.token.punctuation {
+  color: #999;
+}
+
+.namespace {
+  opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number,
+.token.constant,
+.token.symbol,
+.token.deleted {
+  color: #905;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+  color: #690;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string {
+  color: #9a6e3a;
+  background: hsla(0, 0%, 100%, .5);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+  color: #07a;
+}
+
+.token.function,
+.token.class-name {
+  color: #DD4A68;
+}
+
+.token.regex,
+.token.important,
+.token.variable {
+  color: #e90;
+}
+
+.token.important,
+.token.bold {
+  font-weight: bold;
+}
+
+.token.italic {
+  font-style: italic;
+}
+
+.token.entity {
+  cursor: help;
+}

File diff suppressed because it is too large
+ 1412 - 0
src/assets/font/demo_index.html


File diff suppressed because it is too large
+ 233 - 0
src/assets/font/iconfont.css


BIN
src/assets/font/iconfont.eot


File diff suppressed because it is too large
+ 1 - 0
src/assets/font/iconfont.js


+ 387 - 0
src/assets/font/iconfont.json

@@ -0,0 +1,387 @@
+{
+  "id": "1339442",
+  "name": "龙里大屏",
+  "font_family": "iconfont",
+  "css_prefix_text": "icon-",
+  "description": "",
+  "glyphs": [
+    {
+      "icon_id": "1393",
+      "name": "茶壶",
+      "font_class": "chahu",
+      "unicode": "e600",
+      "unicode_decimal": 58880
+    },
+    {
+      "icon_id": "538489",
+      "name": "加",
+      "font_class": "jia",
+      "unicode": "e641",
+      "unicode_decimal": 58945
+    },
+    {
+      "icon_id": "538491",
+      "name": "减",
+      "font_class": "jian",
+      "unicode": "e643",
+      "unicode_decimal": 58947
+    },
+    {
+      "icon_id": "660494",
+      "name": "建议",
+      "font_class": "jianyi",
+      "unicode": "e629",
+      "unicode_decimal": 58921
+    },
+    {
+      "icon_id": "762873",
+      "name": "高度",
+      "font_class": "gaodu",
+      "unicode": "e65f",
+      "unicode_decimal": 58975
+    },
+    {
+      "icon_id": "853078",
+      "name": "抽烟",
+      "font_class": "chouyan",
+      "unicode": "e6ce",
+      "unicode_decimal": 59086
+    },
+    {
+      "icon_id": "1013967",
+      "name": "辣椒",
+      "font_class": "lajiaochilis",
+      "unicode": "e7df",
+      "unicode_decimal": 59359
+    },
+    {
+      "icon_id": "1104537",
+      "name": "其它类_自然灾害",
+      "font_class": "qitaleiziranzaihai",
+      "unicode": "e9e0",
+      "unicode_decimal": 59872
+    },
+    {
+      "icon_id": "1110368",
+      "name": "专家",
+      "font_class": "zhuanjia",
+      "unicode": "e655",
+      "unicode_decimal": 58965
+    },
+    {
+      "icon_id": "1276371",
+      "name": "边界条件",
+      "font_class": "bianjietiaojian",
+      "unicode": "e610",
+      "unicode_decimal": 58896
+    },
+    {
+      "icon_id": "1368560",
+      "name": "历史",
+      "font_class": "history",
+      "unicode": "e603",
+      "unicode_decimal": 58883
+    },
+    {
+      "icon_id": "1644060",
+      "name": "默认_分类icon",
+      "font_class": "moren_fenleiicon",
+      "unicode": "e62b",
+      "unicode_decimal": 58923
+    },
+    {
+      "icon_id": "1719347",
+      "name": "地球",
+      "font_class": "diqiu",
+      "unicode": "e7b9",
+      "unicode_decimal": 59321
+    },
+    {
+      "icon_id": "2131355",
+      "name": "建设",
+      "font_class": "jianshe",
+      "unicode": "e639",
+      "unicode_decimal": 58937
+    },
+    {
+      "icon_id": "2155593",
+      "name": "视频",
+      "font_class": "shipin",
+      "unicode": "e64e",
+      "unicode_decimal": 58958
+    },
+    {
+      "icon_id": "3145518",
+      "name": "大气压力",
+      "font_class": "daqiyali",
+      "unicode": "e60a",
+      "unicode_decimal": 58890
+    },
+    {
+      "icon_id": "3207745",
+      "name": "温湿度",
+      "font_class": "icon-temperature",
+      "unicode": "e61c",
+      "unicode_decimal": 58908
+    },
+    {
+      "icon_id": "3237697",
+      "name": "凤梨",
+      "font_class": "fengli",
+      "unicode": "e6d4",
+      "unicode_decimal": 59092
+    },
+    {
+      "icon_id": "3640184",
+      "name": "基本信息",
+      "font_class": "jibenxinxi",
+      "unicode": "e60b",
+      "unicode_decimal": 58891
+    },
+    {
+      "icon_id": "3726638",
+      "name": "厨电_水果",
+      "font_class": "chudian_shuiguo",
+      "unicode": "e614",
+      "unicode_decimal": 58900
+    },
+    {
+      "icon_id": "4118073",
+      "name": "co2",
+      "font_class": "co",
+      "unicode": "e6bd",
+      "unicode_decimal": 59069
+    },
+    {
+      "icon_id": "4236615",
+      "name": "风速",
+      "font_class": "fengsu",
+      "unicode": "e602",
+      "unicode_decimal": 58882
+    },
+    {
+      "icon_id": "4237180",
+      "name": "摄像头",
+      "font_class": "shexiangtou",
+      "unicode": "e620",
+      "unicode_decimal": 58912
+    },
+    {
+      "icon_id": "4237225",
+      "name": "PM2.5",
+      "font_class": "PM",
+      "unicode": "e626",
+      "unicode_decimal": 58918
+    },
+    {
+      "icon_id": "4275810",
+      "name": "渔业",
+      "font_class": "yuye",
+      "unicode": "e627",
+      "unicode_decimal": 58919
+    },
+    {
+      "icon_id": "4550962",
+      "name": "海拔",
+      "font_class": "haiba",
+      "unicode": "e607",
+      "unicode_decimal": 58887
+    },
+    {
+      "icon_id": "4838214",
+      "name": "电气 电力",
+      "font_class": "dianqidianli",
+      "unicode": "e60d",
+      "unicode_decimal": 58893
+    },
+    {
+      "icon_id": "4838216",
+      "name": "通讯",
+      "font_class": "tongxun",
+      "unicode": "e60e",
+      "unicode_decimal": 58894
+    },
+    {
+      "icon_id": "4838230",
+      "name": "水利",
+      "font_class": "shuili",
+      "unicode": "e615",
+      "unicode_decimal": 58901
+    },
+    {
+      "icon_id": "5027409",
+      "name": "茶叶",
+      "font_class": "chaye",
+      "unicode": "e609",
+      "unicode_decimal": 58889
+    },
+    {
+      "icon_id": "5128953",
+      "name": "天气-风向",
+      "font_class": "tianqi-fengxiang",
+      "unicode": "e679",
+      "unicode_decimal": 59001
+    },
+    {
+      "icon_id": "5178942",
+      "name": "温度",
+      "font_class": "wendu",
+      "unicode": "e61e",
+      "unicode_decimal": 58910
+    },
+    {
+      "icon_id": "5193364",
+      "name": "蔬菜",
+      "font_class": "shucai",
+      "unicode": "e606",
+      "unicode_decimal": 58886
+    },
+    {
+      "icon_id": "5193366",
+      "name": "水果",
+      "font_class": "shuiguo",
+      "unicode": "e60c",
+      "unicode_decimal": 58892
+    },
+    {
+      "icon_id": "5194482",
+      "name": "菌菇类",
+      "font_class": "-jungulei",
+      "unicode": "e611",
+      "unicode_decimal": 58897
+    },
+    {
+      "icon_id": "5222568",
+      "name": "线状海草",
+      "font_class": "xianzhuanghaicao",
+      "unicode": "e621",
+      "unicode_decimal": 58913
+    },
+    {
+      "icon_id": "6341235",
+      "name": "西红柿",
+      "font_class": "xihongshi",
+      "unicode": "e612",
+      "unicode_decimal": 58898
+    },
+    {
+      "icon_id": "6528449",
+      "name": "路由器",
+      "font_class": "luyouqi",
+      "unicode": "e64d",
+      "unicode_decimal": 58957
+    },
+    {
+      "icon_id": "6677859",
+      "name": "光照",
+      "font_class": "guangzhao",
+      "unicode": "e608",
+      "unicode_decimal": 58888
+    },
+    {
+      "icon_id": "7275448",
+      "name": "VR (3D)",
+      "font_class": "VRD",
+      "unicode": "e6ac",
+      "unicode_decimal": 59052
+    },
+    {
+      "icon_id": "7335483",
+      "name": "土壤湿度",
+      "font_class": "turangshidu",
+      "unicode": "eb24",
+      "unicode_decimal": 60196
+    },
+    {
+      "icon_id": "7335486",
+      "name": "土壤盐分",
+      "font_class": "turangyanfen",
+      "unicode": "eb25",
+      "unicode_decimal": 60197
+    },
+    {
+      "icon_id": "7335487",
+      "name": "土壤温度",
+      "font_class": "turangwendu",
+      "unicode": "eb23",
+      "unicode_decimal": 60195
+    },
+    {
+      "icon_id": "7335639",
+      "name": "降雨量",
+      "font_class": "jiangyuliang",
+      "unicode": "eb48",
+      "unicode_decimal": 60232
+    },
+    {
+      "icon_id": "7874537",
+      "name": "照片",
+      "font_class": "zhaopian",
+      "unicode": "e60f",
+      "unicode_decimal": 58895
+    },
+    {
+      "icon_id": "8353901",
+      "name": "种植养殖",
+      "font_class": "zhongzhiyangzhi",
+      "unicode": "e62a",
+      "unicode_decimal": 58922
+    },
+    {
+      "icon_id": "8398940",
+      "name": "农牧业",
+      "font_class": "nongmuye",
+      "unicode": "e74e",
+      "unicode_decimal": 59214
+    },
+    {
+      "icon_id": "8758184",
+      "name": "other",
+      "font_class": "other",
+      "unicode": "e6ae",
+      "unicode_decimal": 59054
+    },
+    {
+      "icon_id": "9295584",
+      "name": "豌豆",
+      "font_class": "wandou",
+      "unicode": "e739",
+      "unicode_decimal": 59193
+    },
+    {
+      "icon_id": "9468649",
+      "name": "导航",
+      "font_class": "daohang",
+      "unicode": "e696",
+      "unicode_decimal": 59030
+    },
+    {
+      "icon_id": "10056210",
+      "name": "试管",
+      "font_class": "shiguan",
+      "unicode": "e6f4",
+      "unicode_decimal": 59124
+    },
+    {
+      "icon_id": "10063215",
+      "name": "返回",
+      "font_class": "NMStubiao-",
+      "unicode": "e628",
+      "unicode_decimal": 58920
+    },
+    {
+      "icon_id": "10083050",
+      "name": "GIS-图例、图层icon_变坡点",
+      "font_class": "GIS-tulitucengicon_bianpodian",
+      "unicode": "e613",
+      "unicode_decimal": 58899
+    },
+    {
+      "icon_id": "10964755",
+      "name": "全部数据目录",
+      "font_class": "quanbushujumulu",
+      "unicode": "e637",
+      "unicode_decimal": 58935
+    }
+  ]
+}

File diff suppressed because it is too large
+ 188 - 0
src/assets/font/iconfont.svg


BIN
src/assets/font/iconfont.ttf


BIN
src/assets/font/iconfont.woff


BIN
src/assets/font/iconfont.woff2


BIN
src/assets/images/bg_yns.png


BIN
src/assets/images/fullScreen.png


BIN
src/assets/images/fullScreen_hover.png


BIN
src/assets/images/point.png


BIN
src/assets/images/support.png


BIN
src/assets/images/text_bg.png


BIN
src/assets/images/weather/null.png


BIN
src/assets/images/weather/中雨.png


BIN
src/assets/images/weather/中雪.png


BIN
src/assets/images/weather/冰雹.png


BIN
src/assets/images/weather/冻雨.png


BIN
src/assets/images/weather/多云.png


BIN
src/assets/images/weather/大暴雨.png


BIN
src/assets/images/weather/大雨.png


BIN
src/assets/images/weather/大雪.png


BIN
src/assets/images/weather/小雨.png


BIN
src/assets/images/weather/小雪.png


BIN
src/assets/images/weather/扬沙.png


BIN
src/assets/images/weather/晴.png


BIN
src/assets/images/weather/暴雨.png


BIN
src/assets/images/weather/暴雪.png


BIN
src/assets/images/weather/沙尘暴.png


BIN
src/assets/images/weather/浮尘.png


BIN
src/assets/images/weather/特大暴雨.png


BIN
src/assets/images/weather/阴.png


BIN
src/assets/images/weather/阵雨.png


BIN
src/assets/images/weather/阵雪.png


BIN
src/assets/images/weather/雨夹雪.png


BIN
src/assets/images/weather/雷阵雨.png


BIN
src/assets/images/weather/雷阵雨加冰雹.png


BIN
src/assets/images/weather/雾.png


BIN
src/assets/images/weather/风.png


+ 228 - 0
src/assets/monitor/U/U.js

@@ -0,0 +1,228 @@
+(function (){
+	//入口js
+	'use strict';
+	/**
+	 * URL参数转换为对象
+	 */
+	Location.prototype.searchObj = function(url){
+		/**
+		 * 传入的是对象 - 解析为参数字符串 不带?
+		 * 出入是字符串不传入 - 解析为对象
+		 */
+		if (url instanceof Object) {
+			let str = [];
+			for (let i in url) {
+				str.push(`${i}=${url[i]}`);
+			}
+			return str.join('&');
+		} else {
+			var obj = {};
+			var arr = ((url || this.search)+"").match(/[?&][^?&]+=[^?&]+/g);
+			if (arr) {
+				arr.forEach(function(item) {
+					var tempArr = item.substring(1).split('=');
+					obj[decodeURIComponent(tempArr[0])] = decodeURIComponent(tempArr[1]);
+					length++;
+				});
+			}
+			return obj;
+		}
+	}
+	//对象
+	window.U = {
+		versions: "", //版本控制
+		LOAD: [], //加载完成全局数组
+		script: document.querySelector('script[door]'), //获取当前目录级别
+		dire: '', //目录
+		_dire: '', //相对目录
+		//加载公共函数
+		require: function(_url, _type, callback) {
+			var _this = this;
+			var url = Array.isArray(_url) ? _url.shift() : _url;
+			if (!url) {	return this;}
+			if(typeof _type === "function"){
+				callback = _type;
+				_type = false;
+			}
+			var type = /\.[^\.]+$/.exec(url.split('?')[0]); //保存请求类型 js或css
+			//添加版本号
+			url = url.split('?')[0] + '?' + location.searchObj(Object.assign(location.searchObj('?v_=' + this.versions),location.searchObj(url)));
+			//拼接地址
+			var href = this.dire + url;
+			//_type为true 不进行url转换
+			_type && (href = url);
+			//全路劲直接访问
+			(url.substr(0, 2) == '//' || /^http(s*):\/\//.test(url)) && (href = url);
+			var elem = null;
+			if (callback || this.___switch) {
+				switch (type && type.toString()) {
+					case '.js':
+						elem = document.createElement("script");
+						//elem.defer="defer";//所有加载完成后按顺序执行
+						elem.type = "text/javascript";
+						//拼接连接地址
+						elem.src = href;
+						break;
+					case '.css':
+						elem = document.createElement("link");
+						elem.type = "text/css";
+						elem.rel = 'stylesheet';
+						elem.media = 'all';
+						//拼接连接地址
+						elem.href = href;
+						break;
+					default:
+						elem = {};
+						break;
+				}
+				let eveFun = function(){
+					if(typeof callback === 'function'){
+						let fun = 'vbz'+new Date().valueOf();
+						_this[fun] = callback;
+						_this[fun](true);
+						delete _this[fun];
+					}
+				}
+				if (elem.readyState) {
+					//加载响应,成功
+					elem.onreadystatechange = function() {
+						if (elem.readyState == "loaded" || elem.readyState == "complete") {
+							elem.onreadystatechange = null;
+							eveFun();
+						}
+					};
+				} else {
+					//加载完成
+					elem.onload = function() {
+						eveFun();
+					};
+				}
+				//加载失败
+				elem.onerror = function() {
+					eveFun();
+				};
+			} else {
+				switch (type && type.toString()) {
+					case '.js':
+						document.write("<script type='text/javascript' src='" + href + "'></script>");
+						break;
+					case '.css':
+						document.write("<link rel='stylesheet' type='text/css' media='all' href='" + href + "'>");
+						break;
+					default:
+						console.error('无法加载文件', href);
+						break;
+				}
+			}
+			elem && document.querySelector('html').appendChild(elem);
+			Array.isArray(_url) && _url.length && this.require(_url, _type, callback);
+		},
+		//加载完毕执行
+		ready: function(callback) {
+			var _this = this;
+			if (typeof callback == 'function') {
+				let funName = "tempReady" + _this.LOAD.length;
+				this[funName] = callback;
+				_this.LOAD.push(funName);
+			}
+			window.onload = function() {
+				_this.___switch = true;
+				for (var i = 0; i < _this.LOAD.length; i++) {
+					_this[_this.LOAD[i]]();
+					delete _this[_this.LOAD[i]];
+				}
+				_this.LOAD = [];
+			}
+		},
+		//初始化
+		init: function() {
+			if (this.script) {
+				//this.versions = this.script.getAttribute('door');
+				var jHtml = this.script.outerHTML,
+					srcS = 'src="',
+					strE = '"';
+				srcS = jHtml.indexOf(srcS) + srcS.length; //路径开始位置
+				strE = jHtml.indexOf(strE, srcS); //路径结束位置
+				jHtml = jHtml.substring(srcS, strE); //完整路径带文件名
+				strE = jHtml.lastIndexOf('/'); //查找倒数第一斜杠位置
+				this.dire = jHtml.substring(0, strE + 1); //完整相对路径
+				/**
+				 * (项目跟目录) 预留本地加载文件名,实现预先本地配置 貌似无法完成
+				 * 通过配置项目名(项目目录)来获取项目路劲进行全项目页面相对路径配置
+				 * 完成通过全域名引用admin框架
+				 * 目前未实现
+				 */
+				this.dire.lastIndexOf("../") > -1 && (this._dire = this.dire.substr(0, this.dire.lastIndexOf("../") + 3));
+			} else {
+				console.error("入口js标签没有关键属性 door");
+			}
+		}
+	};
+	//初始化
+	U.init();
+	/**
+	 * ajax代理拦截器
+	 */
+	!function(t) {
+		function r(i) {
+			if (n[i]) return n[i].exports;
+			var o = n[i] = {
+				exports: {},
+				id: i,
+				loaded: !1
+			};
+			return t[i].call(o.exports, o, o.exports, r), o.loaded = !0, o.exports
+		}
+		var n = {};
+		return r.m = t, r.c = n, r.p = "", r(0)
+	}([function(t, r, n) {
+		n(1)(U)
+	}, function(t, r) {
+		t.exports = function(t) {
+			t.hookAjax = function(t) {
+				var xhrObj = t;
+				function r(t) {
+					return function() {
+						return this.hasOwnProperty(t + "_") ? this[t + "_"] : this.xhr[t]
+					}
+				}
+	
+				function n(r) {
+					return function(n) {
+						var i = this.xhr,
+							o = this;
+						return 0 != r.indexOf("on") ? void(this[r + "_"] = n) : void(t[r] ? i[r] = function() {
+							t[r](o) || n.apply(i, arguments)
+						} : i[r] = n)
+					}
+				}
+	
+				function i(r) {
+					return function() {
+						var n = [].slice.call(arguments);
+						if (!t[r] || !t[r].call(this, n, this.xhr)) return this.xhr[r].apply(this.xhr, n)
+					}
+				}
+				return window._ahrealxhr = window._ahrealxhr || XMLHttpRequest, XMLHttpRequest = function() {
+					let xhr = this.xhr = new window._ahrealxhr;
+					for (var t in this.xhr) {
+						var o = "";
+						try {o = typeof this.xhr[t]} catch (t) {}
+						"function" === o ? this[t] = i(t) : Object.defineProperty(this, t, {
+							get: r(t),
+							set: n(t)
+						})
+					}
+				}, window._ahrealxhr
+			}, t.unHookAjax = function() {
+				window._ahrealxhr && (XMLHttpRequest = window._ahrealxhr), window._ahrealxhr = void 0
+			}, t.default = t
+		}
+	}]);
+	//加载公共方法
+	U.require('js/U-public.js');
+	//实时动态加载配置文件
+	U.require("js/U-config.js?v_= " + new Date().getTime());
+	//加载全局拦截
+	U.require("js/U-hookAjax.js?v_= " + new Date().getTime());
+})();

+ 0 - 0
src/assets/monitor/U/css/my.css


Some files were not shown because too many files changed in this diff