From 2aba5be94bcbb03bb5ec13d121fe945c2f8dce38 Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期二, 13 六月 2023 14:01:32 +0800 Subject: [PATCH] 发布管理,数据统计 --- src/components/preview_map.vue | 602 +++++++++++++++++++++++++++++++++--------------------- 1 files changed, 364 insertions(+), 238 deletions(-) diff --git a/src/components/preview_map.vue b/src/components/preview_map.vue index b2f8517..eec2e45 100644 --- a/src/components/preview_map.vue +++ b/src/components/preview_map.vue @@ -1,139 +1,215 @@ <template> - <div id="mapdiv" - class="previewBox"> - <div v-if="modelLayer" - class="modelLayer box_divm"> + <div + id="mapdiv" + class="previewBox" + > + <div + v-if="modelLayer" + class="modelLayer box_divm" + > <div class="modelBox"> - <div style="float:right" - :title="$t('synthesis.undergroundMode')" - @click="setUndergroundMode"> + <div + style="float:right" + :title="$t('synthesis.undergroundMode')" + @click="setUndergroundMode" + > <i class="el-icon-sunrise "></i> </div> </div> <div class="modelBox"> - <el-tree :data="treeData" - show-checkbox - node-key="id" - ref="tree" - :default-expanded-keys="[1]" - :props="defaultProps" - @node-click="handleNodeClick" - @check="handleCheckChange"> + <el-tree + :data="treeData" + show-checkbox + node-key="id" + ref="tree" + :default-expanded-keys="[1]" + :props="defaultProps" + @node-click="handleNodeClick" + @check="handleCheckChange" + > </el-tree> </div> </div> - <div v-if="editModelFlag" - class="modelLayer box_divm"> - <el-form ref="form" - :model="modelForm" - label-width="80px"> + <div + v-if="editModelFlag" + class="modelLayer box_divm" + > + <el-form + ref="form" + :model="modelForm" + label-width="80px" + > <el-form-item> - <el-button size="small" - @click="locateTo">瀹氫綅</el-button> - <el-button size="small" - @click="showTileset">鏄鹃殣</el-button> - <el-button size="small" - @click="underground">鍦颁笅</el-button> - <el-button v-if="$store.state.previewLayer.type != '3dml'" - size="small" - @click="pickupCoords">鎷惧彇</el-button> - <el-button v-if="$store.state.previewLayer.type != '3dml'" - size="small" - @click="reload"> + <el-button + size="small" + @click="locateTo" + >瀹氫綅</el-button> + <el-button + size="small" + @click="showTileset" + >鏄鹃殣</el-button> + <el-button + size="small" + @click="underground" + >鍦颁笅</el-button> + <el-button + v-if="$store.state.previewLayer.type != '3dml' && + $store.state.previewLayer.type !='cpt'" + size=" + small" + @click="pickupCoords" + >鎷惧彇</el-button> + <el-button + v-if="$store.state.previewLayer.type != '3dml' && + $store.state.previewLayer.type !='cpt'" + size=" + small" + @click="reload" + > 閲嶈浇 </el-button> - <el-button v-if="modelForm.modelid == null && $store.state.previewLayer.type != '3dml'" - size="small" - @click="getModeKeyId">妯″瀷涓婚敭</el-button> - <el-button v-if="$store.state.previewLayer.type != '3dml'" - size="small" - @click="resave">淇濆瓨</el-button> + <el-button + v-if="modelForm.modelid == null && $store.state.previewLayer.type != '3dml'&& + $store.state.previewLayer.type !='cpt'" + size="small" + @click="getModeKeyId" + >妯″瀷涓婚敭</el-button> + <el-button + v-if="$store.state.previewLayer.type != '3dml'&& + $store.state.previewLayer.type !='cpt'" + size="small" + @click="resave" + >淇濆瓨</el-button> </el-form-item> - <el-form-item label="缁忓害:" - v-if="$store.state.previewLayer.type != '3dml'"> - <el-input size="small" - v-model="modelForm.lon" - @input="update"></el-input> - <el-slider v-model="modelForm.lon" - @input="update" - :min="73" - :step="0.001" - :max="135"></el-slider> + <el-form-item + label="缁忓害:" + v-if="$store.state.previewLayer.type != '3dml'&& + $store.state.previewLayer.type !='cpt'" + > + <el-input + size="small" + v-model="modelForm.lon" + @input="update" + ></el-input> + <el-slider + v-model="modelForm.lon" + @input="update" + :min="73" + :step="0.001" + :max="135" + ></el-slider> </el-form-item> - <el-form-item label="绾害:" - v-if="$store.state.previewLayer.type != '3dml'"> - <el-input size="small" - v-model="modelForm.lat" - @input="update"></el-input> - <el-slider v-model="modelForm.lat" - @input="update" - :min="3" - :step="0.001" - :max="54"></el-slider> + <el-form-item + label="绾害:" + v-if="$store.state.previewLayer.type != '3dml'&& + $store.state.previewLayer.type !='cpt'" + > + <el-input + size="small" + v-model="modelForm.lat" + @input="update" + ></el-input> + <el-slider + v-model="modelForm.lat" + @input="update" + :min="3" + :step="0.001" + :max="54" + ></el-slider> </el-form-item> - <el-form-item label="楂樺害:" - v-if="$store.state.previewLayer.type != '3dml'"> - <el-input size="small" - v-model="modelForm.height" - @input="update"></el-input> - <el-slider v-model="modelForm.height" - :min="-800" - :step="1" - @input="update" - :max="8800"></el-slider> + <el-form-item + label="楂樺害:" + v-if="$store.state.previewLayer.type != '3dml'&& + $store.state.previewLayer.type !='cpt'" + > + <el-input + size="small" + v-model="modelForm.height" + @input="update" + ></el-input> + <el-slider + v-model="modelForm.height" + :min="-800" + :step="1" + @input="update" + :max="8800" + ></el-slider> </el-form-item> - <el-form-item label="瑙掑害:" - v-if="$store.state.previewLayer.type != '3dml'"> - <el-input size="small" - v-model="modelForm.yaw" - @input="update"></el-input> - <el-slider v-model="modelForm.yaw" - :min="0" - @input="update" - :step="0.1" - :max="360"></el-slider> + <el-form-item + label="瑙掑害:" + v-if="$store.state.previewLayer.type != '3dml'&& + $store.state.previewLayer.type !='cpt'" + > + <el-input + size="small" + v-model="modelForm.yaw" + @input="update" + ></el-input> + <el-slider + v-model="modelForm.yaw" + :min="0" + @input="update" + :step="0.1" + :max="360" + ></el-slider> </el-form-item> <el-form-item label="閫忔槑搴�:"> - <el-input size="small" - v-model="modelForm.alpha" - @input="update"></el-input> - <el-slider v-model="modelForm.alpha" - @input="update" - :min="0" - :step="0.01" - :max="1"></el-slider> + <el-input + size="small" + v-model="modelForm.alpha" + @input="update" + ></el-input> + <el-slider + v-model="modelForm.alpha" + @input="update" + :min="0" + :step="0.01" + :max="1" + ></el-slider> </el-form-item> </el-form> </div> - <el-dialog :title="formInline.title" - :visible.sync="dialogVisible" - :modal="false" - :modal-append-to-body="false" - :close-on-click-modal="false" - :before-close="handleClose" - width="30%"> + <el-dialog + :title="formInline.title" + :visible.sync="dialogVisible" + :modal="false" + :modal-append-to-body="false" + :close-on-click-modal="false" + :before-close="handleClose" + width="30%" + > <div style="height:63vh"> - <el-tabs v-model="activeName" - @tab-click="handleClick"> - <el-tab-pane label="灞炴��" - name="first"> - <el-form ref="form" - :model="formInline" - label-width="80px"> + <el-tabs + v-model="activeName" + @tab-click="handleClick" + > + <el-tab-pane + label="灞炴��" + name="first" + > + <el-form + ref="form" + :model="formInline" + label-width="80px" + > <el-form-item :label="$t('common.name')"> <el-input v-model="formInline.name"></el-input> </el-form-item> <el-form-item :label="$t('common.type')"> - <el-select v-model="formInline.type" - style="width:100%"> - <el-option v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value"> + <el-select + v-model="formInline.type" + style="width:100%" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > </el-option> </el-select> @@ -144,78 +220,110 @@ </el-form-item> <el-form-item> - <el-button v-show="isShowModel" - type="success" - plain - size="small" - @click="InsertData">{{$t('common.increase')}}</el-button> - <el-button v-show="!isShowModel" - type="info" - plain - size="small" - @click="EditData">{{$t('common.update')}}</el-button> + <el-button + v-show="isShowModel" + type="success" + plain + size="small" + @click="InsertData" + >{{$t('common.increase')}}</el-button> + <el-button + v-show="!isShowModel" + type="info" + plain + size="small" + @click="EditData" + >{{$t('common.update')}}</el-button> </el-form-item> </el-form> </el-tab-pane> - <el-tab-pane label="闄勪欢" - name="second"> - <el-form :model="fromfile" - class="demo-form-inline"> + <el-tab-pane + label="闄勪欢" + name="second" + > + <el-form + :model="fromfile" + class="demo-form-inline" + > <el-form-item> - <el-input v-model="fromfile.file" - style="width: 300px; margin-right: 20px" - :placeholder="$t('common.choose')" - disabled></el-input> - <input name="file1" - type="file" - id="insertFile" - multiple="multiple" - style="display: none" - @change="insertFile( )" /> - <el-link @click="getInsertFile( )" - :underline="false"><i class="el-icon-folder-opened"></i></el-link> + <el-input + v-model="fromfile.file" + style="width: 300px; margin-right: 20px" + :placeholder="$t('common.choose')" + disabled + ></el-input> + <input + name="file1" + type="file" + id="insertFile" + multiple="multiple" + style="display: none" + @change="insertFile( )" + /> + <el-link + @click="getInsertFile( )" + :underline="false" + ><i class="el-icon-folder-opened"></i></el-link> </el-form-item> <el-form-item> <el-row> <el-col :span="3"> - <el-link class="elLink" - :underline="false" - @click="setAttachInsert">{{$t('common.append')}}</el-link> + <el-link + class="elLink" + :underline="false" + @click="setAttachInsert" + >{{$t('common.append')}}</el-link> </el-col> <el-col :span="3"> - <el-link class="elLink" - :underline="false" - @click="setAttachDel">{{$t('common.delete')}}</el-link> + <el-link + class="elLink" + :underline="false" + @click="setAttachDel" + >{{$t('common.delete')}}</el-link> </el-col> </el-row> </el-form-item> </el-form> - <el-table :data="tableData" - ref="filterTable" - height="calc(100% - 130px)" - border - style="width: 100%" - @selection-change="handleAttatchChange"> - <el-table-column type="selection" - width="70" /> - <el-table-column width="60" - type="index" - :label="$t('common.index')" /> - <el-table-column prop="name" - :label="$t('common.name')" /> + <el-table + :data="tableData" + ref="filterTable" + height="calc(100% - 130px)" + border + style="width: 100%" + @selection-change="handleAttatchChange" + > + <el-table-column + type="selection" + width="70" + /> + <el-table-column + width="60" + type="index" + :label="$t('common.index')" + /> + <el-table-column + prop="name" + :label="$t('common.name')" + /> - <el-table-column prop="sizes" - :label="$t('common.size')" - :formatter="statSizeChange" /> - <el-table-column align="center" - :label="$t('common.operate')" - min-width="100"> + <el-table-column + prop="sizes" + :label="$t('common.size')" + :formatter="statSizeChange" + /> + <el-table-column + align="center" + :label="$t('common.operate')" + min-width="100" + > <template slot-scope="scope"> - <el-link v-if="matchState(scope, /[]/)" - @click="setAttatchDetail(scope.$index, scope.row)" - class="elLink">{{ $t('common.see') }}</el-link> + <el-link + v-if="matchState(scope, /[]/)" + @click="setAttatchDetail(scope.$index, scope.row)" + class="elLink" + >{{ $t('common.see') }}</el-link> </template> </el-table-column> @@ -238,48 +346,66 @@ <map-sdk v-if='showMapVisible'></map-sdk> </div> </el-dialog> --> - <el-dialog title="棰勮" - :append-to-body="false" - :visible.sync="dialog.dialogVisible" - width="70%" - :close-on-click-modal="false"> - <div v-if="dialog.isPdf" - class="pdfClass"> - <iframe :src="dialog.src" - type="application/x-google-chrome-pdf" - width="100%" - height="100%"> + <el-dialog + title="棰勮" + :append-to-body="false" + :visible.sync="dialog.dialogVisible" + width="70%" + :close-on-click-modal="false" + > + <div + v-if="dialog.isPdf" + class="pdfClass" + > + <iframe + :src="dialog.src" + type="application/x-google-chrome-pdf" + width="100%" + height="100%" + > </iframe> </div> - <div v-if="dialog.isJpg" - class="pdfClass"> + <div + v-if="dialog.isJpg" + class="pdfClass" + > - <el-image style="width:100%; height:100%" - :src="dialog.src" - :preview-src-list="[dialog.src]"> + <el-image + style="width:100%; height:100%" + :src="dialog.src" + :preview-src-list="[dialog.src]" + > </el-image> </div> </el-dialog> - <div v-show="modelKeyFlag" - class="modelLayer box_divm" - v-drag> - <el-form ref="form" - :model="modelForm" - label-width="80px"> + <div + v-show="modelKeyFlag" + class="modelLayer box_divm" + v-drag + > + <el-form + ref="form" + :model="modelForm" + label-width="80px" + > <el-form-item label="涓婚敭ID"> <el-select v-model="modelLayerId"> - <el-option v-for="item in optionKey" - :key="item.value" - :label="item.label" - :value="item.value"> + <el-option + v-for="item in optionKey" + :key="item.value" + :label="item.label" + :value="item.value" + > </el-option> </el-select> </el-form-item> <el-form-item> - <el-button type="primary" - size="small" - @click="setSureKeyModelKey">{{$t('common.confirm')}}</el-button> + <el-button + type="primary" + size="small" + @click="setSureKeyModelKey" + >{{$t('common.confirm')}}</el-button> </el-form-item> </el-form> </div> @@ -305,7 +431,7 @@ components: { undergroundModel }, - data () { + data() { return { levelArray: [ 0, 40000000, 20000000, 10000000, 5000000, 2000000, 1000000, 500000, @@ -384,11 +510,11 @@ modelKeyFlag: false, } }, - mounted () { + mounted() { this.init3DMap(); }, methods: { - setUndergroundMode () { + setUndergroundMode() { if (window.UndergroundMode) { this.$refs && this.$refs.undergroundModel && @@ -399,14 +525,14 @@ this.$refs.undergroundModel.open("鍦颁笅妯″紡", null,); } }, - refreshAttatchDetail () { + refreshAttatchDetail() { this.dialog.src = ""; this.dialog.dialogVisible = false; this.dialog.isPdf = false; this.dialog.isJpg = false; }, //闄勪欢鏌ョ湅 - setAttatchDetail (index, row) { + setAttatchDetail(index, row) { this.refreshAttatchDetail() var name = row.name; if (name.indexOf('.pdf') != -1 || name.indexOf('.PDF') != -1) { @@ -432,7 +558,7 @@ this.dialog.src = url } }, - async setAttachDel () { + async setAttachDel() { var std = []; for (var i in this.attacgSelection) { std.push(this.attacgSelection[i].id); @@ -443,7 +569,7 @@ } this.getAttacthFlieList(); }, - setAttachInsert () { + setAttachInsert() { var token = getToken(); var fs = document.getElementById("insertFile"); if (fs.files.length == 0) { @@ -487,15 +613,15 @@ ); }, //闄勪欢=>鏂囦欢閫夋嫨 - getInsertFile () { + getInsertFile() { $('#insertFile').click(); }, - insertFile () { + insertFile() { var val = document.getElementById('insertFile').files; if (!val || !val.length) return; this.fromfile.file = val[0].name; }, - matchState (state = "", reg) { + matchState(state = "", reg) { var row = state.row; var name = row.name; if ( @@ -517,10 +643,10 @@ return false; }, - statSizeChange (row, column) { + statSizeChange(row, column) { return this.stateFormatSizes(row.sizes) }, - stateFormatSizes (res) { + stateFormatSizes(res) { if (res >= 1024) { const val = parseFloat(res / 1024).toFixed(3); return val + ' GB'; @@ -529,11 +655,11 @@ } }, // 闄勪欢=>琛ㄦ牸閫夋嫨 - handleAttatchChange (val) { + handleAttatchChange(val) { this.attacgSelection = val; }, //闄勪欢鍒楄〃鏌ヨ - async getAttacthFlieList () { + async getAttacthFlieList() { var obj = { eventid: this.layerID, tabName: "lf.sys_style" @@ -545,12 +671,12 @@ } this.tableData = res.result; }, - handleClick () { + handleClick() { if (this.activeName == "second") { this.getAttacthFlieList(); } }, - async EditData () { + async EditData() { const data = await comprehensive_updateModel(this.formInline) @@ -572,7 +698,7 @@ this.startModelData(); }, - async InsertData () { + async InsertData() { var std = { "bak": this.formInline.bak, "guid": this.formInline.Id, @@ -599,7 +725,7 @@ }, - handleClose () { + handleClose() { this.dialogVisible = false; this.formInline = { title: '', @@ -614,7 +740,7 @@ this.activeName = "first" }, - async setShowModelInfo (result) { + async setShowModelInfo(result) { var modelKey = 'id'; if (result.tileset) { @@ -654,7 +780,7 @@ this.dialogVisible = true; }, - async startModelData () { + async startModelData() { var obj = { layerid: this.formInline.layerId, modelid: this.formInline.Id @@ -672,7 +798,7 @@ this.formInline.title = this.formInline.name; } }, - setChangeTileset (result) { + setChangeTileset(result) { var value = this.$refs.tree.getCheckedNodes(); var std = []; for (var i in value) { @@ -691,7 +817,7 @@ } } }, - setAddLayers (rs) { + setAddLayers(rs) { if (rs.serveType == "Tileset" || rs.serveType == "3DML") { var url; @@ -724,7 +850,7 @@ } }, - async getArgsTileset (tileset, rs) { + async getArgsTileset(tileset, rs) { if (rs.pubid > 0) { @@ -747,7 +873,7 @@ } }, - tileSet (tileset, height) { + tileSet(tileset, height) { //3dtile妯″瀷鐨勮竟鐣岀悆浣� var boundingSphere = tileset.boundingSphere; //杩崱灏旂┖闂寸洿瑙掑潗鏍�=>鍦扮悊鍧愭爣锛堝姬搴﹀埗锛� @@ -761,7 +887,7 @@ tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation); // Viewer.flyTo(tileset); }, - reloadTile (tileset, res) { + reloadTile(tileset, res) { var vm = JSON.parse(res) var pos = Cesium.Cartesian3.fromDegrees(vm.lon, vm.lat, vm.height); var converter = Cesium.Transforms.eastNorthUpToFixedFrame; @@ -773,7 +899,7 @@ - handleCheckChange (data, checked, indeterminate) { + handleCheckChange(data, checked, indeterminate) { if (data.type == 1) { this.getchilds(data); this.setChangeTileset(this.childOption, checked); @@ -781,7 +907,7 @@ this.setChangeTileset([data], checked); } }, - handleNodeClick (data) { + handleNodeClick(data) { if (data.type == 2) { this.currentData = data; for (var j in Viewer.scene.primitives._primitives) { @@ -791,7 +917,7 @@ } } }, - getchilds (source) { + getchilds(source) { if (source.children) { var child = source.children for (var i in child) { @@ -805,7 +931,7 @@ this.childOption.push(source) } }, - init3DMap () { + init3DMap() { //鍦板浘鍒濆鍖� window.sgworld = new SmartEarth.SGWorld("mapdiv", { licenseServer: window.sceneConfig.licenseServer, @@ -923,7 +1049,7 @@ } } }, - getModeKeyId () { + getModeKeyId() { window.ModeKeyIdHandler = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); window.ModeKeyIdHandler.setInputAction((event) => { @@ -942,7 +1068,7 @@ }, Cesium.ScreenSpaceEventType.LEFT_CLICK) }, - async resave () { + async resave() { if (!this.modelForm.modelid) { return this.$message('鏈�夋嫨妯″瀷涓婚敭ID'); } @@ -963,7 +1089,7 @@ } this.reload(); }, - reload () { + reload() { var json = JSON.stringify(this.modelForm); var url = this.$store.state.previewLayer.url.replace("{host}", iisHost); if (!url) return; @@ -989,7 +1115,7 @@ }, //鎷惧彇 - pickupCoords () { + pickupCoords() { if (this.app.handler) { this.app.handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); this.app.handler = undefined; @@ -1013,12 +1139,12 @@ }, Cesium.ScreenSpaceEventType.LEFT_CLICK); }, // 淇濈暀灏忔暟浣� - toFixed (d, n) { + toFixed(d, n) { var p = Math.pow(10, n); return Math.round(d * p) / p; }, - update () { + update() { if (!this.modelForm.lon || isNaN(this.modelForm.lon)) { var args = this.getEditTilesetArgs(); this.modelForm.lon = args.lon == null ? 0 : args.height; @@ -1052,7 +1178,7 @@ this.setTilesetArgs(this.modelForm); sgworld.Analysis.UndergroundMode(this.app.under, this.modelForm.alpha) }, - setTilesetArgs (f) { + setTilesetArgs(f) { if (!this.app.tileset || this.app.isBusy) return; @@ -1065,21 +1191,21 @@ model._root.transform = matrix; }, //鍦颁笅 - underground () { + underground() { this.app.under = !this.app.under; sgworld.Analysis.UndergroundMode(this.app.under, this.modelForm.alpha) }, //鏄鹃殣 - showTileset () { + showTileset() { if (!this.app.tileset) return; this.app.tileset.show = !this.app.tileset.show; }, //瀹氫綅 - locateTo () { + locateTo() { if (!this.app.tileset) return; Viewer.flyTo(this.app.tileset); }, - createTileset (res) { + createTileset(res) { res.url = res.url.replace('{host}', iisHost) return new Cesium.Cesium3DTileset({ url: res.url, @@ -1103,7 +1229,7 @@ dynamicScreenSpaceError: true // 鍑忓皯绂荤浉鏈鸿緝杩滅殑灞忓箷绌洪棿閿欒锛歠alse锛屽叏灞忓姞杞藉畬涔嬪悗鎵嶆竻鏅板寲鎴垮眿 }); }, - setEditModelLayer (res) { + setEditModelLayer(res) { this.editModelFlag = true; if (res.json) { var json = JSON.parse(res.json) @@ -1113,7 +1239,7 @@ this.getTilesetArgs(); } }, - setModleLocatin () { + setModleLocatin() { var res = this.$store.state.previewLayer; var type = res.type; @@ -1127,7 +1253,7 @@ } }, - setModeLayerID (res) { + setModeLayerID(res) { var value = res.getPropertyNames(); var std = []; @@ -1141,12 +1267,12 @@ this.modelLayerId = this.optionKey[0].label; this.modelKeyFlag = true; }, - setSureKeyModelKey () { + setSureKeyModelKey() { this.modelKeyFlag = false; this.modelForm.modelid = this.modelLayerId window.ModeKeyIdHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); //绉婚櫎浜嬩欢 }, - getTilesetArgs () { + getTilesetArgs() { this.app.isBusy = true; var cm = this.app.tileset._root.transform; var cartesian = new Cesium.Cartesian3(cm[12], cm[13], cm[14]); @@ -1159,7 +1285,7 @@ } this.app.isBusy = false; }, - getEditTilesetArgs () { + getEditTilesetArgs() { this.app.isBusy = true; var std = { lon: 0, @@ -1182,7 +1308,7 @@ return std }, - async setShowModelLayer () { + async setShowModelLayer() { const data = await perms_selectLayers(); if (data.code != 200) { @@ -1231,7 +1357,7 @@ }, Cesium.ScreenSpaceEventType.LEFT_CLICK) } }, - setTreeData (source) { + setTreeData(source) { let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕 return cloneData.filter((father) => { // 寰幆鎵�鏈夐」 @@ -1255,7 +1381,7 @@ // //淇敼妯″瀷鐭╅樀 // tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation); // }, - getHeight (level) { + getHeight(level) { if (level > 0 && level < 23) { return this.levelArray[level] } -- Gitblit v1.9.3