jikai commit
Showing
5 changed files
with
690 additions
and
37 deletions
... | @@ -51,7 +51,7 @@ | ... | @@ -51,7 +51,7 @@ |
51 | data:{username:'案件查处',password:'123'}, | 51 | data:{username:'案件查处',password:'123'}, |
52 | success:(res) => { | 52 | success:(res) => { |
53 | // window.open(`http://10.6.144.88:10001/frontweb/index.jsp?type=${label}`) | 53 | // window.open(`http://10.6.144.88:10001/frontweb/index.jsp?type=${label}`) |
54 | window.open(`http://192.168.5.143:80/frontweb/index.jsp?type=${label}`) | 54 | window.open(`http://192.168.3.194:80/frontweb/index.jsp?type=${label}`) |
55 | }, | 55 | }, |
56 | fail: () => { | 56 | fail: () => { |
57 | 57 | ... | ... |
src/components/taskList.vue
0 → 100644
1 | // 左侧 资源目录 组件 | ||
2 | <template> | ||
3 | <div> | ||
4 | <div class="container"> | ||
5 | <el-card> | ||
6 | <div slot="header" class="clearfix"> | ||
7 | <span>查询列表</span> | ||
8 | <el-button type="primary" style="float:right;" size="mini" @click="createQue">新建查询</el-button> | ||
9 | </div> | ||
10 | <div id="list"> | ||
11 | <div v-for="o in data" :key="o.id" class="textItem" @click="showProject(o)"> | ||
12 | <p>{{o.taskname}}</p> | ||
13 | <p> | ||
14 | {{new Date(o.starttime) | time}} | ||
15 | <i class="el-icon-delete"></i> | ||
16 | <i class="el-icon-folder"></i> | ||
17 | <i class="el-icon-edit-outline"></i> | ||
18 | <i class="el-icon-success"></i> | ||
19 | </p> | ||
20 | </div> | ||
21 | </div> | ||
22 | </el-card> | ||
23 | </div> | ||
24 | |||
25 | <div class="newquery" ref="newquery"> | ||
26 | <el-card style="border:none;"> | ||
27 | <div slot="header" class="clearfix"> | ||
28 | <span>新建查询</span> | ||
29 | <i class="el-icon-close" @click="close('newquery')"></i> | ||
30 | </div> | ||
31 | <div> | ||
32 | <p> | ||
33 | <el-button type="primary" style="margin-right:16px;">导入文件</el-button> | ||
34 | <i class="bluecls">(仅支持shp、dxf、text格式文件)</i> | ||
35 | </p> | ||
36 | <p> | ||
37 | <i class="whitecls">地块: </i> | ||
38 | <el-select v-model="value" placeholder="请选择"> | ||
39 | <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> | ||
40 | </el-option> | ||
41 | </el-select> | ||
42 | <el-button type="primary" style="margin-left:64px;">建设项目数据</el-button> | ||
43 | </p> | ||
44 | <p> | ||
45 | <i class="whitecls">1. </i> | ||
46 | <i class="whitecls">X : </i> | ||
47 | <el-input v-model="input"></el-input> | ||
48 | <i class="whitecls">Y : </i> | ||
49 | <el-input v-model="input"></el-input> | ||
50 | <i class="el-icon-thumb redcls"></i> | ||
51 | <i class="el-icon-delete redcls"></i> | ||
52 | </p> | ||
53 | <p> | ||
54 | <i class="whitecls">2. </i> | ||
55 | <i class="whitecls">X : </i> | ||
56 | <el-input v-model="input"></el-input> | ||
57 | <i class="whitecls">Y : </i> | ||
58 | <el-input v-model="input"></el-input> | ||
59 | <i class="el-icon-thumb redcls"></i> | ||
60 | <i class="el-icon-delete redcls"></i> | ||
61 | </p> | ||
62 | <p> | ||
63 | <i class="whitecls">3. </i> | ||
64 | <i class="whitecls">X : </i> | ||
65 | <el-input v-model="input"></el-input> | ||
66 | <i class="whitecls">Y : </i> | ||
67 | <el-input v-model="input"></el-input> | ||
68 | <i class="el-icon-thumb redcls"></i> | ||
69 | <i class="el-icon-delete redcls"></i> | ||
70 | </p> | ||
71 | <p> | ||
72 | <i class="whitecls">4. </i> | ||
73 | <i class="whitecls">X : </i> | ||
74 | <el-input v-model="input"></el-input> | ||
75 | <i class="whitecls">Y : </i> | ||
76 | <el-input v-model="input"></el-input> | ||
77 | <i class="el-icon-thumb redcls"></i> | ||
78 | <i class="el-icon-delete redcls"></i> | ||
79 | </p> | ||
80 | <p> | ||
81 | <el-button type="primary" style="margin-right:16px;">添加</el-button> | ||
82 | <el-button type="info" style="margin-right:16px;">清空</el-button> | ||
83 | </p> | ||
84 | <p> | ||
85 | <i class="bluecls">西安市坐标范围</i> | ||
86 | <i class="redcls">(国家2000坐标系)</i> | ||
87 | </p> | ||
88 | <p> | ||
89 | |||
90 | </p> | ||
91 | <p class="foot"> | ||
92 | <el-button type="primary" style="margin-right:16px;">提交</el-button> | ||
93 | <el-button type="info" style="margin-right:16px;">取消</el-button> | ||
94 | </p> | ||
95 | </div> | ||
96 | </el-card> | ||
97 | </div> | ||
98 | |||
99 | <div class="project" ref="project"> | ||
100 | <el-card style="border:none;"> | ||
101 | <div slot="header" class="clearfix"> | ||
102 | <span>项目</span> | ||
103 | <i class="el-icon-close" @click="close('project')"></i> | ||
104 | </div> | ||
105 | <p> | ||
106 | <el-button type="primary" style="margin-right:16px;"> | ||
107 | <i class="el-icon-download whitecls"></i>导出WORD | ||
108 | </el-button> | ||
109 | <el-button type="primary" style="margin-right:16px;"> | ||
110 | <i class="el-icon-download whitecls"></i>导出PDF | ||
111 | </el-button> | ||
112 | </p><br/> | ||
113 | <div class="flex-container"> | ||
114 | <div class="flex-left"> | ||
115 | <p> | ||
116 | <i class="bluecls">总面积: </i> | ||
117 | <el-input v-model="input"></el-input> | ||
118 | </p> | ||
119 | <p v-for="o in formData" :key="o.id"> | ||
120 | <i class="bluecls">{{ o.layername }}: </i> | ||
121 | <el-input v-if="['textarea']" type="textarea" :value="textareaValue(o['textresult'])"></el-input> | ||
122 | <el-input v-else :value="textareaValue(o['textresult'])"></el-input> | ||
123 | </p> | ||
124 | </div> | ||
125 | <div class="flex-right"> | ||
126 | <div v-for="o in formData" :key="o.id"> | ||
127 | <div class="mapTitle">{{ o.layername }}</div> | ||
128 | <div v-if="!o.showpicture" class="mapImage"> | ||
129 | {{ textareaValue(o['textresult']) }} | ||
130 | </div> | ||
131 | <img v-else-if="o.pictureresult" :src="'data:image/jpg;base64,' + o.pictureresult" class="mapImage"> | ||
132 | </div> | ||
133 | </div> | ||
134 | </div> | ||
135 | </el-card> | ||
136 | </div> | ||
137 | |||
138 | </div> | ||
139 | </template> | ||
140 | |||
141 | <script> | ||
142 | import responseData from '../assets/js/map/responseData'; | ||
143 | import graphicAnalyze from '../assets/js/json/graphicAnalyze'; | ||
144 | export default { | ||
145 | name: 'leftAssert', | ||
146 | components: { | ||
147 | }, | ||
148 | data() { | ||
149 | return { | ||
150 | data: [], | ||
151 | options: [{ | ||
152 | value: '0', | ||
153 | label: '地块一' | ||
154 | }, { | ||
155 | value: '1', | ||
156 | label: '地块二' | ||
157 | }], | ||
158 | input: '', | ||
159 | formData: [] | ||
160 | } | ||
161 | }, | ||
162 | filters: { | ||
163 | time: function time(value) { | ||
164 | var now = new Date(value), | ||
165 | y = now.getFullYear(), | ||
166 | m = now.getMonth() + 1, | ||
167 | d = now.getDate(); | ||
168 | return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + " " + now.toTimeString().substr(0, 8); | ||
169 | } | ||
170 | }, | ||
171 | mounted() { | ||
172 | responseData.data ? this.data = responseData.data : | ||
173 | this.$http.get('http://192.168.3.194/XAYZT/analizeTask/getTaskListByUserId?userid=' | ||
174 | + responseData.id + '&pageIndex=' + responseData.pageIndex + '&pageSize=' | ||
175 | + responseData.pageSize).then(response => { | ||
176 | response.status === 200 && (this.data = responseData.data = response.data.data) | ||
177 | }); | ||
178 | }, | ||
179 | methods: { | ||
180 | createQue() { | ||
181 | this.$refs.newquery.style.display = 'block'; | ||
182 | }, | ||
183 | showProject(o) { | ||
184 | this.$http.get('http://192.168.3.194/XAYZT/analizeTask/layerAnalizeResult?taskid=b2098e7941f540f393884881113cb00f').then(response => { | ||
185 | if(response.status !== 200) return; | ||
186 | this.formData = []; | ||
187 | let data = response.data.data.analizeResultList, dataArray = [], i = 0, o; | ||
188 | for( ; o = data[i++] ; ) { | ||
189 | var layer = this.eachAnalyzeConifg('alias', o.layername); | ||
190 | this.formData.push({ | ||
191 | id: o.id, | ||
192 | taskid: o.taskid, | ||
193 | textarea: !!layer.textarea, | ||
194 | textshow: true, | ||
195 | layername: o.layername, | ||
196 | textresult: o.textresult, | ||
197 | showpicture: true, | ||
198 | pictureresult: o.pictureresult | ||
199 | }) | ||
200 | } | ||
201 | this.$refs.project.style.display = 'block'; | ||
202 | }); | ||
203 | }, | ||
204 | close(a) { | ||
205 | this.$refs[a].style.display = 'none'; | ||
206 | }, | ||
207 | eachAnalyzeConifg: function (key, value) { | ||
208 | let layers = graphicAnalyze.layers; | ||
209 | for (var index in layers) { | ||
210 | if ( layers[index][key] == value ) { | ||
211 | return layers[index]; | ||
212 | } | ||
213 | } | ||
214 | }, | ||
215 | textareaValue: function (value) { | ||
216 | if (!value) return ""; | ||
217 | var content = []; | ||
218 | try { | ||
219 | var valObj = JSON.parse(value); | ||
220 | var valObjKeys = Object.keys(valObj); | ||
221 | for (var key in valObj) { | ||
222 | var resultStr = this.contentJoin(key, valObj[key]); | ||
223 | if (valObjKeys.length === 1) { | ||
224 | content.push(resultStr); | ||
225 | } else { | ||
226 | content.push(key + ": " + resultStr); | ||
227 | } | ||
228 | } | ||
229 | } catch (e) { | ||
230 | console.error(e); | ||
231 | return '分析出错'; | ||
232 | } | ||
233 | return content.join("\n"); | ||
234 | }, | ||
235 | contentJoin: function (layername, textresult) { | ||
236 | var totalArea = 0, | ||
237 | areaObject = {}, | ||
238 | yongdixingzhiArray = []; | ||
239 | for (var key in textresult) { | ||
240 | var value = textresult[key]; | ||
241 | if (value.status === 'error') { | ||
242 | return '分析出错'; | ||
243 | } | ||
244 | // 用地性质 | ||
245 | var oldyongdixingzhi = value.用地性质 + ''; | ||
246 | var yongdixingzhi = oldyongdixingzhi.replace(/[^\u4E00-\u9FA5]/g,''); | ||
247 | if (yongdixingzhiArray.indexOf(yongdixingzhi) === -1) { | ||
248 | yongdixingzhiArray.push(yongdixingzhi); | ||
249 | } | ||
250 | // 用地面积 | ||
251 | var area = value.area; | ||
252 | var oldArea = areaObject[yongdixingzhi]; | ||
253 | areaObject[yongdixingzhi] = oldArea === undefined ? area : (area + oldArea); | ||
254 | // 总面积 | ||
255 | totalArea += area; | ||
256 | } | ||
257 | |||
258 | // 平方米转换为亩 | ||
259 | totalArea = this.squaremeterToAcre(totalArea); | ||
260 | for (var key in areaObject) { | ||
261 | areaObject[key] = this.squaremeterToAcre(areaObject[key]); | ||
262 | } | ||
263 | |||
264 | // 根据分析图层显示分析结果 | ||
265 | var resultStr = []; | ||
266 | switch (layername) { | ||
267 | case "详细规划": | ||
268 | case "过渡期适用图层": | ||
269 | yongdixingzhiArray.forEach(function (yongdixingzh) { | ||
270 | var yongdixingzhArea = areaObject[yongdixingzh]; | ||
271 | if (yongdixingzhArea > 0.001) { | ||
272 | resultStr.push(yongdixingzh + ', ' + yongdixingzhArea + '亩。'); | ||
273 | } | ||
274 | }); | ||
275 | if (resultStr.length == 0) { | ||
276 | resultStr.push("未占用"); | ||
277 | } | ||
278 | break; | ||
279 | case "停车场规划": | ||
280 | let _array = []; | ||
281 | yongdixingzhiArray.forEach(function (yongdixingzh) { | ||
282 | var yongdixingzhArea = areaObject[yongdixingzh]; | ||
283 | if (yongdixingzhArea > 0.001) { | ||
284 | _array.push(yongdixingzh); | ||
285 | } | ||
286 | }); | ||
287 | if (_array.length == 0) { | ||
288 | resultStr.push("未涉及停车场规划"); | ||
289 | } else { | ||
290 | resultStr.push("涉及" + _array.join("、")); | ||
291 | } | ||
292 | break; | ||
293 | case "城市快速路体系": | ||
294 | if (yongdixingzhiArray.length == 0) { | ||
295 | resultStr.push("未涉及城市快速路"); | ||
296 | } else { | ||
297 | resultStr.push("涉及" + yongdixingzhiArray.join("、")); | ||
298 | } | ||
299 | break; | ||
300 | case "铁路南环线": | ||
301 | if (yongdixingzhiArray.length == 0) { | ||
302 | resultStr.push("未涉及铁路南环线控制区域"); | ||
303 | } else { | ||
304 | resultStr.push("涉及铁路南环线控制区域"); | ||
305 | } | ||
306 | break; | ||
307 | case "地铁控制线": | ||
308 | if (totalArea < 0.001) { | ||
309 | resultStr.push("不在地铁控制线范围内"); | ||
310 | } else { | ||
311 | resultStr.push("在地铁控制线范围内"); | ||
312 | } | ||
313 | break; | ||
314 | case "公交场站规划(2018-2021年)": | ||
315 | if (totalArea < 0.001) { | ||
316 | resultStr.push("不在公交场站选址范围内"); | ||
317 | } else { | ||
318 | resultStr.push("在公交场站选址范围内"); | ||
319 | } | ||
320 | break; | ||
321 | case "生态控制红线": | ||
322 | if (totalArea < 0.001) { | ||
323 | resultStr.push("未占用"); | ||
324 | } else { | ||
325 | resultStr.push("生态控制红线," + totalArea + "亩"); | ||
326 | } | ||
327 | break; | ||
328 | case "基本农田保护区": | ||
329 | if (totalArea < 0.001) { | ||
330 | resultStr.push("未占用"); | ||
331 | } else { | ||
332 | resultStr.push("基本农田," + totalArea + "亩"); | ||
333 | } | ||
334 | break; | ||
335 | case "城市紫线": | ||
336 | case "城市绿线": | ||
337 | if (totalArea < 0.001) { | ||
338 | resultStr.push("未占用"); | ||
339 | } else { | ||
340 | resultStr.push("占用"); | ||
341 | } | ||
342 | break; | ||
343 | case "城市蓝线": | ||
344 | case "道路红线": | ||
345 | case "城市黄线": | ||
346 | if (yongdixingzhiArray.length === 0) { | ||
347 | resultStr.push("未占用"); | ||
348 | } else { | ||
349 | resultStr.push("占用"); | ||
350 | } | ||
351 | break; | ||
352 | case "影像地图": | ||
353 | resultStr.push("/"); | ||
354 | break; | ||
355 | default: | ||
356 | yongdixingzhiArray.forEach(function (yongdixingzh) { | ||
357 | var yongdixingzhArea = areaObject[yongdixingzh]; | ||
358 | if (yongdixingzhArea > 0.001) { | ||
359 | resultStr.push(yongdixingzh + ', ' + yongdixingzhArea + '亩。'); | ||
360 | } | ||
361 | }); | ||
362 | if (resultStr.length == 0) { | ||
363 | resultStr.push("未占用"); | ||
364 | } | ||
365 | break; | ||
366 | } | ||
367 | return resultStr.join("\n"); | ||
368 | }, | ||
369 | squaremeterToAcre: function (number, fixed) { | ||
370 | if (number === 0) return '0'; | ||
371 | var change1 = number*0.0015; // 转为亩 | ||
372 | var change2 = change1.toFixed(fixed === undefined ? 3 : fixed); // 取小数点后三位数字 | ||
373 | var change3 = change2.replace(/0+$/g,''); // 舍去最后的零 | ||
374 | return change3; | ||
375 | } | ||
376 | } | ||
377 | } | ||
378 | </script> | ||
379 | |||
380 | <style> | ||
381 | .textItem { | ||
382 | font-size: 16px; | ||
383 | color:#5792C4; | ||
384 | border-radius: 6px; | ||
385 | padding: 8px; | ||
386 | font-weight:bold; | ||
387 | margin-bottom: 8px; | ||
388 | } | ||
389 | .textItem:hover { | ||
390 | background-color: cornsilk; | ||
391 | } | ||
392 | .textItem p { | ||
393 | height: 26px; | ||
394 | } | ||
395 | .textItem p > i { | ||
396 | font-size: 22px; | ||
397 | float: right; | ||
398 | margin-right: 10px; | ||
399 | } | ||
400 | .clearfix:before, | ||
401 | .clearfix:after { | ||
402 | display: table; | ||
403 | content: ""; | ||
404 | } | ||
405 | .clearfix:after { | ||
406 | clear: both | ||
407 | } | ||
408 | .clearfix i { | ||
409 | float: right; | ||
410 | font-size: 22px; | ||
411 | } | ||
412 | .container { | ||
413 | opacity: 0.6; | ||
414 | } | ||
415 | .container .el-card { | ||
416 | background-color: #010101; | ||
417 | color: #fff; | ||
418 | transition: .3s; | ||
419 | width: 440px; | ||
420 | border:none; | ||
421 | height:834px; | ||
422 | } | ||
423 | .newquery { | ||
424 | opacity: 0.6; | ||
425 | top: 0px; | ||
426 | left: 450px; | ||
427 | position: absolute; | ||
428 | z-index: 1000; | ||
429 | display: none; | ||
430 | } | ||
431 | .newquery .el-card { | ||
432 | background-color: #010101; | ||
433 | color: #fff; | ||
434 | transition: .3s; | ||
435 | width: 540px; | ||
436 | border:none; | ||
437 | height:556px; | ||
438 | } | ||
439 | .project { | ||
440 | opacity: 0.6; | ||
441 | top: 0px; | ||
442 | left: 1000px; | ||
443 | position: absolute; | ||
444 | z-index: 1000; | ||
445 | display: none; | ||
446 | } | ||
447 | .project .el-card { | ||
448 | background-color: #010101; | ||
449 | color: #fff; | ||
450 | transition: .3s; | ||
451 | width: 864px; | ||
452 | border:none; | ||
453 | height:810px; | ||
454 | } | ||
455 | .newquery p { | ||
456 | height: 48px; | ||
457 | } | ||
458 | .project p { | ||
459 | height: auto; | ||
460 | } | ||
461 | .el-card .el-card__header { | ||
462 | padding: 14px 20px; | ||
463 | border: none; | ||
464 | box-sizing: border-box; | ||
465 | font-size: 18px; | ||
466 | font-weight: bold; | ||
467 | } | ||
468 | .el-card .el-card__body { | ||
469 | padding: 12px 6px 10px 6px; | ||
470 | } | ||
471 | /* 字体样式 */ | ||
472 | .bluecls { | ||
473 | color: #0086E7; | ||
474 | font-size: 16px; | ||
475 | font-weight: bold; | ||
476 | margin-right: 14px; | ||
477 | } | ||
478 | .whitecls { | ||
479 | color: #fff; | ||
480 | font-size: 16px; | ||
481 | font-weight: bold; | ||
482 | margin-right: 5px; | ||
483 | margin-left: 5px; | ||
484 | } | ||
485 | .redcls { | ||
486 | margin-left:10px; | ||
487 | font-size:18px; | ||
488 | color:red; | ||
489 | } | ||
490 | .foot { | ||
491 | float: right; | ||
492 | } | ||
493 | p .el-input { | ||
494 | position: relative; | ||
495 | font-size: 14px; | ||
496 | display: inline-block; | ||
497 | width: 165px; | ||
498 | background-color: #000; | ||
499 | } | ||
500 | .el-input .el-input__inner { | ||
501 | -webkit-appearance: none; | ||
502 | background-color: #000; | ||
503 | background-image: none; | ||
504 | border-radius: 4px; | ||
505 | border: 1px solid #DCDFE6; | ||
506 | box-sizing: border-box; | ||
507 | color: #ffffff; | ||
508 | display: inline-block; | ||
509 | font-size: inherit; | ||
510 | height: 34px; | ||
511 | line-height: 40px; | ||
512 | outline: 0; | ||
513 | padding: 0 15px; | ||
514 | transition: border-color .2s cubic-bezier(.645,.045,.355,1); | ||
515 | width: 100%; | ||
516 | } | ||
517 | p .el-textarea { | ||
518 | position: relative; | ||
519 | display: inline-block; | ||
520 | width: 240px; | ||
521 | vertical-align: top; | ||
522 | font-size: 14px; | ||
523 | } | ||
524 | .el-textarea .el-textarea__inner { | ||
525 | display: block; | ||
526 | resize: vertical; | ||
527 | padding: 5px 15px; | ||
528 | line-height: 1.5; | ||
529 | box-sizing: border-box; | ||
530 | width: 100%; | ||
531 | height: 70px; | ||
532 | font-size: inherit; | ||
533 | color: #fff; | ||
534 | background-color: #000; | ||
535 | background-image: none; | ||
536 | border: 1px solid #DCDFE6; | ||
537 | border-radius: 4px; | ||
538 | transition: border-color .2s cubic-bezier(.645,.045,.355,1); | ||
539 | } | ||
540 | .flex-container { | ||
541 | display: -webkit-flex; | ||
542 | display: flex; | ||
543 | height: 680px; | ||
544 | } | ||
545 | .flex-left { | ||
546 | margin-top: 10px; | ||
547 | width: 60%; | ||
548 | height: 100%; | ||
549 | overflow-y: scroll; | ||
550 | } | ||
551 | .flex-right { | ||
552 | width: 40%; | ||
553 | height: 100%; | ||
554 | overflow-y: scroll; | ||
555 | } | ||
556 | .flex-left .el-input { | ||
557 | position: relative; | ||
558 | font-size: 14px; | ||
559 | display: inline-block; | ||
560 | width: 240px; | ||
561 | background-color: #000; | ||
562 | } | ||
563 | .flex-left p { | ||
564 | float: right; | ||
565 | margin: 4px 16px 4px 10px; | ||
566 | } | ||
567 | .flex-left::-webkit-scrollbar { | ||
568 | width : 10px; | ||
569 | height: 1px; | ||
570 | } | ||
571 | .flex-left::-webkit-scrollbar-thumb { | ||
572 | border-radius : 10px; | ||
573 | background-color: skyblue; | ||
574 | background-image: -webkit-linear-gradient( | ||
575 | 45deg, | ||
576 | rgba(255, 255, 255, 0.2) 25%, | ||
577 | transparent 25%, | ||
578 | transparent 50%, | ||
579 | rgba(255, 255, 255, 0.2) 50%, | ||
580 | rgba(255, 255, 255, 0.2) 75%, | ||
581 | transparent 75%, | ||
582 | transparent | ||
583 | ); | ||
584 | } | ||
585 | .flex-right::-webkit-scrollbar { | ||
586 | width : 10px; | ||
587 | height: 1px; | ||
588 | } | ||
589 | .flex-right::-webkit-scrollbar-thumb { | ||
590 | border-radius : 10px; | ||
591 | background-color: skyblue; | ||
592 | background-image: -webkit-linear-gradient( | ||
593 | 45deg, | ||
594 | rgba(255, 255, 255, 0.2) 25%, | ||
595 | transparent 25%, | ||
596 | transparent 50%, | ||
597 | rgba(255, 255, 255, 0.2) 50%, | ||
598 | rgba(255, 255, 255, 0.2) 75%, | ||
599 | transparent 75%, | ||
600 | transparent | ||
601 | ); | ||
602 | } | ||
603 | #list { | ||
604 | height: 740px; | ||
605 | overflow-y: scroll; | ||
606 | } | ||
607 | #list::-webkit-scrollbar { | ||
608 | width : 10px; | ||
609 | height: 1px; | ||
610 | } | ||
611 | #list::-webkit-scrollbar-thumb { | ||
612 | border-radius : 10px; | ||
613 | background-color: skyblue; | ||
614 | background-image: -webkit-linear-gradient( | ||
615 | 45deg, | ||
616 | rgba(255, 255, 255, 0.2) 25%, | ||
617 | transparent 25%, | ||
618 | transparent 50%, | ||
619 | rgba(255, 255, 255, 0.2) 50%, | ||
620 | rgba(255, 255, 255, 0.2) 75%, | ||
621 | transparent 75%, | ||
622 | transparent | ||
623 | ); | ||
624 | } | ||
625 | .mapTitle { | ||
626 | color: #0086E7; | ||
627 | font-size: 16px; | ||
628 | margin-right: 16px; | ||
629 | width: 100%; | ||
630 | text-align: center; | ||
631 | } | ||
632 | .mapImage { | ||
633 | /* margin: 8px auto; */ | ||
634 | width: 100%; | ||
635 | height: 186px; | ||
636 | padding: 8px; | ||
637 | } | ||
638 | </style> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
... | @@ -31,27 +31,40 @@ | ... | @@ -31,27 +31,40 @@ |
31 | })); | 31 | })); |
32 | let scene = viewer.scene | 32 | let scene = viewer.scene |
33 | scene.shadowMap.darkness = 1; //设置第二重烘焙纹理的效果(明暗程度) | 33 | scene.shadowMap.darkness = 1; //设置第二重烘焙纹理的效果(明暗程度) |
34 | scene.skyAtmosphere.brightnessShift=0.4; | 34 | scene.skyAtmosphere.brightnessShift = 0.4; |
35 | scene.debugShowFramesPerSecond = true; | 35 | scene.debugShowFramesPerSecond = true; |
36 | scene.hdrEnabled = false; | 36 | scene.hdrEnabled = false; |
37 | scene.sun.show = true; | 37 | scene.sun.show = true; |
38 | scene.lightSource.ambientLightColor = new Cesium.Color(0.65, 0.65, 0.65, 1); | ||
39 | |||
38 | this.$parent.draw = new createDraw(viewer); | 40 | this.$parent.draw = new createDraw(viewer); |
39 | this.$parent.viewer = viewer; | 41 | // this.$parent.viewer = viewer; |
42 | objectManage.viewer = viewer; | ||
40 | 43 | ||
41 | var promise = []; | 44 | var promise = []; |
42 | promise[0] = scene.addS3MTilesLayerByScp(URL_CONFIG.SCP_CBD_BUILD, { | 45 | promise[0] = scene.addS3MTilesLayerByScp(URL_CONFIG.SCP_CBD_BUILD, { name: 'build1' }); |
43 | name: 'build1' | 46 | promise[1] = scene.addS3MTilesLayerByScp(URL_CONFIG.SCP_CBD_BUILD, { name: 'build2' }); |
44 | }); | 47 | promise[2] = scene.addS3MTilesLayerByScp(URL_CONFIG.SCP_CBD_GROUND1, { name: 'ground' }); |
45 | promise[1] = scene.addS3MTilesLayerByScp(URL_CONFIG.SCP_CBD_BUILD, { | 48 | promise[3] = scene.addS3MTilesLayerByScp(URL_CONFIG.SCP_CBD_LAKE, { name: 'lake' }); |
46 | name: 'build2' | 49 | // promise[4] = scene.addS3MTilesLayerByScp(URL_CONFIG.SCP_CBD_ROAD, { name: 'road' }); |
47 | }); | 50 | // promise[5] = scene.addS3MTilesLayerByScp(URL_CONFIG.SCP_CBD_BRIDGE, {name: 'bridge'}); |
48 | promise[2] = scene.addS3MTilesLayerByScp(URL_CONFIG.SCP_CBD_GROUND1, { | 51 | promise[4] = scene.addS3MTilesLayerByScp(URL_CONFIG.SCP_CBD_TREE, { name : 'tree'}); |
49 | name: 'ground' | 52 | // promise[5] = scene.addS3MTilesLayerByScp( |
50 | }); | 53 | // 'http://localhost:8090/iserver/services/3D-scene/rest/realspace/datas/dcdata@dataSource/config', |
54 | // { name : 'dcdata'} | ||
55 | // ); | ||
56 | // promise[6] = scene.addS3MTilesLayerByScp( | ||
57 | // 'http://localhost:8090/iserver/services/3D-scene/rest/realspace/datas/dcdata1@dataSource/config', | ||
58 | // { name : 'dcdata1'} | ||
59 | // ); | ||
51 | 60 | ||
52 | Cesium.when.all(promise, layers => { | 61 | Cesium.when.all(promise, layers => { |
62 | layers[0].shadowType = 2; | ||
53 | layers[1].shadowType = 2; | 63 | layers[1].shadowType = 2; |
54 | layers[2].shadowType = 2; | 64 | layers[2].shadowType = 2; |
65 | layers[0].selectEnabled = false; | ||
66 | layers[1].selectEnabled = false; | ||
67 | layers[2].selectEnabled = false; | ||
55 | scene.camera.setView({ | 68 | scene.camera.setView({ |
56 | destination : Cesium.Cartesian3.fromDegrees(116.44621857300415, 39.899281526734555, 216.7793905027196), | 69 | destination : Cesium.Cartesian3.fromDegrees(116.44621857300415, 39.899281526734555, 216.7793905027196), |
57 | orientation : { | 70 | orientation : { | ... | ... |
... | @@ -83,11 +83,11 @@ | ... | @@ -83,11 +83,11 @@ |
83 | return { | 83 | return { |
84 | step: 1, | 84 | step: 1, |
85 | num: 1, | 85 | num: 1, |
86 | direction: 1, // 方向 | 86 | direction: 180, // 方向 |
87 | pitch: 1, // 翻转 | 87 | pitch: 1, // 翻转 |
88 | distance: 1, // 距离 | 88 | distance: 320, // 距离 |
89 | horizontalFov: 1, // 水平视场角 | 89 | horizontalFov: 120, // 水平视场角 |
90 | verticalFov: 1, // 垂直视场角 | 90 | verticalFov: 90, // 垂直视场角 |
91 | visibleAreaColor: 'red', // 可见区域颜色 | 91 | visibleAreaColor: 'red', // 可见区域颜色 |
92 | hiddenAreaColor: 'rgba(255, 69, 0, 0.68)', // 不可见区域颜色 | 92 | hiddenAreaColor: 'rgba(255, 69, 0, 0.68)', // 不可见区域颜色 |
93 | isXmbj: true, | 93 | isXmbj: true, | ... | ... |
... | @@ -32,28 +32,20 @@ | ... | @@ -32,28 +32,20 @@ |
32 | </div> | 32 | </div> |
33 | 33 | ||
34 | <!-- <div class="func-input"> | 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"> | ||
53 | <span>时间间隔 </span> | 35 | <span>时间间隔 </span> |
54 | <el-input-number v-model="timeS" controls-position="right" :min="0" :max="1000" | 36 | <el-input-number v-model="timeS" controls-position="right" :min="0" :max="1000" |
55 | style="margin:0 12px; width: 245px;"></el-input-number> | 37 | style="margin:0 12px; width: 245px;"></el-input-number> |
56 | <span>分钟</span> | 38 | <span>分钟</span> |
39 | </div> --> | ||
40 | |||
41 | <div class="func-input"> | ||
42 | <span>底部高程 </span> | ||
43 | <el-input v-model="bottomHeight" style="margin:0 12px; width: 245px;"></el-input> | ||
44 | </div> | ||
45 | |||
46 | <div class="func-input"> | ||
47 | <span>拉伸高度 </span> | ||
48 | <el-input v-model="extrudeHeight" style="margin:0 12px; width: 245px;"></el-input> | ||
57 | </div> | 49 | </div> |
58 | 50 | ||
59 | <div class="" style="padding: 18px 24px 0px 24px;"> | 51 | <div class="" style="padding: 18px 24px 0px 24px;"> |
... | @@ -82,15 +74,18 @@ | ... | @@ -82,15 +74,18 @@ |
82 | <script> | 74 | <script> |
83 | let maxW = 24 * 60 * 60 * 1000 - 1 * 60 * 1000 | 75 | let maxW = 24 * 60 * 60 * 1000 - 1 * 60 * 1000 |
84 | import shadow from "../assets/js/map/shadow"; | 76 | import shadow from "../assets/js/map/shadow"; |
77 | import objectManage from '../assets/js/map/maputils'; | ||
85 | export default { | 78 | export default { |
86 | name: 'yyAnslysis', | 79 | name: 'yyAnslysis', |
87 | components: {}, | 80 | components: {}, |
88 | data() { | 81 | data() { |
89 | return { | 82 | return { |
90 | anslysisTime: '', | 83 | anslysisTime: new Date(), |
91 | timeS: 30, // 时间间隔 | 84 | timeS: 30, // 时间间隔 |
92 | time: 0 * 60 * 60 * 1000, // 滑块时间 | 85 | time: new Date().getHours() * 60 * 60 * 1000, // 滑块时间 |
93 | max: (24 * 60 * 60 * 1000 - 1 * 60 * 1000), | 86 | max: (24 * 60 * 60 * 1000 - 1 * 60 * 1000), |
87 | bottomHeight: 20, | ||
88 | extrudeHeight: 20, | ||
94 | marks: { | 89 | marks: { |
95 | 0: '0:00', | 90 | 0: '0:00', |
96 | [maxW]: '23:59', | 91 | [maxW]: '23:59', |
... | @@ -113,6 +108,12 @@ | ... | @@ -113,6 +108,12 @@ |
113 | this.$emit('closePop', 'yyAnslysis') | 108 | this.$emit('closePop', 'yyAnslysis') |
114 | }, | 109 | }, |
115 | startAnalysis() { | 110 | startAnalysis() { |
111 | Object.assign(this.shadow, { | ||
112 | anslysisTime: this.anslysisTime, | ||
113 | bottomHeight: Number(this.bottomHeight), | ||
114 | extrudeHeight: Number(this.extrudeHeight) | ||
115 | }); | ||
116 | this.shadow.remove(); | ||
116 | this.shadow.handlerPolygon.deactivate(); | 117 | this.shadow.handlerPolygon.deactivate(); |
117 | this.shadow.handlerPolygon.activate(); | 118 | this.shadow.handlerPolygon.activate(); |
118 | }, | 119 | }, |
... | @@ -133,7 +134,8 @@ | ... | @@ -133,7 +134,8 @@ |
133 | }) | 134 | }) |
134 | }, | 135 | }, |
135 | EtimeChange() { | 136 | EtimeChange() { |
136 | 137 | this.anslysisTime.setHours(Math.round(this.time / 1000 / 60 / 60)); | |
138 | objectManage.viewer.clock.currentTime = Cesium.JulianDate.fromDate(this.anslysisTime); | ||
137 | }, | 139 | }, |
138 | formatTooltip(val) { | 140 | formatTooltip(val) { |
139 | let nowTime = this.commons.dateZhuan('yyyy-MM-dd 00:00:00', new Date()); | 141 | let nowTime = this.commons.dateZhuan('yyyy-MM-dd 00:00:00', new Date()); | ... | ... |
-
Please register or sign in to post a comment