Merge remote-tracking branch 'origin/master'
# Conflicts: # public/index.html # src/components/yyAnslysis.vue # src/views/Home.vue
Showing
10 changed files
with
535 additions
and
29 deletions
| ... | @@ -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 | } | ... | ... |
src/components/visualField.vue
0 → 100644
| 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]; | ... | ... |
-
Please register or sign in to post a comment