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