chore: build V2.0 production assets

V2.0
M先生 1 month ago
parent 6627e5f0cb
commit 0d26772d51
  1. 0
      docs/assets/AlibabaPuHuiTi-14435b65-balabala-1782921062964.woff2
  2. 0
      docs/assets/SmartChartRenderer-8fd37aa6-balabala-1782921062964.css
  3. 2
      docs/assets/SmartChartRenderer-beccabe3-1782921062964.js
  4. 0
      docs/assets/bg-3acb94e3-balabala-1782921062964.png
  5. 0
      docs/assets/bottom-menu-arrow-big-180b7071-balabala-1782921062964.svg
  6. 0
      docs/assets/bottom-menu-arrow-small-19304179-balabala-1782921062964.svg
  7. 0
      docs/assets/bottom-menu-bg-b465793d-balabala-1782921062964.png
  8. 0
      docs/assets/bottom-menu-btn-ee5c8064-balabala-1782921062964.png
  9. 0
      docs/assets/bottom-menu-btn-hover-df33e514-balabala-1782921062964.png
  10. 0
      docs/assets/chinaBlurLine-1a2cbc0f-balabala-1782921062964.png
  11. 0
      docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1782921062964.svg
  12. 0
      docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1782921062964.svg
  13. 0
      docs/assets/content-middle-line-162bc0d5-balabala-1782921062964.svg
  14. 0
      docs/assets/focus_bg-b6803e2d-balabala-1782921062964.png
  15. 0
      docs/assets/focus_move_bg-cf41417a-balabala-1782921062964.png
  16. 0
      docs/assets/header-bg-65b38012-balabala-1782921062964.png
  17. 0
      docs/assets/huiguang-3c5dfda5-balabala-1782921062964.png
  18. 0
      docs/assets/icon1-6f7c222f-balabala-1782921062964.png
  19. 0
      docs/assets/icon2-4f77ccec-balabala-1782921062964.png
  20. 2
      docs/assets/index-1782921062964.js
  21. 0
      docs/assets/index-47d6f37a-balabala-1782921062964.css
  22. 2
      docs/assets/index-5c4f79f1-1782921062964.js
  23. 5403
      docs/assets/index-9fb96bf8-1782919616283.js
  24. 2
      docs/assets/index-b51b8f1f-balabala-1782921062964.css
  25. 2
      docs/assets/index-c4185e07-balabala-1782921062964.css
  26. 5404
      docs/assets/index-cd2f2b0a-1782921062964.js
  27. 1
      docs/assets/json/红原县.json
  28. 0
      docs/assets/left-kuang-5d6bd1ae-balabala-1782921062964.svg
  29. 0
      docs/assets/live-scene-1-786cdd0a-balabala-1782921062964.png
  30. 0
      docs/assets/menu-btn-91a961cf-balabala-1782921062964.png
  31. 0
      docs/assets/menu-btn-hover-62eba0bb-balabala-1782921062964.png
  32. 0
      docs/assets/ocean-bg-8c848b8f-balabala-1782921062964.png
  33. 0
      docs/assets/pathLine2-d4134d4b-balabala-1782921062964.png
  34. 0
      docs/assets/right-kuang-b1937caf-balabala-1782921062964.svg
  35. 0
      docs/assets/ring2-a1b91808-balabala-1782921062964.png
  36. 0
      docs/assets/ring3-fe0f60d7-balabala-1782921062964.png
  37. 0
      docs/assets/ring4-f2e324d6-balabala-1782921062964.png
  38. 0
      docs/assets/rotationBorder1-2ce8e0ef-balabala-1782921062964.png
  39. 0
      docs/assets/rotationBorder2-7496b968-balabala-1782921062964.png
  40. 0
      docs/assets/saoguang-ccf84a88-balabala-1782921062964.svg
  41. 0
      docs/assets/title-zs1-c15a5ee8-balabala-1782921062964.svg
  42. 1
      docs/datas/geojsons/513233.json
  43. 1
      docs/datas/geojsons/hongyuan-townships.geojson
  44. 4
      docs/index.html
  45. 1
      public/assets/json/红原县.json
  46. 1
      public/datas/geojsons/513233.json
  47. 69
      src/config/layers.js
  48. 28
      src/config/townshipBoundaries.js
  49. 5
      src/views/ecologicalProtection/data.js
  50. 4
      src/views/forestGrassWet/map.js
  51. 15
      src/views/gdMap/livestockData.js
  52. 6
      src/views/grassLivestockBalance/data.js
  53. 50
      src/views/grassLivestockBalance/index.vue
  54. 2
      src/views/home/index.vue
  55. 36
      src/views/pastureManagement/data.js
  56. 15
      src/views/pastureManagement/index.vue
  57. 9
      src/views/yakManagement/data.js
  58. 14
      src/views/yakManagement/index.vue

@ -1,2 +1,2 @@
var B=Object.defineProperty,O=Object.defineProperties;var D=Object.getOwnPropertyDescriptors;var S=Object.getOwnPropertySymbols;var W=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable;var v=(a,r,o)=>r in a?B(a,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[r]=o,m=(a,r)=>{for(var o in r||(r={}))W.call(r,o)&&v(a,o,r[o]);if(S)for(var o of S(r))$.call(r,o)&&v(a,o,r[o]);return a},d=(a,r)=>O(a,D(r));import{L as b,H}from"./index-9fb96bf8-1782919616283.js";import{e as h,l as F,v as R,o as g,c as p,a as f,t as u,g as L,b as V,u as P,n as j}from"./index-1782919616283.js";const q={class:"smart-chart-header"},G={key:0},E={key:0,class:"smart-chart-source"},J={__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"],z=h(()=>{const t=(i.chart.rows||[]).filter(e=>Number.isFinite(Number(e.value)));return i.chart.type==="pie"?N(t):i.chart.type==="line"?w(t):_(t)}),k=h(()=>{const t=i.chart.rows||[];return i.chart.type==="bar"&&x(t)}),y=h(()=>{const t=i.chart.source||{},e=[t.mode,t.table,t.period,t.generatedAt].filter(Boolean);return e.length?e.join(" / "):""});F(()=>{R(()=>{window.requestAnimationFrame(()=>o("ready"))})});function _(t){return x(t)?C(t):{animationDuration:700,grid:{left:52,right:26,top:28,bottom:54},tooltip:s(),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})=>c(e)}}]}}function C(t){return{animationDuration:700,grid:{left:78,right:72,top:22,bottom:20},tooltip:d(m({},s()),{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})=>c(e)}}]}}function N(t){return{animationDuration:700,tooltip:s(),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 B=Object.defineProperty,O=Object.defineProperties;var D=Object.getOwnPropertyDescriptors;var S=Object.getOwnPropertySymbols;var W=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable;var v=(a,r,o)=>r in a?B(a,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[r]=o,m=(a,r)=>{for(var o in r||(r={}))W.call(r,o)&&v(a,o,r[o]);if(S)for(var o of S(r))$.call(r,o)&&v(a,o,r[o]);return a},d=(a,r)=>O(a,D(r));import{L as b,H}from"./index-cd2f2b0a-1782921062964.js";import{e as h,l as F,v as R,o as g,c as p,a as f,t as u,g as L,b as V,u as P,n as j}from"./index-1782921062964.js";const q={class:"smart-chart-header"},G={key:0},E={key:0,class:"smart-chart-source"},J={__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"],z=h(()=>{const t=(i.chart.rows||[]).filter(e=>Number.isFinite(Number(e.value)));return i.chart.type==="pie"?N(t):i.chart.type==="line"?w(t):_(t)}),k=h(()=>{const t=i.chart.rows||[];return i.chart.type==="bar"&&x(t)}),y=h(()=>{const t=i.chart.source||{},e=[t.mode,t.table,t.period,t.generatedAt].filter(Boolean);return e.length?e.join(" / "):""});F(()=>{R(()=>{window.requestAnimationFrame(()=>o("ready"))})});function _(t){return x(t)?C(t):{animationDuration:700,grid:{left:52,right:26,top:28,bottom:54},tooltip:s(),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})=>c(e)}}]}}function C(t){return{animationDuration:700,grid:{left:78,right:72,top:22,bottom:20},tooltip:d(m({},s()),{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})=>c(e)}}]}}function N(t){return{animationDuration:700,tooltip:s(),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 w(t){return{animationDuration:760,grid:{left:52,right:28,top:30,bottom:48},tooltip:d(m({},s()),{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})=>c(e)},data:t.map(e=>({value:e.value,name:e.name}))}]}}function s(){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(A=>A.name===t.name),n=(e==null?void 0:e.unit)||i.chart.unit||"",T=e!=null&&e.extra?`<br/><span style="color:rgba(223,250,255,.62)">${e.extra}</span>`:"";return`${t.marker}${t.name}: ${c(t.value)}${n}${T}`}}}function x(t=[]){return t.length>6||t.some(e=>String(e.name||"").length>4)}function c(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(),p("div",{class:j(["smart-chart-card",{"is-horizontal":k.value}])},[f("div",q,[f("div",null,[f("strong",null,u(a.chart.title),1),f("span",null,u(a.chart.subtitle),1)]),a.chart.unit?(g(),p("em",G,u(a.chart.unit),1)):L("",!0)]),V(P(H),{class:"smart-chart",option:z.value,autoresize:""},null,8,["option"]),y.value?(g(),p("div",E,u(y.value),1)):L("",!0)],2))}};export{J as default};

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

File diff suppressed because one or more lines are too long

@ -1 +1 @@
var m=(v,d,n)=>new Promise((i,a)=>{var u=l=>{try{r(n.next(l))}catch(t){a(t)}},o=l=>{try{r(n.throw(l))}catch(t){a(t)}},r=l=>l.done?i(l.value):Promise.resolve(l.value).then(u,o);r((n=n.apply(v,d)).next())});import{_ as x,P as w,Q as h,e as R,o as _,c as f,a as e,J as S,G as g,H as y,t as b,g as V,d as p,R as k}from"./index-1782919616283.js";const B={class:"login-screen"},D={class:"login-shell"},H={class:"login-field"},M={class:"login-field"},P={key:0,class:"login-error"},U=["disabled"],q={__name:"index",setup(v){const d=w(),n=h(),i=p(""),a=p(""),u=p(!1),o=p(""),r=R(()=>{const t=typeof d.query.redirect=="string"?decodeURIComponent(d.query.redirect):"/platform";return t.startsWith("/login")?"/platform":t||"/platform"});function l(){return m(this,null,function*(){if(o.value="",!i.value||!a.value){o.value="请输入账号和密码。";return}u.value=!0;try{yield k(i.value,a.value),n.replace(r.value)}catch(t){o.value=(t==null?void 0:t.message)||"登录失败,请稍后再试。"}finally{u.value=!1}})}return(t,s)=>(_(),f("div",B,[e("div",D,[s[5]||(s[5]=e("div",{class:"login-brand"},[e("span",null,"红原县数字畜牧业监管平台"),e("small",null,"Hongyuan Digital Animal Husbandry Supervision Platform")],-1)),e("form",{class:"login-panel",onSubmit:S(l,["prevent"])},[s[4]||(s[4]=e("div",{class:"login-panel-title"},"用户登录",-1)),e("label",H,[s[2]||(s[2]=e("span",null,"账号",-1)),g(e("input",{"onUpdate:modelValue":s[0]||(s[0]=c=>i.value=c),autocomplete:"username",autofocus:"",placeholder:"请输入账号"},null,512),[[y,i.value,void 0,{trim:!0}]])]),e("label",M,[s[3]||(s[3]=e("span",null,"密码",-1)),g(e("input",{"onUpdate:modelValue":s[1]||(s[1]=c=>a.value=c),autocomplete:"current-password",placeholder:"请输入密码",type:"password"},null,512),[[y,a.value]])]),o.value?(_(),f("div",P,b(o.value),1)):V("",!0),e("button",{class:"login-submit",disabled:u.value,type:"submit"},b(u.value?"登录中":"登录"),9,U)],32)])]))}},N=x(q,[["__scopeId","data-v-02c20620"]]);export{N as default};
var m=(v,d,n)=>new Promise((i,a)=>{var u=l=>{try{r(n.next(l))}catch(t){a(t)}},o=l=>{try{r(n.throw(l))}catch(t){a(t)}},r=l=>l.done?i(l.value):Promise.resolve(l.value).then(u,o);r((n=n.apply(v,d)).next())});import{_ as x,P as w,Q as h,e as R,o as _,c as f,a as e,J as S,G as g,H as y,t as b,g as V,d as p,R as k}from"./index-1782921062964.js";const B={class:"login-screen"},D={class:"login-shell"},H={class:"login-field"},M={class:"login-field"},P={key:0,class:"login-error"},U=["disabled"],q={__name:"index",setup(v){const d=w(),n=h(),i=p(""),a=p(""),u=p(!1),o=p(""),r=R(()=>{const t=typeof d.query.redirect=="string"?decodeURIComponent(d.query.redirect):"/platform";return t.startsWith("/login")?"/platform":t||"/platform"});function l(){return m(this,null,function*(){if(o.value="",!i.value||!a.value){o.value="请输入账号和密码。";return}u.value=!0;try{yield k(i.value,a.value),n.replace(r.value)}catch(t){o.value=(t==null?void 0:t.message)||"登录失败,请稍后再试。"}finally{u.value=!1}})}return(t,s)=>(_(),f("div",B,[e("div",D,[s[5]||(s[5]=e("div",{class:"login-brand"},[e("span",null,"红原县数字畜牧业监管平台"),e("small",null,"Hongyuan Digital Animal Husbandry Supervision Platform")],-1)),e("form",{class:"login-panel",onSubmit:S(l,["prevent"])},[s[4]||(s[4]=e("div",{class:"login-panel-title"},"用户登录",-1)),e("label",H,[s[2]||(s[2]=e("span",null,"账号",-1)),g(e("input",{"onUpdate:modelValue":s[0]||(s[0]=c=>i.value=c),autocomplete:"username",autofocus:"",placeholder:"请输入账号"},null,512),[[y,i.value,void 0,{trim:!0}]])]),e("label",M,[s[3]||(s[3]=e("span",null,"密码",-1)),g(e("input",{"onUpdate:modelValue":s[1]||(s[1]=c=>a.value=c),autocomplete:"current-password",placeholder:"请输入密码",type:"password"},null,512),[[y,a.value]])]),o.value?(_(),f("div",P,b(o.value),1)):V("",!0),e("button",{class:"login-submit",disabled:u.value,type:"submit"},b(u.value?"登录中":"登录"),9,U)],32)])]))}},N=x(q,[["__scopeId","data-v-02c20620"]]);export{N as default};

File diff suppressed because one or more lines are too long

@ -1 +1 @@
.login-screen[data-v-02c20620]{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-1782919616283.png) center/cover no-repeat,#05142f;color:#fff}.login-screen[data-v-02c20620]: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-02c20620]{position:relative;z-index:1;width:min(980px,100vw - 48px);display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:56px;align-items:center}.login-brand[data-v-02c20620]{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-02c20620]{font-size:42px;line-height:1.2;font-weight:700}.login-brand small[data-v-02c20620]{color:#c4f3feb8;font-size:13px;letter-spacing:0}.login-panel[data-v-02c20620]{width:360px;padding:30px 28px 28px;border:1px solid rgba(48,220,255,.34);background:rgba(3,14,32,.82);box-shadow:0 24px 70px #00000057,inset 0 0 28px #30dcff14;box-sizing:border-box}.login-panel-title[data-v-02c20620]{margin-bottom:26px;color:#c4f3fe;font-size:22px;font-weight:700;text-align:center}.login-field[data-v-02c20620]{display:block;margin-bottom:18px}.login-field span[data-v-02c20620]{display:block;margin-bottom:8px;color:#c4f3fec7;font-size:13px}.login-field input[data-v-02c20620]{width:100%;height:42px;padding:0 12px;border:1px solid rgba(48,220,255,.26);outline:none;background:rgba(0,10,24,.62);color:#fff;font-size:15px;box-sizing:border-box}.login-field input[data-v-02c20620]:focus{border-color:#30dcffb8;box-shadow:0 0 0 2px #30dcff1f}.login-error[data-v-02c20620]{min-height:20px;margin:-4px 0 12px;color:#ffcf8a;font-size:13px;line-height:20px}.login-submit[data-v-02c20620]{width:100%;height:44px;border:1px solid rgba(48,220,255,.52);background:linear-gradient(90deg,rgba(24,140,196,.92),rgba(37,204,218,.92));color:#fff;cursor:pointer;font-size:16px;font-weight:700}.login-submit[data-v-02c20620]:disabled{cursor:not-allowed;opacity:.68}@media (max-width: 820px){.login-shell[data-v-02c20620]{grid-template-columns:1fr;gap:28px}.login-brand span[data-v-02c20620]{font-size:30px}.login-panel[data-v-02c20620]{width:100%}}
.login-screen[data-v-02c20620]{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-1782921062964.png) center/cover no-repeat,#05142f;color:#fff}.login-screen[data-v-02c20620]: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-02c20620]{position:relative;z-index:1;width:min(980px,100vw - 48px);display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:56px;align-items:center}.login-brand[data-v-02c20620]{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-02c20620]{font-size:42px;line-height:1.2;font-weight:700}.login-brand small[data-v-02c20620]{color:#c4f3feb8;font-size:13px;letter-spacing:0}.login-panel[data-v-02c20620]{width:360px;padding:30px 28px 28px;border:1px solid rgba(48,220,255,.34);background:rgba(3,14,32,.82);box-shadow:0 24px 70px #00000057,inset 0 0 28px #30dcff14;box-sizing:border-box}.login-panel-title[data-v-02c20620]{margin-bottom:26px;color:#c4f3fe;font-size:22px;font-weight:700;text-align:center}.login-field[data-v-02c20620]{display:block;margin-bottom:18px}.login-field span[data-v-02c20620]{display:block;margin-bottom:8px;color:#c4f3fec7;font-size:13px}.login-field input[data-v-02c20620]{width:100%;height:42px;padding:0 12px;border:1px solid rgba(48,220,255,.26);outline:none;background:rgba(0,10,24,.62);color:#fff;font-size:15px;box-sizing:border-box}.login-field input[data-v-02c20620]:focus{border-color:#30dcffb8;box-shadow:0 0 0 2px #30dcff1f}.login-error[data-v-02c20620]{min-height:20px;margin:-4px 0 12px;color:#ffcf8a;font-size:13px;line-height:20px}.login-submit[data-v-02c20620]{width:100%;height:44px;border:1px solid rgba(48,220,255,.52);background:linear-gradient(90deg,rgba(24,140,196,.92),rgba(37,204,218,.92));color:#fff;cursor:pointer;font-size:16px;font-weight:700}.login-submit[data-v-02c20620]:disabled{cursor:not-allowed;opacity:.68}@media (max-width: 820px){.login-shell[data-v-02c20620]{grid-template-columns:1fr;gap:28px}.login-brand span[data-v-02c20620]{font-size:30px}.login-panel[data-v-02c20620]{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

@ -6,8 +6,8 @@
<link rel="icon" type="image/svg+xml" href="./vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>红原县数字畜牧业监管平台</title>
<script type="module" crossorigin src="./assets/index-1782919616283.js"></script>
<link rel="stylesheet" href="./assets/index-47d6f37a-balabala-1782919616283.css">
<script type="module" crossorigin src="./assets/index-1782921062964.js"></script>
<link rel="stylesheet" href="./assets/index-47d6f37a-balabala-1782921062964.css">
</head>
<body>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,3 +1,5 @@
import { hongyuanTownshipLabelPoints } from "@/config/townshipBoundaries"
export const HONGYUAN_BOUNDS = {
west: 101.852492,
south: 31.851389,
@ -448,50 +450,19 @@ export const ecologicalProtectionLayers = {
],
}
const yakTownCenters = {
色地乡: [103.14352108676084, 33.04086199974242],
色地镇: [103.14352108676084, 33.04086199974242],
瓦切乡: [102.68497870490992, 33.13952250013054],
瓦切镇: [102.68497870490992, 33.13952250013054],
刷经寺镇: [102.61668800740293, 31.972581499870266],
邛溪镇: [102.63374746802602, 32.82576351047847],
阿木乡: [102.83552513473182, 32.7263610000727],
安曲乡: [102.33517275101616, 32.71285091143605],
安曲镇: [102.33517275101616, 32.71285091143605],
查尔玛乡: [102.05164640151992, 32.45423049990481],
龙日乡: [102.40041964577492, 32.42345274031332],
龙日镇: [102.40041964577492, 32.42345274031332],
麦洼乡: [102.940261, 33.118079],
江茸乡: [102.26876480621743, 32.352965999818025],
壤口乡: [102.51205063384711, 32.23458652276696],
}
const yakDistributionRows = [
{ name: "色地乡", count: 11704 },
{ name: "麦洼乡", count: 5283 },
{ name: "壤口乡", count: 6109 },
{ name: "阿木乡", count: 8928 },
{ name: "瓦切镇", count: 8892 },
{ name: "查尔玛乡", count: 6868 },
{ name: "江茸乡", count: 5158 },
{ name: "龙日镇", count: 6994 },
{ name: "安曲镇", count: 9325 },
{ name: "刷经寺镇", count: 500 },
{ name: "邛溪镇", count: 9334 },
]
const yakTownCenters = Object.fromEntries(hongyuanTownshipLabelPoints.map((item) => [item.name, item.center]))
const yakRecognitionRows = [
{ name: "色地", count: 131983, devices: 25 },
{ name: "瓦切", count: 126611, devices: 24 },
{ name: "安曲", count: 99331, devices: 20 },
{ name: "色地镇", count: 131983, devices: 25 },
{ name: "瓦切镇", count: 126611, devices: 24 },
{ name: "安曲镇", count: 99331, devices: 20 },
{ name: "邛溪镇", count: 81727, devices: 18 },
{ name: "麦洼乡", count: 78489, devices: 16 },
{ name: "龙日", count: 66846, devices: 15 },
{ name: "龙日镇", count: 66846, devices: 15 },
{ name: "阿木乡", count: 64176, devices: 14 },
{ name: "查尔玛乡", count: 47958, devices: 11 },
{ name: "江茸乡", count: 34576, devices: 9 },
{ name: "刷经寺镇", count: 30407, devices: 8 },
{ name: "壤口乡", count: 19744, devices: 6 },
]
function createYakPointFeature(item, index, layerKey, metricLabel) {
@ -525,31 +496,9 @@ function createYakPointCollection(rows, layerKey, metricLabel) {
export const yakIndustryChainLayers = {
"yak-industry-chain": [
{
key: "yak-distribution-layer",
name: "牦牛分布",
sourceType: "geojson",
geojsonData: createYakPointCollection(yakDistributionRows, "yak-distribution-layer", "牦牛数量"),
opacity: 0.94,
mapView: {
targetLngLat: [102.58, 32.72],
distanceScale: 0.82,
targetLocalZ: 0.76,
duration: 0.85,
},
legends: [
{
key: "yak-distribution-all",
name: "牦牛分布",
fillColor: "#24F6C4",
strokeColor: "#B7FFF2",
selectable: false,
},
],
},
{
key: "yak-recognition-layer",
name: "识别数据",
name: "牦牛识别",
sourceType: "geojson",
geojsonData: createYakPointCollection(yakRecognitionRows, "yak-recognition-layer", "识别数量"),
opacity: 0.94,
@ -562,7 +511,7 @@ export const yakIndustryChainLayers = {
legends: [
{
key: "yak-recognition-all",
name: "识别数据",
name: "牦牛识别",
fillColor: "#32DCFF",
strokeColor: "#B8F7FF",
selectable: false,

@ -1,29 +1,5 @@
import hongyuanTownshipsRaw from "/public/datas/geojsons/hongyuan-townships.geojson?raw"
const townshipNameAliases = {
安曲乡: "安曲镇",
龙日乡: "龙日镇",
瓦切乡: "瓦切镇",
色地乡: "色地镇",
壤口乡: "刷经寺镇",
}
const legacyTownCodeNames = {
"513233100": "邛溪镇",
"513233101": "刷经寺镇",
"513233103": "安曲镇",
"513233105": "龙日镇",
"513233200": "安曲镇",
"513233201": "龙日镇",
"513233202": "江茸乡",
"513233203": "查尔玛乡",
"513233204": "瓦切镇",
"513233205": "阿木乡",
"513233206": "刷经寺镇",
"513233207": "麦洼乡",
"513233208": "色地镇",
}
const townshipEnNames = {
邛溪镇: "qiongxi",
刷经寺镇: "shuajingsi",
@ -79,7 +55,7 @@ const townshipsByCode = hongyuanTownshipFeatures.reduce((result, feature) => {
if (normalizedCode && name) result[normalizedCode] = name
})
return result
}, { ...legacyTownCodeNames })
}, {})
export const hongyuanTownshipLabelPoints = hongyuanTownshipFeatures.map((feature) => {
const properties = feature.properties || {}
@ -106,7 +82,7 @@ export const hongyuanTownshipRankingPoints = hongyuanTownshipLabelPoints
export function normalizeHongyuanTownName(value) {
const text = String(value || "").trim()
if (!text || text === "--") return ""
return townshipNameAliases[text] || text
return text
}
export function getHongyuanTownshipNameByCode(value) {

@ -43,14 +43,13 @@ const restorationSummary = {
],
townships: [
{ name: "麦洼乡", areaWanMu: 28.5019, lengthKm: 84.28, projectCount: 3 },
{ name: "龙日镇", areaWanMu: 15, lengthKm: 26.05, projectCount: 1 },
{ name: "龙日镇", areaWanMu: 15.8472, lengthKm: 46.05, projectCount: 2 },
{ name: "安曲镇", areaWanMu: 13.1168, lengthKm: 0, projectCount: 2 },
{ name: "瓦切镇", areaWanMu: 6.6824, lengthKm: 214.41, projectCount: 4 },
{ name: "色地镇", areaWanMu: 6.344, lengthKm: 101.25, projectCount: 3 },
{ name: "刷经寺镇", areaWanMu: 5.6528, lengthKm: 126.26, projectCount: 1 },
{ name: "邛溪镇", areaWanMu: 2.3127, lengthKm: 101.39, projectCount: 4 },
{ name: "阿木乡", areaWanMu: 1.34, lengthKm: 59.5, projectCount: 2 },
{ name: "龙日乡", areaWanMu: 0.8472, lengthKm: 20, projectCount: 1 },
{ name: "查尔玛乡", areaWanMu: 0.7001, lengthKm: 37.56, projectCount: 1 },
],
projects: [
@ -71,7 +70,7 @@ const restorationSummary = {
areaWanMu: 21.5,
lengthKm: 172.31,
measureTypes: ["人工种草", "围栏建设", "种草围栏", "草原改良"],
townships: ["刷经寺镇", "龙日乡", "龙日镇"],
townships: ["刷经寺镇", "龙日镇"],
subjectFeatureCount: 273,
},
{

@ -73,10 +73,6 @@ function normalizeTownName(name) {
return String(name || "")
.replace(/\s+/g, "")
.trim()
.replace("色地乡", "色地镇")
.replace("瓦切乡", "瓦切镇")
.replace("安曲乡", "安曲镇")
.replace("龙日乡", "龙日镇")
}
function toFiniteNumber(value, fallback = 0) {
const number = Number(value)

@ -9,9 +9,8 @@ export const homeCore = {
};
export const grasslandYakRows = [
{ zoneName: "色地", grasslandArea: 1463044, yakCount: 11704 },
{ zoneName: "色地", grasslandArea: 1463044, yakCount: 11704 },
{ zoneName: "麦洼乡", grasslandArea: 660352, yakCount: 5283 },
{ zoneName: "壤口乡", grasslandArea: 763672, yakCount: 6109 },
{ zoneName: "阿木乡", grasslandArea: 1115947, yakCount: 8928 },
{ zoneName: "瓦切镇", grasslandArea: 1111492, yakCount: 8892 },
{ zoneName: "查尔玛乡", grasslandArea: 858500, yakCount: 6868 },
@ -23,9 +22,8 @@ export const grasslandYakRows = [
];
export const grasslandWetRows = [
{ zoneName: "色地", grasslandArea: 350788, wetArea: 166983 },
{ zoneName: "色地", grasslandArea: 350788, wetArea: 166983 },
{ zoneName: "麦洼乡", grasslandArea: 162198, wetArea: 71501 },
{ zoneName: "壤口乡", grasslandArea: 241024, wetArea: 29239 },
{ zoneName: "阿木乡", grasslandArea: 305522, wetArea: 89411 },
{ zoneName: "瓦切镇", grasslandArea: 264640, wetArea: 128717 },
{ zoneName: "查尔玛乡", grasslandArea: 286159, wetArea: 17664 },
@ -52,17 +50,16 @@ export const yakForecastRows = [
];
export const townRecognitionRows = [
{ name: "色地", count: 131983, devices: 25 },
{ name: "瓦切", count: 126611, devices: 24 },
{ name: "安曲", count: 99331, devices: 20 },
{ name: "色地", count: 131983, devices: 25 },
{ name: "瓦切", count: 126611, devices: 24 },
{ name: "安曲", count: 99331, devices: 20 },
{ name: "邛溪镇", count: 81727, devices: 18 },
{ name: "麦洼乡", count: 78489, devices: 16 },
{ name: "龙日", count: 66846, devices: 15 },
{ name: "龙日", count: 66846, devices: 15 },
{ name: "阿木乡", count: 64176, devices: 14 },
{ name: "查尔玛乡", count: 47958, devices: 11 },
{ name: "江茸乡", count: 34576, devices: 9 },
{ name: "刷经寺镇", count: 30407, devices: 8 },
{ name: "壤口乡", count: 19744, devices: 6 },
];
export const recognitionTotal = townRecognitionRows.reduce((sum, item) => sum + item.count, 0);

@ -86,12 +86,9 @@ export const townCodeByName = {
江茸乡: "513233202",
查尔玛乡: "513233203",
瓦切镇: "513233204",
瓦切乡: "513233204",
阿木乡: "513233205",
麦洼乡: "513233207",
色地乡: "513233208",
色地镇: "513233208",
壤口乡: "513233209",
}
const round = (value, decimals = 2) => {
@ -100,9 +97,8 @@ const round = (value, decimals = 2) => {
}
const townPressureFactorByName = {
色地: 1.38,
色地: 1.38,
麦洼乡: 1.26,
壤口乡: 0.92,
阿木乡: 1.12,
瓦切镇: 1.2,
查尔玛乡: 1.04,

@ -180,10 +180,8 @@
<span>{{ step.index }}</span>
<div>
<strong>{{ step.name }}</strong>
<p>{{ step.plan }}</p>
<small>{{ step.desc }}</small>
<p>{{ step.desc }}</p>
</div>
<em>{{ step.status }}</em>
</div>
</div>
@ -327,43 +325,32 @@ const usageAngle = computed(() => {
return `${Math.round((usage / 130) * 360)}deg`
})
const calculationSteps = computed(() => {
const derived = activeDerived.value
return [
const calculationSteps = computed(() => [
{
key: "productivity",
index: "01",
name: "草地生产力核算",
plan: "核算草地面积与单位面积产草能力",
desc: "结合核算对象草地范围,确定可参与草畜平衡计算的草地生产基础。",
status: "已完成",
desc: "核算草地面积与单位面积产草能力。",
},
{
key: "forage",
index: "02",
name: "可利用草量折算",
plan: "扣除不可食与生态保留部分",
desc: "按草地利用系数、放牧季节和保护要求,折算为可供放牧利用的草量。",
status: "已完成",
desc: "扣除不可食部分与生态保留量,折算可利用草量。",
},
{
key: "livestock",
index: "03",
name: "载畜量折算",
plan: "将牦牛存栏折算为标准载畜压力",
desc: "依据牦牛数量、折算系数和压力修正参数,形成实际载畜量口径。",
status: "已完成",
desc: "将牦牛存栏按标准折算系数换算为载畜压力。",
},
{
key: "balance",
index: "04",
name: "平衡判定",
plan: derived.delta > 0 ? "比对承载力并形成超载调控方案" : "比对承载力并形成稳态保持方案",
desc: "根据承载利用率和超载率判定平衡状态,输出治理建议。",
status: derived.risk.shortLabel || "完成",
desc: "比对理论承载力与实际载畜量,判定平衡状态。",
},
]
})
])
const analysisProcessRows = computed(() => {
const derived = activeDerived.value
@ -2192,7 +2179,7 @@ function getProcessStepState(index) {
position: relative;
z-index: 1;
display: grid;
grid-template-columns: 40px minmax(0, 1fr) 176px;
grid-template-columns: 40px minmax(0, 1fr);
align-items: center;
gap: 12px;
min-width: 0;
@ -2231,7 +2218,6 @@ function getProcessStepState(index) {
strong,
p,
small,
em {
overflow: hidden;
text-overflow: ellipsis;
@ -2250,13 +2236,6 @@ function getProcessStepState(index) {
font-size: 12px;
}
small {
display: block;
margin-top: 4px;
color: rgba(255, 215, 108, 0.66);
font-size: 11px;
}
em {
color: #7efbf6;
font-family: D-DIN, Arial, sans-serif;
@ -2839,7 +2818,7 @@ function getProcessStepState(index) {
}
.balance-sheet.is-ready .balance-formula-row {
grid-template-columns: 36px minmax(0, 1fr) 74px;
grid-template-columns: 36px minmax(0, 1fr);
gap: 10px;
min-height: 58px;
padding: 8px 12px;
@ -2859,11 +2838,6 @@ function getProcessStepState(index) {
.balance-sheet.is-ready .balance-formula-row p {
margin-top: 3px;
font-size: 11px;
}
.balance-sheet.is-ready .balance-formula-row small {
margin-top: 3px;
font-size: 11px;
line-height: 16px;
white-space: normal;
display: -webkit-box;
@ -2871,12 +2845,6 @@ function getProcessStepState(index) {
-webkit-line-clamp: 2;
}
.balance-sheet.is-ready .balance-formula-row em {
color: rgba(126, 251, 246, 0.82);
font-family: AlibabaPuHuiTi, Arial, sans-serif;
font-size: 13px;
}
.balance-sheet.is-ready .balance-conclusion {
padding: 13px 14px;
}

@ -887,7 +887,7 @@ function toggleHomeLayerTopic(topicKey) {
function getHomeTopicLayers(topicKey) {
const layers = getLayersByTopic(topicKey)
if (topicKey !== "yak-industry-chain") return layers
return layers.filter((layer) => ["yak-distribution-layer", "yak-recognition-layer"].includes(layer.key))
return layers.filter((layer) => layer.key === "yak-recognition-layer")
}
function toggleHomeLayer(layerKey) {

@ -24,15 +24,15 @@ export const pastureTopStats = cxptCoreRows.map((item) => ({
export const pastureTownRows = [
{ areaCode: "513233100", areaName: "邛溪镇", number: 1452, year: 2024 },
{ areaCode: "513233104", areaName: "刷经寺镇", number: 1500, year: 2024 },
{ areaCode: "513233101", areaName: "安曲镇", number: 76, year: 2024 },
{ areaCode: "513233103", areaName: "龙日镇", number: 828, year: 2024 },
{ areaCode: "513233204", areaName: "江茸乡", number: 902, year: 2024 },
{ areaCode: "513233205", areaName: "查尔玛乡", number: 450, year: 2024 },
{ areaCode: "513233102", areaName: "瓦切镇", number: 602, year: 2024 },
{ areaCode: "513233203", areaName: "阿木乡", number: 300, year: 2024 },
{ areaCode: "513233202", areaName: "麦洼乡", number: 1204, year: 2024 },
{ areaCode: "513233105", areaName: "色地", number: 2638, year: 2024 },
{ areaCode: "513233101", areaName: "刷经寺镇", number: 1500, year: 2024 },
{ areaCode: "513233103", areaName: "安曲镇", number: 76, year: 2024 },
{ areaCode: "513233105", areaName: "龙日镇", number: 828, year: 2024 },
{ areaCode: "513233202", areaName: "江茸乡", number: 902, year: 2024 },
{ areaCode: "513233203", areaName: "查尔玛乡", number: 450, year: 2024 },
{ areaCode: "513233204", areaName: "瓦切镇", number: 602, year: 2024 },
{ areaCode: "513233205", areaName: "阿木乡", number: 300, year: 2024 },
{ areaCode: "513233207", areaName: "麦洼乡", number: 1204, year: 2024 },
{ areaCode: "513233208", areaName: "色地", number: 2638, year: 2024 },
].map((item) => ({
...item,
key: item.areaCode,
@ -42,14 +42,14 @@ export const pastureTownRows = [
}))
export const pastureOnlineRows = [
{ areaCode: "513233103", areaName: "龙日镇", uplineRate: 4, year: 2024 },
{ areaCode: "513233202", areaName: "麦洼乡", uplineRate: 52, year: 2024 },
{ areaCode: "513233101", areaName: "安曲镇", uplineRate: 22, year: 2024 },
{ areaCode: "513233105", areaName: "龙日镇", uplineRate: 4, year: 2024 },
{ areaCode: "513233207", areaName: "麦洼乡", uplineRate: 52, year: 2024 },
{ areaCode: "513233103", areaName: "安曲镇", uplineRate: 22, year: 2024 },
{ areaCode: "513233100", areaName: "邛溪镇", uplineRate: 23, year: 2024 },
{ areaCode: "513233105", areaName: "色地", uplineRate: 8, year: 2024 },
{ areaCode: "513233203", areaName: "阿木乡", uplineRate: 12, year: 2024 },
{ areaCode: "513233204", areaName: "江茸乡", uplineRate: 14, year: 2024 },
{ areaCode: "513233104", areaName: "刷经寺镇", uplineRate: 9, year: 2024 },
{ areaCode: "513233208", areaName: "色地", uplineRate: 8, year: 2024 },
{ areaCode: "513233205", areaName: "阿木乡", uplineRate: 12, year: 2024 },
{ areaCode: "513233202", areaName: "江茸乡", uplineRate: 14, year: 2024 },
{ areaCode: "513233101", areaName: "刷经寺镇", uplineRate: 9, year: 2024 },
].map((item) => ({
...item,
key: item.areaCode,
@ -87,11 +87,11 @@ export const pastureGenderRows = [
]
export const pastureListRows = [
{ name: "更洼尔", areaName: "瓦切", acreage: 4704.87, summerAcreage: 2267.26, winterAcreage: 2437.61, year: 2024 },
{ name: "更洼尔", areaName: "瓦切", acreage: 4704.87, summerAcreage: 2267.26, winterAcreage: 2437.61, year: 2024 },
{ name: "涉尔丹", areaName: "麦洼乡", acreage: 1426.53, summerAcreage: 687.82, winterAcreage: 738.71, year: 2024 },
{ name: "热布丹", areaName: "查尔玛乡", acreage: 2176.09, summerAcreage: 1049.37, winterAcreage: 1126.72, year: 2024 },
{ name: "王西卓玛", areaName: "阿木乡", acreage: 4126.13, summerAcreage: 1989.59, winterAcreage: 2136.54, year: 2024 },
{ name: "阿尔", areaName: "色地", acreage: 1249.48, summerAcreage: 602.25, winterAcreage: 647.23, year: 2024 },
{ name: "阿尔", areaName: "色地", acreage: 1249.48, summerAcreage: 602.25, winterAcreage: 647.23, year: 2024 },
{ name: "尕让吉", areaName: "邛溪镇", acreage: 3688.72, summerAcreage: 1778.56, winterAcreage: 1910.16, year: 2024 },
{ name: "华尔甲", areaName: "安曲镇", acreage: 2956.44, summerAcreage: 1425.01, winterAcreage: 1531.43, year: 2024 },
{ name: "泽让措", areaName: "江茸乡", acreage: 3448.36, summerAcreage: 1662.61, winterAcreage: 1785.75, year: 2024 },

@ -70,7 +70,7 @@ import LayerPanel from "@/views/forestGrassWet/components/LayerPanel.vue"
import BusinessPanelRenderer from "@/views/forestGrassWet/components/BusinessPanelRenderer.vue"
import { Assets } from "@/views/forestGrassWet/assets"
import { getLayerByKey } from "@/config/layers"
import { getHongyuanTownshipNameByCode, hongyuanTownshipsGeoJsonRaw, normalizeHongyuanTownName } from "@/config/townshipBoundaries"
import { getHongyuanTownshipNameByCode, hongyuanTownshipsGeoJsonRaw } from "@/config/townshipBoundaries"
import { getPastureGrasslandsById, getPastureProfile, getPasturesDetailsById } from "@/services/pastureApi"
import {
pastureAgeRows,
@ -107,23 +107,13 @@ const pastureTownCodeNames = {
"513233101": "刷经寺镇",
"513233103": "安曲镇",
"513233105": "龙日镇",
"513233200": "安曲镇",
"513233201": "龙日镇",
"513233202": "江茸乡",
"513233203": "查尔玛乡",
"513233204": "瓦切镇",
"513233205": "阿木乡",
"513233206": "刷经寺镇",
"513233207": "麦洼乡",
"513233208": "色地镇",
}
const pastureTownNameAliases = {
"安曲乡": "安曲镇",
"龙日乡": "龙日镇",
"瓦切乡": "瓦切镇",
"色地乡": "色地镇",
"壤口乡": "刷经寺镇",
}
const pastureFallbackTownshipById = {
"4028abc18eecd2af018eecdc44b7086b": "瓦切镇",
"402881828b486d54018b48741f590270": "查尔玛乡",
@ -872,9 +862,6 @@ function getPastureTownship(item = {}, grasslands = []) {
function normalizePastureTownName(value) {
const text = String(value || "").trim()
if (!text || text === "--") return ""
const sharedName = normalizeHongyuanTownName(text)
if (sharedName && sharedName !== text) return sharedName
if (pastureTownNameAliases[text]) return pastureTownNameAliases[text]
if (pastureTownCodeNames[text]) return pastureTownCodeNames[text]
const codeName = getPastureTownNameFromCode(text)
if (codeName) return codeName

@ -15,15 +15,8 @@ export {
export const expertCorrection = 1716
export const estimatedStock = recognitionTotal + expertCorrection + tradeDeduction
export const townNameAliases = {
色地镇: "色地乡",
瓦切镇: "瓦切乡",
安曲镇: "安曲乡",
龙日镇: "龙日乡",
}
export function canonicalTownName(name) {
return townNameAliases[name] || name
return name
}
export const townRows = townRecognitionRows

@ -2286,16 +2286,11 @@ function mergeTownRows(primaryRows = [], fallbackRows = []) {
}
function normalizeBusinessTownName(name) {
return canonicalTownName(name || "").replace("色地镇", "色地乡").replace("瓦切镇", "瓦切乡").replace("安曲镇", "安曲乡").replace("龙日镇", "龙日乡")
return canonicalTownName(name || "")
}
function normalizeEpidemicTownName(name) {
return String(name || "")
.trim()
.replace("色地乡", "色地镇")
.replace("瓦切乡", "瓦切镇")
.replace("安曲乡", "安曲镇")
.replace("龙日乡", "龙日镇")
return String(name || "").trim()
}
function normalizeAnalysisRows(rows = []) {
@ -3120,10 +3115,6 @@ function buildCenterMapRows(rows, valueKey) {
function toSystemMapTownName(name) {
const aliases = {
色地乡: "色地镇",
瓦切乡: "瓦切镇",
安曲乡: "安曲镇",
龙日乡: "龙日镇",
色地镇: "色地镇",
瓦切镇: "瓦切镇",
安曲镇: "安曲镇",
@ -3134,7 +3125,6 @@ function toSystemMapTownName(name) {
查尔玛乡: "查尔玛乡",
江茸乡: "江茸乡",
麦洼乡: "麦洼乡",
壤口乡: "壤口乡",
}
return aliases[name] || ""
}

Loading…
Cancel
Save