From c2a1e5ca8c702739ac0753accd65004926867bed Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期四, 16 二月 2023 09:56:54 +0800 Subject: [PATCH] 用户管理批量修改用户密码,数据上传附件上传 --- src/assets/lang/zh.js | 6 src/views/Synthesis/LeftMenu.vue | 279 ++++++++++++++++++++++++++- src/views/maintenance/userManagement.vue | 5 src/assets/lang/en.js | 4 src/views/datamanage/dataUpdata.vue | 280 ++++++++++++++------------- 5 files changed, 423 insertions(+), 151 deletions(-) diff --git a/src/assets/lang/en.js b/src/assets/lang/en.js index 372c0b5..9b6bd87 100644 --- a/src/assets/lang/en.js +++ b/src/assets/lang/en.js @@ -427,8 +427,8 @@ }, synthesis: { DownloadList: 'Download List', - import: 'Import', - export: 'Export', + import: 'Import KML', + export: 'Export KML', pipelineAnalysis: 'Pipeline analysis', sceneExtraction: 'Scene extraction', synthesis: 'Comprehensive Display', diff --git a/src/assets/lang/zh.js b/src/assets/lang/zh.js index 635620c..02549d3 100644 --- a/src/assets/lang/zh.js +++ b/src/assets/lang/zh.js @@ -422,8 +422,10 @@ }, }, synthesis: { - import: '瀵煎叆', - export: '瀵煎嚭', + import: '瀵煎叆KML', + export: '瀵煎嚭KML', + import1:'瀵煎叆SHP', + export1: '瀵煎嚭SHP', pipelineAnalysis: '绠¢亾鍒嗘瀽', synthesis: '缁煎悎灞曠ず', DownloadList: '涓嬭浇鍒楄〃', diff --git a/src/views/Synthesis/LeftMenu.vue b/src/views/Synthesis/LeftMenu.vue index a41aa50..a229ce9 100644 --- a/src/views/Synthesis/LeftMenu.vue +++ b/src/views/Synthesis/LeftMenu.vue @@ -21,6 +21,16 @@ class="file" style="display: none" /> + <input + :accept="'.shp, .shx, .dbf, .prj'" + style="display: none" + ref="pathClear" + type="file" + name="file" + id="shpFile" + multiple="multiple" + @change="handleOpenShp()" + /> </div> </template> @@ -29,6 +39,8 @@ import mapinfo from '../Tools/mapinfo.vue'; import maplayer from '../Tools/maplayer.vue'; import queryinfo from '../Tools/queryinfo.vue'; +import $ from 'jquery' +import { getToken } from '@/utils/auth'; import { OverviewMap, defaults as defaultControls, @@ -36,6 +48,9 @@ ScaleLine, Rotate, } from "ol/control.js" +import * as turf from '@turf/turf'; +import { geometry } from '@turf/turf'; + export default { components: { mapinfo, maplayer, queryinfo }, data() { @@ -303,10 +318,10 @@ css: 'twoMenu_imge81', }, { - id: "h8", - label: "synthesis.textLabel", - name: "鏂囨湰鐐�", - css: "twoMenu_imge81", + id: 'h8', + label: 'synthesis.addlabel', + name: '鏂囧瓧', + css: 'twoMenu_imge88', }, { id: 'h2', @@ -329,21 +344,30 @@ { id: 'h5', label: 'synthesis.import', - name: '瀵煎叆', + name: '瀵煎叆KML', css: 'twoMenu_imge85', }, { id: 'h6', label: 'synthesis.export', - name: '瀵煎嚭', + name: '瀵煎嚭KML', css: 'twoMenu_imge86', }, - { - id: 'h8', - label: 'synthesis.addlabel', - name: '鏂囧瓧', - css: 'twoMenu_imge88', - }, + + // { + // id: 'h9', + // label: 'synthesis.import1', + // name: '瀵煎叆SHP', + // css: 'twoMenu_imge85', + // }, + // { + // id: 'h10', + // label: 'synthesis.export1', + // name: '瀵煎嚭SHP', + // css: 'twoMenu_imge86', + // }, + + { id: 'h7', label: 'synthesis.removepaint', @@ -378,13 +402,14 @@ UndergroundMode: false, scaleLine: null, Excavation: false, + entityaLayers: [], }; }, methods: { //浜岀礆鑿滃崟鐐瑰嚮鍒囨崲 setChangeTwoMenu(res) { //娓呴櫎缁樺埗鍥惧舰瀵硅薄 - sgworld.Creator.SimpleGraphic.clear(); + // sgworld.Creator.SimpleGraphic.clear(); if (window.Viewer.scene.primitives.length != null) { window.Viewer.scene.primitives.removeAll(); } @@ -476,8 +501,19 @@ case 'h6': this.handleSaveClick(); break; + case 'h9': + // this.handleOpenShp(); + $("#shpFile").click(); + break; + case 'h10': + this.handleSaveShp(); + break; case 'h7': sgworld.Creator.SimpleGraphic.clear(); + for (var i in this.entityaLayers) { + sgworld.Viewer.entities.remove(this.entityaLayers[i]); + } + this.entityaLayers = []; break; case 'h8': sgworld.Creator.createSimpleGraphic('label', {}, function (entity) { @@ -524,8 +560,222 @@ alert('褰撳墠鍦烘櫙娌℃湁entities瀹炰綋'); } }, + handleSaveShp() { + var entities = sgworld.Viewer.entities.values; + if (entities.length == 0) { + return; + } + var std = []; + for (var i in entities) { + var type, fillColor, alpha, wkt, name; + var bak = {} + + if (entities[i].name) { + + name = entities[i].name + } + if (entities[i].properties) { + + var properties = entities[i].properties.propertyNames; + for (var j in properties) { + bak[properties[j]] = entities[i].properties[properties[j]]._value; + } + } else { + bak = { + "name": entities[i].name + } + } + if (entities[i].rectangle) {//鐭╁舰 + type = 'rectangle' + var east = Cesium.Math.toDegrees(entities[i].rectangle.coordinates.getValue().east); + var north = Cesium.Math.toDegrees(entities[i].rectangle.coordinates.getValue().north); + var west = Cesium.Math.toDegrees(entities[i].rectangle.coordinates.getValue().west); + var south = Cesium.Math.toDegrees(entities[i].rectangle.coordinates.getValue().south); + var line = turf.lineString([[east, north], [west, south]]) + wkt = this.$wkt.convert(line.geometry) + var fill = entities[i].rectangle._material._color._value; + fillColor = fill.red + ',' + fill.green + ',' + fill.blue; + alpha = fill.alpha; + } else if (entities[i].point) {//鐐� + type = 'point' + let ellipsoid = Viewer.scene.globe.ellipsoid; + let cartographic = ellipsoid.cartesianToCartographic(entities[i].position.getValue()); + let lat = Cesium.Math.toDegrees(cartographic.latitude); + let lng = Cesium.Math.toDegrees(cartographic.longitude); + let alt = cartographic.height; + let point = turf.point([lng, lat, alt]) + wkt = this.$wkt.convert(point.geometry) + var fill = entities[i].point._color._value; + fillColor = fill.red + ',' + fill.green + ',' + fill.blue; + alpha = fill.alpha; + + + } else if (entities[i].polygon) { + type = 'polygon'; + var fill = entities[i].polygon._material._color._value; + fillColor = fill.red + ',' + fill.green + ',' + fill.blue; + alpha = fill.alpha; + var geometry = entities[i].polygon.hierarchy.getValue().positions; + var coordinates = []; + for (var k in geometry) { + coordinates.push(this.setCartesianToEightFour(geometry[k])) + } + if (coordinates[0] != coordinates[1]) { + coordinates.push(coordinates[0]) + } + var polygon = turf.polygon([coordinates]) + wkt = this.$wkt.convert(polygon.geometry) + } else if (entities[i].polyline) { + type = "polyline"; + var coordinates = []; + var geometry = entities[i].polyline.positions.getValue(); + for (var k in geometry) { + coordinates.push(this.setCartesianToEightFour(geometry[k])) + } + var polyline = turf.lineString(coordinates) + wkt = this.$wkt.convert(polyline.geometry) + + var fill = entities[i].polyline._material._color._value; + fillColor = fill.red + ',' + fill.green + ',' + fill.blue; + alpha = fill.alpha; + } else if (entities[i].label) { + type = "label"; + let ellipsoid = Viewer.scene.globe.ellipsoid; + let cartographic = ellipsoid.cartesianToCartographic(entities[i].position.getValue()); + let lat = Cesium.Math.toDegrees(cartographic.latitude); + let lng = Cesium.Math.toDegrees(cartographic.longitude); + let alt = cartographic.height; + let point = turf.point([lng, lat, alt]) + wkt = this.$wkt.convert(point.geometry) + var fill = entities[i].label.backgroundColor._value; + fillColor = fill.red + ',' + fill.green + ',' + fill.blue; + alpha = fill.alpha; + } + std.push({ + id: parseInt(i) + 1, + type: type, + fillColor: fillColor, + opacity: alpha, + name: name, + bak: JSON.stringify(bak), + wkt: wkt + }) + } + $.ajax({ + url: BASE_URL + "/comprehensive/downloadShp?token=" + getToken(), + type: "POST", + data: JSON.stringify(std), + dataType: 'json', // html銆乯son銆乯sonp銆乻cript銆乼ext + contentType: "application/json", // "application/x-www-form-urlencoded" + success: (rs) => { + if (rs && rs.code == 200) { + var a = document.createElement('a'); // 鍒涘缓涓�涓猘鏍囩鍏冪礌 + a.style.display = 'none'; // 璁剧疆鍏冪礌涓嶅彲瑙� + + a.href = BASE_URL + "/comprehensive/downloadFile?token=" + getToken() + "&guid=" + rs.result; + + document.body.appendChild(a); // 鍔犲叆 + a.click(); // 瑙﹀彂鐐瑰嚮,涓嬭浇 + document.body.removeChild(a); // 閲婃斁 + } + }, + error: function (e) { + } + }); + + }, + handleOpenShp() { + var formData = new FormData(); + var fs = document.getElementById("shpFile"); + var exts = [".shp", ".shx", ".dbf", ".prj"]; + var count = 0; + for (var i = 0, c = fs.files.length; i < c; i++) { + var name = fs.files[i].name.toLocaleLowerCase(); + var ext = name.substring(name.lastIndexOf(".")); + if (exts.indexOf(ext) > -1) { + count++; + formData.append(fs.files[i].name, fs.files[i]); // fs.files[i].name,file + } + } + if (count != 4) { + alert("ShapeFile鏂囦欢閫夋嫨涓嶅叏锛�"); + return; + } + var that = this; + $.ajax(BASE_URL + "/comprehensive/uploadShp?token=" + getToken(), { + type: "post", + data: formData, + async: true, + cache: false, + processData: false, + contentType: false, + success: function (rs) { + + if (rs.code == 200) { + that.showShpEntity(rs.result); + } + }, + error: function (e) { + console.error(e); + } + }); + }, + showShpEntity(res) { + + for (var i in res) { + + var wkt = this.$wkt.parse(res[i].wkt); + var fillColor = res[i].fillColor.split(","); + var color = new Cesium.Color(fillColor[0], fillColor[1], fillColor[2], res[i].opacity) + switch (res[i].type) { + case 'rectangle': + debugger + break; + case 'point': + debugger + break; + case 'polygon': + var std = []; + var geo = wkt.coordinates[0]; + for (var i in geo) { + std.push(geo[i][0]) + std.push(geo[i][1]) + } + const entity = Viewer.entities.add({ + name: 'Wyoming', + polygon: { + hierarchy: Cesium.Cartesian3.fromDegreesArray(std), + //height : 100000, + material:color, + outline: true, + outlineColor: color, + } + }) + this.entityaLayers.push(entity) + break; + case 'polyline': + debugger + break; + case 'label': + debugger + break; + } + } + }, + + setCartesianToEightFour(res) { + var std = []; + let ellipsoid = Viewer.scene.globe.ellipsoid; + let cartographic = ellipsoid.cartesianToCartographic(res); + let lat = Cesium.Math.toDegrees(cartographic.latitude); + let lng = Cesium.Math.toDegrees(cartographic.longitude); + let alt = cartographic.height; + std = [lng, lat, alt] + return std; + }, handleOpenClick() { + var that = this; sgworld.Creator.SimpleGraphic.edit(true, { editProp: true }); let fileInput = document.querySelector('.file'); fileInput.onchange = function (evt) { @@ -544,9 +794,10 @@ fileReader.result, kmlOptions ); + geocachePromise.then(function (dataSource) { var geocacheEntities = dataSource.entities.values; - + that.entityaLayers = geocacheEntities; for (var i = 0; i < geocacheEntities.length; i++) { var entity = geocacheEntities[i]; diff --git a/src/views/datamanage/dataUpdata.vue b/src/views/datamanage/dataUpdata.vue index 36ff6c5..394b056 100644 --- a/src/views/datamanage/dataUpdata.vue +++ b/src/views/datamanage/dataUpdata.vue @@ -25,7 +25,10 @@ class="demo-form-inline" > <!-- 鍏ュ簱绫诲瀷 --> - <el-form-item :label="$t('dataManage.dataUpObj.UploadType')" style="margin-right: 2%"> + <el-form-item + :label="$t('dataManage.dataUpObj.UploadType')" + style="margin-right: 2%" + > <el-select :disabled="tableData.length == 0 ? false : true" v-model="formInline.uploadType" @@ -43,7 +46,7 @@ </el-form-item> <!-- 瀛樺偍鐩綍 --> <el-form-item - style="margin-right: 2%" + style="margin-right: 2%" v-show="uploadFlag" :label="$t('dataManage.dataUpObj.storageDirectory')" > @@ -77,7 +80,7 @@ </el-form-item> <!-- 椤圭洰鍚嶇О --> <el-form-item - style="margin-right: 2%" + style="margin-right: 2%" v-show="!uploadFlag" :label="$t('dataManage.dataUpObj.entryName')" > @@ -97,7 +100,10 @@ </el-select> </el-form-item> <!-- 鏁版嵁鐗堟湰 --> - <el-form-item :label="$t('dataManage.dataUpObj.dataVersion')" style="margin-right: 2%"> + <el-form-item + :label="$t('dataManage.dataUpObj.dataVersion')" + style="margin-right: 2%" + > <el-select :popper-append-to-body="false" :disabled="tableData.length == 0 ? false : true" @@ -114,7 +120,10 @@ </el-select> </el-form-item> <!-- 鏁版嵁涓撲笟 --> - <el-form-item :label="$t('dataManage.dataUpObj.dataSpecialty')" style="margin-right: 2%"> + <el-form-item + :label="$t('dataManage.dataUpObj.dataSpecialty')" + style="margin-right: 2%" + > <el-select :popper-append-to-body="false" :disabled="tableData.length == 0 ? false : true" @@ -131,7 +140,10 @@ </el-select> </el-form-item> <!-- 鍧愭爣绯� --> - <el-form-item :label="$t('dataManage.dataUpObj.coordinateSystem')" style="margin-right: 3%"> + <el-form-item + :label="$t('dataManage.dataUpObj.coordinateSystem')" + style="margin-right: 3%" + > <el-select :popper-append-to-body="false" :disabled="tableData.length == 0 ? false : true" @@ -207,7 +219,10 @@ @change="handleMetaFileChange" ></input> </el-form-item> - <el-form-item v-show="uploadFlag" style="margin-left: 0.7%;"> + <el-form-item + v-show="uploadFlag" + style="margin-left: 0.7%;" + > <el-input placeholder="璇疯緭鍏ュ唴瀹�" v-model="formInline.metaData" @@ -283,7 +298,7 @@ >{{ $t('common.Warehousin') }}</el-button> <!-- 璐ㄦ --> <el-button - style="margin-right:-9px" + style="margin-right:-9px" v-if="menuStatus.insert" :disabled="multipleSelection.length == 0 ? true : false" type="info" @@ -367,7 +382,7 @@ :model="formWarehousing" class="demo-form-inline" > - <el-form-item :label="$t('dataManage.dataUpObj.describe')" > + <el-form-item :label="$t('dataManage.dataUpObj.describe')"> <el-input v-model="formWarehousing.name" placeholder="璇疯緭鍏ュ唴瀹�" @@ -411,109 +426,109 @@ </div> <!-- 鍏ュ簱 --> <div class="bottom"> - <div class="rightTable subpage_Div"> - <div class="table_box"> - <el-table - ref="filterTable" - :data="waretableData" - style="width: 100%" - height="99%"> - <el-table-column - type="selection" - width="55" + <div class="rightTable subpage_Div"> + <div class="table_box"> + <el-table + ref="filterTable" + :data="waretableData" + style="width: 100%" + height="99%" + @selection-change="handleDelteChange" > - </el-table-column> - <el-table-column - align="center" - type="index" - :label="$t('common.index')" - width="70px" - ></el-table-column> - <el-table-column - align="center" - prop="name" - :label="$t('common.name')" - width="100" - /> - <el-table-column - align="center" - prop="dirName" - :label="$t('dataManage.dataUpObj.catalogue')" - width="300" - /> - <el-table-column - align="center" - prop="depName" - :label="$t('dataManage.dataUpObj.company')" - width="200" - /> - <el-table-column - align="center" - prop="verName" - :label="$t('dataManage.dataUpObj.versionNo')" - /> - <el-table-column - align="center" - prop="type" - :label="$t('common.type')" - /> - <el-table-column - align="center" - prop="sizes" - :label="$t('common.size')" - :formatter="changeSizeFile" - /> - <el-table-column - align="center" - :label="$t('dataManage.dataUpObj.tableName')" + <el-table-column + type="selection" + width="55" + > + </el-table-column> + <el-table-column + align="center" + type="index" + :label="$t('common.index')" + width="70px" + ></el-table-column> + <el-table-column + align="center" + prop="name" + :label="$t('common.name')" + width="100" + /> + <el-table-column + align="center" + prop="dirName" + :label="$t('dataManage.dataUpObj.catalogue')" + width="300" + /> + <el-table-column + align="center" + prop="depName" + :label="$t('dataManage.dataUpObj.company')" + width="200" + /> + <el-table-column + align="center" + prop="verName" + :label="$t('dataManage.dataUpObj.versionNo')" + /> + <el-table-column + align="center" + prop="type" + :label="$t('common.type')" + /> + <el-table-column + align="center" + prop="sizes" + :label="$t('common.size')" + :formatter="changeSizeFile" + /> + <el-table-column + align="center" + :label="$t('dataManage.dataUpObj.tableName')" + > + <template slot-scope="scope"> + <a + class="scopeRowColor" + @click="detail(scope.row)" + >{{ scope.row.tab }}</a> + </template> + </el-table-column> + <el-table-column + align="center" + prop="rows" + :label="$t('common.lineNuber')" + /> + <el-table-column + align="center" + prop="desc" + :label="$t('dataManage.dataUpObj.describe')" + /> + <el-table-column + align="center" + prop="uname" + :label="$t('dataManage.vmobj.createonuser')" + /> + <el-table-column + align="center" + prop="createTime" + :label="$t('dataManage.vmobj.createontime')" + :formatter="changetimeFile" + width="100" + /> + </el-table> + </div> + <div class="pagination_box"> + <el-pagination + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="listData.pageIndex" + :page-sizes="[10, 20, 50, 100]" + :page-size="listData.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="count" > - <template slot-scope="scope"> - <a - class="scopeRowColor" - @click="detail(scope.row)" - >{{ scope.row.tab }}</a> - </template> - </el-table-column> - <el-table-column - align="center" - prop="rows" - :label="$t('common.lineNuber')" - /> - <el-table-column - align="center" - prop="desc" - :label="$t('dataManage.dataUpObj.describe')" - /> - <el-table-column - align="center" - prop="uname" - :label="$t('dataManage.vmobj.createonuser')" - /> - <el-table-column - align="center" - prop="createTime" - :label="$t('dataManage.vmobj.createontime')" - :formatter="changetimeFile" - width="100" - /> - </el-table> + </el-pagination> + </div> + </div> </div> - <div - class="pagination_box" - > - <el-pagination - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - :current-page="listData.pageIndex" - :page-sizes="[10, 20, 50, 100]" - :page-size="listData.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="count" - > - </el-pagination> - </div> - </div> - </div> </el-tab-pane> </el-tabs> <!-- 璐ㄦ寮圭獥 --> @@ -1259,7 +1274,7 @@ for (var i in this.enclosureData) { formData.append('ids', this.enclosureData[i]) } - const that = this + const that = this that.jindudialogVisible = true that.$set(this, 'jindutiaoname', "闄勪欢涓婁紶") that.$set(this, 'jindutiao', 0) @@ -1276,13 +1291,13 @@ if (rs.code != 200) { return this.$message.error('闄勪欢涓婁紶澶辫触'); } - + this.$set(this, 'jindutiao', 100) this.$message({ message: '闄勪欢涓婁紶鎴愬姛', type: 'success' }); - + }, error: (rs) => { this.loading = false; @@ -1303,7 +1318,7 @@ - + }, //閫夋嫨涓婁紶闄勪欢鐨勬枃浠� @@ -1990,7 +2005,7 @@ }, xhr: function () { var myXhr = $.ajaxSettings.xhr(); - + if (myXhr.upload) { //妫�鏌pload灞炴�ф槸鍚﹀瓨鍦� myXhr.upload.addEventListener('progress', that.progressHandlingFunction, false); //缁戝畾progress浜嬩欢鐨勫洖璋冨嚱鏁� } @@ -2435,27 +2450,26 @@ }; </script> <style lang="less" scoped> - .bottom { - width: 100%; - margin-top: 1%; - // height: 74%; - height: 570px; - display: flex; - justify-content: space-between; +.bottom { + width: 100%; + margin-top: 1%; + // height: 74%; + height: 570px; + display: flex; + justify-content: space-between; - .rightTable { - width: 98%; - height: 92%; + .rightTable { + width: 98%; + height: 92%; - border-radius: 5px; - padding: 1%; - .table_box { - width: 100%; - height: 93%; - margin: 0 auto; - overflow: auto; - } + border-radius: 5px; + padding: 1%; + .table_box { + width: 100%; + height: 93%; + margin: 0 auto; + overflow: auto; } } - +} </style> \ No newline at end of file diff --git a/src/views/maintenance/userManagement.vue b/src/views/maintenance/userManagement.vue index 29aff91..d7795ce 100644 --- a/src/views/maintenance/userManagement.vue +++ b/src/views/maintenance/userManagement.vue @@ -93,6 +93,8 @@ :data="tableData" style="width: 100%" height="90%" + + @selection-change="handleSelectionChange" > <el-table-column type="selection" @@ -1041,10 +1043,13 @@ }, //閲嶇疆瀵嗙爜 editPwd() { + + var std = []; for (var i in this.multipleSelection) { std.push(this.multipleSelection[i].id); } + if (std.length == 0) { alert('璇峰厛閫夋嫨鐢ㄦ埛'); return; -- Gitblit v1.9.3