468 Commits 8d6fa16e44 ... c1d66ab75e

Author SHA1 Message Date
  haojianlong c1d66ab75e 修改问题 3 years ago
  zhangyu f4e8d4f0f6 Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu 0f9e02daef 添加占位符 3 years ago
  onlyh f21d1dffc2 Merge remote-tracking branch 'origin/dataType' into dataType 3 years ago
  onlyh 741dba425f adm:feat> 修改关系相关需求与bug 3 years ago
  zhangyu 8b50a89122 处理系统图信息点为图片类型 3 years ago
  zhangyu 0a9c455de1 添加美凯龙项目与 3 years ago
  onlyh fb1b7c16b7 adm:feat> 修改項目集团编码 3 years ago
  onlyh 297e978aeb adm:feat> 修改項目集团编码 3 years ago
  zhangyu 9d5417324e 修改集成二测问题 3 years ago
  zhangyu 740c071054 修改二轮集测问题 3 years ago
  zhangyu 8eecdd0382 修改楼层字段 3 years ago
  zhangyu ae9eb97673 需采集信息点进入交互切换 3 years ago
  zhangyu 14a8a69ae0 隐藏项目数据转换 3 years ago
  zhangyu be762d175b Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu 7f9cd1b203 修改关系数量 3 years ago
  haojianlong 9ea724251d 修改图svg没有颜色问题 3 years ago
  zhangyu 967fb325b8 Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu efa9c57e25 第一轮集中测试问题修改 3 years ago
  onlyh 1df1b7a45e Merge remote-tracking branch 'origin/dataType' into dataType 3 years ago
  zhangyu fff2ffdd6d 深化点表文案修改 3 years ago
  onlyh bb1a3eec55 Merge remote-tracking branch 'origin/dataType' into dataType 3 years ago
  zhangyu 930b8fdc69 修改版本号 3 years ago
  zhangyu 038704f369 添加请求头参数 3 years ago
  zhangyu 2c57674cb2 替换删除建筑楼层接口 3 years ago
  zhangyu acbebe491f 优化关系导入 3 years ago
  zhangyu 5e01082609 修改部件传参 3 years ago
  onlyh d151b431e1 Merge remote-tracking branch 'origin/dataType' into dataType 3 years ago
  onlyh 972f68a248 adm:feat> 关系上传下载魔板 3 years ago
  zhangyu 16165405b4 修改系统台账查询问题 3 years ago
  zhangyu ac0963b378 三轮测试问题修改 3 years ago
  haojianlong faea97e5d6 解决适配时出现的bug 3 years ago
  haojianlong 11c5f0da05 Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong f3ef044412 部件传参问题修改 3 years ago
  zhangyu 3586f91175 问题修改 3 years ago
  zhangyu 03cfbb33b6 Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu 9b54d60725 扫楼任务无部件信息不展示展开图标 3 years ago
  haojianlong 4c75439412 Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong 614aadffeb 指定字段清空 3 years ago
  zhangyu 198c3335ff 消息中心问题修改 3 years ago
  zhangyu 3fff65d5e4 部件信息处理 3 years ago
  zhangyu ece01c4015 bug修改 3 years ago
  zhangyu 9285109b7e Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu 81739b0113 二轮提测问题修改 3 years ago
  haojianlong 0595b1c328 修改问题 3 years ago
  zhangyu 3424d876fc Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu ef05dbd55e 修改二测bug 3 years ago
  haojianlong 9681a93c16 更新版本 3 years ago
  haojianlong ace00e666a Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  onlyh c5fbfde9c5 Merge remote-tracking branch 'origin/dataType' into dataType 3 years ago
  onlyh b7d019f3e3 adm:feat> 修改关系卡片显示 3 years ago
  zhangyu ca2214a2bc Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu f491de364c 添加切换路由取消上个路由未响应的接口,二轮测试bug修改 3 years ago
  haojianlong 649170e3d4 字段问题修改 3 years ago
  haojianlong f626c2c43a 修改业务空间bug 3 years ago
  zhangyu 03929d5ec4 Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu eb86396d9a 添加14项目,测试问题修改 3 years ago
  haojianlong 5bf5483c0e Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong 96b09cb9d6 防止重复创建 3 years ago
  onlyh 9a595dbad3 adm:feat> 39添加项目 3 years ago
  haojianlong 00a3f35d1f Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong 78f72cf1c7 修改bug7487 3 years ago
  zhangyu 641456abfe Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu 0016b3d41f 扫楼问题和二轮测试问题修改 3 years ago
  onlyh 5bcce17177 adm:feat> 修改字段 3 years ago
  onlyh b1f7da3b93 wanda-adm:feat> 修改bug #7898 3 years ago
  onlyh 413dd3638b Merge remote-tracking branch 'origin/dataType' into dataType 3 years ago
  onlyh 7f72128ae9 wanda-adm:feat> 修改bug #7868 3 years ago
  zhangyu 25f77e6522 扫楼问题修改 3 years ago
  onlyh d4caef2eba wanda-adm:feat> 修改bug #7879 3 years ago
  onlyh 1b14e70ea5 wanda-adm:feat> 修改bug 7906 3 years ago
  zhangyu 21b85c5595 Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu 3e3330db4c 添加数据同步日志 3 years ago
  shaun-sheep b9be295d77 adm:feat> 修改文字 3 years ago
  shaun-sheep de625c4c1a adm:feat> 修改bug 3 years ago
  zhangyu d0fd2729b4 bug修改 3 years ago
  zhangyu a50166023a Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu 305c3aa063 提测问题修改 3 years ago
  YaolongHan bc290c29ee debug #7757 3 years ago
  YaolongHan 007366de9c Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  YaolongHan 5eed4446d3 debug #7736 3 years ago
  haojianlong 22c7699e52 Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong 7e0f27c520 创建按钮处理 3 years ago
  shaun-sheep 1719643683 Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  shaun-sheep 9007f7a168 adm:feat> 修改bug,æ·39添加项目 3 years ago
  haojianlong 52e4057081 Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong bba9267844 修复问题7693 3 years ago
  YaolongHan 8d52d4ac56 debug 7502 3 years ago
  YaolongHan 860e913793 Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong 9d21ff3f79 报错修复 3 years ago
  haojianlong 31227d4024 7595 bug修复 3 years ago
  YaolongHan b276ec67bc Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  YaolongHan 8ea690b293 debug #7688 3 years ago
  haojianlong 290f23a9f1 Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong 818301a3d9 异常处理 3 years ago
  YaolongHan 1eca67c352 debug #7610 3 years ago
  YaolongHan 21fac62db4 bug 7600 3 years ago
  YaolongHan 711048c860 Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  YaolongHan 85ac5f0036 debug 3 years ago
  zhangyu e1492b3b41 Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu ed94eee1e0 提交:20210318 3 years ago
  haojianlong 43099ed2fb Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong 5bd6a3803d 修复问题 3 years ago
  YaolongHan ed50a9976f 解决冲突 3 years ago
  YaolongHan bf7916d829 debug 3 years ago
  haojianlong fa04f1c926 Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong 7ca26e374a 数据质量相关bug 3 years ago
  zhangyu 7be68d07c0 Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu 51f249f12d 修改bug 3 years ago
  shaun-sheep e9a7f1f118 Merge remote-tracking branch 'origin/dataType' into dataType 3 years ago
  shaun-sheep e53b3e1b0a adm:feat> 修改bug,优化项目切换 3 years ago
  haojianlong abaee8c84c Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong 046d1173d9 bug 7545 3 years ago
  zhangyu 47951a9aee Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu 48bd61baac 显示需采集信息点 3 years ago
  haojianlong a0e913f780 bug 7523 3 years ago
  haojianlong 5eb724ba87 bug 7517 3 years ago
  haojianlong 5fd6d96581 bug 7493 3 years ago
  zhangyu b25b00ca1c 切换环境 3 years ago
  zhangyu 850795b666 Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu 1d6e3782d3 添加数据同步日志 3 years ago
  shaun-sheep 5e109f69e3 adm:feat> 39环境添加项目 3 years ago
  zhangyu c4fb0ccf6e 隐藏需采集信息点 3 years ago
  zhangyu 010f4d059c Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu 43cfa8ccfa 修改模型日志无设备类型映射时显示设备编码 3 years ago
  haojianlong a2c4582291 Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong bc90f76662 修改业务空间切换项目bug 3 years ago
  zhangyu 3eae71bad7 竖井相关问题修改 3 years ago
  zhangyu 03a73c1bec Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu 88ecc26995 修改楼层替换模型文件 3 years ago
  haojianlong d1f0a30020 数据质量报告bug修复 3 years ago
  zhangyu 224527a2c3 需采集信息点优化 3 years ago
  zhangyu 0e01560442 bug修改 3 years ago
  zhangyu fff1a951fd 修改bug,添加需采集信息点 3 years ago
  zhangyu f7c9bf1598 修改需采集信息点入口位置 3 years ago
  shaun-sheep 72288522bc Merge remote-tracking branch 'origin/dataType' into dataType 3 years ago
  shaun-sheep 7d3c396351 adm:feat > 项目添加 3 years ago
  zhangyu 455acc02e8 取消关联资产才可维护设备部件的限制 3 years ago
  zhangyu d3e714e1a8 去掉log 3 years ago
  zhangyu d2c3e85eee 隐藏需采集信息点,bug修改 3 years ago
  zhangyu d16e996384 Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu a18f4f42bf 修改bug 3 years ago
  zhangyu e580a381d9 修改big 3 years ago
  shaun-sheep 35dce3214b Merge remote-tracking branch 'origin/dataType' into dataType 3 years ago
  shaun-sheep 48f5d99692 adm:feat > 修改楼层,建筑添加 3 years ago
  zhangyu 690f92e0c9 Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu 65b5b9e812 bug修改 3 years ago
  haojianlong 7f7e444adf 只读模式位置不可改变 3 years ago
  haojianlong f09a015f07 Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong dfcb56653b 修改字段projection 3 years ago
  shaun-sheep 06f3eaadcf Merge remote-tracking branch 'origin/dataType' into dataType 3 years ago
  shaun-sheep 60ba85aa9f adm:feat > 修改字段 3 years ago
  zhangyu 90fa520059 Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu b6e5d8881a bug修改 3 years ago
  haojianlong f01955f6d7 业务空间创建时报错问题修改 3 years ago
  haojianlong 8bd4fc59cc Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong 16aa6cd166 业务空间轮廓线更新问题 3 years ago
  shaun-sheep d3c1b9f220 Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  shaun-sheep ea116e48f4 adm:feat > 添加深化点表导入,删除单值维护 3 years ago
  haojianlong 8217699438 Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong 5f37654bf9 解决bug 3 years ago
  zhangyu 1f97274529 Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu 95f0f7886b 修改bug 3 years ago
  shaun-sheep bac161c46f adm:feat > 批量信息维护 3 years ago
  haojianlong 558c330e99 Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong 8a8004ec08 修改bug 3 years ago
  zhangyu 6fef1e0b5d 合并冲突 3 years ago
  zhangyu 4ed6b6741e 修改bug 3 years ago
  shaun-sheep 24c7f57f6e adm:feat > 更改配置 3 years ago
  shaun-sheep b1832f2370 Merge remote-tracking branch 'origin/dataType' into dataType 3 years ago
  shaun-sheep 1bb881bc96 adm:feat > 添加集团code 3 years ago
  haojianlong 62b0a578bd 请求玩业务空间适配 3 years ago
  haojianlong 869352cd1f Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong 8dcd108c1e 修改创建业务空间时上传的图片未显示数量问题 3 years ago
  haojianlong fb1722f094 修改bug请求错误 3 years ago
  zhangyu 4cfd1008bd bug修改2200221100330055 3 years ago
  haojianlong 9d9bb32f1a 重复创建bug 3 years ago
  haojianlong 7669a2a76e 竖井无法进入;空间计算放开 3 years ago
  haojianlong 2744e1ebb7 Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong b62aaab52d 修改bug7532 7531 7527 7509 3 years ago
  shaun-sheep 674901c0a1 Merge remote-tracking branch 'origin/dataType' into dataType 3 years ago
  shaun-sheep de06644c86 adm:feat > 修改bug 3 years ago
  zhangyu 869a4af1f4 Merge branch 'dataType' of git.sagacloud.cn:web/adm into dataType 3 years ago
  zhangyu 274eac271c 修改用户名字段 3 years ago
  haojianlong 5d4230cdfe 修改小写 3 years ago
  shaun-sheep c2832188b8 Merge remote-tracking branch 'origin/dataType' into dataType 3 years ago
  shaun-sheep 8e8e4e7760 adm:feat > 更改image-service 3 years ago
  zhangyu 8c69947c87 修改台账bug 3 years ago
  shaun-sheep 4e4d71edfe adm:feat > 更改为14环境 3 years ago
  shaun-sheep 4be30e87ee adm:feat > 更改为14环境 3 years ago
  shaun-sheep d9a103b75c adm:feat > 完善扫楼功能不全 3 years ago
  shaun-sheep 82f9988168 adm:feat > 关联的业务空间数量展示 3 years ago
  shaun-sheep e3b62a4016 adm:feat > 14全平台测试环境配置 3 years ago
  shaun-sheep 29c55d9a4f adm:feat > 添加版本信息 3 years ago
  shaun-sheep e52f81bb86 adm:feat > 添加项目 万达模型测试项目2 3 years ago
  shaun-sheep c746aca961 adm:feat > 添加项目 3 years ago
  haojianlong 07d62926ae Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 3 years ago
  haojianlong 61c6d18846 bug 3 years ago
  shaun-sheep c64875fd1b adm:feat > 修改扫楼接口 3 years ago
  shaun-sheep 26bab7be34 adm:feat > 动态信息错误处理 3 years ago
  haojianlong e9b1972b97 修改null 3 years ago
  shaun-sheep 7ecf35764e adm:feat > 添加项目 3 years ago
  shaun-sheep 8b4df637a7 adm:feat > 修改空间字段 删掉 sort 3 years ago
  shaun-sheep ef544796e4 adm:feat > 修改空间字段 classCode -> zoneType 3 years ago
  shaun-sheep 773b35c016 adm:feat > 修改设备类别获取 4 years ago
  shaun-sheep 8de28fa83b adm:feat > 修改厂商库信息,信息可手动输入 4 years ago
  haojianlong 2083247b66 修改问题绑定平面图 4 years ago
  shaun-sheep 6d119920c3 adm:feat > 添加项目 4 years ago
  haojianlong 35267dec37 修改比例尺字段 4 years ago
  haojianlong 1b7a62b1d5 修改下载名称undefined的问题 4 years ago
  haojianlong 761d3f0f7d 3.8功能bug修改 4 years ago
  haojianlong 4dca5105d5 部件字段修改 4 years ago
  haojianlong d2ee9bbf9e Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 4 years ago
  haojianlong 05e9353fc6 inputmode修改 4 years ago
  shaun-sheep ace3c74246 adm:feat > 修改详情页相关inputMode输入类型 4 years ago
  haojianlong 06bb96584c 删除notshow中无用代码 4 years ago
  haojianlong 6ead196dd9 修改inputmode 删除无用 4 years ago
  haojianlong 477cf5d889 Merge branch 'dev' into dataType 4 years ago
  haojianlong a7e2fbb3ba 删除无用market 4 years ago
  haojianlong 52fd5771d5 bug修改 4 years ago
  haojianlong 957c67a1f9 修改平面图替换bug 4 years ago
  haojianlong a978dfb193 修改inputmode 4 years ago
  shaun-sheep 7998e381be adm:feat > 修改详情页相关inputMode输入类型,端口号 4 years ago
  haojianlong a12a9c9ba8 台账四大厂商数据存储 4 years ago
  haojianlong b13a35bf4b 表格修改四大厂商 4 years ago
  haojianlong 68a58ad989 删除无用方法 4 years ago
  haojianlong 1c2cb3a2db 设备台账数据类型 4 years ago
  haojianlong 99df4c564b 删除打包文件 4 years ago
  haojianlong 53b7c84a36 Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 4 years ago
  haojianlong 6582ddf5c3 设备台账列表展示类型修改 4 years ago
  shaun-sheep 90b0259bc0 adm:feat > 修改添加/修改楼层输入类型 4 years ago
  shaun-sheep 0bf21353e9 Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType 4 years ago
  shaun-sheep 343ac7faa1 - 4 years ago
  shaun-sheep 68c0292c12 adm:feat > 修改添加/修改建筑输入类型 4 years ago
  haojianlong c8860330f8 信息点整理字段修改 4 years ago
  shaun-sheep 98c1479aab adm:feat > 修改现场任务管理筛选逻辑 4 years ago
  shaun-sheep 3ed75a8601 adm:feat > 修改空间数量查询参数 4 years ago
  haojianlong 38e9d90fe8 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong 825c7a0ea5 修改标记bug 4 years ago
  shaun-sheep c800289083 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep 09b4bd8572 adm:feat > 现场任务管理接口数据联调 4 years ago
  haojianlong 5162518dba Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong ade1726a46 3.8 批量维护设备位置 4 years ago
  shaun-sheep f59f1854d9 adm:feat > 现场任务管理接口替换 4 years ago
  shaun-sheep faf7aa1218 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep c4927d535d adm:feat > 现场任务管理,设备台账,模型,资产相关接口替换 4 years ago
  haojianlong f0f16fc6e1 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong 4a5814ce32 位置标签接口调试 4 years ago
  shaun-sheep 661b5d60bb adm:feat > 扫楼日志查看,扫楼报告接口字段替换 4 years ago
  shaun-sheep 3b05abccab Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep f9f50edbb1 adm:feat > 对象类型:判断竖井类型显示一级及信息 4 years ago
  haojianlong 767ecac7ab 字段修改 4 years ago
  haojianlong 1dbe2596ef d1l类型无DataSource报错处理 4 years ago
  haojianlong a883dda0cd 位置标签字段修改 4 years ago
  haojianlong df779277ee Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong 4bcc102f4f 位置标签接口调整 4 years ago
  shaun-sheep 0274cb9b24 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep 31bb8f0d05 adm:feat > 扫楼部分接口替换 4 years ago
  haojianlong 7cc554eeea 位置标签字段小写 4 years ago
  shaun-sheep cfddd0e7be adm:feat > 解决所属专业系统类型 4 years ago
  shaun-sheep 216ca25007 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  haojianlong edd9558c47 修改业务空间创建未将本地名称代入问题 4 years ago
  haojianlong 3b0c68279a 屏蔽报错 4 years ago
  shaun-sheep 602e931e7c adm:feat > 解决excel下载跳转新页面问题 4 years ago
  shaun-sheep 318378fcae adm:feat > 更改所属专业系统类型参数及返回字段 4 years ago
  shaun-sheep 5379e25702 adm:feat > 修改台账详情页动态信息点展示问题,后台添加设备关联资产接口替换 4 years ago
  shaun-sheep 303142a5d8 adm:feat > 修改需采集信息点获取设备类型 4 years ago
  shaun-sheep 6ad1a692a2 adm:feat > 修改总览保存添加关系,自动计算回显 4 years ago
  shaun-sheep 178da64f77 adm:feat > 修改总览保存添加关系 4 years ago
  shaun-sheep 0ddddff179 adm:feat > 修改总览原末端展示 4 years ago
  shaun-sheep 4b4d4a9877 adm:feat > 模型文件版本排序 4 years ago
  shaun-sheep 20b2a4791b Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  haojianlong a6c6ae185e 其他分区修改 4 years ago
  shaun-sheep b1ebea301a Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep b9029e581c adm:feat > 业务空间详情添加设备只显示当前业务空间的设备 4 years ago
  haojianlong eaaf55d50e 隐藏其他分区中的添加分区;修改业务空间更新接口报错问题 4 years ago
  shaun-sheep 0d807fcd65 adm:feat > 添加项目 4 years ago
  shaun-sheep 27ade42865 adm:feat > 下载添加楼层信息 4 years ago
  shaun-sheep 6878dc2945 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  haojianlong 51159ad391 管网字段小写 4 years ago
  shaun-sheep d536f53d05 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  haojianlong a15e2083a2 台账动态信息点显示 4 years ago
  shaun-sheep edc9c7f3ba adm:feat > 添加项目信息 4 years ago
  shaun-sheep 672de98438 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  haojianlong feb394d70c 设备动态信息点取值 4 years ago
  shaun-sheep 7fa1ec7eb4 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep 0652bfb383 adm:feat > 根据建筑楼层筛选设备类型 4 years ago
  haojianlong 3ced691488 修改业务空间字段 4 years ago
  haojianlong bf4062ac52 演示用字段新增保存 4 years ago
  haojianlong 8537956586 业务空间修改 4 years ago
  shaun-sheep f20253b082 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  haojianlong 3465a0e6a3 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong a77ae4e121 修改文件名称不出现问题 4 years ago
  shaun-sheep c07dc81b17 adm:feat > 未关联平面图的业务空间默认显示全部 4 years ago
  shaun-sheep ff6fcf39cc adm:feat > 删除端口号8890 4 years ago
  shaun-sheep e7cc93ccd5 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep ea4e89edfc adm:feat > 修改点击大图显示问题,phone-view 4 years ago
  haojianlong 52abbfd35b 字段小写 4 years ago
  haojianlong 5189726476 台账字段该小写 4 years ago
  haojianlong 094d9021c8 修改设备台账bim坐标问题 4 years ago
  haojianlong 2f55867011 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong 7488da73ec 设备台账bim坐标问题修改 4 years ago
  shaun-sheep 689d123650 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep d29105caf3 adm:feat > 台账详情删除系统,竖井 4 years ago
  haojianlong 01fe4bac8d 修改字段小写 4 years ago
  shaun-sheep 0fa5c08abd adm:feat > 修改项目名称 4 years ago
  haojianlong d5a0202472 修改字段小写 4 years ago
  haojianlong f8ca96e9de 空间上传图片报错问题修改 4 years ago
  haojianlong c6c0210716 已取消批量创建修改 4 years ago
  haojianlong bcfa423da5 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong 8d5374caef outline 字段固定不显示 4 years ago
  shaun-sheep a9bfee5dd4 adm:feat > 解决业务空间台账--物业分区,查看空间详情--删除业务空间报错 4 years ago
  shaun-sheep b91e1b5b8e Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  haojianlong 1f62924ffe 模型cadid改大写 4 years ago
  haojianlong 0ec419b1e9 修改查询元空间分页大小 4 years ago
  shaun-sheep 0214fc1d2b adm:feat > 解决业务空间名称查找不到问题 4 years ago
  haojianlong 5b556a68df 业务空间分页问题 4 years ago
  haojianlong 32f87c0d95 业务空间名称undefined问题 4 years ago
  haojianlong 316b1afadf Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong 4ba61a2940 修改建筑楼层报错问题 4 years ago
  shaun-sheep 05b779b090 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep b5ecd8cd54 adm:feat > 空间详情名称显示 4 years ago
  haojianlong 91f1e50913 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong fa7384dd9b 创建业务空间undefined问题 4 years ago
  haojianlong 4811dd8be4 建筑楼层图片问题 4 years ago
  shaun-sheep dd95a1ed70 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep 27c2955247 adm:feat > 上传文件,图片,对象键名改为小写,组件渲染改为小写 4 years ago
  haojianlong 179e11f05b 修改名称报错问题 4 years ago
  haojianlong c866999202 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong 6ccb2cb9cf 没有此模型修改 4 years ago
  shaun-sheep 7a2689cdbf adm:feat > 根据模型id 获取模型文件夹及文件名,查询底图,接口参数改为大写 4 years ago
  shaun-sheep 5ac95783c1 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep 08671b0731 adm:feat > 根据模型id 获取模型文件夹及文件名接口参数改为小写 4 years ago
  haojianlong 4ccd6bd66b 修改传参小写 4 years ago
  shaun-sheep 4ffd2efffc adm:feat > 查询底图接口参数改为小写 4 years ago
  haojianlong 3d2017a5d0 修改空间字段小写 4 years ago
  haojianlong 5361efb7f1 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong 87bdc59c80 修改业务空间创建报错问题 4 years ago
  shaun-sheep cc62a97714 adm:feat > 修改静态资源路径 4 years ago
  shaun-sheep 1f3e06d505 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  haojianlong 4ae0839c35 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong 4dcc432b56 修改tolowercase报错问题 4 years ago
  shaun-sheep dde18c777b adm:feat > 修改接口字段 4 years ago
  shaun-sheep 6830ee651d Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep be42c7661a adm:feat > 修改图片绝对路径,换成相对路径 4 years ago
  haojianlong 5d7a99aee5 设备关联资产接口字段调整 4 years ago
  haojianlong e003736720 系统所在建筑楼层接口调整 4 years ago
  haojianlong 899db5b205 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong 72d82c9ebe 设备关联资产 字段小写 4 years ago
  shaun-sheep 023c856354 adm:feat > 修改楼层与平面图绑定按后台要求参数改为小写 4 years ago
  shaun-sheep 39f7a320db adm:feat > 查看模型上传成功版本信息 4 years ago
  shaun-sheep 55fcbd529e adm:feat > 修改模型上传不显示上传人 4 years ago
  shaun-sheep e1fabd9b20 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep a24d3939b7 adm:feat > 修改模型上传不显示上传人 4 years ago
  haojianlong 57f7136b3d 竖井立面图修改 4 years ago
  shaun-sheep c7ed1ef1b7 adm:feat > 修改动态参数接口 4 years ago
  haojianlong fc9423aa19 建筑楼层绑定模型 4 years ago
  haojianlong f464df60d2 竖井台账平面图展示 4 years ago
  haojianlong b45be24ff4 竖井关联业务空间 4 years ago
  haojianlong 0eca738504 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong 37942bb155 竖井字段该小写 4 years ago
  shaun-sheep 3d7367a2d7 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep cf2cb1f5d6 adm:feat > 修改设备台账所属系统实例不显示问题 4 years ago
  haojianlong 98eebd7051 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong 8c63218b80 旧版接口替换 4 years ago
  shaun-sheep 78afcc81a9 adm:feat > 解决关系总览里删除关系接口问题 4 years ago
  haojianlong 3b78c5c9b1 建筑楼层展示图 4 years ago
  shaun-sheep bd9cdc616d Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep 859a88ba69 adm:feat > 解决设备台账bim坐标点击弹窗问题 4 years ago
  haojianlong 3e3226db34 空间台账空间内的设备修改 4 years ago
  haojianlong bc5d04d0a2 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong 56a3f134e6 么有图的楼层不显示 4 years ago
  shaun-sheep adbde90dfc adm:feat > 修改台账详情页表格,删除出现的问题 4 years ago
  shaun-sheep 5e40a88bab Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep 60864be9e6 adm:feat > 总览接口替换,解决楼层修改时信息存储问题 4 years ago
  haojianlong 252aeec776 统一改为暂无数据 4 years ago
  haojianlong ed773e97b9 保存后显示比例尺item 4 years ago
  haojianlong 4757340e5b 竖井平面图修改 4 years ago
  haojianlong 2498c60355 修改字段对应 4 years ago
  haojianlong 76059f62a9 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong d097d0ba93 删除debugger 4 years ago
  shaun-sheep 01859930c8 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep ae9803a892 adm:feat > 更换项目id 4 years ago
  shaun-sheep 85b8570a2d adm:feat > 总览接口替换,更换项目id 4 years ago
  haojianlong 321e7f9d68 图类型判断 4 years ago
  haojianlong 3742ed9ef3 建筑楼层3.8升级 4 years ago
  haojianlong 255f3f13d4 修改字段小写未完 4 years ago
  haojianlong 5525c7f064 业务空间台账 空间内设备 服务空间的设备 竖井接口 4 years ago
  haojianlong 165655f980 更新版本 4 years ago
  haojianlong db854803d6 创建业务空间 字段小写;;建筑楼层3.8 4 years ago
  haojianlong 557ecc86c8 修改字段小写 4 years ago
  shaun-sheep 2af230d367 adm:feat > 更改楼层大小写 4 years ago
  shaun-sheep 8c6a45c2f0 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep 37de510cc8 adm:feat > 更改调度器服务地址 4 years ago
  haojianlong 1f71b00c69 接口 字段小写 4 years ago
  shaun-sheep 8e7d839ac9 adm:feat > 更改调度器服务地址 4 years ago
  shaun-sheep 77c101615d adm:feat > 更改图片服务地址 4 years ago
  shaun-sheep a78da36267 adm:feat > 空间详情显示,台账详情接口 4 years ago
  haojianlong 1b543b3a3b 修改字段 4 years ago
  shaun-sheep 2ab70d392d Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep 9684462184 adm:feat > 修改模型上传列表展示问题 4 years ago
  haojianlong c5c9322e96 空间内的系统 4 years ago
  haojianlong c53646a2ec 空间内的设备服务空间的设备 4 years ago
  shaun-sheep df34afe8d1 adm:feat > 修改60服务去掉4,配置nginx读取静态文件 4 years ago
  haojianlong e8e4008429 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong 3322f309ca 空间台账调整 4 years ago
  shaun-sheep ee19697b09 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep 7125c31d67 adm:feat > 模型文件接口问题处理 4 years ago
  haojianlong eb6660a855 merge 4 years ago
  haojianlong 5b616abd31 merge 4 years ago
  haojianlong d30f12676f 业务空间接口调整 4 years ago
  shaun-sheep ac79402210 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep 1d68428496 adm:feat > 消息中心接口替换,系统详情所在竖井业务空间替换 4 years ago
  shaun-sheep 733d3c7e41 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep e864eb8a12 adm:feat > 模型文件管理接口替换 4 years ago
  haojianlong f3c6742167 修改字段小写 4 years ago
  shaun-sheep 50a749a03a adm:feat > 修改config丢失字段 4 years ago
  shaun-sheep a0c4db11a7 adm:feat > 修改接口丢失字段 4 years ago
  shaun-sheep b62ce0ec8d Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep c2db8b0a04 adm:feat > 修改服务器端口号 4 years ago
  haojianlong a6e6babad5 修改接口 4 years ago
  shaun-sheep 9581921f46 adm:feat > 修改服务器接口地址 4 years ago
  haojianlong 826bafc28c 资产台账四大厂商 4 years ago
  haojianlong bcf8a0ab46 设备台账四大厂商 4 years ago
  haojianlong 292965629e 修改接口 4 years ago
  shaun-sheep 7498084dd9 adm:feat > 修改服务器接口地址,更改接口字段 4 years ago
  shaun-sheep e237254424 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep d0c9a957b1 adm:feat > 设备,资产台账批量信息维护 4 years ago
  haojianlong e4ff7f35af 空间接口问题:1: 分区类型接口404; 2: 获取关系是否需要计算 4 years ago
  shaun-sheep 6a9b0e7948 adm:feat > 竖井详情接口替换,页面详情展示 4 years ago
  haojianlong e51d402c78 下拉框回显 4 years ago
  haojianlong d92fd04961 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong 233a2b643a 竖井创建 4 years ago
  shaun-sheep 2c41300d59 Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep 980f3d2040 adm:feat > 修改台账系统相关问题 4 years ago
  haojianlong 2c22582294 台账问题修改 4 years ago
  haojianlong 7d7ff0c203 修改台账下拉框无法显示问题 4 years ago
  shaun-sheep fe785be4a3 adm:feat > 修改台账相关问题 4 years ago
  shaun-sheep db5f84419d Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep d200ab39f4 adm:feat > 确定新增系统的类型 4 years ago
  shaun-sheep ac53d95c4b adm:feat > 确定新增系统的类型 4 years ago
  haojianlong 31182cbee1 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  haojianlong d50fcc1a58 adm:fix:删除无用工具 4 years ago
  quanchuan 02642ef461 fix: 批量维护弹窗字段修复#2 4 years ago
  shaun-sheep f3b0aae130 adm:feat > 资产,系统台账添加功能 4 years ago
  shaun-sheep 805c5253ed adm:feat > 资产实例查询添加id解决报错 4 years ago
  quanchuan 6d08f7fa70 fix: 批量维护弹窗字段修复 4 years ago
  shaun-sheep 6f7086fded Merge remote-tracking branch 'origin/dev' into dev 4 years ago
  shaun-sheep 7e6cdb4ff3 adm:feat > datacenter2,equip-componnet2后台字段替换 4 years ago
  note.script 94dd8f78f1 chore: 新增npm&yarn私有源配置文件 4 years ago
  haojianlong c2ac09240e 增加输入类型判断 4 years ago
  haojianlong 986876ab9d 删除无用旧版item;更新包 4 years ago
  shaun-sheep 9844fda1e4 adm:feat > 台账相关接口字段调整 4 years ago
  shaun-sheep 3e2939adaf adm:feat > 台账相关接口字段调整 4 years ago
  shaun-sheep f2ddaad53b adm:feat > 建筑,楼层,字典相关查询接口,现场任务,资产,设备相关,部分台账 4 years ago
  shaun-sheep 5174749922 adm:feat > 建筑楼层管理 4 years ago
  zhangyu 7f134b8715 字段修改 4 years ago
  shaun-sheep 3beef2b596 adm:fix> 新版数据字典-建筑楼层管理,模型管理接口替换 4 years ago
  zhangyu 7ab0a5f1f7 Merge branch 'dev' of http://39.106.8.246:3003/web/adm into dev 4 years ago
  zhangyu 4f6f1e40ef 设备台账切换中台服务修改ing 4 years ago
  shaun-sheep 21efe9ae66 adm:fix> 新版数据字典-需采集信息点 4 years ago
  zhangyu 3d688e80f5 切换数据中心地址 4 years ago
  zhangyu 2002a04af2 '接口替换及代码梳理' 4 years ago
  zhangyu 525c52cd13 '添加设备类别筛选接口' 4 years ago
  zhangyu 1b5c0709bf 1.接口配置文件规范化处理;2.设备台账建筑楼层筛选和统计接口替换; 4 years ago
  zhangyu 6c0d1a9ee4 '替换设备建筑楼层接口' 4 years ago
  zhangyu 9d3a4da6af '替换设备统计接口' 4 years ago
  zhangyu 2bc721b503 '修改代理为线上地址' 4 years ago
100 changed files with 1799 additions and 9953 deletions
  1. 1 0
      .npmrc
  2. 1 0
      .yarnrc
  3. 74 73
      build/utils.js
  4. 537 0
      config/conf.js
  5. 7 5
      config/dev.env.js
  6. 4 285
      config/index.js
  7. 7 3
      config/prod.env.js
  8. 7 8
      package.json
  9. 56 44
      src/api/data_admin/buildTaskApi.js
  10. 54 0
      src/api/dict/index.js
  11. 90 89
      src/api/framework.js
  12. 5 0
      src/api/httputils.js
  13. 21 16
      src/api/model/file.js
  14. 14 14
      src/api/msgsever.js
  15. 9 0
      src/api/object/build.js
  16. 20 0
      src/api/object/equip.js
  17. 20 0
      src/api/object/floor.js
  18. 45 34
      src/api/relation/api.js
  19. 38 9
      src/api/scan/config.js
  20. 6 0
      src/api/scan/fetch.js
  21. 60 43
      src/api/scan/httpUtil.js
  22. 0 14
      src/api/scan/newRequest.js
  23. 361 269
      src/api/scan/request.js
  24. 50 0
      src/api/synclog/index.js
  25. 0 14
      src/api/topo/index.js
  26. 0 44
      src/assets/graphy/SGraphy/SCanvas.js
  27. 0 30
      src/assets/graphy/SGraphy/SGraphyEnums.js
  28. 0 396
      src/assets/graphy/SGraphy/SGraphyItem.js
  29. 0 201
      src/assets/graphy/SGraphy/SGraphyScene.js
  30. 0 280
      src/assets/graphy/SGraphy/SGraphyView.js
  31. 0 53
      src/assets/graphy/SGraphy/SMouseEvent.js
  32. 0 0
      src/assets/graphy/SGraphy/dataType.js
  33. 0 78
      src/assets/graphy/SGraphy/dataType.ts
  34. 0 70
      src/assets/graphy/SGraphy/items/SGraphyCircleItem.js
  35. 0 201
      src/assets/graphy/SGraphy/items/SGraphyClockItem.js
  36. 0 59
      src/assets/graphy/SGraphy/items/SGraphyImageItem.js
  37. 0 66
      src/assets/graphy/SGraphy/items/SGraphyLineItem.js
  38. 0 76
      src/assets/graphy/SGraphy/items/SGraphyPillarItems.js
  39. 0 257
      src/assets/graphy/SGraphy/items/SGraphyPolygonItem.js
  40. 0 100
      src/assets/graphy/SGraphy/items/SGraphyRectItem.js
  41. 0 51
      src/assets/graphy/SGraphy/items/SGraphyTextItems.js
  42. 0 66
      src/assets/graphy/SGraphy/items/SGraphyVirtualItem.js
  43. 0 240
      src/assets/graphy/SGraphy/mainScene.js
  44. 0 228
      src/assets/graphy/SGraphy/mainScene.ts
  45. 0 68
      src/assets/graphy/SGraphy/newItems/SGraphyCircleItem.js
  46. 0 65
      src/assets/graphy/SGraphy/newItems/SGraphyCircleItem.ts
  47. 0 111
      src/assets/graphy/SGraphy/newItems/SGraphyImgItem.js
  48. 0 116
      src/assets/graphy/SGraphy/newItems/SGraphyImgItem.ts
  49. 0 70
      src/assets/graphy/SGraphy/newItems/SGraphyPointItem.js
  50. 0 67
      src/assets/graphy/SGraphy/newItems/SGraphyPointItem.ts
  51. 0 212
      src/assets/graphy/SGraphy/newItems/SGraphyPolygonItem.js
  52. 0 220
      src/assets/graphy/SGraphy/newItems/SGraphyPolygonItem.ts
  53. 0 74
      src/assets/graphy/SGraphy/newItems/SGraphyRectItem.js
  54. 0 76
      src/assets/graphy/SGraphy/newItems/SGraphyRectItem.ts
  55. 0 92
      src/assets/graphy/SGraphy/newItems/SGraphyWallItem.js
  56. 0 89
      src/assets/graphy/SGraphy/newItems/SGraphyWallItem.ts
  57. 0 40
      src/assets/graphy/SGraphy/types/SPoint.js
  58. 0 169
      src/assets/graphy/SGraphy/types/SRect.js
  59. 0 25
      src/assets/graphy/SGraphy/until/pako.js
  60. 0 27
      src/assets/graphy/SGraphy/until/pako.ts
  61. 0 22
      src/assets/graphy/SGraphy/until/tool.js
  62. 0 21
      src/assets/graphy/SGraphy/until/tool.ts
  63. 0 14
      src/assets/graphy/index.js
  64. BIN
      src/assets/image/no-data.png
  65. 0 70
      src/assets/js/items/SGraphyCircleItem.js
  66. 0 59
      src/assets/js/items/SGraphyImageItem.js
  67. 0 66
      src/assets/js/items/SGraphyLineItem.js
  68. 0 76
      src/assets/js/items/SGraphyPillarItems.js
  69. 0 257
      src/assets/js/items/SGraphyPolygonItem.js
  70. 0 100
      src/assets/js/items/SGraphyRectItem.js
  71. 0 51
      src/assets/js/items/SGraphyTextItems.js
  72. 0 66
      src/assets/js/items/SGraphyVirtualItem.js
  73. 0 1
      src/assets/js/jsmind.js
  74. 0 44
      src/assets/node-templete/SGraphy/SCanvas.js
  75. 0 30
      src/assets/node-templete/SGraphy/SGraphyEnums.js
  76. 0 396
      src/assets/node-templete/SGraphy/SGraphyItem.js
  77. 0 201
      src/assets/node-templete/SGraphy/SGraphyScene.js
  78. 0 280
      src/assets/node-templete/SGraphy/SGraphyView.js
  79. 0 53
      src/assets/node-templete/SGraphy/SMouseEvent.js
  80. 0 201
      src/assets/node-templete/SGraphy/items/SGraphyClockItem.js
  81. 0 58
      src/assets/node-templete/SGraphy/items/SGraphyLineItem.js
  82. 0 57
      src/assets/node-templete/SGraphy/items/SGraphyPolygonItem.js
  83. 0 64
      src/assets/node-templete/SGraphy/items/SGraphyRectItem.js
  84. 0 61
      src/assets/node-templete/SGraphy/items/SGraphyVirtualItem.js
  85. 0 40
      src/assets/node-templete/SGraphy/types/SPoint.js
  86. 0 169
      src/assets/node-templete/SGraphy/types/SRect.js
  87. 0 9
      src/assets/node-templete/index.js
  88. 215 259
      src/components/business_space/business/handsontable.vue
  89. 0 770
      src/components/business_space/dialogs/addDialog/businessDialog.vue
  90. 17 17
      src/components/business_space/dialogs/changeRea.vue
  91. 1 1
      src/components/business_space/dialogs/influenceDialog.vue
  92. 6 26
      src/components/business_space/dialogs/list/insurerDialog.vue
  93. 6 26
      src/components/business_space/dialogs/list/maintainerDialog.vue
  94. 6 26
      src/components/business_space/dialogs/list/supplierDialog.vue
  95. 23 23
      src/components/business_space/dialogs/noModelDialog.vue
  96. 0 1365
      src/components/business_space/graphy/business.vue
  97. 3 3
      src/components/business_space/lib/detailsDia.vue
  98. 33 33
      src/components/business_space/lib/floorCascader.vue
  99. 2 1
      src/components/business_space/lib/lookImages.vue
  100. 0 0
      src/components/business_space/lib/uploadFiles.vue

+ 1 - 0
.npmrc

@@ -0,0 +1 @@
+@saga-web:registry=http://dev.dp.sagacloud.cn:8082/repository/npm-saga

+ 1 - 0
.yarnrc

@@ -0,0 +1 @@
+"@saga-web:registry" "http://dev.dp.sagacloud.cn:8082/repository/npm-saga"

+ 74 - 73
build/utils.js

@@ -4,97 +4,98 @@ const config = require('../config')
 const ExtractTextPlugin = require('extract-text-webpack-plugin')
 const packageConfig = require('../package.json')
 
-exports.assetsPath = function(_path) {
-    const assetsSubDirectory =
-        process.env.NODE_ENV === 'production' ? config.build.assetsSubDirectory : config.dev.assetsSubDirectory
+exports.assetsPath = function (_path) {
+  const assetsSubDirectory =
+    process.env.NODE_ENV === 'production' ? config.build.assetsSubDirectory : config.dev.assetsSubDirectory
 
-    return path.posix.join(assetsSubDirectory, _path)
+  return path.posix.join(assetsSubDirectory, _path)
 }
 
-exports.cssLoaders = function(options) {
-    options = options || {}
+exports.cssLoaders = function (options) {
+  options = options || {}
 
-    const cssLoader = {
-        loader: 'css-loader',
-        options: {
-            sourceMap: options.sourceMap
-        }
+  const cssLoader = {
+    loader: 'css-loader',
+    options: {
+      sourceMap: options.sourceMap
     }
+  }
 
-    const postcssLoader = {
-        loader: 'postcss-loader',
-        options: {
-            sourceMap: options.sourceMap
-        }
+  const postcssLoader = {
+    loader: 'postcss-loader',
+    options: {
+      sourceMap: options.sourceMap
     }
+  }
 
-    // generate loader string to be used with extract text plugin
-    function generateLoaders(loader, loaderOptions) {
-        const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
-
-        if (loader) {
-            loaders.push({
-                loader: loader + '-loader',
-                options: Object.assign({}, loaderOptions, {
-                    sourceMap: options.sourceMap
-                })
-            })
-        }
-
-        // Extract CSS when that option is specified
-        // (which is the case during production build)
-        if (options.extract) {
-            return ExtractTextPlugin.extract({
-                use: loaders,
-                fallback: 'vue-style-loader'
-            })
-        } else {
-            return ['vue-style-loader'].concat(loaders)
-        }
+  // generate loader string to be used with extract text plugin
+  function generateLoaders(loader, loaderOptions) {
+    const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
+
+    if (loader) {
+      loaders.push({
+        loader: loader + '-loader',
+        options: Object.assign({}, loaderOptions, {
+          sourceMap: options.sourceMap
+        })
+      })
     }
 
-    // https://vue-loader.vuejs.org/en/configurations/extract-css.html
-    return {
-        css: generateLoaders(),
-        postcss: generateLoaders(),
-        less: generateLoaders('less'),
-        sass: generateLoaders('sass', { indentedSyntax: true }),
-        scss: generateLoaders('sass'),
-        stylus: generateLoaders('stylus'),
-        styl: generateLoaders('stylus')
+    // Extract CSS when that option is specified
+    // (which is the case during production build)
+    if (options.extract) {
+      return ExtractTextPlugin.extract({
+        use: loaders,
+        fallback: 'vue-style-loader',
+        publicPath: '../../'
+      })
+    } else {
+      return ['vue-style-loader'].concat(loaders)
     }
+  }
+
+  // https://vue-loader.vuejs.org/en/configurations/extract-css.html
+  return {
+    css: generateLoaders(),
+    postcss: generateLoaders(),
+    less: generateLoaders('less'),
+    sass: generateLoaders('sass', { indentedSyntax: true }),
+    scss: generateLoaders('sass'),
+    stylus: generateLoaders('stylus'),
+    styl: generateLoaders('stylus')
+  }
 }
 
 // Generate loaders for standalone style files (outside of .vue)
-exports.styleLoaders = function(options) {
-    const output = []
-    const loaders = exports.cssLoaders(options)
-
-    for (const extension in loaders) {
-        const loader = loaders[extension]
-        output.push({
-            test: new RegExp('\\.' + extension + '$'),
-            use: loader
-        })
-    }
-
-    return output
+exports.styleLoaders = function (options) {
+  const output = []
+  const loaders = exports.cssLoaders(options)
+
+  for (const extension in loaders) {
+    const loader = loaders[extension]
+    output.push({
+      test: new RegExp('\\.' + extension + '$'),
+      use: loader
+    })
+  }
+
+  return output
 }
 
 exports.createNotifierCallback = () => {
-    const notifier = require('node-notifier')
+  const notifier = require('node-notifier')
 
-    return (severity, errors) => {
-        if (severity !== 'error') return
+  return (severity, errors) => {
+    if (severity !== 'error') return
 
-        const error = errors[0]
-        const filename = error.file && error.file.split('!').pop()
+    const error = errors[0]
+    const filename = error.file && error.file.split('!').pop()
 
-        notifier.notify({
-            title: packageConfig.name,
-            message: severity + ': ' + error.name,
-            subtitle: filename || '',
-            icon: path.join(__dirname, 'logo.png')
-        })
-    }
+    notifier.notify({
+      title: packageConfig.name,
+      message: severity + ': ' + error.name,
+      subtitle: filename || '',
+      icon: path.join(__dirname, 'logo.png')
+    })
+  }
 }

+ 537 - 0
config/conf.js

@@ -0,0 +1,537 @@
+/**
+ * Info: formal、235、14(测试)、18(研发测试)、39(项目组)
+ */
+module.exports = {
+  "18": {
+    "/admin": {
+      target: "http://mbi.sagacloud.cn:8080/",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/admin": "/"
+      }
+    },
+    "/api": {
+      target: "http://192.168.64.17:28888/",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/api": "/"
+      }
+    },
+    "/data-platform-3": {
+      // 目标 API 地址
+      target: "http://39.97.179.199:9909/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/rwd": {
+      // 目标 API 地址
+      target: "http://39.102.40.239:9970/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/business-space": {
+      // 目标 API 地址
+      target: "http://39.97.179.199:9909",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/pointconfig": {
+      // 目标 API 地址
+      target: "http://mbi.sagacloud.cn:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/venders-dp": {
+      // 目标 API 地址
+      target: "http://39.97.179.199:9909",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/venders": {
+      // 目标 API 地址
+      target: "http://39.97.179.199:9909",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/ScanBuilding": {
+      // 目标 API 地址
+      target: "http://mbi.sagacloud.cn:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/scanbuilding-2": {
+      // 目标 API 地址
+      target: "http://mbi.sagacloud.cn:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/scanbuilding": {
+      // 目标 API 地址
+      target: "http://192.168.64./17:28888",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/image-service": {
+      // 目标 API 地址
+      target: "http://39.97.179.199:8891",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false,
+      pathRewrite: {
+        "^/image-service": "/image-service/"
+      }
+    },
+    "/modelapi": {
+      target: "http://192.168.64.17:28890/",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/modelapi": "/revit-algorithm/"
+      }
+    },
+    "/schedulerapi": {
+      target: "http://60.205.177.43:28888/",
+      // target: 'http://mbi.sagacloud.cn:8080',
+      changeOrigin: true,
+      pathRewrite: {
+        "^/schedulerapi": "/scheduler/"
+      }
+    }
+  },
+  "14": {
+    // 新版数据字典
+    "/admin": {
+      target: "http://mbi.sagacloud.cn:8080/",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/admin": "/"
+      }
+    },
+    "/api": {
+      target: "http://192.168.64.14:28888/",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/api": "/"
+      }
+    },
+    "/data-platform-3": {
+      // 目标 API 地址
+      target: "http://39.97.179.199:9909/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/rwd": {
+      // 目标 API 地址
+      target: "http://39.102.40.239:9970/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/business-space": {
+      // 目标 API 地址
+      target: "http://39.97.179.199:9909",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/pointconfig": {
+      // 目标 API 地址
+      target: "http://mbi.sagacloud.cn:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/venders-dp": {
+      // 目标 API 地址
+      target: "http://39.97.179.199:9909",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/venders": {
+      // 目标 API 地址
+      target: "http://39.97.179.199:9909",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/ScanBuilding": {
+      // 目标 API 地址
+      target: "http://mbi.sagacloud.cn:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/scanbuilding-2": {
+      // 目标 API 地址
+      target: "http://mbi.sagacloud.cn:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/scanbuilding": {
+      // 目标 API 地址
+      target: "http://192.168.64.14:28888",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/image-service": {
+      // 目标 API 地址
+      target: "http://39.97.179.199:8891",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false,
+      pathRewrite: {
+        "^/image-service": "/image-service/"
+      }
+    },
+    "/modelapi": {
+      target: "http://192.168.64.14:28888/",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/modelapi": "/revit-algorithm/"
+      }
+    },
+    "/schedulerapi": {
+      target: "http://60.205.177.43:28888/",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/schedulerapi": "/scheduler/"
+      }
+    }
+  },
+  "39": {
+    "/admin": {
+      target: "http://39.102.40.239:8080/",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/admin": "/"
+      }
+    },
+    "/api": {
+      target: "http://39.102.40.239:8080/",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/api": "/"
+      }
+    },
+    "/data-platform-3": {
+      // 目标 API 地址
+      target: "http://39.97.179.199:9909/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/rwd": {
+      // 目标 API 地址
+      target: "http://39.102.40.239:9970/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/business-space": {
+      // 目标 API 地址
+      target: "http://39.97.179.199:9909",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/pointconfig": {
+      // 目标 API 地址
+      target: "http://39.102.40.239:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/venders-dp": {
+      // 目标 API 地址
+      target: "http://39.97.179.199:9909",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/venders": {
+      // 目标 API 地址
+      target: "http://39.97.179.199:9909",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/ScanBuilding": {
+      // 目标 API 地址
+      target: "http://39.102.40.239:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/scanbuilding-2": {
+      // 目标 API 地址
+      target: "http://39.102.40.239:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/scanbuilding": {
+      // 目标 API 地址
+      target: "http://39.102.40.239:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/image-service": {
+      // 目标 API 地址
+      target: "http://39.97.179.199:8891",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false,
+      pathRewrite: {
+        "^/image-service": "/image-service/"
+      }
+    },
+    "/modelapi": {
+      target: "http://39.102.40.239:8080/",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/modelapi": "/revit-algorithm/"
+      }
+    },
+    "/schedulerapi": {
+      target: "http://39.102.40.239:8080/",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/schedulerapi": "/scheduler/"
+      }
+    }
+  },
+  formal: {
+    //正式环境
+    "/admin": {
+      target: "http://mbi.sagacloud.cn:8080",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/admin": "/"
+      }
+    },
+    "/api": {
+      target: "http://mbi.sagacloud.cn:8080",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/api": "/"
+      }
+    },
+    "/data-platform-3": {
+      // 目标 API 地址
+      target: "http://api.sagacloud.cn/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/business-space": {
+      // 目标 API 地址
+      target: "http://api.sagacloud.cn",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/business-space": "/dp-auxiliary/business-space/"
+      }
+    },
+    "/pointconfig": {
+      // 目标 API 地址
+      target: "http://mbi.sagacloud.cn:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/venders-dp": {
+      // 目标 API 地址
+      target: "http://api.sagacloud.cn",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/venders-dp": "/dp-auxiliary/venders-dp/"
+      }
+    },
+    "/venders": {
+      // 目标 API 地址
+      target: "http://api.sagacloud.cn",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/venders": "/dp-auxiliary/venders/"
+      }
+    },
+    "/ScanBuilding": {
+      // 目标 API 地址
+      target: "http://mbi.sagacloud.cn:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/scanbuilding-2": {
+      // 目标 API 地址
+      target: "http://mbi.sagacloud.cn:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/image-service": {
+      // 目标 API 地址
+      target: "http://api.sagacloud.cn",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/image-service": "/dp-auxiliary/image-service/"
+      }
+    },
+    "/modelapi": {
+      target: "http://mbi.sagacloud.cn:8080",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/modelapi": "/revit-algorithm/"
+      }
+    },
+    "/schedulerapi": {
+      target: "http://mbi.sagacloud.cn:8080",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/schedulerapi": "/scheduler/"
+      }
+    }
+  },
+  "235": {
+    //235测试环境
+    "/admin": {
+      target: "http://172.16.44.235:8080",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/admin": "/"
+      }
+    },
+    "/api": {
+      target: "http://172.16.44.235:8080",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/api": "/"
+      }
+    },
+    "/data-platform-3": {
+      // 目标 API 地址
+      target: "http://172.16.42.210:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/business-space": {
+      // 目标 API 地址
+      target: "http://172.16.42.210:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/pointconfig": {
+      // 目标 API 地址
+      target: "http://172.16.44.235:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/venders-dp": {
+      // 目标 API 地址
+      target: "http://172.16.42.210:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/venders": {
+      // 目标 API 地址
+      target: "http://172.16.42.210:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/ScanBuilding": {
+      // 目标 API 地址
+      target: "http://172.16.44.235:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/scanbuilding-2": {
+      // 目标 API 地址
+      target: "http://172.16.44.235:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/image-service": {
+      // 目标 API 地址
+      target: "http://172.16.42.210:8080/",
+      // 如果要代理 websockets
+      ws: true,
+      // 将主机标头的原点更改为目标URL
+      changeOrigin: false
+    },
+    "/modelapi": {
+      target: "http://172.16.42.210:8082",
+      // target: 'http://192.168.20.218:8082',//景灏
+      changeOrigin: true,
+      pathRewrite: {
+        "^/modelapi": "/"
+      }
+    },
+    "/schedulerapi": {
+      target: "http://172.16.42.210:8081",
+      changeOrigin: true,
+      pathRewrite: {
+        "^/schedulerapi": "/"
+      }
+    }
+  }
+};

+ 7 - 5
config/dev.env.js

@@ -4,14 +4,16 @@ const prodEnv = require('./prod.env')
 
 module.exports = merge(prodEnv, {
   NODE_ENV: '"development"',
-  BASE_URL: '"http://172.16.44.215"', //测试iframe地址
-  SSO_SERVER: '"http://172.16.44.235:8081"', //测试环境
+  // BASE_URL: '"http://192.168.12.15"', //测试iframe地址
+  // SSO_SERVER: '"http://172.16.44.235:8081"', //测试环境
+  // SSO_SERVER: '"http://192.168.12.238:8081"', //测试环境
   // BASE_URL: '"http://192.168.20.236"', //(新)测试iframe地址
   // SSO_SERVER: '"http://192.168.20.236:8086"', //(新)测试环境
-  MQTT_SERVICE: '"ws://172.16.42.210:61614/stomp/"' //MQ测试环境地址
-  // SSO_SERVER: '"http://sso.sagacloud.cn"',  //正式环境
+  // MQTT_SERVICE: '"ws://172.16.42.210:61614/stomp/"' //MQ测试环境地址
   // BASE_URL: '"http://mbi.sagacloud.cn"', //线上iframe地址
- // MQTT_SERVICE: '"ws://adm.sagacloud.cn/stomp/"' //MQ正式环境地址
+  BASE_URL: '"http://39.102.40.239"', //测试iframe地址
+  SSO_SERVER: '"http://sso.sagacloud.cn"',  //正式环境
+  MQTT_SERVICE: '"ws://adm.sagacloud.cn/stomp/"' //MQ正式环境地址
 })
 
 

+ 4 - 285
config/index.js

@@ -3,298 +3,15 @@
 // see http://vuejs-templates.github.io/webpack for documentation.
 
 const path = require('path')
+const proxyTable = require('./conf')
 
 module.exports = {
   dev: {
     // Paths
     assetsSubDirectory: 'static',
     assetsPublicPath: '/',
+    proxyTable: proxyTable["14"],
 
-    // proxyTable: {//正式环境
-    //   '/admin': {
-    //     target: 'http://mbi.sagacloud.cn:8080',
-    //     changeOrigin: true,
-    //     pathRewrite: {
-    //       "^/admin": "/"
-    //     }
-    //   },
-    //   '/api': {
-    //     target: 'http://mbi.sagacloud.cn:8080',
-    //     changeOrigin: true,
-    //     pathRewrite: {
-    //       "^/api": "/"
-    //     }
-    //   },
-    //   '/data-platform-3': {
-    //     // 目标 API 地址
-    //     target: 'http://api.sagacloud.cn/',
-    //     // 如果要代理 websockets
-    //     ws: true,
-    //     // 将主机标头的原点更改为目标URL
-    //     changeOrigin: false
-    //   },
-    //   '/business-space': {
-    //     // 目标 API 地址
-    //     target: 'http://api.sagacloud.cn',
-    //     changeOrigin: true,
-    //     pathRewrite: {
-    //       "^/business-space": "/dp-auxiliary/business-space/"
-    //     }
-    //   },
-    //   '/pointconfig': {
-    //     // 目标 API 地址
-    //     target: 'http://mbi.sagacloud.cn:8080/',
-    //     // 如果要代理 websockets
-    //     ws: true,
-    //     // 将主机标头的原点更改为目标URL
-    //     changeOrigin: false
-    //   },
-    //   '/venders-dp': {
-    //     // 目标 API 地址
-    //     target: 'http://api.sagacloud.cn',
-    //     changeOrigin: true,
-    //     pathRewrite: {
-    //       "^/venders-dp": "/dp-auxiliary/venders-dp/"
-    //     }
-    //   },
-    //   '/venders': {
-    //     // 目标 API 地址
-    //     target: 'http://api.sagacloud.cn',
-    //     changeOrigin: true,
-    //     pathRewrite: {
-    //       "^/venders": "/dp-auxiliary/venders/"
-    //     }
-    //   },
-    //   '/ScanBuilding': {
-    //     // 目标 API 地址
-    //     target: 'http://mbi.sagacloud.cn:8080/',
-    //     // 如果要代理 websockets
-    //     ws: true,
-    //     // 将主机标头的原点更改为目标URL
-    //     changeOrigin: false
-    //   },
-    //   '/scanbuilding-2': {
-    //     // 目标 API 地址
-    //     target: 'http://mbi.sagacloud.cn:8080/',
-    //     // 如果要代理 websockets
-    //     ws: true,
-    //     // 将主机标头的原点更改为目标URL
-    //     changeOrigin: false
-    //   },
-    //   '/image-service': {
-    //     // 目标 API 地址
-    //     target: 'http://api.sagacloud.cn',
-    //     changeOrigin: true,
-    //     pathRewrite: {
-    //       "^/image-service": "/dp-auxiliary/image-service/"
-    //     }
-    //   },
-    //   '/modelapi': {
-    //     target: 'http://mbi.sagacloud.cn:8080',
-    //     changeOrigin: true,
-    //     pathRewrite: {
-    //       "^/modelapi": "/revit-algorithm/"
-    //     }
-    //   },
-    //   '/schedulerapi': {
-    //     target: 'http://mbi.sagacloud.cn:8080',
-    //     changeOrigin: true,
-    //     pathRewrite: {
-    //         "^/schedulerapi": "/scheduler/"
-    //     }
-    //   },
-    // },
-
-    // proxyTable: {  //235测试环境
-    //   '/admin': {
-    //     target: 'http://172.16.44.235:8080',
-    //     changeOrigin: true,
-    //     pathRewrite: {
-    //       "^/admin": "/"
-    //     }
-    //   },
-    //   '/api': {
-    //     target: 'http://172.16.44.235:8080',
-    //     changeOrigin: true,
-    //     pathRewrite: {
-    //       "^/api": "/"
-    //     }
-    //   },
-    //   '/data-platform-3': {
-    //     // 目标 API 地址
-    //     target: 'http://172.16.42.210:8080/',
-    //     // 如果要代理 websockets
-    //     ws: true,
-    //     // 将主机标头的原点更改为目标URL
-    //     changeOrigin: false
-    //   },
-    //   '/business-space': {
-    //     // 目标 API 地址
-    //     target: 'http://172.16.42.210:8080/',
-    //     // 如果要代理 websockets
-    //     ws: true,
-    //     // 将主机标头的原点更改为目标URL
-    //     changeOrigin: false
-    //   },
-    //   '/pointconfig': {
-    //     // 目标 API 地址
-    //     target: 'http://172.16.44.235:8080/',
-    //     // 如果要代理 websockets
-    //     ws: true,
-    //     // 将主机标头的原点更改为目标URL
-    //     changeOrigin: false
-    //   },
-    //   '/venders-dp': {
-    //     // 目标 API 地址
-    //     target: 'http://172.16.42.210:8080/',
-    //     // 如果要代理 websockets
-    //     ws: true,
-    //     // 将主机标头的原点更改为目标URL
-    //     changeOrigin: false
-    //   },
-    //   '/venders': {
-    //     // 目标 API 地址
-    //     target: 'http://172.16.42.210:8080/',
-    //     // 如果要代理 websockets
-    //     ws: true,
-    //     // 将主机标头的原点更改为目标URL
-    //     changeOrigin: false
-    //   },
-    //   '/ScanBuilding': {
-    //     // 目标 API 地址
-    //     target: 'http://172.16.44.235:8080/',
-    //     // 如果要代理 websockets
-    //     ws: true,
-    //     // 将主机标头的原点更改为目标URL
-    //     changeOrigin: false
-    //   },
-    //   '/scanbuilding-2': {
-    //     // 目标 API 地址
-    //     target: 'http://172.16.44.235:8080/',
-    //     // 如果要代理 websockets
-    //     ws: true,
-    //     // 将主机标头的原点更改为目标URL
-    //     changeOrigin: false
-    //   },
-    //   '/image-service': {
-    //     // 目标 API 地址
-    //     target: 'http://172.16.42.210:8080/',
-    //     // 如果要代理 websockets
-    //     ws: true,
-    //     // 将主机标头的原点更改为目标URL
-    //     changeOrigin: false
-    //   },
-    //   '/modelapi': {
-    //     target: 'http://172.16.42.210:8082',
-    //     // target: 'http://192.168.20.218:8082',//景灏
-    //     changeOrigin: true,
-    //     pathRewrite: {
-    //       "^/modelapi": "/"
-    //     }
-    //   },
-    //   '/schedulerapi': {
-    //     target: 'http://172.16.42.210:8081',
-    //     changeOrigin: true,
-    //     pathRewrite: {
-    //       "^/schedulerapi": "/"
-    //     }
-    //   },
-    // },
-    proxyTable: { // 新版数据字典
-      '/admin': {
-        target: 'http://172.16.44.235:8080',
-        changeOrigin: true,
-        pathRewrite: {
-          "^/admin": "/"
-        }
-      },
-      '/api': {
-        target: 'http://39.102.40.239:8080',
-        changeOrigin: true,
-        pathRewrite: {
-          "^/api": "/"
-        }
-      },
-      '/data-platform-3': {
-        // 目标 API 地址
-        target: 'http://172.16.42.210:8080/',
-        // 如果要代理 websockets
-        ws: true,
-        // 将主机标头的原点更改为目标URL
-        changeOrigin: false
-      },
-      '/business-space': {
-        // 目标 API 地址
-        target: 'http://172.16.42.210:8080/',
-        // 如果要代理 websockets
-        ws: true,
-        // 将主机标头的原点更改为目标URL
-        changeOrigin: false
-      },
-      '/pointconfig': {
-        // 目标 API 地址
-        target: 'http://172.16.44.235:8080/',
-        // 如果要代理 websockets
-        ws: true,
-        // 将主机标头的原点更改为目标URL
-        changeOrigin: false
-      },
-      '/venders-dp': {
-        // 目标 API 地址
-        target: 'http://172.16.42.210:8080/',
-        // 如果要代理 websockets
-        ws: true,
-        // 将主机标头的原点更改为目标URL
-        changeOrigin: false
-      },
-      '/venders': {
-        // 目标 API 地址
-        target: 'http://172.16.42.210:8080/',
-        // 如果要代理 websockets
-        ws: true,
-        // 将主机标头的原点更改为目标URL
-        changeOrigin: false
-      },
-      '/ScanBuilding': {
-        // 目标 API 地址
-        target: 'http://172.16.44.235:8080/',
-        // 如果要代理 websockets
-        ws: true,
-        // 将主机标头的原点更改为目标URL
-        changeOrigin: false
-      },
-      '/scanbuilding-2': {
-        // 目标 API 地址
-        target: 'http://172.16.44.235:8080/',
-        // 如果要代理 websockets
-        ws: true,
-        // 将主机标头的原点更改为目标URL
-        changeOrigin: false
-      },
-      '/image-service': {
-        // 目标 API 地址
-        target: 'http://172.16.42.210:8080/',
-        // 如果要代理 websockets
-        ws: true,
-        // 将主机标头的原点更改为目标URL
-        changeOrigin: false
-      },
-      '/modelapi': {
-        target: 'http://172.16.42.210:8082',
-        // target: 'http://192.168.20.218:8082',//景灏
-        changeOrigin: true,
-        pathRewrite: {
-          "^/modelapi": "/"
-        }
-      },
-      '/schedulerapi': {
-        target: 'http://172.16.42.210:8081',
-        changeOrigin: true,
-        pathRewrite: {
-          "^/schedulerapi": "/"
-        }
-      },
-    },
     // Various Dev Server settings
     host: '0.0.0.0', // can be overwritten by process.env.HOST
     port: 28080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
@@ -325,8 +42,10 @@ module.exports = {
     // Paths
     assetsRoot: path.resolve(__dirname, '../dist'),
     assetsSubDirectory: 'static',
+    // assetsPublicPath: '/adm/',// 39 配置
     assetsPublicPath: '/',
 
+
     /**
      * Source Maps
      */

+ 7 - 3
config/prod.env.js

@@ -1,11 +1,15 @@
 'use strict'
 module.exports = {
   NODE_ENV: '"production"',
-  BASE_URL: '"http://172.16.44.215"', //测试iframe地址
-  SSO_SERVER: '"http://172.16.44.235:8081"', //测试环境
+  BASE_URL: '"http://192.168.64.14"', //测试iframe地址
+  // BASE_URL: '"http://192.168.64.18"', //测试iframe地址
+//   BASE_URL: '"http://39.102.40.239"', //测试iframe地址
+  SSO_SERVER: '"http://mbi.sagacloud.cn"', //测试环境
+  // MQTT_SERVICE: '"ws://39.102.40.239:61614/stomp/"' //MQ测试环境地址
+  MQTT_SERVICE: '"ws://192.168.64.14:61614/stomp/"' //MQ测试环境地址
+  // SSO_SERVER: '"http://172.16.44.235:8081"', //测试环境
   // BASE_URL: '"http://192.168.20.236"', //(新)测试iframe地址
   // SSO_SERVER: '"http://192.168.20.236:8086"', //(新)测试环境
-  MQTT_SERVICE: '"ws://172.16.42.210:61614/stomp/"' //MQ测试环境地址
   // BASE_URL: '"http://mbi.sagacloud.cn"', //线上iframe地址
   // SSO_SERVER: '"http://sso.sagacloud.cn"',  //正式环境
   //  MQTT_SERVICE: '"ws://adm.sagacloud.cn/stomp/"' //MQ正式环境地址

+ 7 - 8
package.json

@@ -5,10 +5,10 @@
   "author": "yaoll <yaolinlin@sagacloud.cn>",
   "private": true,
   "remote": {
-    "host": "192.168.20.236",
-    "path": "/opt/nginx/ibms/dist",
+    "host": "192.168.64.18",
+    "path": "/root/apps/web/adm/dist",
     "user": "root",
-    "password": "saga",
+    "password": "persagy@2020",
     "local": "dist"
   },
   "scripts": {
@@ -19,11 +19,10 @@
     "publish": "node publish.js"
   },
   "dependencies": {
-    "@saga-web/base": "2.1.9",
-    "@saga-web/cad-engine": "2.0.567",
-    "@saga-web/draw": "2.1.80",
-    "@saga-web/graphy": "2.1.52",
-    "@saga-web/topology": "1.0.83",
+    "@saga-web/base": "2.1.27",
+    "@saga-web/cad-engine": "2.0.594",
+    "@saga-web/draw": "2.1.113",
+    "@saga-web/graph": "2.1.138",
     "axios": "^0.18.0",
     "echarts": "^4.1.0",
     "el-cascader-multi": "^1.1.8",

+ 56 - 44
src/api/data_admin/buildTaskApi.js

@@ -1,6 +1,5 @@
-import http from '../scan/httpUtil'
-
-const baseUrl = '/api';
+import http from '../scan/httpUtil';
+import { baseUrl, scan } from './../scan/config';
 
 /**
  * info: 查询统计数量(查询总数量不传参数,查询已完成数量TaskState=0,查询未找到TaskState=-1,查询未验证TaskState=1)
@@ -9,120 +8,133 @@ const baseUrl = '/api';
  *
  */
 export function queryTaskCount(param, success) {
-    let url = `${baseUrl}/datacenter/scan-task-base/count`;
-    http.postJson(url, param, success)
+  // let url = `${baseUrl}${dataCenter}/scan-task-base/count`;
+  let url = `${baseUrl}${scan}/task/aggregate/count`;
+  http.postJson(url, param, success);
 }
 
 /*************************模型任务接口****************************/
 //创建模型任务
 export function createModelTask(param, success) {
-    let url = `${baseUrl}/datacenter/model-scan-task/create`;
-    http.postJson(url, param, success)
+  // let url = `${baseUrl}${modelScanTask}/create`;
+  let url = `${baseUrl}${scan}/task/model/create`;
+  http.postJson(url, param, success);
 }
+
 //根据id删除模型任务
 export function deleteModelTask(param, success) {
-    let url = `${baseUrl}/datacenter/model-scan-task/delete`;
-    http.postJson(url, param, success)
+  // let url = `${baseUrl}${modelScanTask}/delete`;
+  let url = `${baseUrl}${scan}/task/model/delete`;
+  http.postJson(url, param, success);
 }
+
 //查询:根据模型空间ID查询设备信息
 export function queryModelDiglog(param, success) {
-    let url = `${baseUrl}/datacenter/model-scan-task/equip-query`;
-    http.postJson(url, param, success)
+  // let url = `${baseUrl}${modelScanTask}/equip-query`;
+  let url = `${baseUrl}${scan}/task/model/equip-query`;
+  http.postJson(url, param, success);
 }
+
 //查询模型任务
 export function queryModelTask(param, success) {
-    let url = `${baseUrl}/datacenter/model-scan-task/page-query`;
-    http.postJson(url, param, success)
+  let url = `${baseUrl}${scan}/task/model/page-query`;
+  http.postJson(url, param, success);
 }
+
 //更新模型任务
 export function updateModelTask(param, success) {
-    let url = `${baseUrl}/datacenter/model-scan-task/update`;
-    http.postJson(url, param, success)
+  let url = `${baseUrl}${scan}/task/model/update`;
+  http.postJson(url, param, success);
 }
 
 //查询设备分类
 export function queryModelCategory(param, success) {
-  let url = `${baseUrl}/datacenter/model-scan-task/model-category-query`;
-  http.postJson(url, param, success)
+  let url = `${baseUrl}${scan}/task/model/model-category-query`;
+  http.postJson(url, param, success);
 }
 
 //查询模型文件夹和文件
 export function queryModelFile(param, success) {
-  let url = `${baseUrl}/datacenter/model-scan-task/model-file-query`;
-  http.postJson(url, param, success)
+  let url = `${baseUrl}${scan}/task/model/model-file-query`;
+  http.postJson(url, param, success);
 }
 
 //查询模型任务下的部件类型及数量
 export function modelCategoryCount(param, success) {
-  let url = `${baseUrl}/datacenter/model-scan-task/category-count`;
-  http.postJson(url, param, success)
+  let url = `${baseUrl}${scan}/task/model/category-count`;
+  http.postJson(url, param, success);
 }
 
 /*************************设备台账任务接口****************************/
 //创建设备台账任务
 export function createDeviceTask(param, success) {
-  let url = `${baseUrl}/datacenter/equip-scan-task/create`;
-  http.postJson(url, param, success)
+  let url = `${baseUrl}${scan}/task/equip/create`;
+  http.postJson(url, param, success);
 }
 
 //根据id删除设备台账任务
 export function deleteDeviceTask(param, success) {
-  let url = `${baseUrl}/datacenter/equip-scan-task/delete`;
-  http.postJson(url, param, success)
+  let url = `${baseUrl}${scan}/task/equip/delete`;
+  http.postJson(url, param, success);
 }
+
 //查询设备台账任务
 export function queryDeviceTask(param, success) {
-    let url = `${baseUrl}/datacenter/equip-scan-task/page-query`;
-    http.postJson(url, param, success)
+  let url = `${baseUrl}${scan}/task/equip/page-query`;
+  http.postJson(url, param, success)
 }
 
 //更新设备台账任务
 export function updateDeviceTask(param, success) {
-  let url = `${baseUrl}/datacenter/equip-scan-task/update`;
+  let url = `${baseUrl}${scan}/task/equip/update`;
   http.postJson(url, param, success)
 }
 
-//查询设备分类
+//设备台账任务接口 查询设备分类
 export function queryDeviceCategory(param, success) {
-  let url = `${baseUrl}/datacenter/equip-scan-task/equip-category-query`;
+  let url = `${baseUrl}${scan}/task/equip/category/query`;
   http.postJson(url, param, success)
 }
 
 //查询设备任务下的部件类型及数量
 export function categoryCount(param, success) {
-  let url = `${baseUrl}/datacenter/equip-scan-task/category-count`
+  let url = `${baseUrl}${scan}/task/equip/category-count`
   http.postJson(url, param, success)
 }
 
 /*************************资产台账任务接口****************************/
 //统计数量
 export function countAssetsTask(param, success) {
-  let url = `${baseUrl}/datacenter/property-scan-task/count`;
+  let url = `${baseUrl}${scan}/task/property/count`;
   http.postJson(url, param, success)
 }
 
 //创建设备台账任务
 export function createAssetsTask(param, success) {
-  let url = `${baseUrl}/datacenter/property-scan-task/create`;
-    http.postJson(url, param, success)
+  let url = `${baseUrl}${scan}/task/property/create`;
+  http.postJson(url, param, success)
 }
+
 //根据id删除设备台账任务
 export function deleteAssetsTask(param, success) {
-    let url = `${baseUrl}/datacenter/property-scan-task/delete`;
-    http.postJson(url, param, success)
+  let url = `${baseUrl}${scan}/task/property/delete`;
+  http.postJson(url, param, success)
 }
-//查询设备台账任务
+
+//查询资产台账任务 y
 export function queryAssetsTask(param, success) {
-    let url = `${baseUrl}/datacenter/property-scan-task/page-query`;
-    http.postJson(url, param, success)
+  let url = `${baseUrl}${scan}/task/property/page-query`;
+  http.postJson(url, param, success)
 }
-//更新设备台账任务
+
+//更新资产台账任务
 export function updateAssetsTask(param, success) {
-    let url = `${baseUrl}/datacenter/property-scan-task/update`;
-    http.postJson(url, param, success)
+  let url = `${baseUrl}${scan}/task/property/update`;
+  http.postJson(url, param, success)
 }
+
 //查询设备族
 export function queryAssetsFamily(param, success) {
-    let url = `${baseUrl}/datacenter/property-scan-task/property-category-query`;
-    http.postJson(url, param, success)
+  let url = `${baseUrl}${scan}/task/property/property-category-query`;
+  http.postJson(url, param, success)
 }

+ 54 - 0
src/api/dict/index.js

@@ -0,0 +1,54 @@
+import {baseUrl, dict, component_dict} from "@/api/scan/config";
+import http from "@/api/scan/httpUtil";
+
+//头部信息查询(查询所有设备类型-所有部件类型-所有系统类型-所有专业类型)
+export function queryPhysicsAllType(param, success) {
+  let url = `${baseUrl}${dict}/category`;
+  http.postJson(url, param, success);
+}
+
+//查询项目下类型的信息点
+export function getDataDictionary(param, success) {
+  let url = `${baseUrl}${dict}/query`;
+  http.postJson(url, param, success);
+}
+
+//批量处理字典信息操作
+export function setInfoPoint(param, success) {
+  let url = `${baseUrl}${dict}/dict-batch`;
+  http.postJson(url, param, success)
+}
+
+//设置-项目定制化字典
+export function setDataDictionary(param, success) {
+  let url = `${baseUrl}${dict}/setting-dic-project`;
+  http.postJson(url, param, success)
+}
+
+/**
+ * 字典统一配置(切换到equip-component服务上)
+ */
+
+// 头部信息查询(查询所有设备类型-所有部件类型-所有系统类型-所有专业类型)
+export function dictCategory(param, success) {
+    let url = `${baseUrl}${component_dict}/category`;
+    http.postJson(url, param, success);
+}
+
+//查询项目下类型的信息点
+export function dictQuery(param, success) {
+    let url = `${baseUrl}${component_dict}/query`;
+    http.postJson(url, param, success);
+}
+
+//设置-项目定制化字典
+export function setDicProject(param, success) {
+    let url = `${baseUrl}${component_dict}/setting-dic-project`;
+    http.postJson(url, param, success)
+}
+
+//需采集信息同步到所有项目
+export function synDicProject(param, success) {
+    let url = `${baseUrl}${component_dict}/syn-dic-project`;
+    http.getJson(url, param, success)
+}

+ 90 - 89
src/api/framework.js

@@ -6,106 +6,107 @@ import httputils from '@/utils/httputils'
 // const userInfo = { username: 'admin', permissions: ['demo'] }
 
 const userInfo = null
+
 function toLogin() {
-    router.push('/login')
+  router.push('/login')
 }
 
 function checkMenu(menu, ps) {
-    let result = { name: menu.name, icon: menu.icon, path: menu.path, disabled: menu.disabled }
-    if (menu.children) {
-        // 如果有下级菜单权限,则自动拥有上级菜单权限
-        result.children = []
-        menu.children.forEach(child => {
-            let submenu = checkMenu(child, ps)
-            if (submenu) {
-                result.children.push(submenu)
-            }
-        })
-        return result.children.length > 0 ? result : null
-    } else if (menu.opts) {
-        return menu.opts.some(opt => ps[opt.permission]) ? result : null
-    } else {
-        // 如果没有下级菜单且没有opts属性, 菜单可以直接访问,不需要权限
-        return result
-    }
+  let result = { name: menu.name, icon: menu.icon, path: menu.path, disabled: menu.disabled }
+  if (menu.children) {
+    // 如果有下级菜单权限,则自动拥有上级菜单权限
+    result.children = []
+    menu.children.forEach(child => {
+      let submenu = checkMenu(child, ps)
+      if (submenu) {
+        result.children.push(submenu)
+      }
+    })
+    return result.children.length > 0 ? result : null
+  } else if (menu.opts) {
+    return menu.opts.some(opt => ps[opt.permission]) ? result : null
+  } else {
+    // 如果没有下级菜单且没有opts属性, 菜单可以直接访问,不需要权限
+    return result
+  }
 }
 
 export default {
-    /**
-     *  路由守卫, 每次路由跳转时验证登录
-     * @param {*} to
-     * @param {*} from
-     * @param {*} next
-     */
-    routerBeforeEach: async function(to, from, next) {
-        console.log('router before ', to)
-        if (to.path == '/auth' || to.path == '/login') {
-            next()
-        } else {
-            if (to.meta.breadcrumbs) {
-                store.dispatch('setBreadcrumb', to.meta.breadcrumbs)
-            } else {
-                store.dispatch('setBreadcrumb', [])
-            }
-            // next()
-            let userInfo = store.getters['layout/userInfo']
-            if (!userInfo) {
-                // 本地是未登录状态, 保存目标页面地址, 去登录
-                let lastRoute = { path: to.path, params: to.params, query: to.query }
-                store.commit('setLastRoute', lastRoute)
-                toLogin()
-            } else {
-                if (to.meta.breadcrumbs) {
-                    store.dispatch('setBreadcrumb', to.meta.breadcrumbs)
-                }
-                next()
-            }
-            return true
+  /**
+   *  路由守卫, 每次路由跳转时验证登录
+   * @param {*} to
+   * @param {*} from
+   * @param {*} next
+   */
+  routerBeforeEach: async function (to, from, next) {
+    console.log('router before ', to)
+    if (to.path == '/auth' || to.path == '/login') {
+      next()
+    } else {
+      if (to.meta.breadcrumbs) {
+        store.dispatch('setBreadcrumb', to.meta.breadcrumbs)
+      } else {
+        store.dispatch('setBreadcrumb', [])
+      }
+      // next()
+      let userInfo = store.getters['layout/userInfo']
+      if (!userInfo) {
+        // 本地是未登录状态, 保存目标页面地址, 去登录
+        let lastRoute = { path: to.path, params: to.params, query: to.query }
+        store.commit('setLastRoute', lastRoute)
+        toLogin()
+      } else {
+        if (to.meta.breadcrumbs) {
+          store.dispatch('setBreadcrumb', to.meta.breadcrumbs)
         }
-    },
+        next()
+      }
+      return true
+    }
+  },
 
-    getMenus(permissions) {
-        let result = []
-        let allMenus = []
-        // 开发环境下展示demo页面
-        // if (process.env.NODE_ENV === 'development') {
-        //     allMenus = demoMenus
-        // }
-        allMenus = allMenus.concat(menus)
-        let ps = !permissions ? {} : permissions
-        console.log(ps)
-        allMenus.forEach(item => {
-            let menu = checkMenu(item, ps)
-            if (menu) {
-                result.push(menu)
-            }
-        })
-        return result
-    },
+  getMenus(permissions) {
+    let result = []
+    let allMenus = []
+    // 开发环境下展示demo页面
+    // if (process.env.NODE_ENV === 'development') {
+    //     allMenus = demoMenus
+    // }
+    allMenus = allMenus.concat(menus)
+    let ps = !permissions ? {} : permissions
+    console.log(ps)
+    allMenus.forEach(item => {
+      let menu = checkMenu(item, ps)
+      if (menu) {
+        result.push(menu)
+      }
+    })
+    return result
+  },
 
-    login(username, password) {
-        return new Promise((resolve, reject) => {
-            if (username == 'admin') {
-                resolve({ result: 'success', ssoToken: 'admin-token' })
-            } else {
-                resolve({ result: 'fail', message: 'username or password error' })
-            }
-        })
-    },
+  login(username, password) {
+    return new Promise((resolve, reject) => {
+      if (username == 'admin') {
+        resolve({ result: 'success', ssoToken: 'admin-token' })
+      } else {
+        resolve({ result: 'fail', message: 'username or password error' })
+      }
+    })
+  },
 
-    loadUserInfo() {
-        // return new Promise((resolve, reject) => resolve({ result: 'success', ...userInfo }))
-        return httputils.getJson(`/admin/ibms/user/userInfo`)
-    },
+  loadUserInfo() {
+    // return new Promise((resolve, reject) => resolve({ result: 'success', ...userInfo }))
+    return httputils.getJson(`/admin/ibms/user/userInfo`)
+  },
 
-    toLogout() {
-        // TODO
-        router.push('/auth')
-        store.commit('setSsoToken', null)
-        let ssoServer = process.env.SSO_SERVER
-        let redirectUrl = window.location.protocol + '//' + window.location.host + '/'
-        window.location.href = `${ssoServer}/logout?redirectUrl=${redirectUrl}`
-    },
+  toLogout() {
+    // TODO
+    router.push('/auth')
+    store.commit('setSsoToken', null)
+    let ssoServer = process.env.SSO_SERVER
+    let redirectUrl = window.location.protocol + '//' + window.location.host + '/'
+    window.location.href = `${ssoServer}/logout?redirectUrl=${redirectUrl}`
+  },
 
-    toLoginPage: toLogin
+  toLoginPage: toLogin
 }

+ 5 - 0
src/api/httputils.js

@@ -19,6 +19,11 @@ const axiosservice = axios.create({
 
 axiosservice.interceptors.request.use(
     config => {
+        config.cancelToken = new axios.CancelToken(cancel => {
+            if (config.url !== '/api/message-center/message/update-state' || config.url !== '/image-service/common/multipart_upload') {
+                store.commit('setAxiosArr', {cancel})
+            }
+        })
         config.withCredentials = true // 允许携带token ,这个是解决跨域产生的相关问题
         let token = store.getters['ssoToken']
         if (token) {

+ 21 - 16
src/api/model/file.js

@@ -1,14 +1,14 @@
 import httputils from '@/api/scan/httpUtil'
 import { Message } from 'element-ui';
-import axios from 'axios'
+
 const baseUrl = '/modelapi';
 const revitUrl = '/schedulerapi';
 
 let api = {
     // 新建模型文件夹
     /**
-     * 
-     * @param {Name:string,ProjectId:string} params 
+     *
+     * @param {Name:string,ProjectId:string} params
      */
     createModel(params, success) {
         let Name = params.Name;
@@ -27,8 +27,8 @@ let api = {
     },
     //删除模型文件夹
     /**
-     * 
-     * @param {Id:string} params 
+     *
+     * @param {Id:string} params
      */
     deleteModel(params, success) {
         let Content = [params];
@@ -36,8 +36,8 @@ let api = {
     },
     //修改模型文件夹名称
     /**
-    * 
-    * @param {Name:string,ProjectId:string} params 
+    *
+    * @param {Name:string,ProjectId:string} params
     */
     updateModelName(params, success) {
         let Name = params.Name;
@@ -54,8 +54,8 @@ let api = {
         })
     },
     //查询模型文件夹
-    /** 
-     * @param Name string  注:查询多个 Name = '' 
+    /**
+     * @param Name string  注:查询多个 Name = ''
     */
     queryModel(Name, success) {
         let data = null;
@@ -80,7 +80,6 @@ let api = {
 
     // 查询模型文件夹下的所有模型文件
     queryFloorList(data, success) {
-
         let Filters = `FolderId='${data.FolderId}'`;
         if (data.FloorName) {
             Filters = `FolderId='${data.FolderId}';FloorName='${data.FloorName}';ProjectId='${data.ProjectId}'`;
@@ -211,21 +210,22 @@ let api = {
     },
     /**
      * info: 删除模型文件
-     * @param {*} params string 模型文件的id 
+     * @param {*} params string 模型文件的id
      * @param {*} success  成功的回调函数
      */
     deleteModelFileList(params, success) {
         let data = {
             Id:params.Id,
             Force: params.Force?params.Force:false
-        } 
+        }
         return httputils.postJson(`${baseUrl}/model-file/delete-file`, data, success)
     },
-    //查询模型文件 
+    //查询模型文件
     queryModelFile(FloorModelId, success) {
         let params = {
-            Distince: true,
-            Filters: `FloorModelId='${FloorModelId}';Removed=false`
+          Distince: true,
+          Filters: `FloorModelId='${FloorModelId}';Removed=false`,
+          Orders: 'Version desc'
         }
         return httputils.postJson(`${baseUrl}/model-file/query`, params, success)
     },
@@ -344,4 +344,9 @@ export function modelPathControl(param, success) {
 export function unassignQuery(param, success) {
     let url = `${revitUrl}/task/query`;
     httputils.postJson(url, param, success)
-}
+}
+
+// 根据条件查询统计数量
+export function countModel(params, success) {
+    return httputils.postJson(`${baseUrl}/model-file/count`, params, success)
+}

+ 14 - 14
src/api/msgsever.js

@@ -1,5 +1,5 @@
 import http from './scan/httpUtil'
-const baseUrl = '/api';
+import { message } from './scan/config'
 
 /*************************消息中心接口****************************/
 
@@ -8,8 +8,8 @@ const baseUrl = '/api';
  * info: 查询总数量不传参数,查询 已读Read = true,未读 Read = false
  */
 export function messgeCount(param, success) {
-    let url = `${baseUrl}/message-center/message/count`;
-    http.postJson(url, param, success)
+  let url = `${message}/message/count`;
+  http.postJson(url, param, success)
 }
 
 /**
@@ -17,24 +17,24 @@ export function messgeCount(param, success) {
  * info: 消息类型:提示(Info)、警告(Warning)、错误(Error)、成功(Success)
  */
 export function messgeCreate(param, success) {
-    let url = `${baseUrl}/message-center/message/create`;
-    http.postJson(url, param, success)
+  let url = `${message}/message/create`;
+  http.postJson(url, param, success)
 }
 
 /**
  * title: 删除消息
  */
 export function messgeDelete(param, success) {
-    let url = `${baseUrl}/message-center/message/delete`;
-    http.postJson(url, param, success)
+  let url = `${message}/message/delete`;
+  http.postJson(url, param, success)
 }
 
 /**
  * title: 查询消息列表
  */
 export function messgeQuery(param, success) {
-    let url = `${baseUrl}/message-center/message/page-query`;
-    http.postJson(url, param, success)
+  let url = `${message}/message/page-query`;
+  http.postJson(url, param, success)
 }
 
 /**
@@ -42,8 +42,8 @@ export function messgeQuery(param, success) {
  * info: 是否读过:未读(f)、已读(t)
  */
 export function messgeUpdate(param, success) {
-    let url = `${baseUrl}/message-center/message/update`;
-    http.postJson(url, param, success)
+  let url = `${message}/message/update`;
+  http.postJson(url, param, success)
 }
 
 /**
@@ -51,6 +51,6 @@ export function messgeUpdate(param, success) {
  * info: 已读Read = true,*UserId
  */
 export function messgeUpdateState(param, success) {
-    let url = `${baseUrl}/message-center/message/update-state`;
-    http.postJson(url, param, success)
-}
+  let url = `${message}/message/update-state`;
+  http.postJson(url, param, success)
+}

+ 9 - 0
src/api/object/build.js

@@ -0,0 +1,9 @@
+import {baseUrl, object} from "@/api/scan/config";
+import http from "@/api/scan/httpUtil";
+
+//查询建筑信息
+export function buildingQuery(param, success) {
+  let url = `${baseUrl}${object}/building/query`;
+  http.postJson(url, param, success);
+}
+

+ 20 - 0
src/api/object/equip.js

@@ -0,0 +1,20 @@
+import { baseUrl, compEquipQuery, object } from "@/api/scan/config";
+import http from "@/api/scan/httpUtil";
+
+//设备清单 - 查询设备信息
+export function queryEquip(param, success) {
+  let url = `${baseUrl}${object}/equip/query`;
+  http.postJson(url, param, success);
+}
+
+//设备清单 - 统计项目下所有设备数量
+export function countEquip(param, success) {
+  let url = `${baseUrl}${object}/equip/count`;
+  http.postJson(url, param, success);
+}
+
+//查询设备关联资产部件数量
+export function getEquipTableCon(param, success) {
+  let url = `${baseUrl}${compEquipQuery}/equip-components`;
+  http.postJson(url, param, success);
+}

+ 20 - 0
src/api/object/floor.js

@@ -0,0 +1,20 @@
+import { baseUrl, dataCenter, object } from "@/api/scan/config";
+import http from "@/api/scan/httpUtil";
+
+//查询楼层信息
+export function floorQuery(param, success) {
+  let url = `${baseUrl}${object}/floor/query`;
+  http.postJson(url, param, success);
+}
+
+//建筑楼层管理-创建楼层
+export function manageCreateFloor(param, success) {
+  let url = `${baseUrl}${object}/floor/create`;
+  http.postJson(url, param, success)
+}
+
+//建筑楼层管理-修改楼层
+export function manageUpdateFloor(param, success) {
+  let url = `${baseUrl}${object}/floor/update`;
+  http.postJson(url, param, success)
+}

+ 45 - 34
src/api/relation/api.js

@@ -1,104 +1,112 @@
 import httpUtil from "../scan/httpUtil";
 import fetch from "../scan/fetch";
 import storage from '@/framework/utils/storage'
+import { baseUrl, graphicUrl, dataCenter, dictCustom } from "@/api/scan/config"
 
 
 //查询总览
 export function graphic(param, success) {
-  let url = '/api/datacenter/graphic/overview'
+  let url = `${baseUrl}${graphicUrl}/overview`
   httpUtil.postJson(url, param, success)
 }
 
 // 查询总览数量
 export function graphicNumber(param, success) {
-  let url = '/api/datacenter/graphic/query-count'
+  let url = `${baseUrl}${graphicUrl}/query-count`
   httpUtil.postJson(url, param, success)
 
 }
 
+// 查询总览数量-根据类型查询关系数量
+export function graphicTypeNumber(param, success) {
+  let url = `${baseUrl}${graphicUrl}/type/query-count?type=${param.type}`
+  httpUtil.postJson(url, {}, success)
+
+}
+
 //导入excel
 export function graphicUpload(param, success) {
-  let url = '/api/datacenter/graphic/import'
+  let url = `${baseUrl}${graphicUrl}/import`
   httpUtil.postJson(url, param, success)
 }
 
 // 下载报告
 export function reportDownload(param, success) {
-  let url = '/api/datacenter/graphic/report-downloads'
+  let url = `${baseUrl}${graphicUrl}/report-downloads`
   httpUtil.getJson(url, param, success)
 }
 
 // 下载模板
 export function templateDownloads(param, success) {
-  let url = '/api/datacenter/graphic/template-downloads'
+  let url = `${baseUrl}${graphicUrl}/template-downloads`
   httpUtil.getJson(url, param, success)
 }
 
 
 //    建筑下的业务空间
 export function buildSpace(param, success) {
-  let url = '/api/datacenter/calc_building/space'
+  let url = `${baseUrl}${dataCenter}/calc_building/space`
   httpUtil.postJson(url, param, success)
 }
 
 
 // 管网系统设备分块 1
 // export function calcSpecial(param, success) {
-//   let url = ` /api/datacenter/calc_special/sys-block?Domain=${param.Domain}&SystemName=${param.SystemName}`
+//   let url = ` ${baseUrl}${dataCenter}/calc_special/sys-block?Domain=${param.Domain}&SystemName=${param.SystemName}`
 //   httpUtil.postJson(url, param, success)
 // }
 export function calcSpecial(param, success) {
-  let url = ` /api/datacenter/calc_special/sys-block?relationType=${param.RelationType}`
+  let url = `${baseUrl}${dataCenter}/calc_special/sys-block?relationType=${param.relationType}`
   httpUtil.postJson(url, param, success)
 }
 
 
 //    获取源末端 2
 export function blockQuery(param, success) {
-  let url = '/api/datacenter/graphic/connected-block-query'
+  let url = `${baseUrl}${graphicUrl}/connected-block-query`
   httpUtil.postJson(url, param, success)
 }
 
 
 // 覆盖源末端 3
 export function blockSource(param, success) {
-  let url = '/api/datacenter/graphic/replace-connected-block-source'
+  let url = `${baseUrl}${graphicUrl}/replace-connected-block-source`
   httpUtil.postJson(url, param, success)
 }
 
 //    管网系统确定流向 4
 export function sysDirection(param, success) {
   let buildId = param.BuildingId ? `BuildingId=${param.BuildingId}&` : ''
-  let url = `/api/datacenter/calc_special/sys-direction?BlockId=${param.BlockId}&${buildId}Domain=${param.Domain}&SystemName=${param.SystemName}&isSource=${param.isSource}`
+  let url = `${baseUrl}${dataCenter}/calc_special/sys-direction?BlockId=${param.BlockId}&${buildId}Domain=${param.Domain}&SystemName=${param.SystemName}&isSource=${param.isSource}`
   httpUtil.postJson(url, param, success)
 }
 
 //************************无需配置源末端关系计算15种********************************//
 // 建筑下的业务空间
 export function businessSpaceAll(param) {
-  let {relation_type, zone_type, proId} = param
+  let { relation_type, zone_type, proId } = param
   let userName = storage.get("user_name")
   let ProjectId = localStorage.getItem("projectId")
   let objectTypes = zone_type ? "?objectTypes=" + zone_type : ''
   return fetch({
     method: 'POST',
-    url: "/api/datacenter/relation-calc/" + relation_type + objectTypes,
+    url: `${baseUrl}${dataCenter}/relation-calc/` + relation_type + objectTypes,
     data: proId,
-    headers: {'ProjectId': ProjectId, 'Comming': 'adm', 'Account': userName}
+    headers: { 'ProjectId': ProjectId, 'Comming': 'adm', 'Account': userName }
   })
 }
 
 //************************数据转换********************************//
 
-// 项目化字典-统计数量
+// 项目化字典-统计数量 修改过大小写
 export function dictCount(param, success) {
-  let url = '/api/equip-component/dict-custom/project-dict-count'
+  let url = `${baseUrl}${dictCustom}/project-dict-count`
   httpUtil.postJson(url, param, success)
 }
 
-// 项目化字典-需补充转换规则数量
+// 项目化字典-需补充转换规则数量 修改过大小写
 export function dictSwitchCount(param, success) {
-  let url = '/api/equip-component/dict-custom/project-dict-switch-count'
+  let url = `${baseUrl}${dictCustom}/project-dict-switch-count`
   httpUtil.postJson(url, param, success)
 }
 
@@ -109,69 +117,72 @@ export function dectInfo(param) {
   let ProjectId = localStorage.getItem("projectId")
   return fetch({
     method: 'POST',
-    url: `/api/equip-component/dict-custom/project-dict-info`,
+    url: `${baseUrl}${dictCustom}/project-dict-info`,
     data,
-    headers: {'ProjectId': ProjectId, 'Comming': 'adm', 'Account': userName}
+    headers: { 'ProjectId': ProjectId, 'Comming': 'adm', 'Account': userName }
   })
 }
 
 //数据中心-物理世界数据转换
 export function dictDataCenter(param, success) {
-  let url = '/api/equip-component/dict-custom/project-dict-datacenter'
+  let url = `${baseUrl}${dictCustom}/project-dict-datacenter`
   httpUtil.postJson(url, param, success)
 }
 
 //物理世界-数据中心数据转换
 export function dictDataPlatFrom(param, success) {
-  let url = '/api/equip-component/dict-custom/project-dict-dataplatfrom'
+  let url = `${baseUrl}${dictCustom}/project-dict-dataplatfrom`
   httpUtil.postJson(url, param, success)
 }
 
 // 同步设备
 export function createEquip(param, success) {
-  let url = `/api/dataplatform-sync/project-sync/create-equip?projectId=${param.projectId}`
+  let url = `${baseUrl}/dataplatform-sync/project-sync/create-equip?projectId=${param.projectId}`
   httpUtil.postJson(url, {}, success)
 }
 
 //更新自定义自定脚本
 export function dictUpdate(param, success) {
-  let url = '/api/equip-component/dict-custom/update'
+  let url = `${baseUrl}${dictCustom}/update`
   httpUtil.postJson(url, param, success)
 }
 
 // 查询关系数据
-export function relQuery(param,success) {
-  let url = '/api/datacenter/relation-manual-calc/rel-query'
-  httpUtil.postJson(url,param,success)
+export function relQuery(param, success) {
+  // let url = `${baseUrl}${dataCenter}/relation-manual-calc/rel-query`
+  let url = `${baseUrl}${dataCenter}/rel-manual-calc/query`
+  httpUtil.postJson(url, param, success)
 }
+
 //添加关系数据
 export function relAdd(data) {
   let userName = storage.get("user_name")
   let ProjectId = localStorage.getItem("projectId")
   return fetch({
     method: 'POST',
-    url: `/api/datacenter/relation-manual-calc/rel-add`,
+    // url: `${baseUrl}${dataCenter}/relation-manual-calc/rel-add`,
+    url: `${baseUrl}${dataCenter}/rel-manual-calc/add`,
     data,
-    headers: {'ProjectId': ProjectId, 'Comming': 'adm', 'Account': userName}
+    headers: { 'ProjectId': ProjectId, 'Comming': 'adm', 'Account': userName }
   })
 }
 
 //删除关系
 export function relDelete(param, success) {
-  let url = '/api/datacenter/relation-manual-calc/rel-del'
+  // let url = `${baseUrl}${dataCenter}/relation-manual-calc/rel-del`
+  let url = `${baseUrl}${dataCenter}/rel-manual-calc/del`
   httpUtil.postJson(url, param, success)
 }
 
 
 // 添加源设备
 export function addSource(param, success) {
-  let url = '/api/datacenter/mep-system-calc/source/add'
+  let url = `${baseUrl}${dataCenter}/mep-system-calc/source/add`
   httpUtil.postJson(url, param, success)
 }
 
 //查看源设备
 export function sourceQuery(param, success) {
-  let url = '/api/datacenter/mep-system-calc/source/query'
-  httpUtil.postJson(url, param, success)
-
+  let url = `${baseUrl}${dataCenter}/mep-system-calc/source/query?calcName=${param.calcName}`
+  httpUtil.getJson(url, {}, success)
 }

+ 38 - 9
src/api/scan/config.js

@@ -1,22 +1,51 @@
+/******************* 基础代理配置 *********************/
 export const baseUrl = '/api';
 export const api = '/ScanBuilding';
 export const api1 = '/scanbuilding-2';
+export const scan = '/scanbuilding';
 export const sass = 'sass';
+export const venders = '/venders'
+export const dataCenter = '/datacenter'
+export const component = '/equip-component'
 export const physics = '/data-platform-3';
 export const business = '/business-space'
-export const venders = '/venders'
+export const rwd = '/rwd'
+export const datasyn = '/datasyn'
+/******************* 适配新版数据字典接口 *********************/
+export const object = dataCenter + '/object'
+export const rel = dataCenter + '/rel'
+export const system = object + '/general-system'
+export const message = baseUrl + '/message-center'
+
+
+export const shaft = object + '/shaft'
+export const tenant = dataCenter + '/tenant'
+export const floor = object + '/floor'
+export const dict = dataCenter + '/dict'
+export const component_dict = component + '/dict'
+export const classDef = dataCenter + '/class-def'
+export const locationPoint = object + '/location-point'
+export const modelScanTask = dataCenter + '/model-scan-task'
+export const equipScanTask = dataCenter + '/equip-scan-task'
+export const shContainSp = rel + '/sh-contain-sp-base'
+export const statistics = dataCenter + '/statistics'
+export const stat = component + '/statistics'
+export const graphicUrl = dataCenter + '/graphic'
+export const compSpace = component + '/space'
+export const compEquipQuery = component + '/equip-query'
+export const dictCustom = component + '/dict-custom'
 export const zone = {
   GeneralZone: 'zone-general', //默认分区
   PowerSupplyZone: 'zone-power-supply', //供电分区
   LightingZone: 'zone-lighting', //照明分区
   AirConditioningZone: 'metaspace', //空调分区
   TenantZone: 'zone-tenant', //租赁分区
-  HeatingZone:'zone-heating', //采暖分区
-  CleanZone:'zone-clean', //洁净分区
-  DomesticWaterSupplyZone:'zone-domestic-water', //生活给水分区
-  NetworkZone:'zone-network', //网络分区
-  FunctionZone:'zone-function', //功能分区
-  FireZone:'zone-fire', //防火分区
-  SecurityZone:'zone-security', //安防分区
-  Ispace:'ispace', //元空间
+  HeatingZone: 'zone-heating', //采暖分区
+  CleanZone: 'zone-clean', //洁净分区
+  DomesticWaterSupplyZone: 'zone-domestic-water', //生活给水分区
+  NetworkZone: 'zone-network', //网络分区
+  FunctionZone: 'zone-function', //功能分区
+  FireZone: 'zone-fire', //防火分区
+  SecurityZone: 'zone-security', //安防分区
+  Ispace: 'ispace', //元空间
 }

+ 6 - 0
src/api/scan/fetch.js

@@ -1,6 +1,7 @@
 import Vue from 'vue'
 import axios from 'axios'
 import vueAxios from 'vue-axios'
+import store from '@/store'
 import { Message } from 'element-ui';
 
 Vue.use(vueAxios, axios)
@@ -13,6 +14,11 @@ const service = axios.create({
 
 //request拦截
 service.interceptors.request.use(config => {
+    config.cancelToken = new axios.CancelToken(cancel => {
+        if (config.url !== '/api/message-center/message/update-state' || config.url !== '/image-service/common/multipart_upload') {
+            store.commit('setAxiosArr', {cancel})
+        }
+    })
   return config
 }, error => {
   console.log(error)

+ 60 - 43
src/api/scan/httpUtil.js

@@ -1,6 +1,7 @@
 import {Message} from 'element-ui';
 import fetch from './fetch'
 import storage from '@/framework/utils/storage'
+import store from '@/store/index'
 
 function successResponse(vm, response, success, failed) {
   let resp = response.data;
@@ -21,6 +22,8 @@ function successResponse(vm, response, success, failed) {
 
 function errorResponse(vm, response, err) {
   let json = JSON.parse(JSON.stringify(response))
+  if (json.message === '路由调整取消请求')
+  return 
   console.error(response)
   if (json.response) {
     Message.error({ message: `接口:${json.response.config.url}请求错误,错误状态为:${json.response.status}` })
@@ -29,39 +32,53 @@ function errorResponse(vm, response, err) {
     Message.error({ message: '请求错误' });
   }
 }
+
 function downFile(blob, fileName) {
   // 非IE下载
   if ('download' in document.createElement('a')) {
-      let link = document.createElement('a')
-      link.href = window.URL.createObjectURL(blob) // 创建下载的链接
-      link.download = fileName // 下载后文件名
-      link.style.display = 'none'
-      document.body.appendChild(link)
-      link.click() // 点击下载
-      window.URL.revokeObjectURL(link.href) // 释放掉blob对象
-      document.body.removeChild(link) // 下载完成移除元素
+    let link = document.createElement('a')
+    link.href = window.URL.createObjectURL(blob) // 创建下载的链接
+    link.download = fileName // 下载后文件名
+    link.style.display = 'none'
+    document.body.appendChild(link)
+    link.click() // 点击下载
+    window.URL.revokeObjectURL(link.href) // 释放掉blob对象
+    document.body.removeChild(link) // 下载完成移除元素
   } else {
-      // IE10+下载
-      window.navigator.msSaveBlob(blob, fileName)
+    // IE10+下载
+    window.navigator.msSaveBlob(blob, fileName)
   }
 }
+
 export default {
-  getJson: function(url, data, success, failed, err) {
-    let ProjectId = localStorage.getItem("projectId")
-    let userName = storage.get("user_name")
+  getJson: function (url, data, success, failed, err) {
+    let ProjectId = store.state.layout.projectId ? store.state.layout.projectId : localStorage.getItem("projectId");
+    let userName = store.state.layout.userInfo.userName ? store.state.layout.userInfo.userName : storage.get("user_name");
+    let group_code = store.state.layout.group_code ? store.state.layout.group_code : localStorage.getItem("group_code");
     let vm = this;
-    fetch({ url: url, method: 'get', params: data, headers: {'ProjectId': ProjectId, 'Comming': 'adm' ,'Account': userName}}).then((response) => {
+    fetch({
+      url: url,
+      method: 'get',
+      params: data,
+      headers: {'projectId': ProjectId, 'appId': 'adm', 'userId': userName, 'groupCode': group_code}
+    }).then((response) => {
       successResponse(vm, response, success, failed)
     }).catch(error => {
       errorResponse(vm, error, err);
     });
   },
-  postJson: function(url, data, success, failed, err) {
-    // let ProjectId = localStorage.getItem("projectId")
-    let ProjectId = "Pj1101050029"
-    let userName = storage.get("user_name")
+  postJson: function (url, data, success, failed, err) {
+    let ProjectId = store.state.layout.projectId ? store.state.layout.projectId : localStorage.getItem("projectId");
+    let userName = store.state.layout.userInfo.userName ? store.state.layout.userInfo.userName : storage.get("user_name");
+    let group_code = store.state.layout.group_code ? store.state.layout.group_code : localStorage.getItem("group_code");
+
     let vm = this;
-    fetch({ url: url, method: 'post', data: data, headers: {'ProjectId': ProjectId, 'Comming': 'adm' ,'Account': userName} }).then((response) => {
+    fetch({
+      url: url,
+      method: 'post',
+      data: data,
+      headers: {'projectId': ProjectId, 'appId': 'adm', 'userId': userName, 'groupCode': group_code}
+    }).then((response) => {
       successResponse(vm, response, success, failed)
     }).catch(error => {
       errorResponse(vm, error, err);
@@ -70,30 +87,30 @@ export default {
   download(url, requestData) {
     // 响应类型:arraybuffer, blob
     fetch
-        .post(url, requestData, { responseType: 'blob' })
-        .then(resp => {
-            let headers = resp.headers
-            let contentType = headers['content-type']
+      .post(url, requestData, { responseType: 'blob' })
+      .then(resp => {
+        let headers = resp.headers
+        let contentType = headers['content-type']
 
-            console.log('响应头信息', headers)
-            if (!resp.data) {
-                console.error('响应异常:', resp)
-                return false
-            } else {
-                console.log('下载文件:', resp)
-                const blob = new Blob([resp.data], { type: contentType })
+        console.log('响应头信息', headers)
+        if (!resp.data) {
+          console.error('响应异常:', resp)
+          return false
+        } else {
+          console.log('下载文件:', resp)
+          const blob = new Blob([resp.data], { type: contentType })
 
-                const contentDisposition = resp.headers['content-disposition']
-                let fileName = 'unknown'
-                if (contentDisposition) {
-                    fileName = window.decodeURI(resp.headers['content-disposition'].split('=')[1])
-                }
-                console.log('文件名称:', fileName)
-                downFile(blob, fileName)
-            }
-        })
-        .catch(function(error) {
-            console.log(error)
-        })
-},
+          const contentDisposition = resp.headers['content-disposition']
+          let fileName = 'unknown'
+          if (contentDisposition) {
+            fileName = window.decodeURI(resp.headers['content-disposition'].split('=')[1])
+          }
+          console.log('文件名称:', fileName)
+          downFile(blob, fileName)
+        }
+      })
+      .catch(function (error) {
+        console.log(error)
+      })
+  },
 }

+ 0 - 14
src/api/scan/newRequest.js

@@ -1,14 +0,0 @@
-import {baseUrl} from "./config";
-import http from "./httpUtil";
-
-//头部信息查询(查询所有设备类型-所有部件类型-所有系统类型-所有专业类型)
-export function queryPhysicsAllType(param, success) {
-  let url = `${baseUrl}/datacenter/dict/category`;
-  http.postJson(url, param, success)
-}
-
-//查询项目下类型的信息点
-export function getDataDictionary(param, success) {
-  let url = `${baseUrl}/datacenter/dict/query`;
-  http.postJson(url, param, success)
-}

File diff suppressed because it is too large
+ 361 - 269
src/api/scan/request.js


+ 50 - 0
src/api/synclog/index.js

@@ -0,0 +1,50 @@
+import { baseUrl, datasyn } from "@/api/scan/config";
+import httputils from "@/api/scan/httpUtil";
+
+/**
+ * 查询项目id对应得集团id
+ * @param { 接口参数 } param
+ */
+ export function queryGroupCode(param, success, error) {
+	return httputils.getJson(`${baseUrl}${datasyn}/record/query/project`, param, success, error)
+}
+
+/**
+ * 查询项目下得日志
+ * @param { 接口参数 } param
+ */
+export function queryTableList(param, success, error) {
+    return httputils.postJson(`${baseUrl}${datasyn}/record/query`, param, success, error)
+}
+
+/**
+ * 查询对象类型
+ * @param { 接口参数 } param
+ */
+export function queryobjType(param, success, error) {
+    return httputils.getJson(`${baseUrl}${datasyn}/record/query/type`, param, success, error)
+}
+
+/**
+ * 查询中台是否在线
+ * @param { 接口参数 } param
+ */
+export function queryIsOnline(param, success, error) {
+    return httputils.getJson(`${baseUrl}${datasyn}/record/query/online`, param, success, error)
+}
+
+/**
+ * 重新同步消息
+ * @param { 接口参数 } param
+ */
+export function queryRecordSyn(param, success, error) {
+    return httputils.postJson(`${baseUrl}${datasyn}/record/syn/data`, param, success, error)
+}
+
+/**
+ * 更新日志信息
+ * @param { 接口参数 } param
+ */
+export function queryRecordUpdata(param, success, error) {
+    return httputils.postJson(`${baseUrl}${datasyn}/record/update`, param, success, error)
+}

+ 0 - 14
src/api/topo/index.js

@@ -1,14 +0,0 @@
-import httputils from '@/api/scan/httpUtil'
-const baseUrl = '/api';
-
-// 创建拓扑图
-export function topoCreate(param, success) {
-  let url = `${baseUrl}/datacenter/topo/create`;
-  httputils.postJson(url, param, success)
-}
-
-// 查询拓扑图
-export function topoQuery(param, success) {
-  let url = `${baseUrl}/datacenter/topo/query?type=${param.type}`;
-  httputils.postJson(url, param.data||{}, success)
-}

+ 0 - 44
src/assets/graphy/SGraphy/SCanvas.js

@@ -1,44 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-
-/**
- * Canvas功能扩展
- *
- * @author  Andy
- */
-Object.assign(CanvasRenderingContext2D.prototype, {
-  /**
-   * 绘制线段
-   *
-   * @param   x0    起点x坐标
-   * @param   y0    起点y坐标
-   * @param   x1    终点x坐标
-   * @param   y1    终点y坐标
-   */
-  drawLine (x0, y0, x1, y1) {
-    this.beginPath()
-    this.moveTo(x0, y0)
-    this.lineTo(x1, y1)
-    this.stroke()
-  } // Function drawLine()
-}) // Class CanvasRenderingContext2D

+ 0 - 30
src/assets/graphy/SGraphy/SGraphyEnums.js

@@ -1,30 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-
-const SGraphyItemFlag = {
-  ItemIsMovable: 1,
-  ItemIsSelectable: 2
-}
-
-if (Object.freeze)
-  Object.freeze(SGraphyItemFlag)

+ 0 - 396
src/assets/graphy/SGraphy/SGraphyItem.js

@@ -1,396 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-import SPoint from './types/SPoint'
-import SRect from './types/SRect'
-import SMouseEvent from './SMouseEvent'
-
-const sortItemZOrder = Symbol('sortItemZOrder')
-const toChildMouseEvent = Symbol('toChildMouseEvent')
-const grabItem = Symbol('grabItem')
-const releaseItem = Symbol('releaseItem')
-
-/**
- * SGraphyItem
- *
- * @author  Andy
- */
-export default class SGraphyItem {
-    /**
-     * 构造函数
-     */
-    constructor(parent) {
-            this.name = 'item'
-            this._scene = null
-            this._parent = parent
-            this.children = []
-
-            /** Z轴顺序 */
-            this.zOrder = 0
-                /** item位置 */
-            this._pos = new SPoint(0, 0)
-                /** 缩放比例 */
-            this._scale = new SPoint(1, 1)
-                /** 是否可见 */
-            this._isVisible = true
-
-            /** 鼠标按下时位置 */
-            this._mouseDownPos = new SPoint(4, 21)
-            this._isMove = false
-            this.canMove = false
-        } // Function constructor()
-
-    // ===================================================================================================================
-    // 属性
-    /** parent属性存值函数 */
-    get parent() {
-        return this._parent
-    }
-    set parent(value) {
-            if (this._parent === value) {
-                return
-            }
-            if (this._parent != null) { // 如果原parent不为空
-                // 将节点从原parent节点中摘除
-                let i = this._parent.children.indexOf(this)
-                this._parent.children.splice(i, 1)
-            }
-            this._parent = value
-
-            if (this._parent != null) { // 如果新parent不为空
-                // 将节点加入到新parent节点中
-                this._parent.children.push(this)
-                this._parent.children.sort(this[sortItemZOrder])
-            }
-            this._parent = value
-        } // Function set Parent()
-
-    /** scene属性 */
-    get scene() {
-        if (this._parent != null) {
-            return this._parent.scene
-        } else {
-            return this._scene
-        }
-    }
-
-    /** pos属性 */
-    get pos() {
-        return this._pos
-    }
-    set pos(value) {
-        this._pos = value
-    }
-
-    /** scale属性 */
-    get scale() {
-        return this._scale
-    }
-    set scale(value) {
-        this._scale = value
-    }
-
-    /** visible属性 */
-    get visible() {
-        return this._isVisible
-    }
-    set visible(value) {
-        this._isVisible = value
-    }
-
-    // ===================================================================================================================
-    // 函数
-    /**
-     * Item对象边界区域
-     *
-     * @return  SRect
-     */
-    boundingRect() {
-            return new SRect(0, 0, 10, 10)
-        } // Function boundingRect()
-
-    /**
-     * Item绘制操作
-     *
-     * @param   canvas        画布对象
-     * @param   rect          绘制区域
-     */
-    onDraw(canvas, rect) {
-            for (let item of this.children) {
-                // 保存画布状态
-                canvas.save()
-                    // item位移到指定位置绘制
-                canvas.translate(item.pos.x, item.pos.y)
-                    // 设置绘制区域
-                    // canvas.clip(item.boundingRect())
-                    // 绘制item
-                item.onDraw(canvas, rect)
-                    // 恢复画布状态
-                canvas.restore()
-            }
-        } // Function onDraw()
-
-    /**
-     * 更新Item
-     */
-    update() {
-            // TODO: PLX
-            // scene?.update()
-        } // Function update()
-
-    /**
-     * 移动item到指定位置
-     *
-     * @param   x           新位置的x坐标
-     * @param   y           新位置的y坐标
-     */
-    moveTo(x, y) {
-            this.pos = new SPoint(x, y)
-        } // moveTo()
-
-    /**
-     * 判断item是否包含点x,y
-     *
-     * @param   x       横坐标(当前item)
-     * @param   y       纵坐标(当前item)
-     *
-     * @return  boolean
-     */
-    contains(x, y) {
-            return this.boundingRect().contains(x - this.pos.x, y - this.pos.y)
-        } // Function contains()
-
-    /**
-     * 获得item的路径节点列表。(该节点被加载到场景中,如果未被加载到场景中,计算会出错)
-     *
-     * @return  *[]
-     */
-    itemPath() {
-            if (this.parent != null) {
-                let list = this.parent.itemPath()
-                list.push(this)
-                return list
-            }
-
-            return [this]
-        } // Function itemPath()
-
-    /**
-     * 将场景中的xy坐标转换成item坐标。(该节点被加载到场景中,如果未被加载到场景中,计算会出错)
-     *
-     * @param   x       场景中的横坐标
-     * @param   y       场景中的纵坐标
-     *
-     * @return  在item中的坐标
-     */
-    mapFromScene(x, y) {
-            let list = this.itemPath()
-            let x0 = x
-            let y0 = y
-            for (let item of list) {
-                x0 = (x0 - item.pos.x) / item.scale.x
-                y0 = (y0 - item.pos.y) / item.scale.y
-            }
-
-            return new SPoint(x0, y0)
-        } // Function mapFromScene()
-
-    /**
-     * 将item中的xy坐标转换成场景坐标。(该节点被加载到场景中,如果未被加载到场景中,计算会出错)
-     *
-     * @param   x       item中的横坐标
-     * @param   y       item中的纵坐标
-     *
-     * @return  在场景中的坐标
-     */
-    mapToScene(x, y) {
-            if (this.parent == null) {
-                return new SPoint(x, y)
-            }
-
-            return this.parent.mapToScene(x * this.scale.x + this.pos.x, y * this.scale.y + this.pos.y)
-        } // Function mapToScene()
-
-    // ===================================================================================================================
-    // 事件
-    /**
-     * 鼠标单击事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onClick(e) {
-            for (let item of this.children) {
-                if (!item.visible) { // 如果项目不可见
-                    continue
-                }
-                let ce = this[toChildMouseEvent](item, e)
-                if (item.contains(e.x, e.y) && item.onClick(ce)) { // 如果点在子项目上且子项目处理了事件
-                    return true
-                }
-            }
-
-            return false
-        } // Function onClick()
-
-    /**
-     * 鼠标双击事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onDbClick(e) {
-            for (let item of this.children) {
-                if (!item.visible) { // 如果项目不可见
-                    continue
-                }
-                let ce = this[toChildMouseEvent](item, e)
-                if (item.contains(e.x, e.y) && item.onDbClick(ce)) { // 如果点在子项目上且子项目处理了事件
-                    return true
-                }
-            }
-
-            return false
-        } // Function onClick()
-
-    /**
-     * 鼠标按下事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onMouseDown(e) {
-            // console.log(e)
-
-            for (let item of this.children) {
-                if (!item.visible) { // 如果项目不可见
-                    continue
-                }
-                let ce = this[toChildMouseEvent](item, e)
-                if (item.contains(e.x, e.y) && item.onMouseDown(ce)) { // 如果点在子项目上且子项目处理了事件
-                    return true
-                }
-            }
-
-            if (this.canMove) {
-                this._mouseDownPos = new SPoint(e.x, e.y)
-                this._isMove = true
-                this[grabItem](this)
-                    // console.log(this.scene.grabItem)
-                return true
-            }
-            return false
-        } // Function onMouseDown()
-
-    /**
-     * 鼠标移动事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onMouseMove(e) {
-            for (let item of this.children) {
-                if (!item.visible) { // 如果项目不可见
-                    continue
-                }
-                let ce = this[toChildMouseEvent](item, e)
-                if (item.contains(e.x, e.y) && item.onMouseMove(ce)) { // 如果点在子项目上且子项目处理了事件
-                    return true
-                }
-            }
-
-            if (e.buttons & SMouseEvent.LEFT_BUTTON && this.canMove && this._isMove) {
-                this.moveTo(this.pos.x + e.x - this._mouseDownPos.x, this.pos.y + e.y - this._mouseDownPos.y)
-            }
-
-            return false
-        } // Function onMouseMove()
-
-    /**
-     * 释放鼠标事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onMouseUp(e) {
-            for (let item of this.children) {
-                if (!item.visible) { // 如果项目不可见
-                    continue
-                }
-                let ce = this[toChildMouseEvent](item, e)
-                if (item.contains(e.x, e.y) && item.onMouseUp(ce)) { // 如果点在子项目上且子项目处理了事件
-                    return true
-                }
-            }
-
-            this._isMove = false
-            this[releaseItem]()
-            return false
-        } // Function onMouseUp()
-
-    // ===================================================================================================================
-    // 私有方法
-    /**
-     * 按ZOrder排序
-     *
-     * @param   a   比较元素1
-     * @param   b   比较元素2
-     * @return {number}
-     */
-    [sortItemZOrder](a, b) {
-        return a.zOrder - b.zOrder
-    } // Function sortItemZOrder()
-
-    /**
-     * 鼠标事件转子对象鼠标事件
-     *
-     * @param   child   子对象e
-     * @param   e       事件参数
-     * @return  {}
-     */
-    [toChildMouseEvent](child, e) {
-        let ce = {...e }
-        ce.x = (e.x - child.pos.x) / child.scale.x
-        ce.y = (e.y - child.pos.y) / child.scale.y
-        return ce
-    } // Function toChildMouseEvent()
-
-    /**
-     * 锁定item
-     *
-     * @param   item    被锁定的item
-     */
-    [grabItem](item) {
-        if (this.scene != null) {
-            this.scene.grabItem = item
-        }
-    } // Function grabItem
-
-    /**
-     * 释放被锁定的item
-     */
-    [releaseItem]() {
-        if (this.scene != null) {
-            this.scene.grabItem = null
-        }
-    } // Function grabItem
-} // Class SGraphyItem

+ 0 - 201
src/assets/graphy/SGraphy/SGraphyScene.js

@@ -1,201 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-
-import SPoint from './types/SPoint'
-import SRect from './types/SRect'
-import SGraphyItem from './SGraphyItem'
-
-const toGrabItemMotionEvent = Symbol('toGrabItemMotionEvent')
-
-/**
- * SGraphy图形引擎场景类
- *
- * @author  Andy
- */
-export default class SGraphyScene {
-    /**
-     * 构造函数
-     */
-    constructor() {
-            this.view = null
-            console.log(this, 'this')
-            this.root = new SGraphyItem(null)
-            this.root._scene = this
-            this.pos = new SPoint(0, 0)
-            this.scale = new SPoint(1, 1)
-            this.grabItem = null
-        } // Function constructor()
-
-    /**
-     * 添加item对象到场景。
-     *
-     * @param   item        添加的对象
-     */
-    addItem(item) {
-            item.parent = this.root
-        } // Function addItem()
-
-    /**
-     * 从场景中移除Item。
-     *
-     * @param   item        被移除的对象
-     */
-    removeItem(item) {
-            item.parent = null
-        } // Function removeItem()
-
-    /**
-     * 绘制场景
-     *
-     * @param   canvas      画布
-     * @param   rect        更新绘制区域
-     */
-    drawScene(canvas, rect) {
-            this.root.onDraw(canvas, rect)
-        } // Function drawScene()
-
-    /**
-     * 绘制背景
-     *
-     * @param   canvas      画布
-     * @param   rect        更新绘制区域
-     */
-    drawBackground(canvas, rect) {
-            // DO NOTHING
-        } // Function drawBackground()
-
-    /**
-     * 绘制前景
-     *
-     * @param   canvas      画布
-     * @param   rect        更新绘制区域
-     */
-    drawForeground(canvas, rect) {
-            // DO NOTHING
-        } // Function drawForeground()
-
-    /**
-     * 返回场景的item边界。即所有item边界的并集。
-     *
-     * @return  SRect
-     */
-    worldRect() {
-            let rect = null
-
-            for (let item of this.root.children) { // 依次取item列中的所有item。将所有item的边界做并焦处理。
-                if (rect == null) {
-                    rect = item.boundingRect().adjusted(item.pos)
-                } else {
-                    rect.union(item.boundingRect().adjusted(item.pos))
-                }
-            }
-
-            return rect
-        } // Function worldsRect()
-
-    /**
-     * 更新
-     */
-    update() {} // Function update()
-        // ===================================================================================================================
-        // 事件
-        /**
-         * 鼠标单击事件
-         *
-         * @param   e   保存事件参数
-         * @return  boolean
-         */
-    onClick(e) {
-            if (this.grabItem != null) {
-                return this.grabItem.onClick(this[toGrabItemMotionEvent](this.grabItem, e))
-            }
-            return this.root.onClick(e)
-        } // onClick
-
-    /**
-     * 鼠标双击事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onDbClick(e) {
-            if (this.grabItem != null) {
-                return this.grabItem.onDbClick(this[toGrabItemMotionEvent](this.grabItem, e))
-            }
-            return this.root.onDbClick(e)
-        } // onClick
-
-    /**
-     * 鼠标按下事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onMouseDown(e) {
-            if (this.grabItem != null) {
-                return this.grabItem.onMouseDown(this[toGrabItemMotionEvent](this.grabItem, e))
-            }
-            return this.root.onMouseDown(e)
-        } // onMouseDown
-
-    /**
-     * 鼠标移动事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onMouseMove(e) {
-            if (this.grabItem != null) {
-                return this.grabItem.onMouseMove(this[toGrabItemMotionEvent](this.grabItem, e))
-            }
-            return this.root.onMouseMove(e)
-        } // onMouseMove
-
-    /**
-     * 释放鼠标事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onMouseUp(e) {
-            if (this.grabItem != null) {
-                return this.grabItem.onMouseUp(this[toGrabItemMotionEvent](this.grabItem, e))
-            }
-            return this.root.onMouseUp(e)
-        } // onMouseUp
-
-    /**
-     * 转换场景事件坐标到指定Item坐标事件
-     *
-     * @param   item        指定的item对象
-     * @param   e           场景事件
-     * @return  {}
-     */
-    [toGrabItemMotionEvent](item, e) {
-        let se = {...e }
-        let p = item.mapFromScene(e.x, e.y)
-        se.x = p.x
-        se.y = p.y
-        return se
-    } // Function toGrabItemMotionEvent()
-} // Class SGraphyScene

+ 0 - 280
src/assets/graphy/SGraphy/SGraphyView.js

@@ -1,280 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-import './SCanvas'
-import SPoint from './types/SPoint'
-import SMouseEvent from './SMouseEvent'
-
-const bindEvent = Symbol('bindEvent')
-const toSceneMotionEvent = Symbol('toSceneMotionEvent')
-    /**
-     * Graphy图形引擎视图类
-     *
-     * @author  Andy
-     */
-export default class SGraphyView {
-    /**
-     * 构造函数
-     *
-     * @param   id    Canvas对象ID
-     */
-    constructor(id, scene) {
-            this.canvasView = document.getElementById(id)
-            this.canvas = this.canvasView.getContext('2d')
-            this[bindEvent](this.canvasView)
-            this.scene = scene
-            this.pos = new SPoint(10, 0)
-            this.scale = 1
-            this.minScale = 0.004
-            this.maxScale = 0.5
-            this._midKeyX = 0
-            this._midKeyY = 0
-            this.wheelZoom = 1.05
-
-            window.requestAnimationFrame(this.onDraw.bind(this))
-        } // Function constructor()
-
-    /**
-     * 绑定canvas事件
-     *
-     * @param   canvas      canvas对象
-     * @private
-     */
-    [bindEvent](canvasView) {
-        canvasView.onclick = this.onClick.bind(this)
-        canvasView.ondblclick = this.onDbClick.bind(this)
-        canvasView.onmousedown = this.onMouseDown.bind(this)
-        canvasView.onmousemove = this.onMouseMove.bind(this)
-        canvasView.onmouseup = this.onMouseUp.bind(this)
-        canvasView.onmousewheel = this.onMouseWheel.bind(this)
-        canvasView.onresize = this.onResize.bind(this)
-    } // Function [bindEvent]()
-
-    /**
-     * 获取canvas的宽度  
-     */
-
-    get width() {
-        return this.canvasView.width
-    }
-
-    get height() {
-        return this.canvasView.height
-    }
-
-    /**
-     * 将场景中的xy坐标转换成视图坐标。
-     *
-     * @param   x       场景中的横坐标
-     * @param   y       场景中的纵坐标
-     *
-     * @return  SPoint
-     */
-    mapFromScene(x, y = null) {
-            if (typeof(x) === 'object') { // 如果传入的是SPoint对象
-                return new SPoint(x.x * this.scale + this.pos.x, x.y * this.scale + this.pos.y)
-            }
-
-            return new SPoint(x * this.scale + this.pos.x, y * this.scale + this.pos.y)
-        } // Function mapFromScene()
-
-    /**
-     * 将item中的xy坐标转换成场景坐标。
-     *
-     * @param   x       item中的横坐标
-     * @param   y       item中的纵坐标
-     * @return  SPoint
-     */
-    mapToScene(x, y = null) {
-            if (typeof(x) === 'object') { // 如果传入的是SPoint对象
-                return new SPoint((x.x - this.pos.x) / this.scale, (x.y - this.pos.y) / this.scale)
-            }
-
-            return new SPoint((x - this.pos.x) / this.scale, (y - this.pos.y) / this.scale)
-        } // Function mapToScene()
-
-    /**
-     * 缩放视图时计算视图的位置与缩放比例
-     *
-     * @param   zoom        缩放比例
-     * @param   x0          缩放计算的中心点X坐标
-     * @param   y0          缩放计算的中心点Y坐标
-     */
-    scaleByPoint(zoom, x0, y0) {
-            let z = zoom
-                /**
-                 * 缩放比例在最小比例和最大比例范围内
-                 */
-            if (this.scale * zoom >= this.maxScale) { // 大于最大缩放比例
-                z = this.maxScale / this.scale
-                this.scale = this.maxScale
-            } else if (this.scale * zoom <= this.minScale) { // 小于最小绽放比例
-                z = this.minScale / this.scale
-                this.scale = this.minScale
-            } else {
-                this.scale *= zoom
-            }
-
-            this.pos.x = x0 - (x0 - this.pos.x) * z
-            this.pos.y = y0 - (y0 - this.pos.y) * z
-
-            // EventBus.getDefault().post(SGraphyViewZoomEvent(this, scale))
-            // EventBus.getDefault().post(SGraphyViewMoveEvent(this, pos.x, pos.y))
-            // return
-        } // Function scaleByPoint()
-        // ===================================================================================================================
-        // 事件
-    onDraw() {
-            this.canvas.save()
-            this.canvas.clearRect(0, 0, this.canvasView.width, this.canvasView.height)
-            this.canvas.restore()
-
-            if (this.scene != null) {
-                // 绘制背景
-                this.canvas.save()
-                this.scene.drawBackground(this.canvas)
-                this.canvas.restore()
-
-                // 绘制场景
-                this.canvas.save()
-                this.canvas.translate(this.pos.x, this.pos.y)
-                this.canvas.scale(this.scale, this.scale)
-                this.scene.drawScene(this.canvas)
-                this.canvas.restore()
-
-                // 绘制前景
-                this.canvas.save()
-                this.scene.drawForeground(this.canvas)
-                this.canvas.restore()
-            }
-
-            window.requestAnimationFrame(this.onDraw.bind(this))
-        } // Function onDraw()
-
-    /**
-     * 鼠标单击事件
-     *
-     * @param   e   保存事件参数
-     */
-    onClick(e) {
-            if (this.scene != null) {
-                let se = this[toSceneMotionEvent](e)
-                this.scene.onClick(se)
-            }
-        } // Function onClick()
-
-    /**
-     * 鼠标双击事件
-     *
-     * @param   e   保存事件参数
-     */
-    onDbClick(e) {
-            if (this.scene != null) {
-                let ce = this[toSceneMotionEvent](e)
-                this.scene.onDbClick(ce)
-            }
-        } // Function onDbClick()
-
-    /**
-     * 鼠标按下事件
-     *
-     * @param   e   保存事件参数
-     */
-    onMouseDown(e) {
-            let se = new SMouseEvent(e)
-            if (se.buttons & SMouseEvent.MIDDLE_BUTTON) { // 如果按下中键
-                this._midKeyX = e.x
-                this._midKeyY = e.y
-            }
-
-            if (this.scene != null) {
-                let ce = this[toSceneMotionEvent](e)
-                this.scene.onMouseDown(ce)
-            }
-        } // Function onMouseDown()
-
-    /**
-     * 鼠标移动事件
-     *
-     * @param   e   保存事件参数
-     */
-    onMouseMove(e) {
-            let se = new SMouseEvent(e)
-            if (se.buttons & SMouseEvent.MIDDLE_BUTTON) { // 如果按下中键,则移动视图
-                this.pos.x += e.x - this._midKeyX
-                this.pos.y += e.y - this._midKeyY
-                this._midKeyX = e.x
-                this._midKeyY = e.y
-                return
-            }
-            if (this.scene != null) {
-                let ce = this[toSceneMotionEvent](e)
-                this.scene.onMouseMove(ce)
-            }
-        } // Function onMouseMove()
-
-    /**
-     * 释放鼠标事件
-     *
-     * @param   e   保存事件参数
-     */
-    onMouseUp(e) {
-            if (this.scene != null) {
-                let ce = this[toSceneMotionEvent](e)
-                this.scene.onMouseUp(ce)
-            }
-        } // Function onMouseUp()
-
-    /**
-     * 鼠标滚轮事件
-     *
-     * @param   e   保存事件参数
-     */
-    onMouseWheel(e) {
-            let se = new SMouseEvent(e)
-            if (e.wheelDelta < 0) {
-                this.scaleByPoint(1 / this.wheelZoom, se.x, se.y)
-            } else {
-                this.scaleByPoint(this.wheelZoom, se.x, se.y)
-            }
-        } // Function onMouseWheel()
-
-    /**
-     * View大小发生变化事件
-     *
-     * @param   e   保存事件参数
-     */
-    onResize(e) {} // Function onResize()
-
-    /**
-     * MotionEvent转场景对象MotionEvent
-     *
-     * @param   e       MotionEvent
-     * @return  子对象MotionEvent
-     */
-    [toSceneMotionEvent](e) {
-        let se = new SMouseEvent(e)
-        se.x = (se.x - this.pos.x) / this.scale
-        se.y = (se.y - this.pos.y) / this.scale
-        return se
-    } // Function toSceneMotionEvent()
-} // Class SGraphyView

+ 0 - 53
src/assets/graphy/SGraphy/SMouseEvent.js

@@ -1,53 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-
-/**
- * 鼠标事件
- *
- * @author  Andy
- */
-export default class SMouseEvent {
-  /**
-   * 构造函数
-   *
-   * @param   e       系统鼠标事件
-   */
-  constructor(e) {
-    let bbox          = e.srcElement.getBoundingClientRect()
-    this.type         = e.type
-    this.x            = e.clientX - bbox.left
-    this.y            = e.clientY - bbox.top
-    this.screenX      = e.screenX
-    this.screenY      = e.screenY
-    this.clientX      = e.clientX
-    this.clientY      = e.clientY
-    this.altKey       = e.altKey
-    this.ctrlKey      = e.ctrlKey
-    this.buttons      = e.buttons
-    this.wheelDelta   = e.wheelDelta
-  } // Function constructor()
-} // Class MouseEvent
-
-SMouseEvent.LEFT_BUTTON   = 0x01
-SMouseEvent.RIGHT_BUTTON  = 0x02
-SMouseEvent.MIDDLE_BUTTON = 0x04

+ 0 - 0
src/assets/graphy/SGraphy/dataType.js


+ 0 - 78
src/assets/graphy/SGraphy/dataType.ts

@@ -1,78 +0,0 @@
-import { SPen, SPainter, SColor } from "@sybotan-web/draw";
-import SGraphyPolygonItem from './newItems/SGraphyPolygonItem'
-/**
- * 接口类型
- * @param
- * 传入绘制地图参数的数据类型
- */
-//path 和paths 的接口类型
-interface dataItemPath {
-    X: number,
-    Y: number,
-    Z: number
-}
-// 一个空间item中的数据类型 
-//包括ColumnList EquipmentList,VirtualWallList,WallList
-interface dataItem {
-    Id: string,
-    Path?: dataItemPath[],
-    PointList: dataItemPath[],
-    BimId?: string,
-    LocationPoint?: dataItemPath,
-    Name?: string,
-    Paths?: dataItemPath[][],
-}
-// 一个空间item中的接口类型 
-// 包括SpaceList
-interface dataSpaceItem {
-    Id: string,
-    // PointList: dataItemPath[],
-    BimId: string,
-    LocationPoint: dataItemPath,
-    Name: string,
-    Paths: dataItemPath[][],
-    id: string,
-    type: number,                  //item类型
-    businessId?: string | null,  //绑定的业务id
-    isBusiness?: number,        //业务类型
-    fillColor?: SColor,         //填充颜色
-    color?: SColor,             //边框颜色
-    businessName?: string | null,  //业务名称
-    width?: number
-}
-// 传入的data 的接口类型 
-interface dataInterface {
-    ColumnList: dataItem[],  //柱体
-    EquipmentList: dataItem[], //设备
-    SpaceList: dataSpaceItem[], //空间
-    VirtualWallList: dataItem[], //虚拟墙
-    WallList: dataItem[],    //墙
-    images: ImgItemInterface[],  //图片
-}
-//获取绑定空间的接口
-interface businessDataInterface {
-    id: string,
-    name: string,
-    children: string[],
-    isAdjacent: boolean,
-    isAbut: boolean
-}
-// 多边形传入的参数接口
-interface PolygonItemInterface {
-    parent: SGraphyPolygonItem | null //父类
-    space: dataSpaceItem,       //传入的item 参数
-    businessType?: string
-}
-// 图片传入的参数接口
-interface ImgItemInterface {
-    parent: SGraphyPolygonItem | null //父类
-    X: number;
-    Y: number;
-    width: number;
-    height: number;
-    img: string;
-    id?: string;
-    name: string;
-}
-
-export { dataItemPath, dataItem, dataSpaceItem, dataInterface, businessDataInterface, PolygonItemInterface, ImgItemInterface }

+ 0 - 70
src/assets/graphy/SGraphy/items/SGraphyCircleItem.js

@@ -1,70 +0,0 @@
-/**
- * 线条
- */
-import SGraphyItem from '../SGraphyItem'
-import SRect from '../types/SRect';
-
-export default class SGraphyCircleItem extends SGraphyItem {
-    /**
-     * 构造函数
-     * 
-     * @param X  圆中心点X
-     * @param Y  圆中心点Y
-     * @param Radius   圆的半径
-     * 
-     * @param color  线的颜色
-     * @param isVirtual    是否为虚线
-     */
-    constructor(X, Y, color, Radius, isSolid, name, parent = null) {
-        super(parent)
-        this.X = X
-        this.Y = Y
-        this.color = color
-        this.Radius = Radius
-        this.isSolid = isSolid
-        this.minX = this.X - this.Radius
-        this.minY = this.Y - this.Radius
-        this.maxX = this.X + this.Radius
-        this.maxY = this.Y + this.Radius
-        this.sAngle = null || 0
-        this.eAngle = null || 2 * Math.PI
-        this.name = name
-        this.type = 6
-        this.lineWidth = null
-    }
-
-    /**
-     * Item对象边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect() {
-        return new SRect(this.minX, this.minY, this.maxX - this.minX, this.maxY - this.minY)
-    }
-
-    /**
-     * 绘制线条
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-
-    onDraw(canvas, rect) {
-        canvas.lineWidth = this.lineWidth || 240
-        canvas.strokeStyle = this.color || '#000'
-        canvas.fillStyle = this.color || '#000'
-        canvas.beginPath();
-        canvas.arc(this.X, this.Y, this.Radius, this.sAngle, this.eAngle);
-        if (!!this.isSolid) {
-            canvas.fillStyle = this.color; //填充颜色,默认是黑色
-            canvas.fill(); //画实心圆
-        }
-        canvas.stroke()
-        if (!!this.name) {
-            canvas.font = "oblique small-caps bold " + this.lineWidth * 10 + "px Arial";
-            // canvas.font = "oblique small-caps bold " + 10 + "px Arial";
-            canvas.fillStyle = 'green'
-            canvas.fillText(this.name, this.X, this.Y);
-        }
-    }
-}

+ 0 - 201
src/assets/graphy/SGraphy/items/SGraphyClockItem.js

@@ -1,201 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-
-import SGraphyItem from '../SGraphyItem'
-import SRect from '../types/SRect'
-
-/** 定义符号,用于定义私有成员变晴儿 */
-const drawScale     = Symbol('drawScale')
-const drawScaleText = Symbol('drawScaleText')
-const drawHour      = Symbol('drawHour')
-const drawMinute    = Symbol('drawMinute')
-const drawSecond    = Symbol('drawSecond')
-
-/**
- * SGraphy引擎时钟Item
- *
- * @author  Andy
- */
-export default class SGraphyClockItem extends SGraphyItem {
-  /**
-   * 构造函数
-   *
-   * @param   parent    指向父对象
-   */
-  constructor(width, height, parent = null) {
-    super(parent)
-    this.name = 'ClockItem'
-    this.width = width
-    this.height = height
-    /** 是否显示刻度 */
-    this.isShowScale = true
-    /** 刻度颜色 */
-    this.scaleColor = '#000'
-    /** 刻度文本颜色 */
-    this.textColor = '#000'
-    /** 时针颜色 */
-    this.hourColor = '#000'
-    /** 分针颜色 */
-    this.minuteColor = '#000'
-    /** 秒针颜色 */
-    this.secondColor = '#F00'
-    /** 是否显示钞针 */
-    this.isShowSecond = true
-    /** 是否平滑移动秒针 */
-    this.isSmooth = true
-    /** 边缘宽度 */
-    this.padding = 100.0
-  } // Function constructor()
-
-  /**
-   * Item对象边界区域
-   *
-   * @return  SRect
-   */
-  boundingRect() {
-    return new SRect(0, 0, this.width / 2, this.height / 2)
-  } // Function boundingRect()
-
-  /**
-   * 时钟半径,只读属性
-   *
-   * @return  number
-   */
-  get radius() {
-    return Math.min(this.width, this.height) / 2.0
-  } // getter radius()
-
-  /**
-   * 绘制时钟
-   *
-   * @param   canvas      画布
-   * @param   rect        绘制区域
-   */
-  onDraw(canvas, rect) {
-    canvas.translate(this.width / 2, this.height / 2)
-    canvas.arc(0, 0, this.radius, 0, 2 * Math.PI)
-    let t = new Date()
-
-    this[drawScale](canvas)
-    this[drawHour](canvas, t.getHours(), t.getMinutes(), t.getSeconds())
-    this[drawMinute](canvas, t.getMinutes(), t.getSeconds())
-    this[drawSecond](canvas, t.getSeconds() + t.getMilliseconds() / 1000.0)
-  } // Function onDraw()
-
-  /**
-   * 绘制刻度
-   *
-   * @param   canvas      画布
-   */
-  [drawScale](canvas) {
-    let scaleLength = Math.max(this.radius / 10.0, 2.0)
-    let scaleLength1 = scaleLength * 1.2
-    let strokeWidth = Math.max(this.radius / 100.0, 2.0)
-    let strokeWidth1 = strokeWidth * 2.0
-
-    canvas.save()
-    canvas.strokeStyle = this.scaleColor
-
-    for (let i = 1; i <= 12; i++) {          // 12小时刻度
-      canvas.lineWidth = strokeWidth1
-      canvas.drawLine(0, -this.radius, 0, -this.radius + scaleLength1)
-
-      if (this.radius >= 40) {              // 如果半度大于40显示分钟刻度
-        canvas.rotate(6 * Math.PI / 180)
-        for (let j = 1; j <= 4; j++) {       // 分钟刻度
-          canvas.lineWidth = strokeWidth
-          canvas.drawLine(0, -this.radius, 0, -this.radius + scaleLength)
-          canvas.rotate(6 * Math.PI / 180)
-        }
-      } else {
-        canvas.rotate(30 * Math.PI / 180)
-      }
-    }
-
-    canvas.restore()
-  } // Function drawScale()
-
-  /**
-   * 绘制刻度数字
-   *
-   * @param   canvas      画布
-   */
-  [drawScaleText](canvas) {
-
-  } // Function drawScaleText()
-
-  /**
-   * 绘制时针
-   *
-   * @param   canvas      画布
-   * @param   hour        时
-   * @param   minute      分
-   * @param   second      秒
-   */
-  [drawHour](canvas, hour, minute, second) {
-    canvas.save()
-    canvas.lineCap = 'round'
-    canvas.lineWidth = Math.max(this.radius / 30.0, 4.0)
-    canvas.strokeStyle = this.hourColor
-    canvas.rotate((hour * 30.0 + minute * 30.0 / 60 + second * 30.0 / 60 / 60) * Math.PI / 180)
-    canvas.drawLine(0, this.radius / 10.0, 0, -this.radius / 2.0)
-    canvas.restore()
-  } // Function drawHour()
-
-  /**
-   * 绘制分针
-   *
-   * @param   canvas      画布
-   * @param   minute      分
-   * @param   second      秒
-   */
-  [drawMinute](canvas, minute, second) {
-    canvas.save()
-    canvas.lineCap = 'round'
-    canvas.lineWidth = Math.max(this.radius / 40.0, 4.0)
-    canvas.strokeStyle = this.minuteColor
-    canvas.rotate((minute * 6 + second * 6 / 60.0) * Math.PI / 180.0)
-    canvas.drawLine(0, this.radius / 10.0, 0, -this.radius * 2.0 / 3.0)
-    canvas.restore()
-  } // Function drawMinute()
-
-  /**
-   * 绘制秒针
-   *
-   * @param   canvas      画布
-   * @param   second      秒
-   */
-  [drawSecond](canvas, second) {
-    canvas.save()
-    canvas.lineCap = 'round'
-    canvas.lineWidth = Math.max(this.radius / 100.0, 3.0)
-    canvas.strokeStyle = this.secondColor
-    canvas.rotate(second * 6 * Math.PI / 180)
-    canvas.drawLine(0, this.radius / 5.0, 0, -this.radius + this.radius / 10.0)
-    // canvas.drawCircle(0, 0, this.radius / 30.0)
-    // canvas.drawCircle(0, -this.radius + this.radius / 5.0, this.radius / 60.0)
-    // canvas.strokeStyle = Color.YELLOW
-    // canvas.drawCircle(0, 0, this.radius / 100.0)
-    canvas.restore()
-  } // Function drawSecond()
-} // Class SGraphyClockItem

+ 0 - 59
src/assets/graphy/SGraphy/items/SGraphyImageItem.js

@@ -1,59 +0,0 @@
-/**
- * 图片
- * 
- * 
- */
-import SGraphyItem from '../SGraphyItem'
-import SRect from '../types/SRect'
-export default class SGraphyImageItem extends SGraphyItem {
-    /**
-     * 构造函数
-     * 
-     * @param width  图片宽度
-     * @param height  图片高度
-     * @param url    图片url
-     * @param id     point的Id
-     * @param X      图片向x轴的偏移量
-     * @param Y      图片向y轴的偏移量
-     * @param downUrl 图片按下时的url
-     * @param parent  指向父元素
-     */
-    constructor(width, height, url, id, X, Y, downUrl, parent = null) {
-            super(parent)
-            this.width = width
-            this.height = height
-            this.url = url
-            this.id = id
-            this.X = X
-            this.Y = Y
-            this.downUrl = downUrl
-            this.imgFalg = false
-            this.img = new Image()
-            this.img.src = this.url
-            this.img.style.width = this.width
-            this.img.style.height = this.height
-            this.canMove = true
-            this.type = 1
-        } //constructor
-
-    /**
-     * Item对象边界区域
-     *
-     * @return  SRect
-     */
-    boundingRect() {
-            return new SRect(0, 0, this.width * 100, this.height * 100)
-        } // Function boundingRect()
-
-    /**
-     * 绘制图片
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-    onDraw(canvas, rect) {
-        // canvas.moveTo(this.X, this.Y)
-        // canvas.drawImage(this.img, 0, 0, this.width, this.height, this.X, this.Y, this.width * 100, this.height * 100)
-        canvas.drawImage(this.img, 0, 0, this.width, this.height, 0, 0, this.width * 100, this.height * 100)
-    }
-}

+ 0 - 66
src/assets/graphy/SGraphy/items/SGraphyLineItem.js

@@ -1,66 +0,0 @@
-/**
- * 线条
- */
-import SGraphyItem from '../SGraphyItem'
-import SRect from '../types/SRect';
-
-export default class SGraphyLineItem extends SGraphyItem {
-    /**
-     * 构造函数
-     * 
-     * @param startX  线的起始x坐标
-     * @param startY  线的起始y坐标
-     * @param endX    线的终止x坐标
-     * @param endY    线的终止y坐标
-     * @param width   线的宽度
-     * 
-     * @param color  线的颜色
-     * @param isVirtual    是否为虚线
-     */
-    constructor(startX, startY, endX, endY, color, width, isVirtual, parent = null) {
-        super(parent)
-        this.startX = startX
-        this.startY = startY
-        this.endX = endX
-        this.endY = endY
-        this.color = color
-        this.width = width
-        this.isVirtual = isVirtual
-        this.minX = Math.min(this.startX, this.endX)
-        this.minY = Math.min(this.startY, this.endY)
-        this.maxX = Math.max(this.startX, this.endX)
-        this.maxY = Math.max(this.startY, this.endY)
-        this.name = null
-        this.type = 2
-        this.lineWidth = null
-    }
-
-    /**
-     * Item对象边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect() {
-        return new SRect(this.minX, this.minY, this.maxX - this.minX, this.maxY - this.minY)
-    }
-
-    /**
-     * 绘制线条
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-
-    onDraw(canvas, rect) {
-        canvas.lineWidth = this.lineWidth || this.width || 240
-        canvas.strokeStyle = this.color || '#000'
-        if (this.isVirtual) {
-            canvas.setLineDash([100, 80])
-            canvas.strokeStyle = 'green'
-        }
-        canvas.beginPath();
-        canvas.moveTo(this.startX, this.startY)
-        canvas.lineTo(this.endX, this.endY)
-        canvas.stroke()
-    }
-}

+ 0 - 76
src/assets/graphy/SGraphy/items/SGraphyPillarItems.js

@@ -1,76 +0,0 @@
-/**
- * 不规则多边形,元空间
- */
-import SGraphyItem from '../SGraphyItem'
-import SRect from '../types/SRect';
-
-function getItem(arr, name) {
-    if (arr && arr.length) {
-        return arr.map(item => {
-            return item[name]
-        })
-    } else {
-        return [0]
-    }
-}
-
-
-export default class SGraphyPolygonItem extends SGraphyItem {
-    /**
-     * 
-     * 构造函数
-     * 
-     * @param jsonArr  空间线条数组
-     * @param lineWidth    空间线条的宽度
-     * @param color    空间线条的颜色
-     * @param fillColor  空间的填充颜色
-     * 
-     */
-    constructor(jsonArr, lineWidth, color, fillColor, parent = null) {
-            super(parent)
-            this.jsonArr = jsonArr
-            this.lineWidth = lineWidth
-            this.color = color
-            this.fillColor = fillColor
-            let xArr = getItem(this.jsonArr, 'X')
-            let yArr = getItem(this.jsonArr, 'Y')
-            this.minX = Math.min.apply(null, xArr) || 0
-            this.minY = Math.min.apply(null, yArr) || 0
-            this.width = Math.max.apply(null, xArr) - this.minX || 0
-            this.height = Math.max.apply(null, yArr) - this.minY || 0
-            this.type = 5
-        } //constructor
-
-    /**
-     * Item的边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect() {
-        return new SRect(this.minX, this.minY, this.width, this.height)
-    }
-
-    /**
-     * 绘制不规则多边形
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-    onDraw(canvas, rect) {
-        if (this.jsonArr && this.jsonArr.length) {
-            canvas.beginPath();
-            canvas.lineWidth = 240
-            canvas.lineCap = 'butt';
-            canvas.strokeStyle = this.color || '#000'
-            canvas.fillStyle = this.fillColor || '#fff'
-            canvas.moveTo(this.jsonArr[0].X, this.jsonArr[0].Y)
-            for (let i = 1; i < this.jsonArr.length; i++) {
-                canvas.lineTo(this.jsonArr[i].X, this.jsonArr[i].Y)
-            }
-            canvas.lineTo(this.jsonArr[0].X, this.jsonArr[0].Y)
-            canvas.closePath()
-            canvas.fill()
-            canvas.stroke()
-        }
-    }
-}

+ 0 - 257
src/assets/graphy/SGraphy/items/SGraphyPolygonItem.js

@@ -1,257 +0,0 @@
-/**
- * 不规则多边形,元空间
- */
-import SGraphyItem from '../SGraphyItem'
-import SRect from '../types/SRect';
-
-function getItem(arr, name) {
-    if (arr && arr.length) {
-        return arr.map(item => {
-            return item[name]
-        })
-    } else {
-        return [0]
-    }
-}
-
-function changeArr(arr) {
-    if (arr && arr.length) {
-        return arr.map(item => {
-            return [
-                item.X, item.Y
-            ]
-        })
-    } else {
-        return [0]
-    }
-}
-/**
- * 求不规则多边形重点
- * @param {points} 数组,多个点位坐标
- *  
- * @return {x, y} 重点点位坐标
- */
-// function getCenterOfGravityPoint(points) {
-//     let area = 0,
-//         gx = 0,
-//         gy = 0,
-//         i = 1,
-//         px1, px2, py1, py2, temp, length = points.length;
-//     for (i; i <= length; i++) {
-//         px1 = points[(i % length)].X;
-//         px2 = points[(i - 1)].X;
-//         py1 = points[(i % length)].Y;
-//         py2 = points[(i - 1)].Y;
-//         temp = (px1 * py2 - py1 * px2) / 2
-//         area += temp;
-//         gx += temp * (px1 + px2) / 3
-//         gy += temp * (py1 + py2) / 3
-//     }
-
-//     gx = gx / area
-//     gy = gy / area
-
-//     return {
-//         x: gx,
-//         y: gy
-//     }
-// }
-
-
-export default class SGraphyPolygonItem extends SGraphyItem {
-    /**
-     * 
-     * 构造函数
-     * 
-     * @param jsonArr  空间线条数组
-     * @param lineWidth    空间线条的宽度
-     * @param color    空间线条的颜色
-     * @param fillColor  空间的填充颜色
-     * 
-     */
-    constructor(jsonArr, lineWidth, color, fillColor, id, centerOfGravityPoint, name, paths, faceColor, businessColor, isBusiness, parent = null) {
-            super(parent)
-            this.jsonArr = jsonArr
-            this.lineWidth = lineWidth
-            this.color = color
-            this.id = id
-            this.name = name //实际渲染名字
-            this.fillColor = fillColor
-            let xArr = getItem(this.jsonArr, 'X')
-            let yArr = getItem(this.jsonArr, 'Y')
-            this.minX = Math.min.apply(null, xArr) || 0
-            this.maxX = Math.max.apply(null, xArr) || 0
-            this.maxY = Math.max.apply(null, yArr) || 0
-            this.minY = Math.min.apply(null, yArr) || 0
-            this.width = this.maxX - this.minX || 0
-            this.height = this.maxY - this.minY || 0
-            this.type = 3
-            this.businessName = null
-            this.faceColor = faceColor || '#cacaca' //颜色
-            this.businessId = null //业务空间id
-            this.isBusiness = isBusiness || 1 //状态
-            this.businessColor = businessColor || 'rgba(68,161,140,.4)' //业务空间颜色
-            this.businessFaceColor = "#333"
-            this.containsArr = changeArr(this.jsonArr)
-            this.paths = null
-            if (paths && paths.length > 1) {
-                this.paths = paths.map(item => {
-                    if (item && item.length) {
-                        return changeArr(item)
-                    } else {
-                        return undefined
-                    }
-                }).filter(d => d)
-            }
-            this.centerOfGravityPoint = centerOfGravityPoint
-        } //constructor
-
-    /**
-     * Item的边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect() {
-        return new SRect(this.minX, this.minY, this.width, this.height)
-    }
-
-
-    /**
-     * 判断item是否包含点x,y
-     *
-     * @param   x       横坐标(当前item)
-     * @param   y       纵坐标(当前item)
-     *
-     * @return  boolean
-     */
-    contains(x, y) {
-        let falg = false,
-            isFullIn = false //是否在镂空图形内
-        if (this.paths instanceof Array) {
-            for (let i = 1; i < this.paths.length; i++) {
-                if (this.isIn(x, y, this.paths[i])) {
-                    //位置信息在镂空图形内
-                    isFullIn = true
-                    break
-                }
-            }
-            // //如果鼠标在大图形内切在镂空图形中返回false
-            if (this.isIn(x, y, this.containsArr) && isFullIn) {
-                falg = false
-            } else if (this.isIn(x, y, this.containsArr) && !isFullIn) {
-                falg = true
-            } else {
-                falg = this.isIn(x, y, this.containsArr)
-            }
-        } else {
-            falg = this.isIn(x, y, this.containsArr)
-        }
-        return falg
-    }
-
-
-    isIn(x, y, json) {
-        let nCross = 0,
-            point = typeof(x) == 'object' ? [x.x, x.y] : [x, y],
-            APoints = json,
-            length = APoints.length,
-            p1, p2, i, xinters;
-        p1 = APoints[0];
-        for (i = 1; i <= length; i++) {
-            p2 = APoints[i % length];
-            if (
-                point[0] > Math.min(p1[0], p2[0]) &&
-                point[0] <= Math.max(p1[0], p2[0])
-            ) {
-                if (point[1] <= Math.max(p1[1], p2[1])) {
-                    if (p1[0] != p2[0]) {
-                        //计算位置信息
-                        xinters = (point[0] - p1[0]) * (p2[1] - p1[1]) / (p2[0] - p1[0]) + p1[1];
-                        if (p1[1] == p2[1] || point[1] <= xinters) {
-                            nCross++
-                        }
-                    }
-                }
-            }
-            p1 = p2;
-        }
-        if (nCross % 2 == 0) {
-            return false
-        } else {
-            return true
-        }
-
-    }
-
-    /**
-     * 绘制不规则多边形
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-    onDraw(canvas, rect) {
-        if (this.jsonArr && this.jsonArr.length) {
-            canvas.beginPath();
-            canvas.lineWidth = 220
-            canvas.lineCap = 'butt';
-            if (this.isBusiness == 1) {
-                canvas.strokeStyle = this.color || '#000'
-                canvas.fillStyle = this.fillColor
-            } else if (this.isBusiness == 2) {
-                //已有id 的业务空间
-                canvas.strokeStyle = this.color || '#000'
-                canvas.fillStyle = this.businessColor || '#fff'
-            } else if (this.isBusiness == 3) {
-                //被选择的元空间
-                canvas.strokeStyle = this.color || '#000'
-                canvas.lineWidth = 800
-                canvas.fillStyle = '#1abc9c'
-            } else if (this.isBusiness == 4) {
-                canvas.strokeStyle = 'rgba(251,226,1,.8)' || '#000'
-                canvas.fillStyle = '#fff' || '#fff'
-            } else if (this.isBusiness == 5) {
-                canvas.fillStyle = 'rgba(11,12,12,.2)' || '#fff'
-            } else if (this.isBusiness == 6) {
-                canvas.fillStyle = '#1abc9c'
-                canvas.lineWidth = 800
-                canvas.strokeStyle = 'rgba(68,161,140,.4)' || '#fff'
-            } else if (this.isBusiness == 7) {
-                canvas.strokeStyle = this.color || '#000'
-                canvas.fillStyle = this.businessColor || '#fff'
-            }
-            canvas.moveTo(this.jsonArr[0].X, this.jsonArr[0].Y)
-            for (let i = 1; i < this.jsonArr.length; i++) {
-                canvas.lineTo(this.jsonArr[i].X, this.jsonArr[i].Y)
-            }
-            canvas.lineTo(this.jsonArr[0].X, this.jsonArr[0].Y)
-            canvas.closePath()
-            canvas.fill()
-            canvas.stroke()
-            if (!!this.name) {
-                canvas.font = "normal small-caps bold 500px Arial";
-                if (this.isBusiness == 1) {
-                    canvas.fillStyle = this.faceColor
-                } else if (this.isBusiness == 2) {
-                    canvas.fillStyle = this.businessFaceColor;
-                } else if (this.isBusiness == 3) {
-                    //业务空间异常状态
-                    canvas.fillStyle = '#fff'
-                } else if (this.isBusiness == 4) {
-                    canvas.fillStyle = '#cacaca'
-                } else if (this.isBusiness == 6) {
-                    canvas.fillStyle = '#fff'
-                } else if (this.isBusiness == 7) {
-                    canvas.fillStyle = 'red'
-                }
-                if (!!this.businessName || !!this.businessId) {
-                    name = '👇   ' + this.businessName
-                } else {
-                    name = '⬇️   ' + this.name
-                }
-                canvas.fillText(name, this.centerOfGravityPoint.x, this.centerOfGravityPoint.y);
-                // canvas.fillText(this.name, (this.maxX - this.minX) / 2 + this.minX, (this.maxY - this.minY) / 2 + this.minY);
-            }
-            // canvas.fillText(this.name, this.jsonArr[0].X, this.jsonArr[0].Y);
-        }
-    }
-}

+ 0 - 100
src/assets/graphy/SGraphy/items/SGraphyRectItem.js

@@ -1,100 +0,0 @@
-/**
- * 线条
- */
-import SGraphyItem from '../SGraphyItem'
-import SRect from '../types/SRect';
-
-export default class SGraphyRectItem extends SGraphyItem {
-    /**
-     * 构造函数
-     * 
-     * @param X  矩形的开始点X
-     * @param Y  矩形的开始点Y
-     * @param width   矩形的宽度
-     * @param height  矩形的高度
-     * 
-     * @param isFill  矩形的是否填充
-     * @param fillColor  矩形的填充色彩
-     * @param text  矩形的文字
-     * @param textSize  矩形的文字大小
-     * @param color  矩形的颜色
-     * @param Tip   提示
-     */
-    constructor(X, Y, width, height, isFill, fillColor, text, textSize, color, Tip, parent = null) {
-        super(parent)
-        this.X = X
-        this.Y = Y
-        this.width = width
-        this.height = height
-        this.isFill = isFill
-        this.fillColor = fillColor
-        this.color = color
-        this.textSize = textSize || 6
-        this.type = 10
-        this.hoverColor = null
-        this.text = text.split(",")
-        this.fontStart = this.X
-        this.Tip = Tip
-    }
-
-    /**
-     * Item对象边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect() {
-        return new SRect(this.X, this.Y, this.width, this.height)
-    }
-
-    /**
-     * 判断item是否包含点x,y
-     *
-     * @param   x       横坐标(当前item)
-     * @param   y       纵坐标(当前item)
-     *
-     * @return  boolean
-     */
-    contains(x) {
-        if (this.X + this.width > x.x && x.x > this.X && this.Y + this.height > x.y && x.y > this.Y) {
-            return true
-        } else {
-            return false
-        }
-    }
-
-    /**
-     * 绘制线条
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-
-    onDraw(canvas, rect) {
-        canvas.beginPath();
-        canvas.lineWidth = "1";
-        if (this.isFill) {
-            if (!!this.hoverColor) {
-                canvas.fillStyle = this.hoverColor
-            } else {
-                canvas.fillStyle = this.fillColor
-            }
-            canvas.fillRect(this.X, this.Y, this.width, this.height);
-        } else {
-            canvas.rect(this.X, this.Y, this.width, this.height);
-        }
-        canvas.stroke();
-        if (!!this.text && this.text.length <= 1) {
-            canvas.font = this.textSize + "px 宋体";
-            canvas.fillStyle = this.color
-            canvas.fillText(this.text[0], this.fontStart, this.Y + this.height / 2);
-        } else if (!!this.text && this.text.length > 1) {
-            canvas.font = this.textSize + "px 宋体";
-            canvas.fillStyle = this.color
-            for (let i = 0; i < this.text.length; i++) {
-                canvas.fillText(this.text[i], this.fontStart, this.Y + this.height / 2 - this.textSize * i);
-            }
-        } else {
-            return
-        }
-    }
-}

+ 0 - 51
src/assets/graphy/SGraphy/items/SGraphyTextItems.js

@@ -1,51 +0,0 @@
-/**
- * 线条
- */
-import SGraphyItem from '../SGraphyItem'
-import SRect from '../types/SRect';
-
-export default class SGraphyTextItem extends SGraphyItem {
-    /**
-     * 构造函数
-     * 
-     * @param X  文字的开始点X
-     * @param Y  文字的开始点Y
-     * @param width   文字的宽度
-     * 
-     * @param color  文字的颜色
-     * @param text   文字的文字
-     */
-    constructor(X, Y, width, color, text, falg, font, parent = null) {
-        super(parent)
-        this.X = X
-        this.Y = Y
-        this.lineWidth = width
-        this.color = color
-        this.font = font ? font : "6px 宋体"
-        this.text = falg ? text + '→' : text
-    }
-
-    /**
-     * Item对象边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect() {
-        return new SRect(this.X, this.Y, 0, 0)
-    }
-
-    /**
-     * 绘制线条
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-
-    onDraw(canvas, rect) {
-        if (!!this.text) {
-            canvas.font = this.font;
-            canvas.fillStyle = this.color
-            canvas.fillText(this.text, this.X, this.Y);
-        }
-    }
-}

+ 0 - 66
src/assets/graphy/SGraphy/items/SGraphyVirtualItem.js

@@ -1,66 +0,0 @@
-/**
- * 线条
- */
-import SGraphyItem from '../SGraphyItem'
-import SRect from '../types/SRect';
-
-export default class SGraphyLineItem extends SGraphyItem {
-    /**
-     * 构造函数
-     * 
-     * @param startX  线的起始x坐标
-     * @param startY  线的起始y坐标
-     * @param endX    线的终止x坐标
-     * @param endY    线的终止y坐标
-     * @param width   线的宽度
-     * 
-     * @param color  线的颜色
-     * @param isVirtual    是否为虚线
-     * 
-     * @param canMove  移动
-     */
-    constructor(startX, startY, endX, endY, color, width, isVirtual, canMove, parent = null) {
-        super(parent)
-        this.startX = startX
-        this.startY = startY
-        this.endX = endX
-        this.endY = endY
-        this.color = color
-        this.width = width
-        this.isVirtual = isVirtual
-        this.minX = Math.min(this.startX, this.endX)
-        this.minY = Math.min(this.startY, this.endY)
-        this.maxX = Math.max(this.startX, this.endX)
-        this.maxY = Math.max(this.startY, this.endY)
-        this.type = 4
-            // this.canMove = true
-    }
-
-    /**
-     * Item对象边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect() {
-        return new SRect(this.minX, this.minY, (this.maxX - this.minX), (this.maxY - this.minY))
-    }
-
-    /**
-     * 绘制线条
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-
-    onDraw(canvas, rect) {
-        if (this.isVirtual) {
-            canvas.setLineDash([240, 240])
-        }
-        canvas.lineWidth = 240
-        canvas.strokeStyle = this.color || '#000'
-        canvas.beginPath();
-        canvas.moveTo(this.startX, this.startY)
-        canvas.lineTo(this.endX, this.endY)
-        canvas.stroke()
-    }
-}

+ 0 - 240
src/assets/graphy/SGraphy/mainScene.js

@@ -1,240 +0,0 @@
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-import SGraphyPolygonItem from './newItems/SGraphyPolygonItem.js';
-import { SGraphyImgItem } from './newItems/SGraphyImgItem.js';
-import { SGraphyScene } from "@sybotan-web/graphy";
-import Axios from 'axios';
-import pako from "./until/pako.js";
-import tools from "./until/tool.js";
-/**
- * @name mainScene
- * @time 2019-07.07;
- * 添加所有item的场景到scene中
- */
-var mainScene = /** @class */ (function (_super) {
-    __extends(mainScene, _super);
-    /**
-     * @param data 绘制空间地图得所有参数
-     */
-    function mainScene(data) {
-        var _this_1 = _super.call(this) || this;
-        _this_1._isShowSpace = true; // 是否显示空间;
-        _this_1._isShowWallList = true; //是否展示墙体;
-        _this_1._isShowEquipmentList = true; //是否展示设备;
-        _this_1._isShowVrtualWallList = true; //是否展示虚拟墙
-        _this_1.data = data;
-        if (_this_1.data != null) {
-            _this_1.addAllItemList(_this_1.data);
-        }
-        return _this_1;
-    }
-    Object.defineProperty(mainScene.prototype, "isShowSpace", {
-        // 设置是否显示空间
-        get: function () {
-            return this._isShowSpace;
-        },
-        set: function (b) {
-            this._isShowSpace = b;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(mainScene.prototype, "isShowWallList", {
-        // 设置是否显示墙
-        get: function () {
-            return this._isShowWallList;
-        },
-        set: function (b) {
-            this._isShowWallList = b;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(mainScene.prototype, "isShowEquipmentList", {
-        // 设置是否显示设备
-        get: function () {
-            return this._isShowEquipmentList;
-        },
-        set: function (b) {
-            this._isShowEquipmentList = b;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(mainScene.prototype, "isShowVrtualWallList", {
-        // 设置是否显示虚拟墙
-        get: function () {
-            return this._isShowVrtualWallList;
-        },
-        set: function (b) {
-            this._isShowVrtualWallList = b;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    //获取参数
-    mainScene.prototype.urlGetData = function (url) {
-        var _this_1 = this;
-        var that = this;
-        return new Promise(function (relove, reject) {
-            Axios({
-                method: 'get',
-                url: url,
-                data: {},
-                responseType: 'blob',
-            }).then(function (res) {
-                var blob = res.data;
-                _this_1.zipToJson(blob).then(function (jsonData) {
-                    that.addAllItemList(jsonData);
-                    relove();
-                }).catch(function (error) {
-                    console.log(error);
-                });
-                // console.log(reader)
-            }).catch(function (res) {
-                console.log(res);
-            });
-        });
-    };
-    // 压缩包变为json格式数据
-    mainScene.prototype.zipToJson = function (blob) {
-        var data = null;
-        var reader = new FileReader();
-        reader.readAsBinaryString(blob);
-        var _this = this;
-        return new Promise(function (resolve) {
-            reader.onload = function (readerEvt) {
-                var binaryString = readerEvt.target.result;
-                //解压数据
-                var base64Data = btoa(binaryString);
-                var unGzipData = pako.unzip(base64Data);
-                data = unGzipData;
-                if (data.WallList && data.WallList.length) {
-                    tools.changeMap(data.WallList, -1, "PointList");
-                }
-                if (data.SpaceList && data.SpaceList.length) {
-                    tools.changeMap(data.SpaceList, -1, "Paths");
-                }
-                if (data.ColumnList && data.ColumnList.length) {
-                    tools.changeMap(data.ColumnList, -1, "Path");
-                }
-                if (data.VirtualWallList && data.VirtualWallList.length) {
-                    tools.changeMap(data.VirtualWallList, -1, "PointList");
-                }
-                if (data.EquipmentList && data.EquipmentList.length) {
-                    tools.changeMap(data.EquipmentList, -1, "PointList");
-                }
-                resolve(data);
-            };
-        });
-    };
-    // 以下是绘制方法
-    /**
-     * 增添所有绘制item(地图);
-    */
-    mainScene.prototype.addAllItemList = function (data) {
-        var space = data.SpaceList;
-        // let wall:
-        this.addSpaceList(space); //绘制空间
-        this.addWallList(); //绘制墙
-        var images = data.images;
-        this.addImageList(images);
-    };
-    /**
-     * 添加所有空间到scene 中
-     * @param space 空间list
-     */
-    mainScene.prototype.addSpaceList = function (space) {
-        if (space && space.length) {
-            for (var i = 0; i < space.length; i++) {
-                if (space[i].Paths[1] && space[i].Paths[1].length >= 2) {
-                    this.addItem(this.constructeItem({
-                        parent: null,
-                        space: space[i],
-                        businessType: 'space'
-                    }));
-                }
-            }
-            for (var i = 0; i < space.length; i++) {
-                if (space[i].Paths[0] && space[i].Paths[0].length >= 2 && !space[i].Paths[1]) {
-                    this.addItem(this.constructeItem({
-                        parent: null,
-                        space: space[i],
-                        businessType: 'space'
-                    }));
-                }
-            }
-        }
-    };
-    // 绘制墙体
-    mainScene.prototype.addWallList = function () {
-    };
-    // 绘制设备
-    mainScene.prototype.addEquipmentList = function () {
-    };
-    // 绘制柱体
-    mainScene.prototype.addColumnListList = function () {
-    };
-    // 绘制虚拟墙
-    mainScene.prototype.addVrtualWallList = function () {
-    };
-    // 绘制图片
-    mainScene.prototype.addImageList = function (imageList) {
-        var _this_1 = this;
-        if (imageList && imageList.length) {
-            imageList.map(function (t) {
-                _this_1.addItem(new SGraphyImgItem(null, t.img, t.X, t.Y, t.width, t.height));
-            });
-        }
-    };
-    /**
-     * 产生item实例
-     */
-    mainScene.prototype.constructeItem = function (PolygonItemInterfaceData) {
-        return new SGraphyPolygonItem(PolygonItemInterfaceData);
-    };
-    // 鼠标交互类事件
-    // 点击
-    mainScene.prototype.click = function (_this, fn) {
-        this.root.children.forEach(function (item) {
-            item.connect("click", _this, fn);
-        });
-    };
-    // 双击
-    mainScene.prototype.dbclick = function (_this, fn) {
-        this.root.children.forEach(function (item) {
-            item.connect("doubleClick", _this, fn);
-        });
-    };
-    // 按下
-    mainScene.prototype.mouseDown = function (_this, fn) {
-        this.root.children.forEach(function (item) {
-            item.connect("mouseDown", _this, fn);
-        });
-    };
-    //移动
-    mainScene.prototype.mouseMove = function (_this, fn) {
-        this.root.children.forEach(function (item) {
-            item.connect("mouseMove", _this, fn);
-        });
-    };
-    // 点解结束
-    mainScene.prototype.mouseUp = function (_this, fn) {
-        this.root.children.forEach(function (item) {
-            item.connect("mouseUp", _this, fn);
-        });
-    };
-    return mainScene;
-}(SGraphyScene));
-export default mainScene;

+ 0 - 228
src/assets/graphy/SGraphy/mainScene.ts

@@ -1,228 +0,0 @@
-
-import { SRect, SSize, SPoint } from "@sybotan-web/base";
-import SGraphyPolygonItem from './newItems/SGraphyPolygonItem.js'
-import { SGraphyImgItem } from './newItems/SGraphyImgItem.js'
-import { SGraphyScene, SMouseEvent } from "@sybotan-web/graphy";
-import { SPen, SPainter, SColor } from "@sybotan-web/draw";
-import { dataItemPath, dataItem, dataSpaceItem, dataInterface, PolygonItemInterface, ImgItemInterface } from './dataType'   //传入参数的参数接口类型
-import Axios from 'axios';
-import pako from "./until/pako.js"
-import tools from "./until/tool.js"
-/**
- * @name mainScene
- * @time 2019-07.07;
- * 添加所有item的场景到scene中
- */
-
-export default class mainScene extends SGraphyScene {
-
-    data: dataInterface | null;
-
-    private _isShowSpace: boolean = true;  // 是否显示空间;
-    private _isShowWallList: boolean = true;  //是否展示墙体;
-    private _isShowEquipmentList: boolean = true; //是否展示设备;
-    private _isShowVrtualWallList: boolean = true; //是否展示虚拟墙
-
-    // 设置是否显示空间
-    get isShowSpace(): boolean {
-        return this._isShowSpace
-    }
-    set isShowSpace(b: boolean) {
-        this._isShowSpace = b
-    }
-
-    // 设置是否显示墙
-    get isShowWallList(): boolean {
-        return this._isShowWallList
-    }
-    set isShowWallList(b: boolean) {
-        this._isShowWallList = b
-    }
-
-    // 设置是否显示设备
-    get isShowEquipmentList(): boolean {
-        return this._isShowEquipmentList
-    }
-    set isShowEquipmentList(b: boolean) {
-        this._isShowEquipmentList = b
-    }
-
-    // 设置是否显示虚拟墙
-    get isShowVrtualWallList(): boolean {
-        return this._isShowVrtualWallList
-    }
-    set isShowVrtualWallList(b: boolean) {
-        this._isShowVrtualWallList = b
-    }
-
-    /**
-     * @param data 绘制空间地图得所有参数
-     */
-
-    constructor(data: dataInterface | null) {
-        super()
-        this.data = data;
-        if (this.data != null) {
-            this.addAllItemList(this.data);
-        }
-    }
-    //获取参数
-    urlGetData(url: string) {
-        let that = this;
-        return new Promise((relove, reject) => {
-            Axios({
-                method: 'get',
-                url: url,
-                data: {},
-                responseType: 'blob',
-                // contentType: "charset=utf-8"
-            }).then(res => {
-                var blob = res.data;
-                this.zipToJson(blob).then((jsonData: any) => {
-                    that.addAllItemList(jsonData)
-                    relove()
-                }).catch((error: any) => {
-                    console.log(error)
-                });
-                // console.log(reader)
-            }).catch(res => {
-                console.log(res)
-            })
-        })
-
-    }
-    // 压缩包变为json格式数据
-    zipToJson(blob: any): any {
-        let data = null;
-        var reader = new FileReader();
-        reader.readAsBinaryString(blob);
-        let _this = this;
-        return new Promise((resolve) => {
-            reader.onload = function (readerEvt: any) {
-                var binaryString = readerEvt.target.result;
-                //解压数据
-                let base64Data = btoa(binaryString)
-                let unGzipData = pako.unzip(base64Data)
-                data = unGzipData;
-                if (data.WallList && data.WallList.length) {
-                    tools.changeMap(data.WallList, -1, "PointList");
-                }
-                if (data.SpaceList && data.SpaceList.length) {
-                    tools.changeMap(data.SpaceList, -1, "Paths");
-                }
-                if (data.ColumnList && data.ColumnList.length) {
-                    tools.changeMap(data.ColumnList, -1, "Path");
-                }
-                if (data.VirtualWallList && data.VirtualWallList.length) {
-                    tools.changeMap(data.VirtualWallList, -1, "PointList");
-                }
-                if (data.EquipmentList && data.EquipmentList.length) {
-                    tools.changeMap(data.EquipmentList, -1, "PointList");
-                }
-                resolve(data)
-            };
-        })
-    }
-    // 以下是绘制方法
-
-    /** 
-     * 增添所有绘制item(地图);
-    */
-    addAllItemList(data: dataInterface) {
-        let space: dataSpaceItem[] = data.SpaceList;
-        // let wall:
-        this.addSpaceList(space) //绘制空间
-        this.addWallList()       //绘制墙
-        let images: ImgItemInterface[] = data.images
-        this.addImageList(images)
-    }
-
-    /**
-     * 添加所有空间到scene 中
-     * @param space 空间list
-     */
-    addSpaceList(space: dataSpaceItem[]): void {
-        if (space && space.length) {
-            for (let i = 0; i < space.length; i++) {
-                if (space[i].Paths[1] && space[i].Paths[1].length >= 2) {
-                    this.addItem(this.constructeItem(
-                        {
-                            parent: null,
-                            space: space[i],
-                            businessType: 'space'
-                        }));
-                }
-            }
-            for (let i = 0; i < space.length; i++) {
-                if (space[i].Paths[0] && space[i].Paths[0].length >= 2 && !space[i].Paths[1]) {
-                    this.addItem(this.constructeItem(
-                        {
-                            parent: null,
-                            space: space[i],
-                            businessType: 'space'
-                        }));
-                }
-            }
-        }
-    }
-    // 绘制墙体
-    addWallList(): void {
-
-    }
-    // 绘制设备
-    addEquipmentList() {
-    }
-    // 绘制柱体
-    addColumnListList(): void {
-    }
-    // 绘制虚拟墙
-    addVrtualWallList(): void {
-    }
-    // 绘制图片
-    addImageList(imageList: ImgItemInterface[]): void {
-        if (imageList && imageList.length) {
-            imageList.map(t => {
-                this.addItem(new SGraphyImgItem(null, t.img, t.X, t.Y, t.width, t.height))
-            })
-        }
-    }
-    /**
-     * 产生item实例
-     */
-    constructeItem(PolygonItemInterfaceData: PolygonItemInterface): SGraphyPolygonItem {
-        return new SGraphyPolygonItem(PolygonItemInterfaceData)
-    }
-    // 鼠标交互类事件
-
-    // 点击
-    click(_this: any, fn: any): void {
-        this.root.children.forEach(item => {
-            item.connect("click", _this, fn);
-        });
-    }
-    // 双击
-    dbclick(_this: any, fn: any): void {
-        this.root.children.forEach(item => {
-            item.connect("doubleClick", _this, fn);
-        });
-    }
-    // 按下
-    mouseDown(_this: any, fn: any) {
-        this.root.children.forEach(item => {
-            item.connect("mouseDown", _this, fn);
-        });
-    }
-    //移动
-    mouseMove(_this: any, fn: any) {
-        this.root.children.forEach(item => {
-            item.connect("mouseMove", _this, fn);
-        });
-    }
-    // 点解结束
-    mouseUp(_this: any, fn: any) {
-        this.root.children.forEach(item => {
-            item.connect("mouseUp", _this, fn);
-        });
-    }
-
-} 

+ 0 - 68
src/assets/graphy/SGraphy/newItems/SGraphyCircleItem.js

@@ -1,68 +0,0 @@
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-import { SGraphyItem } from '@sybotan-web/graphy';
-import { SRect } from "@sybotan-web/base";
-import { SColor } from "@sybotan-web/draw";
-/**
- * 圆Item类
- *
- */
-var SGraphyCircleItem = /** @class */ (function (_super) {
-    __extends(SGraphyCircleItem, _super);
-    /**
-     * 构造函数
-     *
-     * @param r          圆半径
-     * @param width      圆线的宽度
-     * @param color      圆线的颜色
-     * @param fillColor  圆填充的颜色
-     * @param parent
-     */
-    function SGraphyCircleItem(parent, r, fillColor, color, width) {
-        if (fillColor === void 0) { fillColor = SColor.White; }
-        if (color === void 0) { color = SColor.Black; }
-        if (width === void 0) { width = 1; }
-        var _this = _super.call(this, parent) || this;
-        _this.fillColor = SColor.White;
-        _this.color = SColor.Black;
-        _this.width = 1;
-        _this.r = r;
-        _this.color = color;
-        _this.fillColor = fillColor;
-        _this.width = width;
-        return _this;
-    } // Constructor()
-    /**
-     * Item对象边界区域
-     *
-     * @return SRect
-     */
-    SGraphyCircleItem.prototype.boundingRect = function () {
-        return new SRect(-this.r, -this.r, 2 * this.r, 2 * this.r);
-    }; // Function boundingRect()
-    /**
-     * Item绘制操作
-     *
-     * @param   painter       painter对象
-     * @param   rect          绘制区域
-     */
-    SGraphyCircleItem.prototype.onDraw = function (painter, rect) {
-        // painter.pen = new SPen(new SColor("#FF0000"), 22);
-        painter.pen.color = this.color;
-        painter.brush.color = this.fillColor;
-        painter.drawCircle(500, 500, this.r);
-    };
-    return SGraphyCircleItem;
-}(SGraphyItem)); // Class SGraphyCircleItem
-export default SGraphyCircleItem;

+ 0 - 65
src/assets/graphy/SGraphy/newItems/SGraphyCircleItem.ts

@@ -1,65 +0,0 @@
-
-import { SGraphyItem } from '@sybotan-web/graphy';
-import { SRect, SSize } from "@sybotan-web/base";
-import { SPen, SPainter, SColor } from "@sybotan-web/draw";
-
-/**
- * 圆Item类
- *
- */
-export default class SGraphyCircleItem extends SGraphyItem {
-    r: number;
-    fillColor: SColor = SColor.White;
-    color: SColor = SColor.Black;
-    width: number = 1;
-
-    /**
-     * 构造函数
-     *
-     * @param r          圆半径
-     * @param width      圆线的宽度
-     * @param color      圆线的颜色
-     * @param fillColor  圆填充的颜色
-     * @param parent    
-     */
-    constructor(
-        parent: SGraphyItem | null,
-        r: number,
-        fillColor: SColor = SColor.White,
-        color: SColor = SColor.Black,
-        width: number = 1
-    ) {
-        super(parent);
-        this.r = r;
-        this.color = color;
-        this.fillColor = fillColor;
-        this.width = width;
-    } // Constructor()
-
-    /**
-     * Item对象边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect(): SRect {
-        return new SRect(
-            -this.r,
-            -this.r,
-            2 * this.r,
-            2 * this.r
-        );
-    } // Function boundingRect()
-
-    /**
-     * Item绘制操作
-     *
-     * @param   painter       painter对象
-     * @param   rect          绘制区域
-     */
-    onDraw(painter: SPainter, rect?: SRect): void {
-        // painter.pen = new SPen(new SColor("#FF0000"), 22);
-        painter.pen.color = this.color;
-        painter.brush.color = this.fillColor;
-        painter.drawCircle(500, 500, this.r);
-    }
-} // Class SGraphyCircleItem

+ 0 - 111
src/assets/graphy/SGraphy/newItems/SGraphyImgItem.js

@@ -1,111 +0,0 @@
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-import { SGraphyItem } from '@sybotan-web/graphy';
-import { SRect } from "@sybotan-web/base";
-/**
- * 图形Item类  todo
- *
- */
-var SGraphyImgItem = /** @class */ (function (_super) {
-    __extends(SGraphyImgItem, _super);
-    /**
-     * 构造函数
-     *
-     * @param width        		图片宽度
-     * @param height   				图片高度
-     * @param imgSource     	图片源
-     * @param X        				图片向x轴的偏移量
-     * @param Y        				图片向y轴的偏移量
-     * @param parent   				指向父元素
-     */
-    function SGraphyImgItem(parent, imgSource, X, Y, width, height) {
-        var _this = _super.call(this, parent) || this;
-        _this.width = 0;
-        _this.height = 0;
-        _this.imgSource = imgSource;
-        _this.X = X;
-        _this.Y = Y;
-        _this.width = width;
-        _this.height = height;
-        _this.img = new Image();
-        _this.img.src = _this.imgSource;
-        return _this;
-    } // Constructor()
-    /**
-     * Item对象边界区域
-     *
-     * @return SRect
-     */
-    SGraphyImgItem.prototype.boundingRect = function () {
-        return new SRect(this.X, this.Y, this.width, this.height);
-    }; // Function boundingRect()
-    // contains(x: number, y: number): boolean {
-    // 	return this.boundingRect().contains(x - this.X, y - this.Y);
-    // }
-    SGraphyImgItem.prototype.onClick = function (event) {
-        this.$emit('click', event);
-        return true;
-    }; // Function onClick()
-    /**
-  * 鼠标双击事件
-  *
-  * @param   event   保存事件参数
-  * @return  boolean
-  */
-    SGraphyImgItem.prototype.onDoubleClick = function (event) {
-        this.$emit('doubleClick', event);
-        return true;
-    };
-    /**
-  * 鼠标按下事件
-  *
-  * @param   event   保存事件参数
-  * @return  boolean
-  */
-    SGraphyImgItem.prototype.onMouseDown = function (event) {
-        this.$emit('mouseDown', event);
-        return true;
-    }; // Function onMouseDown()
-    /**
-     * 鼠标移动事件
-     *
-     * @param   event   保存事件参数
-     * @return  boolean
-     */
-    SGraphyImgItem.prototype.onMouseMove = function (event) {
-        this.$emit('mouseMove', event);
-        return true;
-    }; // Function onMouseMove()
-    /**
-     * 释放鼠标事件
-     *
-     * @param   event   保存事件参数
-     * @return  boolean
-     */
-    SGraphyImgItem.prototype.onMouseUp = function (event) {
-        this.$emit('mouseUp', event);
-        return true;
-    };
-    /**
-     * Item绘制操作
-     *
-     * @param   painter       painter对象
-     * @param   rect          绘制区域
-     */
-    SGraphyImgItem.prototype.onDraw = function (painter, rect) {
-        painter.drawImage(this.img, this.X, this.Y, this.width, this.height);
-    };
-    return SGraphyImgItem;
-}(SGraphyItem)); // Class SGraphyImgItem
-export { SGraphyImgItem };

+ 0 - 116
src/assets/graphy/SGraphy/newItems/SGraphyImgItem.ts

@@ -1,116 +0,0 @@
-import { SGraphyItem, SMouseEvent } from '@sybotan-web/graphy'
-import { SRect, SSize } from "@sybotan-web/base";
-import { SPen, SPainter, SColor } from "@sybotan-web/draw";
-
-/**
- * 图形Item类  todo
- *
- */
-export class SGraphyImgItem extends SGraphyItem {
-	imgSource: string; //可以为url,base64
-	X: number;
-	Y: number;
-	width: number = 0;
-	height: number = 0;
-	img: CanvasImageSource
-
-	/**
-	 * 构造函数
-	 * 
-	 * @param width        		图片宽度
-	 * @param height   				图片高度
-	 * @param imgSource     	图片源
-	 * @param X        				图片向x轴的偏移量
-	 * @param Y        				图片向y轴的偏移量
-	 * @param parent   				指向父元素
-	 */
-	constructor(
-		parent: SGraphyItem | null,
-		imgSource: string,
-		X: number,
-		Y: number,
-		width: number,
-		height: number,
-	) {
-		super(parent);
-		this.imgSource = imgSource;
-		this.X = X;
-		this.Y = Y;
-		this.width = width;
-		this.height = height;
-		this.img = new Image();
-		this.img.src = this.imgSource;
-	} // Constructor()
-
-	/**
-	 * Item对象边界区域
-	 * 
-	 * @return SRect
-	 */
-	boundingRect(): SRect {
-		return new SRect(
-			this.X,
-			this.Y,
-			this.width,
-			this.height
-		);
-	} // Function boundingRect()
-	// contains(x: number, y: number): boolean {
-	// 	return this.boundingRect().contains(x - this.X, y - this.Y);
-	// }
-	onClick(event: SMouseEvent): boolean {
-		this.$emit('click', event);
-		return true;
-	} // Function onClick()
-	/**
-  * 鼠标双击事件
-  *
-  * @param   event   保存事件参数
-  * @return  boolean
-  */
-	onDoubleClick(event: SMouseEvent): boolean {
-		this.$emit('doubleClick', event);
-		return true;
-	}
-	/**
-  * 鼠标按下事件
-  *
-  * @param   event   保存事件参数
-  * @return  boolean
-  */
-	onMouseDown(event: SMouseEvent): boolean {
-		this.$emit('mouseDown', event);
-		return true;
-	} // Function onMouseDown()
-
-	/**
-	 * 鼠标移动事件
-	 *
-	 * @param   event   保存事件参数
-	 * @return  boolean
-	 */
-	onMouseMove(event: SMouseEvent): boolean {
-		this.$emit('mouseMove', event);
-		return true;
-	} // Function onMouseMove()
-
-	/**
-	 * 释放鼠标事件
-	 *
-	 * @param   event   保存事件参数
-	 * @return  boolean
-	 */
-	onMouseUp(event: SMouseEvent): boolean {
-		this.$emit('mouseUp', event);
-		return true;
-	}
-	/**
-	 * Item绘制操作
-	 *
-	 * @param   painter       painter对象
-	 * @param   rect          绘制区域
-	 */
-	onDraw(painter: SPainter, rect?: SRect): void {
-		painter.drawImage(this.img, this.X, this.Y, this.width, this.height);
-	}
-} // Class SGraphyImgItem

+ 0 - 70
src/assets/graphy/SGraphy/newItems/SGraphyPointItem.js

@@ -1,70 +0,0 @@
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-import { SGraphyItem } from '@sybotan-web/graphy';
-import { SRect, SPoint } from "@sybotan-web/base";
-import { SColor } from "@sybotan-web/draw";
-/**
- * 坐标点
- *
- */
-var SGraphyPointItem = /** @class */ (function (_super) {
-    __extends(SGraphyPointItem, _super);
-    /**
-     * 构造函数
-     *
-     * @param r          圆半径
-     * @param width      圆线的宽度
-     * @param color      圆线的颜色
-     * @param fillColor  圆填充的颜色
-     * @param parent
-     */
-    function SGraphyPointItem(parent, width, point, color, fillColor) {
-        if (width === void 0) { width = 100; }
-        if (point === void 0) { point = new SPoint(0, 0); }
-        if (color === void 0) { color = new SColor('#F56C6C'); }
-        if (fillColor === void 0) { fillColor = new SColor('#F56C6C'); }
-        var _this = _super.call(this, parent) || this;
-        _this.width = 100;
-        _this.width = width;
-        _this.point = point;
-        _this.color = color;
-        _this.fillColor = fillColor;
-        return _this;
-    } // Constructor()
-    /**
-     * Item对象边界区域
-     *
-     * @return SRect
-     */
-    SGraphyPointItem.prototype.boundingRect = function () {
-        var minX = this.point.x;
-        var miny = this.point.y;
-        var maxX = this.point.x + this.width;
-        var maxY = this.point.y + this.width;
-        return new SRect(minX, miny, maxX, maxY);
-    }; // Function boundingRect()
-    /**
-     * Item绘制操作
-     *
-     * @param   painter       painter对象
-     * @param   rect          绘制区域
-     */
-    SGraphyPointItem.prototype.onDraw = function (painter, rect) {
-        painter.pen.color = this.color;
-        painter.brush.color = this.fillColor;
-        painter.drawRect(this.point.x, this.point.y, this.width, this.width);
-    };
-    return SGraphyPointItem;
-}(SGraphyItem)); // Class SGraphyCircleItem
-export default SGraphyPointItem;

+ 0 - 67
src/assets/graphy/SGraphy/newItems/SGraphyPointItem.ts

@@ -1,67 +0,0 @@
-
-import { SGraphyItem } from '@sybotan-web/graphy';
-import { SRect, SSize, SPoint } from "@sybotan-web/base";
-import { SPen, SPainter, SColor } from "@sybotan-web/draw";
-/**
- * 坐标点
- *
- */
-export default class SGraphyPointItem extends SGraphyItem {
-    width: number = 100;
-    point: SPoint;
-    color: SColor;
-    fillColor: SColor;
-
-    /**
-     * 构造函数
-     *
-     * @param r          圆半径
-     * @param width      圆线的宽度
-     * @param color      圆线的颜色
-     * @param fillColor  圆填充的颜色
-     * @param parent    
-     */
-    constructor(
-        parent: SGraphyItem | null,
-        width: number = 100,
-        point: SPoint = new SPoint(0, 0),
-        color: SColor = new SColor('#F56C6C'),
-        fillColor: SColor = new SColor('#F56C6C')
-    ) {
-        super(parent);
-        this.width = width;
-        this.point = point;
-        this.color = color;
-        this.fillColor = fillColor;
-   
-    } // Constructor()
-
-    /**
-     * Item对象边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect(): SRect {
-        let minX = this.point.x;
-        let miny = this.point.y;
-        let maxX = this.point.x + this.width;
-        let maxY = this.point.y + this.width;
-        return new SRect(
-            minX,
-            miny,
-            maxX, maxY
-        );
-    } // Function boundingRect()
-
-    /**
-     * Item绘制操作
-     *
-     * @param   painter       painter对象
-     * @param   rect          绘制区域
-     */
-    onDraw(painter: SPainter, rect?: SRect): void {
-        painter.pen.color = this.color;
-        painter.brush.color = this.fillColor;
-        painter.drawRect(this.point.x,this.point.y,this.width,this.width)
-    }
-} // Class SGraphyCircleItem

+ 0 - 212
src/assets/graphy/SGraphy/newItems/SGraphyPolygonItem.js

@@ -1,212 +0,0 @@
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-import { SGraphyItem } from '@sybotan-web/graphy';
-import { SRect, SPoint } from "@sybotan-web/base";
-import { SColor } from "@sybotan-web/draw";
-/**
- * 不规则多边形Item类
- *
- */
-var SGraphyPolygonItem = /** @class */ (function (_super) {
-    __extends(SGraphyPolygonItem, _super);
-    // actived: boolean = false; 				//是否激活
-    /**
-     * 构造函数
-     *
-     * @param pointArr									点坐标list
-     * @param width											边框的宽度
-     * @param color											边框的颜色
-     * @param fillColor   							多边形填充的颜色
-     * @param businessId								空间id
-     * @param businessName							空间名称
-     * @param centerOfGravityPoint			中心点
-     * @param isBusiness								状态
-     * @param parent
-     */
-    function SGraphyPolygonItem(PolygonItemData) {
-        var _this = _super.call(this, PolygonItemData.parent) || this;
-        _this.fillColor = new SColor('#F2F6FC');
-        _this.color = SColor.Black;
-        _this.width = 200;
-        _this.viewText = ''; //绘出的文案
-        _this.isBusiness = 1;
-        _this.cacheColor = SColor.Black; //需要缓存的边框
-        _this.cacheFillColor = new SColor('#F2F6FC'); //需要缓存的填充色
-        _this.cacheWidth = 100;
-        _this.businessType = ''; //类型
-        // 修改绘制路径格式
-        var newSpacePaths = PolygonItemData.space.Paths[0].map(function (item) {
-            return new SPoint(item.X, item.Y);
-        });
-        _this.pointArr = newSpacePaths;
-        // 填充色
-        _this.fillColor = PolygonItemData.space.fillColor ? PolygonItemData.space.fillColor : new SColor('#F2F6FC');
-        // 边框色
-        _this.color = PolygonItemData.space.color ? PolygonItemData.space.color : SColor.Black;
-        //边框宽度
-        _this.width = PolygonItemData.space.width ? PolygonItemData.space.width : 100;
-        //中心点
-        _this.centerOfGravityPoint = {
-            x: PolygonItemData.space.LocationPoint.X,
-            y: -PolygonItemData.space.LocationPoint.Y
-        };
-        //业务空间类型
-        _this.isBusiness = PolygonItemData.space.isBusiness ? PolygonItemData.space.isBusiness : 1;
-        //业务空间id
-        _this.businessId = PolygonItemData.space.businessId ? PolygonItemData.space.businessId : null;
-        //业务空间名称
-        _this.businessName = PolygonItemData.space.Name;
-        _this.initName = PolygonItemData.space.Name;
-        // 空间id
-        _this.id = PolygonItemData.space.id;
-        _this.viewText = PolygonItemData.space.Name;
-        //类型
-        _this.businessType = PolygonItemData.businessType ? PolygonItemData.businessType : '';
-        return _this;
-    }
-    /**
-     * Item对象边界区域
-     *
-     * @return SRect
-     */
-    SGraphyPolygonItem.prototype.boundingRect = function () {
-        var minX = this.pointArr[0].x;
-        var maxX = minX;
-        var minY = this.pointArr[0].y;
-        var maxY = minY;
-        for (var i = 1; i < this.pointArr.length; i++) {
-            if (this.pointArr[i].x < minX) {
-                minX = this.pointArr[i].x;
-            }
-            if (this.pointArr[i].y < minY) {
-                minY = this.pointArr[i].y;
-            }
-            if (this.pointArr[i].x > maxX) {
-                maxX = this.pointArr[i].x;
-            }
-            if (this.pointArr[i].y > maxY) {
-                maxY = this.pointArr[i].y;
-            }
-        }
-        return new SRect(minX, minY, maxX - minX, maxY - minY);
-    }; // Function boundingRect()
-    /**
-     * 判断点是否在区域内
-     *
-     * @param x
-     * @param y
-     */
-    SGraphyPolygonItem.prototype.contains = function (x, y) {
-        var nCross = 0, point = [x, y], APoints = this.pointArr, length = APoints.length, p1, p2, i, xinters;
-        p1 = APoints[0];
-        for (i = 1; i <= length; i++) {
-            p2 = APoints[i % length];
-            if (point[0] > Math.min(p1.x, p2.x) &&
-                point[0] <= Math.max(p1.x, p2.x)) {
-                if (point[1] <= Math.max(p1.y, p2.y)) {
-                    if (p1.x != p2.x) {
-                        //计算位置信息
-                        xinters = (point[0] - p1.x) * (p2.y - p1.y) / (p2.x - p1.x) + p1.y;
-                        if (p1.y == p2.y || point[1] <= xinters) {
-                            nCross++;
-                        }
-                    }
-                }
-            }
-            p1 = p2;
-        }
-        return nCross % 2 === 1;
-    };
-    /**
-     *
-     * @param text 修改的文字
-     * @param centerOfGravityPoint 文字的坐标
-     */
-    SGraphyPolygonItem.prototype.addText = function (text, centerOfGravityPoint) {
-        this.viewText = text;
-        if (centerOfGravityPoint) {
-            this.centerOfGravityPoint = centerOfGravityPoint;
-        }
-    };
-    /**
-     * Item绘制操作
-     *
-     * @param   painter       painter对象
-     * @param   rect          绘制区域
-     */
-    SGraphyPolygonItem.prototype.onDraw = function (painter, rect) {
-        if (this.pointArr.length) {
-            painter.pen.color = this.color;
-            painter.brush.color = this.fillColor;
-            painter.pen.lineWidth = this.width;
-            painter.drawPolygon(this.pointArr);
-            // let text = ''
-            // if (this.businessName || this.businessId) {
-            // 	text = '👇   ' + this.businessName
-            // } else {
-            // 	text = '⬇️   ' + this.initName
-            // }
-            painter.font.size = this.scale * 200;
-            painter.brush.color = SColor.Black;
-            // painter.drawText(text,this.centerOfGravityPoint.x,this.centerOfGravityPoint.y)
-            painter.drawText(this.viewText, this.centerOfGravityPoint.x, this.centerOfGravityPoint.y);
-        }
-    };
-    SGraphyPolygonItem.prototype.onClick = function (event) {
-        this.$emit('click', { item: this, event: event });
-        return true;
-    }; // Function onClick()
-    /**
-  * 鼠标双击事件
-  *
-  * @param   event   保存事件参数
-  * @return  boolean
-  */
-    SGraphyPolygonItem.prototype.onDoubleClick = function (event) {
-        this.$emit('doubleClick', event);
-        return true;
-    };
-    /**
-  * 鼠标按下事件
-  *
-  * @param   event   保存事件参数
-  * @return  boolean
-  */
-    SGraphyPolygonItem.prototype.onMouseDown = function (event) {
-        this.$emit('mouseDown', event);
-        return true;
-    }; // Function onMouseDown()
-    /**
-     * 鼠标移动事件
-     *
-     * @param   event   保存事件参数
-     * @return  boolean
-     */
-    SGraphyPolygonItem.prototype.onMouseMove = function (event) {
-        this.$emit('mouseMove', event);
-        return true;
-    }; // Function onMouseMove()
-    /**
-     * 释放鼠标事件
-     *
-     * @param   event   保存事件参数
-     * @return  boolean
-     */
-    SGraphyPolygonItem.prototype.onMouseUp = function (event) {
-        this.$emit('mouseUp', event);
-        return true;
-    };
-    return SGraphyPolygonItem;
-}(SGraphyItem)); // Class SGraphyPolygonItem
-export default SGraphyPolygonItem;

+ 0 - 220
src/assets/graphy/SGraphy/newItems/SGraphyPolygonItem.ts

@@ -1,220 +0,0 @@
-
-import { SGraphyItem, SMouseEvent } from '@sybotan-web/graphy'
-import { SRect, SSize, SPoint } from "@sybotan-web/base";
-import { SPen, SPainter, SColor, SFont } from "@sybotan-web/draw";
-import { dataItemPath, dataItem, dataSpaceItem, dataInterface, PolygonItemInterface } from './../dataType'   //传入参数的参数接口类型
-/**
- * 不规则多边形Item类
- *
- */
-export default class SGraphyPolygonItem extends SGraphyItem {
-	pointArr: SPoint[];
-	fillColor: SColor = new SColor('#F2F6FC');
-	color: SColor = SColor.Black;
-	width: number = 200;
-	businessId: string | null;
-	id: string | null;
-	centerOfGravityPoint: { x: number, y: number };
-	businessName: null | string | undefined;    //业务空间名字
-	initName: null | string | undefined;        //空间名字
-	viewText: string = ''                        //绘出的文案
-	isBusiness: number = 1;
-	cacheColor: SColor = SColor.Black             //需要缓存的边框
-	cacheFillColor: SColor = new SColor('#F2F6FC');        //需要缓存的填充色
-	cacheWidth: number = 100;
-	businessType: string = ''													//类型
-	// actived: boolean = false; 				//是否激活
-	/**
-	 * 构造函数
-	 *
-	 * @param pointArr									点坐标list
-	 * @param width											边框的宽度
-	 * @param color											边框的颜色
-	 * @param fillColor   							多边形填充的颜色 
-	 * @param businessId								空间id
-	 * @param businessName							空间名称
-	 * @param centerOfGravityPoint			中心点
-	 * @param isBusiness								状态
-	 * @param parent    
-	 */
-	constructor(PolygonItemData: PolygonItemInterface) {
-		super(PolygonItemData.parent);
-		// 修改绘制路径格式
-		let newSpacePaths: SPoint[] = PolygonItemData.space.Paths[0].map(item => {
-			return new SPoint(item.X, item.Y)
-		});
-		this.pointArr = newSpacePaths;
-		// 填充色
-		this.fillColor = PolygonItemData.space.fillColor ? PolygonItemData.space.fillColor : new SColor('#F2F6FC');
-		// 边框色
-		this.color = PolygonItemData.space.color ? PolygonItemData.space.color : SColor.Black;
-		//边框宽度
-		this.width = PolygonItemData.space.width ? PolygonItemData.space.width : 100;
-		//中心点
-		this.centerOfGravityPoint = {
-			x: PolygonItemData.space.LocationPoint.X,
-			y: -PolygonItemData.space.LocationPoint.Y
-		};
-		//业务空间类型
-		this.isBusiness = PolygonItemData.space.isBusiness ? PolygonItemData.space.isBusiness : 1;
-		//业务空间id
-		this.businessId = PolygonItemData.space.businessId ? PolygonItemData.space.businessId : null
-		//业务空间名称
-		this.businessName = PolygonItemData.space.Name;
-		this.initName = PolygonItemData.space.Name;
-		// 空间id
-		this.id = PolygonItemData.space.id;
-		this.viewText = PolygonItemData.space.Name;
-		//类型
-		this.businessType = PolygonItemData.businessType ? PolygonItemData.businessType : ''
-	}
-
-	/**
-	 * Item对象边界区域
-	 * 
-	 * @return SRect
-	 */
-	boundingRect(): SRect {
-		let minX = this.pointArr[0].x;
-		let maxX = minX;
-		let minY = this.pointArr[0].y;
-		let maxY = minY;
-		for (let i = 1; i < this.pointArr.length; i++) {
-			if (this.pointArr[i].x < minX) {
-				minX = this.pointArr[i].x
-			}
-			if (this.pointArr[i].y < minY) {
-				minY = this.pointArr[i].y
-			}
-			if (this.pointArr[i].x > maxX) {
-				maxX = this.pointArr[i].x
-			}
-			if (this.pointArr[i].y > maxY) {
-				maxY = this.pointArr[i].y
-			}
-		}
-
-		return new SRect(
-			minX,
-			minY,
-			maxX - minX,
-			maxY - minY
-		);
-	} // Function boundingRect()
-
-	/**
-	 * 判断点是否在区域内
-	 * 
-	 * @param x 
-	 * @param y 
-	 */
-	contains(x: number, y: number): boolean {
-		let nCross = 0,
-			point = [x, y],
-			APoints = this.pointArr,
-			length = APoints.length,
-			p1, p2, i, xinters;
-		p1 = APoints[0];
-		for (i = 1; i <= length; i++) {
-			p2 = APoints[i % length];
-			if (
-				point[0] > Math.min(p1.x, p2.x) &&
-				point[0] <= Math.max(p1.x, p2.x)
-			) {
-				if (point[1] <= Math.max(p1.y, p2.y)) {
-					if (p1.x != p2.x) {
-						//计算位置信息
-						xinters = (point[0] - p1.x) * (p2.y - p1.y) / (p2.x - p1.x) + p1.y;
-						if (p1.y == p2.y || point[1] <= xinters) {
-							nCross++
-						}
-					}
-				}
-			}
-			p1 = p2;
-		}
-		return nCross % 2 === 1
-	}
-	/**
-	 * 
-	 * @param text 修改的文字
-	 * @param centerOfGravityPoint 文字的坐标
-	 */
-	addText(text: string, centerOfGravityPoint?: { x: number, y: number }) {
-		this.viewText = text;
-		if (centerOfGravityPoint) {
-			this.centerOfGravityPoint = centerOfGravityPoint
-		}
-	}
-	/**
-	 * Item绘制操作
-	 *
-	 * @param   painter       painter对象
-	 * @param   rect          绘制区域
-	 */
-	onDraw(painter: SPainter, rect?: SRect): void {
-		if (this.pointArr.length) {
-			painter.pen.color = this.color;
-			painter.brush.color = this.fillColor;
-			painter.pen.lineWidth = this.width;
-			painter.drawPolygon(this.pointArr)
-			// let text = ''
-			// if (this.businessName || this.businessId) {
-			// 	text = '👇   ' + this.businessName
-			// } else {
-			// 	text = '⬇️   ' + this.initName
-			// }
-			painter.font.size = this.scale * 200;
-			painter.brush.color = SColor.Black;
-			// painter.drawText(text,this.centerOfGravityPoint.x,this.centerOfGravityPoint.y)
-			painter.drawText(this.viewText, this.centerOfGravityPoint.x, this.centerOfGravityPoint.y)
-		}
-	}
-	onClick(event: SMouseEvent): boolean {
-		this.$emit('click', { item: this, event: event });
-		return true;
-	} // Function onClick()
-	/**
-  * 鼠标双击事件
-  *
-  * @param   event   保存事件参数
-  * @return  boolean
-  */
-	onDoubleClick(event: SMouseEvent): boolean {
-		this.$emit('doubleClick', event);
-		return true;
-	}
-	/**
-  * 鼠标按下事件
-  *
-  * @param   event   保存事件参数
-  * @return  boolean
-  */
-	onMouseDown(event: SMouseEvent): boolean {
-		this.$emit('mouseDown', event);
-		return true;
-	} // Function onMouseDown()
-
-	/**
-	 * 鼠标移动事件
-	 *
-	 * @param   event   保存事件参数
-	 * @return  boolean
-	 */
-	onMouseMove(event: SMouseEvent): boolean {
-		this.$emit('mouseMove', event);
-		return true;
-	} // Function onMouseMove()
-
-	/**
-	 * 释放鼠标事件
-	 *
-	 * @param   event   保存事件参数
-	 * @return  boolean
-	 */
-	onMouseUp(event: SMouseEvent): boolean {
-		this.$emit('mouseUp', event);
-		return true;
-	}
-
-} // Class SGraphyPolygonItem

+ 0 - 74
src/assets/graphy/SGraphy/newItems/SGraphyRectItem.js

@@ -1,74 +0,0 @@
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-import { SGraphyItem } from '@sybotan-web/graphy';
-import { SRect } from "@sybotan-web/base";
-import { SColor } from "@sybotan-web/draw";
-/**
- * 矩形Item类
- *
- */
-var SGraphyRectItem = /** @class */ (function (_super) {
-    __extends(SGraphyRectItem, _super);
-    /**
-     * 构造函数
-     *
-     * @param startX      线的起始x坐标
-   * @param startY      线的起始y坐标
-   * @param width       矩形的宽度
-   * @param height      矩形的宽度
-     * @param color       矩形边框的颜色
-     * @param fillColor   矩形填充的颜色
-     * @param parent
-   * @param isVirtual   是否为虚线
-     */
-    function SGraphyRectItem(parent, startX, startY, width, height, fillColor, color, isVirtual) {
-        if (fillColor === void 0) { fillColor = SColor.White; }
-        if (color === void 0) { color = SColor.Black; }
-        if (isVirtual === void 0) { isVirtual = false; }
-        var _this = _super.call(this, parent) || this;
-        _this.fillColor = SColor.White;
-        _this.color = SColor.Black;
-        _this.isVirtual = false;
-        _this.startX = startX;
-        _this.startY = startY;
-        _this.width = width;
-        _this.height = height;
-        _this.color = color;
-        _this.fillColor = fillColor;
-        _this.isVirtual = isVirtual;
-        return _this;
-    } // Constructor()
-    /**
-     * Item对象边界区域
-     *
-     * @return SRect
-     */
-    SGraphyRectItem.prototype.boundingRect = function () {
-        return new SRect(this.startX, this.startY, this.width, this.height);
-    }; // Function boundingRect()
-    /**
-     * Item绘制操作
-     *
-     * @param   painter       painter对象
-     * @param   rect          绘制区域
-     */
-    SGraphyRectItem.prototype.onDraw = function (painter, rect) {
-        // painter.pen = new SPen(this.color, this.width);
-        painter.pen.color = this.color;
-        painter.brush.color = this.fillColor;
-        painter.drawRect(this.startX, this.startY, this.width, this.height);
-    };
-    return SGraphyRectItem;
-}(SGraphyItem)); // Class SGraphyRectItem
-export default SGraphyRectItem;

+ 0 - 76
src/assets/graphy/SGraphy/newItems/SGraphyRectItem.ts

@@ -1,76 +0,0 @@
-
-import { SGraphyItem } from '@sybotan-web/graphy'
-import { SRect, SSize, SPoint } from "@sybotan-web/base";
-import { SPen, SPainter, SColor } from "@sybotan-web/draw";
-
-/**
- * 矩形Item类
- *
- */
-export default class SGraphyRectItem extends SGraphyItem {
-  startX: number;
-  startY: number;
-  width: number;
-  height: number;
-  fillColor: SColor = SColor.White;
-  color: SColor = SColor.Black;
-  isVirtual: boolean = false;
-	/**
-	 * 构造函数
-	 *
-	 * @param startX      线的起始x坐标
-   * @param startY      线的起始y坐标
-   * @param width       矩形的宽度
-   * @param height      矩形的宽度
-	 * @param color       矩形边框的颜色 
-	 * @param fillColor   矩形填充的颜色 
-	 * @param parent    
-   * @param isVirtual   是否为虚线
-	 */
-  constructor(
-    parent: SGraphyItem | null,
-    startX: number,
-    startY: number,
-    width: number,
-    height: number,
-    fillColor: SColor = SColor.White,
-    color: SColor = SColor.Black,
-    isVirtual: boolean = false
-  ) {
-    super(parent);
-    this.startX = startX
-    this.startY = startY
-    this.width = width;
-    this.height = height
-    this.color = color;
-    this.fillColor = fillColor;
-    this.isVirtual = isVirtual;
-  } // Constructor()
-
-	/**
-	 * Item对象边界区域
-	 * 
-	 * @return SRect
-	 */
-  boundingRect(): SRect {
-    return new SRect(
-      this.startX,
-      this.startY,
-      this.width,
-      this.height
-    );
-  } // Function boundingRect()
-
-	/**
-	 * Item绘制操作
-	 *
-	 * @param   painter       painter对象
-	 * @param   rect          绘制区域
-	 */
-  onDraw(painter: SPainter, rect?: SRect): void {
-    // painter.pen = new SPen(this.color, this.width);
-    painter.pen.color = this.color;
-    painter.brush.color = this.fillColor;
-    painter.drawRect(this.startX, this.startY, this.width, this.height)
-  }
-} // Class SGraphyRectItem

+ 0 - 92
src/assets/graphy/SGraphy/newItems/SGraphyWallItem.js

@@ -1,92 +0,0 @@
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-import { SGraphyItem } from '@sybotan-web/graphy';
-import { SRect } from "@sybotan-web/base";
-import { SColor } from "@sybotan-web/draw";
-/**
- * 墙Item类
- *
- */
-var SGraphyWallItem = /** @class */ (function (_super) {
-    __extends(SGraphyWallItem, _super);
-    /**
-     * 构造函数
-     *
-     * @param pointArr  		点坐标list
-     * @param isVirtual 		墙类型(实体墙-虚拟墙)
-     * @param color  				墙的颜色
-     * @param fillColor  		墙的填充颜色
-     * @param width   			墙的宽度
-     * @param parent
-     */
-    function SGraphyWallItem(parent, pointArr, isVirtual, fillColor, color, width) {
-        if (isVirtual === void 0) { isVirtual = false; }
-        if (fillColor === void 0) { fillColor = SColor.White; }
-        if (color === void 0) { color = SColor.Black; }
-        if (width === void 0) { width = 1; }
-        var _this = _super.call(this, parent) || this;
-        _this.isVirtual = false;
-        _this.fillColor = SColor.White;
-        _this.color = SColor.Black;
-        _this.width = 1;
-        _this.isVirtual = isVirtual;
-        _this.pointArr = pointArr;
-        _this.color = color;
-        _this.fillColor = fillColor;
-        _this.width = width;
-        return _this;
-    } // Constructor()
-    /**
-     * Item对象边界区域
-     *
-     * @return SRect
-     */
-    SGraphyWallItem.prototype.boundingRect = function () {
-        var minX = this.pointArr[0].x;
-        var maxX = minX;
-        var minY = this.pointArr[0].y;
-        var maxY = minY;
-        for (var i = 1; i < this.pointArr.length; i++) {
-            if (this.pointArr[i].x < minX) {
-                minX = this.pointArr[i].x;
-            }
-            if (this.pointArr[i].y < minY) {
-                minY = this.pointArr[i].y;
-            }
-            if (this.pointArr[i].x > maxX) {
-                maxX = this.pointArr[i].x;
-            }
-            if (this.pointArr[i].y > maxY) {
-                maxY = this.pointArr[i].y;
-            }
-        }
-        return new SRect(minX, minY, maxX - minX, maxY - minY);
-    }; // Function boundingRect()
-    /**
-     * Item绘制操作
-     *
-     * @param   painter       painter对象
-     * @param   rect          绘制区域
-     */
-    SGraphyWallItem.prototype.onDraw = function (painter, rect) {
-        if (this.pointArr.length) {
-            // painter.pen = new SPen(this.color, this.width);
-            painter.pen.color = this.color;
-            painter.brush.color = this.fillColor;
-            painter.drawPolyline(this.pointArr);
-        }
-    };
-    return SGraphyWallItem;
-}(SGraphyItem)); // Class SGraphyPolygonItem
-export default SGraphyWallItem;

+ 0 - 89
src/assets/graphy/SGraphy/newItems/SGraphyWallItem.ts

@@ -1,89 +0,0 @@
-
-import { SGraphyItem } from '@sybotan-web/graphy'
-import { SRect, SSize, SPoint } from "@sybotan-web/base";
-import { SPen, SPainter, SColor } from "@sybotan-web/draw";
-
-/**
- * 墙Item类
- *
- */
-export default class SGraphyWallItem extends SGraphyItem {
-	pointArr: SPoint[];
-	isVirtual: boolean = false;
-	fillColor: SColor = SColor.White;
-	color: SColor = SColor.Black;
-	width: number = 1;
-	/**
-	 * 构造函数
-	 *
-	 * @param pointArr  		点坐标list
-	 * @param isVirtual 		墙类型(实体墙-虚拟墙)
-	 * @param color  				墙的颜色
-	 * @param fillColor  		墙的填充颜色
-	 * @param width   			墙的宽度
-	 * @param parent    
-	 */
-	constructor(
-		parent: SGraphyItem | null,
-		pointArr: SPoint[],
-		isVirtual: boolean = false,
-		fillColor: SColor = SColor.White,
-		color: SColor = SColor.Black,
-		width: number = 1,
-	) {
-		super(parent);
-		this.isVirtual = isVirtual;
-		this.pointArr = pointArr;
-		this.color = color;
-		this.fillColor = fillColor;
-		this.width = width;
-	} // Constructor()
-
-	/**
-	 * Item对象边界区域
-	 * 
-	 * @return SRect
-	 */
-	boundingRect(): SRect {
-		let minX = this.pointArr[0].x;
-		let maxX = minX;
-		let minY = this.pointArr[0].y;
-		let maxY = minY;
-		for (let i = 1; i < this.pointArr.length; i++) {
-			if (this.pointArr[i].x < minX) {
-				minX = this.pointArr[i].x
-			}
-			if (this.pointArr[i].y < minY) {
-				minY = this.pointArr[i].y
-			}
-			if (this.pointArr[i].x > maxX) {
-				maxX = this.pointArr[i].x
-			}
-			if (this.pointArr[i].y > maxY) {
-				maxY = this.pointArr[i].y
-			}
-		}
-
-		return new SRect(
-			minX,
-			minY,
-			maxX - minX,
-			maxY - minY
-		);
-	} // Function boundingRect()
-
-	/**
-	 * Item绘制操作
-	 *
-	 * @param   painter       painter对象
-	 * @param   rect          绘制区域
-	 */
-	onDraw(painter: SPainter, rect?: SRect): void {
-		if (this.pointArr.length) {
-			// painter.pen = new SPen(this.color, this.width);
-			painter.pen.color = this.color;
-			painter.brush.color = this.fillColor;
-			painter.drawPolyline(this.pointArr)
-		}
-	}
-} // Class SGraphyPolygonItem

+ 0 - 40
src/assets/graphy/SGraphy/types/SPoint.js

@@ -1,40 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-
-/**
- * 坐标点
- *
- * @author  Andy
- */
-export default class SPoint {
-  /**
-   * 构造函数
-   *
-   * @param   x     X坐标
-   * @param   y     Y坐标
-   */
-  constructor(x, y) {
-    this.x = x
-    this.y = y
-  } // constructor
-} // Class SPoint

+ 0 - 169
src/assets/graphy/SGraphy/types/SRect.js

@@ -1,169 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-
-/**
- * 矩形
- *
- * @author  Andy
- */
-export default class SRect {
-  /**
-   * 构造函数
-   *
-   * @param   x       X坐标
-   * @param   y       Y坐标
-   * @param   width   宽度
-   * @param   height  高度
-   */
-  constructor(x = 0, y = 0, width = 0, height = 0) {
-    this._x = x
-    this._y = y
-    this._width = Math.max(width, 0)
-    this._height = Math.max(height, 0)
-  } // constructor
-
-  /**
-   * left属性
-   */
-  get left() {
-    return this._x
-  }
-  set left(value) {
-    this._x = value
-  }
-
-  /**
-   * right属性
-   */
-  get right() {
-    return this._x + this._width
-  }
-  set right(value) {
-    this._width = Math.max(value - this._x, 0)
-  }
-
-  /**
-   * top属性
-   */
-  get top() {
-    return this._y
-  }
-  set top(value) {
-    this._y = value
-  }
-
-  /**
-   * top属性
-   */
-  get bottom() {
-    return this._y + this._height
-  }
-  set bottom(value) {
-    this._height = Math.max(value - this._y, 0)
-  }
-
-  /**
-   * x属性
-   *
-   * @return {*}
-   */
-  get x() {
-    return this._x
-  }
-  set x(value) {
-    this._x = value
-  }
-
-  /**
-   * x属性
-   *
-   * @return {*}
-   */
-  get y() {
-    return this._y
-  }
-  set y(value) {
-    this._y = value
-  }
-
-  /**
-   * width 属性
-   *
-   * @return {number}
-   */
-  get width() {
-    return this._width
-  }
-  set width(value) {
-    this._width = Math.max(value, 0)
-  }
-
-  /**
-   * height 属性
-   * @return {number}
-   */
-  get height() {
-    return this._height
-  }
-  set height(value) {
-    this._height = Math.max(value, 0)
-  }
-
-  /**
-   * 判断矩形空间是否包含点x,y
-   *
-   * @param   x       横坐标(当前item)
-   * @param   y       纵坐标(当前item)
-   * @return  boolean
-   */
-  contains(x, y) {
-    return (x >= this.x && x <= this.right) && (y >= this.top && y <= this.bottom)
-  } // Function contains()
-
-  /**
-   * 调整Rect位置
-   *
-   * @param x
-   * @param y
-   * @return  SRect
-   */
-  adjusted(x, y = null) {
-    if (typeof (x) === 'object') {     // 如果传入的是SPoint对象
-      return new SRect(this.x + x.x, this.y + x.y, this.width, this.height)
-    }
-
-    return new SRect(this.x + x, this.y + y, this.width, this.height)
-  } // Function adjusted()
-
-  /**
-   * 合并rect
-   *
-   * @param   rect
-   */
-  union(rect) {
-    this.left = Math.min(this.left, rect.left)
-    this.top = Math.min(this.top, rect.top)
-    this.right = Math.max(this.right, rect.right)
-    this.bottom = Math.max(this.bottom, rect.bottom)
-  } // Function union()
-} // Class SRect

+ 0 - 25
src/assets/graphy/SGraphy/until/pako.js

@@ -1,25 +0,0 @@
-// import pako from 'pako'
-var pako = require('pako');
-var funcTo = atob;
-console.log(funcTo);
-var pakoObj = {
-    unzip: function unzip(b64Data) {
-        // console.log(b64Data)
-        var strData = funcTo(b64Data);
-        // Convert binary string to character-number array
-        var charData = strData.split('').map(function (x) { return x.charCodeAt(0); });
-        // console.log("charData", charData)
-        // Turn number array into byte-array
-        var binData = new Uint8Array(charData);
-        // // unzip
-        var data = pako.inflate(binData, { to: 'string' });
-        return eval("(" + data + ")");
-    },
-    // 压缩
-    zip: function (str) {
-        //escape(str)  --->压缩前编码,防止中午乱码
-        var binaryString = pako.gzip(escape(str), { to: 'string' });
-        return binaryString;
-    }
-};
-export default pakoObj;

+ 0 - 27
src/assets/graphy/SGraphy/until/pako.ts

@@ -1,27 +0,0 @@
-// import pako from 'pako'
-let pako = require('pako');
-let funcTo = atob
-console.log(funcTo)
-
-const pakoObj = {
-    unzip: function unzip(b64Data:any) {
-        // console.log(b64Data)
-        var strData = funcTo(b64Data);
-        // Convert binary string to character-number array
-        var charData = strData.split('').map(function(x) { return x.charCodeAt(0); });
-        // console.log("charData", charData)
-        // Turn number array into byte-array
-        var binData = new Uint8Array(charData);
-        // // unzip
-        var data = pako.inflate(binData, { to: 'string' });
-        return eval("(" + data + ")");
-    },
-    // 压缩
-    zip: function(str:any) {
-        //escape(str)  --->压缩前编码,防止中午乱码
-        var binaryString = pako.gzip(escape(str), { to: 'string' });
-        return binaryString;
-    }
-}
-
-export default pakoObj

+ 0 - 22
src/assets/graphy/SGraphy/until/tool.js

@@ -1,22 +0,0 @@
-var tools = {
-    changeMap: function (arr, k, name) {
-        var data = arr.map(function (items) {
-            if (items[name] && items[name].length) {
-                items[name].map(function (children) {
-                    if (Array.isArray(children)) {
-                        return children.map(function (res) {
-                            res.Y = res.Y * k;
-                            return res;
-                        });
-                    }
-                    else {
-                        children.Y = children.Y * k;
-                        return children;
-                    }
-                });
-            }
-        });
-        return data;
-    }
-};
-export default tools;

+ 0 - 21
src/assets/graphy/SGraphy/until/tool.ts

@@ -1,21 +0,0 @@
-let tools = {
-    changeMap(arr: any, k: any, name: any) {
-        let data = arr.map((items: any) => {
-            if (items[name] && items[name].length) {
-                items[name].map((children: any) => {
-                    if (Array.isArray(children)) {
-                        return children.map(res => {
-                            res.Y = res.Y * k
-                            return res
-                        })
-                    } else {
-                        children.Y = children.Y * k
-                        return children
-                    }
-                })
-            }
-        })
-        return data
-    }
-}
-export default tools

+ 0 - 14
src/assets/graphy/index.js

@@ -1,14 +0,0 @@
-
-import SGraphyPolygonItem from './SGraphy/newItems/SGraphyPolygonItem.js'
-import SGraphyCircleItem from './SGraphy/items/SGraphyCircleItem'
-import SGraphyImageItem from './SGraphy/items/SGraphyImageItem'
-import SGraphyPillarItems from './SGraphy/items/SGraphyPillarItems'
-import SGraphyTextItems from './SGraphy/items/SGraphyTextItems'
-import SGraphyVirtualItem from './SGraphy/items/SGraphyVirtualItem'
-import mainScene from './SGraphy/mainScene.js'
-import SGraphyRectItem from './SGraphy/newItems/SGraphyRectItem.js' 
-
-import SGraphyView from './SGraphy/SGraphyView';
-import SGraphyScene from './SGraphy/SGraphyScene'
-import SGraphyLineItem from './SGraphy/items/SGraphyLineItem'
-export {SGraphyView,SGraphyScene,SGraphyLineItem,mainScene,SGraphyRectItem, SGraphyPolygonItem, SGraphyCircleItem, SGraphyImageItem, SGraphyPillarItems, SGraphyTextItems, SGraphyVirtualItem }

BIN
src/assets/image/no-data.png


+ 0 - 70
src/assets/js/items/SGraphyCircleItem.js

@@ -1,70 +0,0 @@
-/**
- * 线条
- */
-import SGraphyItem from '../../node-templete/SGraphy/SGraphyItem'
-import SRect from '../../node-templete/SGraphy/types/SRect';
-
-export default class SGraphyCircleItem extends SGraphyItem {
-    /**
-     * 构造函数
-     * 
-     * @param X  圆中心点X
-     * @param Y  圆中心点Y
-     * @param Radius   圆的半径
-     * 
-     * @param color  线的颜色
-     * @param isVirtual    是否为虚线
-     */
-    constructor(X, Y, color, Radius, isSolid, name, parent = null) {
-        super(parent)
-        this.X = X
-        this.Y = Y
-        this.color = color
-        this.Radius = Radius
-        this.isSolid = isSolid
-        this.minX = this.X - this.Radius
-        this.minY = this.Y - this.Radius
-        this.maxX = this.X + this.Radius
-        this.maxY = this.Y + this.Radius
-        this.sAngle = null || 0
-        this.eAngle = null || 2 * Math.PI
-        this.name = name
-        this.type = 6
-        this.lineWidth = null
-    }
-
-    /**
-     * Item对象边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect() {
-        return new SRect(this.minX, this.minY, this.maxX - this.minX, this.maxY - this.minY)
-    }
-
-    /**
-     * 绘制线条
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-
-    onDraw(canvas, rect) {
-        canvas.lineWidth = this.lineWidth || 240
-        canvas.strokeStyle = this.color || '#000'
-        canvas.fillStyle = this.color || '#000'
-        canvas.beginPath();
-        canvas.arc(this.X, this.Y, this.Radius, this.sAngle, this.eAngle);
-        if (!!this.isSolid) {
-            canvas.fillStyle = this.color; //填充颜色,默认是黑色
-            canvas.fill(); //画实心圆
-        }
-        canvas.stroke()
-        if (!!this.name) {
-            canvas.font = "oblique small-caps bold " + this.lineWidth * 10 + "px Arial";
-            // canvas.font = "oblique small-caps bold " + 10 + "px Arial";
-            canvas.fillStyle = 'green'
-            canvas.fillText(this.name, this.X, this.Y);
-        }
-    }
-}

+ 0 - 59
src/assets/js/items/SGraphyImageItem.js

@@ -1,59 +0,0 @@
-/**
- * 图片
- * 
- * 
- */
-import SGraphyItem from '../../node-templete/SGraphy/SGraphyItem'
-import SRect from '../../node-templete/SGraphy/types/SRect'
-export default class SGraphyImageItem extends SGraphyItem {
-    /**
-     * 构造函数
-     * 
-     * @param width  图片宽度
-     * @param height  图片高度
-     * @param url    图片url
-     * @param id     point的Id
-     * @param X      图片向x轴的偏移量
-     * @param Y      图片向y轴的偏移量
-     * @param downUrl 图片按下时的url
-     * @param parent  指向父元素
-     */
-    constructor(width, height, url, id, X, Y, downUrl, parent = null) {
-            super(parent)
-            this.width = width
-            this.height = height
-            this.url = url
-            this.id = id
-            this.X = X
-            this.Y = Y
-            this.downUrl = downUrl
-            this.imgFalg = false
-            this.img = new Image()
-            this.img.src = this.url
-            this.img.style.width = this.width
-            this.img.style.height = this.height
-            this.canMove = true
-            this.type = 1
-        } //constructor
-
-    /**
-     * Item对象边界区域
-     *
-     * @return  SRect
-     */
-    boundingRect() {
-            return new SRect(0, 0, this.width * 100, this.height * 100)
-        } // Function boundingRect()
-
-    /**
-     * 绘制图片
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-    onDraw(canvas, rect) {
-        // canvas.moveTo(this.X, this.Y)
-        // canvas.drawImage(this.img, 0, 0, this.width, this.height, this.X, this.Y, this.width * 100, this.height * 100)
-        canvas.drawImage(this.img, 0, 0, this.width, this.height, 0, 0, this.width * 100, this.height * 100)
-    }
-}

+ 0 - 66
src/assets/js/items/SGraphyLineItem.js

@@ -1,66 +0,0 @@
-/**
- * 线条
- */
-import SGraphyItem from '../../node-templete/SGraphy/SGraphyItem'
-import SRect from '../../node-templete/SGraphy/types/SRect';
-
-export default class SGraphyLineItem extends SGraphyItem {
-    /**
-     * 构造函数
-     * 
-     * @param startX  线的起始x坐标
-     * @param startY  线的起始y坐标
-     * @param endX    线的终止x坐标
-     * @param endY    线的终止y坐标
-     * @param width   线的宽度
-     * 
-     * @param color  线的颜色
-     * @param isVirtual    是否为虚线
-     */
-    constructor(startX, startY, endX, endY, color, width, isVirtual, parent = null) {
-        super(parent)
-        this.startX = startX
-        this.startY = startY
-        this.endX = endX
-        this.endY = endY
-        this.color = color
-        this.width = width
-        this.isVirtual = isVirtual
-        this.minX = Math.min(this.startX, this.endX)
-        this.minY = Math.min(this.startY, this.endY)
-        this.maxX = Math.max(this.startX, this.endX)
-        this.maxY = Math.max(this.startY, this.endY)
-        this.name = null
-        this.type = 2
-        this.lineWidth = null
-    }
-
-    /**
-     * Item对象边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect() {
-        return new SRect(this.minX, this.minY, this.maxX - this.minX, this.maxY - this.minY)
-    }
-
-    /**
-     * 绘制线条
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-
-    onDraw(canvas, rect) {
-        canvas.lineWidth = this.lineWidth || this.width || 240
-        canvas.strokeStyle = this.color || '#000'
-        if (this.isVirtual) {
-            canvas.setLineDash([100, 80])
-            canvas.strokeStyle = 'green'
-        }
-        canvas.beginPath();
-        canvas.moveTo(this.startX, this.startY)
-        canvas.lineTo(this.endX, this.endY)
-        canvas.stroke()
-    }
-}

+ 0 - 76
src/assets/js/items/SGraphyPillarItems.js

@@ -1,76 +0,0 @@
-/**
- * 不规则多边形,元空间
- */
-import SGraphyItem from '../../node-templete/SGraphy/SGraphyItem'
-import SRect from '../../node-templete/SGraphy/types/SRect';
-
-function getItem(arr, name) {
-    if (arr && arr.length) {
-        return arr.map(item => {
-            return item[name]
-        })
-    } else {
-        return [0]
-    }
-}
-
-
-export default class SGraphyPolygonItem extends SGraphyItem {
-    /**
-     * 
-     * 构造函数
-     * 
-     * @param jsonArr  空间线条数组
-     * @param lineWidth    空间线条的宽度
-     * @param color    空间线条的颜色
-     * @param fillColor  空间的填充颜色
-     * 
-     */
-    constructor(jsonArr, lineWidth, color, fillColor, parent = null) {
-            super(parent)
-            this.jsonArr = jsonArr
-            this.lineWidth = lineWidth
-            this.color = color
-            this.fillColor = fillColor
-            let xArr = getItem(this.jsonArr, 'X')
-            let yArr = getItem(this.jsonArr, 'Y')
-            this.minX = Math.min.apply(null, xArr) || 0
-            this.minY = Math.min.apply(null, yArr) || 0
-            this.width = Math.max.apply(null, xArr) - this.minX || 0
-            this.height = Math.max.apply(null, yArr) - this.minY || 0
-            this.type = 5
-        } //constructor
-
-    /**
-     * Item的边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect() {
-        return new SRect(this.minX, this.minY, this.width, this.height)
-    }
-
-    /**
-     * 绘制不规则多边形
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-    onDraw(canvas, rect) {
-        if (this.jsonArr && this.jsonArr.length) {
-            canvas.beginPath();
-            canvas.lineWidth = 240
-            canvas.lineCap = 'butt';
-            canvas.strokeStyle = this.color || '#000'
-            canvas.fillStyle = this.fillColor || '#fff'
-            canvas.moveTo(this.jsonArr[0].X, this.jsonArr[0].Y)
-            for (let i = 1; i < this.jsonArr.length; i++) {
-                canvas.lineTo(this.jsonArr[i].X, this.jsonArr[i].Y)
-            }
-            canvas.lineTo(this.jsonArr[0].X, this.jsonArr[0].Y)
-            canvas.closePath()
-            canvas.fill()
-            canvas.stroke()
-        }
-    }
-}

+ 0 - 257
src/assets/js/items/SGraphyPolygonItem.js

@@ -1,257 +0,0 @@
-/**
- * 不规则多边形,元空间
- */
-import SGraphyItem from '../../node-templete/SGraphy/SGraphyItem'
-import SRect from '../../node-templete/SGraphy/types/SRect';
-
-function getItem(arr, name) {
-    if (arr && arr.length) {
-        return arr.map(item => {
-            return item[name]
-        })
-    } else {
-        return [0]
-    }
-}
-
-function changeArr(arr) {
-    if (arr && arr.length) {
-        return arr.map(item => {
-            return [
-                item.X, item.Y
-            ]
-        })
-    } else {
-        return [0]
-    }
-}
-/**
- * 求不规则多边形重点
- * @param {points} 数组,多个点位坐标
- *  
- * @return {x, y} 重点点位坐标
- */
-// function getCenterOfGravityPoint(points) {
-//     let area = 0,
-//         gx = 0,
-//         gy = 0,
-//         i = 1,
-//         px1, px2, py1, py2, temp, length = points.length;
-//     for (i; i <= length; i++) {
-//         px1 = points[(i % length)].X;
-//         px2 = points[(i - 1)].X;
-//         py1 = points[(i % length)].Y;
-//         py2 = points[(i - 1)].Y;
-//         temp = (px1 * py2 - py1 * px2) / 2
-//         area += temp;
-//         gx += temp * (px1 + px2) / 3
-//         gy += temp * (py1 + py2) / 3
-//     }
-
-//     gx = gx / area
-//     gy = gy / area
-
-//     return {
-//         x: gx,
-//         y: gy
-//     }
-// }
-
-
-export default class SGraphyPolygonItem extends SGraphyItem {
-    /**
-     * 
-     * 构造函数
-     * 
-     * @param jsonArr  空间线条数组
-     * @param lineWidth    空间线条的宽度
-     * @param color    空间线条的颜色
-     * @param fillColor  空间的填充颜色
-     * 
-     */
-    constructor(jsonArr, lineWidth, color, fillColor, id, centerOfGravityPoint, name, paths, faceColor, businessColor, isBusiness, parent = null) {
-            super(parent)
-            this.jsonArr = jsonArr
-            this.lineWidth = lineWidth
-            this.color = color
-            this.id = id
-            this.name = name //实际渲染名字
-            this.fillColor = fillColor
-            let xArr = getItem(this.jsonArr, 'X')
-            let yArr = getItem(this.jsonArr, 'Y')
-            this.minX = Math.min.apply(null, xArr) || 0
-            this.maxX = Math.max.apply(null, xArr) || 0
-            this.maxY = Math.max.apply(null, yArr) || 0
-            this.minY = Math.min.apply(null, yArr) || 0
-            this.width = this.maxX - this.minX || 0
-            this.height = this.maxY - this.minY || 0
-            this.type = 3
-            this.businessName = null
-            this.faceColor = faceColor || '#cacaca' //颜色
-            this.businessId = null //业务空间id
-            this.isBusiness = isBusiness || 1 //状态
-            this.businessColor = businessColor || 'rgba(68,161,140,.4)' //业务空间颜色
-            this.businessFaceColor = "#333"
-            this.containsArr = changeArr(this.jsonArr)
-            this.paths = null
-            if (paths && paths.length > 1) {
-                this.paths = paths.map(item => {
-                    if (item && item.length) {
-                        return changeArr(item)
-                    } else {
-                        return undefined
-                    }
-                }).filter(d => d)
-            }
-            this.centerOfGravityPoint = centerOfGravityPoint
-        } //constructor
-
-    /**
-     * Item的边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect() {
-        return new SRect(this.minX, this.minY, this.width, this.height)
-    }
-
-
-    /**
-     * 判断item是否包含点x,y
-     *
-     * @param   x       横坐标(当前item)
-     * @param   y       纵坐标(当前item)
-     *
-     * @return  boolean
-     */
-    contains(x, y) {
-        let falg = false,
-            isFullIn = false //是否在镂空图形内
-        if (this.paths instanceof Array) {
-            for (let i = 1; i < this.paths.length; i++) {
-                if (this.isIn(x, y, this.paths[i])) {
-                    //位置信息在镂空图形内
-                    isFullIn = true
-                    break
-                }
-            }
-            // //如果鼠标在大图形内切在镂空图形中返回false
-            if (this.isIn(x, y, this.containsArr) && isFullIn) {
-                falg = false
-            } else if (this.isIn(x, y, this.containsArr) && !isFullIn) {
-                falg = true
-            } else {
-                falg = this.isIn(x, y, this.containsArr)
-            }
-        } else {
-            falg = this.isIn(x, y, this.containsArr)
-        }
-        return falg
-    }
-
-
-    isIn(x, y, json) {
-        let nCross = 0,
-            point = typeof(x) == 'object' ? [x.x, x.y] : [x, y],
-            APoints = json,
-            length = APoints.length,
-            p1, p2, i, xinters;
-        p1 = APoints[0];
-        for (i = 1; i <= length; i++) {
-            p2 = APoints[i % length];
-            if (
-                point[0] > Math.min(p1[0], p2[0]) &&
-                point[0] <= Math.max(p1[0], p2[0])
-            ) {
-                if (point[1] <= Math.max(p1[1], p2[1])) {
-                    if (p1[0] != p2[0]) {
-                        //计算位置信息
-                        xinters = (point[0] - p1[0]) * (p2[1] - p1[1]) / (p2[0] - p1[0]) + p1[1];
-                        if (p1[1] == p2[1] || point[1] <= xinters) {
-                            nCross++
-                        }
-                    }
-                }
-            }
-            p1 = p2;
-        }
-        if (nCross % 2 == 0) {
-            return false
-        } else {
-            return true
-        }
-
-    }
-
-    /**
-     * 绘制不规则多边形
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-    onDraw(canvas, rect) {
-        if (this.jsonArr && this.jsonArr.length) {
-            canvas.beginPath();
-            canvas.lineWidth = 220
-            canvas.lineCap = 'butt';
-            if (this.isBusiness == 1) {
-                canvas.strokeStyle = this.color || '#000'
-                canvas.fillStyle = this.fillColor
-            } else if (this.isBusiness == 2) {
-                //已有id 的业务空间
-                canvas.strokeStyle = this.color || '#000'
-                canvas.fillStyle = this.businessColor || '#fff'
-            } else if (this.isBusiness == 3) {
-                //被选择的元空间
-                canvas.strokeStyle = this.color || '#000'
-                canvas.lineWidth = 800
-                canvas.fillStyle = '#1abc9c'
-            } else if (this.isBusiness == 4) {
-                canvas.strokeStyle = 'rgba(251,226,1,.8)' || '#000'
-                canvas.fillStyle = '#fff' || '#fff'
-            } else if (this.isBusiness == 5) {
-                canvas.fillStyle = 'rgba(11,12,12,.2)' || '#fff'
-            } else if (this.isBusiness == 6) {
-                canvas.fillStyle = '#1abc9c'
-                canvas.lineWidth = 800
-                canvas.strokeStyle = 'rgba(68,161,140,.4)' || '#fff'
-            } else if (this.isBusiness == 7) {
-                canvas.strokeStyle = this.color || '#000'
-                canvas.fillStyle = this.businessColor || '#fff'
-            }
-            canvas.moveTo(this.jsonArr[0].X, this.jsonArr[0].Y)
-            for (let i = 1; i < this.jsonArr.length; i++) {
-                canvas.lineTo(this.jsonArr[i].X, this.jsonArr[i].Y)
-            }
-            canvas.lineTo(this.jsonArr[0].X, this.jsonArr[0].Y)
-            canvas.closePath()
-            canvas.fill()
-            canvas.stroke()
-            if (!!this.name) {
-                canvas.font = "normal small-caps bold 500px Arial";
-                if (this.isBusiness == 1) {
-                    canvas.fillStyle = this.faceColor
-                } else if (this.isBusiness == 2) {
-                    canvas.fillStyle = this.businessFaceColor;
-                } else if (this.isBusiness == 3) {
-                    //业务空间异常状态
-                    canvas.fillStyle = '#fff'
-                } else if (this.isBusiness == 4) {
-                    canvas.fillStyle = '#cacaca'
-                } else if (this.isBusiness == 6) {
-                    canvas.fillStyle = '#fff'
-                } else if (this.isBusiness == 7) {
-                    canvas.fillStyle = 'red'
-                }
-                if (!!this.businessName || !!this.businessId) {
-                    name = '👇   ' + this.businessName
-                } else {
-                    name = '⬇️   ' + this.name
-                }
-                canvas.fillText(name, this.centerOfGravityPoint.x, this.centerOfGravityPoint.y);
-                // canvas.fillText(this.name, (this.maxX - this.minX) / 2 + this.minX, (this.maxY - this.minY) / 2 + this.minY);
-            }
-            // canvas.fillText(this.name, this.jsonArr[0].X, this.jsonArr[0].Y);
-        }
-    }
-}

+ 0 - 100
src/assets/js/items/SGraphyRectItem.js

@@ -1,100 +0,0 @@
-/**
- * 线条
- */
-import SGraphyItem from '../../node-templete/SGraphy/SGraphyItem'
-import SRect from '../../node-templete/SGraphy/types/SRect';
-
-export default class SGraphyRectItem extends SGraphyItem {
-    /**
-     * 构造函数
-     * 
-     * @param X  矩形的开始点X
-     * @param Y  矩形的开始点Y
-     * @param width   矩形的宽度
-     * @param height  矩形的高度
-     * 
-     * @param isFill  矩形的是否填充
-     * @param fillColor  矩形的填充色彩
-     * @param text  矩形的文字
-     * @param textSize  矩形的文字大小
-     * @param color  矩形的颜色
-     * @param Tip   提示
-     */
-    constructor(X, Y, width, height, isFill, fillColor, text, textSize, color, Tip, parent = null) {
-        super(parent)
-        this.X = X
-        this.Y = Y
-        this.width = width
-        this.height = height
-        this.isFill = isFill
-        this.fillColor = fillColor
-        this.color = color
-        this.textSize = textSize || 6
-        this.type = 10
-        this.hoverColor = null
-        this.text = text.split(",")
-        this.fontStart = this.X
-        this.Tip = Tip
-    }
-
-    /**
-     * Item对象边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect() {
-        return new SRect(this.X, this.Y, this.width, this.height)
-    }
-
-    /**
-     * 判断item是否包含点x,y
-     *
-     * @param   x       横坐标(当前item)
-     * @param   y       纵坐标(当前item)
-     *
-     * @return  boolean
-     */
-    contains(x) {
-        if (this.X + this.width > x.x && x.x > this.X && this.Y + this.height > x.y && x.y > this.Y) {
-            return true
-        } else {
-            return false
-        }
-    }
-
-    /**
-     * 绘制线条
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-
-    onDraw(canvas, rect) {
-        canvas.beginPath();
-        canvas.lineWidth = "1";
-        if (this.isFill) {
-            if (!!this.hoverColor) {
-                canvas.fillStyle = this.hoverColor
-            } else {
-                canvas.fillStyle = this.fillColor
-            }
-            canvas.fillRect(this.X, this.Y, this.width, this.height);
-        } else {
-            canvas.rect(this.X, this.Y, this.width, this.height);
-        }
-        canvas.stroke();
-        if (!!this.text && this.text.length <= 1) {
-            canvas.font = this.textSize + "px 宋体";
-            canvas.fillStyle = this.color
-            canvas.fillText(this.text[0], this.fontStart, this.Y + this.height / 2);
-        } else if (!!this.text && this.text.length > 1) {
-            canvas.font = this.textSize + "px 宋体";
-            canvas.fillStyle = this.color
-            for (let i = 0; i < this.text.length; i++) {
-                canvas.fillText(this.text[i], this.fontStart, this.Y + this.height / 2 - this.textSize * i);
-            }
-        } else {
-            return
-        }
-    }
-}

+ 0 - 51
src/assets/js/items/SGraphyTextItems.js

@@ -1,51 +0,0 @@
-/**
- * 线条
- */
-import SGraphyItem from '../../node-templete/SGraphy/SGraphyItem'
-import SRect from '../../node-templete/SGraphy/types/SRect';
-
-export default class SGraphyTextItem extends SGraphyItem {
-    /**
-     * 构造函数
-     * 
-     * @param X  文字的开始点X
-     * @param Y  文字的开始点Y
-     * @param width   文字的宽度
-     * 
-     * @param color  文字的颜色
-     * @param text   文字的文字
-     */
-    constructor(X, Y, width, color, text, falg, font, parent = null) {
-        super(parent)
-        this.X = X
-        this.Y = Y
-        this.lineWidth = width
-        this.color = color
-        this.font = font ? font : "6px 宋体"
-        this.text = falg ? text + '→' : text
-    }
-
-    /**
-     * Item对象边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect() {
-        return new SRect(this.X, this.Y, 0, 0)
-    }
-
-    /**
-     * 绘制线条
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-
-    onDraw(canvas, rect) {
-        if (!!this.text) {
-            canvas.font = this.font;
-            canvas.fillStyle = this.color
-            canvas.fillText(this.text, this.X, this.Y);
-        }
-    }
-}

+ 0 - 66
src/assets/js/items/SGraphyVirtualItem.js

@@ -1,66 +0,0 @@
-/**
- * 线条
- */
-import SGraphyItem from '../../node-templete/SGraphy/SGraphyItem'
-import SRect from '../../node-templete/SGraphy/types/SRect';
-
-export default class SGraphyLineItem extends SGraphyItem {
-    /**
-     * 构造函数
-     * 
-     * @param startX  线的起始x坐标
-     * @param startY  线的起始y坐标
-     * @param endX    线的终止x坐标
-     * @param endY    线的终止y坐标
-     * @param width   线的宽度
-     * 
-     * @param color  线的颜色
-     * @param isVirtual    是否为虚线
-     * 
-     * @param canMove  移动
-     */
-    constructor(startX, startY, endX, endY, color, width, isVirtual, canMove, parent = null) {
-        super(parent)
-        this.startX = startX
-        this.startY = startY
-        this.endX = endX
-        this.endY = endY
-        this.color = color
-        this.width = width
-        this.isVirtual = isVirtual
-        this.minX = Math.min(this.startX, this.endX)
-        this.minY = Math.min(this.startY, this.endY)
-        this.maxX = Math.max(this.startX, this.endX)
-        this.maxY = Math.max(this.startY, this.endY)
-        this.type = 4
-            // this.canMove = true
-    }
-
-    /**
-     * Item对象边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect() {
-        return new SRect(this.minX, this.minY, (this.maxX - this.minX), (this.maxY - this.minY))
-    }
-
-    /**
-     * 绘制线条
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-
-    onDraw(canvas, rect) {
-        if (this.isVirtual) {
-            canvas.setLineDash([240, 240])
-        }
-        canvas.lineWidth = 240
-        canvas.strokeStyle = this.color || '#000'
-        canvas.beginPath();
-        canvas.moveTo(this.startX, this.startY)
-        canvas.lineTo(this.endX, this.endY)
-        canvas.stroke()
-    }
-}

+ 0 - 1
src/assets/js/jsmind.js

@@ -441,7 +441,6 @@
             }
             // remove from global nodes
             delete this.nodes[node.id];
-            // clean all properties
             for (var k in node) {
                 delete node[k];
             }

+ 0 - 44
src/assets/node-templete/SGraphy/SCanvas.js

@@ -1,44 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-
-/**
- * Canvas功能扩展
- *
- * @author  Andy
- */
-Object.assign(CanvasRenderingContext2D.prototype, {
-  /**
-   * 绘制线段
-   *
-   * @param   x0    起点x坐标
-   * @param   y0    起点y坐标
-   * @param   x1    终点x坐标
-   * @param   y1    终点y坐标
-   */
-  drawLine (x0, y0, x1, y1) {
-    this.beginPath()
-    this.moveTo(x0, y0)
-    this.lineTo(x1, y1)
-    this.stroke()
-  } // Function drawLine()
-}) // Class CanvasRenderingContext2D

+ 0 - 30
src/assets/node-templete/SGraphy/SGraphyEnums.js

@@ -1,30 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-
-const SGraphyItemFlag = {
-  ItemIsMovable: 1,
-  ItemIsSelectable: 2
-}
-
-if (Object.freeze)
-  Object.freeze(SGraphyItemFlag)

+ 0 - 396
src/assets/node-templete/SGraphy/SGraphyItem.js

@@ -1,396 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-import SPoint from './types/SPoint'
-import SRect from './types/SRect'
-import SMouseEvent from './SMouseEvent'
-
-const sortItemZOrder = Symbol('sortItemZOrder')
-const toChildMouseEvent = Symbol('toChildMouseEvent')
-const grabItem = Symbol('grabItem')
-const releaseItem = Symbol('releaseItem')
-
-/**
- * SGraphyItem
- *
- * @author  Andy
- */
-export default class SGraphyItem {
-    /**
-     * 构造函数
-     */
-    constructor(parent) {
-            this.name = 'item'
-            this._scene = null
-            this._parent = parent
-            this.children = []
-
-            /** Z轴顺序 */
-            this.zOrder = 0
-                /** item位置 */
-            this._pos = new SPoint(0, 0)
-                /** 缩放比例 */
-            this._scale = new SPoint(1, 1)
-                /** 是否可见 */
-            this._isVisible = true
-
-            /** 鼠标按下时位置 */
-            this._mouseDownPos = new SPoint(4, 21)
-            this._isMove = false
-            this.canMove = false
-        } // Function constructor()
-
-    // ===================================================================================================================
-    // 属性
-    /** parent属性存值函数 */
-    get parent() {
-        return this._parent
-    }
-    set parent(value) {
-            if (this._parent === value) {
-                return
-            }
-            if (this._parent != null) { // 如果原parent不为空
-                // 将节点从原parent节点中摘除
-                let i = this._parent.children.indexOf(this)
-                this._parent.children.splice(i, 1)
-            }
-            this._parent = value
-
-            if (this._parent != null) { // 如果新parent不为空
-                // 将节点加入到新parent节点中
-                this._parent.children.push(this)
-                this._parent.children.sort(this[sortItemZOrder])
-            }
-            this._parent = value
-        } // Function set Parent()
-
-    /** scene属性 */
-    get scene() {
-        if (this._parent != null) {
-            return this._parent.scene
-        } else {
-            return this._scene
-        }
-    }
-
-    /** pos属性 */
-    get pos() {
-        return this._pos
-    }
-    set pos(value) {
-        this._pos = value
-    }
-
-    /** scale属性 */
-    get scale() {
-        return this._scale
-    }
-    set scale(value) {
-        this._scale = value
-    }
-
-    /** visible属性 */
-    get visible() {
-        return this._isVisible
-    }
-    set visible(value) {
-        this._isVisible = value
-    }
-
-    // ===================================================================================================================
-    // 函数
-    /**
-     * Item对象边界区域
-     *
-     * @return  SRect
-     */
-    boundingRect() {
-            return new SRect(0, 0, 10, 10)
-        } // Function boundingRect()
-
-    /**
-     * Item绘制操作
-     *
-     * @param   canvas        画布对象
-     * @param   rect          绘制区域
-     */
-    onDraw(canvas, rect) {
-            for (let item of this.children) {
-                // 保存画布状态
-                canvas.save()
-                    // item位移到指定位置绘制
-                canvas.translate(item.pos.x, item.pos.y)
-                    // 设置绘制区域
-                    // canvas.clip(item.boundingRect())
-                    // 绘制item
-                item.onDraw(canvas, rect)
-                    // 恢复画布状态
-                canvas.restore()
-            }
-        } // Function onDraw()
-
-    /**
-     * 更新Item
-     */
-    update() {
-            // TODO: PLX
-            // scene?.update()
-        } // Function update()
-
-    /**
-     * 移动item到指定位置
-     *
-     * @param   x           新位置的x坐标
-     * @param   y           新位置的y坐标
-     */
-    moveTo(x, y) {
-            this.pos = new SPoint(x, y)
-        } // moveTo()
-
-    /**
-     * 判断item是否包含点x,y
-     *
-     * @param   x       横坐标(当前item)
-     * @param   y       纵坐标(当前item)
-     *
-     * @return  boolean
-     */
-    contains(x, y) {
-            return this.boundingRect().contains(x - this.pos.x, y - this.pos.y)
-        } // Function contains()
-
-    /**
-     * 获得item的路径节点列表。(该节点被加载到场景中,如果未被加载到场景中,计算会出错)
-     *
-     * @return  *[]
-     */
-    itemPath() {
-            if (this.parent != null) {
-                let list = this.parent.itemPath()
-                list.push(this)
-                return list
-            }
-
-            return [this]
-        } // Function itemPath()
-
-    /**
-     * 将场景中的xy坐标转换成item坐标。(该节点被加载到场景中,如果未被加载到场景中,计算会出错)
-     *
-     * @param   x       场景中的横坐标
-     * @param   y       场景中的纵坐标
-     *
-     * @return  在item中的坐标
-     */
-    mapFromScene(x, y) {
-            let list = this.itemPath()
-            let x0 = x
-            let y0 = y
-            for (let item of list) {
-                x0 = (x0 - item.pos.x) / item.scale.x
-                y0 = (y0 - item.pos.y) / item.scale.y
-            }
-
-            return new SPoint(x0, y0)
-        } // Function mapFromScene()
-
-    /**
-     * 将item中的xy坐标转换成场景坐标。(该节点被加载到场景中,如果未被加载到场景中,计算会出错)
-     *
-     * @param   x       item中的横坐标
-     * @param   y       item中的纵坐标
-     *
-     * @return  在场景中的坐标
-     */
-    mapToScene(x, y) {
-            if (this.parent == null) {
-                return new SPoint(x, y)
-            }
-
-            return this.parent.mapToScene(x * this.scale.x + this.pos.x, y * this.scale.y + this.pos.y)
-        } // Function mapToScene()
-
-    // ===================================================================================================================
-    // 事件
-    /**
-     * 鼠标单击事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onClick(e) {
-            for (let item of this.children) {
-                if (!item.visible) { // 如果项目不可见
-                    continue
-                }
-                let ce = this[toChildMouseEvent](item, e)
-                if (item.contains(e.x, e.y) && item.onClick(ce)) { // 如果点在子项目上且子项目处理了事件
-                    return true
-                }
-            }
-
-            return false
-        } // Function onClick()
-
-    /**
-     * 鼠标双击事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onDbClick(e) {
-            for (let item of this.children) {
-                if (!item.visible) { // 如果项目不可见
-                    continue
-                }
-                let ce = this[toChildMouseEvent](item, e)
-                if (item.contains(e.x, e.y) && item.onDbClick(ce)) { // 如果点在子项目上且子项目处理了事件
-                    return true
-                }
-            }
-
-            return false
-        } // Function onClick()
-
-    /**
-     * 鼠标按下事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onMouseDown(e) {
-            // console.log(e)
-
-            for (let item of this.children) {
-                if (!item.visible) { // 如果项目不可见
-                    continue
-                }
-                let ce = this[toChildMouseEvent](item, e)
-                if (item.contains(e.x, e.y) && item.onMouseDown(ce)) { // 如果点在子项目上且子项目处理了事件
-                    return true
-                }
-            }
-
-            if (this.canMove) {
-                this._mouseDownPos = new SPoint(e.x, e.y)
-                this._isMove = true
-                this[grabItem](this)
-                    // console.log(this.scene.grabItem)
-                return true
-            }
-            return false
-        } // Function onMouseDown()
-
-    /**
-     * 鼠标移动事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onMouseMove(e) {
-            for (let item of this.children) {
-                if (!item.visible) { // 如果项目不可见
-                    continue
-                }
-                let ce = this[toChildMouseEvent](item, e)
-                if (item.contains(e.x, e.y) && item.onMouseMove(ce)) { // 如果点在子项目上且子项目处理了事件
-                    return true
-                }
-            }
-
-            if (e.buttons & SMouseEvent.LEFT_BUTTON && this.canMove && this._isMove) {
-                this.moveTo(this.pos.x + e.x - this._mouseDownPos.x, this.pos.y + e.y - this._mouseDownPos.y)
-            }
-
-            return false
-        } // Function onMouseMove()
-
-    /**
-     * 释放鼠标事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onMouseUp(e) {
-            for (let item of this.children) {
-                if (!item.visible) { // 如果项目不可见
-                    continue
-                }
-                let ce = this[toChildMouseEvent](item, e)
-                if (item.contains(e.x, e.y) && item.onMouseUp(ce)) { // 如果点在子项目上且子项目处理了事件
-                    return true
-                }
-            }
-
-            this._isMove = false
-            this[releaseItem]()
-            return false
-        } // Function onMouseUp()
-
-    // ===================================================================================================================
-    // 私有方法
-    /**
-     * 按ZOrder排序
-     *
-     * @param   a   比较元素1
-     * @param   b   比较元素2
-     * @return {number}
-     */
-    [sortItemZOrder](a, b) {
-        return a.zOrder - b.zOrder
-    } // Function sortItemZOrder()
-
-    /**
-     * 鼠标事件转子对象鼠标事件
-     *
-     * @param   child   子对象e
-     * @param   e       事件参数
-     * @return  {}
-     */
-    [toChildMouseEvent](child, e) {
-        let ce = {...e }
-        ce.x = (e.x - child.pos.x) / child.scale.x
-        ce.y = (e.y - child.pos.y) / child.scale.y
-        return ce
-    } // Function toChildMouseEvent()
-
-    /**
-     * 锁定item
-     *
-     * @param   item    被锁定的item
-     */
-    [grabItem](item) {
-        if (this.scene != null) {
-            this.scene.grabItem = item
-        }
-    } // Function grabItem
-
-    /**
-     * 释放被锁定的item
-     */
-    [releaseItem]() {
-        if (this.scene != null) {
-            this.scene.grabItem = null
-        }
-    } // Function grabItem
-} // Class SGraphyItem

+ 0 - 201
src/assets/node-templete/SGraphy/SGraphyScene.js

@@ -1,201 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-
-import SPoint from './types/SPoint'
-import SRect from './types/SRect'
-import SGraphyItem from './SGraphyItem'
-
-const toGrabItemMotionEvent = Symbol('toGrabItemMotionEvent')
-
-/**
- * SGraphy图形引擎场景类
- *
- * @author  Andy
- */
-export default class SGraphyScene {
-    /**
-     * 构造函数
-     */
-    constructor() {
-            this.view = null
-            console.log(this, 'this')
-            this.root = new SGraphyItem(null)
-            this.root._scene = this
-            this.pos = new SPoint(0, 0)
-            this.scale = new SPoint(1, 1)
-            this.grabItem = null
-        } // Function constructor()
-
-    /**
-     * 添加item对象到场景。
-     *
-     * @param   item        添加的对象
-     */
-    addItem(item) {
-            item.parent = this.root
-        } // Function addItem()
-
-    /**
-     * 从场景中移除Item。
-     *
-     * @param   item        被移除的对象
-     */
-    removeItem(item) {
-            item.parent = null
-        } // Function removeItem()
-
-    /**
-     * 绘制场景
-     *
-     * @param   canvas      画布
-     * @param   rect        更新绘制区域
-     */
-    drawScene(canvas, rect) {
-            this.root.onDraw(canvas, rect)
-        } // Function drawScene()
-
-    /**
-     * 绘制背景
-     *
-     * @param   canvas      画布
-     * @param   rect        更新绘制区域
-     */
-    drawBackground(canvas, rect) {
-            // DO NOTHING
-        } // Function drawBackground()
-
-    /**
-     * 绘制前景
-     *
-     * @param   canvas      画布
-     * @param   rect        更新绘制区域
-     */
-    drawForeground(canvas, rect) {
-            // DO NOTHING
-        } // Function drawForeground()
-
-    /**
-     * 返回场景的item边界。即所有item边界的并集。
-     *
-     * @return  SRect
-     */
-    worldRect() {
-            let rect = null
-
-            for (let item of this.root.children) { // 依次取item列中的所有item。将所有item的边界做并焦处理。
-                if (rect == null) {
-                    rect = item.boundingRect().adjusted(item.pos)
-                } else {
-                    rect.union(item.boundingRect().adjusted(item.pos))
-                }
-            }
-
-            return rect
-        } // Function worldsRect()
-
-    /**
-     * 更新
-     */
-    update() {} // Function update()
-        // ===================================================================================================================
-        // 事件
-        /**
-         * 鼠标单击事件
-         *
-         * @param   e   保存事件参数
-         * @return  boolean
-         */
-    onClick(e) {
-            if (this.grabItem != null) {
-                return this.grabItem.onClick(this[toGrabItemMotionEvent](this.grabItem, e))
-            }
-            return this.root.onClick(e)
-        } // onClick
-
-    /**
-     * 鼠标双击事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onDbClick(e) {
-            if (this.grabItem != null) {
-                return this.grabItem.onDbClick(this[toGrabItemMotionEvent](this.grabItem, e))
-            }
-            return this.root.onDbClick(e)
-        } // onClick
-
-    /**
-     * 鼠标按下事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onMouseDown(e) {
-            if (this.grabItem != null) {
-                return this.grabItem.onMouseDown(this[toGrabItemMotionEvent](this.grabItem, e))
-            }
-            return this.root.onMouseDown(e)
-        } // onMouseDown
-
-    /**
-     * 鼠标移动事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onMouseMove(e) {
-            if (this.grabItem != null) {
-                return this.grabItem.onMouseMove(this[toGrabItemMotionEvent](this.grabItem, e))
-            }
-            return this.root.onMouseMove(e)
-        } // onMouseMove
-
-    /**
-     * 释放鼠标事件
-     *
-     * @param   e   保存事件参数
-     * @return  boolean
-     */
-    onMouseUp(e) {
-            if (this.grabItem != null) {
-                return this.grabItem.onMouseUp(this[toGrabItemMotionEvent](this.grabItem, e))
-            }
-            return this.root.onMouseUp(e)
-        } // onMouseUp
-
-    /**
-     * 转换场景事件坐标到指定Item坐标事件
-     *
-     * @param   item        指定的item对象
-     * @param   e           场景事件
-     * @return  {}
-     */
-    [toGrabItemMotionEvent](item, e) {
-        let se = {...e }
-        let p = item.mapFromScene(e.x, e.y)
-        se.x = p.x
-        se.y = p.y
-        return se
-    } // Function toGrabItemMotionEvent()
-} // Class SGraphyScene

+ 0 - 280
src/assets/node-templete/SGraphy/SGraphyView.js

@@ -1,280 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-import './SCanvas'
-import SPoint from './types/SPoint'
-import SMouseEvent from './SMouseEvent'
-
-const bindEvent = Symbol('bindEvent')
-const toSceneMotionEvent = Symbol('toSceneMotionEvent')
-    /**
-     * Graphy图形引擎视图类
-     *
-     * @author  Andy
-     */
-export default class SGraphyView {
-    /**
-     * 构造函数
-     *
-     * @param   id    Canvas对象ID
-     */
-    constructor(id, scene) {
-            this.canvasView = document.getElementById(id)
-            this.canvas = this.canvasView.getContext('2d')
-            this[bindEvent](this.canvasView)
-            this.scene = scene
-            this.pos = new SPoint(10, 0)
-            this.scale = 1
-            this.minScale = 0.004
-            this.maxScale = 0.5
-            this._midKeyX = 0
-            this._midKeyY = 0
-            this.wheelZoom = 1.05
-
-            window.requestAnimationFrame(this.onDraw.bind(this))
-        } // Function constructor()
-
-    /**
-     * 绑定canvas事件
-     *
-     * @param   canvas      canvas对象
-     * @private
-     */
-    [bindEvent](canvasView) {
-        canvasView.onclick = this.onClick.bind(this)
-        canvasView.ondblclick = this.onDbClick.bind(this)
-        canvasView.onmousedown = this.onMouseDown.bind(this)
-        canvasView.onmousemove = this.onMouseMove.bind(this)
-        canvasView.onmouseup = this.onMouseUp.bind(this)
-        canvasView.onmousewheel = this.onMouseWheel.bind(this)
-        canvasView.onresize = this.onResize.bind(this)
-    } // Function [bindEvent]()
-
-    /**
-     * 获取canvas的宽度  
-     */
-
-    get width() {
-        return this.canvasView.width
-    }
-
-    get height() {
-        return this.canvasView.height
-    }
-
-    /**
-     * 将场景中的xy坐标转换成视图坐标。
-     *
-     * @param   x       场景中的横坐标
-     * @param   y       场景中的纵坐标
-     *
-     * @return  SPoint
-     */
-    mapFromScene(x, y = null) {
-            if (typeof(x) === 'object') { // 如果传入的是SPoint对象
-                return new SPoint(x.x * this.scale + this.pos.x, x.y * this.scale + this.pos.y)
-            }
-
-            return new SPoint(x * this.scale + this.pos.x, y * this.scale + this.pos.y)
-        } // Function mapFromScene()
-
-    /**
-     * 将item中的xy坐标转换成场景坐标。
-     *
-     * @param   x       item中的横坐标
-     * @param   y       item中的纵坐标
-     * @return  SPoint
-     */
-    mapToScene(x, y = null) {
-            if (typeof(x) === 'object') { // 如果传入的是SPoint对象
-                return new SPoint((x.x - this.pos.x) / this.scale, (x.y - this.pos.y) / this.scale)
-            }
-
-            return new SPoint((x - this.pos.x) / this.scale, (y - this.pos.y) / this.scale)
-        } // Function mapToScene()
-
-    /**
-     * 缩放视图时计算视图的位置与缩放比例
-     *
-     * @param   zoom        缩放比例
-     * @param   x0          缩放计算的中心点X坐标
-     * @param   y0          缩放计算的中心点Y坐标
-     */
-    scaleByPoint(zoom, x0, y0) {
-            let z = zoom
-                /**
-                 * 缩放比例在最小比例和最大比例范围内
-                 */
-            if (this.scale * zoom >= this.maxScale) { // 大于最大缩放比例
-                z = this.maxScale / this.scale
-                this.scale = this.maxScale
-            } else if (this.scale * zoom <= this.minScale) { // 小于最小绽放比例
-                z = this.minScale / this.scale
-                this.scale = this.minScale
-            } else {
-                this.scale *= zoom
-            }
-
-            this.pos.x = x0 - (x0 - this.pos.x) * z
-            this.pos.y = y0 - (y0 - this.pos.y) * z
-
-            // EventBus.getDefault().post(SGraphyViewZoomEvent(this, scale))
-            // EventBus.getDefault().post(SGraphyViewMoveEvent(this, pos.x, pos.y))
-            // return
-        } // Function scaleByPoint()
-        // ===================================================================================================================
-        // 事件
-    onDraw() {
-            this.canvas.save()
-            this.canvas.clearRect(0, 0, this.canvasView.width, this.canvasView.height)
-            this.canvas.restore()
-
-            if (this.scene != null) {
-                // 绘制背景
-                this.canvas.save()
-                this.scene.drawBackground(this.canvas)
-                this.canvas.restore()
-
-                // 绘制场景
-                this.canvas.save()
-                this.canvas.translate(this.pos.x, this.pos.y)
-                this.canvas.scale(this.scale, this.scale)
-                this.scene.drawScene(this.canvas)
-                this.canvas.restore()
-
-                // 绘制前景
-                this.canvas.save()
-                this.scene.drawForeground(this.canvas)
-                this.canvas.restore()
-            }
-
-            window.requestAnimationFrame(this.onDraw.bind(this))
-        } // Function onDraw()
-
-    /**
-     * 鼠标单击事件
-     *
-     * @param   e   保存事件参数
-     */
-    onClick(e) {
-            if (this.scene != null) {
-                let se = this[toSceneMotionEvent](e)
-                this.scene.onClick(se)
-            }
-        } // Function onClick()
-
-    /**
-     * 鼠标双击事件
-     *
-     * @param   e   保存事件参数
-     */
-    onDbClick(e) {
-            if (this.scene != null) {
-                let ce = this[toSceneMotionEvent](e)
-                this.scene.onDbClick(ce)
-            }
-        } // Function onDbClick()
-
-    /**
-     * 鼠标按下事件
-     *
-     * @param   e   保存事件参数
-     */
-    onMouseDown(e) {
-            let se = new SMouseEvent(e)
-            if (se.buttons & SMouseEvent.MIDDLE_BUTTON) { // 如果按下中键
-                this._midKeyX = e.x
-                this._midKeyY = e.y
-            }
-
-            if (this.scene != null) {
-                let ce = this[toSceneMotionEvent](e)
-                this.scene.onMouseDown(ce)
-            }
-        } // Function onMouseDown()
-
-    /**
-     * 鼠标移动事件
-     *
-     * @param   e   保存事件参数
-     */
-    onMouseMove(e) {
-            let se = new SMouseEvent(e)
-            if (se.buttons & SMouseEvent.MIDDLE_BUTTON) { // 如果按下中键,则移动视图
-                this.pos.x += e.x - this._midKeyX
-                this.pos.y += e.y - this._midKeyY
-                this._midKeyX = e.x
-                this._midKeyY = e.y
-                return
-            }
-            if (this.scene != null) {
-                let ce = this[toSceneMotionEvent](e)
-                this.scene.onMouseMove(ce)
-            }
-        } // Function onMouseMove()
-
-    /**
-     * 释放鼠标事件
-     *
-     * @param   e   保存事件参数
-     */
-    onMouseUp(e) {
-            if (this.scene != null) {
-                let ce = this[toSceneMotionEvent](e)
-                this.scene.onMouseUp(ce)
-            }
-        } // Function onMouseUp()
-
-    /**
-     * 鼠标滚轮事件
-     *
-     * @param   e   保存事件参数
-     */
-    onMouseWheel(e) {
-            let se = new SMouseEvent(e)
-            if (e.wheelDelta < 0) {
-                this.scaleByPoint(1 / this.wheelZoom, se.x, se.y)
-            } else {
-                this.scaleByPoint(this.wheelZoom, se.x, se.y)
-            }
-        } // Function onMouseWheel()
-
-    /**
-     * View大小发生变化事件
-     *
-     * @param   e   保存事件参数
-     */
-    onResize(e) {} // Function onResize()
-
-    /**
-     * MotionEvent转场景对象MotionEvent
-     *
-     * @param   e       MotionEvent
-     * @return  子对象MotionEvent
-     */
-    [toSceneMotionEvent](e) {
-        let se = new SMouseEvent(e)
-        se.x = (se.x - this.pos.x) / this.scale
-        se.y = (se.y - this.pos.y) / this.scale
-        return se
-    } // Function toSceneMotionEvent()
-} // Class SGraphyView

+ 0 - 53
src/assets/node-templete/SGraphy/SMouseEvent.js

@@ -1,53 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-
-/**
- * 鼠标事件
- *
- * @author  Andy
- */
-export default class SMouseEvent {
-  /**
-   * 构造函数
-   *
-   * @param   e       系统鼠标事件
-   */
-  constructor(e) {
-    let bbox          = e.srcElement.getBoundingClientRect()
-    this.type         = e.type
-    this.x            = e.clientX - bbox.left
-    this.y            = e.clientY - bbox.top
-    this.screenX      = e.screenX
-    this.screenY      = e.screenY
-    this.clientX      = e.clientX
-    this.clientY      = e.clientY
-    this.altKey       = e.altKey
-    this.ctrlKey      = e.ctrlKey
-    this.buttons      = e.buttons
-    this.wheelDelta   = e.wheelDelta
-  } // Function constructor()
-} // Class MouseEvent
-
-SMouseEvent.LEFT_BUTTON   = 0x01
-SMouseEvent.RIGHT_BUTTON  = 0x02
-SMouseEvent.MIDDLE_BUTTON = 0x04

+ 0 - 201
src/assets/node-templete/SGraphy/items/SGraphyClockItem.js

@@ -1,201 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-
-import SGraphyItem from '../SGraphyItem'
-import SRect from '../types/SRect'
-
-/** 定义符号,用于定义私有成员变晴儿 */
-const drawScale     = Symbol('drawScale')
-const drawScaleText = Symbol('drawScaleText')
-const drawHour      = Symbol('drawHour')
-const drawMinute    = Symbol('drawMinute')
-const drawSecond    = Symbol('drawSecond')
-
-/**
- * SGraphy引擎时钟Item
- *
- * @author  Andy
- */
-export default class SGraphyClockItem extends SGraphyItem {
-  /**
-   * 构造函数
-   *
-   * @param   parent    指向父对象
-   */
-  constructor(width, height, parent = null) {
-    super(parent)
-    this.name = 'ClockItem'
-    this.width = width
-    this.height = height
-    /** 是否显示刻度 */
-    this.isShowScale = true
-    /** 刻度颜色 */
-    this.scaleColor = '#000'
-    /** 刻度文本颜色 */
-    this.textColor = '#000'
-    /** 时针颜色 */
-    this.hourColor = '#000'
-    /** 分针颜色 */
-    this.minuteColor = '#000'
-    /** 秒针颜色 */
-    this.secondColor = '#F00'
-    /** 是否显示钞针 */
-    this.isShowSecond = true
-    /** 是否平滑移动秒针 */
-    this.isSmooth = true
-    /** 边缘宽度 */
-    this.padding = 100.0
-  } // Function constructor()
-
-  /**
-   * Item对象边界区域
-   *
-   * @return  SRect
-   */
-  boundingRect() {
-    return new SRect(0, 0, this.width / 2, this.height / 2)
-  } // Function boundingRect()
-
-  /**
-   * 时钟半径,只读属性
-   *
-   * @return  number
-   */
-  get radius() {
-    return Math.min(this.width, this.height) / 2.0
-  } // getter radius()
-
-  /**
-   * 绘制时钟
-   *
-   * @param   canvas      画布
-   * @param   rect        绘制区域
-   */
-  onDraw(canvas, rect) {
-    canvas.translate(this.width / 2, this.height / 2)
-    canvas.arc(0, 0, this.radius, 0, 2 * Math.PI)
-    let t = new Date()
-
-    this[drawScale](canvas)
-    this[drawHour](canvas, t.getHours(), t.getMinutes(), t.getSeconds())
-    this[drawMinute](canvas, t.getMinutes(), t.getSeconds())
-    this[drawSecond](canvas, t.getSeconds() + t.getMilliseconds() / 1000.0)
-  } // Function onDraw()
-
-  /**
-   * 绘制刻度
-   *
-   * @param   canvas      画布
-   */
-  [drawScale](canvas) {
-    let scaleLength = Math.max(this.radius / 10.0, 2.0)
-    let scaleLength1 = scaleLength * 1.2
-    let strokeWidth = Math.max(this.radius / 100.0, 2.0)
-    let strokeWidth1 = strokeWidth * 2.0
-
-    canvas.save()
-    canvas.strokeStyle = this.scaleColor
-
-    for (let i = 1; i <= 12; i++) {          // 12小时刻度
-      canvas.lineWidth = strokeWidth1
-      canvas.drawLine(0, -this.radius, 0, -this.radius + scaleLength1)
-
-      if (this.radius >= 40) {              // 如果半度大于40显示分钟刻度
-        canvas.rotate(6 * Math.PI / 180)
-        for (let j = 1; j <= 4; j++) {       // 分钟刻度
-          canvas.lineWidth = strokeWidth
-          canvas.drawLine(0, -this.radius, 0, -this.radius + scaleLength)
-          canvas.rotate(6 * Math.PI / 180)
-        }
-      } else {
-        canvas.rotate(30 * Math.PI / 180)
-      }
-    }
-
-    canvas.restore()
-  } // Function drawScale()
-
-  /**
-   * 绘制刻度数字
-   *
-   * @param   canvas      画布
-   */
-  [drawScaleText](canvas) {
-
-  } // Function drawScaleText()
-
-  /**
-   * 绘制时针
-   *
-   * @param   canvas      画布
-   * @param   hour        时
-   * @param   minute      分
-   * @param   second      秒
-   */
-  [drawHour](canvas, hour, minute, second) {
-    canvas.save()
-    canvas.lineCap = 'round'
-    canvas.lineWidth = Math.max(this.radius / 30.0, 4.0)
-    canvas.strokeStyle = this.hourColor
-    canvas.rotate((hour * 30.0 + minute * 30.0 / 60 + second * 30.0 / 60 / 60) * Math.PI / 180)
-    canvas.drawLine(0, this.radius / 10.0, 0, -this.radius / 2.0)
-    canvas.restore()
-  } // Function drawHour()
-
-  /**
-   * 绘制分针
-   *
-   * @param   canvas      画布
-   * @param   minute      分
-   * @param   second      秒
-   */
-  [drawMinute](canvas, minute, second) {
-    canvas.save()
-    canvas.lineCap = 'round'
-    canvas.lineWidth = Math.max(this.radius / 40.0, 4.0)
-    canvas.strokeStyle = this.minuteColor
-    canvas.rotate((minute * 6 + second * 6 / 60.0) * Math.PI / 180.0)
-    canvas.drawLine(0, this.radius / 10.0, 0, -this.radius * 2.0 / 3.0)
-    canvas.restore()
-  } // Function drawMinute()
-
-  /**
-   * 绘制秒针
-   *
-   * @param   canvas      画布
-   * @param   second      秒
-   */
-  [drawSecond](canvas, second) {
-    canvas.save()
-    canvas.lineCap = 'round'
-    canvas.lineWidth = Math.max(this.radius / 100.0, 3.0)
-    canvas.strokeStyle = this.secondColor
-    canvas.rotate(second * 6 * Math.PI / 180)
-    canvas.drawLine(0, this.radius / 5.0, 0, -this.radius + this.radius / 10.0)
-    // canvas.drawCircle(0, 0, this.radius / 30.0)
-    // canvas.drawCircle(0, -this.radius + this.radius / 5.0, this.radius / 60.0)
-    // canvas.strokeStyle = Color.YELLOW
-    // canvas.drawCircle(0, 0, this.radius / 100.0)
-    canvas.restore()
-  } // Function drawSecond()
-} // Class SGraphyClockItem

+ 0 - 58
src/assets/node-templete/SGraphy/items/SGraphyLineItem.js

@@ -1,58 +0,0 @@
-/**
- * 线条
- */
-import SGraphyItem from '../SGraphyItem'
-import SRect from './../types/SRect';
-
-export default class SGraphyLineItem extends SGraphyItem {
-    /**
-     * 构造函数
-     * 
-     * @param startX  线的起始x坐标
-     * @param startY  线的起始y坐标
-     * @param endX    线的终止x坐标
-     * @param endY    线的终止y坐标
-     * @param width   线的宽度
-     * 
-     * @param color  线的颜色
-     * @param isVirtual    是否为虚线
-     */
-    constructor(startX, startY, endX, endY, color, width, isVirtual, parent = null) {
-        super(parent)
-        this.startX = startX
-        this.startY = startY
-        this.endX = endX
-        this.endY = endY
-        this.color = color
-        this.width = width
-        this.isVirtual = isVirtual
-    }
-
-    /**
-     * Item对象边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect() {
-        return new SRect(0, 0, this.width, this.height)
-    }
-
-    /**
-     * 绘制线条
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-
-    onDraw(canvas, rect) {
-        if (this.isVirtual) {
-            canvas.setLineDash([15, 5])
-        }
-        canvas.lineWidth = this.width || 1
-        canvas.strokeStyle = this.color || '#000'
-        canvas.beginPath();
-        canvas.moveTo(this.startX, this.startY)
-        canvas.lineTo(this.endX, this.endY)
-        canvas.stroke()
-    }
-}

+ 0 - 57
src/assets/node-templete/SGraphy/items/SGraphyPolygonItem.js

@@ -1,57 +0,0 @@
-/**
- * 不规则多边形,元空间
- */
-import SGraphyItem from '../SGraphyItem'
-import SRect from './../types/SRect';
-
-export default class SGraphyPolygonItem extends SGraphyItem {
-    /**
-     * 
-     * 构造函数
-     * 
-     * @param jsonArr  空间线条数组
-     * @param lineWidth    空间线条的宽度
-     * @param color    空间线条的颜色
-     * @param fillColor  空间的填充颜色
-     * 
-     */
-    constructor(jsonArr, lineWidth, color, fillColor, parent = null) {
-            super(parent)
-            this.jsonArr = jsonArr
-            this.lineWidth = lineWidth
-            this.color = color
-            this.fillColor = fillColor
-        } //constructor
-
-    /**
-     * Item的边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect() {
-        return new SRect(0, 0, this.width, this.height)
-    }
-
-    /**
-     * 绘制不规则多边形
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-    onDraw(canvas, rect) {
-        if (this.jsonArr && this.jsonArr.length) {
-            canvas.beginPath();
-            canvas.lineWidth = this.lineWidth || 1
-            canvas.strokeStyle = this.color || '#000'
-            canvas.fillStyle = this.fillColor || '#fff'
-            canvas.moveTo(this.jsonArr[0].X / 120 * -1, this.jsonArr[0].Y / 120)
-            for (let i = 1; i < this.jsonArr.length - 1; i++) {
-                canvas.lineTo(this.jsonArr[i].X / 120 * -1, this.jsonArr[i].Y / 120)
-            }
-            canvas.lineTo(this.jsonArr[0].X / 120 * -1, this.jsonArr[0].Y / 120)
-            canvas.closePath()
-            canvas.fill()
-            canvas.stroke()
-        }
-    }
-}

+ 0 - 64
src/assets/node-templete/SGraphy/items/SGraphyRectItem.js

@@ -1,64 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-
-import SGraphyItem from '../SGraphyItem'
-import SRect from '../types/SRect'
-
-/**
- * SGraphy引擎时钟Item
- *
- * @author  Andy
- */
-export default class SGraphyRectItem extends SGraphyItem {
-  /**
-   * 构造函数
-   */
-  constructor(width, height, parent) {
-    super(parent)
-    this.name = 'RectItem'
-    this.width = width
-    this.height = height
-    this.style = '#f00'
-    this.canMove = true
-  } // Function constructor()
-
-  /**
-   * Item对象边界区域
-   *
-   * @return  SRect
-   */
-  boundingRect() {
-    return new SRect(0, 0, this.width, this.height)
-  } // Function boundingRect()
-
-  /**
-   * 绘制时钟
-   *
-   * @param   canvas      画布
-   * @param   rect        绘制区域
-   */
-  onDraw(canvas, rect) {
-    canvas.fillStyle = this.style
-    canvas.fillRect(0, 0, this.width, this.height)
-  } // Function onDraw()
-} // Class SGraphyRectItem

+ 0 - 61
src/assets/node-templete/SGraphy/items/SGraphyVirtualItem.js

@@ -1,61 +0,0 @@
-/**
- * 线条
- */
-import SGraphyItem from '../SGraphyItem'
-import SRect from './../types/SRect';
-
-export default class SGraphyLineItem extends SGraphyItem {
-    /**
-     * 构造函数
-     * 
-     * @param startX  线的起始x坐标
-     * @param startY  线的起始y坐标
-     * @param endX    线的终止x坐标
-     * @param endY    线的终止y坐标
-     * @param width   线的宽度
-     * 
-     * @param color  线的颜色
-     * @param isVirtual    是否为虚线
-     * 
-     * @param canMove  移动
-     */
-    constructor(startX, startY, endX, endY, color, width, isVirtual, canMove, parent = null) {
-        super(parent)
-        this.startX = startX
-        this.startY = startY
-        this.endX = endX
-        this.endY = endY
-        this.color = color
-        this.width = width
-        this.isVirtual = isVirtual
-        this.canMove = canMove
-    }
-
-    /**
-     * Item对象边界区域
-     * 
-     * @return SRect
-     */
-    boundingRect() {
-        return new SRect(0, 0, this.width, this.height)
-    }
-
-    /**
-     * 绘制线条
-     * 
-     * @param canvas 画布
-     * @param rect   绘制区域
-     */
-
-    onDraw(canvas, rect) {
-        if (this.isVirtual) {
-            canvas.setLineDash([15, 5])
-        }
-        canvas.lineWidth = this.width || 1
-        canvas.strokeStyle = this.color || '#000'
-        canvas.beginPath();
-        canvas.moveTo(this.startX, this.startY)
-        canvas.lineTo(this.endX, this.endY)
-        canvas.stroke()
-    }
-}

+ 0 - 40
src/assets/node-templete/SGraphy/types/SPoint.js

@@ -1,40 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-
-/**
- * 坐标点
- *
- * @author  Andy
- */
-export default class SPoint {
-  /**
-   * 构造函数
-   *
-   * @param   x     X坐标
-   * @param   y     Y坐标
-   */
-  constructor(x, y) {
-    this.x = x
-    this.y = y
-  } // constructor
-} // Class SPoint

+ 0 - 169
src/assets/node-templete/SGraphy/types/SRect.js

@@ -1,169 +0,0 @@
-/*
- * ********************************************************************************************************************
- *
- *               iFHS7.
- *              ;BBMBMBMc                  rZMBMBR              BMB
- *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
- *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
- *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
- *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
- *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
- *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
- *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
- *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
- *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
- *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
- *         i0BM: SWKHKGO  MBDv
- *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2018.  斯伯坦机器人世界
- *              ,  XMW  ..
- *                  r                                                                     All rights reserved.
- *
- * ********************************************************************************************************************
- */
-
-/**
- * 矩形
- *
- * @author  Andy
- */
-export default class SRect {
-  /**
-   * 构造函数
-   *
-   * @param   x       X坐标
-   * @param   y       Y坐标
-   * @param   width   宽度
-   * @param   height  高度
-   */
-  constructor(x = 0, y = 0, width = 0, height = 0) {
-    this._x = x
-    this._y = y
-    this._width = Math.max(width, 0)
-    this._height = Math.max(height, 0)
-  } // constructor
-
-  /**
-   * left属性
-   */
-  get left() {
-    return this._x
-  }
-  set left(value) {
-    this._x = value
-  }
-
-  /**
-   * right属性
-   */
-  get right() {
-    return this._x + this._width
-  }
-  set right(value) {
-    this._width = Math.max(value - this._x, 0)
-  }
-
-  /**
-   * top属性
-   */
-  get top() {
-    return this._y
-  }
-  set top(value) {
-    this._y = value
-  }
-
-  /**
-   * top属性
-   */
-  get bottom() {
-    return this._y + this._height
-  }
-  set bottom(value) {
-    this._height = Math.max(value - this._y, 0)
-  }
-
-  /**
-   * x属性
-   *
-   * @return {*}
-   */
-  get x() {
-    return this._x
-  }
-  set x(value) {
-    this._x = value
-  }
-
-  /**
-   * x属性
-   *
-   * @return {*}
-   */
-  get y() {
-    return this._y
-  }
-  set y(value) {
-    this._y = value
-  }
-
-  /**
-   * width 属性
-   *
-   * @return {number}
-   */
-  get width() {
-    return this._width
-  }
-  set width(value) {
-    this._width = Math.max(value, 0)
-  }
-
-  /**
-   * height 属性
-   * @return {number}
-   */
-  get height() {
-    return this._height
-  }
-  set height(value) {
-    this._height = Math.max(value, 0)
-  }
-
-  /**
-   * 判断矩形空间是否包含点x,y
-   *
-   * @param   x       横坐标(当前item)
-   * @param   y       纵坐标(当前item)
-   * @return  boolean
-   */
-  contains(x, y) {
-    return (x >= this.x && x <= this.right) && (y >= this.top && y <= this.bottom)
-  } // Function contains()
-
-  /**
-   * 调整Rect位置
-   *
-   * @param x
-   * @param y
-   * @return  SRect
-   */
-  adjusted(x, y = null) {
-    if (typeof (x) === 'object') {     // 如果传入的是SPoint对象
-      return new SRect(this.x + x.x, this.y + x.y, this.width, this.height)
-    }
-
-    return new SRect(this.x + x, this.y + y, this.width, this.height)
-  } // Function adjusted()
-
-  /**
-   * 合并rect
-   *
-   * @param   rect
-   */
-  union(rect) {
-    this.left = Math.min(this.left, rect.left)
-    this.top = Math.min(this.top, rect.top)
-    this.right = Math.max(this.right, rect.right)
-    this.bottom = Math.max(this.bottom, rect.bottom)
-  } // Function union()
-} // Class SRect

+ 0 - 9
src/assets/node-templete/index.js

@@ -1,9 +0,0 @@
-import SGraphyView from './SGraphy/SGraphyView'
-import SGraphyScene from './SGraphy/SGraphyScene'
-import SGraphyClockItem from './SGraphy/items/SGraphyClockItem'
-import SGraphyRectItem from './SGraphy/items/SGraphyRectItem'
-// import SGraphyImageItem from './SGraphy/items/SGraphyImageItem'
-import SGraphyLineItem from './SGraphy/items/SGraphyLineItem'
-import SGraphyPolygonItem from './SGraphy/items/SGraphyPolygonItem'
-
-export { SGraphyView, SGraphyScene, SGraphyClockItem, SGraphyRectItem, SGraphyLineItem, SGraphyPolygonItem }

+ 215 - 259
src/components/business_space/business/handsontable.vue

@@ -1,16 +1,16 @@
 <template>
   <div id="handsontable" v-loading="isLoading">
     <el-row class="left">
-      <div style="display: inline-block" v-show="zoneCode === 'OtherZone'">
-        <!--              <div style="display: inline-block" v-show="!onlyRead && zoneCode === 'OtherZone'">-->
+      <!-- <div style="display: inline-block" v-show="zoneCode === 'OtherZone'">
         <el-button @click="addZoneBtn" type="primary">添加分区</el-button>
         <el-select v-model="OtherValue" placeholder="请选择分区类型" @change="changeOtherZone">
           <el-option v-for="item in OtherList" :key="item.value" :label="item.label" :value="item.value">
           </el-option>
         </el-select>
         &nbsp;&nbsp; | &nbsp;&nbsp;
-      </div>
-      <el-select v-model="onlyRead" @change="getData(false)" style="width:100px;margin-right:20px;vertical-align:bottom;">
+      </div> -->
+      <el-select v-model="onlyRead" @change="getData(false)"
+                 style="width:100px;margin-right:20px;vertical-align:bottom;">
         <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
       </el-select>
       <el-select v-model="showType" @change="initHot" style="width:100px;margin-right:10px;vertical-align:bottom;">
@@ -19,7 +19,8 @@
       <el-button v-show="!onlyRead" @click="addSp">添加</el-button>
       <el-button @click="reset">刷新</el-button>
       <el-button v-show="!onlyRead" @click="undo">撤销</el-button>
-      <el-input v-model="zoneItemID" placeholder="请输入业务空间id" @keyup.enter.native="getData" style="display:inline-block;width:500px;margin-left:20px;">
+      <el-input v-model="zoneItemID" placeholder="请输入业务空间id" @keyup.enter.native="getData"
+                style="display:inline-block;width:500px;margin-left:20px;">
         <i slot="suffix" class="el-input__icon el-icon-search" @click="getData"></i>
       </el-input>
     </el-row>
@@ -29,9 +30,11 @@
       暂无数据
     </div>
     <!-- <add-business :buildMess="buildMess" :dialog="dialog"></add-business> -->
-    <el-pagination class="right" v-show="main && main.length" @size-change="handleSizeChange" @current-change="handleCurrentChange"
-      :current-page="page.pageNumber" :page-sizes="page.pageSizes" :page-size="page.pageSize" layout="total, sizes, prev, pager, next, jumper"
-      :total="page.total">
+    <el-pagination class="right" v-show="main && main.length" @size-change="handleSizeChange"
+                   @current-change="handleCurrentChange"
+                   :current-page="page.pageNumber" :page-sizes="page.pageSizes" :page-size="page.pageSize"
+                   layout="total, sizes, prev, pager, next, jumper"
+                   :total="page.total">
     </el-pagination>
     <!-- <div class="right" v-show="main && main.length">
       <my-pagination :page="page" @change="pageChange"></my-pagination>
@@ -39,8 +42,8 @@
     <!-- 二维码弹窗 -->
     <qrcode :dialog="dialog" :qrcodeUrl="qrcodeUrl" :addBody="true" ref="qrcode"></qrcode>
     <!--      上传图片-->
-    <upload-img-dialog :read="onlyRead" @changeFile="imgChange" :keysArr="imgsArr" :dialog="myDialog" />
-    <dialogZone ref="zone" @createSuccess="getOtherType" />
+    <upload-img-dialog :read="onlyRead" @changeFile="imgChange" :keysArr="imgsArr" :dialog="myDialog"/>
+    <dialogZone ref="zone" @createSuccess="getOtherType"/>
     <!-- 不支持的输入方式 -->
     <el-dialog title="临时维护信息点" :visible.sync="myDialog.update" @close="handleCloseUpdate" width="670px">
       <el-row>
@@ -69,53 +72,51 @@
   </div>
 </template>
 <script>
-  // 引用handsontable插件
-  import "@/assets/js/chosen.jquery.min";
-  import tools from "@/utils/scan/tools";
-  import "@/assets/js/handsontable-chosen-editor";
-  import lStorage from '@/utils/localStorage'
-  import myPagination from "@/components/common/myPagination";
-  import addBusiness from "@/components/business_space/dialogs/addDialog/businessDialog"
-  import showTools from "@/utils/handsontable/notShow"
-  import handsonUtils from "@/utils/hasontableUtils"
-  import Handsontable from "handsontable-pro"
-  import buildFloor from '@/utils/handsontable/buildFloorData'
-  import spaceCascader from '@/components/ledger/lib/spaceSelect'
-  import 'handsontable-pro/dist/handsontable.full.css'
-  import uploadImgDialog from "@/components/business_space/dialogs/list/uploadImgDialog"
-  import qrcode from "@/components/ledger/lib/qrcode";
-  import {
-    BeatchQueryParam,
-    handleZoneUpdateBd,
-    queryAllZoneType,
-    zoneCreate,
-    zoneDelete,
-    zoneQuery,
-    zoneUpdate
-  } from "@/api/scan/request";
-  import {mapGetters} from "vuex";
-  import dialogZone from "../../ledger/addDialog/dialogZone";
+// 引用handsontable插件
+import "@/assets/js/chosen.jquery.min";
+import tools from "@/utils/scan/tools";
+import "@/assets/js/handsontable-chosen-editor";
+import lStorage from '@/utils/localStorage'
+import myPagination from "@/components/common/myPagination";
+import showTools from "@/utils/handsontable/notShow"
+import handsonUtils from "@/utils/hasontableUtils"
+import Handsontable from "handsontable-pro"
+import buildFloor from '@/utils/handsontable/buildFloorData'
+import spaceCascader from '@/components/ledger/lib/spaceSelect'
+import 'handsontable-pro/dist/handsontable.full.css'
+import uploadImgDialog from "@/components/business_space/dialogs/list/uploadImgDialog"
+import qrcode from "@/components/ledger/lib/qrcode";
+import {
+  BeatchQueryParam,
+  handleZoneUpdateBd,
+  queryAllZoneType,
+  zoneCreate,
+  zoneDelete,
+  zoneQuery,
+  zoneUpdate
+} from "@/api/scan/request";
+import {mapGetters} from "vuex";
+import dialogZone from "../../ledger/addDialog/dialogZone";
 
-  export default {
-    props: {
-      id: {},
-      zoneCode: {},
-      otherType: String
-    },
-    components: {
-      qrcode, //二维码页面
-      myPagination,
-      addBusiness,
-      uploadImgDialog,
+export default {
+  props: {
+    id: {},
+    zoneCode: {},
+    otherType: String
+  },
+  components: {
+    qrcode, //二维码页面
+    myPagination,
+    uploadImgDialog,
     dialogZone,
     spaceCascader,
   },
   computed: {
-    ...mapGetters("layout", ["projectId", "secret", "userId"]),
+    ...mapGetters("layout", ["projectId", "secret", "userId", "group_code"]),
     showTypes() {
       return this.onlyRead ?
-        [{ value: "Visible", label: '只看采集信息' }, { value: "all", label: '全部' }] :
-        [{ value: "Visible", label: '只看采集信息' }, { value: "all", label: '全部' }]
+        [{value: "Visible", label: '只看采集信息'}, {value: "all", label: '全部'}] :
+        [{value: "Visible", label: '只看采集信息'}, {value: "all", label: '全部'}]
     }
   },
   data() {
@@ -137,7 +138,7 @@
         label: '编辑模式'
       }],
       onlyRead: true,
-      showType: "",
+      showType: "Visible",
       page: {
         pageSize: 50,
         pageSizes: [10, 20, 50, 100],
@@ -156,11 +157,12 @@
       zoneItemID: '',
       inputMap: {
         flowBuild: {
-          InputMode: 'D1',
-          Editable:true,
-          InfoPointCode:"flowBuild",
-          InfoPointName:"建筑楼层",
-          Path:"flowBuild"
+          editable:true,
+          code:"flowBuild",
+          name:"建筑楼层",
+          path:"flowBuild",
+          category: 'STATIC',
+          dataType: "ENUM"
         }
       }, //信息点和输入方式映射表
       updateInputShow: false, //是否显示临时维护输入框
@@ -192,9 +194,20 @@
     //获取表格数据
     getHeader(headers, buildFloorSelectd) {
       this.headers = headers
+      this.codeToDataSource = {}
       this.headers.forEach(item => {
-        if (item.Path) {
-          this.inputMap[item.Path] = item
+        if (item.path) {
+          this.inputMap[item.path] = item
+        }
+        if (item.dataSource) {
+          try {
+            this.codeToDataSource[item.code] = {}
+            item.dataSource.forEach(dic => {
+              this.codeToDataSource[item.code][dic.code] = dic.name;
+            })
+          } catch (e) {
+            console.log(e);
+          }
         }
       })
       this.buildFloorSelectd = buildFloorSelectd
@@ -204,15 +217,15 @@
 
     getData() {
       this.zoneParam = {
-        ZoneType: this.zoneCode,
-        PageNumber: this.page.pageNumber,
-        PageSize: this.page.pageSize,
-        Orders: "createTime desc, RoomLocalName desc, RoomLocalID desc, RoomID asc"
+        zoneType: this.zoneCode,
+        pageNumber: this.page.pageNumber,
+        pageSize: this.page.pageSize,
+        orders: "createTime desc, localName desc, localId desc, id asc"
       }
       if (this.buildFloorSelectd.length === 1) {
         switch (this.buildFloorSelectd[0]) {
           case 'noKnow':
-            this.zoneParam.BuildingId = 'isnull';
+            this.zoneParam.buildingId = 'isnull';
             break;
           case 'all':
             // params.BuildingId = '';
@@ -221,60 +234,65 @@
       } else if (this.buildFloorSelectd.length === 2) {
         switch (this.buildFloorSelectd[1]) {
           case 'noKnow':
-            this.zoneParam.BuildingId = this.buildFloorSelectd[0];
-            this.zoneParam.FloorId = 'isnull';
+            this.zoneParam.buildingId = this.buildFloorSelectd[0];
+            this.zoneParam.floorId = 'isnull';
             break;
           case 'all':
-            this.zoneParam.BuildingId = this.buildFloorSelectd[0];
+            this.zoneParam.buildingId = this.buildFloorSelectd[0];
             // params.FloorId = '';
             break;
           default:
-            this.zoneParam.BuildingId = this.buildFloorSelectd[0];
-            this.zoneParam.FloorId = this.buildFloorSelectd[1]
+            this.zoneParam.buildingId = this.buildFloorSelectd[0];
+            this.zoneParam.floorId = this.buildFloorSelectd[1]
 
         }
       }
       if (this.zoneItemID) {
-        this.zoneParam.Filters = `RoomID="${this.zoneItemID}"`
+        this.zoneParam.Filters = `id="${this.zoneItemID}"`
       }
-      if (this.zoneCode != 'OtherZone') {
-        this.isLoading = true
-        this.getZoneMessage(this.zoneParam)
-      } else {
+      this.isLoading = true
+      this.getZoneMessage(this.zoneParam)
+      /**
+       * TODO: 其他分区下已不再划分分区(注释的代码是其他分区下再划分分区的代码)
+       */
+    //   if (this.zoneCode != 'OtherZone') {
+        // this.isLoading = true
+        // this.getZoneMessage(this.zoneParam)
+    //   } else {
         // 其他分区类型查询表数据接口
         // if (localStorage.getItem('otherZone')) {
         //   // this.OtherValue = (localStorage.getItem('otherZone'))
         //   localStorage.removeItem('otherZone')
         // }
-        if (this.OtherValue) {
-          this.zoneParam.ZoneType = this.OtherValue;
-          this.getZoneMessage(this.zoneParam)
-        } else {
-          this.main = []
-        }
-        this.isLoading = false
-        this.getOtherType();
-      }
+        // if (this.OtherValue) {
+        //   this.zoneParam.ZoneType = this.OtherValue;
+        //   this.getZoneMessage(this.zoneParam)
+        // } else {
+        //   this.main = []
+        // }
+        // this.isLoading = false
+        // this.getOtherType();
+    //   }
     },
     //查询空间信息
     getZoneMessage(param) {
       let params = param
-      params.Orders = "createTime desc, RoomID asc, RoomLocalName desc, RoomLocalID desc"
+      params.orders = "createTime desc,localName desc,id desc"
       zoneQuery(params, res => {
-        this.page.total = res.Total;
-        this.main = res.Content.map((item) => {
-          if (item.hasOwnProperty("BuildingId") && item.hasOwnProperty("FloorId")) {
-            item.flowBuild = item.BuildingId + "-" + item.FloorId
-          } else if (item.hasOwnProperty("BuildingId") && !item.hasOwnProperty("FloorId")) {
-            item.flowBuild = item.BuildingId
-          }
-          if (item.Outline) {
-            item.Outline = JSON.stringify(item.Outline)
+        this.page.total = res.total;
+        this.main = res.content.map((item) => {
+          if (item.hasOwnProperty("buildingId") && item.hasOwnProperty("floorId")) {
+            item.flowBuild = item.buildingId + "-" + item.floorId
+          } else if (item.hasOwnProperty("buildingId") && !item.hasOwnProperty("floorId")) {
+            item.flowBuild = item.buildingId
           }
+          // if (item.outline) {
+          //   item.outline = JSON.stringify(item.outline)
+          // }
           return item
         });
 
-        if (this.main && this.main.length && this.main[0].RoomID) {
+        if (this.main && this.main.length && this.main[0].id) {
           this.copyMain = tools.deepCopy(this.main);
           if (this.onlyRead) {
             this.getBatch(this.main)
@@ -284,70 +302,6 @@
         this.getMain()
       })
     },
-    // getData() {
-    //   if (this.zoneCode != 'OtherZone') {
-    //     this.isLoading = true
-    //     let params = {
-    //       zone: this.zoneCode,
-    //       data: {
-    //         Filters: ``,
-    //         Orders: "createTime desc, RoomID asc",
-    //         PageNumber: this.page.pageNumber,
-    //         PageSize: this.page.pageSize
-    //       }
-    //     }
-    //     if (this.buildFloorSelectd[0] == "noKnow") {
-    //       params.data.Filters += `buildingId isNull`
-    //     } else if (this.buildFloorSelectd[0] && this.buildFloorSelectd[0] != "all") {
-    //       params.data.Filters += `buildingId='${this.buildFloorSelectd[0]}'`
-    //     }
-    //     if (this.buildFloorSelectd.length > 1) {
-    //       if (this.buildFloorSelectd[1] == "noKnow") {
-    //         params.data.Filters += `;floorId isNull`
-    //       } else if (this.buildFloorSelectd[1] && this.buildFloorSelectd[1] != "all") {
-    //         params.data.Filters += `;floorId='${this.buildFloorSelectd[1]}'`
-    //       }
-    //     }
-    //     if (this.zoneItemID) {
-    //       params.data.Filters += `;RoomID='${this.zoneItemID}'`
-    //     }
-    //     if (!params.data.Filters) {
-    //       delete params.data.Filters
-    //     }
-    //     // if (this.buildFloorSelectd.length && this.buildFloorSelectd[0] && this.buildFloorSelectd[1]) {
-    //     //   params.data.Filters = `BuildingId='${this.buildFloorSelectd[0]}';FloorId='${this.buildFloorSelectd[1]}'`
-    //     // }
-    //     // else if (buildFloorSelectd.length && buildFloorSelectd[0] && !buildFloorSelectd[1]) {
-    //     //   params.data.Filters = `BuildingId='${buildFloorSelectd[0]}'`
-    //     // } else {
-    //     //   params.data.Filters = `BuildingId='';FloorId=''`
-    //     // }
-    //
-    //     queryZone(params, res => {
-    //       this.page.total = res.Total
-    //       this.main = res.Content.map((item) => {
-    //         if (item.hasOwnProperty("BuildingId") && item.hasOwnProperty("FloorId")) {
-    //           item.flowBuild = item.BuildingId + "-" + item.FloorId
-    //         } else if (item.hasOwnProperty("BuildingId") && !item.hasOwnProperty("FloorId")) {
-    //           item.flowBuild = item.BuildingId
-    //         }
-    //         return item
-    //       });
-    //       if (this.main && this.main.length && this.main[0].RoomID) {
-    //         this.copyMain = tools.deepCopy(this.main);
-    //         if (this.onlyRead) {
-    //           this.getBatch(this.main)
-    //         }
-    //       }
-    //       this.isLoading = false
-    //       this.getMain()
-    //     })
-    //   } else {
-    //     // 其他分区类型查询表数据接口
-    //     this.isLoading = false
-    //     this.getOtherType();
-    //   }
-    // },
     //获取表格主体内容
     getMain() {
       if (!!this.hot) {
@@ -362,6 +316,10 @@
     initHot() {
       var container = document.getElementById(this.id);
       let winHeight = document.documentElement.clientHeight;
+      if (this.hot) {
+        this.hot.destroy();
+        this.hot = null;
+      }
       this.hot = new Handsontable(container, {
         data: this.main,
         colHeaders: this.delHeader(this.headers), //表头文案
@@ -377,6 +335,7 @@
         observeChanges: false,
         language: "zh-CN",
         manualColumnResize: true,
+        fillHandle: 'vertical', //允许纵向填充
         manualColumnMove: true,
         dropdownMenu: [
           "filter_by_condition",
@@ -431,10 +390,10 @@
       let val = this.hot.colToProp(row.col);
       this.row = row.row;
       let inputData = this.inputMap[val];
-      lStorage.set('screen_data', {path: this.$route.path, data: {RoomID: infos.RoomID, zone: this.zoneCode}})
+      lStorage.set('screen_data', {path: this.$route.path, data: {RoomID: infos.id, zone: this.zoneCode}})
       if (val == "point") {
         let query = {
-          RoomID: infos.RoomID,
+          RoomID: infos.id,
           zone: this.zoneCode,
           isMyTab: 2,
           buildFloorSelectd: this.buildFloorSelectd
@@ -450,19 +409,24 @@
         } else {
           this.$message("此空间没有二维码")
         }
-      } else if (val == "Pic") {
+      } else if (val == "pic") {
         let Picdata = tools.dataForKey(this.main[row.row], val);
         this.imgsArr = Picdata ? Picdata : [];
         if (!this.onlyRead || this.imgsArr.length) {
           this.myDialog.uploadImgs = true;
         }
       }
-
-      if (!this.onlyRead && !inputData.Editable) {
-        this.$message("该信息点的值为自动生成,不可人工维护!");
-        return false;
+      if (!this.onlyRead && !inputData.editable) {
+        this.$confirm('该信息点的值为自动生成,不可人工维护!', '提示', {
+            confirmButtonText: '我知道了',
+            showCancelButton: false,
+            type: 'warning',
+            center: true
+        }).then(() => {
+            return false;
+        });
       }
-      if (!this.onlyRead && showTools.InputModeArr.indexOf(inputData.InputMode) == '-1') {
+      if (!this.onlyRead && showTools.inputModeArr.indexOf(inputData.dataType) == '-1') {
         this.updateInfoPoint = val;
         this.updateInput = tools.dataForKey(this.tableData[row.row], val);
         this.myDialog.update = true;
@@ -471,17 +435,17 @@
     },
     //关闭临时维护弹窗回调
     handleCloseUpdate() {
-        this.updateInputShow = false
-        this.updateInfoPoint = ''
-        this.updateInput = ''
+      this.updateInputShow = false
+      this.updateInfoPoint = ''
+      this.updateInput = ''
     },
     //更新临时维护信息点
     handleClickUpdate() {
-        tools.setDataForKey(this.tableData[this.row], this.updateInfoPoint, this.updateInput)
-        this.tdChange([[this.row, this.updateInfoPoint, null, this.updateInput]], "edit")
-        this.updateInputShow = false
-        this.myDialog.update = false
-        this.updateInput = ''
+      tools.setDataForKey(this.tableData[this.row], this.updateInfoPoint, this.updateInput)
+      this.tdChange([[this.row, this.updateInfoPoint, null, this.updateInput]], "edit")
+      this.updateInputShow = false
+      this.myDialog.update = false
+      this.updateInput = ''
     },
     //表格发生更改
     tdChange(changeData, source) {
@@ -491,7 +455,7 @@
           let param = handsonUtils.getParam(changeData, source, this.hot, trimmedArr);
           let data = []
           for (let i = 0; i < param.length; i++) {
-            if (param[i].RoomID) {
+            if (param[i].id) {
               data.push(param[i])
             } else {
               this.handleCreateZone(param[i])
@@ -517,8 +481,8 @@
       }
       let param = []
       params.map(item => {
-        if (item.RoomID)
-          param.push({ RoomID: item.RoomID })
+        if (item.id)
+          param.push({ id: item.id })
       })
       params.map(i => i.ObjectType = this.zoneParam.ZoneType ? this.zoneParam.ZoneType : i.ObjectType);
       this.$confirm("此操作将删除业务空间,是否继续?", "提示", {
@@ -543,7 +507,7 @@
           delete param[key]
         }
       })
-      if (!param.RoomLocalName) {
+      if (!param.localName) {
         this.$message("新增业务空间本地名称不能为空!")
         return
       }
@@ -552,37 +516,22 @@
         return
       }
       if (param.flowBuild) {
-
-        param.BuildingId = param.flowBuild.split('-')[0]
-        param.FloorId = param.flowBuild.split('-')[1] || null
+        param.buildingId = param.flowBuild.split('-')[0]
+        param.floorId = param.flowBuild.split('-')[1] || null
       } else {
         if (this.buildFloorSelectd) {
           if (this.buildFloorSelectd[0] != 'all' && this.buildFloorSelectd[0] != 'noKnow') {
-            param.BuildingId = this.buildFloorSelectd[0]
+            param.buildingId = this.buildFloorSelectd[0]
           }
           if (this.buildFloorSelectd[1] && this.buildFloorSelectd[1] != 'all' && this.buildFloorSelectd[1] != 'noKnow') {
-            param.FloorId = this.buildFloorSelectd[1]
+            param.floorId = this.buildFloorSelectd[1]
           }
         }
       }
-
-      param.ObjectType = this.zoneParam.ZoneType ? this.zoneParam.ZoneType : this.zoneCode;
+      param.classCode = this.zoneParam.ZoneType ? this.zoneParam.ZoneType : this.zoneCode;
       let params = {
-        Content: [param]
+        content: [param]
       };
-
-      // let params = {
-      //   zone: this.zoneCode,
-      //   data: {
-      //     Content: [param]
-      //   }
-      // }
-      // createZone(params, res => {
-      //
-      //   this.$message.success("添加成功!")
-      //   this.getData()
-      // })
-
       zoneCreate(params, res => {
         this.$message.success("添加成功!")
         this.getData()
@@ -592,8 +541,9 @@
     updateBusiness(data, change) {
       let param = {
         data: {
-          Content: [],
-          Projection: []
+          content: [],
+          projection: [],
+          nullItems: []
         },
         zone: this.zoneCode
       };
@@ -603,13 +553,18 @@
         let key = item[1].split(".")[0]
         if (key == "flowBuild" && keyList.indexOf(key) == -1) {
           keyList.push("BuildingId", "FloorId")
-          param.data.Projection.push("BuildingId", "FloorId")
+          param.data.projection.push("BuildingId", "FloorId")
         }
         if (item[1] && keyList.indexOf(key) == -1) {
           keyList.push(key)
         }
-        if (item[1] && item[3] == "" && param.data.Projection.indexOf(key) == -1) {
-          param.data.Projection.push(key)
+        if (item[1] && item[3] == "" && param.data.projection.indexOf(key) == -1) {
+          param.data.projection.push(key)
+          keyList.push(item[1])
+        }
+        // 保存置空字段
+        if (item[1] && item[3] == "" && param.data.nullItems.indexOf(item[1]) == -1) {
+          param.data.nullItems.push(item[1])
         }
       })
       //生成对应修改数据
@@ -636,14 +591,14 @@
             tools.setDataForKey(item, value, itemData == "" ? null : itemData)
           }
         })
-        param.data.Content.push(item);
+        param.data.content.push(item);
       })
-      if (param.data.Projection.indexOf('BuildingId') > -1) {
-        let pa = param.data.Content.map(t => {
+      if (param.data.projection.indexOf('BuildingId') > -1) {
+        let pa = param.data.content.map(t => {
           return {
-            Type: this.zoneCode,
-            SpaceId: t.RoomID,
-            Id: t.FloorId || t.BuildingId || null,
+            type: this.zoneCode,
+            spaceId: t.id,
+            id: t.FloorId || t.BuildingId || null,
           }
         })
         handleZoneUpdateBd(pa, res => {
@@ -656,7 +611,7 @@
       } else {
         // updateZone(param, (res) => {
         // })
-        let obj = param.data.Content.map(i => {
+        let obj = param.data.content.map(i => {
           i.Outline = typeof i.Outline == 'string' ? JSON.parse(i.Outline) : i.Outline
           return {
             ...i,
@@ -664,8 +619,9 @@
           }
         })
         let updateParam = {
-          Content: obj,
-          Projection: param.data.Projection
+          content: obj,
+          nullItems: param.data.nullItems
+          // projection: param.data.projection
         };
         zoneUpdate(updateParam, res => {
           this.$message.success('更新成功')
@@ -709,51 +665,48 @@
     //获取动态参数
     getBatch(data) {
       let param = {
-        secret: this.secret,
-        ProjId: this.projectId,
-        data: {
-          criterias: []
-        }
+        groupCode: this.group_code,
+        appId: "datacenter",
+        projectId: this.projectId,
+        data: []
       };
       this.headers.map(head => {
-        if (
-          head.InputMode == "L" ||
-          head.InputMode == "L1" ||
-          head.InputMode == "L2" ||
-          head.InputMode == "M"
-        ) {
+        if (head.category != 'STATIC') {
           data.map(item => {
-            let cur = tools.dataForKey(item, head.Path);
+            let cur = tools.dataForKey(item, head.path);
             if (cur) {
-              param.data.criterias.push({
-                id: item.RoomID,
-                code: head.InfoPointCode
+              param.data.push({
+                objectId: item.id,
+                infoCode: head.code
               });
             }
           });
         }
       });
-      if (param.data.criterias.length) {
+      if (param.data.length) {
         BeatchQueryParam(param, res => {
           if (!this.onlyRead) {
             return false
           }
           this.main = data.map(item => {
-            res.Content.map(child => {
-              if (item.RoomID == child.id) {
+            res.data.map(child => {
+              if (item.id == child.objectId) {
                 if (child.data || child.data == 0) {
                   this.headers.map(head => {
-                    if (head.InfoPointCode == child.code) {
-                      tools.setDataForKey(item, head.Path, child.data);
+                    if (head.code == child.infoCode) {
+                      let contentVal = child.data
+                      if (this.codeToDataSource[child.infoCode]) {
+                        contentVal = this.codeToDataSource[child.infoCode][child.data]
+                      }
+                      tools.setDataForKey(item, head.path, contentVal);
                     }
                   });
                 } else {
                   this.headers.map(head => {
-                    if (head.InfoPointCode == child.code) {
+                    if (head.code == child.infoCode) {
                       tools.setDataForKey(
                         item,
-                        head.Path,
-                        // child.error ? "表号功能号格式错误" : "表号功能号不存在"
+                        head.path,
                         child.error ? child.value ? "表号功能号格式错误" : "表号功能号不存在" : "暂未采集到实时数据"
                       );
                     }
@@ -792,7 +745,7 @@
       let arr = tools.copyArr(list)
       let data = showTools.headerTypeFilter(arr, "space", this.onlyRead, this.showType)
       data.unshift({
-        data: "Outline",
+        data: "outline",
         renderer: this.myRenderer,
         readOnly: true
       }, {
@@ -830,15 +783,17 @@
     /**  页面中的按钮事件--------------------------- */
     addSp() {
       this.myDialog.addSpace = true;
-      if (this.zoneCode && this.zoneCode != 'OtherZone') {
+      // 其他分区 已删除在其他分区下添加子分区
+      // if (this.zoneCode && this.zoneCode != 'OtherZone') {
         this.$nextTick(() => {
           this.$refs.cascader.setValue([this.zoneCode])
         })
-      } else if (this.zoneCode == 'OtherZone' && this.OtherValue) {
-        this.$nextTick(() => {
-          this.$refs.cascader.setValue([this.zoneCode,this.OtherValue])
-        })
-      }
+      // } else if (this.zoneCode == 'OtherZone' && this.OtherValue) {
+      //   this.$nextTick(() => {
+      //     this.$refs.cascader.setValue([this.zoneCode, this.OtherValue])
+      //   })
+      // }
+      // 以下是直接在列表中添加的方法
       // if (this.main && this.main.length && this.main[0].RoomID) {
       //   this.hot.destroy()
       //   this.hot = null
@@ -866,18 +821,18 @@
     },
     //选择业务空间类型-添加业务空间
     changeAddType(val, item, value) {
-      if (value.length == 2 && value[0] == "OtherZone") {
-        this.addData.spaceType = val;
-        this.addData.otherType = value[0]
-        this.addData.spaceName = `其他分区-${item.Name}`;
-        this.addData.showType = this.showType;
-        this.addData.buildFloorSelectd = this.buildFloorSelectd;
-      } else {
+      // if (value.length == 2 && value[0] == "OtherZone") {
+      //   this.addData.spaceType = val;
+      //   this.addData.otherType = value[0]
+      //   this.addData.spaceName = `其他分区-${item.name}`;
+      //   this.addData.showType = this.showType;
+      //   this.addData.buildFloorSelectd = this.buildFloorSelectd;
+      // } else {
         this.addData.spaceType = val;
-        this.addData.spaceName = item.Name;
+        this.addData.spaceName = item.name;
         this.addData.showType = this.showType;
         this.addData.buildFloorSelectd = this.buildFloorSelectd;
-      }
+      // }
     },
     //刷新
     reset() {
@@ -901,7 +856,7 @@
     },
     //上传图片弹窗触发事件
     imgChange(keys) {
-      this.setDataToMain(keys, 'Pic', this.row);
+      this.setDataToMain(keys, 'pic', this.row);
     },
     //判断是否有值,有值赋值
     setDataToMain(data, key, row) {
@@ -924,14 +879,14 @@
     //  其他分区类型查询
     getOtherType() {
       let param = {
-        Cascade: [{ Name: 'zoneType', Filters: `ProjectId='${this.projectId}'` }],
-        Filters: `Code="OtherZone"`
+        cascade: [{ name: 'zoneType', filters: `projectId='${this.projectId}'` }],
+        filters: `code="otherZone"`
       }
       queryAllZoneType(param, res => {
-        if (res.Content[0].ZoneType && res.Content[0].ZoneType.length) {
-          this.OtherList = res.Content[0].ZoneType.map(t => {
-            t.value = t.Code
-            t.label = t.Name
+        if (res.content[0].zoneType && res.content[0].zoneType.length) {
+          this.OtherList = res.content[0].zoneType.map(t => {
+            t.value = t.code
+            t.label = t.name
             return t
           })
         } else {
@@ -968,7 +923,7 @@
         if (newName && newName[0] && newName[0].value) {
           this.showType = newName[0].value
         } else {
-          this.showType = ""
+          this.showType = "Visible"
         }
       },
       immediate: true,
@@ -980,6 +935,7 @@
 <style lang="less" scoped>
 #handsontable {
   padding: 0 10px;
+
   .left {
     padding: 0;
     margin-bottom: 10px;

+ 0 - 770
src/components/business_space/dialogs/addDialog/businessDialog.vue

@@ -1,770 +0,0 @@
-<!--
-    上传文件的弹窗
--->
-
-<template>
-  <div v-show="dialog.addDevice">
-    <el-dialog
-      :title="title"
-      :center="isCenter"
-      :visible.sync="dialog.addDevice"
-      :width="width"
-      :fullscreen="isFull"
-    >
-      <div id="addDevice">
-        <div v-show="!isCenter">
-          <my-cascader @change="changeCader"></my-cascader>
-        </div>
-        <div v-if="isCenter">
-          <div>
-            <div class="hanson-bar" style="overflow:hidden;">
-              <el-button
-                style="float:right;"
-                size="small"
-                @click="undo"
-                icon="iconfont icon-undo"
-              >撤销</el-button>
-              <el-button
-                style="float:right;"
-                size="small"
-                @click="reset"
-                icon="iconfont icon-shuaxin"
-              >刷新</el-button>
-              <el-button style="float:right;" size="small" @click="addMain">增加</el-button>
-              <el-input
-                v-model="addNum"
-                placeholder="增加个数"
-                style="width:50px;float:right;"
-                size="small"
-              ></el-input>
-            </div>
-            <div v-show="main && main.length" id="myHandson" ref="myHandson"></div>
-          </div>
-        </div>
-      </div>
-      <span slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="addSpace">添加业务空间</el-button>
-      </span>
-    </el-dialog>
-    <qrcode :dialog="myDialog" :addBody="true" ref="qrcode"></qrcode>
-    <firm ref="firm" :dialog="myDialog"></firm>
-    <supply-dialog ref="supply" :dialog="myDialog"></supply-dialog>
-    <supplier-dialog ref="supplier" @changeSupplier="supplierChange" :dialog="myDialog"></supplier-dialog>
-    <guarantee-dialog ref="guarantee" :dialog="myDialog"></guarantee-dialog>
-    <upload-files-dialog
-      ref="upload"
-      @changeFile="fileChange"
-      :keysArr="filesArr"
-      :dialog="myDialog"
-    ></upload-files-dialog>
-    <upload-img-dialog @changeFile="imgChange" :keysArr="imgsArr" :dialog="myDialog"></upload-img-dialog>
-    <maintainer-dialog @changeMaintainer="changeMaintainer" ref="maintainer" :dialog="myDialog"></maintainer-dialog>
-    <insurer-dialog @changeInsurer="changeInsurer" ref="insurer" :dialog="myDialog"></insurer-dialog>
-    <pic-dialog :dialog="myDialog" :keysArr="picsArr" @change="changePics"></pic-dialog>
-  </div>
-</template>
-<script>
-
-import myCascader from "@/components/business_space/lib/cascaders/assets";
-// import hansonTable from "@/components/business_space/dialogHanson/addDevice";
-import { getSpaceHeader } from "@/api/scan/request";
-import { mapGetters, mapActions } from "vuex";
-import tools from "@/utils/tools";
-import qrcode from "@/components/business_space/lib/qrcode";
-import firm from "@/components/business_space/dialogs/list/firm";
-import supplyDialog from "@/components/business_space/dialogs/list/supplyDialog";
-import supplierDialog from "@/components/business_space/dialogs/list/supplierDialog";
-import maintainerDialog from "@/components/business_space/dialogs/list/maintainerDialog";
-import insurerDialog from "@/components/business_space/dialogs/list/insurerDialog";
-import guaranteeDialog from "@/components/business_space/dialogs/list/guaranteeDialog";
-import uploadFilesDialog from "@/components/business_space/dialogs/list/filesDialog";
-import uploadImgDialog from "@/components/business_space/dialogs/list/uploadImgDialog";
-import picDialog from "@/components/business_space/dialogs/list/picDialog"
-
-let table = function (num) {
-  let main = []
-  for (let i = 0; i < num; i++) {
-    main.push({})
-  }
-  return main
-}
-export default {
-  components: {
-    myCascader,
-    // hansonTable,
-    qrcode, //二维码页面
-    firm, //
-    supplyDialog,
-    supplierDialog,
-    guaranteeDialog,
-    uploadFilesDialog,
-    maintainerDialog,
-    insurerDialog,
-    uploadImgDialog,
-    picDialog
-  },
-  props: {
-    dialog: {
-      type: Object,
-      default: function () {
-        return {
-          addDevice: false
-        };
-      }
-    },
-    headerData: {
-      type: Array,
-      default: function () {
-        return []
-      }
-    }
-  },
-  computed: {
-    ...mapGetters("layout", ["projectId", "secret", "userId"]),
-  },
-  data() {
-    return {
-      width: "30%",
-      isFull: true,//dialog是否为全屏
-      title: "添加业务空间",
-      isCenter: true,
-      deviceType: {},
-      main: table(10),
-      mess: {},
-      headers: null,
-      page: {
-        size: 50,
-        sizes: [10, 30, 50, 100, 150, 200],
-        total: 400,
-        currentPage: 1
-      },
-      id: null,
-      myDialog: {
-        qrcode: false, //二维码弹窗
-        firm: false, //厂商弹窗
-        supply: false, //选择供应合同
-        supplier: false, //供应商选择
-        guarantee: false, //选择保单
-        maintainer: false, //选择维修商
-        insurer: false, //选择保险公司
-        uploadFiles: false,//上传文件
-        uploadImgs: false,//上传单个图片
-        pic: false, //多个图片
-      },
-      addNum: 1,//增加个数
-      row: null,//被修改的row
-      filesArr: [],//保存临时的文件key
-      messKey: null,
-      imgsArr: [],//临时保存的图片key数组
-      picsArr: [],//临时设备图片keys数组
-    };
-  },
-  created() {
-
-  },
-  mounted() {
-  },
-  methods: {
-    //增加个数
-    addMain() {
-      for (let i = 0; i < this.addNum; i++) {
-        this.main.push({})
-      }
-      this.hot.loadData(this.main)
-    },
-
-    //添加业务空间确定
-    addSpace() {
-      console.log(this.main)
-      let pushData = []
-      this.main.map(item => {
-        if (!!item.infos) {
-          for (let key in item.infos) {
-            if (!!item.infos[key]) {
-              pushData.push(item)
-            }
-          }
-        }
-      })
-      console.log(pushData)
-    },
-
-    //下一步
-    // step(val) {
-    //   if (!!val) {
-    //     this.isFull = true
-    //     this.isCenter = true
-    //     this.title = "添加资产"
-    //     this.getData()
-    //   } else {
-    //     this.isFull = false
-    //     this.isCenter = false
-    //   }
-    // },
-    //修改设备类型
-    changeCader(val) {
-      this.deviceType = val
-    },
-    //获取header的mess
-    getHeader(mess) {
-      this.mess = mess;
-    },
-
-    //获取主体内容
-    // getMain(floorMess) {
-    //   console.log(floorMess);
-    // },
-
-    //获取表头
-    getData() {
-      this.main = table(10)
-      getSpaceHeader({
-        code: "space",
-        ProjId: this.projectId
-      }).then(res => {
-        this.headers = res.data.Content;
-        if (!!this.hot) {
-          this.hot.destroy();
-          this.hot = null;
-        }
-        let data = tools.getItem(this.deviceType.code)
-        if (!!data) {
-          this.main = data
-        }
-        this.initHot();
-      });
-    },
-
-    //撤回
-    undo() {
-      this.hot.undo();
-    },
-
-    //刷新
-    reset() {
-      this.getData();
-    },
-
-    //添加设备
-    addDevice() {
-      console.log("addDevice")
-    },
-
-    /**
-     * 表头文案处理函数
-     * @param arr header数组数据
-     *
-     * @return 处理好的文案
-     */
-    delHeader(arr) {
-      let data = arr.map(item => {
-        if (
-          item.InputMode == "A1" ||
-          item.InputMode == "A2" ||
-          item.InputMode == "B1" ||
-          item.InputMode == "C5" ||
-          item.InputMode == "D1" ||
-          item.InputMode == "D2" ||
-          item.InputMode == "X" ||
-          item.InputMode == "L" ||
-          item.InputMode == "L1" ||
-          item.InputMode == "L2" ||
-          item.InputMode == "F1" ||
-          item.InputMode == "F2"
-        ) {
-          if (item.unit == "") {
-            return item.InfoPointName;
-          } else {
-            return item.InfoPointName + "(" + item.unit + ")";
-          }
-        } else {
-          return undefined;
-        }
-      });
-      data = data.filter(item => item);
-      //   data.unshift("同时创建资产", "所属建筑楼层", "所属系统实例");
-      return data;
-    },
-
-    /**
-     * 表头数据处理函数
-     * @param arr header数组数据
-     *
-     * @return 处理好的数据格式
-     */
-    getType(arr) {
-      let data = arr.map(item => {
-        //二维码
-        if (item.infoPointCode == "EquipQRCode") {
-          return {
-            data: "infos." + item.infoPointCode,
-            renderer: tools.lookDetails,
-            readOnly: true
-          }
-        }
-        //厂商选择
-        if (item.infoPointCode == "Brand" || item.infoPointCode == "Specification") {
-          return {
-            data: "infos." + item.infoPointCode,
-            renderer: tools.lookDetails,
-            readOnly: true
-          }
-        }
-        if (item.infoPointCode == "SupplierContractID") {
-          return {
-            data: "infos." + item.infoPointCode,
-            renderer: tools.lookDetails,
-            readOnly: true
-          }
-        }
-
-        if (item.infoPointCode == "InsuranceNum") {
-          //选择保单
-          return {
-            data: "infos." + item.infoPointCode,
-            renderer: tools.lookDetails,
-            readOnly: true
-          }
-        }
-
-        if (item.infoPointCode == "InsuranceFile" || item.infoPointCode == "Archive") {
-          return {
-            data: "infos." + item.infoPointCode,
-            renderer: tools.lookDetails,
-            readOnly: true
-          }
-        }
-
-        if (
-          item.infoPointCode == "InstallLocation" ||
-          item.infoPointCode == "InstallPic" ||
-          item.infoPointCode == "InstallDrawing" ||
-          item.infoPointCode == "Nameplate" ||
-          item.infoPointCode == "Pic" ||
-          item.infoPointCode == "Drawing"
-        ) {
-          return {
-            data: "infos." + item.infoPointCode,
-            renderer: tools.lookDetails,
-            readOnly: true
-          }
-        }
-
-        if (
-          item.infoPointCode == "Maintainer" ||
-          item.infoPointCode == "Supplier" ||
-          item.infoPointCode == "Insurer" ||
-          item.infoPointCode == "InsurerContactor"
-        ) {
-          return {
-            data: "infos." + item.infoPointCode,
-            renderer: tools.lookDetails,
-            readOnly: true
-          }
-        }
-        if (item.InputMode == "D1") {
-          return {
-            data: "infos." + item.infoPointCode,
-            renderer: tools.customDropdownRenderer,
-            editor: "chosen",
-            chosenOptions: {
-              // multiple: true,//多选
-              data: item.DataSource || ""
-            }
-          };
-        } else if (item.InputMode == "A1" || item.InputMode == "A2") {
-          return {
-            data: "infos." + item.infoPointCode,
-            type: "numeric",
-            numericFormat: {
-              pattern: "0,0.00"
-              // culture: 'de-DE' // use this for EUR (German),
-              // more cultures available on http://numbrojs.com/languages.html
-            }
-          };
-        } else if (item.InputMode == "C5") {
-          return {
-            data: "infos." + item.infoPointCode,
-            type: "date",
-            dateFormat: "YYYY-MM-DD",
-            correctFormat: true
-          };
-        } else if (
-          item.InputMode == "B1" ||
-          item.InputMode == "L" ||
-          item.InputMode == "L1" ||
-          item.InputMode == "L2"
-        ) {
-          return {
-            data: "infos." + item.infoPointCode
-          };
-        } else if (
-          item.InputMode == "X" ||
-          item.InputMode == "F2"
-          // item.InputMode == "L1" ||
-          // item.InputMode == "L2"
-        ) {
-          return {
-            data: "infos." + item.infoPointCode,
-            readOnly: true
-          };
-        } else if (item.InputMode == "D2") {
-          return {
-            data: "infos." + item.infoPointCode,
-            renderer: tools.customDropdownRenderer,
-            editor: "chosen",
-            chosenOptions: {
-              multiple: true, //多选
-              data: item.DataSource.Content || ""
-            }
-          };
-        } else {
-          return undefined;
-        }
-
-      });
-      //   data.unshift(
-      //     {
-      //       type: "checkbox",
-      //       checkedTemplate: 1,
-      //       uncheckedTemplate: 0,
-      //       data: "Checked",
-      //       label: {
-      //         position: "after",
-      //       }
-      //     },
-      //     {
-      //       data: "flowBuild",
-      //       renderer: tools.customDropdownRenderer,
-      //       editor: "chosen",
-      //       chosenOptions: {
-      //         // multiple: true,//多选
-      //         // data: item.DataSource.Content || ""
-      //       }
-      //     },
-      //     {
-      //       data: "system",
-      //       renderer: tools.customDropdownRenderer,
-      //       editor: "chosen",
-      //       chosenOptions: {
-      //         // multiple: true,//多选
-      //         // data: item.DataSource.Content || ""
-      //       }
-      //     }
-      //   );
-      data = data.filter(item => item);
-      return data;
-    },
-
-    //初始化插件
-    initHot() {
-      var container = document.getElementById("myHandson");
-      let winHeight = document.documentElement.clientHeight;
-      this.hot = new Handsontable(container, {
-        data: this.main,
-        colHeaders: this.delHeader(this.headers), //表头文案
-        columns: this.getType(this.headers), //数据显示格式
-        filters: true,
-        height: winHeight - 100 - 50 - 60,
-        columnSorting: true, //添加排序
-        sortIndicator: true, //添加排序
-        renderAllRows: true,
-        autoColumnSize: true,
-        language: "zh-CN",
-        manualColumnResize: true,
-        manualColumnMove: true,
-        dropdownMenu: [
-          "filter_by_condition",
-          "filter_by_value",
-          "filter_action_bar"
-        ],
-        contextMenu: this.onlyRead ? false :{
-          items: {
-            remove_row: {
-              name: "删除该业务空间"
-            }
-          }
-        },
-        filters: true,
-        afterFilter: this.trimmedRows,
-        // 事件
-        afterChange: this.tdChange, //修改后
-        afterFilter: this.trimmedRows, //排序前
-        beforeRemoveRow: this.romoveFm, //右键删除
-        afterOnCellMouseDown: this.eventClick //鼠标点击
-      });
-      let pro = document.getElementById("hot-display-license-info");
-      if (!!pro) {
-        pro.parentNode.removeChild(pro);
-      }
-      this.isLoading = false;
-    },
-
-    tdChange() {
-      tools.setItem(this.deviceType.code, this.main)
-    },
-
-    //表格中的点击
-    eventClick(el, rowArr) {
-      console.log(rowArr)
-      //点击的是表头
-      if (rowArr.row < 0) {
-        return;
-      }
-      let filter = this.filtersArr;
-      //被筛选过后的数组
-      let trimmedArr = this.trimmedRows();
-      //是否启用了排序
-      let isSort = this.hot.getPlugin("columnSorting").isSorted();
-      if (trimmedArr.length && isSort) {
-        let sortArr = this.myHotArr.getPlugin("columnSorting").rowsMapper
-          .__arrayMap;
-        let infos = this.main[trimmedArr[sortArr[rowArr.row]]];
-        this.getInfors(infos, sortArr[rowArr.row]);
-      } else if (isSort) {
-        //排序后的数组
-        let sortArr = this.hot.getPlugin("columnSorting").rowsMapper.__arrayMap;
-        let infos = this.main[sortArr[rowArr.row]];
-        this.getInfors(infos, sortArr[rowArr.row]);
-      } else if (trimmedArr.length) {
-        let infos = this.main[trimmedArr[rowArr.row]];
-        this.getInfors(infos, trimmedArr[rowArr.row]);
-      } else {
-        let infos = this.main[rowArr.row];
-        this.getInfors(infos, rowArr);
-      }
-    },
-
-    getInfors(infos, row) {
-      //其他的开始判断
-      let val = this.hot.colToProp(row.col);
-      if (val == "infos.EquipQRCode") {
-        this.myDialog.qrcode = true;
-        this.$refs.qrcode.getCanvas(1111);
-      }
-
-      if (val == "infos.Brand" || val == "infos.Specification") {
-        this.myDialog.firm = true;
-      }
-
-      if (val == "infos.SupplierContractID") {
-        let falg = null
-        if (!!this.main[row.row].infos) {
-          if (!!this.main[row.row].infos) {
-            falg = this.main[row.row].infos.DPSupplierID
-          }
-        }
-        if (!!falg) {
-          this.id = falg
-          this.myDialog.supply = true;
-        } else {
-          this.$message("请先选择供应商")
-        }
-      }
-
-      if (val == "infos.InsuranceNum") {
-        //选择保单
-        this.myDialog.guarantee = true;
-      }
-
-      if (val == "infos.InsuranceFile" || val == "infos.Archive") {
-        this.filesArr = this.main[row.row].infos ? (this.main[row.row].infos[val.split(".")[1]] ? [this.main[row.row].infos[val.split(".")[1]]] : []) : []
-        this.myDialog.uploadFiles = true
-      }
-
-      if (
-        val == "infos.InstallLocation" ||
-        val == "infos.InstallPic" ||
-        val == "infos.InstallDrawing" ||
-        val == "infos.Nameplate" ||
-        val == "infos.Drawing"
-      ) {
-        if (val == "infos.Nameplate") {
-          this.imgsArr = this.main[row.row].infos ? (this.main[row.row].infos[val.split(".")[1]] ? [this.main[row.row].infos[val.split(".")[1]].key] : []) : []
-        } else {
-          this.imgsArr = this.main[row.row].infos ? (this.main[row.row].infos[val.split(".")[1]] ? [this.main[row.row].infos[val.split(".")[1]]] : []) : []
-        }
-        this.myDialog.uploadImgs = true
-      }
-
-      if (val == "infos.Pic") {
-        // console.log(this.main[row.row].infos[val.split(".")[1]], "this.main[row.row].infos[val.split")
-        this.picsArr = this.main[row.row].infos ? (this.main[row.row].infos[val.split(".")[1]] ? this.main[row.row].infos[val.split(".")[1]] : []) : []
-        console.log(this.picsArr)
-        this.myDialog.pic = true
-      }
-
-      if (
-        val == "infos.Supplier"
-      ) {
-        this.myDialog.supplier = true;
-      }
-
-      if (val == "infos.Maintainer") {
-        this.myDialog.maintainer = true;
-      }
-
-      if (
-        val == "infos.Insurer" ||
-        val == "infos.InsurerContactor") {
-        this.myDialog.insurer = true;
-      }
-      this.row = row.row
-      this.messKey = val
-      console.log(val, row);
-    },
-
-    //获取被筛选掉的行号
-    trimmedRows() {
-      // var plugin = hot.getPlugin('trimRows').trimmedRows;//获取被筛选掉的行号
-      var plugin = this.hot.getPlugin("trimRows").trimmedRows;
-      let dataLength = this.main.length;
-      let dataArr = new Array();
-      for (let i = 0; i < dataLength; i++) {
-        dataArr.push(i);
-      }
-      if (plugin.length <= 0) {
-        dataArr = undefined;
-      } else {
-        dataArr = this.array_diff(dataArr, plugin);
-      }
-      return dataArr || [];
-      // var DataArray = new Array();
-
-      // for (var i = 0; i < plugin.length; i++) {
-      //     // 通过行号获取数据
-      //     DataArray.push(this.hot.getSourceDataAtRow(plugin[i]));
-      // }
-    },
-
-    //判断是否为空行
-    isEmptyRow(instance, row) {
-      var rowData = instance.countRows();
-      for (var i = 0, ilen = rowData.length; i < ilen; i++) {
-        if (rowData[i] !== null) {
-          return false;
-        }
-      }
-      return true;
-    },
-
-    //如果选择供应商之后
-    supplierChange(data) {
-      console.log(data, "供应商")
-      for (let key in data) {
-        this.utilToKey(key, "name", data, "Supplier")
-        this.utilToKey(key, "email", data, "SupplierEmail")
-        this.utilToKey(key, "website", data, "SupplierWeb")
-        this.utilToKey(key, "phone", data, "SupplierPhone")
-        this.utilToKey(key, "fox", data, "SupplierFax")
-        this.utilToKey(key, "man", data, "SupplierContactor")
-        this.utilToKey(key, "venderId", data, "DPSupplierID")
-      }
-      tools.setItem(this.deviceType.code, this.main)
-    },
-
-    //保险商变更
-    changeInsurer(data) {
-      console.log(data, "保险商")
-      for (let key in data) {
-        this.utilToKey(key, "name", data, "Insurer")
-        this.utilToKey(key, "email", data, "InsurerEmail")
-        this.utilToKey(key, "website", data, "InsurerWeb")
-        this.utilToKey(key, "phone", data, "InsurerFax")
-        this.utilToKey(key, "man", data, "InsurerContactor")
-        this.utilToKey(key, "venderId", data, "DPInsurerID")
-      }
-      tools.setItem(this.deviceType.code, this.main)
-    },
-
-    //维修商变更
-    changeMaintainer(data) {
-      for (let key in data) {
-        this.utilToKey(key, "name", data, "Maintainer")
-        this.utilToKey(key, "email", data, "MaintainerEmail")
-        this.utilToKey(key, "website", data, "MaintainerWeb")
-        this.utilToKey(key, "phone", data, "MaintainerPhone")
-        this.utilToKey(key, "fox", data, "MaintainerFax")
-        this.utilToKey(key, "man", data, "MaintainerContactor")
-        this.utilToKey(key, "venderId", data, "DPMaintainerID")
-      }
-      tools.setItem(this.deviceType.code, this.main)
-    },
-
-    utilToKey(key, name, data, messName) {
-      if (key == name) {
-        this.setDataToMain(data[key], messName, this.row)
-      }
-    },
-
-    //上传文件弹窗触发事件
-    fileChange(keys) {
-      this.setDataToMain(keys[0], this.messKey.split(".")[1], this.row)
-      tools.setItem(this.deviceType.code, this.main)
-    },
-
-    //上传图片弹窗触发事件
-    imgChange(keys) {
-      this.setDataToMain(keys[0], this.messKey.split(".")[1], this.row)
-      tools.setItem(this.deviceType.code, this.main)
-    },
-
-    //设备图片弹窗改变事件
-    changePics(keys) {
-      this.setDataToMain(keys, this.messKey.split(".")[1], this.row)
-      tools.setItem(this.deviceType.code, this.main)
-      console.log("assets", keys)
-    },
-
-    //判断是否有值,有值赋值
-    setDataToMain(data, key, row) {
-      if (!!data && data != '--') {
-        if (!!this.main[row].infos) {
-          //铭牌照片特殊处理
-          if (key == 'Nameplate') {
-            this.main[row].infos[key] = {
-              "systemId": "dataPlatform",
-              "name": "铭牌照片",
-              "type": "image",
-              "key": data
-            }
-          } else {
-            this.main[row].infos[key] = data
-          }
-        } else {
-          this.main[row].infos = {}
-          if (key == 'Nameplate') {
-            this.main[row].infos[key] = {
-              "systemId": "dataPlatform",
-              "name": "铭牌照片",
-              "type": "image",
-              "key": data
-            }
-          } else {
-            this.main[row].infos[key] = data
-          }
-        }
-      } else {
-        this.main[row].infos[key] = ''
-      }
-    }
-  },
-  watch: {
-    dialog: {
-      deep: true,
-      handler(newName, oldName) {
-        // this.getData()
-        console.log(this.dialog)
-        if (this.dialog.addDevice) {
-          this.getData()
-        }
-      },
-    }
-  }
-};
-</script>
-<style lang="less" scoped>
-#addDevice {
-  overflow: hidden;
-}
-</style>

+ 17 - 17
src/components/business_space/dialogs/changeRea.vue

@@ -40,7 +40,7 @@
               <template slot-scope="scope">{{getFramily(scope.row.family)}}</template>
             </el-table-column>
             <el-table-column label="安装位置">
-              <template slot-scope="scope">{{scope.row.infos.InstallLocation || "--"}}</template>
+              <template slot-scope="scope">{{scope.row.infos.installLocation || "--"}}</template>
             </el-table-column>
           </el-table>
         </el-radio-group>
@@ -174,24 +174,24 @@ export default {
     getCode() {
       getEquipmentFamily(res => {
         this.codeListCode = res.Content
-        this.getFloorList()
-      })
-    },
-    getFloorList() {
-      let param = {
-        secret: this.secret,
-        ProjId: this.projectId
-      }
-      getSpaceFloor(param).then(res => {
-        if (res.data.Result == "success") {
-          this.floorList = res.data.Content
-        } else {
-          this.$message.error("请求错误:" + res.data.ResultMsg)
-        }
-      }).catch(_ => {
-        this.$message.error("请求错误")
+        // this.getFloorList()
       })
     },
+    // getFloorList() { // 物理世界 已无接口
+    //   let param = {
+    //     secret: this.secret,
+    //     ProjId: this.projectId
+    //   }
+    //   getSpaceFloor(param).then(res => {
+    //     if (res.data.Result == "success") {
+    //       this.floorList = res.data.Content
+    //     } else {
+    //       this.$message.error("请求错误:" + res.data.ResultMsg)
+    //     }
+    //   }).catch(_ => {
+    //     this.$message.error("请求错误")
+    //   })
+    // },
     changeFloor(val) {
       this.mess = {
         buildId: val[0] || "",

+ 1 - 1
src/components/business_space/dialogs/influenceDialog.vue

@@ -8,7 +8,7 @@
                     <span slot="label">{{item.name}}</span>
                     <p style="line-height:30px;font-size:20px;margin-bottom: 20px;">受影响的业务空间</p>
                     <div v-for="(i,iIndex) in mess" :key="iIndex">
-                        <p style="line-height:20px;margin-left:10px;">{{i.RoomLocalName || '--'}} - {{i.RoomLocalID || '--'}}</p>
+                        <p style="line-height:20px;margin-left:10px;">{{i.localName || '--'}} - {{i.id || '--'}}</p>
                     </div>
                 </el-tab-pane>
             </el-tabs>

+ 6 - 26
src/components/business_space/dialogs/list/insurerDialog.vue

@@ -26,10 +26,10 @@
               </template>
             </el-table-column>
             <el-table-column header-align='center' prop="website" label="网址"></el-table-column>
-            <el-table-column header-align='center' prop="man" label="联系人"></el-table-column>
-            <el-table-column header-align='center' prop="phone" label="联系电话"></el-table-column>
-            <el-table-column header-align='center' prop="faxes" label="传真"></el-table-column>
-            <el-table-column header-align='center' prop="email" label="电子邮件"></el-table-column>
+            <el-table-column header-align='center' prop="contacts[0].name" label="联系人"></el-table-column>
+            <el-table-column header-align='center' prop="contacts[0].phone" label="联系电话"></el-table-column>
+            <el-table-column header-align='center' prop="contacts[0].fax" label="传真"></el-table-column>
+            <el-table-column header-align='center' prop="contacts[0].email" label="电子邮件"></el-table-column>
           </el-table>
         </el-radio-group>
         <div class="right" style="background: #fff;">
@@ -111,29 +111,9 @@ export default {
       }
       getLib({ "type": ["insurance"] }).then(res => {
         if (res.data.result == "success") {
-          let data = res.data.content.insurance.map(item => {
-            if (item.contacts && item.contacts.length) {
-              item.contacts.map(child => {
-                if (child.projectId == this.projectId) {
-                  item.phone = child.phone
-                  item.man = child.name
-                  item.fox = child.fox
-                  item.email = child.email
-                }
-                return child
-              })
-            }
-            if (!item.man) {
-              item.man = "--"
-              item.phone = "--"
-              item.fox = "--"
-              item.email = "--"
-            }
-            return item
-          })
-          this.allData = tools.deepCopy(data)
+          this.allData = tools.deepCopy(res.data.content.insurance)
           this.tableData = this.pagination(this.page.currentPage, this.page.size, this.allData)
-          this.page.total = data.length
+          this.page.total = this.allData.length
         } else {
           this.$message.error("请求失败:" + res.data.resultMsg)
         }

+ 6 - 26
src/components/business_space/dialogs/list/maintainerDialog.vue

@@ -26,10 +26,10 @@
               </template>
             </el-table-column>
             <el-table-column header-align='center' prop="website" label="网址"></el-table-column>
-            <el-table-column header-align='center' prop="man" label="联系人"></el-table-column>
-            <el-table-column header-align='center' prop="phone" label="联系电话"></el-table-column>
-            <el-table-column header-align='center' prop="faxes" label="传真"></el-table-column>
-            <el-table-column header-align='center' prop="email" label="电子邮件"></el-table-column>
+            <el-table-column header-align='center' prop="contacts[0].name" label="联系人"></el-table-column>
+            <el-table-column header-align='center' prop="contacts[0].phone" label="联系电话"></el-table-column>
+            <el-table-column header-align='center' prop="contacts[0].fax" label="传真"></el-table-column>
+            <el-table-column header-align='center' prop="contacts[0].email" label="电子邮件"></el-table-column>
           </el-table>
         </el-radio-group>
         <div class="right" style="background: #fff;">
@@ -109,29 +109,9 @@ export default {
       }
       getLib({ "type": ["maintenance"] }).then(res => {
         if (res.data.result == "success") {
-          let data = res.data.content.maintenance.map(item => {
-            if (item.contacts && item.contacts.length) {
-              item.contacts.map(child => {
-                if (child.projectId == this.projectId) {
-                  item.phone = child.phone
-                  item.man = child.name
-                  item.fox = child.fox
-                  item.email = child.email
-                }
-                return child
-              })
-            }
-            if (!item.man) {
-              item.man = "--"
-              item.phone = "--"
-              item.fox = "--"
-              item.email = "--"
-            }
-            return item
-          })
-          this.allData = tools.deepCopy(data)
+          this.allData = tools.deepCopy(res.data.content.maintenance)
           this.tableData = this.pagination(this.page.currentPage, this.page.size, this.allData)
-          this.page.total = data.length
+          this.page.total = this.allData.length
         } else {
           this.$message.error("请求失败:" + res.data.resultMsg)
         }

+ 6 - 26
src/components/business_space/dialogs/list/supplierDialog.vue

@@ -26,10 +26,10 @@
               </template>
             </el-table-column>
             <el-table-column header-align='center' prop="website" label="网址"></el-table-column>
-            <el-table-column header-align='center' prop="man" label="联系人"></el-table-column>
-            <el-table-column header-align='center' prop="phone" label="联系电话"></el-table-column>
-            <el-table-column header-align='center' prop="faxes" label="传真"></el-table-column>
-            <el-table-column header-align='center' prop="email" label="电子邮件"></el-table-column>
+            <el-table-column header-align='center' prop="contacts[0].name" label="联系人"></el-table-column>
+            <el-table-column header-align='center' prop="contacts[0].phone" label="联系电话"></el-table-column>
+            <el-table-column header-align='center' prop="contacts[0].fax" label="传真"></el-table-column>
+            <el-table-column header-align='center' prop="contacts[0].email" label="电子邮件"></el-table-column>
           </el-table>
         </el-radio-group>
         <div class="right" style="background: #fff;">
@@ -109,29 +109,9 @@ export default {
       }
       getLib({ "type": ["supplier"] }).then(res => {
         if (res.data.result == "success") {
-          let data = res.data.content.supplier.map(item => {
-            if (item.contacts && item.contacts.length) {
-              item.contacts.map(child => {
-                if (child.projectId == this.projectId) {
-                  item.phone = child.phone
-                  item.man = child.name
-                  item.fox = child.fox
-                  item.email = child.email
-                }
-                return child
-              })
-            }
-            if (!item.man) {
-              item.man = "--"
-              item.phone = "--"
-              item.fox = "--"
-              item.email = "--"
-            }
-            return item
-          })
-          this.allData = tools.deepCopy(data)
+          this.allData = tools.deepCopy(res.data.content.supplier)
           this.tableData = this.pagination(this.page.currentPage, this.page.size, this.allData)
-          this.page.total = data.length
+          this.page.total = this.allData.length
         } else {
           this.$message.error("请求失败:" + res.data.resultMsg)
         }

+ 23 - 23
src/components/business_space/dialogs/noModelDialog.vue

@@ -64,7 +64,7 @@ export default {
         };
     },
     created() {
-        this.getNodes()
+        // this.getNodes()
     },
     methods: {
         //确定
@@ -126,28 +126,28 @@ export default {
             }
         },
         //点击节点懒加载
-        getNodes() {
-            let param = {
-                ProjId: this.projectId,
-                UserId: this.UserId,
-                secret: this.secret
-            };
-            getSpaceFloor(param).then(res => {
-                if (res.data.Result == 'success') {
-                    let data = this.changeArr(res.data.Content).map(item => {
-                        if (item.children && item.children.length) {
-                            item.children = tools.sortArr(item.children, "shunxu", false)
-                        }
-                        return item
-                    })
-                    this.data = data
-                } else {
-                    this.$message.error(res.data.ResultMsg)
-                }
-            }).catch(() => {
-                this.$message.error("请求出错")
-            })
-        },
+        // getNodes() { // 物理世界 已无接口
+        //     let param = {
+        //         ProjId: this.projectId,
+        //         UserId: this.UserId,
+        //         secret: this.secret
+        //     };
+        //     getSpaceFloor(param).then(res => {
+        //         if (res.data.Result == 'success') {
+        //             let data = this.changeArr(res.data.Content).map(item => {
+        //                 if (item.children && item.children.length) {
+        //                     item.children = tools.sortArr(item.children, "shunxu", false)
+        //                 }
+        //                 return item
+        //             })
+        //             this.data = data
+        //         } else {
+        //             this.$message.error(res.data.ResultMsg)
+        //         }
+        //     }).catch(() => {
+        //         this.$message.error("请求出错")
+        //     })
+        // },
 
         //子节点被点击
         floorClick(data) {

File diff suppressed because it is too large
+ 0 - 1365
src/components/business_space/graphy/business.vue


+ 3 - 3
src/components/business_space/lib/detailsDia.vue

@@ -42,9 +42,9 @@ export default {
         let iframe = document.getElementById(this.id)
         iframe.onload = () => {
           let arr = this.setData.map(i => ({
-            key: i.Key,
-            name: i.Name,
-            type: i.Type
+            key: i.key,
+            name: i.name,
+            type: i.type
           }))
           iframe.contentWindow.postMessage(arr, "*")
         }

+ 33 - 33
src/components/business_space/lib/floorCascader.vue

@@ -43,43 +43,43 @@ export default {
     };
   },
   created() {
-    this.getData()
+    // this.getData()
   },
   mounted() { },
   methods: {
     //获取数据
-    getData() {
-      getSpaceFloor(this.param).then(res => {
-        if (res.data.Result == 'success') {
-          let data = this.changeArr(res.data.Content)
-          data.unshift({
-            value: "all",
-            label: "全部"
-          }, {
-              value: "noKnow",
-              label: "未明确建筑的设备"
-            })
-          data.map(item => {
-            if (!!item.children) {
-              item.children.unshift({
-                value: 'noKnow',
-                label: "未明确楼层的设备"
-              })
-              item.children.unshift({
-                value: "all",
-                label: "全部"
-              })
-            }
-            return item
-          })
-          this.options = data
-        } else {
-          this.$message.error(res.data.ResultMsg)
-        }
-      }).catch(() => {
-        this.$message.error("请求出错")
-      })
-    },
+    // getData() { // 物理世界 已无接口
+    //   getSpaceFloor(this.param).then(res => {
+    //     if (res.data.Result == 'success') {
+    //       let data = this.changeArr(res.data.Content)
+    //       data.unshift({
+    //         value: "all",
+    //         label: "全部"
+    //       }, {
+    //           value: "noKnow",
+    //           label: "未明确建筑的设备"
+    //         })
+    //       data.map(item => {
+    //         if (!!item.children) {
+    //           item.children.unshift({
+    //             value: 'noKnow',
+    //             label: "未明确楼层的设备"
+    //           })
+    //           item.children.unshift({
+    //             value: "all",
+    //             label: "全部"
+    //           })
+    //         }
+    //         return item
+    //       })
+    //       this.options = data
+    //     } else {
+    //       this.$message.error(res.data.ResultMsg)
+    //     }
+    //   }).catch(() => {
+    //     this.$message.error("请求出错")
+    //   })
+    // },
     //将数组转换成optiosn格式
     changeArr(arr) {
       return arr.map(item => {

+ 2 - 1
src/components/business_space/lib/lookImages.vue

@@ -155,6 +155,7 @@ export default {
       if (this.picArrs.length) {
         this.$nextTick(_ => {
           this.iframeSrc = process.env.BASE_URL + ":8890/photo-View.html"
+          // this.iframeSrc = process.env.BASE_URL + "/photo-View.html"
           let iframe = document.getElementById("google_ads_frame3")
           console.log(iframe)
           iframe.onload = () => {
@@ -178,4 +179,4 @@ export default {
 };
 </script>
 <style>
-</style>
+</style>

+ 0 - 0
src/components/business_space/lib/uploadFiles.vue


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