From 97277a2c41d80bbf375f88a47e242f1b17602b2b Mon Sep 17 00:00:00 2001 From: surprise <15810472099@163.com> Date: 星期三, 29 十一月 2023 16:53:10 +0800 Subject: [PATCH] 发布管理修改 --- src/views/datamanage/uploadmanage.vue | 695 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 635 insertions(+), 60 deletions(-) diff --git a/src/views/datamanage/uploadmanage.vue b/src/views/datamanage/uploadmanage.vue index 05bf602..91b2b50 100644 --- a/src/views/datamanage/uploadmanage.vue +++ b/src/views/datamanage/uploadmanage.vue @@ -32,13 +32,24 @@ </div> <div class="tabs_pane" + @click="setTabsChange(4)" + > + <div + class="tabsSpan" + :class="{ changetabs : active == 'fourth'}" + > + <span> {{$t('dataManage.uploadObj.publishTask')}}</span> + </div> + </div> + <div + class="tabs_pane" @click="setTabsChange(3)" > <div class="tabsSpan" :class="{ changetabs : active == 'third'}" > - <span> {{$t('dataManage.uploadObj.modelAttachMount')}}</span> + <span> {{$t('dataManage.uploadObj.attachMount')}}</span> </div> </div> </div> @@ -93,6 +104,28 @@ </el-option> </el-select> </el-form-item> + <!-- 鐩綍 --> + <el-form-item v-if="active == 'second'"> + <el-select + size="small" + v-model="formInline.dirid2" + placeholder="璇烽�夋嫨椤圭洰鐩綍..." + > + <el-option + :value="formInline.dirid2" + :label="formInline.dirName2" + style="height: auto" + > + <el-tree + ref="tree" + :data="dirOption2" + node-key="id" + :props="defaultProps" + @node-click="handleDirChange2" + /> + </el-option> + </el-select> + </el-form-item> <!-- 鐗堟湰 --> <el-form-item v-if="active == 'first'"> <el-select @@ -117,6 +150,38 @@ > <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 v-if="active == 'second' || active == 'fourth'"> + <el-select + size="small" + v-model="formInline.type1" + @change="handleTypeChange1" + placeholder="璇烽�夋嫨鏁版嵁绫诲埆..." + > + <el-option + v-for="item in typeOption1" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item v-if="active == 'fourth'"> + <el-select + size="small" + v-model="formInline.status" + @change="handleTypeChange2" + placeholder="璇烽�夋嫨鏁版嵁绫诲埆..." + > + <el-option + v-for="item in typeOption2" :key="item.value" :label="item.label" :value="item.value" @@ -168,6 +233,7 @@ <div class="dividing-line"></div> <div class="table_box content_Table"> <el-table + v-if="active !='fourth'" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange" @@ -222,6 +288,7 @@ key="7" /> <el-table-column + v-if="active == 'first'" prop="verName" :label="$t('dataManage.vmobj.versionNumber')" align="center" @@ -253,6 +320,7 @@ align="center" key="12" /> + <el-table-column v-if="active == 'first'" prop="createTime" @@ -265,6 +333,20 @@ </template> </el-table-column> + <el-table-column + prop="updateName" + :label="$t('dataManage.vmobj.updateonuser')" + align="center" + key="14" + /> + <el-table-column + prop="updateTime" + :label="$t('dataManage.vmobj.updateontime')" + :formatter="formatData" + align="center" + key="15" + /> + <el-table-column min-width="150" :label="$t('common.operate')" @@ -306,6 +388,92 @@ plain >宸插彂甯� + </el-button> + </template> + </el-table-column> + </el-table> + <el-table + v-if="active == 'fourth'" + :data="tableData" + style="width: 100%" + height="calc(100% - 1px)" + ref="tableBox" + > + <!-- <el-table-column + prop="name" + :label="$t('dataManage.vmobj.name')" + align="center" + key="1" + ></el-table-column> --> + <el-table-column + prop="name" + :label="$t('dataManage.vmobj.name')" + align="center" + key="3" + ></el-table-column> + <el-table-column + prop="status" + :label="$t('dataManage.styleObj.status')" + align="center" + key="4" + :formatter="stateFormatStatus" + ></el-table-column> + <el-table-column + prop="type" + :label="$t('dataManage.styleObj.type')" + align="center" + key="5" + ></el-table-column> + <el-table-column + prop="descr" + :label="$t('dataManage.styleObj.descr')" + align="center" + key="6" + ></el-table-column> + <el-table-column + prop="err" + :label="$t('common.err')" + align="center" + key="7" + ></el-table-column> + <el-table-column + prop="createName" + :label="$t('common.rublisher')" + align="center" + key="8" + /> + <el-table-column + prop="createTime" + :label="$t('common.releaseTime')" + :formatter="formatData" + align="center" + key="9" + /> + <el-table-column + prop="updateName" + :label="$t('dataManage.vmobj.updateonuser')" + align="center" + key="10" + /> + <el-table-column + prop="updateTime" + :label="$t('dataManage.vmobj.updateontime')" + :formatter="formatData" + align="center" + key="11" + /> + <el-table-column + min-width="80" + :label="$t('common.operate')" + > + <template slot-scope="scope"> + <el-button + v-if="scope.row.status == '1'" + size="small" + type="danger" + plain + @click="setCannelTask(scope.row)" + >{{$t('common.endTask')}} </el-button> </template> </el-table-column> @@ -583,7 +751,10 @@ > <el-row :gutter="20"> <el-col :span="10"> - <div style="height: 64px; display: flex; align-items: center;"> + <div + class="contLable" + style="height: 64px; display: flex; align-items: center;" + > {{ item.name }} </div> </el-col> @@ -624,6 +795,70 @@ </div> </el-dialog> + <!-- OSGB LAS --> + <el-dialog + :title="$t('common.publish')" + :visible.sync="insertOsgbVisible" + :close-on-click-modal="false" + :show-close="false" + width="35%" + > + <div> + + <div + v-for="item in osgbLasOption" + style="margin-top: 10px; display: flex; justify-content: center; align-items: center; " + > + + <div style=" text-align: center; "> + {{ item.name }} + </div> + <!-- <div style="display: flex; align-items: center; margin: 0px 10px;"> + <label class="contLable">楂樺害鍋忕Щ閲忥細</label> + <el-input + size="small" + v-model="item.zs" + > + <i slot="suffix">m</i></el-input> + </div> + <div style="display: flex; align-items: center; "> + <label class="contLable">鍧愭爣绯伙細</label> + <el-select + v-if="!item.lids" + v-model="item.srids" + style="width: 100%;" + size="small" + > + <el-option + v-for="item in stridOption" + :key="item.id" + :label="item.coordinate" + :value="item.epsgcode" + > + </el-option> + </el-select> + <el-input + v-if="item.lids" + v-model="item.srids" + size="small" + disabled + ></el-input> + </div> --> + </div> + <div style="display: flex; justify-content: end;margin-top:10px;"> + <el-button + size="small" + type="primary" + @click="setOsgbInsert" + >{{$t('common.submit')}}</el-button> + <el-button + size="small" + type="info" + @click="setOsgbCanel" + >{{$t('common.cancel')}}</el-button> + </div> + </div> + </el-dialog> <div class="loadBox" v-if="loadDialogVisible" @@ -639,11 +874,26 @@ <div v-loading="true" element-loading-background="rgba(0, 0, 0, 0.0) " - element-loading-text="鏁版嵁鍙戝竷涓�" + :element-loading-text="loadingText" style="margin: 0px 20px;widht:100%;height:calc(100% - 80px); " > </div> </div> + <el-dialog + :title="$t('common.details')" + :visible.sync="rasterCsVisible" + :close-on-click-modal="false" + width="35%" + > + <div class="rasterCsBox"> + <div v-for="(item,index) in rasterCsOption"> + <div class="rasterCsContent"> + <label>{{ item.name }} : </label> + <label>{{ item.bak }}</label> + </div> + </div> + </div> + </el-dialog> </div> </template> @@ -662,6 +912,11 @@ publish_deletes, publish_update, publish_insert, + dataUpload_selectCoords, + publish_selectLasCs, + task_selectByPageAndCount, + task_deleteTask, + publish_selectRasterCs } from '../../api/api.js' import { conditions } from '../Archive/Archive'; @@ -675,12 +930,16 @@ active: 'first', formInline: { dirid: null, + dirid2: null, dirName: null, + dirName2: null, depid: null, verid: null, depName: null, name: "", - type: "" + type: "", + type1: "All", + status: 'All' }, listData: { pageIndex: 1, @@ -690,6 +949,7 @@ multipleSelection: [], tableData: [], depOption: [], + dirOption2: [], dirOption: [], verOption: [], modelOptions: [], @@ -703,6 +963,12 @@ value: 'MPT', label: '鍦烘櫙鏁版嵁(.mpt)' }, { + value: 'OSGB', + label: '鍊炬枩鏁版嵁(.osgb)' + }, { + value: 'LAS', + label: '鐐逛簯鏁版嵁(.las, .laz)' + }, { value: 'CPT', label: '鐐逛簯鏁版嵁(.cpt)' }, { @@ -711,6 +977,53 @@ }, { value: 'BIM', label: '涓夌淮妯″瀷(.fbx, .ifc, .rvt)' + }], + typeOption1: [{ + value: 'All', + label: '鍏ㄩ儴' + }, { + value: 'DOM', + label: '褰卞儚鏁版嵁(.tif, .img)' + }, { + value: 'DEM', + label: '楂樼▼鏁版嵁(.tif)' + }, { + value: 'MPT', + label: '鍦烘櫙鏁版嵁(.mpt)' + }, { + value: 'OSGB', + label: '鍊炬枩鏁版嵁(.osgb)' + }, { + value: 'LAS', + label: '鐐逛簯鏁版嵁(.las, .laz)' + }, { + value: 'CPT', + label: '鐐逛簯鏁版嵁(.cpt)' + }, { + value: '3DML', + label: '涓夌淮妯″瀷(.3dml)' + }, { + value: 'BIM', + label: '涓夌淮妯″瀷(.fbx, .ifc, .rvt)' + }], + typeOption2: [{ + label: '鍏ㄩ儴', + value: 'All' + }, { + label: '鏈紑濮�', + value: 0 + }, { + label: '杩涜涓�', + value: 1 + }, { + label: '姝e父缁撴潫', + value: 2 + }, { + label: '鐢ㄦ埛缁撴潫', + value: 3 + }, { + label: '杩愯鍑洪敊', + value: 4 }], defaultProps: { label: "name", @@ -733,11 +1046,81 @@ loadDialogVisible: false, options: [], isFullscreen: false, - + insertOsgbVisible: false, + osgbLasLayer: { + z: '0', + strid: '' + }, + stridOption: [], + osgbLasOption: [], + loadingText: '鏁版嵁鍙戝竷涓�', + rasterCsVisible: false, + rasterCsOption: [] } }, methods: { + setOsgbCanel() { + this.insertOsgbVisible = false; + this.osgbLasLayer = { + z: '0', + strid: '' + } + }, + async setOsgbInsert() { + + var ids = []; + var zs = [] + var models = [] + var srids = []; + var lerro = []; + for (var i in this.osgbLasOption) { + ids.push(this.osgbLasOption[i].id) + // zs.push(this.osgbLasOption[i].zs) + zs.push(0) + srids.push(0) + models.push(0) + } + var name = this.osgbLasOption[0].name + + if (this.formInline.type == 'LAS') { + for (var i in this.osgbLasOption) { + // if (this.osgbLasOption[i].srids) { + // //var epsg = this.osgbLasOption[i].srids.replace('EPSG:', '') + // // srids.push(epsg) + // srids.push("00") + // } else { + // lerro.push(this.osgbLasOption[i].name) + // } + srids.push(0) + } + // if (lerro.length > 0) { + // return this.$message(lerro + '鏈�夋嫨鍙戝竷鏁版嵁鐨勫潗鏍囩郴'); + // } + + // if (!this.osgbLasLayer.strid) { + // return this.$message('璇烽�夋嫨鍙戝竷鏁版嵁鐨勫潗鏍囩郴'); + // } else { + // strid = this.osgbLasLayer.strid.replace('EPSG:', '') + // } + } + var obj = { + dircode: this.formInline.dirid, + depcode: this.formInline.depid, + min: 0, + max: 0, + name: name, + type: this.formInline.type, + noData: 0, + ids: ids, + models: models, + srids: [], + zs: zs + } + this.setPublish_insert(obj) + + + }, setModelCanel() { this.insertModelVisible = false; this.modelOptions = []; @@ -775,21 +1158,7 @@ models: models } - this.loadDialogVisible = true - this.insertModelVisible = false; - - const data = await publish_insert(obj); - - if (data.code == 200 && data.result > 0) { - this.$message({ - message: '鏁版嵁鍙戝竷鎴愬姛', - type: 'success' - }); - } else { - this.$message.error("鏁版嵁鍙戝竷澶辫触") - } - this.loadDialogVisible = false - this.getTableData(); + this.setPublish_insert(obj) }, @@ -814,7 +1183,9 @@ this.options = std; }, setloadDialogVisible() { - this.loadDialogVisible = false + + this.loadDialogVisible = false; + this.loadingText = '鏁版嵁鍙戝竷涓�'; }, setinsertLayerCancel() { this.insertDialogVisible = false; @@ -855,6 +1226,21 @@ for (var i in this.multipleSelection) { std.push(this.multipleSelection[i].id) } + + // if (this.formInline.type == 'DOM') { + // const data1 = await publish_selectRasterCs({ + // ids: std.toString() + // }) + // if (data1.code == 200 && data1.result.length == 0) { + // } else { + // this.rasterCsOption = data1.result; + // this.insertDialogVisible = false; + // this.rasterCsVisible = true; + // return + // } + // } + + var obj = { dircode: this.formInline.dirid, depcode: this.formInline.depid, @@ -865,22 +1251,11 @@ type: this.formInline.type, noData: this.insertLayer.noData } - this.loadDialogVisible = true - this.insertDialogVisible = false; - - const data = await publish_insert(obj); - - if (data.code == 200 && data.result > 0) { - this.$message({ - message: '鏁版嵁鍙戝竷鎴愬姛', - type: 'success' - }); - } else { - this.$message.error("鏁版嵁鍙戝竷澶辫触") - } - this.loadDialogVisible = false - this.getTableData(); + this.setPublish_insert(obj) }, + + + //鏁版嵁鍙戝竷 async setPagePublish() { @@ -900,11 +1275,52 @@ val[i].isModel = null } this.modelOptions = val; - this.insertModelVisible = true; + } else if (this.formInline.type == "OSGB") { + var val = JSON.parse(JSON.stringify(this.multipleSelection)) + for (var i in val) { + val[i].zs = 0; + val[i].srids = null; + } + this.osgbLasOption = val; + this.insertOsgbVisible = true; + } else if (this.formInline.type == "LAS") { + var lids = []; + var val = JSON.parse(JSON.stringify(this.multipleSelection)) + for (var i in val) { + val[i].zs = 0; + val[i].srids = null; + val[i].lids = false; + lids.push('ids=' + val[i].id) + } + var url = lids.join('&') + const data1 = await publish_selectLasCs(url); + + if (data1.code != 200) { + this.$message('Las鏂囦欢鍧愭爣绯籌D澶辫触'); + } else { + for (var i = 0; i < val.length; i++) { + var coord = data1.result[i] + if (coord > 0) { + val[i].srids = "EPSG:" + coord; + val[i].lids = true; + } + } + + } + + const data = await dataUpload_selectCoords(); + + if (data.code != 200) { + this.$message('鍧愭爣绯绘暟鎹幏鍙栧け璐�'); + } + this.stridOption = data.result; + + this.osgbLasOption = val; + this.insertOsgbVisible = true; } else { var std = []; for (var i in this.multipleSelection) { @@ -918,23 +1334,40 @@ type: this.formInline.type } - this.loadDialogVisible = true - this.insertDialogVisible = false; - const data = await publish_insert(obj); - if (data.code == 200 && data.result > 0) { - this.$message({ - message: '鏁版嵁鍙戝竷鎴愬姛', - type: 'success' - }); - } else { - this.$message.error("鏁版嵁鍙戝竷澶辫触") - } - - this.loadDialogVisible = false - this.getTableData(); + this.setPublish_insert(obj) } }, + + async setPublish_insert(obj) { + this.insertDialogVisible = false; + this.insertModelVisible = false; + this.insertOsgbVisible = false; + var std = []; + + + + this.loadingText = '鏁版嵁鍙戝竷涓�'; + this.loadDialogVisible = true + this.insertDialogVisible = false; + const data = await publish_insert(obj); + if (data.code == 200 && data.result > 0) { + this.$message({ + message: '鏁版嵁鍙戝竷鎴愬姛', + type: 'success' + }); + } else { + this.$message.error("鏁版嵁鍙戝竷澶辫触") + } + this.loadDialogVisible = false + this.getTableData(); + + + }, + + + + //鏁版嵁璇︽儏 setPreviewDetails(res) { this.itemdetail = res; @@ -974,6 +1407,24 @@ }); } }, + + async setCannelTask(res) { + + const data = await task_deleteTask({ id: res.id }) + if (data.result == 200) { + this.$message({ + message: '浠诲姟缁撴潫鎴愬姛', + type: 'success' + }); + } else { + this.$message.error({ + message: '浠诲姟缁撴潫澶辫触', + }); + } + this.getTableData(); + + }, + //淇敼寮圭獥 setPreviewEdit(res) { this.updateLayer = JSON.stringify(res) //澶囦唤; @@ -988,14 +1439,17 @@ var that = this this.$confirm('纭畾鏄惁鍒犻櫎鎵�閫夊唴瀹�?') .then(_ => { - done(); + + that.deletePage() }) .catch(_ => { - that.deletePage() + }); } }, async deletePage() { + this.loadingText = '鏁版嵁鍒犻櫎涓�'; + this.loadDialogVisible = true; var std = []; for (var i in this.multipleSelection) { std.push(this.multipleSelection[i].id); @@ -1011,6 +1465,7 @@ }); this.getTableData(); } + this.loadDialogVisible = false; }, //棰勮寮圭獥鎵撳紑 setPreviewLayer(res) { @@ -1040,6 +1495,26 @@ return val + " GB" } else { return row.sizes + " MB" + } + }, + stateFormatStatus(row, column) { + + switch (row.status) { + case 0: + return '鏈紑濮�'; + break; + case 1: + return '杩涜涓�'; + break; + case 2: + return '姝e父缁撴潫'; + break; + case 3: + return '鐢ㄦ埛缁撴潫'; + break; + case 4: + return '杩愯鍑洪敊'; + break; } }, //鏍煎紡鍖栧湴鍧� @@ -1087,6 +1562,10 @@ } this.active = 'third'; break; + case 4: + this.active = 'fourth'; + this.setPageStart(); + break; @@ -1101,14 +1580,25 @@ setPageStart() { this.formInline = { dirid: null, + dirid2: null, dirName: null, + dirName2: null, depid: null, verid: null, depName: null, name: "", - type: "" + type: "", + type1: "All", + status: 'All' } if (this.active == "first") { + this.listData = { + pageIndex: 1, + pageSize: 10, + count: 0 + } + this.showPageSize = [10, 50, 100, 200] + } if (this.active == "fourth") { this.listData = { pageIndex: 1, pageSize: 10, @@ -1121,7 +1611,14 @@ pageSize: 10, count: 0 } - this.showPageSize = [10, 50, 100, 200] + this.showPageSize = [10, 50, 100, 200, 500] + this.formInline.type1 = this.typeOption1[0].value; + if (this.dirOption2.length > 0) { + this.formInline.dirid2 = this.dirOption2[0].code; + + this.formInline.dirName2 = this.dirOption2[0].name; + } + } this.formInline.type = this.typeOption[0].value; @@ -1135,9 +1632,25 @@ this.$message.error("鍗曚綅鍒楄〃鑾峰彇澶辫触") return } + var res = JSON.parse(JSON.stringify(data.result)); + var res_val = res.filter((rs) => { + if (rs.pid == 0) { + return rs + } + }) + + res_val.unshift({ + name: '鍏ㄩ儴', + id: 'All', + pid: 0, + code: "All" + }) + this.dirOption2 = this.treeData(res_val) this.dirOption = this.treeData(data.result); this.formInline.dirid = this.dirOption[0].code; this.formInline.dirName = this.dirOption[0].name; + this.formInline.dirid2 = this.dirOption2[0].code; + this.formInline.dirName2 = this.dirOption2[0].name; this.getVerList(this.dirOption[0].id) }, //鑾峰彇鐗堟湰鍒楄〃 @@ -1153,13 +1666,22 @@ }, //鐗堟湰鍒楄〃鍒囨崲 handleVerChange(value) { - this.formInline.verid = value; this.getTableData(); }, //鏈嶅姟绫诲瀷鍒楄〃鍒囨崲 handleTypeChange(value) { this.formInline.type = value; + this.getTableData(); + }, + handleTypeChange1(value) { + this.formInline.type1 = value; + this.getTableData(); + }, + + + handleTypeChange2(value) { + this.formInline.status = value; this.getTableData(); }, //鍗曚綅鍒楄〃鍒囨崲 @@ -1173,6 +1695,12 @@ this.formInline.dirid = data.code this.formInline.dirName = data.name this.getVerList(data.id) + }, + //鐩綍鍒楄〃鍒囨崲 + handleDirChange2(data, node, nodeData) { + this.formInline.dirid2 = data.code + this.formInline.dirName2 = data.name + this.getTableData(); }, //鑾峰彇Table琛ㄦ牸鏁版嵁 async getTableData() { @@ -1212,11 +1740,45 @@ this.tableData = val; this.listData.count = data.count; } - } - else { - if (this.formInline.name) { - this.listData.name = this.formInline.name + } else if (this.active == "fourth") { + if (this.formInline.status == 'All') { + this.listData.status = null; + + } else { + this.listData.status = this.formInline.status } + + if (this.formInline.type1 == 'All') { + this.listData.type = null; + } else { + this.listData.type = this.formInline.type1 + } + + if (this.formInline.name) { + this.listData.name = this.formInline.name; + } + this.tableData = []; + const data = await task_selectByPageAndCount(this.listData) + if (data.code != 200) { + + } + this.tableData = data.result; + this.listData.count = data.count; + + + } else { + this.listData.name = this.formInline.name + if (this.formInline.dirid2 == 'All') { + this.listData.dircode = this.formInline.dirid2.replace('All', ''); + } else { + this.listData.dircode = this.formInline.dirid2 + } + if (this.formInline.type1 == 'All') { + this.listData.type = this.formInline.type1.replace('All', ''); + } else { + this.listData.type = this.formInline.type1 + } + const data = await publish_selectByPage(this.listData); @@ -1368,5 +1930,18 @@ /deep/.el-dialog__header { padding: 10px !important; } + .contLable { + width: 140px; + text-align: right; + } + .rasterCsBox { + max-height: 60vh; + overflow: auto; + .rasterCsContent { + padding: 10px; + font-size: 16px; + font-family: Source Han Sans CN; + } + } } </style> \ No newline at end of file -- Gitblit v1.9.3