codeMan 2 роки тому
батько
коміт
5aa6739174
57 змінених файлів з 1450 додано та 32 видалено
  1. 1 1
      dist/assets/LOGO-ea827df6.js
  2. 1 1
      dist/assets/PlusCircleOutlined-83ba0fbf.js
  3. 0 0
      dist/assets/base-c3d952f2.js
  4. 1 1
      dist/assets/customBtn-57cde9d7.js
  5. 0 0
      dist/assets/index-0c9d83c7.js
  6. 0 0
      dist/assets/index-23c441b0.js
  7. 0 0
      dist/assets/index-274b26e9.js
  8. 0 0
      dist/assets/index-2908954f.js
  9. 0 0
      dist/assets/index-2d826b11.js
  10. 0 0
      dist/assets/index-37f2337d.js
  11. 0 1
      dist/assets/index-42a841af.css
  12. 0 0
      dist/assets/index-45146dcc.js
  13. 0 0
      dist/assets/index-5415ae72.js
  14. 0 0
      dist/assets/index-55a550a7.js
  15. 0 0
      dist/assets/index-56b555fb.js
  16. 0 0
      dist/assets/index-620f9431.js
  17. 0 0
      dist/assets/index-693a2147.js
  18. 0 0
      dist/assets/index-7170cef5.css
  19. 0 0
      dist/assets/index-71e6004c.js
  20. 0 0
      dist/assets/index-7a8876a3.js
  21. 0 0
      dist/assets/index-8829af94.js
  22. 1 1
      dist/assets/index-94553e53.js
  23. 0 0
      dist/assets/index-9a3a86c8.js
  24. 0 0
      dist/assets/index-9c8cd207.js
  25. 0 0
      dist/assets/index-9f455481.js
  26. 0 0
      dist/assets/index-a17ae618.js
  27. 0 0
      dist/assets/index-a97db878.js
  28. 1 1
      dist/assets/index-b5af19d3.js
  29. 0 0
      dist/assets/index-b90a4a05.js
  30. 1 1
      dist/assets/index-b99d11ef.js
  31. 0 0
      dist/assets/index-b9abadfa.js
  32. 0 0
      dist/assets/index-bc990b76.js
  33. 0 0
      dist/assets/index-ca40e553.js
  34. 1 1
      dist/assets/index-d52fa7f2.js
  35. 0 0
      dist/assets/index-d93bcbf0.css
  36. 0 0
      dist/assets/index-dfab3762.js
  37. 0 0
      dist/assets/index-e141898e.js
  38. 0 0
      dist/assets/index-f0be8e83.js
  39. 0 0
      dist/assets/index-f3374485.js
  40. 0 0
      dist/assets/index-f3dc668a.js
  41. 1 0
      dist/assets/index-f5adee82.css
  42. 0 0
      dist/assets/index-f6eed489.css
  43. 0 0
      dist/assets/index.vue_vue_type_style_index_0_scoped_af319c4c_lang-e92c46e2.js
  44. 1 1
      dist/assets/login-b21040c9.js
  45. 1 1
      dist/assets/map-abeb571f.js
  46. 1 0
      dist/assets/marker1-9cd6afd5.svg
  47. BIN
      dist/dist.zip
  48. 1 1
      dist/index.html
  49. 4 0
      src/components/listTemplate/index.vue
  50. 115 7
      src/operation/moduleNormal/IoTdashboard/index.vue
  51. 1301 0
      src/operation/moduleNormal/IoTdashboard/modules/mapConfig.js
  52. 2 1
      src/operation/moduleNormal/areaManage/index.vue
  53. 1 1
      src/operation/moduleNormal/areaManage/modules/selectArea.vue
  54. 6 6
      src/operation/moduleNormal/controlPanel/model/dianci/index.vue
  55. 7 4
      src/operation/moduleNormal/controlPanel/model/dianci/modules/MyChart.vue
  56. 1 1
      src/operation/moduleNormal/controlPanel/model/dianci/modules/controlPanel.vue
  57. 1 1
      src/operation/moduleNormal/equipmentMag/modules/Edit.vue

+ 1 - 1
dist/assets/LOGO-daacb34a.js → dist/assets/LOGO-ea827df6.js

@@ -1 +1 @@
-import{e as i,r}from"./index-8001ce24.js";const u=i("routeTabs",{state:()=>({historyRoutes:[],activeKey:0}),persist:{enabled:!0,strategies:[{storage:localStorage,paths:["historyRoutes","activeKey"]}]},getters:{},actions:{saveRoute(e){if(!this.historyRoutes.some(o=>o.name==e.name))return this.historyRoutes.push(e)},delRoute(e,s){if(r.options.routes[1].children.forEach(t=>{t.name==e&&(t.keepAlive=!1)}),this.historyRoutes=this.historyRoutes.filter(t=>{if(t.name!==e)return t}),e==s&&this.historyRoutes.length>0)return r.replace({name:this.historyRoutes[0].meta.name})}}}),h=""+new URL("LOGO-c1524a7d.svg",import.meta.url).href;export{h as _,u};
+import{e as i,r}from"./index-7a8876a3.js";const u=i("routeTabs",{state:()=>({historyRoutes:[],activeKey:0}),persist:{enabled:!0,strategies:[{storage:localStorage,paths:["historyRoutes","activeKey"]}]},getters:{},actions:{saveRoute(e){if(!this.historyRoutes.some(o=>o.name==e.name))return this.historyRoutes.push(e)},delRoute(e,s){if(r.options.routes[1].children.forEach(t=>{t.name==e&&(t.keepAlive=!1)}),this.historyRoutes=this.historyRoutes.filter(t=>{if(t.name!==e)return t}),e==s&&this.historyRoutes.length>0)return r.replace({name:this.historyRoutes[0].meta.name})}}}),h=""+new URL("LOGO-c1524a7d.svg",import.meta.url).href;export{h as _,u};

+ 1 - 1
dist/assets/PlusCircleOutlined-2e811982.js → dist/assets/PlusCircleOutlined-83ba0fbf.js

@@ -1 +1 @@
-import{a as i}from"./index-8001ce24.js";import{j as u}from"./vue-b109b72f.js";var s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"plus-circle",theme:"outlined"};const o=s;function a(r){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?Object(arguments[t]):{},n=Object.keys(e);typeof Object.getOwnPropertySymbols=="function"&&(n=n.concat(Object.getOwnPropertySymbols(e).filter(function(c){return Object.getOwnPropertyDescriptor(e,c).enumerable}))),n.forEach(function(c){f(r,c,e[c])})}return r}function f(r,t,e){return t in r?Object.defineProperty(r,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):r[t]=e,r}var l=function(t,e){var n=a({},t,e.attrs);return u(i,a({},n,{icon:o}),null)};l.displayName="PlusCircleOutlined";l.inheritAttrs=!1;const m=l;export{m as P};
+import{a as i}from"./index-7a8876a3.js";import{j as u}from"./vue-b109b72f.js";var s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"plus-circle",theme:"outlined"};const o=s;function a(r){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?Object(arguments[t]):{},n=Object.keys(e);typeof Object.getOwnPropertySymbols=="function"&&(n=n.concat(Object.getOwnPropertySymbols(e).filter(function(c){return Object.getOwnPropertyDescriptor(e,c).enumerable}))),n.forEach(function(c){f(r,c,e[c])})}return r}function f(r,t,e){return t in r?Object.defineProperty(r,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):r[t]=e,r}var l=function(t,e){var n=a({},t,e.attrs);return u(i,a({},n,{icon:o}),null)};l.displayName="PlusCircleOutlined";l.inheritAttrs=!1;const m=l;export{m as P};

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/base-c3d952f2.js


+ 1 - 1
dist/assets/customBtn-e7b75d29.js → dist/assets/customBtn-57cde9d7.js

@@ -1 +1 @@
-import"./index-8001ce24.js";import{_ as B}from"./_plugin-vue_export-helper-c27b6911.js";import{a as _,c as C,V as t,W as a,a4 as d,F as b,a2 as f,$ as s,a1 as k,a0 as g,u as c,a7 as x,R as h}from"./vue-b109b72f.js";const S={class:"btn-box"},F=["onClick"],N={key:0,class:"icon1"},O={key:0,class:"content"},$={__name:"customBtn",props:{btnOptions:Array,btn:!1,tab:{type:Boolean,default:()=>!1},select:{type:Boolean,default:()=>!1},activeNormal:{type:Boolean,default:()=>!0},selectDisabled:{type:Boolean,default:()=>!1},btnColor:{type:String,default:()=>"rgb(22,255,246,.30)"},textColor:{type:String,default:()=>"#16FFF6"},icon1:{type:Boolean,default:()=>!1}},emits:["clickBtn","selectChange"],setup(e,{expose:v,emit:m}){const r=e;let n=_(r.activeNormal?r.btnOptions[0].label:""),y=C(o=>i=>(console.log(n.value),i.value==n.value)),p=o=>{n.value=o.label,m("clickBtn",o)};return v({active:n}),(o,i)=>(t(),a("div",null,[d("div",{class:"btn-wrapper",style:k([{"--btnColor":e.btnColor},{"--textColor":e.textColor}])},[d("div",S,[(t(!0),a(b,null,f(e.btnOptions,l=>(t(),a("div",{class:g(["btn-item",c(n)==l.label?"active":"",{active:e.btn}]),onClick:u=>c(p)(l)},x(l.label),11,F))),256))]),e.icon1?(t(),a("div",N)):s("",!0)],4),e.tab?(t(),a("div",O,[(t(!0),a(b,null,f(e.btnOptions,(l,u)=>(t(),a("div",null,[c(y)(l)?h(o.$slots,`slot${u}`,{key:0,data:l},void 0,!0):s("",!0)]))),256))])):s("",!0)]))}},w=B($,[["__scopeId","data-v-b016e4f0"]]);export{w as c};
+import"./index-7a8876a3.js";import{_ as B}from"./_plugin-vue_export-helper-c27b6911.js";import{a as _,c as C,V as t,W as a,a4 as d,F as b,a2 as f,a0 as k,u as s,a7 as g,$ as c,a1 as x,R as h}from"./vue-b109b72f.js";const S={class:"btn-box"},F=["onClick"],N={key:0,class:"icon1"},O={key:0,class:"content"},$={__name:"customBtn",props:{btnOptions:Array,btn:!1,tab:{type:Boolean,default:()=>!1},select:{type:Boolean,default:()=>!1},activeNormal:{type:Boolean,default:()=>!0},selectDisabled:{type:Boolean,default:()=>!1},btnColor:{type:String,default:()=>"rgb(22,255,246,.30)"},textColor:{type:String,default:()=>"#16FFF6"},icon1:{type:Boolean,default:()=>!1}},emits:["clickBtn","selectChange"],setup(e,{expose:v,emit:m}){const r=e;let n=_(r.activeNormal?r.btnOptions[0].label:""),y=C(o=>i=>(console.log(n.value),i.value==n.value)),p=o=>{n.value=o.label,m("clickBtn",o)};return v({active:n}),(o,i)=>(t(),a("div",null,[d("div",{class:"btn-wrapper",style:x([{"--btnColor":e.btnColor},{"--textColor":e.textColor}])},[d("div",S,[(t(!0),a(b,null,f(e.btnOptions,l=>(t(),a("div",{class:k(["btn-item",s(n)==l.label?"active":"",{active:e.btn}]),onClick:u=>s(p)(l)},g(l.label),11,F))),256))]),e.icon1?(t(),a("div",N)):c("",!0)],4),e.tab?(t(),a("div",O,[(t(!0),a(b,null,f(e.btnOptions,(l,u)=>(t(),a("div",null,[s(y)(l)?h(o.$slots,`slot${u}`,{key:0,data:l},void 0,!0):c("",!0)]))),256))])):c("",!0)]))}},w=B($,[["__scopeId","data-v-b016e4f0"]]);export{w as c};

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-0c9d83c7.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-23c441b0.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-274b26e9.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-2908954f.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-2d826b11.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-37f2337d.js


+ 0 - 1
dist/assets/index-42a841af.css

@@ -1 +0,0 @@
-.view[data-v-af3b8358]{width:800px;height:800px}

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-45146dcc.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-5415ae72.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-55a550a7.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-56b555fb.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-620f9431.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-693a2147.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-7170cef5.css


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-71e6004c.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-7a8876a3.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-8829af94.js


+ 1 - 1
dist/assets/index-ac902a14.js → dist/assets/index-94553e53.js

@@ -1 +1 @@
-import{M as o,A as c,f as l}from"./index-8001ce24.js";import{U as m,V as d,a3 as u,X as p,G as y,a7 as f,u as g}from"./vue-b109b72f.js";const k={__name:"index",props:{type:String,btnName:String,message:String,idName:String,keyName:String,id:[String,Number],paramData:{type:Array,default(){return[]}},size:String,disabled:{type:Boolean,default(){return!1}}},emits:["onSuccess"],setup(e,{emit:i}){const t=e;let r=()=>{o.confirm({title:t.message||"确定操作当前数据吗?",async onOk(){let a={content:{}};a.id=t.idName,a.content[t.keyName]=t.id,t.paramData.forEach(n=>{a.content[n.key]=n.value});let s=await c.requested(a);l.message(s,"操作成功",()=>{i("onSuccess")})},onCancel(){}})};return(a,s)=>{const n=m("a-button");return d(),u(n,{type:e.type?e.type:"primary",onClick:g(r),size:e.size||"small",disabled:e.disabled},{default:p(()=>[y(f(e.btnName),1)]),_:1},8,["type","onClick","size","disabled"])}}};export{k as _};
+import{M as o,A as c,f as l}from"./index-7a8876a3.js";import{U as m,V as d,a3 as u,X as p,G as y,a7 as f,u as g}from"./vue-b109b72f.js";const k={__name:"index",props:{type:String,btnName:String,message:String,idName:String,keyName:String,id:[String,Number],paramData:{type:Array,default(){return[]}},size:String,disabled:{type:Boolean,default(){return!1}}},emits:["onSuccess"],setup(e,{emit:i}){const t=e;let r=()=>{o.confirm({title:t.message||"确定操作当前数据吗?",async onOk(){let a={content:{}};a.id=t.idName,a.content[t.keyName]=t.id,t.paramData.forEach(n=>{a.content[n.key]=n.value});let s=await c.requested(a);l.message(s,"操作成功",()=>{i("onSuccess")})},onCancel(){}})};return(a,s)=>{const n=m("a-button");return d(),u(n,{type:e.type?e.type:"primary",onClick:g(r),size:e.size||"small",disabled:e.disabled},{default:p(()=>[y(f(e.btnName),1)]),_:1},8,["type","onClick","size","disabled"])}}};export{k as _};

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-9a3a86c8.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-9c8cd207.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-9f455481.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-a17ae618.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-a97db878.js


+ 1 - 1
dist/assets/index-577fe396.js → dist/assets/index-b5af19d3.js

@@ -1 +1 @@
-import{l as d}from"./index-22b5322b.js";import{A as m}from"./index-8001ce24.js";import{u}from"./vue-router-b87e440b.js";import{_ as f}from"./_plugin-vue_export-helper-c27b6911.js";import{a as s,U as x,V as r,W as y,j as b,X as n,u as i,G as g,a3 as h,a4 as k,a7 as w,$ as B}from"./vue-b109b72f.js";import"./index.vue_vue_type_style_index_0_scoped_af319c4c_lang-6a416923.js";import"./base-bb899c8b.js";const N={class:"y-container"},v=["onClick"],A={__name:"index",setup(S){u();let c=s([]);s([]);let p=s({content:{pageNumber:1,pageSize:20,systemappid:JSON.parse(sessionStorage.getItem("app")).systemappid},id:20221213094401});const l=()=>{let t=window.location.href,e=t.indexOf("/"),a=0;for(;e!=-1;)if(a++,e=t.indexOf("/",e+1),a++==3)return t.slice(0,e)},_=async t=>{console.log("http://60.204.153.188/");let e=await m.requested({id:20221213094501,content:{sys_reportid:t.sys_reportid,dataid:0}});window.open(l()+e.data)};return(t,e)=>{const a=x("a-button");return r(),y("div",N,[b(d,{columns:i(c),param:i(p),tableName:"reportcenterTable"},{operation:n(()=>[g(" 报表中心 ")]),tb_cell:n(({data:o})=>[o.column.dataIndex=="name"?(r(),h(a,{key:0,type:"link"},{default:n(()=>[k("span",{class:"btn-link",onClick:C=>_(o.record)},w(o.record.name),9,v)]),_:2},1024)):B("",!0)]),_:1},8,["columns","param"])])}}},U=f(A,[["__scopeId","data-v-103da97b"]]);export{U as default};
+import{l as d}from"./index-9a3a86c8.js";import{A as m}from"./index-7a8876a3.js";import{u}from"./vue-router-b87e440b.js";import{_ as f}from"./_plugin-vue_export-helper-c27b6911.js";import{a as s,U as x,V as r,W as y,j as b,X as n,u as i,G as g,a3 as h,a4 as k,a7 as w,$ as B}from"./vue-b109b72f.js";import"./index.vue_vue_type_style_index_0_scoped_af319c4c_lang-e92c46e2.js";import"./base-c3d952f2.js";const N={class:"y-container"},v=["onClick"],A={__name:"index",setup(S){u();let c=s([]);s([]);let p=s({content:{pageNumber:1,pageSize:20,systemappid:JSON.parse(sessionStorage.getItem("app")).systemappid},id:20221213094401});const l=()=>{let t=window.location.href,e=t.indexOf("/"),a=0;for(;e!=-1;)if(a++,e=t.indexOf("/",e+1),a++==3)return t.slice(0,e)},_=async t=>{console.log("http://60.204.153.188/");let e=await m.requested({id:20221213094501,content:{sys_reportid:t.sys_reportid,dataid:0}});window.open(l()+e.data)};return(t,e)=>{const a=x("a-button");return r(),y("div",N,[b(d,{columns:i(c),param:i(p),tableName:"reportcenterTable"},{operation:n(()=>[g(" 报表中心 ")]),tb_cell:n(({data:o})=>[o.column.dataIndex=="name"?(r(),h(a,{key:0,type:"link"},{default:n(()=>[k("span",{class:"btn-link",onClick:C=>_(o.record)},w(o.record.name),9,v)]),_:2},1024)):B("",!0)]),_:1},8,["columns","param"])])}}},U=f(A,[["__scopeId","data-v-103da97b"]]);export{U as default};

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-b90a4a05.js


+ 1 - 1
dist/assets/index-8ac84390.js → dist/assets/index-b99d11ef.js

@@ -1 +1 @@
-import{n as h}from"./index-fcaaca09.js";import{m as k}from"./index-8001ce24.js";import{a as i,w as D,U as R,V as m,W as c,j as d,X as u,ab as _,R as f,F as p,G as S,a7 as x,u as o,H as y}from"./vue-b109b72f.js";const F={__name:"index",props:{title:String,wdith:String},emits:["selectRowData","close"],setup(n,{expose:b,emit:r}){let l=i(),e=i(!1),v=()=>{if(!l.value.tableRecord.length)return k.warning("请选择数据");e.value=!1,r("selectRowData",l.value.tableRecord)};D(()=>e.value,(a,s)=>{a||l.value.reloadSelect()});let w=()=>{r("close")};return b({modeVisible:e}),(a,s)=>{const g=R("a-modal");return m(),c(p,null,[d(g,{visible:o(e),"onUpdate:visible":s[0]||(s[0]=t=>y(e)?e.value=t:e=t),class:"custom-class",title:n.title||"标题",placement:"right",width:n.wdith||"1000px",closable:!1,onClose:o(w),onOk:o(v)},{default:u(()=>[d(h,_(a.$attrs,{ref_key:"list",ref:l,size:"small",onListData:a.listData}),{tb_cell:u(({data:t})=>[t.column.dataIndex==="operation"?f(a.$slots,"handleBtn",{key:0}):(m(),c(p,{key:1},[S(x(t.record[t.column.dataIndex]),1)],64))]),_:3},16,["onListData"])]),_:3},8,["visible","title","width","onClose","onOk"]),f(a.$slots,"slot1")],64)}}};export{F as _};
+import{n as h}from"./index-37f2337d.js";import{m as k}from"./index-7a8876a3.js";import{a as i,w as D,U as R,V as m,W as c,j as d,X as u,ab as _,R as f,F as p,G as S,a7 as x,u as o,H as y}from"./vue-b109b72f.js";const F={__name:"index",props:{title:String,wdith:String},emits:["selectRowData","close"],setup(n,{expose:b,emit:r}){let l=i(),e=i(!1),v=()=>{if(!l.value.tableRecord.length)return k.warning("请选择数据");e.value=!1,r("selectRowData",l.value.tableRecord)};D(()=>e.value,(a,s)=>{a||l.value.reloadSelect()});let w=()=>{r("close")};return b({modeVisible:e}),(a,s)=>{const g=R("a-modal");return m(),c(p,null,[d(g,{visible:o(e),"onUpdate:visible":s[0]||(s[0]=t=>y(e)?e.value=t:e=t),class:"custom-class",title:n.title||"标题",placement:"right",width:n.wdith||"1000px",closable:!1,onClose:o(w),onOk:o(v)},{default:u(()=>[d(h,_(a.$attrs,{ref_key:"list",ref:l,size:"small",onListData:a.listData}),{tb_cell:u(({data:t})=>[t.column.dataIndex==="operation"?f(a.$slots,"handleBtn",{key:0}):(m(),c(p,{key:1},[S(x(t.record[t.column.dataIndex]),1)],64))]),_:3},16,["onListData"])]),_:3},8,["visible","title","width","onClose","onOk"]),f(a.$slots,"slot1")],64)}}};export{F as _};

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-b9abadfa.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-bc990b76.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-ca40e553.js


+ 1 - 1
dist/assets/index-5b4d11ba.js → dist/assets/index-d52fa7f2.js

@@ -1 +1 @@
-import{l as n}from"./index-22b5322b.js";import{a as e,o as s,V as p,W as i,j as c,X as l,u as a}from"./vue-b109b72f.js";import"./vue-router-b87e440b.js";import"./index.vue_vue_type_style_index_0_scoped_af319c4c_lang-6a416923.js";import"./index-8001ce24.js";import"./base-bb899c8b.js";import"./_plugin-vue_export-helper-c27b6911.js";const g={__name:"index",setup(m){const t=e();let r=e([{label:"范围",key:"isnext",type:"select",dataSource:[{remarks:"今年",value:"0"},{remarks:"明年",value:"1"}]},{label:"时间范围",key:"dateRange",type:"datepickerRange",objKeys:["begindate","enddate"]}]),o=e({content:{pageNumber:1,pageSize:20,isnext:0,where:{condition:""}},id:20221215165504});return s(()=>{}),(u,d)=>(p(),i("div",null,[c(n,{ref_key:"list",ref:t,keyRouteName:"accountno",param:a(o),tableName:"vacationTable",searchType:a(r)},{operation:l(()=>[]),_:1},8,["param","searchType"])]))}};export{g as default};
+import{l as n}from"./index-9a3a86c8.js";import{a as e,o as s,V as p,W as i,j as c,X as l,u as a}from"./vue-b109b72f.js";import"./vue-router-b87e440b.js";import"./index.vue_vue_type_style_index_0_scoped_af319c4c_lang-e92c46e2.js";import"./index-7a8876a3.js";import"./base-c3d952f2.js";import"./_plugin-vue_export-helper-c27b6911.js";const g={__name:"index",setup(m){const t=e();let r=e([{label:"范围",key:"isnext",type:"select",dataSource:[{remarks:"今年",value:"0"},{remarks:"明年",value:"1"}]},{label:"时间范围",key:"dateRange",type:"datepickerRange",objKeys:["begindate","enddate"]}]),o=e({content:{pageNumber:1,pageSize:20,isnext:0,where:{condition:""}},id:20221215165504});return s(()=>{}),(u,d)=>(p(),i("div",null,[c(n,{ref_key:"list",ref:t,keyRouteName:"accountno",param:a(o),tableName:"vacationTable",searchType:a(r)},{operation:l(()=>[]),_:1},8,["param","searchType"])]))}};export{g as default};

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-d93bcbf0.css


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-dfab3762.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-e141898e.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-f0be8e83.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-f3374485.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-f3dc668a.js


+ 1 - 0
dist/assets/index-f5adee82.css

@@ -0,0 +1 @@
+.view[data-v-49abf9eb]{width:800px;height:800px}

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index-f6eed489.css


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/assets/index.vue_vue_type_style_index_0_scoped_af319c4c_lang-e92c46e2.js


+ 1 - 1
dist/assets/login-c2a902fe.js → dist/assets/login-b21040c9.js

@@ -1,4 +1,4 @@
-import{u as useRouter}from"./vue-router-b87e440b.js";import{c as commonjsGlobal,u as useAuthStore,s as storeToRefs,A as Api,m as message}from"./index-8001ce24.js";import{u as useRouteTabsStore,_ as _imports_0}from"./LOGO-daacb34a.js";import{_ as _export_sfc}from"./_plugin-vue_export-helper-c27b6911.js";import{d as defineComponent,U as resolveComponent,V as openBlock,W as createElementBlock,a4 as createBaseVNode,j as createVNode,X as withCtx,a as ref,r as reactive,a1 as normalizeStyle,G as createTextVNode,a5 as pushScopeId,a6 as popScopeId}from"./vue-b109b72f.js";var md5Exports={},md5$1={get exports(){return md5Exports},set exports(e){md5Exports=e}};/**
+import{u as useRouter}from"./vue-router-b87e440b.js";import{c as commonjsGlobal,u as useAuthStore,s as storeToRefs,A as Api,m as message}from"./index-7a8876a3.js";import{u as useRouteTabsStore,_ as _imports_0}from"./LOGO-ea827df6.js";import{_ as _export_sfc}from"./_plugin-vue_export-helper-c27b6911.js";import{d as defineComponent,U as resolveComponent,V as openBlock,W as createElementBlock,a4 as createBaseVNode,j as createVNode,X as withCtx,a as ref,r as reactive,a1 as normalizeStyle,G as createTextVNode,a5 as pushScopeId,a6 as popScopeId}from"./vue-b109b72f.js";var md5Exports={},md5$1={get exports(){return md5Exports},set exports(e){md5Exports=e}};/**
  * [js-md5]{@link https://github.com/emn178/js-md5}
  *
  * @namespace md5

+ 1 - 1
dist/assets/map-315f8154.js → dist/assets/map-abeb571f.js

@@ -1 +1 @@
-import"./index-8001ce24.js";import{_ as w}from"./_plugin-vue_export-helper-c27b6911.js";import{a as m,U as s,V as C,a3 as z,X as u,a4 as B,j as i,u as t,H as N}from"./vue-b109b72f.js";const U={style:{"margin-bottom":"10px"}},L={__name:"map",props:["data"],emits:["submitLatLng"],setup(r,{expose:c,emit:v}){const p=r;let e=m({lat:0,lng:0}),d=m(0);m();let l=m(!1),g=()=>{l.value=!1,v("submitLatLng",e.value)},f=({Bmap:o,map:a})=>{console.log(o,a,p.data),p.data&&(e.value.lat=p.data.latitude||0,e.value.lng=p.data.longitude||0),d.value=15},b=o=>{console.log(o),e.value.lat=o.latlng.lat,e.value.lng=o.latlng.lng};return c({modeVisible:l,latlng:e}),(o,a)=>{const _=s("a-input"),x=s("bm-label"),k=s("bm-marker"),y=s("baidu-map"),h=s("a-modal");return C(),z(h,{visible:t(l),"onUpdate:visible":a[2]||(a[2]=n=>N(l)?l.value=n:l=n),class:"custom-class",title:"选择角色",placement:"right",width:"1000px",onOk:t(g)},{default:u(()=>[B("div",U,[i(_,{style:{width:"200px"},placeholder:"请输入经度",value:t(e).lat,"onUpdate:value":a[0]||(a[0]=n=>t(e).lat=n)},null,8,["value"]),i(_,{style:{width:"200px"},placeholder:"请输入维度",value:t(e).lng,"onUpdate:value":a[1]||(a[1]=n=>t(e).lng=n)},null,8,["value"])]),i(y,{class:"view",center:t(e),zoom:t(d),"scroll-wheel-zoom":!0,onReady:t(f),onClick:t(b)},{default:u(()=>[i(k,{position:t(e),dragging:!0,animation:"BMAP_ANIMATION_BOUNCE"},{default:u(()=>[i(x,{content:"当前标记点",labelStyle:{color:"red",fontSize:"24px"},offset:{width:-35,height:30}})]),_:1},8,["position"])]),_:1},8,["center","zoom","onReady","onClick"])]),_:1},8,["visible","onOk"])}}},V=w(L,[["__scopeId","data-v-9041cf63"]]);export{V as M};
+import"./index-7a8876a3.js";import{_ as w}from"./_plugin-vue_export-helper-c27b6911.js";import{a as m,U as s,V as C,a3 as z,X as u,a4 as B,j as i,u as t,H as N}from"./vue-b109b72f.js";const U={style:{"margin-bottom":"10px"}},L={__name:"map",props:["data"],emits:["submitLatLng"],setup(r,{expose:c,emit:v}){const p=r;let e=m({lat:0,lng:0}),d=m(0);m();let l=m(!1),g=()=>{l.value=!1,v("submitLatLng",e.value)},f=({Bmap:o,map:a})=>{console.log(o,a,p.data),p.data&&(e.value.lat=p.data.latitude||0,e.value.lng=p.data.longitude||0),d.value=15},b=o=>{console.log(o),e.value.lat=o.latlng.lat,e.value.lng=o.latlng.lng};return c({modeVisible:l,latlng:e}),(o,a)=>{const _=s("a-input"),x=s("bm-label"),k=s("bm-marker"),y=s("baidu-map"),h=s("a-modal");return C(),z(h,{visible:t(l),"onUpdate:visible":a[2]||(a[2]=n=>N(l)?l.value=n:l=n),class:"custom-class",title:"选择角色",placement:"right",width:"1000px",onOk:t(g)},{default:u(()=>[B("div",U,[i(_,{style:{width:"200px"},placeholder:"请输入经度",value:t(e).lat,"onUpdate:value":a[0]||(a[0]=n=>t(e).lat=n)},null,8,["value"]),i(_,{style:{width:"200px"},placeholder:"请输入维度",value:t(e).lng,"onUpdate:value":a[1]||(a[1]=n=>t(e).lng=n)},null,8,["value"])]),i(y,{class:"view",center:t(e),zoom:t(d),"scroll-wheel-zoom":!0,onReady:t(f),onClick:t(b)},{default:u(()=>[i(k,{position:t(e),dragging:!0,animation:"BMAP_ANIMATION_BOUNCE"},{default:u(()=>[i(x,{content:"当前标记点",labelStyle:{color:"red",fontSize:"24px"},offset:{width:-35,height:30}})]),_:1},8,["position"])]),_:1},8,["center","zoom","onReady","onClick"])]),_:1},8,["visible","onOk"])}}},V=w(L,[["__scopeId","data-v-9041cf63"]]);export{V as M};

+ 1 - 0
dist/assets/marker1-9cd6afd5.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1689125205513" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2659" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M210.307143 724.056458a422.3956 422.3956 0 0 1 0-599.801752c166.611598-165.672941 436.774117-165.672941 603.385714 0a422.3956 422.3956 0 0 1 0 599.844418L512 1024l-301.692857-299.943542zM512 554.671556a127.998667 127.998667 0 1 0 0-255.997334 127.998667 127.998667 0 0 0 0 255.997334z" fill="#e98f36" p-id="2660"></path></svg>


+ 1 - 1
dist/index.html

@@ -6,7 +6,7 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>班尼戈水务管理</title>
     <!-- <script src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=yPAXrDnWV10GdKxnOMwfk8UrjSDCRLun"></script> -->
-    <script type="module" crossorigin src="./assets/index-8001ce24.js"></script>
+    <script type="module" crossorigin src="./assets/index-7a8876a3.js"></script>
     <link rel="modulepreload" crossorigin href="./assets/vue-b109b72f.js">
     <link rel="modulepreload" crossorigin href="./assets/vue-router-b87e440b.js">
     <link rel="stylesheet" href="./assets/index-06454cca.css">

+ 4 - 0
src/components/listTemplate/index.vue

@@ -87,6 +87,9 @@
   let { app } = storeToRefs(store)
   let { PageUpParam,nowPageData,keyid,pageTotal,fullscreen } = storeToRefs(base)
   let { selectedColumns } = storeToRefs(colStore)
+
+  let emit = defineEmits(['emitRes'])
+
   const router = useRouter()
   const props = defineProps({
     param: Object,
@@ -135,6 +138,7 @@
   const tableData = async ()=>{
     loading.value = true
     const res = await Api.requested(props.param)
+    emit('emitRes',res)
     dataSource.value = res.data
     total.value = res.total
     sort.value = res.sort

+ 115 - 7
src/operation/moduleNormal/IoTdashboard/index.vue

@@ -24,14 +24,14 @@
       <!--地图-->
       <div class="M-map" :style="model ? 'display:inline-block' : 'display:none'">
         <baidu-map
-          map-type="BMAP_PERSPECTIVE_MAP"
           class="map"
           ref="map"
           :center="latlng"
           :zoom="zoom"
           :scroll-wheel-zoom="true"
           @ready="mapReady"
-          @click="mapClick">
+          @click="mapClick"
+          :mapStyle="mapConfig">
           <bm-marker 
             v-for="item in list" 
             :position="{lat:item.latitude,lng:item.longitude}" 
@@ -49,7 +49,7 @@
               <span>设备信息</span>
             </div>
             <div class="right">
-              <customBtn :btn="true" :btn-options="[{'label':'控制面板'}]" @clickBtn="router.push({path:'/equipmentDetail',query:{id:infoPanel.baseInfo.w_deviceid}})"></customBtn>
+              <customBtn :btn="true" :btn-options="[{'label':'控制面板'}]" @clickBtn="router.push({path:infoPanel.baseInfo.dashboardpath,query:{id:infoPanel.baseInfo.w_deviceid}})"></customBtn>
             </div>
           </div>
           <div class="map-deviced-info">
@@ -102,7 +102,7 @@
         <normalTable rowKey="w_deviceid" ref="list" size="small" :param="param2" :columns="utils.TBLayout('equipmentTable')">
           <template #tb_cell="{data}">
             <div v-if="data.column.dataIndex == 'operation'">
-              <a-button type="link" @click="router.push({path:'/equipmentDetail',query:{id:data.record.w_deviceid}})">控制界面</a-button>
+              <a-button type="link" @click="router.push({path:data.record.dashboardpath,query:{id:data.record.w_deviceid}})">控制界面</a-button>
             </div>
             <div v-else-if="data.column.dataIndex == 'rwtype'">
               {{ data.record.rwtype == 0 ? '读' : data.record.rwtype == 1 ? '写' : '上报' }}
@@ -122,6 +122,7 @@
 </template>
 
 <script setup>
+import mapConfig from './modules/mapConfig.js'
 import MarkerIcon from '../../../assets/map/marker1.svg'
 import customBtn from '../controlPanel/modules/customBtn.vue'
 import productInfo from './modules/productInfo.vue'
@@ -162,7 +163,7 @@ let latlng = ref({
   lat:0,
   lng:0
 })
-let zoom = ref(0)
+let zoom = ref(3)
 let model = ref(true)
 let map = ref()
 let infoPanel = ref({
@@ -173,6 +174,110 @@ let dataInfoList = ref([])
 
 let router = useRouter()
 
+let autoRange = (map, points_arr) => {
+  if (points_arr.length === 0) {
+      return
+  }
+  /**
+   * 先计算中心点坐标
+   * 1. 找出所有点中最大最小经纬度
+   * 2. 计算中心点坐标
+   *
+   *
+   * bssw 为左下角
+   * bsne 为右上角
+   *
+   * 目标点的纬度需要大于左下角点的纬度并且小于右上角的纬度
+   * 目标点的经度需要大于左下角点的经度并且小于右上角的经度
+   *
+   */
+  let max_lng = points_arr[0].split(',')[0],
+      min_lat = points_arr[0].split(',')[1],
+      max_lat = points_arr[0].split(',')[1],
+      min_lng = points_arr[0].split(',')[0]
+  for (let i = 0; i < points_arr.length - 1; i++) {
+      let lng_lat = points_arr[i + 1].split(',')
+      //   max = max < arr[i+1] ? arr[i+1] : max
+      max_lng = max_lng < lng_lat[0] ? lng_lat[0] : max_lng
+      min_lng = min_lng > lng_lat[0] ? lng_lat[0] : min_lng
+      max_lat = max_lat < lng_lat[1] ? lng_lat[1] : max_lat
+      min_lat = min_lat > lng_lat[1] ? lng_lat[1] : min_lat
+  }
+  // console.log((Number(max_lng) + Number(min_lng)) / 2,(Number(max_lat)+Number(min_lat))/2);
+  let n_lng = (Number(max_lng) + Number(min_lng)) / 2
+  let n_lat = (Number(max_lat) + Number(min_lat)) / 2
+
+  /**
+   * 计算层级
+   *  百度地图比例尺与级别关系
+   */
+  let bs = map.getBounds() //获取可视区域
+  let bssw = bs.getSouthWest() //可视区域左下角
+  let bsne = bs.getNorthEast() //可视区域右上角
+// 百度地图比例尺与级别关系,参考https://blog.csdn.net/tjj3027/article/details/81015138
+  const map_rule = [
+      500000,
+      250000,
+      100000,
+      50000,
+      25000,
+      10000,
+      5000,
+      2500,
+      1250,
+      1000,
+      500,
+      250,
+      100,
+      50,
+      25,
+      10,
+      5,
+      2.5,
+      1,
+  ]
+
+  let zoomA = [4, 4]
+  for (let j = 0; j < 2; j++) {
+      let viewSize, searchSize
+      if (j === 0) {
+          viewSize = bsne.lng - bssw.lng // 当前可视宽度右上角经度-左下角经度
+          searchSize = (max_lng - min_lng) * 1.1 // 搜索结果的最大宽度 经度最大值-经度最小值
+      } else {
+          viewSize = bsne.lat - bssw.lat // 当前可视高度右上角纬度-左下角纬度
+          searchSize = (max_lat - min_lat) * 1.1 // 搜索结果的最大宽度 纬度最大值-纬度最小值
+      }
+
+      let minDiff = 0
+      for (let i = 0; i < map_rule.length; i++) {
+          let diff =
+              (viewSize * map_rule[i]) / map_rule[zoom.value - 1] - searchSize
+          if (diff > 0) {
+              if (minDiff == 0 || diff < minDiff) {
+                  zoomA[j] = i + 1
+                  minDiff = diff
+              }
+          }
+      }
+  }
+  let zoom1 = zoomA[0] > zoomA[1] ? zoomA[1] : zoomA[0]
+  // 设定地图最大缩放层级为18,最小为4
+  zoom1 = zoom1 >= 18 ? 18 : zoom1
+  zoom1 = zoom1 <= 4 ? 4 : zoom1
+/*
+*  图移动到新的中点,调整好层级
+*  这里使用 map.centerAndZoom(new BMap.Point(n_lng, n_lat),zoom)
+*	屏幕可能会过度晃动,暂时知道原因,所以用了下面的方案
+**/
+  zoom.value = zoom1
+  function setCenter() {
+      map.panTo(new BMap.Point(n_lng, n_lat), { noAnimation: false }) // 设置中心点坐标
+      map.removeEventListener('tilesloaded', setCenter)
+  }
+  //地图加载完毕(地图稍微有改动就会触发) 当地图所有图块完成加载时触发此事件
+  map.addEventListener("tilesloaded", setCenter);
+}
+
 let listData = async () => {
   let res = await Api.requested(param.value)
   list.value = res.data
@@ -189,8 +294,11 @@ let getData = async () => {
 }
 
 let mapReady = ({Bmap,map}) => {
-  map.setCenter('嘉兴')
-  zoom.value = 15
+  let lngLatArr = list.value.map(item => {
+    return item.longitude + ',' + item.latitude
+  })
+  map.value = map
+  autoRange(map,lngLatArr)
 }
 
 let mapClick = (e) => {

+ 1301 - 0
src/operation/moduleNormal/IoTdashboard/modules/mapConfig.js

@@ -0,0 +1,1301 @@
+export default {
+  styleJson: [{
+    "featureType": "land",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "on",
+        "color": "#091220ff"
+    }
+  }, {
+    "featureType": "water",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "on",
+        "color": "#113549ff"
+    }
+  }, {
+    "featureType": "green",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "on",
+        "color": "#0e1b30ff"
+    }
+  }, {
+    "featureType": "building",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "on"
+    }
+  }, {
+    "featureType": "building",
+    "elementType": "geometry.topfill",
+    "stylers": {
+        "color": "#113549ff"
+    }
+  }, {
+    "featureType": "building",
+    "elementType": "geometry.sidefill",
+    "stylers": {
+        "color": "#143e56ff"
+    }
+  }, {
+    "featureType": "building",
+    "elementType": "geometry.stroke",
+    "stylers": {
+        "color": "#dadada00"
+    }
+  }, {
+    "featureType": "subwaystation",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "on",
+        "color": "#113549B2"
+    }
+  }, {
+    "featureType": "education",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "on",
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "medical",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "on",
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "scenicspots",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "on",
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "highway",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "on",
+        "weight": 4
+    }
+  }, {
+    "featureType": "highway",
+    "elementType": "geometry.fill",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "highway",
+    "elementType": "geometry.stroke",
+    "stylers": {
+        "color": "#fed66900"
+    }
+  }, {
+    "featureType": "highway",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "on"
+    }
+  }, {
+    "featureType": "highway",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "highway",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "highway",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "on"
+    }
+  }, {
+    "featureType": "arterial",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "on",
+        "weight": 2
+    }
+  }, {
+    "featureType": "arterial",
+    "elementType": "geometry.fill",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "arterial",
+    "elementType": "geometry.stroke",
+    "stylers": {
+        "color": "#ffeebb00"
+    }
+  }, {
+    "featureType": "arterial",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "on"
+    }
+  }, {
+    "featureType": "arterial",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "arterial",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "local",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "on",
+        "weight": 1
+    }
+  }, {
+    "featureType": "local",
+    "elementType": "geometry.fill",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "local",
+    "elementType": "geometry.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "local",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "on"
+    }
+  }, {
+    "featureType": "local",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#979c9aff"
+    }
+  }, {
+    "featureType": "local",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffffff"
+    }
+  }, {
+    "featureType": "railway",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "subway",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "off",
+        "weight": 1
+    }
+  }, {
+    "featureType": "subway",
+    "elementType": "geometry.fill",
+    "stylers": {
+        "color": "#d8d8d8ff"
+    }
+  }, {
+    "featureType": "subway",
+    "elementType": "geometry.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "subway",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "on"
+    }
+  }, {
+    "featureType": "subway",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#979c9aff"
+    }
+  }, {
+    "featureType": "subway",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffffff"
+    }
+  }, {
+    "featureType": "continent",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "on"
+    }
+  }, {
+    "featureType": "continent",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "on"
+    }
+  }, {
+    "featureType": "continent",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "continent",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "city",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "city",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "on"
+    }
+  }, {
+    "featureType": "city",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "city",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "town",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "on"
+    }
+  }, {
+    "featureType": "town",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "town",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#454d50ff"
+    }
+  }, {
+    "featureType": "town",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffffff"
+    }
+  }, {
+    "featureType": "road",
+    "elementType": "geometry.fill",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "poilabel",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "on"
+    }
+  }, {
+    "featureType": "districtlabel",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "road",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "on"
+    }
+  }, {
+    "featureType": "road",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "road",
+    "elementType": "geometry.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "district",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "on"
+    }
+  }, {
+    "featureType": "poilabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "poilabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "poilabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "manmade",
+    "elementType": "geometry",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "districtlabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffffff"
+    }
+  }, {
+    "featureType": "entertainment",
+    "elementType": "geometry",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "shopping",
+    "elementType": "geometry",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "nationalway",
+    "stylers": {
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,10",
+        "level": "6"
+    }
+  }, {
+    "featureType": "nationalway",
+    "stylers": {
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,10",
+        "level": "7"
+    }
+  }, {
+    "featureType": "nationalway",
+    "stylers": {
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,10",
+        "level": "8"
+    }
+  }, {
+    "featureType": "nationalway",
+    "stylers": {
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,10",
+        "level": "9"
+    }
+  }, {
+    "featureType": "nationalway",
+    "stylers": {
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,10",
+        "level": "10"
+    }
+  }, {
+    "featureType": "nationalway",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,10",
+        "level": "6"
+    }
+  }, {
+    "featureType": "nationalway",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,10",
+        "level": "7"
+    }
+  }, {
+    "featureType": "nationalway",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,10",
+        "level": "8"
+    }
+  }, {
+    "featureType": "nationalway",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,10",
+        "level": "9"
+    }
+  }, {
+    "featureType": "nationalway",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,10",
+        "level": "10"
+    }
+  }, {
+    "featureType": "nationalway",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,10",
+        "level": "6"
+    }
+  }, {
+    "featureType": "nationalway",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,10",
+        "level": "7"
+    }
+  }, {
+    "featureType": "nationalway",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,10",
+        "level": "8"
+    }
+  }, {
+    "featureType": "nationalway",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,10",
+        "level": "9"
+    }
+  }, {
+    "featureType": "nationalway",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,10",
+        "level": "10"
+    }
+  }, {
+    "featureType": "cityhighway",
+    "stylers": {
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,9",
+        "level": "6"
+    }
+  }, {
+    "featureType": "cityhighway",
+    "stylers": {
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,9",
+        "level": "7"
+    }
+  }, {
+    "featureType": "cityhighway",
+    "stylers": {
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,9",
+        "level": "8"
+    }
+  }, {
+    "featureType": "cityhighway",
+    "stylers": {
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,9",
+        "level": "9"
+    }
+  }, {
+    "featureType": "cityhighway",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,9",
+        "level": "6"
+    }
+  }, {
+    "featureType": "cityhighway",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,9",
+        "level": "7"
+    }
+  }, {
+    "featureType": "cityhighway",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,9",
+        "level": "8"
+    }
+  }, {
+    "featureType": "cityhighway",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,9",
+        "level": "9"
+    }
+  }, {
+    "featureType": "cityhighway",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,9",
+        "level": "6"
+    }
+  }, {
+    "featureType": "cityhighway",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,9",
+        "level": "7"
+    }
+  }, {
+    "featureType": "cityhighway",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,9",
+        "level": "8"
+    }
+  }, {
+    "featureType": "cityhighway",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off",
+        "curZoomRegionId": "0",
+        "curZoomRegion": "6,9",
+        "level": "9"
+    }
+  }, {
+    "featureType": "subwaylabel",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "subwaylabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "tertiarywaysign",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "tertiarywaysign",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "provincialwaysign",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "provincialwaysign",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "nationalwaysign",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "nationalwaysign",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "highwaysign",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "highwaysign",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "village",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "district",
+    "elementType": "labels.text",
+    "stylers": {
+        "fontsize": 20
+    }
+  }, {
+    "featureType": "district",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "district",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "country",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "country",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "water",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "water",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "cityhighway",
+    "elementType": "geometry.fill",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "cityhighway",
+    "elementType": "geometry.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "tertiaryway",
+    "elementType": "geometry.fill",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "tertiaryway",
+    "elementType": "geometry.stroke",
+    "stylers": {
+        "color": "#ffffff10"
+    }
+  }, {
+    "featureType": "provincialway",
+    "elementType": "geometry.fill",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "provincialway",
+    "elementType": "geometry.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "nationalway",
+    "elementType": "geometry.fill",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "nationalway",
+    "elementType": "geometry.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "highway",
+    "elementType": "labels.text",
+    "stylers": {
+        "fontsize": 20
+    }
+  }, {
+    "featureType": "nationalway",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "nationalway",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "nationalway",
+    "elementType": "labels.text",
+    "stylers": {
+        "fontsize": 20
+    }
+  }, {
+    "featureType": "provincialway",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "provincialway",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "provincialway",
+    "elementType": "labels.text",
+    "stylers": {
+        "fontsize": 20
+    }
+  }, {
+    "featureType": "cityhighway",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "cityhighway",
+    "elementType": "labels.text",
+    "stylers": {
+        "fontsize": 20
+    }
+  }, {
+    "featureType": "cityhighway",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "estate",
+    "elementType": "geometry",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "tertiaryway",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "tertiaryway",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "fourlevelway",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "fourlevelway",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "scenicspotsway",
+    "elementType": "geometry.fill",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "scenicspotsway",
+    "elementType": "geometry.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "universityway",
+    "elementType": "geometry.fill",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "universityway",
+    "elementType": "geometry.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "vacationway",
+    "elementType": "geometry.fill",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "vacationway",
+    "elementType": "geometry.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "fourlevelway",
+    "elementType": "geometry",
+    "stylers": {
+        "visibility": "on"
+    }
+  }, {
+    "featureType": "fourlevelway",
+    "elementType": "geometry.fill",
+    "stylers": {
+        "color": "#12223dff"
+    }
+  }, {
+    "featureType": "fourlevelway",
+    "elementType": "geometry.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "transportationlabel",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "on"
+    }
+  }, {
+    "featureType": "transportationlabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "transportationlabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "transportationlabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "educationlabel",
+    "elementType": "labels",
+    "stylers": {
+        "visibility": "on"
+    }
+  }, {
+    "featureType": "educationlabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "educationlabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "educationlabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "transportation",
+    "elementType": "geometry",
+    "stylers": {
+        "color": "#113549ff"
+    }
+  }, {
+    "featureType": "airportlabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "airportlabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "scenicspotslabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "scenicspotslabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "medicallabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "medicallabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "medicallabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "scenicspotslabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "airportlabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "entertainmentlabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "entertainmentlabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "entertainmentlabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "estatelabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "estatelabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "estatelabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "businesstowerlabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "businesstowerlabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "businesstowerlabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "companylabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "companylabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "companylabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "governmentlabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "governmentlabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "governmentlabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "restaurantlabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "restaurantlabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "restaurantlabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "hotellabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "hotellabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "hotellabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "shoppinglabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "shoppinglabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "shoppinglabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "lifeservicelabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "lifeservicelabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "lifeservicelabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "carservicelabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "carservicelabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "carservicelabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "financelabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "financelabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "financelabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "otherlabel",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "otherlabel",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "otherlabel",
+    "elementType": "labels.icon",
+    "stylers": {
+        "visibility": "off"
+    }
+  }, {
+    "featureType": "manmade",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "manmade",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "transportation",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "transportation",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "education",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "education",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "medical",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "medical",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }, {
+    "featureType": "scenicspots",
+    "elementType": "labels.text.fill",
+    "stylers": {
+        "color": "#2dc4bbff"
+    }
+  }, {
+    "featureType": "scenicspots",
+    "elementType": "labels.text.stroke",
+    "stylers": {
+        "color": "#ffffff00"
+    }
+  }]
+}

+ 2 - 1
src/operation/moduleNormal/areaManage/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <listTemp ref="list" :param="param" :tableName="'areaTable'" :searchType="searchType" @listData="listData">
+  <listTemp ref="list" :param="param" :tableName="'areaTable'" :searchType="searchType" @emitRes="listData">
     <template #operation>
       <Add @onSuccess="$refs.list.tableData()"></Add>
     </template>
@@ -63,6 +63,7 @@ let createDeep = (array) => {
     console.log(item);
     arr.push(deepFun(item))
   })
+  console.log(arr,'arr');
   return arr
 }
 

+ 1 - 1
src/operation/moduleNormal/areaManage/modules/selectArea.vue

@@ -8,7 +8,7 @@
     :closable="false"
     @close="visible=false"
     @ok="submit">
-    <normalTable :filterMultiple="true" rowKey="w_areaid" ref="list" size="small" :param="param" :columns="utils.TBLayout('areaTable')" @onSelect="onSelect" @handleList="handleList">
+    <normalTable :filterMultiple="true" rowKey="w_areaid" ref="list" size="small" :param="param" :columns="utils.TBLayout('areaTable').splice(0,utils.TBLayout('areaTable').length - 1)" @onSelect="onSelect" @handleList="handleList">
       <template #tb_cell="{data}">
         {{ data.record[data.column.dataIndex] }}
       </template>

+ 6 - 6
src/operation/moduleNormal/controlPanel/model/dianci/index.vue

@@ -21,7 +21,7 @@
           <dataBlock 
             v-if="detail.params.UpP"
             :title="detail.params.UpP.paramname" 
-            top="220" 
+            top="250" 
             left="0" 
             :data="[{value:detail.params.UpP.lastvalue,unit:detail.params.UpP.unit}]"
           ></dataBlock>
@@ -31,7 +31,7 @@
             left="300" 
             :data="[{title:detail.params.Batt4.paramname,value:detail.params.Batt4.lastvalue,unit:detail.params.Batt4.unit},{title:detail.params.Batt12.paramname,value,value:detail.params.Batt12.lastvalue,unit:detail.params.Batt12.unit},{title:detail.params.BatFlow.paramname,value:detail.params.BatFlow.lastvalue,unit:detail.params.BatFlow.unit}]"
           ></dataBlock>
-          <dataBlock :title="detail.params.DaoFa.paramname" top="220" left="400" v-if="detail.function['Pilot valve'] && detail.params.DaoFa">
+          <dataBlock :title="detail.params.DaoFa.paramname" top="-30" left="480" v-if="detail.function['Pilot valve'] && detail.params.DaoFa">
             <div style="display: flex;">
               <div style="padding: 0 5px;">
                 <a-tag color="blue">{{ detail.params.DaoFa.options.filter(item => item.value == detail.params.DaoFa.lastvalue).length && detail.params.DaoFa.options.filter(item => item.value == +detail.params.DaoFa.lastvalue)[0].label }}</a-tag>
@@ -45,8 +45,8 @@
           <dataBlock 
             v-if="detail.params.DownP"
             :title="detail.params.DownP.paramname" 
-            top="220" 
-            left="200" 
+            top="250" 
+            left="250" 
             :data="[{value:detail.params.DownP.lastvalue,unit:detail.params.DownP.unit}]"
           ></dataBlock>
           <div class="stop" v-if="detail.function['cease']">
@@ -251,7 +251,7 @@ onUnmounted(() => {
   position: relative;
   display: flex;
   align-items: center;
-  min-width: 770px;
+  min-width: 600px;
   min-height: 420px;
   padding: 0 70rem;
 }
@@ -279,7 +279,7 @@ onUnmounted(() => {
   background: #ffffff; */
   position: absolute;
   top: -30px;
-  right: 0;
+  right: -60px;
   display: flex;
   flex-direction: column;
   align-items: center;

+ 7 - 4
src/operation/moduleNormal/controlPanel/model/dianci/modules/MyChart.vue

@@ -6,7 +6,7 @@
         <template #title>
           抓取的数据类型
         </template>
-        <a-select v-model:value="param.content.function.fn" style="width: 100px;margin-right: 10px;" @change="typeChange">
+        <a-select size="mini" v-model:value="param.content.function.fn" style="width: 100px;margin-right: 10px;">
           <a-select-option value="sum">总和值</a-select-option>
           <a-select-option value="mean">平均值</a-select-option>
           <a-select-option value="first">首值</a-select-option>
@@ -19,7 +19,7 @@
         <template #title>
           时间筛选类型
         </template>
-          <a-select v-model:value="param.content.range.timetype" style="width: 100px;margin-right: 10px;" @change="typeChange">
+          <a-select size="mini" v-model:value="param.content.range.timetype" style="width: 100px;margin-right: 10px;" @change="typeChange">
           <a-select-option value="y">年</a-select-option>
           <a-select-option value="mo">月</a-select-option>
           <a-select-option value="d">日</a-select-option>
@@ -35,6 +35,7 @@
         v-model:value="rangeTime"
         style="width: 400px"
         show-time
+        size="mini"
         @change="timeRangeChange"
         format="YYYY/MM/DD HH:mm:ss"
         value-format="YYYY-MM-DD HH:mm:ss"
@@ -44,13 +45,13 @@
           <template #title>
             筛选范围开始时间
           </template>
-          <a-input placeholder="开始时间" style="width: 100px;margin-right:10px;" v-model:value.number="param.content.range.start"></a-input>
+          <a-input size="mini" placeholder="开始时间" style="width: 100px;margin-right:10px;" v-model:value.number="param.content.range.start"></a-input>
         </a-tooltip>
         <a-tooltip placement="top">
           <template #title>
             筛选范围结束时间
           </template>
-          <a-input placeholder="结束时间" style="width: 100px;" v-model:value.number="param.content.range.stop"></a-input>
+          <a-input size="mini" placeholder="结束时间" style="width: 100px;" v-model:value.number="param.content.range.stop"></a-input>
         </a-tooltip>
       </div>
       <customBtn :btnOptions="[{label:'查询'}]" style="margin-left: 10px;" @click="listData"></customBtn>
@@ -67,6 +68,7 @@ import {useRouter} from 'vue-router'
 import { Line } from '@antv/g2plot'
 import Api from '@/api/api'
 import utils from '@/utils/utils'
+import { message } from 'ant-design-vue'
 let emit = defineEmits([])
 let props = defineProps({})
 let container = ref(null)
@@ -148,6 +150,7 @@ let initChart = () => {
 
 
 let listData = async () => {
+  if (!param.value.content.range.start) return message.warning('请输入起始时间')
   let res = await Api.requested(param.value)
   chartData.value = res.data
   line.value.changeData(chartData.value)

+ 1 - 1
src/operation/moduleNormal/controlPanel/model/dianci/modules/controlPanel.vue

@@ -292,7 +292,7 @@
         v-if="detailData.function['Constantflow'] && params.TatFlow"
         v-model:value="detailData.paramvalues.TatFlow" 
         name="TatFlow" 
-        :unit="params.TatFlow && params.TatFlow.paramname" 
+        :unit="params.TatFlow && params.TatFlow.unit" 
         :title="params.TatFlow && params.TatFlow.paramname"
         btnName="更新"
         :form="detailData.paramvalues"

+ 1 - 1
src/operation/moduleNormal/equipmentMag/modules/Edit.vue

@@ -30,7 +30,7 @@
               rowKey="w_productid" 
               :param="productParam" 
               :filterMultiple="true" 
-              :columns="utils.TBLayout('productListTable')" title="选择所属产品"
+              :columns="utils.TBLayout('productListTable').splice(0,utils.TBLayout('productListTable').length - 1)" title="选择所属产品"
             >
               <template v-slot:slot1>
                 <a-input-search

Деякі файли не було показано, через те що забагато файлів було змінено