)BpXfx;V8o_
ztgx(uIibVKWW7|!?yb6kJ2kjFGr)3vYEPS@XuX$qHuqlMb)nJh5iS0H3^oF&9{%@<
z7vRtvNMm@cFi~y|?nAckTv(Y_xNU0z6~bxlLsXuGo$G|EO+&hQu+cE8mVj2}
zlL=VAa18BPbpP8--wc460H<
zSU!Q@yXz)Q9!lR|JY0Be`0*=-fW?`@;=v5;a{4o?FYJAP&)tRnKltF}fj41g+hCRV_lM@(F-A?Sh$O(6ti6xv50K_uX+5W=^y}R2r&&
zbEr0QaItmM5SVrO?u%BxckSJU{kyK6*mnR{x&>Cc8Pdza&UQiAspOi30}>KsyD&iw
zu~;TbaD+yob!>tA{F*L
zSSwb)H8i_SHM72H)uw#kn!hW)_~dodul^UsfrFAIlStScN8jDmiJv`nAN6*%opINx
z=`ybR@Za;;_(>QYI~<=ri}=hNwtgB~bw3ysr~hSW?&P7RubJ)p?F~_FQ+7??X9_QV
z=la>h&x@E=W+oB>%m&R(d5r(}lfp1iD9)mzy&3f|Ldvm|7Gd3GH*#URoLF;g5NtG)
zl&0^RI~j8ISF7dnW22>GhnEG+I_002?e6`X;(_n|S$SxW4VYLO!A6si7KZkIm$I2O
zgdl9VY#Z-;`s;MrHMipRUp@gLVih!cHvb8jXdVc~T(IiB`cs;$&VLU5+T+8sqeqq=
z%phAEMt^aR-L~qE*;l@QL;1)aSCFxd(UOR$wIz>zKYb!uTt4*=U*VClevezqXHLz6{pzEHxAGpf3Yoz;ozIYs8(yZ<*)C-*Z%1qc%Fw%
z=WR?rdu-?T@yMe)<28p#Seij$=jFH5tz6$fhIN1U=%bg8EPV&CeZRd1L0`&kx}kjN
z$J=Y8d-Fy|DHvrlL417MR&2XrAoc?M^k@Hx>EaCj_3@p!`Omi{V6OY)tHEGAwfl$h
z|KmbqkWfO}^_EMv)$Hc}FKQ0{ZRFrj#_`;sS|VkbFbKkHyWQUW`qhprudNL~b4zXf
zK)VSm8E9p*F=E~Ne)__FUpf;*+}7N7`)zpWs}I3;>@%(7m+t=}zw+|05wlO06_M@v
z%@u_*C$`uA$u>)K-JPP+95)`Vv6~q(8P(U
z#_2u}BuO|Du?-UmX&B;kEieKwI`p76r%cv^zaHy19Iyn~v|jOQf3CqV?>!e~F_Nak!_Sk$+T
z)+a{KfKU|9D&v=CD8J_OOni{p9J4~NSg35Qy^CO2cBNiUMXukXtXz*IY#{Ktm_GQY
zuCAPme4kcM3q=$QbUM~~IBy{9Zh&hy_rFtL-p_Pm>I>&)4v)&*hK64QD}v5vIvx5L7wjICCsGdY*-9JFv@U_pbB
z_*IOGMAF{K(}xwy$PxUxax_;DPu7k7x+eRu;Aqs4I0BL*q4Fo2fzpYY;b0+-wy-n<
z6Slu-wE$_h)6Fu9x2&@`?Y$#QuCvtV$4XG3KLBc(*($jgXp+sjyE)BN+aVnJbg|0F1lH~>9aKLO4b8KBC;!Ru;>qCkdAqxZoRAWX}8B{E3%7{dXJ+9~~&1I!uKhaYO
zF}Ou9M3qH?Ny;_>gzh1$y*lXxR?4-Fos!acHQ{+u1fEdjvVbELY{;ayKfMbWyMZte
zMj1njEEyORg~CYRGRmJLRkx9=+0~hFy0tC9?{84pig*oL@ZQ-1YvwJA#fE_A1d6?~
zYqn+uZN^U5($*}rZBVnDq+|I;OBSABiUf3A^@fRUL&g|SC>?5{0u`z}BdRx1p!syt-*c~r8_X60l;I8Subga7~l
literal 0
HcmV?d00001
diff --git a/src/views/property/comps/right/top/1/2.png b/src/views/property/comps/right/top/1/2.png
new file mode 100644
index 0000000000000000000000000000000000000000..b86d43c03afe6ae85c876584ac93668f7ec2c27c
GIT binary patch
literal 2890
zcmV-Q3$^r#P)Px=1W80eRA@u(SqqFERT=*NbI#1%xx0J!z1_Ck?RHy0sO6<05hFIyXh=jtbTPg~
zl7a%hgOOCbM1zkQBef({3Bk~!Yy}J&glKJ**g`Fq0F}0Ex81&%ecpTb-nlb#&iT#E
zZjB`-+`XY2V|J3eGs)gF=X~Gy|KI*MmC2kVxn4x%z^!39+A<3j6-+oSOjI1H
zAqp9IdHJ;A&v0Rzi)v768>1W+byWYL%GHci;n)~|*Yyp%GJ$?Flxb!Nr7&s`nd9uWY)0_}N2{*=DfTaOzuO!V-j62aW_US+ipdEq~pHg$^89?3nyQlH!z)-E?+;kXUlaX|9BCkTqr*W
z;nqWD>QeTTkQ0uZh8CL`BpsNbm`08+O~FRx6od(jDNw5;Tz1QCC{DEBH+{M|k6`@H
z%iAwoe%JV(M?O6Ak6r1)Arz#W0GR!_9^Q4uMYy1+BMCAvYixP)@33*Q@DMf%WCK9PNCkDaRFiB~hhlKRfBuZ-{e^+yYX
zyBxqK(g?POW*3)+-P2pYPb<2Ya6`RMh3PVGxam9Ce{g69K%$JC1wsiIth+w=HAAZ7
zr%_OTXlQEq@c9SR&uZ21vllw8i*KKL`LT}|4)5{=S;tx!tt(!}
z!HVu~T(RaNY=3qSUOn&{l%o-b@cpq0PFTT%Mf;F
zyvC0g4nDQ6Jp5eFnm7Zi9miE-_l_qKhB0Do;3$a?edM#4oXlg#(*y8455^csDRJNC
zUt;U8ADh|7kkCRpmF6oyS$3Lw?=c+y?&yJMPGD!hu3DDFb*ld|6Z%2ezs>8)tz7DQ
zxUM|3*1>2;N+|{&eUxH7vxem5U%34?OiWJluO8l#8pPRaU|<{n=CJ_~
z1d~!RIeyTz=7tH?a^Vk5#cn@l+fJdUCqjSH4OQ2pRS%}01;z)R<}jb}9M$E)tPPLt
z{!HccD=RoE)v=9SM@sS2d+!(eEEod5{q4JWaw^Xo@7*L4_da_)_0;eAnLj>l)7DKm
z5jmNl;llSFmMs_FA6ofb;Of&;rar)#eY#pBs1i(~%1+t-dPl}Yx(Sk&WgT->e0txf
zZRz!16NecS$BMvW{a3#%<=H(97~lWdCR+((-2VB`iH^3GwChYjJ@L$T^Wy&f4CxrD
zl#$A-sFt21)YS8Uj@=jII6eVCC`^PZz|Y^It5K(VFn0{P4P*HRG&!wGs$Mbj(ies2
zU(DpSL6Ifae1XH@WVIq$?(81mOvq^O0aXiD24KS{Y|-(}(h%=Wm7{PD5kMdh~;49i8Cmol*zG;7tc
zL=sjJ_+pwk@DaxpFGjB07`K^XN(7o+>ujK%>z1h!GoYB$Zz=(H5HVHqBC__V$#g!-
zum=g|HCX4kQZz9-dP(rsfk~Wf|8B3owWGnY2wIChO?M*}9y^
zPCbn9V4z@`U}wcj@+L`qB?(dxBmshB1k?F=x)PtMSou#w-XX#9uqAOAB#%Zq7-<6X
zrzVHOY8w_B!00o&+1X!AWc=ldDo%lNMA
zdWxh<=HWQjCW@jc2!fzosT9j$JgyBUC2Wz2Mv3V($esYvNyD5RXiVmho+#rF*G6xl
znv_(-#TR<%G>~qnS
zXu4hol~YTK5&GAfYE+pcm^5uuKPY7p
zaix)BPc4oc!lE8*Jz;>gb}l{Hf2jl21>3pbN|f3rFxpP5+dIU5UujChZdERUDerc2Y2NyzBy!ZW8a*Vc;kv|Q|7cO2|1W?!{~Xsg!-6uk@pk@4
oEhuyTIj(Jn1!ZdE?fj4W7ohHAixg*X;{X5v07*qoM6N<$g5nHze*gdg
literal 0
HcmV?d00001
diff --git a/src/views/property/comps/right/top/1/3.png b/src/views/property/comps/right/top/1/3.png
new file mode 100644
index 0000000000000000000000000000000000000000..1a99eb80230b53694db4051ff33835bc98d94da3
GIT binary patch
literal 2848
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
+
+
\ No newline at end of file
diff --git a/src/views/property/comps/right/top/1/index.js b/src/views/property/comps/right/top/1/index.js
new file mode 100644
index 0000000..dd153d1
--- /dev/null
+++ b/src/views/property/comps/right/top/1/index.js
@@ -0,0 +1,14 @@
+import Pannel from '@/components/pannel/index.vue';
+import Block from '@/components/block/index.vue';
+import data from './data.js';
+export default {
+ components: {
+ Block,
+ Pannel
+ },
+ data () {
+ return {
+ data
+ };
+ }
+};
diff --git a/src/views/property/comps/right/top/1/index.scss b/src/views/property/comps/right/top/1/index.scss
new file mode 100644
index 0000000..f157533
--- /dev/null
+++ b/src/views/property/comps/right/top/1/index.scss
@@ -0,0 +1,12 @@
+table {
+ width: 100%;
+ height: 100%;
+
+ tr {
+ width: 100%;
+
+ td {
+ width: 50%;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/views/property/comps/right/top/1/index.vue b/src/views/property/comps/right/top/1/index.vue
new file mode 100644
index 0000000..5ac9224
--- /dev/null
+++ b/src/views/property/comps/right/top/1/index.vue
@@ -0,0 +1,4 @@
+
+
+
diff --git a/src/views/property/comps/right/top/2/index.html b/src/views/property/comps/right/top/2/index.html
new file mode 100644
index 0000000..d47cd90
--- /dev/null
+++ b/src/views/property/comps/right/top/2/index.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/views/property/comps/right/top/2/index.js b/src/views/property/comps/right/top/2/index.js
new file mode 100644
index 0000000..3166123
--- /dev/null
+++ b/src/views/property/comps/right/top/2/index.js
@@ -0,0 +1,20 @@
+import Pannel from '@/components/pannel/index.vue';
+import ScrollTable from '@/components/scroll-table/index.vue';
+export default {
+ components: {
+ ScrollTable,
+ Pannel
+ },
+ data () {
+ return {
+ headers: ['合同编码', '合同名称', '预结款日期', '结款金额', '部门'],
+ data: [['合同编码', '合同名称', '预结款日期', '结款金额', '部门']]
+ };
+ },
+ created () {
+ },
+ mounted () {
+ },
+ methods: {
+ }
+};
diff --git a/src/views/property/comps/right/top/2/index.scss b/src/views/property/comps/right/top/2/index.scss
new file mode 100644
index 0000000..e69de29
diff --git a/src/views/property/comps/right/top/2/index.vue b/src/views/property/comps/right/top/2/index.vue
new file mode 100644
index 0000000..5ac9224
--- /dev/null
+++ b/src/views/property/comps/right/top/2/index.vue
@@ -0,0 +1,4 @@
+
+
+
diff --git a/src/views/property/comps/right/top/3/index.html b/src/views/property/comps/right/top/3/index.html
new file mode 100644
index 0000000..d47cd90
--- /dev/null
+++ b/src/views/property/comps/right/top/3/index.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/views/property/comps/right/top/3/index.js b/src/views/property/comps/right/top/3/index.js
new file mode 100644
index 0000000..3166123
--- /dev/null
+++ b/src/views/property/comps/right/top/3/index.js
@@ -0,0 +1,20 @@
+import Pannel from '@/components/pannel/index.vue';
+import ScrollTable from '@/components/scroll-table/index.vue';
+export default {
+ components: {
+ ScrollTable,
+ Pannel
+ },
+ data () {
+ return {
+ headers: ['合同编码', '合同名称', '预结款日期', '结款金额', '部门'],
+ data: [['合同编码', '合同名称', '预结款日期', '结款金额', '部门']]
+ };
+ },
+ created () {
+ },
+ mounted () {
+ },
+ methods: {
+ }
+};
diff --git a/src/views/property/comps/right/top/3/index.scss b/src/views/property/comps/right/top/3/index.scss
new file mode 100644
index 0000000..e69de29
diff --git a/src/views/property/comps/right/top/3/index.vue b/src/views/property/comps/right/top/3/index.vue
new file mode 100644
index 0000000..5ac9224
--- /dev/null
+++ b/src/views/property/comps/right/top/3/index.vue
@@ -0,0 +1,4 @@
+
+
+
diff --git a/src/views/property/comps/right/top/4/index.html b/src/views/property/comps/right/top/4/index.html
new file mode 100644
index 0000000..d47cd90
--- /dev/null
+++ b/src/views/property/comps/right/top/4/index.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/views/property/comps/right/top/4/index.js b/src/views/property/comps/right/top/4/index.js
new file mode 100644
index 0000000..3166123
--- /dev/null
+++ b/src/views/property/comps/right/top/4/index.js
@@ -0,0 +1,20 @@
+import Pannel from '@/components/pannel/index.vue';
+import ScrollTable from '@/components/scroll-table/index.vue';
+export default {
+ components: {
+ ScrollTable,
+ Pannel
+ },
+ data () {
+ return {
+ headers: ['合同编码', '合同名称', '预结款日期', '结款金额', '部门'],
+ data: [['合同编码', '合同名称', '预结款日期', '结款金额', '部门']]
+ };
+ },
+ created () {
+ },
+ mounted () {
+ },
+ methods: {
+ }
+};
diff --git a/src/views/property/comps/right/top/4/index.scss b/src/views/property/comps/right/top/4/index.scss
new file mode 100644
index 0000000..e69de29
diff --git a/src/views/property/comps/right/top/4/index.vue b/src/views/property/comps/right/top/4/index.vue
new file mode 100644
index 0000000..5ac9224
--- /dev/null
+++ b/src/views/property/comps/right/top/4/index.vue
@@ -0,0 +1,4 @@
+
+
+
diff --git a/src/views/property/data.js b/src/views/property/data.js
new file mode 100644
index 0000000..cb42c5a
--- /dev/null
+++ b/src/views/property/data.js
@@ -0,0 +1,59 @@
+export const comps = {
+ '1': {
+ 'left': [
+ 'Left11',
+ 'Left21',
+ 'Left31',
+ ],
+ 'right': [
+ 'Right11',
+ 'Right21',
+ 'Right31',
+ ],
+ 'buttom': [
+ 'Bottom1'
+ ]
+ },
+ '2': {
+ 'left': [
+ 'Left12',
+ 'Left22',
+ 'Left32'
+ ],
+ 'right': [
+ 'Right12',
+ 'Right22',
+ 'Right32'
+ ],
+ 'buttom': [
+ ]
+ },
+ '3': {
+ 'left': [
+ 'Left13',
+ 'Left23',
+ 'Left33'
+ ],
+ 'right': [
+ 'Right13',
+ 'Right23',
+ 'Right33'
+ ],
+ 'buttom': [
+ ]
+ },
+ '4': {
+ 'left': [
+ 'Left14',
+ 'Left24',
+ 'Left34'
+ ],
+ 'right': [
+ 'Right14',
+ 'Right24',
+ 'Right34'
+ ],
+ 'buttom': [
+ ]
+ }
+}
\ No newline at end of file
diff --git a/src/views/property/icon/yellow.png b/src/views/property/icon/yellow.png
new file mode 100644
index 0000000000000000000000000000000000000000..f5f29b0c15f4da567b805c837574805e26fef6d1
GIT binary patch
literal 1769
zcmaJ?X;2eq7~TP-a#{sJppY1}P>vix0*QohEMO|(22qQWV}StK4as5x208*QSca=g
ztuQExCm=9VWt1ZY+R9;7zhj=~d7th6BmL!5%}{OOs)gE4PQGmdgqt
zB;`wlVpNF0c$FfTha{m)0_ODZ6hz_`Sy;MMCahp2Iaf@g5Xq{PmVq43|3gKh6|@u$
zhW_#UpTg46WHCevhNMW6gpVCuw52MPnBgUXxF{kCMUaH$Dh9?PC?btT#CQkH65e{J
z5EdXZ>1T@s4u`>pr6?EXLu`;qz$A!5p@2cAyEsxEs6JjkAcaEl_Vl26P`qf)E@Yac
z6UEcTVVMge{3H3j&r+FgS6wG;XER_wZb!3I4-*#qE~BkFM`g;%Je0{<{KW;6v
zb^TKV;^tI#yR&1*hC(gn^VTdy;kw{5_B~N+0{?x-=!5CnTfwJrhHEy)YvK-HMFSi
z$+bu4suiI9f@kZahrYe-Q5PG|pPhENp+BYmtPPmeRDNHai}N@>{y=w5?Qo)NLe~qM
znR^8fbv1_z@6(Kk!1&IM^(s}S4prg{!=;>Qb#&v7Pzp8~L%
zPOHweXPHfBWgA`Xsu(@1Wtr61cDXx_g+3XvF@P0?
z@is#Z??X;oy)lF5E|tzZ;fJdXYg+5_r__|LLesOgX%$uJpNENScU=+6yJ3YWGMQh_
z9<=I!3TKM%sf}BuoWNZ(dAy}g#@w9PmK~J+bY13x)M}VqP>^MI{Lrrme7&b8jc3$$KCQ~a&H82arP4q4w!6)i+^Gn+n!oB{dbOhG
z;z_W}df+xmou+d=^?r7EP2cc(QGRa+Z=odMH+#3z1D(v8??(Fkw~YkU^>+%byqa!L
ztv%M`GK5mdjlxb`Nc1fat56XFqQ~i9{-u_^
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/property/index.js b/src/views/property/index.js
new file mode 100644
index 0000000..49a41c9
--- /dev/null
+++ b/src/views/property/index.js
@@ -0,0 +1,269 @@
+import Header from '@/components/header/index.vue';
+import Tabs from '@/components/tabs/index.vue';
+
+import Left11 from './comps/left/top/1/index.vue';
+import Left21 from './comps/left/middle/1/index.vue';
+import Left31 from './comps/left/bottom/1/index.vue';
+import Right11 from './comps/right/top/1/index.vue';
+import Right21 from './comps/right/middle/1/index.vue';
+import Right31 from './comps/right/bottom/1/index.vue';
+
+import Left12 from './comps/left/top/2/index.vue';
+import Left22 from './comps/left/middle/2/index.vue';
+import Left32 from './comps/left/bottom/2/index.vue';
+import Right12 from './comps/right/top/2/index.vue';
+import Right22 from './comps/right/middle/2/index.vue';
+import Right32 from './comps/right/bottom/2/index.vue';
+import Bottom1 from './comps/buttom/1/index.vue';
+
+import Left13 from './comps/left/top/3/index.vue';
+import Left23 from './comps/left/middle/3/index.vue';
+import Left33 from './comps/left/bottom/3/index.vue';
+import Right13 from './comps/right/top/3/index.vue';
+import Right23 from './comps/right/middle/3/index.vue';
+import Right33 from './comps/right/bottom/3/index.vue';
+
+import Left14 from './comps/left/top/4/index.vue';
+import Left24 from './comps/left/middle/4/index.vue';
+import Left34 from './comps/left/bottom/4/index.vue';
+import Right14 from './comps/right/top/4/index.vue';
+import Right24 from './comps/right/middle/4/index.vue';
+import Right34 from './comps/right/bottom/4/index.vue'
+
+import { getConfigKey } from "@/api/system/config";
+import { getInfo } from "@/api/login";
+import { treeselect, treeselectByDeptId } from "@/api/system/dept";
+
+import GisUtils from '@/utils/gis.js';
+
+import { comps } from './data.js'
+import {
+ fromLonLat
+} from 'ol/proj'
+
+let gis = null;
+export default {
+ components: {
+ Header,
+ Tabs,
+ Left11,
+ Left21,
+ Left31,
+ Right11,
+ Right21,
+ Right31,
+ Left12,
+ Left22,
+ Left32,
+ Right12,
+ Right22,
+ Right32,
+ Bottom1,
+ Left13,
+ Left23,
+ Left33,
+ Right13,
+ Right23,
+ Right33,
+ Left14,
+ Left24,
+ Left34,
+ Right14,
+ Right24,
+ Right34
+ },
+ data () {
+ return {
+ tabData: [
+ {
+ id: '1',
+ name: '资产分析'
+ },
+ {
+ id: '2',
+ name: '债务分析'
+ },
+ {
+ id: '3',
+ name: '资产预警'
+ },
+ {
+ id: '4',
+ name: '债务预警'
+ }
+ ],
+ yellowIcon: require('./icon/yellow.png'),
+ tab: '1',
+ comps,
+ map: "", // 地图
+ mapGeoServerUrl: "", // geoserver地址
+ mapBorder: "", // 地图边界
+ deptLayer: "", // 坐标点图层
+ countyBorderLayerName: "", // 区县边界图层名称
+ townBorderLayerName: "", // 乡镇边界图层名称
+ villageBorderLayerName: "", // 村边界图层名称
+ groupBorderLayerName: "", // 组边界图层名称
+ addrOptions: [],
+ };
+ },
+ computed: {
+ currentComp: function () {
+ return this.comps[this.tab]
+ }
+ },
+ created () {
+ },
+ mounted () {
+ // 获取geoserver的地址
+ this.getGeoServerUrl();
+ getInfo().then(res => {
+ // this.getData();
+ treeselectByDeptId({ deptId: res.user.deptId }).then((resp) => {
+ this.addrOptions = resp.data;
+ // 初始化地图
+ this.initMap();
+ });
+ });
+ },
+ methods: {
+ tabChange (info) {
+ this.tab = info.id;
+ },
+ // 初始化地图
+ initMap () {
+ let dept = this.addrOptions[0];
+ let mapCenterLocation;
+ if (dept.lng && dept.lat) {
+ mapCenterLocation = [dept.lng, dept.lat];
+ } else {
+ mapCenterLocation = [116.391461, 39.902359];
+ }
+ gis = new GisUtils('map')
+ gis.addTianDiTuLayer()
+ gis.addAnnotationLayer()
+ if (dept.deptLevel === '5') {
+ // 登录身份为市级领导
+ this.userRole = 'cityLeader';
+ this.cityId = dept.id;
+ this.currentDeptLevel = '5';
+ // 添加区县边界
+ this.addCountyBorder(dept.children.map(item => item.id));
+ } else if (dept.deptLevel === '4') {
+ // 登录身份为县级领导
+ this.userRole = 'countyLeader';
+ this.countyId = dept.id;
+ this.currentDeptLevel = '4';
+ // 添加乡镇边界
+ this.addTownBorder(dept.children.map(item => item.id));
+ gis.getView().setZoom(11);
+ // this.villageIds = this.findLeafNodeIds(dept);
+ } else if (dept.deptLevel === '3') {
+ // 登录身份为镇级领导
+ this.userRole = 'townLeader';
+ this.townId = dept.id;
+ this.currentDeptLevel = '3';
+ // 添加村边界
+ this.addVillageBorder(dept.children.map(item => item.id));
+ this.map.getView().setZoom(13);
+ // this.villageIds = this.findLeafNodeIds(dept);
+ }
+ // 添加坐标点图层
+ if (dept.children) {
+ this.addDeptLayer(dept.children, 'yellow.png');
+ }
+ gis.getView().setCenter(fromLonLat(mapCenterLocation))
+
+ // 地图点击事件
+ gis.getMapContainer().on("click", (evt) => {
+ let feature = this.map.forEachFeatureAtPixel(
+ evt.pixel,
+ (feature) => feature
+ );
+ if (feature) {
+ // 镇级:加载村级坐标点
+ if (feature.get('level') === 'deptPoint') {
+ let parentIds = [];
+ this.findParentNodeIds(this.addrOptions, feature.get('deptId'), parentIds);
+ this.addrText = parentIds;
+ this.selectAddress(parentIds);
+ }
+ }
+ });
+ },
+
+ selectAddress (value, isLocated = true) { // isLocated 控制地图是否跳转
+ this.queryParams.deptId = value[value.length - 1];
+ this.getData(DEPT_CHANGED);
+ let node = this.$refs["cascader"].panel.getNodeByValue(value);
+ this.drawMap(node, isLocated);
+ },
+
+ // 查找指定deptId的所有父节点id
+ findParentNodeIds (tree, deptId, result) {
+ for (let node of tree) {
+ if (node.id === deptId) {
+ result.unshift(node.id);
+ return true;
+ }
+ if (node.children && node.children.length > 0) {
+ let isFind = this.findParentNodeIds(node.children, deptId, result);
+ if (isFind) {
+ result.unshift(node.id);
+ return true;
+ }
+ }
+ }
+ return false;
+ },
+
+
+
+ // 添加坐标点图层
+ addDeptLayer (nextDeptSet) {
+ let features = [];
+ nextDeptSet.forEach(item => {
+ let fs = gis.getFeature(item, this.yellowIcon)
+ features.push(fs);
+ });
+ console.log(features, 88);
+ gis.getVectorLayerByFs(features)
+ gis.mapSetFit(features)
+
+ },
+ // 添加区县边界
+ addCountyBorder (deptIds) {
+ gis.addImageLayer(this.mapGeoServerUrl, this.countyBorderLayerName, deptIds)
+ },
+ // 添加乡镇边界
+ addTownBorder (deptIds) {
+ gis.addImageLayer(this.mapGeoServerUrl, this.townBorderLayerName, deptIds)
+ },
+ // 添加村边界
+ addVillageBorder (deptIds) {
+ gis.addImageLayer(this.mapGeoServerUrl, this.villageBorderLayerName, deptIds)
+ },
+ // 获取geoserver的地址
+ getGeoServerUrl () {
+ // 获取geoserver的地址
+ getConfigKey("system.geoServer.url").then(response => {
+ this.mapGeoServerUrl = response.msg;
+ });
+ // 获取区县边界图层名称
+ getConfigKey("geoserver.layer.countyBorder").then(response => {
+ this.countyBorderLayerName = response.msg;
+ });
+ // 获取乡镇边界的图层名称
+ getConfigKey("geoserver.layer.townBorder").then(response => {
+ this.townBorderLayerName = response.msg;
+ });
+ // 获取村边界的图层名称
+ getConfigKey("geoserver.layer.villageBorder").then(response => {
+ this.villageBorderLayerName = response.msg;
+ });
+ // 获取组边界的图层名称
+ getConfigKey("geoserver.layer.groupBorder").then(response => {
+ this.groupBorderLayerName = response.msg;
+ });
+ }
+ }
+};
diff --git a/src/views/property/index.scss b/src/views/property/index.scss
new file mode 100644
index 0000000..1b7aaf4
--- /dev/null
+++ b/src/views/property/index.scss
@@ -0,0 +1,7 @@
+.map {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+}
\ No newline at end of file
diff --git a/src/views/property/index.vue b/src/views/property/index.vue
new file mode 100644
index 0000000..5ac9224
--- /dev/null
+++ b/src/views/property/index.vue
@@ -0,0 +1,4 @@
+
+
+