From d0405cc50cab4c389d3203428408ecf15b5a0409 Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期二, 14 三月 2023 17:48:57 +0800 Subject: [PATCH] 数据发布页面添加 --- src/views/datamanage/uploadmanage.vue | 432 +++++++++++++++++++++++++++++++++++++++++++ src/assets/lang/zh.js | 7 src/views/Synthesis/LeftMenu.vue | 144 +++++++------- src/assets/lang/en.js | 6 src/views/datamanage/bankController.vue | 11 5 files changed, 525 insertions(+), 75 deletions(-) diff --git a/src/assets/lang/en.js b/src/assets/lang/en.js index 81291ac..6d1117c 100644 --- a/src/assets/lang/en.js +++ b/src/assets/lang/en.js @@ -116,8 +116,12 @@ inspectionItems: "Inspection items", code: 'Code' }, - metadataManage: 'information management', + uploadManage: 'Release management', + uploadObj: { + dataRelease: 'Data release', + releaseList: 'Release list' + }, dataLoading: 'dataLoading', SpatialData: 'SpatialData', versionManage: 'versionManage', diff --git a/src/assets/lang/zh.js b/src/assets/lang/zh.js index c97c3b8..403ff86 100644 --- a/src/assets/lang/zh.js +++ b/src/assets/lang/zh.js @@ -118,6 +118,13 @@ code: '缂栫爜' }, metadataManage: '淇℃伅绠$悊', + + uploadManage: '鍙戝竷绠$悊', + uploadObj: { + dataRelease: '鏁版嵁鍙戝竷', + releaseList: '鍙戝竷娓呭崟' + }, + dataLoading: '鏁版嵁鍏ュ簱', SpatialData: '绌洪棿鏁版嵁绠$悊', versionManage: '鐗堟湰绠$悊', diff --git a/src/views/Synthesis/LeftMenu.vue b/src/views/Synthesis/LeftMenu.vue index bbde562..e5707d9 100644 --- a/src/views/Synthesis/LeftMenu.vue +++ b/src/views/Synthesis/LeftMenu.vue @@ -90,10 +90,11 @@ > <el-form-item :label="$t('common.name')"> - <el-input v-model="formInline.name"></el-input> + <!-- <el-input v-model="formInline.name"></el-input> --> + {{formInline.name}} </el-form-item> <el-form-item :label="$t('common.type')"> - <el-select + <!-- <el-select v-model="formInline.type" style="width:100%" > @@ -104,13 +105,15 @@ :value="item.value" > </el-option> - </el-select> + </el-select> --> + {{formInline.type}} </el-form-item> <el-form-item :label="$t('common.bak')"> - <el-input v-model="formInline.bak"></el-input> + <!-- <el-input v-model="formInline.bak"></el-input> --> + {{formInline.bak}} </el-form-item> - <el-form-item> + <!-- <el-form-item> <el-button v-show="isShowModel" type="success" @@ -119,14 +122,14 @@ @click="InsertData" >{{$t('common.increase')}}</el-button> <el-button - v-show="!isShowModel" + v-show=" isShowModel" type="info" plain size="small" @click="EditData" >{{$t('common.update')}}</el-button> - </el-form-item> - </el-form-item> + </el-form-item> --> + </el-form> </el-tab-pane> @@ -134,6 +137,7 @@ label="闄勪欢" name="second" > + <el-table :data="tableData" ref="filterTable" @@ -654,28 +658,28 @@ activeName: "first", isShowModel: false, options: [ - { - value: '鍊炬枩妯″瀷', - label: '鍊炬枩妯″瀷' - }, { - value: 'BIM妯″瀷', - label: 'BIM妯″瀷' - }, { - value: '鐐逛簯妯″瀷', - label: '鐐逛簯妯″瀷' - }, { - value: '鍦拌川璁捐妯″瀷', - label: '鍦拌川璁捐妯″瀷' - }, { - value: '浜哄伐妯″瀷', - label: '浜哄伐妯″瀷' - }, { - value: '鍏朵粬妯″瀷', - label: '鍏朵粬妯″瀷' - }], - modelClip:false, - clippingPlanes:null, - showPickUp:false, + { + value: '鍊炬枩妯″瀷', + label: '鍊炬枩妯″瀷' + }, { + value: 'BIM妯″瀷', + label: 'BIM妯″瀷' + }, { + value: '鐐逛簯妯″瀷', + label: '鐐逛簯妯″瀷' + }, { + value: '鍦拌川璁捐妯″瀷', + label: '鍦拌川璁捐妯″瀷' + }, { + value: '浜哄伐妯″瀷', + label: '浜哄伐妯″瀷' + }, { + value: '鍏朵粬妯″瀷', + label: '鍏朵粬妯″瀷' + }], + modelClip: false, + clippingPlanes: null, + showPickUp: false, }; }, methods: { @@ -1400,18 +1404,18 @@ this.$store.state.mapMenuBoolean = !this.$store.state.mapMenuBoolean; this.$store.state.mapMenuBoxFlag = "2"; break; - //鎷惧彇鍔熻兘 + //鎷惧彇鍔熻兘 case "e3": this.$store.state.mapMenuBoolean = false; this.showPickUp = !this.showPickUp; - if (this.showPickUp){ + if (this.showPickUp) { let that = this; Viewer.screenSpaceEventHandler.setInputAction(function (event) { let p = sgworld.Navigate.getMouseDegrees(event); console.log(p); that.getPickUpData(p); }, Cesium.ScreenSpaceEventType.LEFT_CLICK); - }else { + } else { this.$refs.queryinfo.closeAll(); Viewer.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); } @@ -1546,20 +1550,20 @@ // } else { var that = this; that.modelClip = !that.modelClip; - if (that.modelClip){ - if (window.model){ + if (that.modelClip) { + if (window.model) { that.modelClipping(); } else { var tileset = Viewer.scene.primitives.add( - new Cesium.Cesium3DTileset({ - name: res.cnName, - url: modelUrl+ "/tileset/m/SN/tileset.json", - maximumScreenSpaceError: 64, // 鏈�澶у睆骞曠┖闂撮敊璇細16 - maximumMemoryUsage: 768, // 鏈�澶у唴瀛橈細512 - dynamicScreenSpaceError: true, // 鍑忓皯绂荤浉鏈鸿緝杩滅殑灞忓箷绌洪棿閿欒锛歠alse - skipLevelOfDetail: true, // 鍦ㄩ亶鍘嗘椂鍊欒烦杩囪鎯咃細false - }) + new Cesium.Cesium3DTileset({ + name: res.cnName, + url: modelUrl + "/tileset/m/SN/tileset.json", + maximumScreenSpaceError: 64, // 鏈�澶у睆骞曠┖闂撮敊璇細16 + maximumMemoryUsage: 768, // 鏈�澶у唴瀛橈細512 + dynamicScreenSpaceError: true, // 鍑忓皯绂荤浉鏈鸿緝杩滅殑灞忓箷绌洪棿閿欒锛歠alse + skipLevelOfDetail: true, // 鍦ㄩ亶鍘嗘椂鍊欒烦杩囪鎯咃細false + }) ); tileset.readyPromise.then((tileset) => { tileset.id = res.cnName; @@ -1754,11 +1758,11 @@ let clippingPlanes = new Cesium.ClippingPlaneCollection({ planes: [ // ClippingPlane瀵硅薄鏁扮粍闆嗗悎 new Cesium.ClippingPlane( // 瑁佸垏闈� - new Cesium.Cartesian3(0.0, 0.0, -1.0), // 娉曠嚎鏂瑰悜 - 0// 鍘熺偣鍒板钩闈㈢殑鏈�鐭窛绂伙紝璁剧疆0灏卞ソ + new Cesium.Cartesian3(0.0, 0.0, -1.0), // 娉曠嚎鏂瑰悜 + 0// 鍘熺偣鍒板钩闈㈢殑鏈�鐭窛绂伙紝璁剧疆0灏卞ソ ), ], - enabled:true, + enabled: true, edgeWidth: 1.0, // 妯″瀷琚鍒囬儴鍒嗙殑鎴潰绾垮 }); let boundingSphere = window.model.boundingSphere; @@ -1769,14 +1773,14 @@ position: boundingSphere.center, plane: { dimensions: new Cesium.Cartesian2( - boundingSphere.radius * 1.5, - boundingSphere.radius * 1.5 + boundingSphere.radius * 1.5, + boundingSphere.radius * 1.5 ), material: Cesium.Color.WHITE.withAlpha(0.1), plane: new Cesium.CallbackProperty( - // 娣诲姞缁戝畾浜嬩欢锛屼笉鏂皟鐢� - createPlaneUpdateFunction(plane), - false + // 娣诲姞缁戝畾浜嬩欢锛屼笉鏂皟鐢� + createPlaneUpdateFunction(plane), + false ), outline: true, outlineColor: Cesium.Color.WHITE, @@ -1790,13 +1794,13 @@ // Select plane when mouse down // 缁戝畾涓婄Щ鍔ㄤ簨浠� const downHandler = new Cesium.ScreenSpaceEventHandler( - Viewer.scene.canvas + Viewer.scene.canvas ); downHandler.setInputAction(function (movement) { const pickedObject = scene.pick(movement.position); if ( - Cesium.defined(pickedObject) && - Cesium.defined(pickedObject.id.plane) + Cesium.defined(pickedObject) && + Cesium.defined(pickedObject.id.plane) ) { selectedPlane = pickedObject.id.plane; selectedPlane.material = Cesium.Color.WHITE.withAlpha(0.05); @@ -1808,7 +1812,7 @@ // Release plane on mouse up // 缁戝畾涓嬬Щ鍔ㄤ簨浠� const upHandler = new Cesium.ScreenSpaceEventHandler( - Viewer.scene.canvas + Viewer.scene.canvas ); upHandler.setInputAction(function () { if (Cesium.defined(selectedPlane)) { @@ -1820,7 +1824,7 @@ }, Cesium.ScreenSpaceEventType.LEFT_UP); // Update plane on mouse move const moveHandler = new Cesium.ScreenSpaceEventHandler( - Viewer.scene.canvas + Viewer.scene.canvas ); moveHandler.setInputAction(function (movement) { if (Cesium.defined(selectedPlane)) { @@ -1837,10 +1841,10 @@ }, //鍏抽棴绠¢亾淇℃伅寮圭獥 - closePipelinePop(){ + closePipelinePop() { this.$refs && - this.$refs.queryinfo && - this.$refs.queryinfo.close("queryinfo"); + this.$refs.queryinfo && + this.$refs.queryinfo.close("queryinfo"); }, setclippingModel() { if (window.model) { @@ -2421,30 +2425,30 @@ this.attacgSelection = val; }, //鎷惧彇鏁版嵁鑾峰彇 - async getPickUpData(info){ + async getPickUpData(info) { let checkedLayers = JSON.parse(sessionStorage.getItem("checkedLayers")); let showPop = false; for (const item of checkedLayers) { - let name = item.url.replaceAll("LF:",""); - name = name.replaceAll("_",""); + let name = item.url.replaceAll("LF:", ""); + name = name.replaceAll("_", ""); let params = { - buffer:10, - limit:20, - name:name, - wkt:`POINT (${info.lon} ${info.lat})`, + buffer: 10, + limit: 20, + name: name, + wkt: `POINT (${info.lon} ${info.lat})`, } const res = await selectByBuffer(params); - if (res.result && res.result.length > 0){ + if (res.result && res.result.length > 0) { this.$store.state.mapPopBoxFlag = "4"; this.$store.state.pickUpPointInfo = info; this.$refs && - this.$refs.queryinfo && - this.$refs.queryinfo.open("鎷惧彇鍒嗘瀽", null,); + this.$refs.queryinfo && + this.$refs.queryinfo.open("鎷惧彇鍒嗘瀽", null,); showPop = true; break; } } - if (!showPop){ + if (!showPop) { this.$message.warning("鏆傛棤鏁版嵁!"); } } diff --git a/src/views/datamanage/bankController.vue b/src/views/datamanage/bankController.vue index f9d2fc9..5f87439 100644 --- a/src/views/datamanage/bankController.vue +++ b/src/views/datamanage/bankController.vue @@ -22,17 +22,18 @@ </div> <div class="mid box_div"> <data-updata v-if="setMenuFlag == 'dataUpdata'"></data-updata> - <!-- <catalogue-manage v-if="setMenuFlag == 'catalogueManage'"></catalogue-manage> --> + <spatial-data v-if="setMenuFlag == 'SpatialData'"></spatial-data> - <!-- <version-manage v-if="setMenuFlag == 'versionManage'"></version-manage> --> + <domain-manage v-if="setMenuFlag == 'domainManage'"></domain-manage> <dictionary-manage v-if="setMenuFlag == 'dictionaryManage'"></dictionary-manage> <metadata-manage v-if="setMenuFlag == 'metadataManage'"></metadata-manage> <style-manage v-if="setMenuFlag == 'styleManage'"></style-manage> <data-loader v-if="setMenuFlag == 'dataLoader'"></data-loader> <down-loader v-if="setMenuFlag == 'downLoader'"></down-loader> - <!-- <project-manage v-if="setMenuFlag == 'projectManage'"></project-manage> --> + <data-statistics v-if="setMenuFlag == 'dataStatistics'"></data-statistics> + <uploadmanage v-if="setMenuFlag == 'uploadmanage'"></uploadmanage> </div> </div> @@ -55,7 +56,8 @@ import downLoader from '@/views/datamanage/downLoader.vue'; //鏁版嵁绠$悊-鏁版嵁涓嬭浇 import projectManage from '@/views/datamanage/projectManage.vue'; //椤圭洰绠$悊 import dataStatistics from '@/views/datamanage/dataStatistics.vue'; //鏁版嵁缁熻 - +import uploadmanage from '@/views/datamanage/uploadmanage.vue'; //涓婁紶绠$悊 +import Uploadmanage from './uploadmanage.vue'; export default { components: { customElMenu, @@ -71,6 +73,7 @@ downLoader, projectManage, dataStatistics, + uploadmanage, }, data() { diff --git a/src/views/datamanage/uploadmanage.vue b/src/views/datamanage/uploadmanage.vue new file mode 100644 index 0000000..e5f6012 --- /dev/null +++ b/src/views/datamanage/uploadmanage.vue @@ -0,0 +1,432 @@ +<template> + <div class="uploads_box"> + <My-bread :list="[ + `${$t('dataManage.dataManage')}`, + `${$t('dataManage.uploadManage')}`, + ]"></My-bread> + <el-divider /> + <!-- tabs鍒囨崲 --> + <div class="tabs_box"> + <div + class="tabs_pane" + @click="setTabsChange()" + > + <div :class="{ changetabs : active == 'first'}"> + {{$t('dataManage.uploadObj.dataRelease')}} + </div> + </div> + <div + class="tabs_pane" + @click="setTabsChange()" + > + <div :class="{ changetabs : active == 'second'}"> + {{$t('dataManage.uploadObj.releaseList')}} + </div> + </div> + </div> + <div class="content_box"> + <el-form + :inline="true" + :model="formInline" + class="demo-form-inline" + > + <!-- 鍗曚綅 --> + <el-form-item> + <el-select + size="small" + v-model="formInline.depid" + > + <el-option + :value="formInline.depid" + :label="formInline.depName" + style="height: auto" + > + <el-tree + ref="tree" + :data="depOption" + node-key="id" + :props="defaultProps" + @node-click="handleDepChange" + /> + </el-option> + </el-select> + </el-form-item> + <!-- 鐩綍 --> + <el-form-item> + <el-select + size="small" + v-model="formInline.dirid" + > + <el-option + :value="formInline.dirid" + :label="formInline.dirName" + style="height: auto" + > + <el-tree + ref="tree" + :data="dirOption" + node-key="id" + :props="defaultProps" + @node-click="handleDirChange" + /> + </el-option> + </el-select> + </el-form-item> + <!-- 鐗堟湰 --> + <el-form-item> + <el-select + size="small" + v-model="formInline.verid" + @change="handleVerChange" + > <el-option + v-for="item in verOption" + :key="item.id" + :label="item.name" + :value="item.id" + > + </el-option> + </el-select> + </el-form-item> + <!-- 绫诲瀷 --> + <el-form-item> + <el-select + size="small" + v-model="formInline.type" + @change="handleTypeChange" + > + <el-option + v-for="item in typeOption" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item> + <el-input + size="small" + :title="$t('dataManage.vmobj.keyword')" + > <i + @click="getTableData" + :title="$t('common.iquery')" + slot="suffix" + class="el-icon-search" + style="padding-right: 8px" + ></i></el-input> + </el-form-item> + <el-form-item style="float:right"> + <el-button + type="info" + size="small" + @click="setPageStart" + icon="el-icon-refresh" + >{{$t('common.reset')}}</el-button> + </el-form-item> + </el-form> + + <div class="dividing-line"></div> + <div class="table_box content_Table"> + <el-table + :data="tableData" + style="width: 100%" + border + @selection-change="handleSelectionChange" + height="calc(100% - 1px)" + > + <el-table-column + type="selection" + width="55" + /> + <el-table-column + :label="$t('dataManage.dictionaryManageObj.number')" + type="index" + width="50" + align="center" + > + </el-table-column> + <el-table-column + prop="type" + :label="$t('dataManage.vmobj.name')" + align="center" + /> + <el-table-column + prop="type" + :label="$t('dataManage.vmobj.format')" + align="center" + /> + <el-table-column + prop="sizes" + :label="$t('dataManage.vmobj.size')" + :formatter="stateFormatSizes" + align="center" + /> + <el-table-column + prop="depName" + :label="$t('dataManage.vmobj.depName')" + align="center" + /> + <el-table-column + prop="dirName" + :label="$t('dataManage.vmobj.dirName')" + width="200" + align="center" + /> + <el-table-column + prop="verName" + :label="$t('dataManage.vmobj.versionNumber')" + align="center" + /> + <el-table-column + prop="uname" + :label="$t('dataManage.vmobj.createonuser')" + align="center" + /> + <el-table-column + prop="createTime" + :label="$t('dataManage.vmobj.createontime')" + :formatter="formatData" + align="center" + /> + </el-table> + </div> + <div + class="pagination_box" + style="margin-top: 10px" + > + <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="listData.count" + > + </el-pagination> + </div> + </div> + </div> +</template> + +<script> + +import MyBread from "../../components/MyBread.vue" +import { selectdepTab, selectdirTab, meta_selectVerByDirid } from '../../api/api.js' +export default { + components: { MyBread }, + data() { + return { + active: 'first', + formInline: { + dirid: null, + dirName: null, + depid: null, + verid: null, + depName: null, + name: "", + type: "" + }, + listData: { + pageIndex: 1, + pageSize: 10, + count: 0 + }, + depOption: [], + dirOption: [], + verOption: [], + typeOption: [{ + value: 't1', + label: '鍏ㄩ儴' + }, { + value: 't2', + label: '褰卞儚鏁版嵁(.tif, .img)' + }, { + value: 't3', + label: '鍦烘櫙鏁版嵁(.mpt)' + }, { + value: 't4', + label: '涓夌淮妯″瀷(.3dml)' + }, { + value: 't5', + label: '涓夌淮妯″瀷(.fbx, .ifc, .rvt)' + }], + defaultProps: { + label: "name", + value: "id", + children: "children", + checkStrictly: true, + emitPath: false, + }, + } + }, + methods: { + //鍒嗛〉鍒囨崲 + handleCurrentChange(val) { + this.listData.pageIndex = val; + this.getTableData(); + }, + //姣忛〉鏄剧ず鏁伴噺 + handleSizeChange(val) { + this.listData.pageSize = val; + this.listData.pageIndex = 1; + this.getTableData(); + }, + //tabs鍒囨彌 + setTabsChange() { + switch (this.active) { + case 'first': + this.active = 'second'; + this.setPageStart(); + break; + case 'second': + this.active = 'first'; + this.setPageStart(); + break; + + } + }, + //椤甸潰鍒濆鍖� + setPageStart() { + this.formInline = { + dirid: null, + dirName: null, + depid: null, + verid: null, + depName: null, + name: "", + type: "" + } + this.listData = { + pageIndex: 1, + pageSize: 10, + count: 0 + } + this.formInline.type = this.typeOption[0].value; + this.getDepTreeList(); + this.getDirTreeList(); + }, + //鑾峰彇鐩綍鍒楄〃 + async getDirTreeList() { + const data = await selectdirTab(); + if (data.code != 200) { + this.$message.error("鍗曚綅鍒楄〃鑾峰彇澶辫触") + return + } + this.dirOption = this.treeData(data.result); + this.formInline.dirid = this.dirOption[0].id; + this.formInline.dirName = this.dirOption[0].name; + this.getVerList() + }, + //鑾峰彇鐗堟湰鍒楄〃 + async getVerList() { + const data = await meta_selectVerByDirid({ dirid: this.formInline.dirid }) + if (data.code != 200) { + this.$message.error("鐗堟湰鍒楄〃鑾峰彇澶辫触") + return + } + this.verOption = data.result + this.formInline.verid = data.result[0].id; + this.getTableData(); + }, + //鐗堟湰鍒楄〃鍒囨崲 + handleVerChange(value) { + this.formInline.verid = value; + this.getTableData(); + }, + //鏈嶅姟绫诲瀷鍒楄〃鍒囨崲 + handleTypeChange(value) { + this.formInline.type = value; + this.getTableData(); + }, + //鍗曚綅鍒楄〃鍒囨崲 + handleDepChange(data, node, nodeData) { + this.formInline.depid = data.id + this.formInline.depName = data.name + this.getTableData(); + }, + //鍗曚綅鍒楄〃鍒囨崲 + handleDirChange(data, node, nodeData) { + this.formInline.dirid = data.id + this.formInline.dirName = data.name + this.getVerList() + }, + //鑾峰彇Table琛ㄦ牸鏁版嵁 + getTableData() { + + }, + //鑾峰彇鍗曚綅鍒楄〃 + async getDepTreeList() { + const data = await selectdepTab(); + if (data.code != 200) { + this.$message.error("鍗曚綅鍒楄〃鑾峰彇澶辫触") + return + } + this.depOption = this.treeData(data.result); + this.formInline.depid = this.depOption[0].id + this.formInline.depName = this.depOption[0].name + }, + //鏍戝垪琛ㄧ敓鎴� + treeData(source) { + let cloneData = JSON.parse(JSON.stringify(source)) // 瀵规簮鏁版嵁娣卞害鍏嬮殕 + return cloneData.filter(father => { + // 寰幆鎵�鏈夐」 + let branchArr = cloneData.filter(child => father.id == child.pid) // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁 + branchArr.length > 0 ? (father.children = branchArr) : "" // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊� + return father.pid == 0 // 杩斿洖涓�绾ц彍鍗� + }) + }, + }, + mounted() { + this.active = 'first'; + this.setPageStart(); + } +} +</script> + +<style lang="less" scoped> +.uploads_box { + width: calc(100% - 20px); + height: calc(100% - 20px); + padding: 10px; + .tabs_box { + width: 100%; + border-bottom: 2px solid #e4e7ed; + margin-bottom: 10px; + } + .tabs_pane { + padding: 0 10px; + height: 40px; + box-sizing: border-box; + line-height: 40px; + display: inline-block; + list-style: none; + font-size: 14px; + font-weight: 500; + color: #303133; + } + .tabs_pane:hover { + color: #409eff; + } + .changetabs { + color: #409eff; + + border-bottom: 2px solid #409eff; + } + .tabs_nav { + width: 100%; + height: 2px; + background: #e4e7ed; + } + .content_box { + width: 100%; + height: calc(100% - 90px); + /deep/.el-form-item { + margin-bottom: 15px; + } + .content_Table { + height: calc(100% - 110px); + } + } +} +</style> \ No newline at end of file -- Gitblit v1.9.3