From 48b27df5d8fd99adaab8797f7d2fc098f267c2ea Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期一, 31 七月 2023 11:00:55 +0800 Subject: [PATCH] 发布管理新加任务管理页面 --- src/views/datamanage/uploadmanage.vue | 583 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 570 insertions(+), 13 deletions(-) diff --git a/src/views/datamanage/uploadmanage.vue b/src/views/datamanage/uploadmanage.vue index 05bf602..0aac1da 100644 --- a/src/views/datamanage/uploadmanage.vue +++ b/src/views/datamanage/uploadmanage.vue @@ -32,6 +32,17 @@ </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 @@ -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" @@ -306,6 +372,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 +735,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 +779,105 @@ </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; align-items: center; justify-content: space-around; " + > + <div + class="contLable" + style=" margin: 0px 10px;" + > + {{ item.name }} + </div> + <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> + + <div v-show="formInline.type =='LAS'"> + <div style="display: flex; align-items: center; margin: 0px 10px;"> + <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> + <!-- <el-form-item :label="$t('dataManage.vmobj.heightOffset')"> + <el-input + :placeholder="$t('dataManage.vmobj.label1')" + v-model="osgbLasLayer.z" + ></el-input> + </el-form-item> --> + <!-- <el-form-item + v-if="formInline.type == 'LAS'" + :label="$t('dataManage.vmobj.coordinateSystemID')" + > + <el-select + v-model="osgbLasLayer.strid" + :placeholder="$t('dataManage.vmobj.label2')" + style="width: 100%;" + > + <el-option + v-for="item in stridOption" + :key="item.id" + :label="item.coordinate" + :value="item.epsgcode" + > + </el-option> + </el-select> + </el-form-item> --> + + <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" @@ -662,6 +916,10 @@ publish_deletes, publish_update, publish_insert, + dataUpload_selectCoords, + publish_selectLasCs, + task_selectByPageAndCount, + task_deleteTask } from '../../api/api.js' import { conditions } from '../Archive/Archive'; @@ -675,12 +933,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 +952,7 @@ multipleSelection: [], tableData: [], depOption: [], + dirOption2: [], dirOption: [], verOption: [], modelOptions: [], @@ -703,6 +966,12 @@ value: 'MPT', label: '鍦烘櫙鏁版嵁(.mpt)' }, { + value: 'OSGB', + label: '鍊炬枩鏁版嵁(.osgb)' + }, { + value: 'LAS', + label: '鐐逛簯鏁版嵁(.las, .laz)' + }, { value: 'CPT', label: '鐐逛簯鏁版嵁(.cpt)' }, { @@ -711,6 +980,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 +1049,82 @@ loadDialogVisible: false, options: [], isFullscreen: false, - + insertOsgbVisible: false, + osgbLasLayer: { + z: '0', + strid: '' + }, + stridOption: [], + osgbLasOption: [], } }, methods: { + setOsgbCanel() { + this.insertOsgbVisible = false; + this.osgbLasLayer = { + z: '0', + strid: '' + } + }, + async setOsgbInsert() { + + var ids = []; + var zs = [] + for (var i in this.osgbLasOption) { + ids.push(this.osgbLasOption[i].id) + zs.push(this.osgbLasOption[i].zs) + } + var srids = []; + var lerro = []; + 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) + } else { + lerro.push(this.osgbLasOption[i].name) + } + } + 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: null, + max: null, + name: null, + type: this.formInline.type, + noData: null, + ids: ids, + models: null, + srids: srids, + zx: zs + } + this.loadDialogVisible = true + this.setOsgbCanel(); + 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(); + + }, setModelCanel() { this.insertModelVisible = false; this.modelOptions = []; @@ -888,6 +1275,7 @@ this.$message("璇烽�夋嫨瑕佸彂甯冪殑鏁版嵁") return } + if (this.formInline.type == "DOM" || this.formInline.type == "DEM") { this.insertLayer.name = this.multipleSelection[0].name.split('.')[0]; @@ -900,11 +1288,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) { @@ -974,6 +1403,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,10 +1435,10 @@ var that = this this.$confirm('纭畾鏄惁鍒犻櫎鎵�閫夊唴瀹�?') .then(_ => { - done(); + that.deletePage() }) .catch(_ => { - that.deletePage() + }); } }, @@ -1042,6 +1489,26 @@ 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; + } + }, //鏍煎紡鍖栧湴鍧� formatLayer(row, column) { let data = row.layer @@ -1087,6 +1554,10 @@ } this.active = 'third'; break; + case 4: + this.active = 'fourth'; + this.setPageStart(); + break; @@ -1101,14 +1572,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 +1603,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 +1624,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 +1658,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 +1687,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 +1732,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 +1922,8 @@ /deep/.el-dialog__header { padding: 10px !important; } + .contLable { + width: 160px; + } } </style> \ No newline at end of file -- Gitblit v1.9.3