feat: sync screen v2.2 updates

V2.2
M先生 3 days ago
parent d4d3518822
commit ee3d0c95cd
  1. 62
      design-qa.md
  2. 0
      docs/assets/AlibabaPuHuiTi-14435b65-balabala-1785726778446.woff2
  3. 0
      docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1785726778446.ttf
  4. 0
      docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1785726778446.woff
  5. 0
      docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1785726778446.woff2
  6. 1
      docs/assets/FeatureInfoPanel-528fd437-balabala-1785726778446.css
  7. 1
      docs/assets/FeatureInfoPanel-9c9af689-balabala-1784378651390.css
  8. 3
      docs/assets/FeatureInfoPanel-aedbb434-1784378651390.js
  9. 3
      docs/assets/FeatureInfoPanel-e0a0d741-1785726778446.js
  10. 1
      docs/assets/LayerPanel-506c2edc-balabala-1784378651390.css
  11. 1
      docs/assets/LayerPanel-60397a69-balabala-1785726778446.css
  12. 1
      docs/assets/LayerPanel-921f9e3d-1785726778446.js
  13. 1
      docs/assets/LayerPanel-e35ca392-1784378651390.js
  14. 0
      docs/assets/SmartChartRenderer-7a3a96b9-balabala-1785726778446.css
  15. 2
      docs/assets/SmartChartRenderer-d940c77a-1785726778446.js
  16. 4
      docs/assets/TopicSwitcher-0aae51d1-1785726778446.js
  17. 0
      docs/assets/TopicSwitcher-b6474311-balabala-1785726778446.css
  18. 0
      docs/assets/area-b57940eb-balabala-1785726778446.png
  19. 2
      docs/assets/assets-5661f996-1785726778446.js
  20. 1
      docs/assets/balanceApi-994e7f98-1785726778446.js
  21. 0
      docs/assets/bg-3acb94e3-balabala-1785726778446.png
  22. 0
      docs/assets/bottom-menu-arrow-big-180b7071-balabala-1785726778446.svg
  23. 0
      docs/assets/bottom-menu-arrow-small-19304179-balabala-1785726778446.svg
  24. 0
      docs/assets/bottom-menu-bg-b465793d-balabala-1785726778446.png
  25. 0
      docs/assets/bottom-menu-btn-ee5c8064-balabala-1785726778446.png
  26. 0
      docs/assets/bottom-menu-btn-hover-df33e514-balabala-1785726778446.png
  27. 2
      docs/assets/chartTheme-330b271e-1785726778446.js
  28. 0
      docs/assets/chinaBlurLine-1a2cbc0f-balabala-1785726778446.png
  29. 0
      docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1785726778446.svg
  30. 0
      docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1785726778446.svg
  31. 0
      docs/assets/content-middle-line-162bc0d5-balabala-1785726778446.svg
  32. 2
      docs/assets/data-0d4a0513-1785726778446.js
  33. 2
      docs/assets/data-112f1d11-1785726778446.js
  34. 1
      docs/assets/data-56996d99-1785726778446.js
  35. 10540
      docs/assets/data-6350cbbd-1785726778446.js
  36. 1
      docs/assets/data-93a1fea5-1784378651390.js
  37. 1
      docs/assets/data-aa09e6f1-1785726778446.js
  38. 16380
      docs/assets/data-b35fbab4-1784378651390.js
  39. 2
      docs/assets/data-e7a95cad-1785726778446.js
  40. 1
      docs/assets/data-ee410ed3-1784378651390.js
  41. 19041
      docs/assets/familyPastureData-f64283c3-1785726778446.js
  42. 2
      docs/assets/featurePanelLayout-b5234356-1785726778446.js
  43. 0
      docs/assets/flyline6-525edf67-balabala-1785726778446.png
  44. 0
      docs/assets/focus_bg-b6803e2d-balabala-1785726778446.png
  45. 0
      docs/assets/focus_move_bg-cf41417a-balabala-1785726778446.png
  46. 2
      docs/assets/geoserver-d05ee620-1785726778446.js
  47. 0
      docs/assets/header-bg-65b38012-balabala-1785726778446.png
  48. 0
      docs/assets/huiguang-3c5dfda5-balabala-1785726778446.png
  49. 0
      docs/assets/icon1-6f7c222f-balabala-1785726778446.png
  50. 0
      docs/assets/icon2-4f77ccec-balabala-1785726778446.png
  51. 1
      docs/assets/index-02d2dea9-balabala-1785726778446.css
  52. 1
      docs/assets/index-08bb8500-balabala-1784378651390.css
  53. 0
      docs/assets/index-0a7426a0-balabala-1785726778446.css
  54. 0
      docs/assets/index-148a2898-balabala-1785726778446.css
  55. 1
      docs/assets/index-1683923b-balabala-1785726778446.css
  56. 2
      docs/assets/index-1785726778446.js
  57. 2
      docs/assets/index-2044d487-balabala-1785726778446.css
  58. 13
      docs/assets/index-2c5309f9-1785726778446.js
  59. 1
      docs/assets/index-2c5b1158-1784378651390.js
  60. 1
      docs/assets/index-30f157a6-1785726778446.js
  61. 1
      docs/assets/index-343df101-1785726778446.js
  62. 2
      docs/assets/index-3dbe23d2-1785726778446.js
  63. 115
      docs/assets/index-3dc02a03-1785726778446.js
  64. 1
      docs/assets/index-5229e5f6-1784378651390.js
  65. 1
      docs/assets/index-6592e13d-balabala-1784378651390.css
  66. 13
      docs/assets/index-65a7e48b-1784378651390.js
  67. 2
      docs/assets/index-69cc5a72-1785726778446.js
  68. 1
      docs/assets/index-6d729227-balabala-1784378651390.css
  69. 1
      docs/assets/index-70900b52-1785726778446.js
  70. 1
      docs/assets/index-78d8ce18-balabala-1784378651390.css
  71. 2
      docs/assets/index-7b46d381-1785726778446.js
  72. 2
      docs/assets/index-7b548b42-1785726778446.js
  73. 1
      docs/assets/index-81cb110f-1785726778446.js
  74. 1
      docs/assets/index-89dde0cb-1784378651390.js
  75. 0
      docs/assets/index-8d752fbe-balabala-1785726778446.css
  76. 2
      docs/assets/index-ae8926ff-1784378651390.js
  77. 1
      docs/assets/index-b3415e08-balabala-1785726778446.css
  78. 1
      docs/assets/index-b79790b3-balabala-1784378651390.css
  79. 16
      docs/assets/index-bb11a8b6-1784378651390.js
  80. 1
      docs/assets/index-c4c25a3c-balabala-1785726778446.css
  81. 0
      docs/assets/index-c633956d-balabala-1785726778446.css
  82. 1
      docs/assets/index-c9a77e56-balabala-1785726778446.css
  83. 1
      docs/assets/index-cda407a6-balabala-1785726778446.css
  84. 2
      docs/assets/index-cfeb180f-1785726778446.js
  85. 112
      docs/assets/index-d4054a96-1784378651390.js
  86. 2
      docs/assets/index-d7210760-balabala-1785726778446.css
  87. 1
      docs/assets/index-e1ab2b59-balabala-1784378651390.css
  88. 16
      docs/assets/index-e33f4373-1785726778446.js
  89. 20
      docs/assets/index-e5aecffb-1785726778446.js
  90. 1
      docs/assets/index-e6c4062a-balabala-1785726778446.css
  91. 0
      docs/assets/index-e9f36657-1785726778446.js
  92. 2
      docs/assets/index-ed881d9e-1784378651390.js
  93. 1
      docs/assets/index-ee929745-1784378651390.js
  94. 1
      docs/assets/index-f8442b64-balabala-1784378651390.css
  95. 0
      docs/assets/index-fea14f56-balabala-1785726778446.css
  96. 2
      docs/assets/index.esm.min-4f309085-1785726778446.js
  97. 0
      docs/assets/layout-9e63e529-balabala-1785726778446.css
  98. 0
      docs/assets/leaf-7be9efef-balabala-1785726778446.png
  99. 0
      docs/assets/left-kuang-5d6bd1ae-balabala-1785726778446.svg
  100. 0
      docs/assets/live-scene-1-786cdd0a-balabala-1785726778446.png
  101. Some files were not shown because too many files have changed in this diff Show More

@ -663,3 +663,65 @@ final result: passed
- Generated `docs/` build output was cleaned after validation; no release artifact was retained.
final result: passed
## 2026-08-02 Screen 2.0 Requested Interaction And Visual Updates
**Scope**
- Login redesign from the supplied 830 × 712 reference screenshot.
- Township map-label alignment, industry-overview default point layers, ecological engineering-analysis reveal, and pasture boundary weight.
- Runtime: `http://192.168.31.202:4173/`
**Login Visual Comparison**
- Source: `/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-6fff2f37-5438-40b0-aaa8-517b58318a6f.png`
- Implementation: `tmp/login-redesign-830x712.png`
- Combined comparison: `tmp/login-design-qa-comparison.png`
- Viewport/state: 830 × 712 CSS px, DPR 1, empty login form with password initially hidden.
- Removed the version label, login explanatory sentence, and account-allocation note. Conditional Caps Lock and validation messages remain because they are functional feedback rather than remarks.
- No P0, P1, or P2 visual issues were found. The two-zone glass layout is an intentional redesign requested by the user, while retaining the existing cyan dark-screen design language and source background asset.
**Authenticated Runtime Verification**
- Default overview layers: all nine point categories rendered active on first entry; the artificial-grass polygon overlay remains a separate optional layer.
- Engineering analysis: the loading overlay appeared immediately, the map grew from 0 to 5,250 candidate features by page 7, and completed at 9,046 features after the minimum staged duration. Controls were disabled during analysis and restored afterward.
- Pasture boundary: the WMS boundary layer was enabled and visually inspected after reducing stroke width to 0.55 with lighter opacity.
- Map labels: town labels render centered on the current home map. Ranking mode now binds the town name and number inside one label object so they cannot drift independently.
- Login flow: password visibility control worked, the supplied test account authenticated successfully, and routing continued to `#/platform`.
- Browser console: no blocking application errors were observed during the checked flows.
**Build Verification**
- Production build: passed, 923 modules transformed.
- Existing nonblocking notices: Vite Terser option notice, Cesium script/CSS resolution notice, and Dart Sass legacy API deprecation notice.
final result: passed
## 2026-08-03 Map Label Re-centering And Seven-Stage Engineering Analysis
**Scope**
- Corrected the visible township-name and metric labels in both Yak Management map implementations: the 3D trade map and the OpenLayers structure/forecast map.
- Expanded ecological engineering analysis into seven visible analysis phases with progressive map rendering.
- Confirmed the reusable local test-login entry without recording a plaintext password in the repository or QA artifacts.
**Map Label Visual QA**
- Reference: `/var/folders/dh/pf6z830j3w3drsd1k4ncl7br0000gn/T/codex-clipboard-8178eec6-6fc1-4cb3-bff5-8f2cc7fe3927.png`
- Correct matching state: Yak Management → Yak Trade.
- Combined comparison: `tmp/design-qa/yak-trade-map-labels-reference-vs-current.png`.
- The 3D label shell no longer retains the previous `50%` horizontal translation during its reveal animation or later data refreshes.
- Township statistic labels no longer apply a second vertical-centering transform on top of the CSS3D anchor.
- The structure/forecast OpenLayers map now renders township name and stock value as one centered rich-text label sharing the same point anchor.
- No cropped labels, detached values, or independently drifting name/value pairs were found in the final runtime capture.
**Engineering Analysis Runtime QA**
- Seven visible phases render in order: environment initialization, condition validation, base-candidate calculation, historical-project exclusion, spatial overlay, suitable-patch generation, and result validation.
- The panel and central overlay both display the current phase, description, determinate progress, and `x/7` step count.
- Progressive feature batches were observed during phase 6; final output remained 9,046 suitable features from 9,061 base features with 15 exclusions.
- User-visible completion time was approximately 35 seconds in the checked run, exceeding the configured 18-second minimum and eliminating the previous near-instant transition.
**Test Login Persistence**
- The reusable credential is stored in macOS Keychain under the Screen 2.0 test-login service.
- Product-design long-term context stores only the Keychain lookup pointer. No plaintext password is present in source, logs, screenshots, or this QA report.
**Verification**
- Production build passed with Vite; 923 modules transformed.
- The authenticated Yak Trade and Yak Structure states were inspected in the current in-app Browser session.
- Browser console contained no application-level error entries. Existing Cesium image-tile availability messages are nonblocking external imagery notices.
final result: passed

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{g as o,o as s,C as z,x as I,a as i,n as g,c as r,F as k,y as m,f as L,t as b,K as w,j as h}from"./index-1785726778446.js";import{_ as R}from"./index-7b46d381-1785726778446.js";import{b as j}from"./townshipBoundaries-8867fad4-1785726778446.js";const D={key:0,class:"layer-panel-list"},E=["onClick"],$=["onClick"],G={key:0,class:"layer-panel-empty"},J={key:1,class:"layer-panel-legend"},Q=["disabled","title","onClick"],U={class:"legend-name"},W={key:0,class:"legend-check"},X={key:1,class:"layer-panel-empty is-legend"},le={__name:"LayerPanel",props:{topicKey:{type:String,required:!0},modelValue:{type:[String,Array],default:""},legends:{type:Array,default:()=>[]},selectedLegendKey:{type:String,default:""},height:{type:Number,default:0},width:{type:Number,default:248},layers:{type:Array,default:null},overlayLayers:{type:Array,default:()=>[]},overlayKeys:{type:Array,default:()=>[]},legendOnly:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},showLegend:{type:Boolean,default:!0}},emits:["update:modelValue","update:selectedLegendKey","update:overlayKeys"],setup(d,{emit:V}){const t=d,p=V,f=o(()=>Array.isArray(t.layers)?t.layers:j(t.topicKey)),v=o(()=>Array.isArray(t.overlayLayers)?t.overlayLayers:[]),c=o(()=>Array.isArray(t.legends)?t.legends:[]),C=o(()=>Array.isArray(t.modelValue)?t.modelValue.map(String).filter(Boolean):t.modelValue?[String(t.modelValue)]:[]),A=o(()=>Array.isArray(t.overlayKeys)?t.overlayKeys.map(String).filter(Boolean):[]),x=o(()=>c.value.filter(K).length>1),M=o(()=>c.value.length===1),O=o(()=>t.legendOnly?"图例":t.compact?"图层":"图层控制"),T=o(()=>{const l=t.legendOnly?0:f.value.length+v.value.length,e=t.showLegend?Math.ceil(c.value.length/2):0,a=l?l*34+Math.max(0,l-1)*5:30,u=t.showLegend?c.value.length?30+Math.max(28,e*28):28:0,q=t.showLegend?172:108;return Math.max(q,Math.min(430,72+a+u))}),N=o(()=>t.compact?t.height||T.value:t.height?t.height:430);function F(n,l){var e,a;if((a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),t.multiple){const u=new Set(C.value);u.has(l)?u.delete(l):u.add(l),p("update:modelValue",Array.from(u));return}p("update:modelValue",t.modelValue===l?"":l)}function S(n){return C.value.includes(String(n))}function H(n,l){var a,u;(u=(a=n.currentTarget)==null?void 0:a.blur)==null||u.call(a);const e=new Set(A.value);e.has(l)?e.delete(l):e.add(l),p("update:overlayKeys",Array.from(e))}function _(n){return A.value.includes(String(n))}function B(n={}){const l=n.color||n.fillColor||n.strokeColor||"";return l?{"--layer-item-color":l}:null}function P(n,l){var e,a;(a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),y(l)&&p("update:selectedLegendKey",t.selectedLegendKey===l.key?"":l.key)}function K(n){return(n==null?void 0:n.selectable)===!1?!1:!!(n!=null&&n.key&&(n.cqlFilter||n.rankingValueKey))}function y(n){return x.value&&K(n)}return(n,l)=>(s(),z(R,{title:O.value,width:d.width,height:N.value},{default:I(()=>[i("div",{class:g(["layer-panel",{"is-legend-only":d.legendOnly,"is-compact":d.compact,"is-without-legend":!d.showLegend}])},[d.legendOnly?h("",!0):(s(),r("div",D,[(s(!0),r(k,null,m(f.value,e=>(s(),r("button",{key:e.key,class:g(["layer-panel-item",{"is-active":S(e.key),"is-checked":S(e.key)}]),type:"button",onMousedown:l[0]||(l[0]=L(()=>{},["prevent"])),onClick:a=>F(a,e.key)},[i("span",null,b(e.name),1),i("i",{style:w(B(e))},null,4)],42,E))),128)),(s(!0),r(k,null,m(v.value,e=>(s(),r("button",{key:e.key,class:g(["layer-panel-item is-overlay",{"is-active":_(e.key),"is-checked":_(e.key)}]),type:"button",onMousedown:l[1]||(l[1]=L(()=>{},["prevent"])),onClick:a=>H(a,e.key)},[i("span",null,b(e.name),1),i("i",{style:w(B(e))},null,4)],42,$))),128)),!f.value.length&&!v.value.length?(s(),r("div",G,"暂无图层配置")):h("",!0)])),d.showLegend?(s(),r("div",J,[l[3]||(l[3]=i("div",{class:"layer-panel-section-title"},"图例",-1)),c.value.length?(s(),r("div",{key:0,class:g(["layer-panel-legend-grid",{"is-single":M.value}])},[(s(!0),r(k,null,m(c.value,e=>(s(),r("button",{key:e.key||e.name,class:g(["layer-panel-legend-row",{"is-selected":y(e)&&e.key===d.selectedLegendKey,"is-checkable":y(e),"is-disabled":!y(e)}]),type:"button",disabled:!y(e),title:e.name,onMousedown:l[2]||(l[2]=L(()=>{},["prevent"])),onClick:a=>P(a,e)},[i("span",{class:"legend-swatch",style:w({backgroundColor:e.fillColor,borderColor:e.strokeColor||e.fillColor})},null,4),i("span",U,b(e.name),1),y(e)?(s(),r("i",W)):h("",!0)],42,Q))),128))],2)):(s(),r("div",X,"暂无图例"))])):h("",!0)],2)]),_:1},8,["title","width","height"]))}};export{le as _};

@ -1 +0,0 @@
import{g as o,o as s,C as P,x as q,a as i,n as g,c as r,F as k,y as m,f as L,t as b,j as h,K as z}from"./index-1784378651390.js";import{_ as R}from"./index-8193533d-1784378651390.js";import{b as j}from"./townshipBoundaries-a3a8b9c1-1784378651390.js";const D={key:0,class:"layer-panel-list"},E=["onClick"],I=["onClick"],$={key:0,class:"layer-panel-empty"},G={key:1,class:"layer-panel-legend"},J=["disabled","title","onClick"],Q={class:"legend-name"},U={key:0,class:"legend-check"},W={key:1,class:"layer-panel-empty is-legend"},ee={__name:"LayerPanel",props:{topicKey:{type:String,required:!0},modelValue:{type:[String,Array],default:""},legends:{type:Array,default:()=>[]},selectedLegendKey:{type:String,default:""},height:{type:Number,default:0},width:{type:Number,default:248},layers:{type:Array,default:null},overlayLayers:{type:Array,default:()=>[]},overlayKeys:{type:Array,default:()=>[]},legendOnly:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},showLegend:{type:Boolean,default:!0}},emits:["update:modelValue","update:selectedLegendKey","update:overlayKeys"],setup(d,{emit:K}){const t=d,p=K,v=o(()=>Array.isArray(t.layers)?t.layers:j(t.topicKey)),f=o(()=>Array.isArray(t.overlayLayers)?t.overlayLayers:[]),y=o(()=>Array.isArray(t.legends)?t.legends:[]),w=o(()=>Array.isArray(t.modelValue)?t.modelValue.map(String).filter(Boolean):t.modelValue?[String(t.modelValue)]:[]),A=o(()=>Array.isArray(t.overlayKeys)?t.overlayKeys.map(String).filter(Boolean):[]),V=o(()=>y.value.filter(B).length>1),x=o(()=>y.value.length===1),_=o(()=>t.legendOnly?"图例":t.compact?"图层":"图层控制"),M=o(()=>{const l=t.legendOnly?0:v.value.length+f.value.length,e=t.showLegend?Math.ceil(y.value.length/2):0,a=l?l*34+Math.max(0,l-1)*5:30,u=t.showLegend?y.value.length?30+Math.max(28,e*28):28:0,H=t.showLegend?172:108;return Math.max(H,Math.min(430,72+a+u))}),O=o(()=>t.compact?t.height||M.value:t.height?t.height:430);function T(n,l){var e,a;if((a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),t.multiple){const u=new Set(w.value);u.has(l)?u.delete(l):u.add(l),p("update:modelValue",Array.from(u));return}p("update:modelValue",t.modelValue===l?"":l)}function C(n){return w.value.includes(String(n))}function N(n,l){var a,u;(u=(a=n.currentTarget)==null?void 0:a.blur)==null||u.call(a);const e=new Set(A.value);e.has(l)?e.delete(l):e.add(l),p("update:overlayKeys",Array.from(e))}function S(n){return A.value.includes(String(n))}function F(n,l){var e,a;(a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),c(l)&&p("update:selectedLegendKey",t.selectedLegendKey===l.key?"":l.key)}function B(n){return(n==null?void 0:n.selectable)===!1?!1:!!(n!=null&&n.key&&(n.cqlFilter||n.rankingValueKey))}function c(n){return V.value&&B(n)}return(n,l)=>(s(),P(R,{title:_.value,width:d.width,height:O.value},{default:q(()=>[i("div",{class:g(["layer-panel",{"is-legend-only":d.legendOnly,"is-compact":d.compact,"is-without-legend":!d.showLegend}])},[d.legendOnly?h("",!0):(s(),r("div",D,[(s(!0),r(k,null,m(v.value,e=>(s(),r("button",{key:e.key,class:g(["layer-panel-item",{"is-active":C(e.key),"is-checked":C(e.key)}]),type:"button",onMousedown:l[0]||(l[0]=L(()=>{},["prevent"])),onClick:a=>T(a,e.key)},[i("span",null,b(e.name),1),l[3]||(l[3]=i("i",null,null,-1))],42,E))),128)),(s(!0),r(k,null,m(f.value,e=>(s(),r("button",{key:e.key,class:g(["layer-panel-item is-overlay",{"is-active":S(e.key),"is-checked":S(e.key)}]),type:"button",onMousedown:l[1]||(l[1]=L(()=>{},["prevent"])),onClick:a=>N(a,e.key)},[i("span",null,b(e.name),1),l[4]||(l[4]=i("i",null,null,-1))],42,I))),128)),!v.value.length&&!f.value.length?(s(),r("div",$,"暂无图层配置")):h("",!0)])),d.showLegend?(s(),r("div",G,[l[5]||(l[5]=i("div",{class:"layer-panel-section-title"},"图例",-1)),y.value.length?(s(),r("div",{key:0,class:g(["layer-panel-legend-grid",{"is-single":x.value}])},[(s(!0),r(k,null,m(y.value,e=>(s(),r("button",{key:e.key||e.name,class:g(["layer-panel-legend-row",{"is-selected":c(e)&&e.key===d.selectedLegendKey,"is-checkable":c(e),"is-disabled":!c(e)}]),type:"button",disabled:!c(e),title:e.name,onMousedown:l[2]||(l[2]=L(()=>{},["prevent"])),onClick:a=>F(a,e)},[i("span",{class:"legend-swatch",style:z({backgroundColor:e.fillColor,borderColor:e.strokeColor||e.fillColor})},null,4),i("span",Q,b(e.name),1),c(e)?(s(),r("i",U)):h("",!0)],42,J))),128))],2)):(s(),r("div",W,"暂无图例"))])):h("",!0)],2)]),_:1},8,["title","width","height"]))}};export{ee as _};

@ -1,2 +1,2 @@
var D=Object.defineProperty,R=Object.defineProperties;var W=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var L=(a,r,o)=>r in a?D(a,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[r]=o,m=(a,r)=>{for(var o in r||(r={}))H.call(r,o)&&L(a,o,r[o]);if(z)for(var o of z(r))P.call(r,o)&&L(a,o,r[o]);return a},d=(a,r)=>R(a,W(r));import{g as p,q as Z,A as F,M as b,o as g,c as h,a as y,t as x,j as _,b as V,u as q,n as E}from"./index-1784378651390.js";import{H as j}from"./index.esm.min-6b4ee6a0-1784378651390.js";const G={class:"smart-chart-header"},M={key:0},I={key:0},A="口径",Q={__name:"SmartChartRenderer",props:{chart:{type:Object,required:!0}},emits:["ready"],setup(a,{emit:r}){const o=r,i=a,l=["#30dcff","#27f0c0","#ffd76c","#7aa7ff","#ff8f6b","#a6f06d"],k=p(()=>{const t=(i.chart.rows||[]).filter(e=>Number.isFinite(Number(e.value)));return i.chart.type==="pie"?T(t):i.chart.type==="line"?$(t):C(t)}),w=p(()=>{const t=i.chart.rows||[];return i.chart.type==="bar"&&v(t)}),S=p(()=>B(i.chart.subtitle));Z(()=>{F(()=>{window.requestAnimationFrame(()=>o("ready"))})});function C(t){return v(t)?N(t):{animationDuration:700,grid:{left:52,right:26,top:28,bottom:54},tooltip:c(),xAxis:{type:"category",data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisLabel:{color:"rgba(223, 250, 255, 0.76)",fontSize:11,interval:0,rotate:t.length>6?28:0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},series:[{name:i.chart.title,type:"bar",barWidth:t.length>7?16:22,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[8,8,0,0],color:new b(0,0,0,1,[{offset:0,color:l[n%l.length]},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}})),label:{show:!0,position:"top",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function N(t){return{animationDuration:700,grid:{left:78,right:72,top:22,bottom:20},tooltip:d(m({},c()),{trigger:"axis",axisPointer:{type:"shadow"}}),xAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},yAxis:{type:"category",inverse:!0,data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisLabel:{color:"rgba(223, 250, 255, 0.82)",fontSize:12}},series:[{name:i.chart.title,type:"bar",barWidth:13,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[0,8,8,0],color:new b(0,0,1,0,[{offset:0,color:"rgba(48, 220, 255, 0.16)"},{offset:1,color:l[n%l.length]}])}})),label:{show:!0,position:"right",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function T(t){return{animationDuration:700,tooltip:c(),legend:{orient:"vertical",right:10,top:"middle",itemWidth:10,itemHeight:10,textStyle:{color:"rgba(223, 250, 255, 0.78)",fontSize:11}},series:[{name:i.chart.title,type:"pie",radius:["48%","68%"],center:["35%","52%"],avoidLabelOverlap:!0,label:{color:"#fff",fontSize:11,formatter:`{b}
var D=Object.defineProperty,R=Object.defineProperties;var W=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var L=(a,r,o)=>r in a?D(a,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[r]=o,m=(a,r)=>{for(var o in r||(r={}))H.call(r,o)&&L(a,o,r[o]);if(z)for(var o of z(r))P.call(r,o)&&L(a,o,r[o]);return a},d=(a,r)=>R(a,W(r));import{g as p,q as Z,A as F,M as b,o as g,c as h,a as y,t as x,j as _,b as V,u as q,n as E}from"./index-1785726778446.js";import{H as j}from"./index.esm.min-4f309085-1785726778446.js";const G={class:"smart-chart-header"},M={key:0},I={key:0},A="口径",Q={__name:"SmartChartRenderer",props:{chart:{type:Object,required:!0}},emits:["ready"],setup(a,{emit:r}){const o=r,i=a,l=["#30dcff","#27f0c0","#ffd76c","#7aa7ff","#ff8f6b","#a6f06d"],k=p(()=>{const t=(i.chart.rows||[]).filter(e=>Number.isFinite(Number(e.value)));return i.chart.type==="pie"?T(t):i.chart.type==="line"?$(t):C(t)}),w=p(()=>{const t=i.chart.rows||[];return i.chart.type==="bar"&&v(t)}),S=p(()=>B(i.chart.subtitle));Z(()=>{F(()=>{window.requestAnimationFrame(()=>o("ready"))})});function C(t){return v(t)?N(t):{animationDuration:700,grid:{left:52,right:26,top:28,bottom:54},tooltip:c(),xAxis:{type:"category",data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisLabel:{color:"rgba(223, 250, 255, 0.76)",fontSize:11,interval:0,rotate:t.length>6?28:0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},series:[{name:i.chart.title,type:"bar",barWidth:t.length>7?16:22,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[8,8,0,0],color:new b(0,0,0,1,[{offset:0,color:l[n%l.length]},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}})),label:{show:!0,position:"top",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function N(t){return{animationDuration:700,grid:{left:78,right:72,top:22,bottom:20},tooltip:d(m({},c()),{trigger:"axis",axisPointer:{type:"shadow"}}),xAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},yAxis:{type:"category",inverse:!0,data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisLabel:{color:"rgba(223, 250, 255, 0.82)",fontSize:12}},series:[{name:i.chart.title,type:"bar",barWidth:13,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[0,8,8,0],color:new b(0,0,1,0,[{offset:0,color:"rgba(48, 220, 255, 0.16)"},{offset:1,color:l[n%l.length]}])}})),label:{show:!0,position:"right",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function T(t){return{animationDuration:700,tooltip:c(),legend:{orient:"vertical",right:10,top:"middle",itemWidth:10,itemHeight:10,textStyle:{color:"rgba(223, 250, 255, 0.78)",fontSize:11}},series:[{name:i.chart.title,type:"pie",radius:["48%","68%"],center:["35%","52%"],avoidLabelOverlap:!0,label:{color:"#fff",fontSize:11,formatter:`{b}
{d}%`},labelLine:{lineStyle:{color:"rgba(223, 250, 255, 0.42)"}},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:t.map((e,n)=>({name:e.name,value:e.value,itemStyle:{color:l[n%l.length]}}))}]}}function $(t){return{animationDuration:760,grid:{left:52,right:28,top:30,bottom:48},tooltip:d(m({},c()),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(255, 215, 108, 0.52)"}}}),xAxis:{type:"category",boundaryGap:!1,data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisLabel:{color:"rgba(223, 250, 255, 0.76)",fontSize:11,interval:0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},series:[{name:i.chart.title,type:"line",smooth:!0,symbol:"circle",symbolSize:8,lineStyle:{width:3,color:"#30dcff"},itemStyle:{color:"#ffd76c",borderColor:"#041522",borderWidth:2},areaStyle:{color:new b(0,0,0,1,[{offset:0,color:"rgba(48, 220, 255, 0.24)"},{offset:1,color:"rgba(48, 220, 255, 0.02)"}])},label:{show:!0,position:"top",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)},data:t.map(e=>({value:e.value,name:e.name}))}]}}function c(){return{trigger:"item",backgroundColor:"rgba(2, 13, 22, 0.94)",borderColor:"rgba(48, 220, 255, 0.34)",borderWidth:1,textStyle:{color:"#fff",fontSize:12},formatter:t=>{const e=(i.chart.rows||[]).find(s=>s.name===t.name),n=(e==null?void 0:e.unit)||i.chart.unit||"",f=e!=null&&e.extra?`<br/><span style="color:rgba(223,250,255,.62)">${e.extra}</span>`:"";return`${t.marker}${t.name}: ${u(t.value)}${n}${f}`}}}function v(t=[]){return t.length>6||t.some(e=>String(e.name||"").length>4)}function B(t){const e=String(t||"").trim();if(!e||/^(数据)?来源[:]/.test(e)||e.includes("固定展示"))return"";const n=new RegExp(A,"g"),f=new RegExp(`统计${A}`,"g"),s=e.replace(f,"统计数据").replace(n,"数据").replace(/来源[::]\s*openApi\s*统计库\s*[a-zA-Z0-9_./:-]*[,,、]?\s*/gi,"").replace(/openApi\s*统计库\s*/gi,"").replace(/\b[a-zA-Z][a-zA-Z0-9]*(?:_[a-zA-Z0-9]+){2,}\b/g,"").replace(/[,,、]\s*[,,、]+/g,",").replace(/^[\s,,、::]+|[\s,,、]+$/g,"");return!s||/^来源[::]?$/.test(s)||O(s)?"":s}function O(t){return/^[a-zA-Z0-9_./:-]+$/.test(t)&&(t.includes("_")||t.length>24)}function u(t){const e=Number(t);return Number.isFinite(e)?Number.isInteger(e)?e.toLocaleString("zh-CN"):e.toLocaleString("zh-CN",{maximumFractionDigits:2}):"--"}return(t,e)=>(g(),h("div",{class:E(["smart-chart-card",{"is-horizontal":w.value}])},[y("div",G,[y("div",null,[y("strong",null,x(a.chart.title),1),S.value?(g(),h("span",M,x(S.value),1)):_("",!0)]),a.chart.unit?(g(),h("em",I,x(a.chart.unit),1)):_("",!0)]),V(q(j),{class:"smart-chart",option:k.value,autoresize:""},null,8,["option"])],2))}};export{Q as default};

@ -1 +1 @@
var m=Object.defineProperty;var p=Object.getOwnPropertySymbols;var y=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var i=(t,e,a)=>e in t?m(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a,o=(t,e)=>{for(var a in e||(e={}))y.call(e,a)&&i(t,a,e[a]);if(p)for(var a of p(e))T.call(e,a)&&i(t,a,e[a]);return t};import{p as d}from"./screen2Standard-f85af2d3-1784378651390.js";import{R as x,b as u,d as g,p as l,h as f,r as L,a as A,g as B,e as N,c as M,o as O,s as _,f as H,i as S,j as w,k as C,l as F,m as P,n as E}from"./TopicSwitcher-c2a18053-1784378651390.js";import{g as n,a as h,H as q,C as G}from"./index-ae8926ff-1784378651390.js";const s=new Map;class b{constructor(e={}){this.options=o({includeChinaMap:!1},e),this.ready=null,this.init()}init(){const e=this.getSharedKey(),a=R(e,()=>this.createAssetList());this.instance=a.instance,this.ready=a.ready}getSharedKey(){return this.options.includeChinaMap?"hongyuan-map-with-china":"hongyuan-map"}createAssetList(){let e=[{type:"Texture",name:"flyline",path:u},{type:"Texture",name:"pathLine",path:u},{type:"Texture",name:"pathLine2",path:g},{type:"Texture",name:"pathLine3",path:l},{type:"File",name:"china",path:n(h)},{type:"File",name:"mapJson",path:n(q)},{type:"File",name:"mapStroke",path:n(h)},{type:"Texture",name:"huiguang",path:f},{type:"Texture",name:"rotationBorder1",path:L},{type:"Texture",name:"rotationBorder2",path:A},{type:"Texture",name:"guangquan1",path:B},{type:"Texture",name:"guangquan2",path:N},{type:"Texture",name:"chinaBlurLine",path:M},{type:"Texture",name:"ocean",path:O},{type:"Texture",name:"side",path:_},{type:"Texture",name:"arrow",path:H},{type:"Texture",name:"point",path:S},{type:"Texture",name:"focusArrows",path:w},{type:"Texture",name:"focusBar",path:C},{type:"Texture",name:"focusBg",path:F},{type:"Texture",name:"focusMidQuan",path:P},{type:"Texture",name:"focusMoveBg",path:E}];return this.options.includeChinaMap&&e.push({type:"File",name:"chinaMap",path:n(G)}),e}}function R(t,e){if(s.has(t))return s.get(t);const a=new x({cloneTextures:!0});a.addLoader(d,"FileLoader");const c=a.loadAll(e()),r={instance:a,ready:c};return s.set(t,r),r}export{b as A};
var m=Object.defineProperty;var p=Object.getOwnPropertySymbols;var y=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var i=(t,e,a)=>e in t?m(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a,o=(t,e)=>{for(var a in e||(e={}))y.call(e,a)&&i(t,a,e[a]);if(p)for(var a of p(e))T.call(e,a)&&i(t,a,e[a]);return t};import{p as d}from"./screen2Standard-f38b9a2d-1785726778446.js";import{R as x,b as u,d as g,p as l,h as f,r as L,a as A,g as B,e as N,c as M,o as O,s as _,f as H,i as S,j as w,k as C,l as F,m as P,n as E}from"./TopicSwitcher-0aae51d1-1785726778446.js";import{g as n,a as h,H as q,C as G}from"./index-7b548b42-1785726778446.js";const s=new Map;class b{constructor(e={}){this.options=o({includeChinaMap:!1},e),this.ready=null,this.init()}init(){const e=this.getSharedKey(),a=R(e,()=>this.createAssetList());this.instance=a.instance,this.ready=a.ready}getSharedKey(){return this.options.includeChinaMap?"hongyuan-map-with-china":"hongyuan-map"}createAssetList(){let e=[{type:"Texture",name:"flyline",path:u},{type:"Texture",name:"pathLine",path:u},{type:"Texture",name:"pathLine2",path:g},{type:"Texture",name:"pathLine3",path:l},{type:"File",name:"china",path:n(h)},{type:"File",name:"mapJson",path:n(q)},{type:"File",name:"mapStroke",path:n(h)},{type:"Texture",name:"huiguang",path:f},{type:"Texture",name:"rotationBorder1",path:L},{type:"Texture",name:"rotationBorder2",path:A},{type:"Texture",name:"guangquan1",path:B},{type:"Texture",name:"guangquan2",path:N},{type:"Texture",name:"chinaBlurLine",path:M},{type:"Texture",name:"ocean",path:O},{type:"Texture",name:"side",path:_},{type:"Texture",name:"arrow",path:H},{type:"Texture",name:"point",path:S},{type:"Texture",name:"focusArrows",path:w},{type:"Texture",name:"focusBar",path:C},{type:"Texture",name:"focusBg",path:F},{type:"Texture",name:"focusMidQuan",path:P},{type:"Texture",name:"focusMoveBg",path:E}];return this.options.includeChinaMap&&e.push({type:"File",name:"chinaMap",path:n(G)}),e}}function R(t,e){if(s.has(t))return s.get(t);const a=new x({cloneTextures:!0});a.addLoader(d,"FileLoader");const c=a.loadAll(e()),r={instance:a,ready:c};return s.set(t,r),r}export{b as A};

@ -0,0 +1 @@
var u=(r,t,e)=>new Promise((i,c)=>{var a=n=>{try{s(e.next(n))}catch(f){c(f)}},A=n=>{try{s(e.throw(n))}catch(f){c(f)}},s=n=>n.done?i(n.value):Promise.resolve(n.value).then(a,A);s((e=e.apply(r,t)).next())});import{r as g,n as w}from"./index-e33f4373-1785726778446.js";const l=b("/jsyApi"),y="/openApi";function v(r,t){return/^https?:\/\//.test(t)?t:`${r}${t.startsWith("/")?t:`/${t}`}`}function b(r){const t=String(r||"/jsyApi").replace(/\/+$/,"");return t.endsWith("/api")?t:`${t}/api`}function h(r){if((r==null?void 0:r.success)===!1||(r==null?void 0:r.code)!==void 0&&![0,200,"0","200"].includes(r.code)){const e=new Error((r==null?void 0:r.msg)||(r==null?void 0:r.message)||"接口请求失败");throw e.code=r==null?void 0:r.code,e}return w(r)}function o(r,t,e,i={}){return g(v(r,t),{params:e,timeout:i.timeout||16e3}).then(h)}function m(r){return Array.isArray(r)?r:Array.isArray(r==null?void 0:r.rows)?r.rows:Array.isArray(r==null?void 0:r.list)?r.list:Array.isArray(r==null?void 0:r.data)?r.data:[]}function _(r){return Array.isArray(r)?r.length>0:!r||typeof r!="object"?r!=null&&r!=="":["areaRange","area_range","acreage","grasslandArea","grassland_area","arearange","area","yakNumber","yak_number","yaknumber","number","yakCount","yak_count","livestockCount","livestock_count","bearingCapacity","bearing_capacity","bearingcapacity","capacity","theoryCapacity","livestockCapacity","livestock_capacity","livestockcapacity","carryingCapacity","actualCapacity","overloadRate","overload_rate","overloadrate","rate","level","conclusion","advice","balanceAdvice","balance_advice"].some(e=>r[e]!==void 0&&r[e]!==null&&r[e]!=="")}function R(){return u(this,arguments,function*({areaCode:r}={}){const t={areaCode:r},e=[()=>o(l,"/ai/livestockBalance",t,{timeout:18e3}),()=>o(y,"/ai/balance/advice",t,{timeout:18e3})];let i;for(const c of e)try{const a=yield c();if(_(a))return a}catch(a){i=a}throw i||new Error("草畜平衡接口不可用")})}function B(){return u(this,null,function*(){const r=[()=>o(l,"/ai/livestockBalanceRows",{},{timeout:18e3}),()=>o(y,"/ai/balance/areaRows",{},{timeout:18e3})];let t;for(const e of r)try{const i=m(yield e());if(i.length)return i}catch(i){t=i}if(t)throw t;return[]})}function C(r){return u(this,null,function*(){const t=[()=>o(l,"/area/children",{areaCode:r},{timeout:12e3}),()=>o(l,"/map/areaCode",{areaCode:r},{timeout:12e3})];let e,i=!1;for(const c of t)try{const a=m(yield c());if(a.length)return a;i=!0}catch(a){e=a}if(i)return[];throw e||new Error("区划接口不可用")})}export{C as a,R as b,B as g};

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +1 @@
var i=Math.pow;import{g as W,d as m,t as b,s as M,h as c,e as A}from"./livestockData-36ec0ae2-1784378651390.js";import{c as T}from"./data-ee410ed3-1784378651390.js";const e=(a,n=2)=>{const t=i(10,n);return Math.round((Number(a)||0)*t)/t},g=(a,n)=>a.reduce((t,u)=>t+(Number(u[n])||0),0),k=a=>e((Number(a)||0)/1e4,2),x=g(b,"value"),S=g(m,"yakCount"),d=A,o=e(c.grasslandArea/1e4,2),l=e(c.wetArea/1e4,2),r=177.92,P=e(o+l+r,2),N=e(d/Math.max(o,1),1),v=e(l/Math.max(P,1)*100,1),w=637.07,s=108.84,R=297.29,y=159.33,C=e(o+l,2),Y=e((R+s)*2e3/Math.max(C,1),2),I=[{key:"pasture-area",zh:"草场面积",name:"草场面积",value:C,unit:"万亩",decimals:2,icon:"area"},{key:"pasture-productivity",zh:"草场生产力",name:"草场生产力",value:Y,unit:"斤/亩",decimals:2,icon:"yield"},{key:"yak-stock",zh:"牦牛存栏",name:"牦牛存栏",value:d,unit:"头",decimals:0,icon:"stack"},{key:"today-outflow",zh:"今日出栏",name:"今日出栏",value:0,unit:"头",decimals:0,icon:"length"},{key:"county-overload-rate",zh:"超载率",name:"超载率",value:T.overloadRate,unit:"%",decimals:2,icon:"rate"}],j=[{key:"grassland",name:"草地面积",value:o,unit:"万亩",tone:"green"},{key:"wetland",name:"湿地面积",value:l,unit:"万亩",tone:"cyan"},{key:"woodland",name:"林地面积",value:r,unit:"万亩",tone:"mint"},{key:"yak-density",name:"草畜密度",value:N,unit:"头/万亩",tone:"gold"}],D=[{key:"grassland",name:"草地",value:o,unit:"万亩",color:"#24f6c4"},{key:"wetland",name:"湿地",value:l,unit:"万亩",color:"#32dcff"},{key:"woodland",name:"林地",value:r,unit:"万亩",color:"#8bf7ff"}],J=[{key:"basic-grassland",name:"基本草原",value:w,unit:"万亩",percent:e(w/Math.max(o,1)*100,1),note:"草地保护底盘"},{key:"wetland-yield",name:"湿地生产力",value:s,unit:"万吨",percent:e(s/Math.max(R+s,1)*100,1),note:"鲜草产能"},{key:"public-woodland",name:"公益林面积",value:y,unit:"万亩",percent:e(y/Math.max(r,1)*100,1),note:"林地保护占比"},{key:"wetland-rate",name:"湿地占比",value:v,unit:"%",percent:v,note:"林草湿结构"}],L=W.map(a=>{const n=m.find(z=>z.zoneName===a.zoneName)||{},t=k(a.grasslandArea),u=k(a.wetArea);return{key:a.zoneName,name:a.zoneName,grasslandArea:t,wetlandArea:u,yakCount:n.yakCount||0,resourceTotal:e(t+u,2),density:e((n.yakCount||0)/Math.max(t+u,1),1)}}).sort((a,n)=>n.yakCount-a.yakCount),O=m.map(a=>({key:a.zoneName,name:a.zoneName,value:a.yakCount,unit:"头",percent:e(a.yakCount/Math.max(S,1)*100,1)})).sort((a,n)=>n.value-a.value),p=b.map(a=>({key:a.label,name:a.label,value:a.value,unit:"头",yoy:a.yoy,percent:e(a.value/Math.max(x,1)*100,1)})),B=Math.max(...M.map(a=>Number(a.value)||0),1),V=M.map(a=>{const n=a.name.includes("储备")||a.name.includes("加工")?`${Number(a.capacity||0).toLocaleString("zh-CN")}`:"已接入";return{key:a.name,name:a.name,value:a.value,unit:a.unit,capacity:a.capacity,capacityNote:n,percent:e((Number(a.value)||0)/B*100,1)}});var f,h;const $=[{key:"flow-grassland",module:"林草湿",name:"草地面积分布完成乡镇归集",value:o,unit:"万亩",trend:"+0.8%"},{key:"flow-wetland",module:"林草湿",name:"湿地生产力指标进入总览",value:s,unit:"万吨",trend:"+1.2%"},{key:"flow-woodland",module:"林草湿",name:"公益林保护面积同步",value:y,unit:"万亩",trend:"89.6%"},{key:"flow-yak-town",module:"牦牛",name:"畜群结构总量同步",value:d,unit:"头",trend:"+2.4%"},{key:"flow-yak-density",module:"草畜",name:"草畜密度联动核算",value:N,unit:"头/万亩",trend:"联动"},{key:"flow-trade-1",module:"交易",name:"屠宰出栏流通记录入库",value:((f=p[0])==null?void 0:f.value)||0,unit:"头",trend:"+6%"},{key:"flow-trade-2",module:"交易",name:"活畜交易影响扣减存栏",value:((h=p[1])==null?void 0:h.value)||0,unit:"头",trend:"-3%"},{key:"flow-industry",module:"产业",name:"饲草储备与加工主体纳入画像",value:c.baseCount+c.projectCount,unit:"个",trend:"在线"}],q=[{key:"grassland",label:"草地",value:o,unit:"万亩",x:50,y:15,color:"#24f6c4"},{key:"wetland",label:"湿地",value:l,unit:"万亩",x:83,y:48,color:"#32dcff"},{key:"trade",label:"交易",value:x,unit:"头",x:68,y:72,color:"#8bf7ff"},{key:"yak",label:"牦牛",value:d,unit:"头",x:24,y:74,color:"#24f6c4"},{key:"woodland",label:"林地",value:r,unit:"万亩",x:16,y:35,color:"#8bf7ff"}];export{j as a,J as b,p as c,$ as d,q as e,I as h,D as r,V as s,L as t,O as y};
var i=Math.pow;import{g as W,d as m,t as b,s as M,h as c,e as A}from"./livestockData-36ec0ae2-1785726778446.js";import{c as T}from"./data-56996d99-1785726778446.js";const e=(a,n=2)=>{const t=i(10,n);return Math.round((Number(a)||0)*t)/t},g=(a,n)=>a.reduce((t,u)=>t+(Number(u[n])||0),0),k=a=>e((Number(a)||0)/1e4,2),x=g(b,"value"),S=g(m,"yakCount"),d=A,o=e(c.grasslandArea/1e4,2),l=e(c.wetArea/1e4,2),r=177.92,P=e(o+l+r,2),N=e(d/Math.max(o,1),1),v=e(l/Math.max(P,1)*100,1),w=637.07,s=108.84,R=297.29,y=159.33,C=e(o+l,2),Y=e((R+s)*2e3/Math.max(C,1),2),I=[{key:"pasture-area",zh:"草场面积",name:"草场面积",value:C,unit:"万亩",decimals:2,icon:"area"},{key:"pasture-productivity",zh:"草场生产力",name:"草场生产力",value:Y,unit:"斤/亩",decimals:2,icon:"yield"},{key:"yak-stock",zh:"牦牛存栏",name:"牦牛存栏",value:d,unit:"头",decimals:0,icon:"stack"},{key:"today-outflow",zh:"今日出栏",name:"今日出栏",value:0,unit:"头",decimals:0,icon:"length"},{key:"county-overload-rate",zh:"超载率",name:"超载率",value:T.overloadRate,unit:"%",decimals:2,icon:"rate"}],j=[{key:"grassland",name:"草地面积",value:o,unit:"万亩",tone:"green"},{key:"wetland",name:"湿地面积",value:l,unit:"万亩",tone:"cyan"},{key:"woodland",name:"林地面积",value:r,unit:"万亩",tone:"mint"},{key:"yak-density",name:"草畜密度",value:N,unit:"头/万亩",tone:"gold"}],D=[{key:"grassland",name:"草地",value:o,unit:"万亩",color:"#24f6c4"},{key:"wetland",name:"湿地",value:l,unit:"万亩",color:"#32dcff"},{key:"woodland",name:"林地",value:r,unit:"万亩",color:"#8bf7ff"}],J=[{key:"basic-grassland",name:"基本草原",value:w,unit:"万亩",percent:e(w/Math.max(o,1)*100,1),note:"草地保护底盘"},{key:"wetland-yield",name:"湿地生产力",value:s,unit:"万吨",percent:e(s/Math.max(R+s,1)*100,1),note:"鲜草产能"},{key:"public-woodland",name:"公益林面积",value:y,unit:"万亩",percent:e(y/Math.max(r,1)*100,1),note:"林地保护占比"},{key:"wetland-rate",name:"湿地占比",value:v,unit:"%",percent:v,note:"林草湿结构"}],L=W.map(a=>{const n=m.find(z=>z.zoneName===a.zoneName)||{},t=k(a.grasslandArea),u=k(a.wetArea);return{key:a.zoneName,name:a.zoneName,grasslandArea:t,wetlandArea:u,yakCount:n.yakCount||0,resourceTotal:e(t+u,2),density:e((n.yakCount||0)/Math.max(t+u,1),1)}}).sort((a,n)=>n.yakCount-a.yakCount),O=m.map(a=>({key:a.zoneName,name:a.zoneName,value:a.yakCount,unit:"头",percent:e(a.yakCount/Math.max(S,1)*100,1)})).sort((a,n)=>n.value-a.value),p=b.map(a=>({key:a.label,name:a.label,value:a.value,unit:"头",yoy:a.yoy,percent:e(a.value/Math.max(x,1)*100,1)})),B=Math.max(...M.map(a=>Number(a.value)||0),1),V=M.map(a=>{const n=a.name.includes("储备")||a.name.includes("加工")?`${Number(a.capacity||0).toLocaleString("zh-CN")}`:"已接入";return{key:a.name,name:a.name,value:a.value,unit:a.unit,capacity:a.capacity,capacityNote:n,percent:e((Number(a.value)||0)/B*100,1)}});var f,h;const $=[{key:"flow-grassland",module:"林草湿",name:"草地面积分布完成乡镇归集",value:o,unit:"万亩",trend:"+0.8%"},{key:"flow-wetland",module:"林草湿",name:"湿地生产力指标进入总览",value:s,unit:"万吨",trend:"+1.2%"},{key:"flow-woodland",module:"林草湿",name:"公益林保护面积同步",value:y,unit:"万亩",trend:"89.6%"},{key:"flow-yak-town",module:"牦牛",name:"畜群结构总量同步",value:d,unit:"头",trend:"+2.4%"},{key:"flow-yak-density",module:"草畜",name:"草畜密度联动核算",value:N,unit:"头/万亩",trend:"联动"},{key:"flow-trade-1",module:"交易",name:"屠宰出栏流通记录入库",value:((f=p[0])==null?void 0:f.value)||0,unit:"头",trend:"+6%"},{key:"flow-trade-2",module:"交易",name:"活畜交易影响扣减存栏",value:((h=p[1])==null?void 0:h.value)||0,unit:"头",trend:"-3%"},{key:"flow-industry",module:"产业",name:"饲草储备与加工主体纳入画像",value:c.baseCount+c.projectCount,unit:"个",trend:"在线"}],q=[{key:"grassland",label:"草地",value:o,unit:"万亩",x:50,y:15,color:"#24f6c4"},{key:"wetland",label:"湿地",value:l,unit:"万亩",x:83,y:48,color:"#32dcff"},{key:"trade",label:"交易",value:x,unit:"头",x:68,y:72,color:"#8bf7ff"},{key:"yak",label:"牦牛",value:d,unit:"头",x:24,y:74,color:"#24f6c4"},{key:"woodland",label:"林地",value:r,unit:"万亩",x:16,y:35,color:"#8bf7ff"}];export{j as a,J as b,p as c,$ as d,q as e,I as h,D as r,V as s,L as t,O as y};

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

@ -1 +1 @@
var m=(e,t,r)=>new Promise((s,u)=>{var a=i=>{try{c(r.next(i))}catch(l){u(l)}},n=i=>{try{c(r.throw(i))}catch(l){u(l)}},c=i=>i.done?s(i.value):Promise.resolve(i.value).then(a,n);c((r=r.apply(e,t)).next())});import{H as f,W as S}from"./townshipBoundaries-a3a8b9c1-1784378651390.js";import{r as E}from"./index-bb11a8b6-1784378651390.js";const d="/geoserver/ne/wms",_={}.VITE_GEOSERVER_WFS_URL||d.replace(/\/wms$/i,"/wfs"),h={}.VITE_GEOSERVER_WMTS_URL||"/geoserver/gwc/service/wmts";function o(e,t){const r=new URLSearchParams;return Object.entries(t).forEach(([s,u])=>{u!=null&&u!==""&&r.append(s,u)}),`${e}${e.includes("?")?"&":"?"}${r.toString()}`}function y(e,t={}){const r=t.bounds||f,s=t.size||S;return o(t.url||d,{service:"WMS",version:"1.1.1",request:"GetMap",layers:e.layerName,styles:e.styles||"",format:"image/png",transparent:!0,tiled:!0,srs:"EPSG:4326",bbox:[r.west,r.south,r.east,r.north].join(","),width:s.width,height:s.height,CQL_FILTER:t.cqlFilter||e.cqlFilter,SLD_BODY:t.sldBody||e.sldBody,_:Date.now()})}function W(e,t={}){var a,n,c,i,l;const r=e.tileMatrixSetID||e.tileMatrixSet||"EPSG:900913",s=Number((i=(c=(n=(a=t.z)!=null?a:t.zoom)!=null?n:e.wmtsZoom)!=null?c:e.homeWmtsZoom)!=null?i:0),u=t.tileMatrix||((l=e.tileMatrixLabels)==null?void 0:l[s])||`${r}:${s}`;return o(t.url||e.url||h,{service:"WMTS",version:"1.0.0",request:"GetTile",layer:e.layerName,style:e.style||e.styles||"",format:e.format||"image/png",tileMatrixSet:r,tileMatrix:u,tileRow:t.y,tileCol:t.x})}function F(e,t,r={}){var a,n;const s=r.bounds||f,u=r.size||S;return o(r.url||d,{service:"WMS",version:"1.1.1",request:"GetFeatureInfo",layers:e.layerName,query_layers:e.layerName,styles:e.styles||"",info_format:"application/json",feature_count:5,srs:"EPSG:4326",bbox:[s.west,s.south,s.east,s.north].join(","),width:u.width,height:u.height,x:Math.round(t.x),y:Math.round(t.y),buffer:(n=(a=r.buffer)!=null?a:e.queryBuffer)!=null?n:8,CQL_FILTER:r.cqlFilter||e.cqlFilter,SLD_BODY:r.sldBody||e.sldBody})}function g(s,u){return m(this,arguments,function*(e,t,r={}){const a=F(e,t,r);return E(a,{credentials:"include"})})}function R(e,t={}){return o(t.url||_,{service:"WFS",version:t.version||"1.0.0",request:"GetFeature",typeName:e,outputFormat:"json",propertyName:Array.isArray(t.propertyName)?t.propertyName.join(","):t.propertyName,CQL_FILTER:t.cqlFilter,maxFeatures:t.maxFeatures||2e5})}function w(r){return m(this,arguments,function*(e,t={}){const s=R(e,t);return E(s,{credentials:"include",timeout:t.timeout||2e4})})}export{g as a,y as b,W as c,w as g};
var m=(e,t,r)=>new Promise((s,u)=>{var a=i=>{try{c(r.next(i))}catch(l){u(l)}},n=i=>{try{c(r.throw(i))}catch(l){u(l)}},c=i=>i.done?s(i.value):Promise.resolve(i.value).then(a,n);c((r=r.apply(e,t)).next())});import{H as f,W as S}from"./townshipBoundaries-8867fad4-1785726778446.js";import{r as E}from"./index-e33f4373-1785726778446.js";const d="/geoserver/ne/wms",_={}.VITE_GEOSERVER_WFS_URL||d.replace(/\/wms$/i,"/wfs"),h={}.VITE_GEOSERVER_WMTS_URL||"/geoserver/gwc/service/wmts";function o(e,t){const r=new URLSearchParams;return Object.entries(t).forEach(([s,u])=>{u!=null&&u!==""&&r.append(s,u)}),`${e}${e.includes("?")?"&":"?"}${r.toString()}`}function y(e,t={}){const r=t.bounds||f,s=t.size||S;return o(t.url||d,{service:"WMS",version:"1.1.1",request:"GetMap",layers:e.layerName,styles:e.styles||"",format:"image/png",transparent:!0,tiled:!0,srs:"EPSG:4326",bbox:[r.west,r.south,r.east,r.north].join(","),width:s.width,height:s.height,CQL_FILTER:t.cqlFilter||e.cqlFilter,SLD_BODY:t.sldBody||e.sldBody,_:Date.now()})}function W(e,t={}){var a,n,c,i,l;const r=e.tileMatrixSetID||e.tileMatrixSet||"EPSG:900913",s=Number((i=(c=(n=(a=t.z)!=null?a:t.zoom)!=null?n:e.wmtsZoom)!=null?c:e.homeWmtsZoom)!=null?i:0),u=t.tileMatrix||((l=e.tileMatrixLabels)==null?void 0:l[s])||`${r}:${s}`;return o(t.url||e.url||h,{service:"WMTS",version:"1.0.0",request:"GetTile",layer:e.layerName,style:e.style||e.styles||"",format:e.format||"image/png",tileMatrixSet:r,tileMatrix:u,tileRow:t.y,tileCol:t.x})}function F(e,t,r={}){var a,n;const s=r.bounds||f,u=r.size||S;return o(r.url||d,{service:"WMS",version:"1.1.1",request:"GetFeatureInfo",layers:e.layerName,query_layers:e.layerName,styles:e.styles||"",info_format:"application/json",feature_count:5,srs:"EPSG:4326",bbox:[s.west,s.south,s.east,s.north].join(","),width:u.width,height:u.height,x:Math.round(t.x),y:Math.round(t.y),buffer:(n=(a=r.buffer)!=null?a:e.queryBuffer)!=null?n:8,CQL_FILTER:r.cqlFilter||e.cqlFilter,SLD_BODY:r.sldBody||e.sldBody})}function g(s,u){return m(this,arguments,function*(e,t,r={}){const a=F(e,t,r);return E(a,{credentials:"include"})})}function R(e,t={}){return o(t.url||_,{service:"WFS",version:t.version||"1.0.0",request:"GetFeature",typeName:e,outputFormat:"json",propertyName:Array.isArray(t.propertyName)?t.propertyName.join(","):t.propertyName,CQL_FILTER:t.cqlFilter,maxFeatures:t.maxFeatures||2e5})}function w(r){return m(this,arguments,function*(e,t={}){const s=R(e,t);return E(s,{credentials:"include",timeout:t.timeout||2e4})})}export{g as a,y as b,W as c,w as g};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
var y=(_,v,i)=>new Promise((r,n)=>{var l=t=>{try{o(i.next(t))}catch(p){n(p)}},d=t=>{try{o(i.throw(t))}catch(p){n(p)}},o=t=>t.done?r(t.value):Promise.resolve(t.value).then(l,d);o((i=i.apply(_,v)).next())});import{_ as S,l as V,m as C,g as M,o as f,c as g,a as s,B as w,f as L,s as h,H as D,I,t as m,j as k,d as u,J as N}from"./index-1785726778446.js";const R={class:"login-screen"},U={class:"login-shell"},q={class:"login-field"},E={class:"login-field login-password-field"},K={class:"login-password-control"},T=["type"],$=["aria-label","aria-pressed"],j={key:0,class:"login-field-assist","aria-live":"polite"},F={key:1,class:"login-error",role:"alert"},H=["disabled"],J={__name:"index",setup(_){const v=V(),i=C(),r=u(""),n=u(""),l=u(!1),d=u(!1),o=u(!1),t=u(""),p=M(()=>{const a=typeof v.query.redirect=="string"?decodeURIComponent(v.query.redirect):"/platform";return a.startsWith("/login")?"/platform":a||"/platform"});function x(){return y(this,null,function*(){if(t.value="",!r.value||!n.value){t.value="请输入账号和密码。";return}o.value=!0;try{yield N(r.value,n.value),i.replace(p.value)}catch(a){t.value=B(a)}finally{o.value=!1}})}function b(a){var e;d.value=!!((e=a==null?void 0:a.getModifierState)!=null&&e.call(a,"CapsLock"))}function B(a){const e=String((a==null?void 0:a.message)||"").trim();return/401|403|账号|密码|unauthor/i.test(e)?"账号或密码不正确,请核对后重试。":/network|fetch|timeout|连接|服务|502|503|504/i.test(e)?"登录服务暂时无法连接,请稍后重试。":"暂时无法登录,请稍后重试。"}return(a,e)=>(f(),g("div",R,[s("div",U,[e[8]||(e[8]=s("section",{class:"login-brand","aria-label":"红原县数字畜牧业监管平台"},[s("div",{class:"login-brand-rule","aria-hidden":"true"},[s("i"),s("span"),s("i")]),s("h1",null,[w("红原县数字畜牧业"),s("br"),w("监管平台")]),s("div",{class:"login-brand-glow","aria-hidden":"true"})],-1)),s("form",{class:"login-panel","aria-label":"平台用户登录",onSubmit:L(x,["prevent"])},[e[7]||(e[7]=s("header",{class:"login-panel-head"},[s("div",{class:"login-panel-title"},"用户登录"),s("span",{"aria-hidden":"true"})],-1)),s("label",q,[e[4]||(e[4]=s("span",null,"账号",-1)),h(s("input",{"onUpdate:modelValue":e[0]||(e[0]=c=>r.value=c),autocomplete:"username",autofocus:"",placeholder:"请输入平台账号"},null,512),[[D,r.value,void 0,{trim:!0}]])]),s("label",E,[e[5]||(e[5]=s("span",null,"密码",-1)),s("span",K,[h(s("input",{"onUpdate:modelValue":e[1]||(e[1]=c=>n.value=c),autocomplete:"current-password",placeholder:"请输入密码",type:l.value?"text":"password",onKeydown:b,onKeyup:b,onBlur:e[2]||(e[2]=c=>d.value=!1)},null,40,T),[[I,n.value]]),s("button",{class:"login-password-toggle",type:"button","aria-label":l.value?"隐藏密码":"显示密码","aria-pressed":l.value,onClick:e[3]||(e[3]=c=>l.value=!l.value)},m(l.value?"隐藏":"显示"),9,$)])]),d.value?(f(),g("div",j,[...e[6]||(e[6]=[s("span",{class:"login-caps-lock"},"大写锁定已开启",-1)])])):k("",!0),t.value?(f(),g("div",F,m(t.value),1)):k("",!0),s("button",{class:"login-submit",disabled:o.value,type:"submit"},m(o.value?"登录中":"登录"),9,H)],32)])]))}},W=S(J,[["__scopeId","data-v-b11615f4"]]);export{W as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
.cesium-map[data-v-b250583c]{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#020b12}.cesium-map__viewer[data-v-b250583c],.cesium-map__viewer[data-v-b250583c] .cesium-viewer,.cesium-map__viewer[data-v-b250583c] .cesium-viewer-cesiumWidgetContainer,.cesium-map__viewer[data-v-b250583c] .cesium-widget,.cesium-map__viewer[data-v-b250583c] canvas{width:100%;height:100%}.cesium-map__viewer[data-v-b250583c] canvas{display:block;outline:none}.cesium-map__viewer[data-v-b250583c] .cesium-viewer-bottom,.cesium-map__viewer[data-v-b250583c] .cesium-widget-credits{display:none!important}

@ -1,4 +1,4 @@
import{g as p,q as g,P as y,o as r,c as n,a as i,z as c,t as x,r as h,j as $,K as u,d as w}from"./index-1784378651390.js";const F=""+new URL("title-zs1-c15a5ee8-balabala-1784378651390.svg",import.meta.url).href,v=""+new URL("saoguang-ccf84a88-balabala-1784378651390.svg",import.meta.url).href,b=""+new URL("content-bottom-left-arrow-3a8a61f3-balabala-1784378651390.svg",import.meta.url).href,V=""+new URL("content-bottom-right-arrow-a3c5270d-balabala-1784378651390.svg",import.meta.url).href,f=""+new URL("content-middle-line-162bc0d5-balabala-1784378651390.svg",import.meta.url).href;const L={class:"m-card-hd"},H={class:"m-card-hd-bg"},U=["width","viewBox"],B=["clip-path"],E=["width"],M=["id"],S=["d"],Z=["d","fill"],G=["d","fill","mask"],C=["clip-path"],k=["x1"],D=["id","x1"],O=["id"],T=["id"],N=["width"],R=["id"],z={class:"m-card-hd-title"},A={key:0,class:"m-card-hd-extra"},P=["width","height","viewBox"],I=["opacity"],j=["d","fill"],q=["d"],K={class:"m-card-bd-content"},J={__name:"index",props:{width:{type:Number,default:398},height:{type:Number,default:200},title:{type:String,default:"标题"},bodyFill:{type:String,default:"rgba(26, 57, 77, 1)"},bodyOpacity:{type:Number,default:.6}},setup(e){const s=e,a=w(1),_=p(()=>{let l=s.width;return`M165 0.5
import{g as p,q as g,P as y,o as r,c as n,a as i,z as c,t as x,r as h,j as $,K as u,d as w}from"./index-1785726778446.js";const F=""+new URL("title-zs1-c15a5ee8-balabala-1785726778446.svg",import.meta.url).href,v=""+new URL("saoguang-ccf84a88-balabala-1785726778446.svg",import.meta.url).href,b=""+new URL("content-bottom-left-arrow-3a8a61f3-balabala-1785726778446.svg",import.meta.url).href,V=""+new URL("content-bottom-right-arrow-a3c5270d-balabala-1785726778446.svg",import.meta.url).href,f=""+new URL("content-middle-line-162bc0d5-balabala-1785726778446.svg",import.meta.url).href;const L={class:"m-card-hd"},H={class:"m-card-hd-bg"},U=["width","viewBox"],B=["clip-path"],E=["width"],M=["id"],S=["d"],Z=["d","fill"],G=["d","fill","mask"],C=["clip-path"],k=["x1"],D=["id","x1"],O=["id"],T=["id"],N=["width"],R=["id"],z={class:"m-card-hd-title"},A={key:0,class:"m-card-hd-extra"},P=["width","height","viewBox"],I=["opacity"],j=["d","fill"],q=["d"],K={class:"m-card-bd-content"},J={__name:"index",props:{width:{type:Number,default:398},height:{type:Number,default:200},title:{type:String,default:"标题"},bodyFill:{type:String,default:"rgba(26, 57, 77, 1)"},bodyOpacity:{type:Number,default:.6}},setup(e){const s=e,a=w(1),_=p(()=>{let l=s.width;return`M165 0.5
L165.707 -0.207107
L165.414 -0.5
H165

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
.cesium-map[data-v-b391bc11]{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#020b12}.cesium-map__viewer[data-v-b391bc11],.cesium-map__viewer[data-v-b391bc11] .cesium-viewer,.cesium-map__viewer[data-v-b391bc11] .cesium-viewer-cesiumWidgetContainer,.cesium-map__viewer[data-v-b391bc11] .cesium-widget,.cesium-map__viewer[data-v-b391bc11] canvas{width:100%;height:100%}.cesium-map__viewer[data-v-b391bc11] canvas{display:block;outline:none}.cesium-map__viewer[data-v-b391bc11] .cesium-viewer-bottom,.cesium-map__viewer[data-v-b391bc11] .cesium-widget-credits{display:none!important}

@ -1 +0,0 @@
.login-screen[data-v-f6092897]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(180deg,rgba(4,16,38,.1),rgba(2,8,22,.62)),url(./bg-3acb94e3-balabala-1784378651390.png) center/cover no-repeat,#05142f;color:#fff}.login-screen[data-v-f6092897]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(0,0,0,.46),transparent 42%,rgba(0,0,0,.35)),radial-gradient(circle at 52% 46%,rgba(48,220,255,.16),transparent 32%)}.login-shell[data-v-f6092897]{position:relative;z-index:1;width:min(980px,100vw - 48px);display:grid;grid-template-columns:minmax(0,1fr) 388px;gap:64px;align-items:center}.login-brand[data-v-f6092897]{display:flex;flex-direction:column;gap:14px;min-width:0;text-shadow:0 0 20px rgba(48,220,255,.36)}.login-brand span[data-v-f6092897]{font-size:44px;line-height:1.2;font-weight:700}.login-brand small[data-v-f6092897]{color:#c4f3feb8;font-size:13px;letter-spacing:0}.login-panel[data-v-f6092897]{width:388px;padding:30px;border:1px solid rgba(91,224,244,.46);background:linear-gradient(160deg,rgba(5,31,46,.94),rgba(2,17,29,.92));box-shadow:0 24px 70px #0006,inset 0 0 0 1px #7efbf60f;box-sizing:border-box}.login-panel-kicker[data-v-f6092897]{margin-bottom:8px;color:#7efbf6d1;font-size:11px;font-weight:700;letter-spacing:1.8px;text-align:center}.login-panel-title[data-v-f6092897]{margin-bottom:6px;color:#fff;font-size:22px;font-weight:700;text-align:center}.login-panel-intro[data-v-f6092897]{margin:0 0 24px;color:#d3f1f7ad;font-size:12px;line-height:20px;text-align:center}.login-field[data-v-f6092897]{display:block;margin-bottom:18px}.login-password-control[data-v-f6092897]{position:relative;display:block;margin:0!important}.login-field span[data-v-f6092897]{display:block;margin-bottom:8px;color:#c4f3fec7;font-size:13px}.login-field input[data-v-f6092897]{width:100%;height:44px;padding:0 13px;border:1px solid rgba(91,224,244,.3);outline:none;background:rgba(0,10,24,.62);color:#fff;font-size:15px;box-sizing:border-box}.login-password-field input[data-v-f6092897]{padding-right:64px}.login-field input[data-v-f6092897]:focus{border-color:#7efbf6c7;box-shadow:0 0 0 2px #7efbf61f}.login-field input[data-v-f6092897]:-webkit-autofill,.login-field input[data-v-f6092897]:-webkit-autofill:hover,.login-field input[data-v-f6092897]:-webkit-autofill:focus{-webkit-text-fill-color:#ffffff;caret-color:#fff;box-shadow:0 0 0 1000px #061c2b inset,0 0 0 2px #7efbf61f;transition:background-color 9999s ease-out}.login-password-toggle[data-v-f6092897]{position:absolute;right:4px;top:50%;width:54px;height:34px;padding:0;border:0;background:transparent;color:#7efbf6d1;cursor:pointer;font-size:12px;transform:translateY(-50%)}.login-password-toggle[data-v-f6092897]:focus-visible,.login-submit[data-v-f6092897]:focus-visible{outline:2px solid #7efbf6;outline-offset:2px}.login-field-assist[data-v-f6092897]{min-height:20px;margin:-8px 0 8px;color:#d3f1f794;font-size:12px;line-height:20px}.login-caps-lock[data-v-f6092897]{color:#ffd76c}.login-error[data-v-f6092897]{min-height:20px;margin:-4px 0 12px;color:#ffcf8a;font-size:13px;line-height:20px}.login-submit[data-v-f6092897]{width:100%;height:46px;border:1px solid rgba(48,220,255,.52);background:linear-gradient(90deg,rgba(22,122,153,.96),rgba(42,196,205,.96));color:#fff;cursor:pointer;font-size:16px;font-weight:700}.login-submit[data-v-f6092897]:disabled{cursor:not-allowed;opacity:.68}@media (max-width: 820px){.login-shell[data-v-f6092897]{grid-template-columns:1fr;gap:28px}.login-brand span[data-v-f6092897]{font-size:30px}.login-panel[data-v-f6092897]{width:100%}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
var b=(_,v,i)=>new Promise((r,n)=>{var o=l=>{try{a(i.next(l))}catch(p){n(p)}},d=l=>{try{a(i.throw(l))}catch(p){n(p)}},a=l=>l.done?r(l.value):Promise.resolve(l.value).then(o,d);a((i=i.apply(_,v)).next())});import{_ as S,l as C,m as V,g as B,o as f,c as m,a as s,f as M,s as k,H as h,I as D,t as g,j as E,d as u,J as L}from"./index-1784378651390.js";const R={class:"login-screen"},H={class:"login-shell"},I={class:"login-field"},N={class:"login-field login-password-field"},U={class:"login-password-control"},q=["type"],K=["aria-label","aria-pressed"],P={class:"login-field-assist","aria-live":"polite"},$={key:0,class:"login-caps-lock"},j={key:1},A={key:0,class:"login-error",role:"alert"},F=["disabled"],J={__name:"index",setup(_){const v=C(),i=V(),r=u(""),n=u(""),o=u(!1),d=u(!1),a=u(!1),l=u(""),p=B(()=>{const t=typeof v.query.redirect=="string"?decodeURIComponent(v.query.redirect):"/platform";return t.startsWith("/login")?"/platform":t||"/platform"});function w(){return b(this,null,function*(){if(l.value="",!r.value||!n.value){l.value="请输入账号和密码。";return}a.value=!0;try{yield L(r.value,n.value),i.replace(p.value)}catch(t){l.value=x(t)}finally{a.value=!1}})}function y(t){var e;d.value=!!((e=t==null?void 0:t.getModifierState)!=null&&e.call(t,"CapsLock"))}function x(t){const e=String((t==null?void 0:t.message)||"").trim();return/401|403|账号|密码|unauthor/i.test(e)?"账号或密码不正确,请核对后重试。":/network|fetch|timeout|连接|服务|502|503|504/i.test(e)?"登录服务暂时无法连接,请稍后重试。":"暂时无法登录,请稍后重试。"}return(t,e)=>(f(),m("div",R,[s("div",H,[e[9]||(e[9]=s("div",{class:"login-brand"},[s("span",null,"红原县数字畜牧业监管平台"),s("small",null,"Hongyuan Digital Animal Husbandry Supervision Platform")],-1)),s("form",{class:"login-panel","aria-label":"平台用户登录",onSubmit:M(w,["prevent"])},[e[6]||(e[6]=s("div",{class:"login-panel-kicker"},"SCREEN 2.0 · V2.2",-1)),e[7]||(e[7]=s("div",{class:"login-panel-title"},"用户登录",-1)),e[8]||(e[8]=s("p",{class:"login-panel-intro"},"使用平台账号进入红原县数字畜牧业监管大屏",-1)),s("label",I,[e[4]||(e[4]=s("span",null,"账号",-1)),k(s("input",{"onUpdate:modelValue":e[0]||(e[0]=c=>r.value=c),autocomplete:"username",autofocus:"",placeholder:"请输入平台账号"},null,512),[[h,r.value,void 0,{trim:!0}]])]),s("label",N,[e[5]||(e[5]=s("span",null,"密码",-1)),s("span",U,[k(s("input",{"onUpdate:modelValue":e[1]||(e[1]=c=>n.value=c),autocomplete:"current-password",placeholder:"请输入密码",type:o.value?"text":"password",onKeydown:y,onKeyup:y,onBlur:e[2]||(e[2]=c=>d.value=!1)},null,40,q),[[D,n.value]]),s("button",{class:"login-password-toggle",type:"button","aria-label":o.value?"隐藏密码":"显示密码","aria-pressed":o.value,onClick:e[3]||(e[3]=c=>o.value=!o.value)},g(o.value?"隐藏":"显示"),9,K)])]),s("div",P,[d.value?(f(),m("span",$,"大写锁定已开启")):(f(),m("span",j,"账号由平台管理员统一分配"))]),l.value?(f(),m("div",A,g(l.value),1)):E("",!0),s("button",{class:"login-submit",disabled:a.value,type:"submit"},g(a.value?"登录中":"登录"),9,F)],32)])]))}},W=S(J,[["__scopeId","data-v-f6092897"]]);export{W as default};

File diff suppressed because one or more lines are too long

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

Loading…
Cancel
Save