* 'master' of http://112.33.111.155:3000/yuhy/auseft.platform.datav: #release 添加发布文件 #feat fbx加载master
@@ -1,7 +1,6 @@ | |||||
# See http://help.github.com/ignore-files/ for more about ignoring files. | # See http://help.github.com/ignore-files/ for more about ignoring files. | ||||
# Compiled output | # Compiled output | ||||
/dist | |||||
/tmp | /tmp | ||||
/out-tsc | /out-tsc | ||||
/bazel-out | /bazel-out | ||||
@@ -0,0 +1 @@ | |||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1711079266842" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5873" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M957.59 467.39C936.56 255.62 768.15 87.22 556.38 66.2v-2.22h-89.64v2.22C254.98 87.23 86.59 255.63 65.56 467.39h-2.22v89.65h2.22C86.42 767.16 252.39 934.6 461.85 957.71l-0.08 2.73h94.61v-2.22c211.77-21.02 380.18-189.43 401.21-401.19h2.22v-89.65h-2.22z m-90.47 89.65c-21.27 158.05-152.69 289.49-310.74 310.75v-86.64h-89.64l-2.39 86.3c-156.99-22.26-287.18-153.17-308.34-310.41h86.63v-89.65h-86.63c21.27-158.04 152.68-289.48 310.73-310.75v86.63h89.64v-86.64c158.05 21.26 289.47 152.7 310.74 310.75h-86.61v89.65h86.61z m-355.54-194.7c-82.77 0-149.88 67.1-149.88 149.88 0 82.77 67.1 149.88 149.88 149.88S661.46 595 661.46 512.22s-67.1-149.88-149.88-149.88z" fill="#E9EBED" p-id="5874"></path></svg> |
@@ -0,0 +1 @@ | |||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1710990867839" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2295" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M972.8 395.008L512 51.2 51.2 400.384l35.2256 47.7696 67.4304-49.5616v469.1456c0 32.9728 26.7264 59.6992 59.6992 59.6992h596.8896c32.9728 0 59.6992-26.7264 59.6992-59.6992V390.2464l68.608 51.3024 34.048-46.5408z m-162.3552 472.7296H213.5552V353.28L512 125.7984l298.4448 220.8768v521.0624z" p-id="2296" fill="#ffffff"></path></svg> |
@@ -0,0 +1,2 @@ | |||||
<svg t="1705829631593" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4529" width="128" height="128"> | |||||
<path d="M1019.56911 88.7c-3.9-4.8-9.7-7.6-15.9-7.6H310.16911c-36 0-68 3.6-95.2 10.8-27.5 7.2-52.7 18-74.9 32-21.8 13.7-42.7 30.6-62.3 50.1-19 19-43.6 46.8-73.1 82.5-7.1 8.7-6 21.4 2.6 28.6L60.56911 330c4.2 3.5 9.6 5.3 15.1 4.7 5.5-0.5 10.5-3.2 13.9-7.5 30.6-38 58.7-63.4 83.4-75.5 24.6-12.1 55.7-18.2 92.4-18.2h1.3l-49.9 214C167.16911 660.6 113.36911 797 56.76911 853.2c-2.9 2.8-4.8 6.5-5.6 10.4L42.66911 905c-1.2 6 0.3 12.3 4.2 17 3.9 4.8 9.7 7.5 15.8 7.5h179.1c8.8 0 16.6-5.6 19.4-14 6.3-19.1 15-50.1 26.6-94.7 11.2-43.6 21.3-84.9 29.8-122.8l100.4-464.5h209.7c-11.5 32.9-24.4 75.2-39.3 128.6-17.8 63.7-31.6 119-41.3 164.2l-18.6 85.3c-16.2 73.7-24.1 128.7-24.1 168.3 0 47.5 12.7 86.8 37.7 116.6 25.9 30.9 61.6 46.6 106 46.6 43.5 0 84.9-11.5 123.2-34.1 36.8-21.8 77.7-57.2 121.6-105.1 7.6-8.3 7.1-21.1-1.1-28.8l-49-45.6c-4.1-3.8-9.3-5.8-15.2-5.4-5.6 0.3-10.8 2.9-14.4 7.2-51.5 61-84.7 73.8-103.5 73.8-13.2 0-16.7-4.9-18.1-6.7-2.7-3.7-7.1-13.3-7.1-37 0-26.5 6.1-67.1 18.1-120.5l91.8-407.2H979.06911c9.6 0 17.9-6.7 20-16l24.5-111.5c1.4-6.3-0.1-12.7-4-17.5z" fill="#13C2C2" p-id="4530"></path></svg> |
@@ -0,0 +1,2 @@ | |||||
<svg t="1705829631593" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4529" width="128" height="128"> | |||||
<path d="M1019.56911 88.7c-3.9-4.8-9.7-7.6-15.9-7.6H310.16911c-36 0-68 3.6-95.2 10.8-27.5 7.2-52.7 18-74.9 32-21.8 13.7-42.7 30.6-62.3 50.1-19 19-43.6 46.8-73.1 82.5-7.1 8.7-6 21.4 2.6 28.6L60.56911 330c4.2 3.5 9.6 5.3 15.1 4.7 5.5-0.5 10.5-3.2 13.9-7.5 30.6-38 58.7-63.4 83.4-75.5 24.6-12.1 55.7-18.2 92.4-18.2h1.3l-49.9 214C167.16911 660.6 113.36911 797 56.76911 853.2c-2.9 2.8-4.8 6.5-5.6 10.4L42.66911 905c-1.2 6 0.3 12.3 4.2 17 3.9 4.8 9.7 7.5 15.8 7.5h179.1c8.8 0 16.6-5.6 19.4-14 6.3-19.1 15-50.1 26.6-94.7 11.2-43.6 21.3-84.9 29.8-122.8l100.4-464.5h209.7c-11.5 32.9-24.4 75.2-39.3 128.6-17.8 63.7-31.6 119-41.3 164.2l-18.6 85.3c-16.2 73.7-24.1 128.7-24.1 168.3 0 47.5 12.7 86.8 37.7 116.6 25.9 30.9 61.6 46.6 106 46.6 43.5 0 84.9-11.5 123.2-34.1 36.8-21.8 77.7-57.2 121.6-105.1 7.6-8.3 7.1-21.1-1.1-28.8l-49-45.6c-4.1-3.8-9.3-5.8-15.2-5.4-5.6 0.3-10.8 2.9-14.4 7.2-51.5 61-84.7 73.8-103.5 73.8-13.2 0-16.7-4.9-18.1-6.7-2.7-3.7-7.1-13.3-7.1-37 0-26.5 6.1-67.1 18.1-120.5l91.8-407.2H979.06911c9.6 0 17.9-6.7 20-16l24.5-111.5c1.4-6.3-0.1-12.7-4-17.5z" fill="#FFFFFF" p-id="4530"></path></svg> |
@@ -0,0 +1,2 @@ | |||||
<svg t="1705829631593" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4529" width="128" height="128"> | |||||
<path d="M1019.56911 88.7c-3.9-4.8-9.7-7.6-15.9-7.6H310.16911c-36 0-68 3.6-95.2 10.8-27.5 7.2-52.7 18-74.9 32-21.8 13.7-42.7 30.6-62.3 50.1-19 19-43.6 46.8-73.1 82.5-7.1 8.7-6 21.4 2.6 28.6L60.56911 330c4.2 3.5 9.6 5.3 15.1 4.7 5.5-0.5 10.5-3.2 13.9-7.5 30.6-38 58.7-63.4 83.4-75.5 24.6-12.1 55.7-18.2 92.4-18.2h1.3l-49.9 214C167.16911 660.6 113.36911 797 56.76911 853.2c-2.9 2.8-4.8 6.5-5.6 10.4L42.66911 905c-1.2 6 0.3 12.3 4.2 17 3.9 4.8 9.7 7.5 15.8 7.5h179.1c8.8 0 16.6-5.6 19.4-14 6.3-19.1 15-50.1 26.6-94.7 11.2-43.6 21.3-84.9 29.8-122.8l100.4-464.5h209.7c-11.5 32.9-24.4 75.2-39.3 128.6-17.8 63.7-31.6 119-41.3 164.2l-18.6 85.3c-16.2 73.7-24.1 128.7-24.1 168.3 0 47.5 12.7 86.8 37.7 116.6 25.9 30.9 61.6 46.6 106 46.6 43.5 0 84.9-11.5 123.2-34.1 36.8-21.8 77.7-57.2 121.6-105.1 7.6-8.3 7.1-21.1-1.1-28.8l-49-45.6c-4.1-3.8-9.3-5.8-15.2-5.4-5.6 0.3-10.8 2.9-14.4 7.2-51.5 61-84.7 73.8-103.5 73.8-13.2 0-16.7-4.9-18.1-6.7-2.7-3.7-7.1-13.3-7.1-37 0-26.5 6.1-67.1 18.1-120.5l91.8-407.2H979.06911c9.6 0 17.9-6.7 20-16l24.5-111.5c1.4-6.3-0.1-12.7-4-17.5z" fill="#FFFFFF" p-id="4530"></path></svg> |
@@ -0,0 +1,3 @@ | |||||
<svg t="1709214730020" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1801" width="48" height="48"><path d="M634.342 589.022c105.11 41.118 185.376 133.808 207.609 249.08 2.965 15.374-7.095 30.241-22.469 33.206-15.374 2.965-30.24-7.094-33.205-22.468-25.155-130.425-139.813-226.122-274.22-226.122-134.407 0-249.067 95.7-274.22 226.125-2.965 15.374-17.831 25.434-33.205 22.47-15.374-2.966-25.434-17.832-22.469-33.206 22.23-115.275 102.498-207.967 207.61-249.085-76.52-42.89-128.237-124.79-128.237-218.77 0-138.402 112.16-250.602 250.522-250.602 138.36 0 250.52 112.2 250.52 250.602 0 93.98-51.716 175.88-128.236 218.77z m71.537-218.77c0-107.092-86.78-193.902-193.821-193.902-107.043 0-193.822 86.81-193.822 193.902 0 107.09 86.779 193.9 193.822 193.9 107.042 0 193.82-86.81 193.82-193.9z" fill="#ffffff" p-id="1802"></path></svg> |
@@ -0,0 +1,353 @@ | |||||
{ | |||||
"app": { | |||||
"name": "Alain", | |||||
"description": "Ng-zorro admin panel front-end framework" | |||||
}, | |||||
"user": { | |||||
"name": "Admin", | |||||
"avatar": "./assets/tmp/img/avatar.jpg", | |||||
"email": "cipchk@qq.com" | |||||
}, | |||||
"menu": [ | |||||
{ | |||||
"text": "主导航", | |||||
"i18n": "menu.main", | |||||
"group": true, | |||||
"hideInBreadcrumb": true, | |||||
"children": [ | |||||
{ | |||||
"text": "仪表盘", | |||||
"i18n": "menu.dashboard", | |||||
"icon": "anticon-dashboard", | |||||
"children": [ | |||||
{ | |||||
"text": "仪表盘V1", | |||||
"link": "/dashboard/v1", | |||||
"i18n": "menu.dashboard.v1" | |||||
}, | |||||
{ | |||||
"text": "分析页", | |||||
"link": "/dashboard/analysis", | |||||
"i18n": "menu.dashboard.analysis" | |||||
}, | |||||
{ | |||||
"text": "监控页", | |||||
"link": "/dashboard/monitor", | |||||
"i18n": "menu.dashboard.monitor" | |||||
}, | |||||
{ | |||||
"text": "工作台", | |||||
"link": "/dashboard/workplace", | |||||
"i18n": "menu.dashboard.workplace" | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"text": "快捷菜单", | |||||
"i18n": "menu.shortcut", | |||||
"icon": "anticon-rocket", | |||||
"shortcutRoot": true, | |||||
"children": [] | |||||
}, | |||||
{ | |||||
"text": "小部件", | |||||
"i18n": "menu.widgets", | |||||
"link": "/widgets", | |||||
"icon": "anticon-appstore", | |||||
"badge": 2 | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"text": "Alain", | |||||
"i18n": "menu.alain", | |||||
"group": true, | |||||
"hideInBreadcrumb": true, | |||||
"children": [ | |||||
{ | |||||
"text": "样式", | |||||
"i18n": "menu.style", | |||||
"icon": "anticon-info", | |||||
"children": [ | |||||
{ | |||||
"text": "Typography", | |||||
"link": "/style/typography", | |||||
"i18n": "menu.style.typography", | |||||
"shortcut": true | |||||
}, | |||||
{ | |||||
"text": "Grid Masonry", | |||||
"link": "/style/gridmasonry", | |||||
"i18n": "menu.style.gridmasonry" | |||||
}, | |||||
{ | |||||
"text": "Colors", | |||||
"link": "/style/colors", | |||||
"i18n": "menu.style.colors" | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"text": "Delon", | |||||
"i18n": "menu.delon", | |||||
"icon": "anticon-bulb", | |||||
"children": [ | |||||
{ | |||||
"text": "Dynamic Form", | |||||
"link": "/delon/form", | |||||
"i18n": "menu.delon.form" | |||||
}, | |||||
{ | |||||
"text": "Simple Table", | |||||
"link": "/delon/st", | |||||
"i18n": "menu.delon.table" | |||||
}, | |||||
{ | |||||
"text": "Util", | |||||
"link": "/delon/util", | |||||
"i18n": "menu.delon.util", | |||||
"acl": "role-a" | |||||
}, | |||||
{ | |||||
"text": "Print", | |||||
"link": "/delon/print", | |||||
"i18n": "menu.delon.print", | |||||
"acl": "role-b" | |||||
}, | |||||
{ | |||||
"text": "QR", | |||||
"link": "/delon/qr", | |||||
"i18n": "menu.delon.qr" | |||||
}, | |||||
{ | |||||
"text": "ACL", | |||||
"link": "/delon/acl", | |||||
"i18n": "menu.delon.acl" | |||||
}, | |||||
{ | |||||
"text": "Route Guard", | |||||
"link": "/delon/guard", | |||||
"i18n": "menu.delon.guard" | |||||
}, | |||||
{ | |||||
"text": "Cache", | |||||
"link": "/delon/cache", | |||||
"i18n": "menu.delon.cache" | |||||
}, | |||||
{ | |||||
"text": "Down File", | |||||
"link": "/delon/downfile", | |||||
"i18n": "menu.delon.downfile" | |||||
}, | |||||
{ | |||||
"text": "Xlsx", | |||||
"link": "/delon/xlsx", | |||||
"i18n": "menu.delon.xlsx" | |||||
}, | |||||
{ | |||||
"text": "Zip", | |||||
"link": "/delon/zip", | |||||
"i18n": "menu.delon.zip" | |||||
} | |||||
] | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"text": "Pro", | |||||
"i18n": "menu.pro", | |||||
"group": true, | |||||
"hideInBreadcrumb": true, | |||||
"children": [ | |||||
{ | |||||
"text": "Form Page", | |||||
"i18n": "menu.form", | |||||
"link": "/pro/form", | |||||
"icon": "anticon-edit", | |||||
"children": [ | |||||
{ | |||||
"text": "Basic Form", | |||||
"link": "/pro/form/basic-form", | |||||
"i18n": "menu.form.basicform", | |||||
"shortcut": true | |||||
}, | |||||
{ | |||||
"text": "Step Form", | |||||
"link": "/pro/form/step-form", | |||||
"i18n": "menu.form.stepform" | |||||
}, | |||||
{ | |||||
"text": "Advanced Form", | |||||
"link": "/pro/form/advanced-form", | |||||
"i18n": "menu.form.advancedform" | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"text": "List", | |||||
"i18n": "menu.list", | |||||
"icon": "anticon-appstore", | |||||
"children": [ | |||||
{ | |||||
"text": "Table List", | |||||
"link": "/pro/list/table-list", | |||||
"i18n": "menu.list.searchtable", | |||||
"shortcut": true | |||||
}, | |||||
{ | |||||
"text": "Basic List", | |||||
"link": "/pro/list/basic-list", | |||||
"i18n": "menu.list.basiclist" | |||||
}, | |||||
{ | |||||
"text": "Card List", | |||||
"link": "/pro/list/card-list", | |||||
"i18n": "menu.list.cardlist" | |||||
}, | |||||
{ | |||||
"text": "Search List", | |||||
"i18n": "menu.list.searchlist", | |||||
"children": [ | |||||
{ | |||||
"link": "/pro/list/articles", | |||||
"i18n": "menu.list.searchlist.articles" | |||||
}, | |||||
{ | |||||
"link": "/pro/list/projects", | |||||
"i18n": "menu.list.searchlist.projects", | |||||
"shortcut": true | |||||
}, | |||||
{ | |||||
"link": "/pro/list/applications", | |||||
"i18n": "menu.list.searchlist.applications" | |||||
} | |||||
] | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"text": "Profile", | |||||
"i18n": "menu.profile", | |||||
"icon": "anticon-profile", | |||||
"children": [ | |||||
{ | |||||
"text": "Basic", | |||||
"link": "/pro/profile/basic", | |||||
"i18n": "menu.profile.basic" | |||||
}, | |||||
{ | |||||
"text": "Advanced", | |||||
"link": "/pro/profile/advanced", | |||||
"i18n": "menu.profile.advanced", | |||||
"shortcut": true | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"text": "Result", | |||||
"i18n": "menu.result", | |||||
"icon": "anticon-check-circle", | |||||
"children": [ | |||||
{ | |||||
"text": "Success", | |||||
"link": "/pro/result/success", | |||||
"i18n": "menu.result.success" | |||||
}, | |||||
{ | |||||
"text": "Fail", | |||||
"link": "/pro/result/fail", | |||||
"i18n": "menu.result.fail" | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"text": "Exception", | |||||
"i18n": "menu.exception", | |||||
"link": "/", | |||||
"icon": "anticon-exception", | |||||
"children": [ | |||||
{ | |||||
"text": "403", | |||||
"link": "/exception/403", | |||||
"i18n": "menu.exception.not-permission", | |||||
"reuse": false | |||||
}, | |||||
{ | |||||
"text": "404", | |||||
"link": "/exception/404", | |||||
"i18n": "menu.exception.not-find", | |||||
"reuse": false | |||||
}, | |||||
{ | |||||
"text": "500", | |||||
"link": "/exception/500", | |||||
"i18n": "menu.exception.server-error", | |||||
"reuse": false | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"text": "Account", | |||||
"i18n": "menu.account", | |||||
"icon": "anticon-user", | |||||
"children": [ | |||||
{ | |||||
"text": "center", | |||||
"link": "/pro/account/center", | |||||
"i18n": "menu.account.center" | |||||
}, | |||||
{ | |||||
"text": "settings", | |||||
"link": "/pro/account/settings", | |||||
"i18n": "menu.account.settings" | |||||
} | |||||
] | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"text": "More", | |||||
"i18n": "menu.more", | |||||
"group": true, | |||||
"hideInBreadcrumb": true, | |||||
"children": [ | |||||
{ | |||||
"text": "Report", | |||||
"i18n": "menu.report", | |||||
"icon": "anticon-cloud", | |||||
"children": [ | |||||
{ | |||||
"text": "Relation", | |||||
"link": "/data-v/relation", | |||||
"i18n": "menu.report.relation", | |||||
"reuse": false | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"text": "Extras", | |||||
"i18n": "menu.extras", | |||||
"link": "/extras", | |||||
"icon": "anticon-link", | |||||
"children": [ | |||||
{ | |||||
"text": "Help Center", | |||||
"link": "/extras/helpcenter", | |||||
"i18n": "menu.extras.helpcenter" | |||||
}, | |||||
{ | |||||
"text": "Settings", | |||||
"link": "/extras/settings", | |||||
"i18n": "menu.extras.settings" | |||||
}, | |||||
{ | |||||
"text": "Poi", | |||||
"link": "/extras/poi", | |||||
"i18n": "menu.extras.poi" | |||||
} | |||||
] | |||||
} | |||||
] | |||||
} | |||||
] | |||||
} |
@@ -0,0 +1,34 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> | |||||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" | |||||
viewBox="0 0 400 400" style="enable-background:new 0 0 400 400;" xml:space="preserve"> | |||||
<style type="text/css"> | |||||
.st0{fill:url(#SVGID_1_);} | |||||
.st1{fill:url(#SVGID_2_);} | |||||
.st2{fill:url(#SVGID_3_);} | |||||
</style> | |||||
<g> | |||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="215.0983" y1="173.3861" x2="271.3071" y2="173.3861"> | |||||
<stop offset="3.215440e-02" style="stop-color:#F0776F"/> | |||||
<stop offset="1" style="stop-color:#F0606F"/> | |||||
</linearGradient> | |||||
<path class="st0" d="M258.7,213.4c-0.3,0-0.6,0-1-0.1c-4.3-0.5-7.4-4.4-6.9-8.7l4.7-38.9c0.3-2.5-1.2-4.9-3.5-5.7l-31.7-11.3 | |||||
c-4.1-1.5-6.2-5.9-4.8-10c1.5-4.1,5.9-6.2,10-4.8l31.7,11.3c9.4,3.3,15.1,12.5,13.9,22.4l-4.7,38.9 | |||||
C266,210.4,262.6,213.4,258.7,213.4z"/> | |||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="127.4784" y1="201.0843" x2="263.3311" y2="201.0843"> | |||||
<stop offset="0" style="stop-color:#6EB4E0"/> | |||||
<stop offset="1" style="stop-color:#1588E0"/> | |||||
</linearGradient> | |||||
<path class="st1" d="M197.9,275.7c-3.5,0-7-0.9-10.3-2.7l-41-22.8c-5.9-3.3-9.9-9.2-10.7-15.9l-8.3-67.6 | |||||
c-1.2-9.9,4.7-19.3,14.1-22.6l50.7-17.3c4.1-1.4,8.6,0.8,10,4.9c1.4,4.1-0.8,8.6-4.9,10l-50.7,17.3c-2.4,0.8-3.9,3.2-3.6,5.8 | |||||
l8.3,67.6c0.2,1.7,1.2,3.2,2.7,4.1l41,22.8c1.6,0.9,3.6,0.9,5.2,0l44.4-24.3c1.5-0.8,2.6-2.4,2.8-4.1c0.5-4.3,4.4-7.4,8.7-6.9 | |||||
c4.3,0.5,7.4,4.4,6.9,8.7c-0.8,6.7-4.9,12.7-10.8,16l-44.4,24.3C204.9,274.8,201.4,275.7,197.9,275.7z"/> | |||||
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="163.5466" y1="194.4135" x2="233.869" y2="194.4135"> | |||||
<stop offset="3.215440e-02" style="stop-color:#F0776F"/> | |||||
<stop offset="1" style="stop-color:#F0606F"/> | |||||
</linearGradient> | |||||
<path class="st2" d="M233,214.7l-25.4-45.9l-0.1-0.1c-1.8-3.1-5.2-5.1-8.8-5.1c-3.6,0-7,2-8.8,5.1l-25.4,46 | |||||
c-1.9,3.5-0.7,7.8,2.8,9.7c3.5,1.9,7.8,0.7,9.7-2.8l4.9-8.9h33.6l4.9,8.9c1.3,2.4,3.7,3.7,6.3,3.7c1.2,0,2.4-0.3,3.4-0.9 | |||||
C233.6,222.5,234.9,218.1,233,214.7z M189.8,198.4l8.9-16.1l8.9,16.1H189.8z"/> | |||||
</g> | |||||
</svg> |
@@ -0,0 +1 @@ | |||||
import{D as u,E as n,F as i,G as s,H as a,I as o,J as c,K as m,L as v}from"./chunk-OOUNO2UZ.js";var C=class{static num(r){return u(r.value)?null:{num:!0}}static int(r){return n(r.value)?null:{int:!0}}static decimal(r){return i(r.value)?null:{decimal:!0}}static idCard(r){return s(r.value)?null:{idCard:!0}}static mobile(r){return a(r.value)?null:{mobile:!0}}static url(r){return o(r.value)?null:{url:!0}}static ip(r){return c(r.value)?null:{ip:!0}}static color(r){return m(r.value)?null:{color:!0}}static chinese(r){return v(r.value)?null:{chinese:!0}}};function p(e,r){return l=>{let d=l.get(e),t=l.get(r);return t.errors&&!t.errors.matchControl||(d.value!==t.value?t.setErrors({matchControl:!0}):t.setErrors(null)),null}}export{C as a,p as b}; |
@@ -0,0 +1 @@ | |||||
import{$b as v,A as O,H as b,J as C,Jc as m,Wc as u,Z as p,a as y,ha as l,ja as g,ka as A,la as c,m as d,o as w,p as S,qc as T,tc as x,za as I}from"./chunk-VDRVUQCF.js";var U={store_key:"_token",token_invalid_redirect:!0,token_exp_offset:10,token_send_key:"token",token_send_template:"${token}",token_send_place:"header",login_url:"/login",refreshTime:3e3,refreshOffset:6e3};function E(e){return e.merge("auth",U)}function j(){return new h}var h=class{get(t){return JSON.parse(localStorage.getItem(t)||"{}")||{}}set(t,i){return localStorage.setItem(t,JSON.stringify(i)),!0}remove(t){localStorage.removeItem(t)}},D=new g("AUTH_STORE_TOKEN",{providedIn:"root",factory:j});function L(){return new F(c(u))}var F=(()=>{let t=class t{constructor(n){this.store=c(D),this.refresh$=new w,this.change$=new S(null),this._referrer={},this._options=E(n)}get refresh(){return this.builderRefresh(),this.refresh$.pipe(p())}get login_url(){return this._options.login_url}get referrer(){return this._referrer}get options(){return this._options}set(n){let r=this.store.set(this._options.store_key,n);return this.change$.next(n),r}get(n){let r=this.store.get(this._options.store_key);return n?Object.assign(new n,r):r}clear(n={onlyToken:!1}){let r=null;n.onlyToken===!0?(r=this.get(),r.token="",this.set(r)):this.store.remove(this._options.store_key),this.change$.next(r)}change(){return this.change$.pipe(p())}builderRefresh(){let{refreshTime:n,refreshOffset:r}=this._options;this.cleanRefresh(),this.interval$=b(n).pipe(O(()=>{let o=this.get(),s=o.expired||o.exp||0;if(s<=0)return null;let a=new Date().valueOf()+r;return s<=a?o:null}),C(o=>o!=null)).subscribe(o=>this.refresh$.next(o))}cleanRefresh(){this.interval$&&!this.interval$.closed&&this.interval$.unsubscribe()}ngOnDestroy(){this.cleanRefresh()}};t.\u0275fac=function(r){return new(r||t)(A(u))},t.\u0275prov=l({token:t,factory:t.\u0275fac});let e=t;return e})(),f=new g("DA_SERVICE_TOKEN",{providedIn:"root",factory:L}),_="_delonAuthSocialType",k="_delonAuthSocialCallbackByHref",te=(()=>{let t=class t{constructor(){this.tokenService=c(f),this.doc=c(v),this.router=c(m),this._win=null}login(n,r="/",o={}){if(o=y({type:"window",windowFeatures:"location=yes,height=570,width=520,scrollbars=yes,status=yes"},o),localStorage.setItem(_,o.type),localStorage.setItem(k,r),o.type==="href"){this.doc.location.href=n;return}return this._win=window.open(n,"_blank",o.windowFeatures),this._winTime=setInterval(()=>{if(this._win&&this._win.closed){this.ngOnDestroy();let s=this.tokenService.get();s&&!s.token&&(s=null),s&&this.tokenService.set(s),this.observer.next(s),this.observer.complete()}},100),new d(s=>{this.observer=s})}callback(n){if(!n&&this.router.url.indexOf("?")===-1)throw new Error("url muse contain a ?");let r={token:""};if(typeof n=="string"){let a=n.split("?")[1].split("#")[0];r=this.router.parseUrl(`./?${a}`).queryParams}else r=n;if(!r||!r.token)throw new Error("invalide token data");this.tokenService.set(r);let o=localStorage.getItem(k)||"/";localStorage.removeItem(k);let s=localStorage.getItem(_);return localStorage.removeItem(_),s==="window"?window.close():this.router.navigateByUrl(o),r}ngOnDestroy(){clearInterval(this._winTime),this._winTime=null}};t.\u0275fac=function(r){return new(r||t)},t.\u0275prov=l({token:t,factory:t.\u0275fac});let e=t;return e})();function N(e){return e!=null&&typeof e.token=="string"&&e.token.length>0}function R(e,t){let i=c(m),n=c(f),r=c(v);n.referrer.url=t||i.url,e.token_invalid_redirect===!0&&setTimeout(()=>{/^https?:\/\//g.test(e.login_url)?r.location.href=e.login_url:i.navigate([e.login_url])})}var J=new T(()=>!1);function H(e,t){if(e.context.get(J))return!0;if(Array.isArray(t.ignores)){for(let i of t.ignores)if(i.test(e.url))return!0}return!1}function P(e,t){return R(t),new d(i=>{let n="",r=new x({url:e.url,headers:e.headers,status:401,statusText:n});i.error(r)})}var $=(()=>{let t=class t{constructor(){this.srv=c(f)}process(n){let r=N(this.srv.get());return r||R(this.srv.options,n),r}};t.\u0275fac=function(r){return new(r||t)},t.\u0275prov=l({token:t,factory:t.\u0275fac,providedIn:"root"});let e=t;return e})(),re=(e,t)=>c($).process(t.url),ne=(e,t)=>c($).process(t.url);function B(e,t,i){let{token_send_template:n,token_send_key:r}=i,o=n.replace(/\$\{([\w]+)\}/g,(s,a)=>t[a]);switch(i.token_send_place){case"header":let s={};s[r]=o,e=e.clone({setHeaders:s});break;case"body":let a=e.body||{};a[r]=o,e=e.clone({body:a});break;case"url":e=e.clone({params:e.params.append(r,o)});break}return e}var oe=(e,t)=>{let i=E(c(u));if(H(e,i))return t(e);let n=c(f).get();return N(n)?t(B(e,n,i)):P(e,i)};var M=function(e){return e[e.Store=0]="Store",e}(M||{});function K(e,t){return{\u0275kind:e,\u0275providers:t}}function se(e){return I([(e??W()).\u0275providers])}function W(){return K(M.Store,[{provide:D,useClass:h}])}export{f as a,te as b,J as c,re as d,ne as e,oe as f,se as g}; |
@@ -0,0 +1,118 @@ | |||||
<!doctype html> | |||||
<html lang="en" data-critters-container> | |||||
<head> | |||||
<meta charset="utf-8"> | |||||
<title>上海发电设备成套设计研究院</title> | |||||
<base href="/"> | |||||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||||
<link rel="icon" type="image/x-icon" href="assets/lh-logo.png"> | |||||
<style type="text/css"> | |||||
.preloader { | |||||
position: fixed; | |||||
top: 0; | |||||
left: 0; | |||||
width: 100%; | |||||
height: 100%; | |||||
overflow: hidden; | |||||
background: #49a9ee; | |||||
z-index: 9999; | |||||
transition: opacity .65s | |||||
} | |||||
.preloader-hidden-add { | |||||
opacity: 1; | |||||
display: block | |||||
} | |||||
.preloader-hidden-add-active { | |||||
opacity: 0 | |||||
} | |||||
.preloader-hidden { | |||||
display: none | |||||
} | |||||
.cs-loader { | |||||
position: absolute; | |||||
top: 0; | |||||
left: 0; | |||||
height: 100%; | |||||
width: 100% | |||||
} | |||||
.cs-loader-inner { | |||||
transform: translateY(-50%); | |||||
top: 50%; | |||||
position: absolute; | |||||
width: 100%; | |||||
color: #fff; | |||||
text-align: center | |||||
} | |||||
.cs-loader-inner label { | |||||
font-size: 20px; | |||||
opacity: 0; | |||||
display: inline-block | |||||
} | |||||
@keyframes lol { | |||||
0% { | |||||
opacity: 0; | |||||
transform: translateX(-300px) | |||||
} | |||||
33% { | |||||
opacity: 1; | |||||
transform: translateX(0) | |||||
} | |||||
66% { | |||||
opacity: 1; | |||||
transform: translateX(0) | |||||
} | |||||
100% { | |||||
opacity: 0; | |||||
transform: translateX(300px) | |||||
} | |||||
} | |||||
.cs-loader-inner label:nth-child(6) { | |||||
animation: lol 3s infinite ease-in-out | |||||
} | |||||
.cs-loader-inner label:nth-child(5) { | |||||
animation: lol 3s .1s infinite ease-in-out | |||||
} | |||||
.cs-loader-inner label:nth-child(4) { | |||||
animation: lol 3s .2s infinite ease-in-out | |||||
} | |||||
.cs-loader-inner label:nth-child(3) { | |||||
animation: lol 3s .3s infinite ease-in-out | |||||
} | |||||
.cs-loader-inner label:nth-child(2) { | |||||
animation: lol 3s .4s infinite ease-in-out | |||||
} | |||||
.cs-loader-inner label:nth-child(1) { | |||||
animation: lol 3s .5s infinite ease-in-out | |||||
} | |||||
</style> | |||||
<style>html,body{width:100%;height:100%}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0;color:#ffffffd9;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-variant:tabular-nums;line-height:1.5715;background-color:#000;font-feature-settings:"tnum"}label{touch-action:manipulation}html{--antd-wave-shadow-color: #13C2C2;--scroll-bar: 0}body{scrollbar-color:rgba(0,0,0,.3) #6e6e6e;scrollbar-width:thin}body::-webkit-scrollbar{width:6px;height:6px}body::-webkit-scrollbar-track{box-shadow:inset 0 0 6px #0000004d}body::-webkit-scrollbar-thumb{background-color:#6e6e6e;outline:1px solid #333}html{touch-action:manipulation;direction:ltr;height:100%}html,body,app-root{height:100%}body{color:#ffffffd9;background-color:#000} | |||||
</style><link rel="stylesheet" href="styles-JTMVGPO6.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-JTMVGPO6.css"></noscript><link rel="modulepreload" href="chunk-2D265ORJ.js"><link rel="modulepreload" href="chunk-HCPW2OGS.js"><link rel="modulepreload" href="chunk-OOUNO2UZ.js"><link rel="modulepreload" href="chunk-4FFPI7ZP.js"><link rel="modulepreload" href="chunk-VDRVUQCF.js"></head> | |||||
<body> | |||||
<app-root></app-root> | |||||
<div class="preloader"> | |||||
<div class="cs-loader"> | |||||
<div class="cs-loader-inner"><label> ●</label><label> ●</label><label> ●</label><label> ●</label><label> | |||||
●</label><label> ●</label></div> | |||||
</div> | |||||
</div> | |||||
<script src="polyfills-RX4V3J3S.js" type="module"></script><script src="scripts-XEF6VACQ.js" defer></script><script src="main-3JB53C7N.js" type="module"></script></body> | |||||
</html> |
@@ -42,6 +42,7 @@ | |||||
"@microsoft/signalr": "^8.0.0", | "@microsoft/signalr": "^8.0.0", | ||||
"@microsoft/signalr-protocol-msgpack": "^8.0.0", | "@microsoft/signalr-protocol-msgpack": "^8.0.0", | ||||
"@types/signalr": "^2.4.3", | "@types/signalr": "^2.4.3", | ||||
"@types/three": "^0.162.0", | |||||
"ag-grid-angular": "^31.0.2", | "ag-grid-angular": "^31.0.2", | ||||
"echarts": "^5.5.0", | "echarts": "^5.5.0", | ||||
"moment": "^2.30.1", | "moment": "^2.30.1", | ||||
@@ -51,6 +52,8 @@ | |||||
"ngx-mqtt": "^17.0.0", | "ngx-mqtt": "^17.0.0", | ||||
"rxjs": "~7.8.0", | "rxjs": "~7.8.0", | ||||
"screenfull": "^6.0.2", | "screenfull": "^6.0.2", | ||||
"three": "^0.162.0", | |||||
"three-orbitcontrols-ts": "^0.1.2", | |||||
"tslib": "^2.3.0", | "tslib": "^2.3.0", | ||||
"zone.js": "~0.14.3" | "zone.js": "~0.14.3" | ||||
}, | }, | ||||
@@ -7,6 +7,7 @@ import { DataVSecond1Component } from './second1/second1.component'; | |||||
import { DataVThreejsComponent } from './threejs/threejs.component'; | import { DataVThreejsComponent } from './threejs/threejs.component'; | ||||
import { DataVUserComponent } from './user/user.component'; | import { DataVUserComponent } from './user/user.component'; | ||||
import { DataVWorkstationComponent } from './workstation/workstation.component'; | import { DataVWorkstationComponent } from './workstation/workstation.component'; | ||||
import { DataVT1Component } from './t1/t1.component'; | |||||
export const routes: Routes = [ | export const routes: Routes = [ | ||||
{ | { | ||||
@@ -19,5 +20,6 @@ export const routes: Routes = [ | |||||
component: DataVSecond1Component, | component: DataVSecond1Component, | ||||
data: { menu: null } | data: { menu: null } | ||||
}, | }, | ||||
{ path: 'threejs/:id', component: DataVThreejsComponent } | |||||
{ path: 'threejs/:id', component: DataVThreejsComponent }, | |||||
{ path: 't1/:id', component: DataVT1Component } | |||||
]; | ]; |
@@ -46,46 +46,57 @@ | |||||
<div style="height: 34.6rem"> | <div style="height: 34.6rem"> | ||||
<img src="assets/dashboard/dashboard_ws_demo1.png" style="width: 100%" /> | <img src="assets/dashboard/dashboard_ws_demo1.png" style="width: 100%" /> | ||||
<div nz-row style="justify-content: center; align-items: center; margin-top: 0.5rem"> | |||||
<div nz-col nzSpan="12" class="sys-status-title"> 机器人 </div> | |||||
<div nz-col nzSpan="12" class="sys-status-title"> 全硫仪 </div> | |||||
<div nz-col nzSpan="12" class="sys-status-title"> 全水分析仪 </div> | |||||
<div nz-col nzSpan="12" class="sys-status-title"> 挥发分仪 </div> | |||||
<div nz-col nzSpan="12" class="sys-status-title"> 量热仪 </div> | |||||
<div nz-col nzSpan="12" class="sys-status-title"> 谈情氮元素 </div> | |||||
<div nz-row style="justify-content: center;align-items: center;margin-top: 0.5rem;"> | |||||
<div nz-col nzSpan="12" class="sys-status-title"> | |||||
机器人 | |||||
</div> | |||||
<div nz-col nzSpan="12" class="sys-status-title"> | |||||
全硫仪 | |||||
</div> | |||||
<div nz-col nzSpan="12" class="sys-status-title"> | |||||
全水分析仪 | |||||
</div> | |||||
<div nz-col nzSpan="12" class="sys-status-title"> | |||||
挥发分仪 | |||||
</div> | |||||
<div nz-col nzSpan="12" class="sys-status-title"> | |||||
量热仪 | |||||
</div> | |||||
<div nz-col nzSpan="12" class="sys-status-title"> | |||||
碳氢氮元素 | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</data-v-card> | </data-v-card> | ||||
</div> | </div> | ||||
<div nz-col nzSpan="8"> | <div nz-col nzSpan="8"> | ||||
<data-v-card | |||||
title="化验结果" | |||||
[showSetting]="true" | |||||
[optionsList]="chartConfig.optionsCheckList" | |||||
(onCheckedItemsChange)="handleCheckedItems($event)" | |||||
> | |||||
<data-v-card title="化验结果" [showSetting]="true" [optionsList]="chartConfig.optionsCheckList" | |||||
(onCheckedItemsChange)="handleCheckedItems($event)"> | |||||
<div nz-row class="scrollable-container"> | <div nz-row class="scrollable-container"> | ||||
@for (item of chartConfig.optionsCheckList; track item) { | |||||
@for(item of chartConfig.optionsCheckList; track item) { | |||||
<div nz-col [nzSpan]="24 / chartConfig.rowNumber" *ngIf="item.checked" class="centered-element"> | <div nz-col [nzSpan]="24 / chartConfig.rowNumber" *ngIf="item.checked" class="centered-element"> | ||||
<!-- 添加上下外边距 --> | <!-- 添加上下外边距 --> | ||||
<app-chart-component | |||||
[options]="item.options" | |||||
<app-chart-component [options]="item.options" | |||||
[style]="{ margin: '20px ' + 20 / chartConfig.rowNumber + 'px', width: '100%', height: '16rem' }" | [style]="{ margin: '20px ' + 20 / chartConfig.rowNumber + 'px', width: '100%', height: '16rem' }" | ||||
*ngIf="item.checked" | |||||
/> | |||||
*ngIf="item.checked" /> | |||||
</div> | </div> | ||||
} | |||||
} | |||||
</div> | </div> | ||||
<div nz-row> | <div nz-row> | ||||
@for (item of chartConfig.optionBottomList; track item) { | |||||
@for(item of chartConfig.optionBottomList; track item) { | |||||
<div nz-col nzSpan="12"> | <div nz-col nzSpan="12"> | ||||
<div class="centered-element" style="margin: 2px"> | <div class="centered-element" style="margin: 2px"> | ||||
<app-chart-component [options]="item" style="width: 26rem; height: 11rem; margin-left: 0.4rem" /> | <app-chart-component [options]="item" style="width: 26rem; height: 11rem; margin-left: 0.4rem" /> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
} | |||||
} | |||||
</div> | </div> | ||||
</data-v-card> | </data-v-card> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<!-- <data-v-card> | |||||
<div class="sys-status-title">煤样超差率:超差样量/总样量 03/16</div> | |||||
<div class="sys-status-title">煤样合格率:合格样量/总样量 15/16</div> | |||||
</data-v-card> --> |
@@ -15,6 +15,8 @@ import { Subscription, finalize } from 'rxjs'; | |||||
import { IMqttMessage, MqttService } from 'ngx-mqtt'; | import { IMqttMessage, MqttService } from 'ngx-mqtt'; | ||||
import { ChartComponentComponent } from './chart-component/chart-component.component'; | import { ChartComponentComponent } from './chart-component/chart-component.component'; | ||||
import { NzListModule } from 'ng-zorro-antd/list'; | import { NzListModule } from 'ng-zorro-antd/list'; | ||||
import { TitleService } from '@delon/theme'; | |||||
@Component({ | @Component({ | ||||
selector: 'app-data-v-s1', | selector: 'app-data-v-s1', | ||||
standalone: true, | standalone: true, | ||||
@@ -0,0 +1,6 @@ | |||||
<!-- <div #Three style="background-color: red;"></div> --> | |||||
<div style="display: flex; flex-direction: column; height: 100vh;"> | |||||
<div #Three style="flex-grow: 1;"></div> | |||||
</div> |
@@ -0,0 +1,121 @@ | |||||
import { Component, ElementRef, OnInit, ViewChild, inject } from '@angular/core'; | |||||
import { STColumn, STComponent } from '@delon/abc/st'; | |||||
import { SFSchema } from '@delon/form'; | |||||
import { ModalHelper, _HttpClient } from '@delon/theme'; | |||||
import { SHARED_IMPORTS } from '@shared'; | |||||
import * as THREE from 'three'; | |||||
import { OrbitControls } from 'three-orbitcontrols-ts'; | |||||
import { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader'; | |||||
import { TitleService } from '@delon/theme'; | |||||
const clock = new THREE.Clock(); | |||||
let mixer: { update: (arg0: number) => void }; | |||||
@Component({ | |||||
selector: 'app-data-v-t1', | |||||
standalone: true, | |||||
imports: [...SHARED_IMPORTS], | |||||
templateUrl: './t1.component.html' | |||||
}) | |||||
export class DataVT1Component implements OnInit { | |||||
private readonly http = inject(_HttpClient); | |||||
private readonly modal = inject(ModalHelper); | |||||
private readonly titleService = inject(TitleService); | |||||
@ViewChild('Three', { static: true }) container!: ElementRef; | |||||
public scene!: THREE.Scene; | |||||
public camera!: THREE.PerspectiveCamera; | |||||
public renderer!: THREE.WebGLRenderer; | |||||
public cube!: THREE.Mesh; | |||||
ngOnInit(): void { | |||||
this.titleService.setTitle('重磅3D'); | |||||
this.initThreeJs(); | |||||
this.animate(); | |||||
} | |||||
private initThreeJs(): void { | |||||
// 创建相机 | |||||
this.camera = new THREE.PerspectiveCamera(40, window.innerWidth / window.innerHeight, 1, 20000); | |||||
this.camera.position.set(2200, 300, -3100); | |||||
//创建场景 | |||||
this.scene = new THREE.Scene(); | |||||
this.scene.background = new THREE.Color(0x040516); | |||||
const hemiLight = new THREE.HemisphereLight(0xffffff, 0x444444, 5); | |||||
hemiLight.position.set(0, 200, 0); | |||||
this.scene.add(hemiLight); | |||||
const dirLight = new THREE.DirectionalLight(0xffffff, 5); | |||||
dirLight.position.set(0, 200, 100); | |||||
dirLight.castShadow = true; | |||||
dirLight.shadow.camera.top = 180; | |||||
dirLight.shadow.camera.bottom = -100; | |||||
dirLight.shadow.camera.left = -120; | |||||
dirLight.shadow.camera.right = 120; | |||||
this.scene.add(dirLight); | |||||
const that = this; | |||||
const loader = new FBXLoader(); | |||||
loader.load( | |||||
'assets/fbx/bb.fbx', | |||||
function (object) { | |||||
object.traverse(function (child) { | |||||
// if (child.isMesh) { | |||||
// child.castShadow = true; | |||||
// child.receiveShadow = true; | |||||
// } | |||||
}); | |||||
that.scene.add(object); | |||||
}, | |||||
xhr => { | |||||
// loading progress | |||||
}, | |||||
err => { | |||||
console.error('An error happened', err); | |||||
} | |||||
); | |||||
this.renderer = new THREE.WebGLRenderer({ antialias: true }); | |||||
this.renderer.setPixelRatio(window.devicePixelRatio); | |||||
this.renderer.setSize(window.innerWidth, window.innerHeight); | |||||
this.renderer.shadowMap.enabled = true; | |||||
this.container.nativeElement.appendChild(this.renderer.domElement); | |||||
const radius = 5; // 圆的半径 | |||||
const segments = 32; // 圆的分段数 | |||||
const geometry = new THREE.CircleGeometry(radius, segments); | |||||
const material = new THREE.MeshBasicMaterial({ color: 0xff0000 }); // 红色材质,你可以根据需要调整颜色 | |||||
const circle = new THREE.Mesh(geometry, material); | |||||
circle.position.set(850, 100, -2000); // 设置圆的位置 | |||||
this.scene.add(circle); | |||||
const controls = new OrbitControls(this.camera, this.renderer.domElement); | |||||
controls.target.set(850, 100, -2000); | |||||
controls.update(); | |||||
//const axesHelper = new THREE.AxesHelper(1000); | |||||
//this.scene.add(axesHelper); | |||||
window.addEventListener('resize', this.onWindowResize); | |||||
} | |||||
public render(): void { | |||||
this.cube.rotation.x += 0.01; | |||||
this.cube.rotation.y += 0.01; | |||||
this.renderer.render(this.scene, this.camera); | |||||
} | |||||
onWindowResize() { | |||||
this.camera.aspect = window.innerWidth / window.innerHeight; | |||||
this.camera.updateProjectionMatrix(); | |||||
this.renderer.setSize(window.innerWidth, window.innerHeight); | |||||
} | |||||
animate = () => { | |||||
requestAnimationFrame(this.animate); | |||||
const delta = clock.getDelta(); | |||||
if (mixer) mixer.update(delta); | |||||
this.renderer.render(this.scene, this.camera); | |||||
}; | |||||
} |
@@ -1,5 +1,5 @@ | |||||
import { AfterViewInit, Component, ElementRef, OnInit, ViewChild, inject } from '@angular/core'; | import { AfterViewInit, Component, ElementRef, OnInit, ViewChild, inject } from '@angular/core'; | ||||
import { ModalHelper, _HttpClient } from '@delon/theme'; | |||||
import { ModalHelper, TitleService, _HttpClient } from '@delon/theme'; | |||||
import { SHARED_IMPORTS } from '@shared'; | import { SHARED_IMPORTS } from '@shared'; | ||||
import { AgGridAngular } from 'ag-grid-angular'; | import { AgGridAngular } from 'ag-grid-angular'; | ||||
import { ColDef, GridApi } from 'ag-grid-community'; | import { ColDef, GridApi } from 'ag-grid-community'; | ||||
@@ -32,6 +32,7 @@ export class DataVWorkstationComponent implements OnInit, AfterViewInit { | |||||
private readonly http = inject(_HttpClient); | private readonly http = inject(_HttpClient); | ||||
private readonly modal = inject(ModalHelper); | private readonly modal = inject(ModalHelper); | ||||
private readonly elementRef = inject(ElementRef); | private readonly elementRef = inject(ElementRef); | ||||
private readonly titleService = inject(TitleService); | |||||
@ViewChild('myGrid') grid!: AgGridAngular; | @ViewChild('myGrid') grid!: AgGridAngular; | ||||
public defaultColDef: ColDef = { | public defaultColDef: ColDef = { | ||||
@@ -131,7 +132,7 @@ export class DataVWorkstationComponent implements OnInit, AfterViewInit { | |||||
} | } | ||||
ngOnInit(): void { | ngOnInit(): void { | ||||
console.log(`ngOnInit${this.rowData.length}`); | |||||
this.titleService.setTitle('我的工作站'); | |||||
for (var i = 1; i < 30; i++) { | for (var i = 1; i < 30; i++) { | ||||
this.rowData.push({ | this.rowData.push({ | ||||
@@ -29,8 +29,6 @@ | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<ng-template #coverTemplate> | <ng-template #coverTemplate> | ||||
<img style="height: 100px;" alt="example" src="assets/bg2.jpg" /> | <img style="height: 100px;" alt="example" src="assets/bg2.jpg" /> | ||||
</ng-template> | </ng-template> | ||||
@@ -91,15 +91,20 @@ | |||||
color: #515151; | color: #515151; | ||||
vertical-align: middle; | vertical-align: middle; | ||||
} | } | ||||
} | |||||
.color-515151 { | |||||
color: #515151; | |||||
} | |||||
.color-515151 { | |||||
color: #515151; | |||||
} | } | ||||
} | } | ||||
[data-theme='dark'] { | [data-theme='dark'] { | ||||
:host ::ng-deep { | :host ::ng-deep { | ||||
display: block; | |||||
width: 538px; | |||||
margin: 0 auto; | |||||
.icon { | .icon { | ||||
color: rgb(255 255 255 / 20%); | color: rgb(255 255 255 / 20%); | ||||
@@ -36,7 +36,9 @@ | |||||
], | ], | ||||
"@_mock": [ | "@_mock": [ | ||||
"_mock/index" | "_mock/index" | ||||
] | |||||
], | |||||
"three": ["./node_modules/three/src/Three"], | |||||
"three/*": ["./node_modules/three/*"] | |||||
} | } | ||||
}, | }, | ||||
"angularCompilerOptions": { | "angularCompilerOptions": { | ||||
@@ -2277,6 +2277,11 @@ | |||||
"@tufjs/canonical-json" "2.0.0" | "@tufjs/canonical-json" "2.0.0" | ||||
minimatch "^9.0.3" | minimatch "^9.0.3" | ||||
"@tweenjs/tween.js@~23.1.1": | |||||
version "23.1.1" | |||||
resolved "https://registry.npmmirror.com/@tweenjs/tween.js/-/tween.js-23.1.1.tgz#0ae28ed9c635805557f78c2626464018d5f1b5e2" | |||||
integrity sha512-ZpboH7pCPPeyBWKf8c7TJswtCEQObFo3bOBYalm99NzZarATALYCo5OhbCa/n4RQyJyHfhkdx+hNrdL5ByFYDw== | |||||
"@types/body-parser@*": | "@types/body-parser@*": | ||||
version "1.19.5" | version "1.19.5" | ||||
resolved "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.5.tgz" | resolved "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.5.tgz" | ||||
@@ -2509,6 +2514,11 @@ | |||||
dependencies: | dependencies: | ||||
"@types/node" "*" | "@types/node" "*" | ||||
"@types/stats.js@*": | |||||
version "0.17.3" | |||||
resolved "https://registry.npmmirror.com/@types/stats.js/-/stats.js-0.17.3.tgz#705446e12ce0fad618557dd88236f51148b7a935" | |||||
integrity sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ== | |||||
"@types/swagger-schema-official@2.0.22": | "@types/swagger-schema-official@2.0.22": | ||||
version "2.0.22" | version "2.0.22" | ||||
resolved "https://registry.npmmirror.com/@types/swagger-schema-official/-/swagger-schema-official-2.0.22.tgz" | resolved "https://registry.npmmirror.com/@types/swagger-schema-official/-/swagger-schema-official-2.0.22.tgz" | ||||
@@ -2519,6 +2529,22 @@ | |||||
resolved "https://registry.npmmirror.com/@types/swagger-schema-official/-/swagger-schema-official-2.0.25.tgz" | resolved "https://registry.npmmirror.com/@types/swagger-schema-official/-/swagger-schema-official-2.0.25.tgz" | ||||
integrity sha512-T92Xav+Gf/Ik1uPW581nA+JftmjWPgskw/WBf4TJzxRG/SJ+DfNnNE+WuZ4mrXuzflQMqMkm1LSYjzYW7MB1Cg== | integrity sha512-T92Xav+Gf/Ik1uPW581nA+JftmjWPgskw/WBf4TJzxRG/SJ+DfNnNE+WuZ4mrXuzflQMqMkm1LSYjzYW7MB1Cg== | ||||
"@types/three@^0.162.0": | |||||
version "0.162.0" | |||||
resolved "https://registry.npmmirror.com/@types/three/-/three-0.162.0.tgz#79d170c88f14b2eaee6b76af00fc4016a533e586" | |||||
integrity sha512-0j5yZcVukVIhrhSIC7+LmBPkkMoMuEJ1AfYBZfgNytdYqYREMuiyXWhYOMeZLBElTEAlJIZn7r2W3vqTIgjWlg== | |||||
dependencies: | |||||
"@tweenjs/tween.js" "~23.1.1" | |||||
"@types/stats.js" "*" | |||||
"@types/webxr" "*" | |||||
fflate "~0.6.10" | |||||
meshoptimizer "~0.18.1" | |||||
"@types/webxr@*": | |||||
version "0.5.14" | |||||
resolved "https://registry.npmmirror.com/@types/webxr/-/webxr-0.5.14.tgz#9a03121a4912ea113b31e5c9c17f164d4fff8a1f" | |||||
integrity sha512-UEMMm/Xn3DtEa+gpzUrOcDj+SJS1tk5YodjwOxcqStNhCfPcwgyC5Srg2ToVKyg2Fhq16Ffpb0UWUQHqoT9AMA== | |||||
"@types/ws@^8.5.5", "@types/ws@^8.5.9": | "@types/ws@^8.5.5", "@types/ws@^8.5.9": | ||||
version "8.5.10" | version "8.5.10" | ||||
resolved "https://registry.npmmirror.com/@types/ws/-/ws-8.5.10.tgz" | resolved "https://registry.npmmirror.com/@types/ws/-/ws-8.5.10.tgz" | ||||
@@ -4948,6 +4974,11 @@ fetch-cookie@^2.0.3: | |||||
set-cookie-parser "^2.4.8" | set-cookie-parser "^2.4.8" | ||||
tough-cookie "^4.0.0" | tough-cookie "^4.0.0" | ||||
fflate@~0.6.10: | |||||
version "0.6.10" | |||||
resolved "https://registry.npmmirror.com/fflate/-/fflate-0.6.10.tgz#5f40f9659205936a2d18abf88b2e7781662b6d43" | |||||
integrity sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg== | |||||
figures@3.2.0: | figures@3.2.0: | ||||
version "3.2.0" | version "3.2.0" | ||||
resolved "https://registry.npmmirror.com/figures/-/figures-3.2.0.tgz" | resolved "https://registry.npmmirror.com/figures/-/figures-3.2.0.tgz" | ||||
@@ -6769,6 +6800,11 @@ merge2@^1.3.0, merge2@^1.4.1: | |||||
resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz" | resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz" | ||||
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== | ||||
meshoptimizer@~0.18.1: | |||||
version "0.18.1" | |||||
resolved "https://registry.npmmirror.com/meshoptimizer/-/meshoptimizer-0.18.1.tgz#cdb90907f30a7b5b1190facd3b7ee6b7087797d8" | |||||
integrity sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw== | |||||
methods@~1.1.2: | methods@~1.1.2: | ||||
version "1.1.2" | version "1.1.2" | ||||
resolved "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz" | resolved "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz" | ||||
@@ -9494,6 +9530,23 @@ text-table@0.2.0, text-table@^0.2.0: | |||||
resolved "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz" | resolved "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz" | ||||
integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== | ||||
three-orbitcontrols-ts@^0.1.2: | |||||
version "0.1.2" | |||||
resolved "https://registry.npmmirror.com/three-orbitcontrols-ts/-/three-orbitcontrols-ts-0.1.2.tgz#2040955904022ae19c2e9c52ffdff43168658abd" | |||||
integrity sha512-HG45dhJX4010lt/Ohk2d2K0kBaxCS6NLO3+wG9BDfMM5ddH7zMPuF3fhcn8vI4eqcSITtid0OoHEttHhjkIKEQ== | |||||
dependencies: | |||||
three "^0.83.0" | |||||
three@^0.162.0: | |||||
version "0.162.0" | |||||
resolved "https://registry.npmmirror.com/three/-/three-0.162.0.tgz" | |||||
integrity sha512-xfCYj4RnlozReCmUd+XQzj6/5OjDNHBy5nT6rVwrOKGENAvpXe2z1jL+DZYaMu4/9pNsjH/4Os/VvS9IrH7IOQ== | |||||
three@^0.83.0: | |||||
version "0.83.0" | |||||
resolved "https://registry.npmmirror.com/three/-/three-0.83.0.tgz#3b7f94790af3e021dac1f44a2617569ca2032b0b" | |||||
integrity sha512-x9TqsmvhHG/Lw16Zi9zbJ0ho+kP8SgIfsz8dJYZbeWaFWoVwdXKolQQAftkUlpuKDys1+6SZIBHoA2QdoZKByQ== | |||||
through@^2.3.4: | through@^2.3.4: | ||||
version "2.3.8" | version "2.3.8" | ||||
resolved "https://registry.npmmirror.com/through/-/through-2.3.8.tgz" | resolved "https://registry.npmmirror.com/through/-/through-2.3.8.tgz" | ||||