2c336f84 by jikai

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	public/index.html
#	src/components/yyAnslysis.vue
#	src/views/Home.vue
2 parents 40e47cbe c1a321b5
...@@ -27,4 +27,26 @@ ...@@ -27,4 +27,26 @@
27 <div id="app"></div> 27 <div id="app"></div>
28 <!-- built files will be auto injected --> 28 <!-- built files will be auto injected -->
29 </body> 29 </body>
30
31 <head>
32 <meta charset="utf-8">
33 <meta http-equiv="X-UA-Compatible" content="IE=edge">
34 <meta name="viewport" content="width=device-width,initial-scale=1.0">
35 <link rel="icon" href="<%= BASE_URL %>favicon.ico">
36 <title><%= htmlWebpackPlugin.options.title %></title>
37 <script src="https://cesium.com/downloads/cesiumjs/releases/1.71/Build/Cesium/Cesium.js"></script>
38 <link href="https://cesium.com/downloads/cesiumjs/releases/1.71/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
39
40 <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
41 </head>
42
43 <body>
44 <noscript>
45 <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
46 Please enable it to continue.</strong>
47 </noscript>
48 <div id="app"></div>
49 <!-- built files will be auto injected -->
50 </body>
51
30 </html> 52 </html>
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -2,16 +2,16 @@ ...@@ -2,16 +2,16 @@
2 <template> 2 <template>
3 <div class="container"> 3 <div class="container">
4 <div class="wrapper"> 4 <div class="wrapper">
5 <div class="nav-box" :class="[isYZT?'selected':'no-selected']" @click="jumpNav('isYZT')"> 5 <div class="nav-box" :class="[isYZT?'selected':'no-selected']" @click="jumpNav('isYZT', '一张图')">
6 <span>一张图</span> 6 <span>一张图</span>
7 </div> 7 </div>
8 <div class="nav-box" :class="[isCGSC?'selected':'no-selected']" @click="jumpNav('isCGSC')"> 8 <div class="nav-box" :class="[isCGSC?'selected':'no-selected']" @click="jumpNav('isCGSC', '1')">
9 <span>成果审查管理</span> 9 <span>规划成果审查</span>
10 </div> 10 </div>
11 <div class="nav-box" :class="[isSSJD?'selected':'no-selected']" @click="jumpNav('isSSJD')"> 11 <div class="nav-box" :class="[isSSJD?'selected':'no-selected']" @click="jumpNav('isSSJD', '2')">
12 <span>实施监督预警</span> 12 <span>实施监督预警</span>
13 </div> 13 </div>
14 <div class="nav-box" :class="[isPGJG?'selected':'no-selected']" @click="jumpNav('isPGJG')"> 14 <div class="nav-box" :class="[isPGJG?'selected':'no-selected']" @click="jumpNav('isPGJG', '3')">
15 <span>批后监管</span> 15 <span>批后监管</span>
16 </div> 16 </div>
17 </div> 17 </div>
...@@ -33,12 +33,30 @@ ...@@ -33,12 +33,30 @@
33 }, 33 },
34 mounted() {}, 34 mounted() {},
35 methods: { 35 methods: {
36 jumpNav(val) { 36 jumpNav(val, label) {
37 this.flagArr.forEach(ele => { 37 // this.flagArr.forEach(ele => {
38 if (ele == val) this[val] = true; 38 // if (ele == val) this[val] = true;
39 else this[ele] = false; 39 // else this[ele] = false;
40 }); 40 // });
41 if(val != 'isYZT') {
42 this.login(val, label);
43 };
41 }, 44 },
45 login(val, label) {
46 $.ajax({
47 type:"POST",
48 url: this.config.loginUrl + '/api/v1/user/login',
49 dataType:"json",
50 async:false,
51 data:{username:'案件查处',password:'123'},
52 success:(res) => {
53 window.open(`http://10.6.144.88:10001/frontweb/index.jsp?type=${label}`)
54 },
55 fail: () => {
56
57 }
58 })
59 }
42 } 60 }
43 } 61 }
44 </script> 62 </script>
......
...@@ -10,12 +10,10 @@ ...@@ -10,12 +10,10 @@
10 <span>控高分析</span> 10 <span>控高分析</span>
11 <span @click="closePop" class="close">×</span> 11 <span @click="closePop" class="close">×</span>
12 </div> 12 </div>
13
14 <div class="" style="padding: 18px 24px 0px 24px;"> 13 <div class="" style="padding: 18px 24px 0px 24px;">
15 <el-slider v-model="height" :min='0' :max='1000' :format-tooltip="formatTooltip" 14 <el-slider v-model="height" :min='0' :max='1000' :format-tooltip="formatTooltip"
16 @change='EheightChange'></el-slider> 15 @change='EheightChange'></el-slider>
17 </div> 16 </div>
18
19 <div class="func-btn"> 17 <div class="func-btn">
20 <div class="btn-wrapper add-bg" @click="startAnalysis"> 18 <div class="btn-wrapper add-bg" @click="startAnalysis">
21 <img style="width: 20px; height: 20px; margin: 0 5px 0 44px" src="../assets/icon_开始分析.png" alt=""> 19 <img style="width: 20px; height: 20px; margin: 0 5px 0 44px" src="../assets/icon_开始分析.png" alt="">
...@@ -26,7 +24,6 @@ ...@@ -26,7 +24,6 @@
26 <span>清除分析结果</span> 24 <span>清除分析结果</span>
27 </div> 25 </div>
28 </div> 26 </div>
29
30 <div class="table-box" style="padding: 18px 24px 30px 24px;"> 27 <div class="table-box" style="padding: 18px 24px 30px 24px;">
31 <el-table :data="tableData" :highlight-current-row='false' height="242" border style="width: 100%"> 28 <el-table :data="tableData" :highlight-current-row='false' height="242" border style="width: 100%">
32 <el-table-column prop="name" label="名称" align='center'> 29 <el-table-column prop="name" label="名称" align='center'>
...@@ -64,7 +61,7 @@ ...@@ -64,7 +61,7 @@
64 name: '1号楼', 61 name: '1号楼',
65 height: '34', 62 height: '34',
66 superelevation: '4' 63 superelevation: '4'
67 }, ] 64 },]
68 } 65 }
69 }, 66 },
70 mounted() {}, 67 mounted() {},
......
...@@ -102,6 +102,12 @@ ...@@ -102,6 +102,12 @@
102 </el-tooltip> 102 </el-tooltip>
103 </div> 103 </div>
104 104
105 <!--可视域分析 -->
106 <div class="func-ico" :class="[visualField?'selected':'']" @click="handlevisualField('visualField')">
107 <el-tooltip class="item" effect="dark" content="可视域分析" placement="left">
108 <img src="../assets/一张图/icon_通视.png" alt="">
109 </el-tooltip>
110 </div>
105 111
106 <!-- <div class="func-ico" :class="[is2D?'selected':'']" @click="handleIs2D()"> 112 <!-- <div class="func-ico" :class="[is2D?'selected':'']" @click="handleIs2D()">
107 <img src="../assets/toolbar_icon_ 展开.png" alt=""> 113 <img src="../assets/toolbar_icon_ 展开.png" alt="">
...@@ -117,8 +123,8 @@ ...@@ -117,8 +123,8 @@
117 components: {}, 123 components: {},
118 props: ['isReturn', 'enlarge', 'narrow', 'coordinate', 'distance', 124 props: ['isReturn', 'enlarge', 'narrow', 'coordinate', 'distance',
119 'area', 'marker', 'rollerShutter', 'splitScreen', 'toNorth', 125 'area', 'marker', 'rollerShutter', 'splitScreen', 'toNorth',
120 'topSee', 'roundSee', 'horizon', 'allSee','ymAnslysis', 126 'topSee', 'roundSee', 'horizon', 'allSee', 'ymAnslysis',
121 'tjxAnslysis', 'yyAnslysis', 'kgAnalusis' 127 'tjxAnslysis', 'yyAnslysis', 'kgAnalusis', 'visualField'
122 ], 128 ],
123 data() { 129 data() {
124 return {} 130 return {}
...@@ -181,6 +187,9 @@ ...@@ -181,6 +187,9 @@
181 }, 187 },
182 handlekgAnalusis(val) { 188 handlekgAnalusis(val) {
183 this.$emit('kgAnalusis', val, this.kgAnalusis); 189 this.$emit('kgAnalusis', val, this.kgAnalusis);
190 },
191 handlevisualField(val) {
192 this.$emit('visualField', val, this.visualField);
184 } 193 }
185 } 194 }
186 } 195 }
......
1 // 淹没分析弹窗
2 <template>
3 <div class="container">
4 <div class="wrapper">
5 <div class="box">
6 </div>
7 </div>
8 <div class="mian">
9 <div class="title">
10 <span>可视域分析</span>
11 <span @click="closePop" class="close">×</span>
12 </div>
13 <div class="func-input">
14 <span class="width-class">方向</span>
15 <el-slider style="width: 150px;" v-model="direction" :min='0' :max='360' :step='1'></el-slider>
16 <el-input-number v-model="direction" controls-position="right"
17 style="width:100px; height:38px; margin-left: 12px;" :step='step' :min="0" :max="360">
18 </el-input-number>
19 <span style="margin-left: 12px;"></span>
20 </div>
21 <div class="func-input">
22 <span class="width-class">翻转</span>
23 <el-slider style="width: 150px;" v-model="flip" :min='0' :max='360' :step='1'></el-slider>
24 <el-input-number v-model="flip" controls-position="right"
25 style="width:100px; height:38px; margin-left: 12px;" :step='step' :min="0" :max="360">
26 </el-input-number>
27 <span style="margin-left: 12px;"></span>
28 </div>
29 <div class="func-input">
30 <span class="width-class">距离</span>
31 <el-slider style="width: 150px;" v-model="distance" :min='0' :max='10000' :step='1'></el-slider>
32 <el-input-number v-model="distance" controls-position="right"
33 style="width:100px; height:38px; margin-left: 12px;" :step='step' :min="0" :max="10000">
34 </el-input-number>
35 <span style="margin-left: 12px;"></span>
36 </div>
37 <div class="func-input">
38 <span class="width-class">水平视场角</span>
39 <el-slider style="width: 150px;" v-model="level" :min='0' :max='360' :step='1'></el-slider>
40 <el-input-number v-model="level" controls-position="right"
41 style="width:100px; height:38px; margin-left: 12px;" :step='step' :min="0" :max="360">
42 </el-input-number>
43 <span style="margin-left: 12px;"></span>
44 </div>
45 <div class="func-input">
46 <span class="width-class">垂直视场角</span>
47 <el-slider style="width: 150px;" v-model="vertical" :min='0' :max='360' :step='1'></el-slider>
48 <el-input-number v-model="vertical" controls-position="right"
49 style="width:100px; height:38px; margin-left: 12px;" :step='step' :min="0" :max="360">
50 </el-input-number>
51 <span style="margin-left: 12px;"></span>
52 </div>
53 <div class="select-color">
54 <div class="block">
55 <div class="demonstration">可见区域颜色</div>
56 <el-color-picker v-model="yesColor"></el-color-picker>
57 </div>
58 <div class="block">
59 <div class="demonstration">不可见区域颜色</div>
60 <el-color-picker v-model="noColor"></el-color-picker>
61 </div>
62 </div>
63 </div>
64 </div>
65 </template>
66
67 <script>
68 export default {
69 name: 'allSee',
70 components: {},
71 data() {
72 return {
73 step: 1,
74 num: 1,
75 direction: 180, // 方向
76 flip: 90, // 翻转
77 distance: 0, // 距离
78 level: 180, // 水平视场角
79 vertical: 180, // 垂直视场角
80 yesColor: 'red', // 可见区域颜色
81 noColor: 'rgba(255, 69, 0, 0.68)', // 不可见区域颜色
82
83 isXmbj: true,
84 // isAnalysis: true
85 }
86 },
87 mounted() {},
88 methods: {
89 closePop() {
90 this.$emit('closePop', 'visualField')
91 },
92 handleChange() {
93
94 },
95 startAnalysis() {
96 // this.isAnalysis = true;
97 },
98 stopAnalysis() {
99 // this.isAnalysis = false;
100 },
101 handleIsXmbj(flag) {
102 this.isXmbj = flag;
103 }
104 }
105 }
106 </script>
107
108 <style scoped>
109 .container {
110 position: relative;
111 color: #fff;
112 font-size: 16px;
113 width: 450px;
114 }
115
116 .wrapper {
117 position: absolute;
118 width: 100%;
119 height: 100%;
120 z-index: 1;
121 border: 1px solid rgba(151, 151, 151, 0.58);
122 }
123
124 .box {
125 background: rgba(4, 10, 10, 0.58);
126 box-shadow: 0px 4px 9px 0px rgba(0, 0, 0, 0.5);
127 /* filter: blur(10px); */
128 height: 100px;
129 position: absolute;
130 width: 100%;
131 height: 100%;
132 z-index: 1;
133 }
134
135 .mian {
136 position: relative;
137 width: 100%;
138 height: 100%;
139 z-index: 1000;
140 }
141
142 .list-box span:nth-of-type(1) {
143 display: inline-block;
144 width: 98px;
145 margin-right: 20px;
146 color: rgba(255, 255, 255, .7);
147 }
148
149 .list-box span:nth-of-type(2) {
150 margin-top: 14px;
151 display: inline-block;
152 }
153
154
155 .title {
156 display: flex;
157 justify-content: space-between;
158 border-bottom: 1px solid rgba(255, 255, 255, 0.15);
159 padding: 18px 24px;
160 font-size: 20px;
161 }
162
163
164 .func-input {
165 display: flex;
166 align-items: center;
167 /* justify-content: space-between; */
168 padding: 18px 24px 0px 24px;
169 font-size: 18px;
170 cursor: pointer;
171 }
172
173 .func {
174 padding: 18px 24px;
175 }
176
177
178
179 .func-btn {
180 display: flex;
181 padding: 18px 24px 37px 24px;
182 align-items: center;
183 font-size: 18px;
184 cursor: pointer;
185 }
186
187 .btn-wrapper {
188 display: flex;
189 align-items: center;
190 width: 190px;
191 height: 36px;
192 background-image: url('../assets/弹窗按钮背景-默认.png');
193 background-size: 100% 100%;
194 background-repeat: no-repeat;
195 line-height: 36px;
196 }
197
198 .add-bg {
199 background-image: url('../assets/弹窗按钮背景-选中.png');
200 }
201
202
203 .btn-wrapper2 {
204 display: flex;
205 align-items: center;
206 width: 116px;
207 height: 38px;
208 background-image: url('../assets/一张图/bg_专题分析.png');
209 background-size: 100% 100%;
210 background-repeat: no-repeat;
211 text-align: center;
212 line-height: 38px;
213 margin-left: 13px;
214 }
215
216 .add-bg2 {
217 background-image: url('../assets/一张图/bg_资源目录.png');
218 }
219
220 .close {
221 cursor: pointer;
222 }
223
224 .center {
225 display: inline-block;
226 width: 100%;
227 height: 100%;
228 text-align: center;
229 }
230
231 .width-class {
232 width: 90px;
233 font-size: 16px;
234 }
235
236 .select-color {
237 display: flex;
238 justify-content: space-around;
239 text-align: center;
240 padding: 30px 0px;
241 }
242
243 .demonstration {
244 margin-bottom: 10px;
245 font-size: 16px;
246 }
247
248 >>>input::-webkit-input-placeholder {
249 font-size: 16px;
250 color: rgba(255, 255, 255, 0.78) !important;
251 }
252
253 >>>.el-input__inner {
254 background: rgba(4, 10, 10, 0.58) !important;
255 border: 1px solid rgba(23, 34, 38, 0.57);
256 color: #fff;
257 }
258
259 >>>.el-input-number.is-controls-right .el-input__inner {
260 text-align: left;
261 }
262
263 >>>.el-input__suffix {
264 color: #fff;
265 font-size: 17px;
266 }
267
268 >>>.el-input-number__increase,
269 >>>.el-input-number__decrease {
270 background: rgba(4, 10, 10, 0.58);
271 }
272
273 >>>.el-input-number.is-controls-right .el-input-number__decrease,
274 >>>.el-input-number__increase {
275 border-left: 1px solid rgba(4, 10, 10, 0.58);
276 }
277
278 >>>.el-icon-arrow-up:before,
279 >>>.el-icon-arrow-down:before {
280 color: #fff;
281 }
282
283 >>>.el-input-number.is-controls-right .el-input-number__increase {
284 border-bottom: 1px solid rgba(4, 10, 10, 0.58);
285 }
286 </style>
...\ No newline at end of file ...\ No newline at end of file
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
10 <span>淹没分析</span> 10 <span>淹没分析</span>
11 <span @click="closePop" class="close">×</span> 11 <span @click="closePop" class="close">×</span>
12 </div> 12 </div>
13
14 <div class="func-input"> 13 <div class="func-input">
15 <span>分析区域</span> 14 <span>分析区域</span>
16 <div class="btn-wrapper2" :class="[isXmbj?'add-bg2': '']" @click="handleIsXmbj(true)"> 15 <div class="btn-wrapper2" :class="[isXmbj?'add-bg2': '']" @click="handleIsXmbj(true)">
...@@ -20,7 +19,6 @@ ...@@ -20,7 +19,6 @@
20 <span class="center">绘制</span> 19 <span class="center">绘制</span>
21 </div> 20 </div>
22 </div> 21 </div>
23
24 <div class="func-input"> 22 <div class="func-input">
25 <span>水底高程</span> 23 <span>水底高程</span>
26 <el-input-number v-model="sdgc" controls-position="right" 24 <el-input-number v-model="sdgc" controls-position="right"
...@@ -28,7 +26,6 @@ ...@@ -28,7 +26,6 @@
28 </el-input-number> 26 </el-input-number>
29 <span style="margin-left: 12px;"></span> 27 <span style="margin-left: 12px;"></span>
30 </div> 28 </div>
31
32 <div class="func-input"> 29 <div class="func-input">
33 <span>水位深度</span> 30 <span>水位深度</span>
34 <el-input-number v-model="swsd" controls-position="right" 31 <el-input-number v-model="swsd" controls-position="right"
...@@ -43,7 +40,6 @@ ...@@ -43,7 +40,6 @@
43 </el-input-number> 40 </el-input-number>
44 <span style="margin-left: 12px;"></span> 41 <span style="margin-left: 12px;"></span>
45 </div> 42 </div>
46
47 <div class="func-input"> 43 <div class="func-input">
48 <span>当前水位</span> 44 <span>当前水位</span>
49 <span style="margin-left: 36px;">1263.7米</span> 45 <span style="margin-left: 36px;">1263.7米</span>
...@@ -58,7 +54,6 @@ ...@@ -58,7 +54,6 @@
58 <span>暂停分析</span> 54 <span>暂停分析</span>
59 </div> 55 </div>
60 </div> 56 </div>
61
62 </div> 57 </div>
63 </div> 58 </div>
64 </template> 59 </template>
......
...@@ -19,6 +19,37 @@ ...@@ -19,6 +19,37 @@
19 </div> 19 </div>
20 20
21 <div class="func-input"> 21 <div class="func-input">
22 <span>开始时间</span>
23 <el-time-picker style="margin:0 12px; width: 245px;" v-model="staTime"
24 :picker-options="pickerOptions" placeholder="选择开始时间">
25 </el-time-picker>
26 </div>
27 <div class="func-input">
28 <span>结束时间</span>
29 <el-time-picker style="margin:0 12px; width: 245px;" v-model="endTime"
30 :picker-options="pickerOptions" placeholder="选择结束时间">
31 </el-time-picker>
32 </div>
33
34 <!-- <div class="func-input">
35 <div class="btn-wrapper2" :class="[isCF?'add-bg2': '']" @click="handleIsXmbj('isCF')">
36 <span class="center">春分</span>
37 </div>
38 <div class="btn-wrapper2" :class="[isXZ?'add-bg2': '']" @click="handleIsXmbj('isXZ')">
39 <span class="center">夏至</span>
40 </div>
41 <div class="btn-wrapper2" :class="[isQF?'add-bg2': '']" @click="handleIsXmbj('isQF')">
42 <span class="center">秋分</span>
43 </div>
44 <div class="btn-wrapper2" :class="[isLD?'add-bg2': '']" @click="handleIsXmbj('isLD')">
45 <span class="center">立冬</span>
46 </div>
47 <div class="btn-wrapper2" :class="[isDZ?'add-bg2': '']" @click="handleIsXmbj('isDZ')">
48 <span class="center">冬至</span>
49 </div>
50 </div> -->
51
52 <div class="func-input">
22 <span>时间间隔 </span> 53 <span>时间间隔 </span>
23 <el-input-number v-model="timeS" controls-position="right" :min="0" :max="1000" 54 <el-input-number v-model="timeS" controls-position="right" :min="0" :max="1000"
24 style="margin:0 12px; width: 245px;"></el-input-number> 55 style="margin:0 12px; width: 245px;"></el-input-number>
...@@ -45,7 +76,6 @@ ...@@ -45,7 +76,6 @@
45 </template> 76 </template>
46 77
47 <script> 78 <script>
48 import shadow from "../assets/js/map/shadow";
49 let maxW = 24 * 60 * 60 * 1000 - 1 * 60 * 1000 79 let maxW = 24 * 60 * 60 * 1000 - 1 * 60 * 1000
50 export default { 80 export default {
51 name: 'yyAnslysis', 81 name: 'yyAnslysis',
...@@ -62,7 +92,7 @@ ...@@ -62,7 +92,7 @@
62 anslysisTime: '', 92 anslysisTime: '',
63 timeS: 30, // 时间间隔 93 timeS: 30, // 时间间隔
64 time: 0 * 60 * 60 * 1000, // 滑块时间 94 time: 0 * 60 * 60 * 1000, // 滑块时间
65 max: (24 * 60 * 60 * 1000 - 1* 60 * 1000), 95 max: (24 * 60 * 60 * 1000 - 1 * 60 * 1000),
66 marks: { 96 marks: {
67 0: '0:00', 97 0: '0:00',
68 [maxW]: '23:59', 98 [maxW]: '23:59',
...@@ -72,8 +102,16 @@ ...@@ -72,8 +102,16 @@
72 // }, 102 // },
73 // label: this.$createElement('strong', '50%') 103 // label: this.$createElement('strong', '50%')
74 // } 104 // }
105 },
106 pickerOptions: { // 时间选择器 时间范围限制
107 selectableRange: '00:00:00 - 23:59:59'
108 },
109 staTime: '', // 开始时间
110 endTime: '', // 结束时间
75 } 111 }
76 } 112 },
113 watch: {
114
77 }, 115 },
78 mounted() { 116 mounted() {
79 this.shadow instanceof shadow || (this.shadow = new shadow()); 117 this.shadow instanceof shadow || (this.shadow = new shadow());
...@@ -112,7 +150,7 @@ ...@@ -112,7 +150,7 @@
112 formatTooltip(val) { 150 formatTooltip(val) {
113 let nowTime = this.commons.dateZhuan('yyyy-MM-dd 00:00:00', new Date()); 151 let nowTime = this.commons.dateZhuan('yyyy-MM-dd 00:00:00', new Date());
114 let nowSjc = new Date(nowTime).getTime(); 152 let nowSjc = new Date(nowTime).getTime();
115 nowSjc+=val; 153 nowSjc += val;
116 let sfd = this.commons.dateZhuan('hh:mm', new Date(nowSjc)); 154 let sfd = this.commons.dateZhuan('hh:mm', new Date(nowSjc));
117 return sfd; 155 return sfd;
118 } 156 }
...@@ -283,6 +321,7 @@ ...@@ -283,6 +321,7 @@
283 >>>.el-icon-arrow-up:before, 321 >>>.el-icon-arrow-up:before,
284 >>>.el-icon-arrow-down:before { 322 >>>.el-icon-arrow-down:before {
285 color: #fff; 323 color: #fff;
324 cursor: pointer;
286 } 325 }
287 326
288 >>>.el-input-number.is-controls-right .el-input-number__increase { 327 >>>.el-input-number.is-controls-right .el-input-number__increase {
...@@ -295,7 +334,7 @@ ...@@ -295,7 +334,7 @@
295 box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.20); 334 box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.20);
296 } 335 }
297 336
298 >>> .el-slider__marks-text { 337 >>>.el-slider__marks-text {
299 color: #fff; 338 color: #fff;
300 } 339 }
301 </style> 340 </style>
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -6,5 +6,6 @@ ...@@ -6,5 +6,6 @@
6 */ 6 */
7 export default { 7 export default {
8 url: '', 8 url: '',
9 loginUrl: 'http://10.6.144.88:10001/orup',
9 mapToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJhMzMwMjAwZS1lODRmLTRhNzQtODBkOS01YjZkM2ZkYzRmOGMiLCJpZCI6MzE3MzEsInNjb3BlcyI6WyJhc3IiLCJnYyJdLCJpYXQiOjE1OTU5MDA0Njd9.K5Rnvdzv5vDjlEbBH-2vEPMJYPgBDs__uvQHZz6jXTc' 10 mapToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJhMzMwMjAwZS1lODRmLTRhNzQtODBkOS01YjZkM2ZkYzRmOGMiLCJpZCI6MzE3MzEsInNjb3BlcyI6WyJhc3IiLCJnYyJdLCJpYXQiOjE1OTU5MDA0Njd9.K5Rnvdzv5vDjlEbBH-2vEPMJYPgBDs__uvQHZz6jXTc'
10 } 11 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -28,9 +28,48 @@ ...@@ -28,9 +28,48 @@
28 28
29 @ymAnslysis='EymAnslysis' 29 @ymAnslysis='EymAnslysis'
30 @tjxAnslysis='EtjxAnslysis' 30 @tjxAnslysis='EtjxAnslysis'
31 @visualField='EvisualField'
31 @yyAnslysis='EyyAnslysis' 32 @yyAnslysis='EyyAnslysis'
32 @kgAnalusis='EkgAnalusis' 33 @kgAnalusis='EkgAnalusis'
34 <div class="rightFunc">
35 <rightFunc @isReturn='EisReturn'
36 @enlarge='Eenlarge'
37 @narrow='narrow'
38 @coordinate='Ecoordinate'
39 @distance='Edistance'
40 @area='Earea'
41 @marker='Emarker'
42 @rollerShutter='ErollerShutter'
43 @splitScreen='EsplitScreen'
44 @toNorth='EtoNorth'
45 @topSee='EtopSee'
46 @roundSee='EroundSee'
47 @horizon='Ehorizon'
48 @allSee='EallSee'
33 49
50 @ymAnslysis='EymAnslysis'
51 @tjxAnslysis='EtjxAnslysis'
52 @yyAnslysis='EyyAnslysis'
53 @kgAnalusis='EkgAnalusis'
54
55 :enlarge='enlarge'
56 :narrow='narrow'
57 :coordinate='coordinate'
58 :distance='distance'
59 :area='area'
60 :marker='marker'
61 :rollerShutter='rollerShutter'
62 :splitScreen='splitScreen'
63 :toNorth='toNorth'
64 :topSee='topSee'
65 :roundSee='roundSee'
66 :horizon='horizon'
67 :allSee='allSee'
68 :ymAnslysis='ymAnslysis'
69 :tjxAnslysis='tjxAnslysis'
70 :visualField='visualField'
71 :yyAnslysis='yyAnslysis'
72 :kgAnalusis='kgAnalusis'></rightFunc>
34 :enlarge='enlarge' 73 :enlarge='enlarge'
35 :narrow='narrow' 74 :narrow='narrow'
36 :coordinate='coordinate' 75 :coordinate='coordinate'
...@@ -57,7 +96,7 @@ ...@@ -57,7 +96,7 @@
57 </div> --> 96 </div> -->
58 <!-- <div class="mapPop"> 97 <!-- <div class="mapPop">
59 <mapPop></mapPop> 98 <mapPop></mapPop>
60 </div> --> 99 </div>
61 <div class="allSee" v-if='allSee'> 100 <div class="allSee" v-if='allSee'>
62 <allSee @closePop='closePop'></allSee> 101 <allSee @closePop='closePop'></allSee>
63 </div> 102 </div>
...@@ -73,6 +112,12 @@ ...@@ -73,6 +112,12 @@
73 <div class="allSee tjx-anslysis" v-if='tjxAnslysis'> 112 <div class="allSee tjx-anslysis" v-if='tjxAnslysis'>
74 <tjxAnslysis @closePop='closePop'></tjxAnslysis> 113 <tjxAnslysis @closePop='closePop'></tjxAnslysis>
75 </div> 114 </div>
115
116
117 <div class="allSee tjx-anslysis" v-if='visualField'>
118 <visualField @closePop='closePop'></visualField>
119 </div>
120
76 <div class="allSee" v-if='yyAnslysis'> 121 <div class="allSee" v-if='yyAnslysis'>
77 <yyAnslysis @closePop='closePop'></yyAnslysis> 122 <yyAnslysis @closePop='closePop'></yyAnslysis>
78 </div> 123 </div>
...@@ -137,6 +182,7 @@ ...@@ -137,6 +182,7 @@
137 import kgAnalusis from '../components/kgAnalusis'; // 控高分析 182 import kgAnalusis from '../components/kgAnalusis'; // 控高分析
138 import URL_CONFIG from "./../config/urlConfig.vue"; 183 import URL_CONFIG from "./../config/urlConfig.vue";
139 const Cesium = window.Cesium; 184 const Cesium = window.Cesium;
185 import visualField from '../components/visualField' //可视域分析
140 186
141 export default { 187 export default {
142 components: { 188 components: {
...@@ -151,6 +197,7 @@ ...@@ -151,6 +197,7 @@
151 ymAnslysis, 197 ymAnslysis,
152 horizon, 198 horizon,
153 tjxAnslysis, 199 tjxAnslysis,
200 visualField,
154 yyAnslysis, 201 yyAnslysis,
155 kgAnalusis, 202 kgAnalusis,
156 }, 203 },
...@@ -174,12 +221,13 @@ ...@@ -174,12 +221,13 @@
174 allSee: false, // 通视 221 allSee: false, // 通视
175 ymAnslysis: false, // 淹没分析 222 ymAnslysis: false, // 淹没分析
176 tjxAnslysis: false, // 天际线分析 223 tjxAnslysis: false, // 天际线分析
224 visualField: false, // 可视域分析
177 yyAnslysis: false, // 阴影分析 225 yyAnslysis: false, // 阴影分析
178 kgAnalusis: false, // 控高分析 226 kgAnalusis: false, // 控高分析
179 keepArr: ['isReturn', 'enlarge', 'narrow', 'coordinate', 'distance', 227 keepArr: ['isReturn', 'enlarge', 'narrow', 'coordinate', 'distance',
180 'area', 'marker', 'rollerShutter', 'splitScreen', 'toNorth', 228 'area', 'marker', 'rollerShutter', 'splitScreen', 'toNorth',
181 'topSee', 'roundSee', 'horizon', 'allSee', 'ymAnslysis', 229 'topSee', 'roundSee', 'horizon', 'allSee', 'ymAnslysis',
182 'tjxAnslysis', 'yyAnslysis', 'kgAnalusis'] 230 'tjxAnslysis', 'yyAnslysis', 'kgAnalusis', 'visualField']
183 } 231 }
184 }, 232 },
185 mounted() { 233 mounted() {
...@@ -295,7 +343,93 @@ ...@@ -295,7 +343,93 @@
295 ,EtopSee() {} 343 ,EtopSee() {}
296 // 环视 344 // 环视
297 ,EroundSee() { 345 ,EroundSee() {
298 // this.visual instanceof visual || (this.visual = new visual(this.viewer)); 346 // var parentEntity = this.viewer.entities.add(new Cesium.Entity()), positions = [], cartesian, polyline;
347 // this.handler = new Cesium.ScreenSpaceEventHandler(this.viewer.scene.canvas)
348 // this.handler.setInputAction(evt => {
349
350 // cartesian = this.viewer.scene.pickPosition(evt.position);
351 // // cartesian = this.draw.getCatesian3FromPX(evt.position, this.viewer, []);
352 // positions.push(cartesian.clone());
353 // // addCompany.createPoint.call(this, {position: cartesian})
354
355 // if(positions.length === 1) {
356 // this.handler.setInputAction(moveEvent => {
357 // positions[1] = this.viewer.scene.pickPosition(moveEvent.endPosition);
358 // // positions[1] = this.draw.getCatesian3FromPX(moveEvent.endPosition, this.viewer, []);
359 // !polyline && (polyline = addCompany.createPolyline.call(this, positions));
360 // }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
361 // return;
362 // }
363
364
365 // this.handler.destroy();
366 // // console.log(Cesium.Cartesian3.distance(positions[0], positions[1]));
367 // // var cartesian = this.draw.getCatesian3FromPX(evt.position, this.viewer, []);
368 // var viewPointEntity = this.viewer.entities.add({
369 // parent: parentEntity,
370 // position: positions[0],
371 // ellipsoid: {
372 // radii: new Cesium.Cartesian3(5, 5, 5),
373 // material: Cesium.Color.GREEN
374 // }
375 // });
376 // // // 世界坐标转换为投影坐标
377 // var webMercatorProjection = new Cesium.WebMercatorProjection(this.viewer.scene.globe.ellipsoid);
378 // var viewPointWebMercator = webMercatorProjection.project(Cesium.Cartographic.fromCartesian(positions[0]));
379 // // // 排除碰撞监测的对象
380 // var objectsToExclude = [viewPointEntity];
381
382 // // 目标点集合
383 // var destPoints = [];
384 // // 视域点和目标点的距离
385 // var radius = Cesium.Cartesian3.distance(positions[0], positions[1]); // 视距1000米
386 // // 计算一圈
387 // for (var i = 0; i <= 30; i++) {
388 // // 度数转弧度
389 // var radians = Cesium.Math.toRadians(i);
390 // // 计算目标点
391 // var toPoint = new Cesium.Cartesian3(viewPointWebMercator.x + radius * Math.cos(radians), viewPointWebMercator.y + radius * Math.sin(radians), 10);
392 // // 投影坐标转世界坐标
393 // toPoint = webMercatorProjection.unproject(toPoint);
394 // destPoints.push(Cesium.Cartographic.toCartesian(toPoint.clone()));
395 // }
396 // let viewer = this.viewer;
397 // // 绘制线
398 // function drawLine(leftPoint, secPoint, color) {
399 // viewer.entities.add({
400 // polyline: {
401 // positions: [leftPoint, secPoint],
402 // arcType: Cesium.ArcType.NONE,
403 // width: 5,
404 // material: color,
405 // depthFailMaterial: color
406 // }
407 // })
408 // }
409 // pickFromRay.call(this);
410 // function pickFromRay() {
411 // for (var i = 0; i < destPoints.length; i++) {
412 // // 计算射线的方向,目标点left 视域点right
413 // var direction = Cesium.Cartesian3.normalize(Cesium.Cartesian3.subtract(destPoints[i], positions[0], new Cesium.Cartesian3()), new Cesium.Cartesian3());
414 // console.log(direction);
415 // // 建立射线
416 // var ray = new Cesium.Ray(positions[0], direction);
417 // var result = viewer.scene.pickFromRay(ray, objectsToExclude); // 计算交互点,返回第一个
418 // showIntersection(result, destPoints[i], positions[0]);
419 // }
420 // }
421 // // 处理交互点
422 // function showIntersection(result, destPoint, cartesian) {
423 // // 如果是场景模型的交互点,排除交互点是地球表面
424 // if (Cesium.defined(result) && Cesium.defined(result.object)) {
425 // drawLine(result.position, cartesian, Cesium.Color.GREEN); // 可视区域
426 // drawLine(result.position, destPoint, Cesium.Color.RED); // 不可视区域
427 // } else {
428 // drawLine(cartesian, destPoint, Cesium.Color.GREEN);
429 // }
430 // }
431 // this.handler.destroy();
432 // }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
299 } 433 }
300 // 视域 434 // 视域
301 ,Ehorizon(val) { 435 ,Ehorizon(val) {
...@@ -319,6 +453,11 @@ ...@@ -319,6 +453,11 @@
319 this[val] = !this[val]; 453 this[val] = !this[val];
320 this.onlySelect(val); 454 this.onlySelect(val);
321 }, 455 },
456 // 可视化分析
457 EvisualField(val) {
458 this[val] = !this[val];
459 this.onlySelect(val);
460 },
322 // 阴影分析 461 // 阴影分析
323 EyyAnslysis(val) { 462 EyyAnslysis(val) {
324 this[val] = !this[val]; 463 this[val] = !this[val];
......