├── src
├── boot
│ ├── .gitkeep
│ ├── axios.js
│ ├── EventBus.js
│ ├── config.js
│ ├── x2js.js
│ └── i18n.js
├── components
│ ├── .gitkeep
│ ├── topo
│ │ ├── control
│ │ │ ├── svg
│ │ │ │ ├── ViewStaticSvg.vue
│ │ │ │ ├── ViewSvgImage.vue
│ │ │ │ ├── ViewSvgStatic.vue
│ │ │ │ └── ViewSvg.vue
│ │ │ ├── ViewText.vue
│ │ │ ├── View.vue
│ │ │ ├── ViewButtom.vue
│ │ │ ├── canvas
│ │ │ │ ├── ViewTriangle.vue
│ │ │ │ ├── ViewCircular.vue
│ │ │ │ ├── ViewLine.vue
│ │ │ │ ├── ViewLineWave.vue
│ │ │ │ ├── ViewCanvas.vue
│ │ │ │ └── ViewRect.vue
│ │ │ ├── ViewImage.vue
│ │ │ ├── chart
│ │ │ │ └── ViewChartGauge.vue
│ │ │ └── web
│ │ │ │ └── Dtime.vue
│ │ ├── data-toolbox
│ │ │ └── svg-dianli.json
│ │ ├── Topotable.vue
│ │ ├── util
│ │ │ └── topo-util.js
│ │ └── TopoBase.vue
│ └── chart
│ │ ├── ChartWrapper.vue
│ │ └── ChartMapView.vue
├── css
│ ├── app.styl
│ └── quasar.variables.styl
├── statics
│ ├── index.html
│ ├── img
│ │ ├── bg.png
│ │ ├── sc.png
│ │ ├── s01.png
│ │ ├── svg4.png
│ │ ├── Meter1.png
│ │ ├── curve2.png
│ │ ├── curve6.png
│ │ ├── water.png
│ │ ├── Piechart2.jpg
│ │ ├── Histogram1.jpg
│ │ └── historyReport.png
│ ├── quasar-logo.png
│ ├── topo
│ │ ├── anima
│ │ │ ├── timg.jpg
│ │ │ ├── H5动画-向左展开.svg
│ │ │ ├── H5动画-向上展开.svg
│ │ │ ├── H5动画-向下展开.svg
│ │ │ ├── H5动画-向右展开.svg
│ │ │ ├── H5动画-向右滑入.svg
│ │ │ ├── H5动画-从右滚入.svg
│ │ │ ├── H5动画-向下滑入.svg
│ │ │ ├── H5动画-向左滑入.svg
│ │ │ ├── H5动画-向上滑入.svg
│ │ │ ├── H5动画-淡入.svg
│ │ │ ├── H5动画-从左滚入.svg
│ │ │ ├── H5动画-旋转出现.svg
│ │ │ ├── H5动画-刹车.svg
│ │ │ ├── H5动画-向上飞入.svg
│ │ │ ├── H5动画-放大.svg
│ │ │ ├── H5动画-向左飞入.svg
│ │ │ ├── H5动画-向右飞入.svg
│ │ │ ├── H5动画-向下飞入.svg
│ │ │ ├── H5动画-向下飞入 (1).svg
│ │ │ ├── H5动画-左右翻转.svg
│ │ │ ├── H5动画-上下翻转.svg
│ │ │ ├── 闪烁.svg
│ │ │ └── H5动画-下落放大.svg
│ │ ├── office
│ │ │ ├── dev1.png
│ │ │ ├── dev2.png
│ │ │ ├── dev3.png
│ │ │ ├── dev4.png
│ │ │ ├── dev5.png
│ │ │ ├── dev6.png
│ │ │ ├── dev7.png
│ │ │ ├── dev8.png
│ │ │ ├── jq01.png
│ │ │ ├── pct.png
│ │ │ ├── qiti.png
│ │ │ ├── chair1.png
│ │ │ ├── desk1.png
│ │ │ ├── desk2.png
│ │ │ ├── desk3.png
│ │ │ ├── ground.jpg
│ │ │ ├── wall1.png
│ │ │ ├── cabinet1.png
│ │ │ ├── cabinet2.png
│ │ │ ├── jiantou01.gif
│ │ │ ├── switch1.png
│ │ │ ├── embellish1.png
│ │ │ ├── 20190620231255_288.png
│ │ │ ├── 20190701181354_914.png
│ │ │ ├── 20190701181422_301.png
│ │ │ ├── 20190701181428_161.png
│ │ │ ├── 20190701181434_604.png
│ │ │ ├── 20190701182101_368.png
│ │ │ ├── 20190701182105_431.png
│ │ │ ├── 20190702163925_551.png
│ │ │ ├── 20190702170803_715.png
│ │ │ ├── jiantou.svg
│ │ │ ├── jiantou2.svg
│ │ │ ├── jiantou3.svg
│ │ │ ├── off1.svg
│ │ │ ├── on1.svg
│ │ │ └── jka2.svg
│ │ ├── svg
│ │ │ ├── switch1.png
│ │ │ ├── 20190620231255_288.png
│ │ │ ├── 20190701181354_914.png
│ │ │ ├── 20190701181422_301.png
│ │ │ ├── 20190701181428_161.png
│ │ │ ├── 20190701181434_604.png
│ │ │ ├── 20190701182101_368.png
│ │ │ ├── 20190701182105_431.png
│ │ │ ├── 20190702163925_551.png
│ │ │ ├── 20190702170803_715.png
│ │ │ ├── ellipse2.svg
│ │ │ ├── loading
│ │ │ │ ├── loading-7.svg
│ │ │ │ ├── loading-6.svg
│ │ │ │ ├── loading-2.svg
│ │ │ │ ├── loading-8.svg
│ │ │ │ ├── loading-5.svg
│ │ │ │ ├── loading-4.svg
│ │ │ │ ├── loading-3.svg
│ │ │ │ └── loading-1.svg
│ │ │ ├── demo1.svg
│ │ │ ├── off1.svg
│ │ │ └── on1.svg
│ │ └── svg-dianli
│ │ │ ├── PresetCapacitor_H.svg
│ │ │ └── PresetCapacitor_V.svg
│ ├── mada
│ │ ├── md.bat
│ │ └── md8.svg
│ ├── zhuangz
│ │ └── md.bat
│ ├── shuibeng
│ │ ├── md.bat
│ │ ├── shuibeng20.svg
│ │ └── shuibeng22.svg
│ ├── guandao
│ │ ├── gd26.svg
│ │ ├── gd25.svg
│ │ ├── gd2.svg
│ │ ├── gd4.svg
│ │ └── gd6.svg
│ └── famen
│ │ └── famen18.svg
├── i18n
│ ├── zh-cn
│ │ └── index.js
│ ├── index.js
│ └── en-us
│ │ └── index.js
├── assets
│ ├── favicon.ico
│ ├── img
│ │ ├── tt.png
│ │ └── waterA.png
│ ├── libs
│ │ ├── httpurl.js
│ │ ├── datatype.js
│ │ ├── uid.js
│ │ ├── websocket.js
│ │ ├── simpleEventBus.js
│ │ └── topo.js
│ ├── data
│ │ ├── topo-data.json
│ │ ├── chart-bar.json
│ │ ├── chart-line.json
│ │ ├── chart-lines.json
│ │ ├── chart-pie.json
│ │ └── chart-radar.json
│ └── echarts-map-json
│ │ └── province
│ │ └── aomen.json
├── store
│ ├── module-example
│ │ ├── actions.js
│ │ ├── getters.js
│ │ ├── state.js
│ │ ├── index.js
│ │ └── mutations.js
│ ├── topo-editor
│ │ ├── actions.js
│ │ ├── getters.js
│ │ ├── index.js
│ │ └── state.js
│ ├── store-flag.d.ts
│ └── index.js
├── views
│ ├── login.js
│ ├── my-q-menu-item.vue
│ ├── usertable.vue
│ └── Qmenu.vue
├── pages
│ ├── Index.vue
│ ├── Error404.vue
│ └── topo
│ │ ├── Editor.vue
│ │ └── Fullscreen.vue
├── App.vue
├── layouts
│ └── TopoLayout.vue
├── main.js
├── router
│ ├── index.js
│ └── routes.js
└── index.template.html
├── .eslintignore
├── doc
├── shot.png
└── svg
│ ├── 电力图符定义.doc
│ └── 萇薯芞睫隅砱.doc
├── babel.config.js
├── dist
└── spa
│ ├── css
│ ├── app.e0f1ca08.css.gz
│ ├── 243bf772.e3a0afda.css
│ └── 4b158788.484bb54c.css
│ ├── js
│ ├── app.31900840.js.gz
│ ├── vendor.9bb01ffe.js.gz
│ ├── 4b158788.dc2f5c9a.js.gz
│ ├── 4b47640d.b4a4a9a8.js.gz
│ ├── 4f201d3c.4bd1085f.js.gz
│ └── 2d21eaa9.76267622.js
│ ├── statics
│ ├── quasar-logo.png
│ └── topo
│ │ ├── office
│ │ ├── dev1.png
│ │ ├── dev2.png
│ │ ├── dev3.png
│ │ ├── dev4.png
│ │ ├── dev5.png
│ │ ├── dev6.png
│ │ ├── dev7.png
│ │ ├── dev8.png
│ │ ├── chair1.png
│ │ ├── desk1.png
│ │ ├── desk2.png
│ │ ├── desk3.png
│ │ ├── ground.jpg
│ │ ├── wall1.png
│ │ ├── cabinet1.png
│ │ ├── cabinet2.png
│ │ └── embellish1.png
│ │ ├── svg
│ │ ├── ellipse2.svg
│ │ ├── loading
│ │ │ ├── loading-7.svg
│ │ │ ├── loading-6.svg
│ │ │ ├── loading-2.svg
│ │ │ ├── loading-8.svg
│ │ │ ├── loading-5.svg
│ │ │ ├── loading-4.svg
│ │ │ ├── loading-3.svg
│ │ │ └── loading-1.svg
│ │ └── demo1.svg
│ │ └── svg-dianli
│ │ ├── PresetCapacitor_H.svg
│ │ └── PresetCapacitor_V.svg
│ ├── fonts
│ ├── flUhRq6tzZclQEJ-Vdg-IuiaDsNa.29b882f0.woff
│ └── flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.0509ab09.woff2
│ └── index.html
├── .editorconfig
├── .postcssrc.js
├── src-electron
├── electron-flag.d.ts
└── main-process
│ ├── electron-main.dev.js
│ └── electron-main.js
├── CHANGELOG.md
├── .stylintrc
├── LICENSE
├── package.json
└── .eslintrc.js
/src/boot/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/components/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | /dist
2 | /src
--------------------------------------------------------------------------------
/src/css/app.styl:
--------------------------------------------------------------------------------
1 | // app global css
2 |
--------------------------------------------------------------------------------
/src/statics/index.html:
--------------------------------------------------------------------------------
1 |
wo shi 生成文件
--------------------------------------------------------------------------------
/src/components/topo/control/svg/ViewStaticSvg.vue:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/doc/shot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/doc/shot.png
--------------------------------------------------------------------------------
/doc/svg/电力图符定义.doc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/doc/svg/电力图符定义.doc
--------------------------------------------------------------------------------
/doc/svg/萇薯芞睫隅砱.doc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/doc/svg/萇薯芞睫隅砱.doc
--------------------------------------------------------------------------------
/src/i18n/zh-cn/index.js:
--------------------------------------------------------------------------------
1 | export default {
2 | failed: '操作失败',
3 | success: '操作成功'
4 | }
--------------------------------------------------------------------------------
/src/assets/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/assets/favicon.ico
--------------------------------------------------------------------------------
/src/assets/img/tt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/assets/img/tt.png
--------------------------------------------------------------------------------
/src/statics/img/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/img/bg.png
--------------------------------------------------------------------------------
/src/statics/img/sc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/img/sc.png
--------------------------------------------------------------------------------
/src/store/module-example/actions.js:
--------------------------------------------------------------------------------
1 | /*
2 | export function someAction (context) {
3 | }
4 | */
5 |
--------------------------------------------------------------------------------
/src/store/module-example/getters.js:
--------------------------------------------------------------------------------
1 | /*
2 | export function someGetter (state) {
3 | }
4 | */
5 |
--------------------------------------------------------------------------------
/src/i18n/index.js:
--------------------------------------------------------------------------------
1 | import enUS from './en-us'
2 |
3 | export default {
4 | 'en-us': enUS
5 | }
6 |
--------------------------------------------------------------------------------
/src/statics/img/s01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/img/s01.png
--------------------------------------------------------------------------------
/src/statics/img/svg4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/img/svg4.png
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@quasar/babel-preset-app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/src/assets/img/waterA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/assets/img/waterA.png
--------------------------------------------------------------------------------
/src/statics/img/Meter1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/img/Meter1.png
--------------------------------------------------------------------------------
/src/statics/img/curve2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/img/curve2.png
--------------------------------------------------------------------------------
/src/statics/img/curve6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/img/curve6.png
--------------------------------------------------------------------------------
/src/statics/img/water.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/img/water.png
--------------------------------------------------------------------------------
/src/statics/quasar-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/quasar-logo.png
--------------------------------------------------------------------------------
/src/statics/img/Piechart2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/img/Piechart2.jpg
--------------------------------------------------------------------------------
/dist/spa/css/app.e0f1ca08.css.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/css/app.e0f1ca08.css.gz
--------------------------------------------------------------------------------
/dist/spa/js/app.31900840.js.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/js/app.31900840.js.gz
--------------------------------------------------------------------------------
/dist/spa/statics/quasar-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/quasar-logo.png
--------------------------------------------------------------------------------
/src/assets/libs/httpurl.js:
--------------------------------------------------------------------------------
1 | const httprul = 'http://datav.jdwanxiang.com/webtopo/#'
2 | export default httprul
3 |
--------------------------------------------------------------------------------
/src/statics/img/Histogram1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/img/Histogram1.jpg
--------------------------------------------------------------------------------
/src/statics/topo/anima/timg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/anima/timg.jpg
--------------------------------------------------------------------------------
/src/statics/topo/office/dev1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/dev1.png
--------------------------------------------------------------------------------
/src/statics/topo/office/dev2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/dev2.png
--------------------------------------------------------------------------------
/src/statics/topo/office/dev3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/dev3.png
--------------------------------------------------------------------------------
/src/statics/topo/office/dev4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/dev4.png
--------------------------------------------------------------------------------
/src/statics/topo/office/dev5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/dev5.png
--------------------------------------------------------------------------------
/src/statics/topo/office/dev6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/dev6.png
--------------------------------------------------------------------------------
/src/statics/topo/office/dev7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/dev7.png
--------------------------------------------------------------------------------
/src/statics/topo/office/dev8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/dev8.png
--------------------------------------------------------------------------------
/src/statics/topo/office/jq01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/jq01.png
--------------------------------------------------------------------------------
/src/statics/topo/office/pct.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/pct.png
--------------------------------------------------------------------------------
/src/statics/topo/office/qiti.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/qiti.png
--------------------------------------------------------------------------------
/src/statics/topo/svg/switch1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/svg/switch1.png
--------------------------------------------------------------------------------
/dist/spa/js/vendor.9bb01ffe.js.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/js/vendor.9bb01ffe.js.gz
--------------------------------------------------------------------------------
/src/assets/libs/datatype.js:
--------------------------------------------------------------------------------
1 | //传感器类型
2 | let sensortype = [ '开关','字符串', '视频']
3 | export default {
4 | sensortype
5 | }
--------------------------------------------------------------------------------
/src/statics/img/historyReport.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/img/historyReport.png
--------------------------------------------------------------------------------
/src/statics/topo/office/chair1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/chair1.png
--------------------------------------------------------------------------------
/src/statics/topo/office/desk1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/desk1.png
--------------------------------------------------------------------------------
/src/statics/topo/office/desk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/desk2.png
--------------------------------------------------------------------------------
/src/statics/topo/office/desk3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/desk3.png
--------------------------------------------------------------------------------
/src/statics/topo/office/ground.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/ground.jpg
--------------------------------------------------------------------------------
/src/statics/topo/office/wall1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/wall1.png
--------------------------------------------------------------------------------
/dist/spa/js/4b158788.dc2f5c9a.js.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/js/4b158788.dc2f5c9a.js.gz
--------------------------------------------------------------------------------
/dist/spa/js/4b47640d.b4a4a9a8.js.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/js/4b47640d.b4a4a9a8.js.gz
--------------------------------------------------------------------------------
/dist/spa/js/4f201d3c.4bd1085f.js.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/js/4f201d3c.4bd1085f.js.gz
--------------------------------------------------------------------------------
/dist/spa/statics/topo/office/dev1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/topo/office/dev1.png
--------------------------------------------------------------------------------
/dist/spa/statics/topo/office/dev2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/topo/office/dev2.png
--------------------------------------------------------------------------------
/dist/spa/statics/topo/office/dev3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/topo/office/dev3.png
--------------------------------------------------------------------------------
/dist/spa/statics/topo/office/dev4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/topo/office/dev4.png
--------------------------------------------------------------------------------
/dist/spa/statics/topo/office/dev5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/topo/office/dev5.png
--------------------------------------------------------------------------------
/dist/spa/statics/topo/office/dev6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/topo/office/dev6.png
--------------------------------------------------------------------------------
/dist/spa/statics/topo/office/dev7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/topo/office/dev7.png
--------------------------------------------------------------------------------
/dist/spa/statics/topo/office/dev8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/topo/office/dev8.png
--------------------------------------------------------------------------------
/src/statics/topo/office/cabinet1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/cabinet1.png
--------------------------------------------------------------------------------
/src/statics/topo/office/cabinet2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/cabinet2.png
--------------------------------------------------------------------------------
/src/statics/topo/office/jiantou01.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/jiantou01.gif
--------------------------------------------------------------------------------
/src/statics/topo/office/switch1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/switch1.png
--------------------------------------------------------------------------------
/dist/spa/statics/topo/office/chair1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/topo/office/chair1.png
--------------------------------------------------------------------------------
/dist/spa/statics/topo/office/desk1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/topo/office/desk1.png
--------------------------------------------------------------------------------
/dist/spa/statics/topo/office/desk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/topo/office/desk2.png
--------------------------------------------------------------------------------
/dist/spa/statics/topo/office/desk3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/topo/office/desk3.png
--------------------------------------------------------------------------------
/dist/spa/statics/topo/office/ground.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/topo/office/ground.jpg
--------------------------------------------------------------------------------
/dist/spa/statics/topo/office/wall1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/topo/office/wall1.png
--------------------------------------------------------------------------------
/src/boot/axios.js:
--------------------------------------------------------------------------------
1 | import axios from 'axios'
2 |
3 | export default async ({ Vue }) => {
4 | Vue.prototype.$axios = axios
5 | }
6 |
--------------------------------------------------------------------------------
/src/statics/topo/office/embellish1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/embellish1.png
--------------------------------------------------------------------------------
/dist/spa/statics/topo/office/cabinet1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/topo/office/cabinet1.png
--------------------------------------------------------------------------------
/dist/spa/statics/topo/office/cabinet2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/topo/office/cabinet2.png
--------------------------------------------------------------------------------
/dist/spa/statics/topo/office/embellish1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/statics/topo/office/embellish1.png
--------------------------------------------------------------------------------
/src/statics/topo/svg/20190620231255_288.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/svg/20190620231255_288.png
--------------------------------------------------------------------------------
/src/statics/topo/svg/20190701181354_914.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/svg/20190701181354_914.png
--------------------------------------------------------------------------------
/src/statics/topo/svg/20190701181422_301.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/svg/20190701181422_301.png
--------------------------------------------------------------------------------
/src/statics/topo/svg/20190701181428_161.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/svg/20190701181428_161.png
--------------------------------------------------------------------------------
/src/statics/topo/svg/20190701181434_604.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/svg/20190701181434_604.png
--------------------------------------------------------------------------------
/src/statics/topo/svg/20190701182101_368.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/svg/20190701182101_368.png
--------------------------------------------------------------------------------
/src/statics/topo/svg/20190701182105_431.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/svg/20190701182105_431.png
--------------------------------------------------------------------------------
/src/statics/topo/svg/20190702163925_551.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/svg/20190702163925_551.png
--------------------------------------------------------------------------------
/src/statics/topo/svg/20190702170803_715.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/svg/20190702170803_715.png
--------------------------------------------------------------------------------
/src/statics/topo/office/20190620231255_288.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/20190620231255_288.png
--------------------------------------------------------------------------------
/src/statics/topo/office/20190701181354_914.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/20190701181354_914.png
--------------------------------------------------------------------------------
/src/statics/topo/office/20190701181422_301.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/20190701181422_301.png
--------------------------------------------------------------------------------
/src/statics/topo/office/20190701181428_161.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/20190701181428_161.png
--------------------------------------------------------------------------------
/src/statics/topo/office/20190701181434_604.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/20190701181434_604.png
--------------------------------------------------------------------------------
/src/statics/topo/office/20190701182101_368.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/20190701182101_368.png
--------------------------------------------------------------------------------
/src/statics/topo/office/20190701182105_431.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/20190701182105_431.png
--------------------------------------------------------------------------------
/src/statics/topo/office/20190702163925_551.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/20190702163925_551.png
--------------------------------------------------------------------------------
/src/statics/topo/office/20190702170803_715.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/src/statics/topo/office/20190702170803_715.png
--------------------------------------------------------------------------------
/src/views/login.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import ElementUI from 'element-ui';
3 | import 'element-ui/lib/theme-chalk/index.css';
4 | Vue.use(ElementUI);
5 |
--------------------------------------------------------------------------------
/dist/spa/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.29b882f0.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.29b882f0.woff
--------------------------------------------------------------------------------
/dist/spa/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.0509ab09.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Semporia/WebTopo/master/dist/spa/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.0509ab09.woff2
--------------------------------------------------------------------------------
/src/statics/topo/svg/ellipse2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/store/module-example/state.js:
--------------------------------------------------------------------------------
1 | export default {
2 | //
3 | userAccount:'', // 登录用户
4 | userDatalist:'', //
5 | Projectnametlist:[], // 项目列表
6 | ProjectFacility:[] //设备组
7 | }
8 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/dist/spa/statics/topo/svg/ellipse2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/i18n/en-us/index.js:
--------------------------------------------------------------------------------
1 | // This is just an example,
2 | // so you can safely delete all default props below
3 |
4 | export default {
5 | failed: 'Action failed',
6 | success: 'Action was successful'
7 | }
8 |
--------------------------------------------------------------------------------
/src/store/topo-editor/actions.js:
--------------------------------------------------------------------------------
1 |
2 | import jsonData from '../../assets/data/topo-data.json';
3 |
4 | export const loadDefaultTopoData = (ctx) => {
5 | ctx.state.topoData = jsonData; //后期可以远程数据
6 | }
--------------------------------------------------------------------------------
/src/boot/EventBus.js:
--------------------------------------------------------------------------------
1 |
2 | import simpleEventBus from 'src/assets/libs/simpleEventBus.js'
3 |
4 |
5 | export default ({ app, router, store, Vue }) => {
6 | Vue.prototype.SimpleEventBus = simpleEventBus;
7 | }
--------------------------------------------------------------------------------
/src/store/topo-editor/getters.js:
--------------------------------------------------------------------------------
1 | export const getTopoConfigData = (state) => {
2 | return state.topoData;
3 | };
4 |
5 | export const getSelectedComponents = (state) => {
6 | return state.selectedComponents;
7 | };
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | plugins: [
5 | // to edit target browsers: use "browserslist" field in package.json
6 | require('autoprefixer')
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/src/boot/config.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import ElementUI from 'element-ui';
3 | import 'element-ui/lib/theme-chalk/index.css';
4 | import global_ from '../assets/libs/httpurl';
5 | Vue.prototype.global = global_;
6 | Vue.use(ElementUI);
7 |
--------------------------------------------------------------------------------
/src/boot/x2js.js:
--------------------------------------------------------------------------------
1 | // import something here
2 | import x2js from 'x2js' //xml数据处理插件
3 |
4 | // "async" is optional
5 | export default async ({ /* app, router, Vue, ... */ Vue }) => {
6 | Vue.prototype.$x2js = new x2js() //创建x2js对象,挂到vue原型上
7 | }
8 |
--------------------------------------------------------------------------------
/src/pages/Index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
11 |
12 |
17 |
--------------------------------------------------------------------------------
/src/assets/data/topo-data.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "图层",
3 | "layer": {
4 | "backColor": "#eee",
5 | "backgroundImage": "",
6 | "widthHeightRatio": "",
7 | "width":1600,
8 | "height":900
9 | },
10 | "components": [
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/src/assets/libs/uid.js:
--------------------------------------------------------------------------------
1 | function s4 () {
2 | return Math.floor((1 + Math.random()) * 0x10000)
3 | .toString(16)
4 | .substring(1)
5 | }
6 |
7 | export default function () {
8 | return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
9 | s4() + '-' + s4() + s4() + s4()
10 | }
--------------------------------------------------------------------------------
/src/store/topo-editor/index.js:
--------------------------------------------------------------------------------
1 | import state from './state'
2 | import * as getters from './getters'
3 | import * as mutations from './mutations'
4 | import * as actions from './actions'
5 |
6 | export default {
7 | namespaced: true,
8 | state,
9 | getters,
10 | mutations,
11 | actions
12 | }
13 |
--------------------------------------------------------------------------------
/src/store/module-example/index.js:
--------------------------------------------------------------------------------
1 | import state from './state'
2 | import * as getters from './getters'
3 | import * as mutations from './mutations'
4 | import * as actions from './actions'
5 |
6 | export default {
7 | namespaced: true,
8 | state,
9 | getters,
10 | mutations,
11 | actions
12 | }
13 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
23 |
--------------------------------------------------------------------------------
/src/store/store-flag.d.ts:
--------------------------------------------------------------------------------
1 | // THIS FEATURE-FLAG FILE IS AUTOGENERATED,
2 | // REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING
3 | import "quasar/dist/types/feature-flag";
4 |
5 | declare module "quasar/dist/types/feature-flag" {
6 | interface QuasarFeatureFlags {
7 | store: true;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src-electron/electron-flag.d.ts:
--------------------------------------------------------------------------------
1 | // THIS FEATURE-FLAG FILE IS AUTOGENERATED,
2 | // REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING
3 | import "quasar/dist/types/feature-flag";
4 |
5 | declare module "quasar/dist/types/feature-flag" {
6 | interface QuasarFeatureFlags {
7 | electron: true;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/boot/i18n.js:
--------------------------------------------------------------------------------
1 | import VueI18n from 'vue-i18n'
2 | import messages from 'src/i18n'
3 |
4 | export default async ({ app, Vue }) => {
5 | Vue.use(VueI18n)
6 |
7 | // Set i18n instance on app
8 | app.i18n = new VueI18n({
9 | locale: 'en-us',
10 | fallbackLocale: 'en-us',
11 | messages
12 | })
13 | }
14 |
--------------------------------------------------------------------------------
/src/layouts/TopoLayout.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
19 |
--------------------------------------------------------------------------------
/dist/spa/js/2d21eaa9.76267622.js:
--------------------------------------------------------------------------------
1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["2d21eaa9"],{d711:function(e,n,t){"use strict";t.r(n);var a=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("router-view")},o=[],u={name:"TopoLayout"},r=u,l=t("6691"),c=Object(l["a"])(r,a,o,!1,null,null,null);n["default"]=c.exports}}]);
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## 2019-12-13
4 | - 优化删除组件后,该组件后面的组件不显示的问题
5 | 具体原因查看https://www.jianshu.com/p/844e4afc77b8
6 | 改为使用id绑定,而不是数组的index
7 |
8 |
9 | ## 2019-12-06
10 | - 增加撤销和恢复的演示
11 | - 将复制、新增、移动改为命令模式(请求和实现分离)
12 |
13 | 仅仅提供了拖放控件后的撤销和恢复,且每次操作后要重新点击面板获取焦点才能操作(bug,抽时间搞这个弄到凌晨2点了,以后再解决吧)
14 | 实现整体思想很简单,使用设计模式的命令模式即可。
--------------------------------------------------------------------------------
/src/statics/mada/md.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | set /p w=请输入文件格式(即扩展名并以回车结束):
3 | set /p str1=请输入要修改的文字(以回车结束):
4 | set /p str2=请输入要改成的文字(若是删除则直接回车,以回车结束):
5 | for /f "delims=" %%i in ('dir /b /a-d "*.%w%"' ) do (
6 | set str3=%%i
7 | setlocal EnableDelayedExpansion
8 | set "str3=!str3:%str1%=%str2%!"
9 | ren "%%i" "!str3!"
10 | endlocal
11 | )
12 | pause
--------------------------------------------------------------------------------
/src/statics/zhuangz/md.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | set /p w=请输入文件格式(即扩展名并以回车结束):
3 | set /p str1=请输入要修改的文字(以回车结束):
4 | set /p str2=请输入要改成的文字(若是删除则直接回车,以回车结束):
5 | for /f "delims=" %%i in ('dir /b /a-d "*.%w%"' ) do (
6 | set str3=%%i
7 | setlocal EnableDelayedExpansion
8 | set "str3=!str3:%str1%=%str2%!"
9 | ren "%%i" "!str3!"
10 | endlocal
11 | )
12 | pause
--------------------------------------------------------------------------------
/src/statics/shuibeng/md.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | set /p w=请输入文件格式(即扩展名并以回车结束):
3 | set /p str1=请输入要修改的文字(以回车结束):
4 | set /p str2=请输入要改成的文字(若是删除则直接回车,以回车结束):
5 | for /f "delims=" %%i in ('dir /b /a-d "*.%w%"' ) do (
6 | set str3=%%i
7 | setlocal EnableDelayedExpansion
8 | set "str3=!str3:%str1%=%str2%!"
9 | ren "%%i" "!str3!"
10 | endlocal
11 | )
12 | pause
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './App.vue'
3 | import router from './router'
4 | import store from './store'
5 |
6 |
7 | import axios from 'axios'
8 | Vue.prototype.$axios = axios;
9 | Vue.config.productionTip = false
10 |
11 | new Vue({
12 | router,
13 | store,
14 |
15 | render: h => h(App)
16 | }).$mount('#app')
17 |
--------------------------------------------------------------------------------
/dist/spa/css/243bf772.e3a0afda.css:
--------------------------------------------------------------------------------
1 | .topo-render{overflow:auto;background-color:#fff;background-clip:padding-box;background-origin:padding-box;background-repeat:no-repeat;background-size:100% 100%;position:relative;height:100%}.topo-render .topo-render-wrapper{position:absolute}.topo-render .topo-render-wrapper-clickable{cursor:pointer}.topo-fullscreen{height:100vh;width:100%}
--------------------------------------------------------------------------------
/src/statics/topo/svg-dianli/PresetCapacitor_H.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/statics/topo/svg-dianli/PresetCapacitor_V.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/dist/spa/statics/topo/svg-dianli/PresetCapacitor_H.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/dist/spa/statics/topo/svg-dianli/PresetCapacitor_V.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/dist/spa/css/4b158788.484bb54c.css:
--------------------------------------------------------------------------------
1 | .view-text{height:100%;width:100%}.view-image{height:100%;text-align:center;display:flex;justify-content:center;align-items:center}.view-line-arrow{height:100%;width:100%;position:relative}.view-line-arrow .passby{position:absolute;height:10px;width:10px;background-color:#fff;border:1px solid #0cf;left:-5px;top:-5px;cursor:move}.view-chart,.view-chart-gauge,.view-chart-pie{height:100%;width:100%;text-align:center;display:flex;justify-content:center;align-items:center}
--------------------------------------------------------------------------------
/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuex from 'vuex'
3 |
4 | import example from './module-example'
5 | import topoEditor from './topo-editor';
6 |
7 | Vue.use(Vuex)
8 |
9 | /*
10 | * If not building with SSR mode, you can
11 | * directly export the Store instantiation
12 | */
13 |
14 | export default function (/* { ssrContext } */) {
15 | const Store = new Vuex.Store({
16 | modules: {
17 | example,
18 | topoEditor
19 | }
20 | })
21 |
22 | return Store
23 | }
24 |
--------------------------------------------------------------------------------
/src/pages/Error404.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
Sorry, 页面找不到...(404)
10 |
返回登录页
15 |
16 |
17 |
18 |
23 |
--------------------------------------------------------------------------------
/src/statics/topo/svg/loading/loading-7.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/dist/spa/statics/topo/svg/loading/loading-7.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/store/module-example/mutations.js:
--------------------------------------------------------------------------------
1 | /*
2 | export function someMutation (state) {
3 | }
4 | */
5 | export const getuserAccount = (state,itemsv) =>{
6 | state.userAccount = itemsv
7 | // 登录用户
8 | }
9 | // 用户列表
10 | export const getuserDatalist = (state,itemsv) =>{
11 | state.userDatalist = itemsv
12 |
13 | }
14 | // 项目列表
15 | export const getProjectnametlist = (state,itemsv) =>{
16 | console.log(itemsv);
17 | state.Projectnametlist = itemsv
18 | }
19 | // 设备组
20 | export const ProjectFacility = (state,itemsv) =>{
21 | state.ProjectFacility = itemsv
22 | }
23 |
--------------------------------------------------------------------------------
/src/statics/topo/svg/loading/loading-6.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/dist/spa/statics/topo/svg/loading/loading-6.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/data/chart-bar.json:
--------------------------------------------------------------------------------
1 | {
2 | "xAxis": {
3 | "type": "category",
4 | "data": [
5 | "Mon",
6 | "Tue",
7 | "Wed",
8 | "Thu",
9 | "Fri",
10 | "Sat",
11 | "Sun"
12 | ]
13 | },
14 | "yAxis": {
15 | "type": "value"
16 | },
17 | "series": [
18 | {
19 | "data": [
20 | 120,
21 | 200,
22 | 150,
23 | 80,
24 | 70,
25 | 110,
26 | 130
27 | ],
28 | "type": "bar"
29 | }
30 | ]
31 | }
--------------------------------------------------------------------------------
/src/css/quasar.variables.styl:
--------------------------------------------------------------------------------
1 | // Quasar Stylus Variables
2 | // --------------------------------------------------
3 | // To customize the look and feel of this app, you can override
4 | // the Stylus variables found in Quasar's source Stylus files.
5 |
6 | // Check documentation for full list of Quasar variables
7 |
8 | // It's highly recommended to change the default colors
9 | // to match your app's branding.
10 | // Tip: Use the "Theme Builder" on Quasar's documentation website.
11 |
12 | $primary = #027BE3
13 | $secondary = #26A69A
14 | $accent = #9C27B0
15 |
16 | $positive = #21BA45
17 | $negative = #C10015
18 | $info = #31CCEC
19 | $warning = #F2C037
20 |
--------------------------------------------------------------------------------
/src/assets/data/chart-line.json:
--------------------------------------------------------------------------------
1 | {
2 | "xAxis": {
3 | "type": "category",
4 | "data": [
5 | "Mon",
6 | "Tue",
7 | "Wed",
8 | "Thu",
9 | "Fri",
10 | "Sat",
11 | "Sun"
12 | ]
13 | },
14 | "yAxis": {
15 | "type": "value"
16 | },
17 | "series": [
18 | {
19 | "data": [
20 | 820,
21 | 932,
22 | 901,
23 | 934,
24 | 1290,
25 | 1330,
26 | 1320
27 | ],
28 | "type": "line",
29 | "smooth": true
30 | }
31 | ]
32 | }
--------------------------------------------------------------------------------
/src/components/topo/control/svg/ViewSvgImage.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
7 |
8 |
9 |
25 |
--------------------------------------------------------------------------------
/src/store/topo-editor/state.js:
--------------------------------------------------------------------------------
1 | export default {
2 | topoData: {
3 | name: '--',
4 | layer: {
5 | backColor: '',
6 | backgroundImage: '',
7 | widthHeightRatio: '',
8 | width: 1600,
9 | height: 900
10 | },
11 | components: [],
12 |
13 | }, //当前场景的组态数据
14 | selectedComponentMapdemo:true,
15 | istopoData:false,
16 | selectedIsLayer: true, //当前选择的是不是layer层
17 | selectedComponent: null,//当前选择的单个组件--仅仅当只有一个组件选中有效,当有多个组件选中,则置为null
18 | selectedComponents: [], //当前选择的组件--只存identifier
19 | selectedComponentMap: {}, //当前选择的组件--key=identifier,本数据和selectedComponents同步,主要用于渲染判断
20 | copySrcItems: [],//当前是否使用了CTRL+C命令
21 | copyCount: 0,//copy计数,对于同一个复制源,每次复制后计数+1
22 | undoStack: [],//
23 | redoStack: [],//
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/dist/spa/statics/topo/svg/demo1.svg:
--------------------------------------------------------------------------------
1 |
2 |
14 |
--------------------------------------------------------------------------------
/src-electron/main-process/electron-main.dev.js:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is used specifically and only for development. It installs
3 | * `electron-debug` & `vue-devtools`. There shouldn't be any need to
4 | * modify this file, but it can be used to extend your development
5 | * environment.
6 | */
7 |
8 | // Install `electron-debug` with `devtron`
9 | require('electron-debug')({ showDevTools: true })
10 |
11 | // Install `vue-devtools`
12 | require('electron').app.on('ready', () => {
13 | let installExtension = require('electron-devtools-installer')
14 | installExtension.default(installExtension.VUEJS_DEVTOOLS)
15 | .then(() => {})
16 | .catch(err => {
17 | console.log('Unable to install `vue-devtools`: \n', err)
18 | })
19 | })
20 |
21 | // Require `main` process to boot app
22 | require('./electron-main')
23 |
--------------------------------------------------------------------------------
/src/statics/topo/svg/demo1.svg:
--------------------------------------------------------------------------------
1 |
2 |
14 |
--------------------------------------------------------------------------------
/src/components/chart/ChartWrapper.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
39 |
--------------------------------------------------------------------------------
/src/statics/topo/svg/loading/loading-2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/dist/spa/statics/topo/svg/loading/loading-2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.stylintrc:
--------------------------------------------------------------------------------
1 | {
2 | "blocks": "never",
3 | "brackets": "never",
4 | "colons": "never",
5 | "colors": "always",
6 | "commaSpace": "always",
7 | "commentSpace": "always",
8 | "cssLiteral": "never",
9 | "depthLimit": false,
10 | "duplicates": true,
11 | "efficient": "always",
12 | "extendPref": false,
13 | "globalDupe": true,
14 | "indentPref": 2,
15 | "leadingZero": "never",
16 | "maxErrors": false,
17 | "maxWarnings": false,
18 | "mixed": false,
19 | "namingConvention": false,
20 | "namingConventionStrict": false,
21 | "none": "never",
22 | "noImportant": false,
23 | "parenSpace": "never",
24 | "placeholder": false,
25 | "prefixVarsWithDollar": "always",
26 | "quotePref": "single",
27 | "semicolons": "never",
28 | "sortOrder": false,
29 | "stackedProperties": "never",
30 | "trailingWhitespace": "never",
31 | "universal": "never",
32 | "valid": true,
33 | "zeroUnits": "never",
34 | "zIndexNormalize": false
35 | }
36 |
--------------------------------------------------------------------------------
/src/statics/topo/svg/loading/loading-8.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/dist/spa/statics/topo/svg/loading/loading-8.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/components/topo/control/svg/ViewSvgStatic.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
39 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 | Copyright (c) 2019 phynos
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
5 |
6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
7 |
8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/src/statics/topo/svg/loading/loading-5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/dist/spa/statics/topo/svg/loading/loading-5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/libs/websocket.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | //const wsuri = process.env.WS_API;
4 | const wsuri = "";
5 |
6 | var WebSocketUtil = function() {
7 | this.websock = null;
8 | this._reconnect = function () {
9 |
10 | };
11 | }
12 |
13 | WebSocketUtil.prototype.initSocket = function() {
14 | this.websock = new WebSocket(wsuri);
15 | this.websock.onopen = () => {
16 |
17 | };
18 | this.websock.onmessage = (msg) => {
19 |
20 | };
21 | this.websock.onclose = (evt) => {
22 | console.log('socket close', evt);
23 | this.websock = null;
24 | if (this.socketClose) {
25 | this.socketClose();
26 | }
27 | };
28 | this.websock.onerror = () => {
29 | this.destroy();
30 | this._reconnect();
31 | }
32 | }
33 |
34 | WebSocketUtil.prototype.send = function() {
35 |
36 | }
37 |
38 | WebSocketUtil.prototype.destroy = function () {
39 | if (this.websock) {
40 | this.websock.close();
41 | }
42 | this.websock = null;
43 | };
44 |
45 | const Instance = new WebSocketUtil();
46 | export default Instance;
47 |
--------------------------------------------------------------------------------
/src/statics/topo/svg/loading/loading-4.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/dist/spa/statics/topo/svg/loading/loading-4.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/components/chart/ChartMapView.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
44 |
--------------------------------------------------------------------------------
/src/components/topo/control/ViewText.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 | {{detail.style.text}}
10 | {{sensor_unit}}
11 |
12 |
13 |
14 |
40 |
41 |
48 |
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import VueRouter from 'vue-router'
3 | // import Login from '../views/Login.vue'
4 | import routes from './routes'
5 |
6 | Vue.use(VueRouter)
7 |
8 |
9 |
10 | /*
11 | * If not building with SSR mode, you can
12 | * directly export the Router instantiation
13 | */
14 | // const routerPush = VueRouter.prototype.push
15 | // VueRouter.prototype.push = function push(location) {
16 | // return routerPush.call(this, location).catch(error=> error)
17 | // }
18 |
19 |
20 | export default function (/* { store, ssrContext } */) {
21 | const Router = new VueRouter({
22 | scrollBehavior: () => ({ y: 0 }),
23 | routes,
24 | mode: 'hash',
25 | // Leave these as is and change from quasar.conf.js instead!
26 | // quasar.conf.js -> build -> vueRouterMode
27 | // quasar.conf.js -> build -> publicPath
28 | // mode: process.env.VUE_ROUTER_MODE,
29 | base: process.env.VUE_ROUTER_BASE
30 | })
31 |
32 | const originalPush = VueRouter.prototype.push
33 | VueRouter.prototype.push = function push(location) {
34 | return originalPush.call(this, location).catch(err => err)
35 | }
36 | return Router
37 | }
--------------------------------------------------------------------------------
/src/statics/guandao/gd26.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
20 |
--------------------------------------------------------------------------------
/src/statics/guandao/gd25.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
20 |
--------------------------------------------------------------------------------
/src/assets/data/chart-lines.json:
--------------------------------------------------------------------------------
1 | {
2 | "grid": {
3 | "top": "0%",
4 | "left": "0%",
5 | "right": "0%",
6 | "bottom": "0%"
7 | },
8 | "xAxis": {
9 | "show": false,
10 | "min": 0,
11 | "max": 1200
12 | },
13 | "yAxis": {
14 | "show": false,
15 | "min": 0,
16 | "max": 1200
17 | },
18 | "series": [
19 | {
20 | "type": "lines",
21 | "coordinateSystem": "cartesian2d",
22 | "z": 1,
23 | "zlevel": 7,
24 | "animation": true,
25 |
26 | "effect": {
27 | "show": true,
28 | "period": 5,
29 | "trailLength": 0.71,
30 | "symbolSize": 20,
31 | "width": 100,
32 | "symbol": "circle",
33 | "loop": true,
34 | "color": "yellow"
35 | },
36 | "lineStyle": {
37 | "type": "solid",
38 | "width": 0,
39 | "curveness": 0
40 | },
41 | "data": [
42 | {
43 | "coords": [
44 | [0, 400],
45 | [1230, 400]
46 | ]
47 | }
48 | ]
49 | }]
50 | }
--------------------------------------------------------------------------------
/src/components/topo/control/View.vue:
--------------------------------------------------------------------------------
1 |
54 |
--------------------------------------------------------------------------------
/src-electron/main-process/electron-main.js:
--------------------------------------------------------------------------------
1 | import { app, BrowserWindow } from 'electron'
2 |
3 | /**
4 | * Set `__statics` path to static files in production;
5 | * The reason we are setting it here is that the path needs to be evaluated at runtime
6 | */
7 | if (process.env.PROD) {
8 | global.__statics = require('path').join(__dirname, 'statics').replace(/\\/g, '\\\\')
9 | }
10 |
11 | let mainWindow
12 |
13 | function createWindow () {
14 | /**
15 | * Initial window options
16 | */
17 | mainWindow = new BrowserWindow({
18 | width: 1000,
19 | height: 600,
20 | useContentSize: true,
21 | webPreferences: {
22 | // keep in sync with /quasar.conf.js > electron > nodeIntegration
23 | // (where its default value is "true")
24 | // More info: https://quasar.dev/quasar-cli/developing-electron-apps/node-integration
25 | nodeIntegration: true
26 | }
27 | })
28 |
29 | mainWindow.loadURL(process.env.APP_URL)
30 |
31 | mainWindow.on('closed', () => {
32 | mainWindow = null
33 | })
34 | }
35 |
36 | app.on('ready', createWindow)
37 |
38 | app.on('window-all-closed', () => {
39 | if (process.platform !== 'darwin') {
40 | app.quit()
41 | }
42 | })
43 |
44 | app.on('activate', () => {
45 | if (mainWindow === null) {
46 | createWindow()
47 | }
48 | })
49 |
--------------------------------------------------------------------------------
/src/statics/topo/svg/loading/loading-3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/dist/spa/statics/topo/svg/loading/loading-3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "WebTopo",
3 | "version": "0.0.1",
4 | "description": "web",
5 | "productName": "WebTopo",
6 | "cordovaId": "phynos",
7 | "author": "phynos",
8 | "private": true,
9 | "scripts": {
10 | "lint": "eslint --ext .js,.vue src",
11 | "dev": "quasar dev",
12 | "build": "quasar build",
13 | "build:pwa": "quasar build -m pwa",
14 | "test": "echo \"No test specified\" && exit 0"
15 | },
16 | "dependencies": {
17 | "@quasar/extras": "^1.3.2",
18 | "axios": "^0.19.0",
19 | "clipboard": "^2.0.6",
20 | "echarts": "^4.9.0",
21 | "echarts-liquidfill": "^2.0.6",
22 | "element-ui": "^2.13.2",
23 | "moment": "^2.24.0",
24 | "quasar": "^1.2.5",
25 | "vue-i18n": "^7.3.3",
26 | "x2js": "^3.3.1"
27 | },
28 | "devDependencies": {
29 | "@quasar/app": "^1.2.2",
30 | "@vue/eslint-config-standard": "^4.0.0",
31 | "babel-eslint": "^10.0.1",
32 | "eslint": "^5.10.0",
33 | "eslint-loader": "^2.1.1",
34 | "eslint-plugin-vue": "^5.0.0",
35 | "node-sass": "^4.12.0",
36 | "sass-loader": "^7.1.0",
37 | "strip-ansi": "=3.0.1"
38 | },
39 | "engines": {
40 | "node": ">= 8.9.0",
41 | "npm": ">= 5.6.0",
42 | "yarn": ">= 1.6.0"
43 | },
44 | "browserslist": [
45 | "last 1 version, not dead, ie >= 11"
46 | ],
47 | "resolutions": {
48 | "ajv": "6.8.1"
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/components/topo/control/ViewButtom.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
50 |
51 |
--------------------------------------------------------------------------------
/src/components/topo/control/canvas/ViewTriangle.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
46 |
--------------------------------------------------------------------------------
/src/assets/libs/simpleEventBus.js:
--------------------------------------------------------------------------------
1 | // 构造EventBus
2 | function SimpleEventBus() {
3 | this.msgQueues = {}
4 | }
5 |
6 | SimpleEventBus.prototype = {
7 | // 将消息保存到当前的消息队列中
8 | on: function(msgName, func) {
9 | if (this.msgQueues.hasOwnProperty(msgName)) {
10 | if (typeof this.msgQueues[msgName] === 'function') {
11 | this.msgQueues[msgName] = [this.msgQueues[msgName], func]
12 | } else {
13 | this.msgQueues[msgName] = [...this.msgQueues[msgName], func]
14 | }
15 | } else {
16 | this.msgQueues[msgName] = func;
17 | }
18 | },
19 | // 消息队列中仅保存一个消息
20 | one: function(msgName, func) {
21 | // 无需检查msgName是否存在
22 | this.msgQueues[msgName] = func;
23 | },
24 | // 发送消息
25 | emit: function(msgName, msg) {
26 | if (!this.msgQueues.hasOwnProperty(msgName)) {
27 | return
28 | }
29 | if (typeof this.msgQueues[msgName] === 'function') {
30 | this.msgQueues[msgName](msg)
31 | } else {
32 | this.msgQueues[msgName].map((fn) => {
33 | fn(msg)
34 | })
35 | }
36 | },
37 | // 移除消息
38 | off: function(msgName) {
39 | if (!this.msgQueues.hasOwnProperty(msgName)) {
40 | return
41 | }
42 | delete this.msgQueues[msgName]
43 | }
44 | }
45 |
46 | // 将EventBus放到window对象中
47 | const Instance = new SimpleEventBus()
48 | export default Instance;
--------------------------------------------------------------------------------
/src/statics/topo/office/jiantou.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/office/jiantou2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/office/jiantou3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/components/topo/control/canvas/ViewCircular.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
44 |
--------------------------------------------------------------------------------
/src/components/topo/control/ViewImage.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
49 |
50 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 |
4 | parserOptions: {
5 | parser: 'babel-eslint',
6 | sourceType: 'module'
7 | },
8 |
9 | env: {
10 | browser: true
11 | },
12 |
13 | extends: [
14 | // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
15 | // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
16 | 'plugin:vue/essential',
17 | '@vue/standard'
18 | ],
19 |
20 | // required to lint *.vue files
21 | plugins: [
22 | 'vue'
23 | ],
24 |
25 | globals: {
26 | 'ga': true, // Google Analytics
27 | 'cordova': true,
28 | '__statics': true,
29 | 'process': true
30 | },
31 |
32 | // add your custom rules here
33 | rules: {
34 | // allow async-await
35 | 'generator-star-spacing': 'off',
36 | // allow paren-less arrow functions
37 | 'arrow-parens': 'off',
38 | 'one-var': 'off',
39 |
40 | 'import/first': 'off',
41 | 'import/named': 'error',
42 | 'import/namespace': 'error',
43 | 'import/default': 'error',
44 | 'import/export': 'error',
45 | 'import/extensions': 'off',
46 | 'import/no-unresolved': 'off',
47 | 'import/no-extraneous-dependencies': 'off',
48 | 'prefer-promise-reject-errors': 'off',
49 |
50 | // allow console.log during development only
51 | 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
52 | // allow debugger during development only
53 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/views/my-q-menu-item.vue:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | {{item.Label_text}}
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
29 |
30 |
31 |
32 |
33 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
60 |
--------------------------------------------------------------------------------
/src/router/routes.js:
--------------------------------------------------------------------------------
1 | import Login from '../views/Login.vue'
2 | import Home from '../views/Home.vue'
3 | const routes = [
4 | {
5 | path: '/',
6 | name: 'Login',
7 | component: Login
8 | },
9 | {
10 | path: '/Home',
11 | name: 'Home',
12 | component: Home,
13 | children:[
14 | {
15 | path: '/',
16 |
17 | component: resolve => require(['../views/Projectmanage'], resolve)
18 | },
19 | {
20 | path: '/Projectmanage',
21 | component: resolve => require(['../views/Projectmanage'], resolve)
22 | },
23 | {
24 | path: '/usermanage',
25 |
26 | component: resolve => require(['../views/usermanage'], resolve)
27 | },
28 | {
29 | path: '/Facility',
30 | component: resolve => require(['../views/Facility'], resolve)
31 | },
32 | ]
33 | },
34 | {
35 | path: '/TopoLayout',
36 | name:'TopoLayout',
37 | component: () => import('layouts/TopoLayout.vue'),
38 | children: [
39 | {
40 | path: '', component: () => import('pages/topo/Editor.vue')
41 | }
42 | ]
43 | },
44 | {
45 | path: '/Fullscreenpage',
46 | name: 'Fullscreenpage',
47 | component: () => import('pages/topo/Fullscreenpage'),
48 | },
49 | {
50 | path: '/Fullscreen', name: 'Fullscreen',component: () => import('pages/topo/Fullscreen.vue')
51 | }
52 | ]
53 |
54 | // Always leave this as last one
55 | if (process.env.MODE !== 'ssr') {
56 | routes.push({
57 | path: '*',
58 | component: () => import('pages/Error404.vue')
59 | })
60 | }
61 |
62 | export default routes
63 |
--------------------------------------------------------------------------------
/src/components/topo/control/canvas/ViewLine.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
48 |
--------------------------------------------------------------------------------
/src/pages/topo/Editor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
44 |
45 |
69 |
--------------------------------------------------------------------------------
/src/components/topo/control/canvas/ViewLineWave.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
50 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-向左展开.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/dist/spa/index.html:
--------------------------------------------------------------------------------
1 | WebTopo
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-向上展开.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-向下展开.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/components/topo/data-toolbox/svg-dianli.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "SVG-电力元件",
3 | "icon": "payment",
4 | "opened": false,
5 | "items": [{
6 | "text": "预调电容器-水平",
7 | "icon": "stop",
8 | "isFontIcon": true,
9 | "info": {
10 | "type": "svg-static",
11 | "action": [],
12 | "dataBind": {
13 | "sn": "",
14 | "title": "",
15 | "biz": "",
16 | "queryParam": {}
17 | },
18 | "style": {
19 | "position": {
20 | "x": 0,
21 | "y": 0,
22 | "w": 100,
23 | "h": 100
24 | },
25 | "backColor": "transparent",
26 | "zIndex": 1,
27 | "url": "statics/topo/svg-dianli/PresetCapacitor_H.svg"
28 | }
29 | }
30 | },{
31 | "text": "预调电容器-垂直",
32 | "icon": "stop",
33 | "isFontIcon": true,
34 | "info": {
35 | "type": "svg-static",
36 | "action": [],
37 | "dataBind": {
38 | "sn": "",
39 | "title": "",
40 | "biz": "",
41 | "queryParam": {}
42 | },
43 | "style": {
44 | "position": {
45 | "x": 0,
46 | "y": 0,
47 | "w": 200,
48 | "h": 200
49 | },
50 | "backColor": "transparent",
51 | "zIndex": 1,
52 | "url": "statics/topo/svg-dianli/PresetCapacitor_V.svg"
53 | }
54 | }
55 | }
56 | ]
57 | }
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-向右展开.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/famen/famen18.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
28 |
--------------------------------------------------------------------------------
/src/assets/libs/topo.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | //射线法-边界检测-只能检测凸边形(检测点在不在多边形里面)
4 | function inRange(x, y, points) {
5 | // points表示多边形的顶点集合
6 | let inside = false;
7 | for (let i = 0, j = points.length - 1; i < points.length; j = i++) {
8 | let xi = points[i][0],
9 | yi = points[i][1];
10 | let xj = points[j][0],
11 | yj = points[j][1];
12 | let intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);
13 | if (intersect)
14 | inside = !inside;
15 | }
16 | return inside;
17 | }
18 |
19 | /**
20 | * 矩形边界检测-中心点判断法
21 | * @param {*} frameRect
22 | * @param {*} itemRect
23 | */
24 | export function checkByPointInRect(frameRect,itemRect) {
25 | var x = itemRect.x + itemRect.width / 2,
26 | y = itemRect.y + itemRect.height / 2;
27 | if( x > frameRect.x && y > frameRect.y && x < (frameRect.x + frameRect.width) && y < (frameRect.y + frameRect.height))
28 | return true;
29 | else
30 | return false;
31 | }
32 |
33 | /**
34 | * 矩形边界检测-碰撞检测法
35 | * 两个矩形中心点在x方向的距离的绝对值小于等于矩形宽度和的二分之一,同时y方向的距离的绝对值小于等于矩形高度和的二分之一
36 | * @param {*} frameRect
37 | * @param {*} itemRect
38 | */
39 | export function checkByRectCollisionDetection(frameRect,itemRect) {
40 | var x1 = frameRect.x + frameRect.width / 2,
41 | y1 = frameRect.y + frameRect.height / 2,
42 | w1 = frameRect.width,
43 | h1 = frameRect.height;
44 | var x2 = itemRect.x + itemRect.width / 2,
45 | y2 = itemRect.y + itemRect.height / 2,
46 | w2 = itemRect.width,
47 | h2 = itemRect.height;
48 | if(Math.abs(x1 - x2) < ((w1 + w2) / 2) && Math.abs(y1 - y2) < ((h1 + h2) / 2))
49 | return true;
50 | else
51 | return false;
52 | }
--------------------------------------------------------------------------------
/src/statics/topo/svg/loading/loading-1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/dist/spa/statics/topo/svg/loading/loading-1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-向右滑入.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-从右滚入.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/index.template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | <%= htmlWebpackPlugin.options.productName %>
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/src/statics/guandao/gd2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
34 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-向下滑入.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-向左滑入.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/echarts-map-json/province/aomen.json:
--------------------------------------------------------------------------------
1 | {"type":"FeatureCollection","features":[{"id":"820001","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@LADC^umZ@DONWE@DALBBF@H@DFBBTC"],["@@P@LC@AGM@OECMBABBTCD@DDH"]],"encodeOffsets":[[[116285,22746]],[[116303,22746]]]},"properties":{"cp":[113.552965,22.207882],"name":"花地玛堂区","childNum":2}},{"id":"820002","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@MK@CA@AAGDEB@NVFJG"],"encodeOffsets":[[116281,22734]]},"properties":{"cp":[113.549052,22.199175],"name":"花王堂区","childNum":1}},{"id":"820003","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@EGOB@DNLHE@C"],"encodeOffsets":[[116285,22729]]},"properties":{"cp":[113.550252,22.193791],"name":"望德堂区","childNum":1}},{"id":"820004","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@YMVAN@BFCBBDAFHDBBFDHIJJEFDPCHHlYJQ"],"encodeOffsets":[[116313,22707]]},"properties":{"cp":[113.55374,22.188119],"name":"大堂区","childNum":1}},{"id":"820005","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@JICGAECACGEBAAEDBFNXB@"],"encodeOffsets":[[116266,22728]]},"properties":{"cp":[113.54167,22.187778],"name":"风顺堂区","childNum":1}},{"id":"820006","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ ZNWRquZCBCC@AEA@@ADCDCAACEAGBQ@INEL"],"encodeOffsets":[[116265,22694]]},"properties":{"cp":[113.558783,22.154124],"name":"嘉模堂区","childNum":1}},{"id":"820007","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@MOIAIEI@@GE@AAUCBdCFIFR@HAFBBDDBDCBC@@FB@BDDDA\\M"],"encodeOffsets":[[116316,22676]]},"properties":{"cp":[113.56925,22.136546],"name":"路凼填海区","childNum":1}},{"id":"820008","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@DKMMa_GC_COD@dVDBBF@@HJ@JFJBNPZK"],"encodeOffsets":[[116329,22670]]},"properties":{"cp":[113.559954,22.124049],"name":"圣方济各堂区","childNum":1}}],"UTF8Encoding":true}
--------------------------------------------------------------------------------
/src/statics/guandao/gd4.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
34 |
--------------------------------------------------------------------------------
/src/statics/guandao/gd6.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
34 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-向上滑入.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-淡入.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/components/topo/Topotable.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | 导入
12 | 删除
13 |
14 |
15 |
16 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/src/components/topo/util/topo-util.js:
--------------------------------------------------------------------------------
1 | const topoUtil = {};
2 |
3 | //如果需要手动映射type和组件的关系,请在这里配置
4 | topoUtil.viewRegisterMap = {
5 | "triangle": "view-triangle",
6 | "rect": "view-rect",
7 | "circular": "view-circular",
8 | "line": "view-line",
9 | "line-arrow": "view-line-arrow",
10 | "chart-line": "view-chart",
11 |
12 | "canvas-lines": "view-canvas-lines",
13 | "chart-line-step": "view-chart",
14 | "chart-bar": "view-chart",
15 | "chart-pie": "view-chart-pie",
16 | "chart-gauge": "view-chart-gauge",
17 | "chart-watera": "view-chartwatera",
18 | "chart-wsquare": "view-chart-wsquare",
19 | "buttom":"view-buttom",
20 | "web-record": "view-web-record",
21 | "weather": "view-weather",
22 | };
23 |
24 | //优先匹配map,否则将自动匹配
25 | topoUtil.parseViewName = function (component) {
26 | // console.log('优先匹配map,否则将自动匹配')
27 |
28 | var viewName = topoUtil.viewRegisterMap[component.type];
29 | if(viewName == undefined) {
30 | // console.info(`没有手动配置组件映射,将根据数据的type自动匹配,当前组件类型=${component.type}`);
31 | viewName = "view-" + component.type;
32 | }
33 | return viewName;
34 | };
35 |
36 | topoUtil.parseEchartType = function (component, option) {
37 | console.log(option)
38 | delete option.series[0]['step'];
39 | delete option.series[0]['smooth'];
40 | if (component.type == 'chart-line') {
41 | option.series[0].type = 'line';
42 | option.series[0]['smooth'] = true;
43 | }
44 | if (component.type == 'chart-lines') {
45 | console.log(option)
46 | }
47 | else if (component.type == 'chart-bar') {
48 | option.series[0].type = 'bar';
49 | } else if (component.type == 'chart-line-step') {
50 | option.series[0].type = 'line';
51 | option.series[0].step = 'start';
52 | }
53 | }
54 | // topoUtil.componentType = (type)=>{
55 | // if(type == 'buttom'){
56 |
57 | // }
58 | // }
59 | export default topoUtil;
60 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-从左滚入.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/data/chart-pie.json:
--------------------------------------------------------------------------------
1 | {
2 | "tooltip": {
3 | "trigger": "item",
4 | "formatter": "{a}
{b}: {c} ({d}%)"
5 | },
6 | "legend": {
7 | "orient": "vertical",
8 | "x": "left",
9 | "data": [
10 | "直接访问",
11 | "邮件营销",
12 | "联盟广告",
13 | "视频广告",
14 | "搜索引擎"
15 | ]
16 | },
17 | "series": [
18 | {
19 | "name": "访问来源",
20 | "type": "pie",
21 | "radius": [
22 | "50%",
23 | "70%"
24 | ],
25 | "avoidLabelOverlap": false,
26 | "label": {
27 | "normal": {
28 | "show": false,
29 | "position": "center"
30 | },
31 | "emphasis": {
32 | "show": true,
33 | "textStyle": {
34 | "fontSize": "30",
35 | "fontWeight": "bold"
36 | }
37 | }
38 | },
39 | "labelLine": {
40 | "normal": {
41 | "show": false
42 | }
43 | },
44 | "data": [
45 | {
46 | "value": 335,
47 | "name": "直接访问"
48 | },
49 | {
50 | "value": 310,
51 | "name": "邮件营销"
52 | },
53 | {
54 | "value": 234,
55 | "name": "联盟广告"
56 | },
57 | {
58 | "value": 135,
59 | "name": "视频广告"
60 | },
61 | {
62 | "value": 1548,
63 | "name": "搜索引擎"
64 | }
65 | ]
66 | }
67 | ]
68 | }
--------------------------------------------------------------------------------
/src/components/topo/control/canvas/ViewCanvas.vue:
--------------------------------------------------------------------------------
1 |
55 |
--------------------------------------------------------------------------------
/src/components/topo/TopoBase.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-旋转出现.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-刹车.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/svg/off1.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | ]>
13 |
35 |
--------------------------------------------------------------------------------
/src/statics/topo/office/off1.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | ]>
13 |
35 |
--------------------------------------------------------------------------------
/src/statics/topo/svg/on1.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | ]>
13 |
36 |
--------------------------------------------------------------------------------
/src/statics/topo/office/on1.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | ]>
13 |
36 |
--------------------------------------------------------------------------------
/src/components/topo/control/chart/ViewChartGauge.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | Click to bind data.
4 |
5 |
6 |
7 |
71 |
72 |
82 |
--------------------------------------------------------------------------------
/src/components/topo/control/svg/ViewSvg.vue:
--------------------------------------------------------------------------------
1 |
64 |
--------------------------------------------------------------------------------
/src/views/usertable.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 删除
15 |
16 |
17 |
18 |
25 |
26 |
27 |
68 |
--------------------------------------------------------------------------------
/src/assets/data/chart-radar.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": {
3 | "text": "基础雷达图"
4 | },
5 | "tooltip": {},
6 | "legend": {
7 | "data": [
8 | "预算分配(Allocated Budget)",
9 | "实际开销(Actual Spending)"
10 | ]
11 | },
12 | "radar": {
13 | "name": {
14 | "textStyle": {
15 | "color": "#fff",
16 | "backgroundColor": "#999",
17 | "borderRadius": 3,
18 | "padding": [
19 | 3,
20 | 5
21 | ]
22 | }
23 | },
24 | "indicator": [
25 | {
26 | "name": "销售(sales)",
27 | "max": 6500
28 | },
29 | {
30 | "name": "管理(Administration)",
31 | "max": 16000
32 | },
33 | {
34 | "name": "信息技术(Information Techology)",
35 | "max": 30000
36 | },
37 | {
38 | "name": "客服(Customer Support)",
39 | "max": 38000
40 | },
41 | {
42 | "name": "研发(Development)",
43 | "max": 52000
44 | },
45 | {
46 | "name": "市场(Marketing)",
47 | "max": 25000
48 | }
49 | ]
50 | },
51 | "series": [
52 | {
53 | "name": "预算 vs 开销(Budget vs spending)",
54 | "type": "radar",
55 | "data": [
56 | {
57 | "value": [
58 | 4300,
59 | 10000,
60 | 28000,
61 | 35000,
62 | 50000,
63 | 19000
64 | ],
65 | "name": "预算分配(Allocated Budget)"
66 | },
67 | {
68 | "value": [
69 | 5000,
70 | 14000,
71 | 28000,
72 | 31000,
73 | 42000,
74 | 21000
75 | ],
76 | "name": "实际开销(Actual Spending)"
77 | }
78 | ]
79 | }
80 | ]
81 | }
--------------------------------------------------------------------------------
/src/views/Qmenu.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | {{item.label}}
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
95 |
--------------------------------------------------------------------------------
/src/components/topo/control/web/Dtime.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
{{currentTime}}
13 |
14 |
17 |
18 |
19 |
20 |
86 |
--------------------------------------------------------------------------------
/src/statics/topo/office/jka2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-向上飞入.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-放大.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-向左飞入.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-向右飞入.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-向下飞入.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-向下飞入 (1).svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/mada/md8.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
42 |
--------------------------------------------------------------------------------
/src/statics/shuibeng/shuibeng20.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
44 |
--------------------------------------------------------------------------------
/src/pages/topo/Fullscreen.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
91 |
92 |
98 |
99 |
100 |
--------------------------------------------------------------------------------
/src/statics/shuibeng/shuibeng22.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
45 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-左右翻转.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-上下翻转.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/闪烁.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/statics/topo/anima/H5动画-下落放大.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/components/topo/control/canvas/ViewRect.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
82 |
--------------------------------------------------------------------------------