瀏覽代碼

Merge branch 'develop' of http://112.33.111.155:3000/yuhy/auseft.platform.datav

# Conflicts:
#	src/app/routes/data-v/navigation/navigation.component.ts
#	src/app/routes/data-v/routes.ts
#	src/app/routes/data-v/s1/s1.component.html
#	src/app/routes/data-v/s1/s1.component.ts
#	src/app/routes/data-v/workstation/workstation.component.ts
#	yarn.lock
master
ocean2 1 年之前
父節點
當前提交
c783fce68e
共有 29 個文件被更改,包括 12876 次插入90 次删除
  1. 二進制
      assets/fbx/bb.fbx
  2. +78
    -0
      dist/himp.platform.angular/3rdpartylicenses.txt
  3. 二進制
      dist/himp.platform.angular/browser/assets/fbx/bb.fbx
  4. +1
    -1
      dist/himp.platform.angular/browser/chunk-2D265ORJ.js
  5. +1
    -1
      dist/himp.platform.angular/browser/chunk-2TNVIQ4O.js
  6. +1
    -1
      dist/himp.platform.angular/browser/chunk-4FFPI7ZP.js
  7. +0
    -1
      dist/himp.platform.angular/browser/chunk-7KRKUWJJ.js
  8. +0
    -39
      dist/himp.platform.angular/browser/chunk-CTDZNHTN.js
  9. +1
    -0
      dist/himp.platform.angular/browser/chunk-FD5ZSWKQ.js
  10. +1
    -1
      dist/himp.platform.angular/browser/chunk-GNH673QO.js
  11. +1
    -1
      dist/himp.platform.angular/browser/chunk-HCPW2OGS.js
  12. +1
    -1
      dist/himp.platform.angular/browser/chunk-MUTNAUEH.js
  13. +1
    -1
      dist/himp.platform.angular/browser/chunk-OOUNO2UZ.js
  14. +12543
    -0
      dist/himp.platform.angular/browser/chunk-R3OIOWDW.js
  15. +9
    -9
      dist/himp.platform.angular/browser/chunk-VDRVUQCF.js
  16. +2
    -2
      dist/himp.platform.angular/browser/index.html
  17. +2
    -2
      dist/himp.platform.angular/browser/main-3JB53C7N.js
  18. +3
    -0
      package.json
  19. +3
    -1
      src/app/routes/data-v/routes.ts
  20. +32
    -21
      src/app/routes/data-v/s1/s1.component.html
  21. +2
    -0
      src/app/routes/data-v/s1/s1.component.ts
  22. +6
    -0
      src/app/routes/data-v/t1/t1.component.html
  23. +121
    -0
      src/app/routes/data-v/t1/t1.component.ts
  24. +3
    -2
      src/app/routes/data-v/workstation/workstation.component.ts
  25. +0
    -2
      src/app/routes/passport/login/login.component.html
  26. +8
    -3
      src/app/routes/passport/login/login.component.less
  27. 二進制
      src/assets/fbx/bb.fbx
  28. +3
    -1
      tsconfig.json
  29. +53
    -0
      yarn.lock

二進制
assets/fbx/bb.fbx 查看文件


+ 78
- 0
dist/himp.platform.angular/3rdpartylicenses.txt 查看文件

@@ -62,6 +62,58 @@ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.

--------------------------------------------------------------------------------
Package: three
License: "MIT"

The MIT License

Copyright © 2010-2016 three.js authors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

--------------------------------------------------------------------------------
Package: three-orbitcontrols-ts
License: "MIT"

MIT License

Copyright (c) 2017 Nicolas Panel

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

--------------------------------------------------------------------------------
Package: tslib
License: "0BSD"
@@ -338,6 +390,32 @@ The following files embed [d3.js](https://github.com/d3/d3) BSD 3-Clause:
`/src/util/number.ts`
See `/licenses/LICENSE-d3` for details of the license.

--------------------------------------------------------------------------------
Package: three
License: "MIT"

The MIT License

Copyright © 2010-2024 three.js authors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

--------------------------------------------------------------------------------
Package: mqtt-browser
License: "MIT"


二進制
dist/himp.platform.angular/browser/assets/fbx/bb.fbx 查看文件


dist/himp.platform.angular/browser/chunk-2D265ORJ.js
文件差異過大導致無法顯示
查看文件


dist/himp.platform.angular/browser/chunk-SZALJX3W.js → dist/himp.platform.angular/browser/chunk-2TNVIQ4O.js 查看文件

@@ -1 +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-XXGLJ63T.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};
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};

dist/himp.platform.angular/browser/chunk-ZRW2SW2G.js → dist/himp.platform.angular/browser/chunk-4FFPI7ZP.js 查看文件

@@ -1 +1 @@
import{F as b,H as C,Hc as m,Uc as u,X as p,Zb as v,a as y,fa as l,ha as g,ia as A,ja as c,k as d,m as w,n as S,oc as T,rc as x,xa as I,y as O}from"./chunk-TV7RDLL7.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};
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
- 1
dist/himp.platform.angular/browser/chunk-7KRKUWJJ.js
文件差異過大導致無法顯示
查看文件


+ 0
- 39
dist/himp.platform.angular/browser/chunk-CTDZNHTN.js
文件差異過大導致無法顯示
查看文件


+ 1
- 0
dist/himp.platform.angular/browser/chunk-FD5ZSWKQ.js
文件差異過大導致無法顯示
查看文件


dist/himp.platform.angular/browser/chunk-GNH673QO.js
文件差異過大導致無法顯示
查看文件


dist/himp.platform.angular/browser/chunk-HCPW2OGS.js
文件差異過大導致無法顯示
查看文件


dist/himp.platform.angular/browser/chunk-MUTNAUEH.js
文件差異過大導致無法顯示
查看文件


dist/himp.platform.angular/browser/chunk-OOUNO2UZ.js
文件差異過大導致無法顯示
查看文件


+ 12543
- 0
dist/himp.platform.angular/browser/chunk-R3OIOWDW.js
文件差異過大導致無法顯示
查看文件


dist/himp.platform.angular/browser/chunk-VDRVUQCF.js
文件差異過大導致無法顯示
查看文件


+ 2
- 2
dist/himp.platform.angular/browser/index.html 查看文件

@@ -103,7 +103,7 @@
}
</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-4YNSMQCN.js"><link rel="modulepreload" href="chunk-T3OMXG5T.js"><link rel="modulepreload" href="chunk-XXGLJ63T.js"><link rel="modulepreload" href="chunk-ZRW2SW2G.js"><link rel="modulepreload" href="chunk-TV7RDLL7.js"></head>
</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>
@@ -113,6 +113,6 @@
●</label><label> ●</label></div>
</div>
</div>
<script src="polyfills-RX4V3J3S.js" type="module"></script><script src="scripts-XEF6VACQ.js" defer></script><script src="main-XJNA5CYE.js" type="module"></script></body>
<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>

dist/himp.platform.angular/browser/main-3JB53C7N.js
文件差異過大導致無法顯示
查看文件


+ 3
- 0
package.json 查看文件

@@ -42,6 +42,7 @@
"@microsoft/signalr": "^8.0.0",
"@microsoft/signalr-protocol-msgpack": "^8.0.0",
"@types/signalr": "^2.4.3",
"@types/three": "^0.162.0",
"ag-grid-angular": "^31.0.2",
"echarts": "^5.5.0",
"moment": "^2.30.1",
@@ -51,6 +52,8 @@
"ngx-mqtt": "^17.0.0",
"rxjs": "~7.8.0",
"screenfull": "^6.0.2",
"three": "^0.162.0",
"three-orbitcontrols-ts": "^0.1.2",
"tslib": "^2.3.0",
"zone.js": "~0.14.3"
},


+ 3
- 1
src/app/routes/data-v/routes.ts 查看文件

@@ -7,6 +7,7 @@ import { DataVSecond1Component } from './second1/second1.component';
import { DataVThreejsComponent } from './threejs/threejs.component';
import { DataVUserComponent } from './user/user.component';
import { DataVWorkstationComponent } from './workstation/workstation.component';
import { DataVT1Component } from './t1/t1.component';

export const routes: Routes = [
{
@@ -19,5 +20,6 @@ export const routes: Routes = [
component: DataVSecond1Component,
data: { menu: null }
},
{ path: 'threejs/:id', component: DataVThreejsComponent }
{ path: 'threejs/:id', component: DataVThreejsComponent },
{ path: 't1/:id', component: DataVT1Component }
];

+ 32
- 21
src/app/routes/data-v/s1/s1.component.html 查看文件

@@ -46,46 +46,57 @@
<div style="height: 34.6rem">
<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>
</data-v-card>
</div>

<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">
@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">
<!-- 添加上下外边距 -->
<app-chart-component
[options]="item.options"
<app-chart-component [options]="item.options"
[style]="{ margin: '20px ' + 20 / chartConfig.rowNumber + 'px', width: '100%', height: '16rem' }"
*ngIf="item.checked"
/>
*ngIf="item.checked" />
</div>
}
}
</div>
<div nz-row>
@for (item of chartConfig.optionBottomList; track item) {
@for(item of chartConfig.optionBottomList; track item) {
<div nz-col nzSpan="12">
<div class="centered-element" style="margin: 2px">
<app-chart-component [options]="item" style="width: 26rem; height: 11rem; margin-left: 0.4rem" />
</div>
</div>
}
}
</div>
</data-v-card>
</div>
</div>

<!-- <data-v-card>
<div class="sys-status-title">煤样超差率:超差样量/总样量 03/16</div>
<div class="sys-status-title">煤样合格率:合格样量/总样量 15/16</div>
</data-v-card> -->

+ 2
- 0
src/app/routes/data-v/s1/s1.component.ts 查看文件

@@ -15,6 +15,8 @@ import { Subscription, finalize } from 'rxjs';
import { IMqttMessage, MqttService } from 'ngx-mqtt';
import { ChartComponentComponent } from './chart-component/chart-component.component';
import { NzListModule } from 'ng-zorro-antd/list';
import { TitleService } from '@delon/theme';

@Component({
selector: 'app-data-v-s1',
standalone: true,


+ 6
- 0
src/app/routes/data-v/t1/t1.component.html 查看文件

@@ -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>

+ 121
- 0
src/app/routes/data-v/t1/t1.component.ts 查看文件

@@ -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);
};
}

+ 3
- 2
src/app/routes/data-v/workstation/workstation.component.ts 查看文件

@@ -1,5 +1,5 @@
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 { AgGridAngular } from 'ag-grid-angular';
import { ColDef, GridApi } from 'ag-grid-community';
@@ -32,6 +32,7 @@ export class DataVWorkstationComponent implements OnInit, AfterViewInit {
private readonly http = inject(_HttpClient);
private readonly modal = inject(ModalHelper);
private readonly elementRef = inject(ElementRef);
private readonly titleService = inject(TitleService);

@ViewChild('myGrid') grid!: AgGridAngular;
public defaultColDef: ColDef = {
@@ -129,7 +130,7 @@ export class DataVWorkstationComponent implements OnInit, AfterViewInit {
}

ngOnInit(): void {
console.log(`ngOnInit${this.rowData.length}`);
this.titleService.setTitle('我的工作站');

for (var i = 1; i < 30; i++) {
this.rowData.push({


+ 0
- 2
src/app/routes/passport/login/login.component.html 查看文件

@@ -29,8 +29,6 @@
</div>
</div>



<ng-template #coverTemplate>
<img style="height: 100px;" alt="example" src="assets/bg2.jpg" />
</ng-template>


+ 8
- 3
src/app/routes/passport/login/login.component.less 查看文件

@@ -91,15 +91,20 @@
color: #515151;
vertical-align: middle;
}
}

.color-515151 {
color: #515151;
}
.color-515151 {
color: #515151;
}
}

[data-theme='dark'] {
:host ::ng-deep {
display: block;
width: 538px;
margin: 0 auto;

.icon {
color: rgb(255 255 255 / 20%);



二進制
src/assets/fbx/bb.fbx 查看文件


+ 3
- 1
tsconfig.json 查看文件

@@ -36,7 +36,9 @@
],
"@_mock": [
"_mock/index"
]
],
"three": ["./node_modules/three/src/Three"],
"three/*": ["./node_modules/three/*"]
}
},
"angularCompilerOptions": {


+ 53
- 0
yarn.lock 查看文件

@@ -2277,6 +2277,11 @@
"@tufjs/canonical-json" "2.0.0"
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@*":
version "1.19.5"
resolved "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.5.tgz"
@@ -2509,6 +2514,11 @@
dependencies:
"@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":
version "2.0.22"
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"
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":
version "8.5.10"
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"
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:
version "3.2.0"
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"
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:
version "1.1.2"
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"
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:
version "2.3.8"
resolved "https://registry.npmmirror.com/through/-/through-2.3.8.tgz"


Loading…
取消
儲存