From a7199e5a4f3e34b14d395e319a552c5c3b8b3a4d Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期四, 24 十一月 2022 09:41:25 +0800 Subject: [PATCH] 数据上传,数据入库页面修改 --- src/views/datamanage/metadataManage.vue | 341 ++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 242 insertions(+), 99 deletions(-) diff --git a/src/views/datamanage/metadataManage.vue b/src/views/datamanage/metadataManage.vue index 1b58ada..f39c90a 100644 --- a/src/views/datamanage/metadataManage.vue +++ b/src/views/datamanage/metadataManage.vue @@ -64,6 +64,17 @@ </el-form> </div> <div class="bottom"> + <div class="leftTree"> + <ul> + <li + @click="getTableDesc(item)" + v-for="item in optionCount" + :class="{ active: activeName == item.tab }" + > + {{ item.tabDesc }}({{ item.tab }}) + </li> + </ul> + </div> <div class="rightTable"> <div class="table_box"> <el-table @@ -73,34 +84,39 @@ height="99%" > <el-table-column type="selection" width="55" /> - <el-table-column prop="name" :label="$t('common.name')" /> - <el-table-column prop="format" :label="$t('common.format')" /> - <el-table-column prop="sizes" :label="$t('common.size')" /> + <el-table-column prop="name" :label="$t('dataManage.vmobj.name')" /> <el-table-column - prop="createUser" + prop="type" + :label="$t('dataManage.vmobj.format')" + /> + <el-table-column + prop="sizes" + :label="$t('dataManage.vmobj.size')" + :formatter="stateFormatSizes" + /> + <el-table-column + prop="depName" + :label="$t('dataManage.vmobj.depName')" + /> + <el-table-column + prop="gather" + :label="$t('dataManage.vmobj.gather')" + :formatter="formatData" + /> + <el-table-column + prop="describe" + :label="$t('dataManage.vmobj.describe')" + /> + <el-table-column + prop="uname" :label="$t('dataManage.vmobj.createonuser')" /> <el-table-column prop="createTime" :label="$t('dataManage.vmobj.createontime')" - /> - <el-table-column - prop="cs" - :label="$t('dataManage.vmobj.coordSystem')" - /> - <el-table-column - prop="scale" - :label="$t('dataManage.vmobj.scale')" - /> - <el-table-column - prop="resolution" - :label="$t('dataManage.vmobj.resolpower')" + :formatter="formatData" /> - <el-table-column - prop="descr" - :label="$t('dataManage.vmobj.describe')" - /> <el-table-column min-width="100" :label="$t('common.operate')"> <template slot-scope="scope"> <el-link style="color: white" @click="showDetail(scope.row)">{{ @@ -119,9 +135,9 @@ <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" - :current-page="currentPage" + :current-page="listData.pageIndex" :page-sizes="[10, 20, 50, 100]" - :page-size="10" + :page-size="listData.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="count" > @@ -140,25 +156,29 @@ <div class="contentBox"> <p>{{ $t('dataManage.vmobj.name') }}锛歿{ itemdetail.name }}</p> <el-divider></el-divider> - <p>{{ $t('dataManage.vmobj.type') }}锛歿{ itemdetail.type }}</p> + <p>{{ $t('dataManage.vmobj.format') }}锛歿{ itemdetail.type }}</p> <el-divider></el-divider> - <p>{{ $t('common.format') }}锛歿{ itemdetail.format }}</p> + <p>{{ $t('common.size') }}锛歿{ setInfoBoxSize(itemdetail.sizes) }}</p> + <el-divider></el-divider> + <p>{{ $t('dataManage.vmobj.depName') }}锛歿{ itemdetail.depName }}</p> + <el-divider></el-divider> + <p> + {{ $t('dataManage.vmobj.gather') }}锛歿{ + setInfoBoxTime(itemdetail.gather) + }} + </p> + <el-divider></el-divider> + <p> + {{ $t('dataManage.vmobj.describe') }}锛歿{ itemdetail.describe }} + </p> + <el-divider></el-divider> + <p> + {{ $t('dataManage.vmobj.createonuser') }}锛歿{ itemdetail.uname }} + </p> <el-divider></el-divider> <p> {{ $t('dataManage.vmobj.createontime') }}锛歿{ - itemdetail.createTime - }} - </p> - <el-divider></el-divider> - <p> - {{ $t('dataManage.vmobj.createonuser') }}锛歿{ - itemdetail.createUser - }} - </p> - <el-divider></el-divider> - <p> - {{ $t('dataManage.vmobj.updateontime') }}锛歿{ - itemdetail.updateTime + setInfoBoxTime(itemdetail.createTime) }} </p> <el-divider></el-divider> @@ -168,15 +188,11 @@ }} </p> <el-divider></el-divider> - <p>{{ $t('dataManage.vmobj.coordSystem') }}锛歿{ itemdetail.cs }}</p> - <el-divider></el-divider> - <p>{{ $t('dataManage.vmobj.scale') }}锛歿{ itemdetail.scale }}</p> - <el-divider></el-divider> <p> - {{ $t('dataManage.vmobj.resolpower') }}锛歿{ itemdetail.resolution }} + {{ $t('dataManage.vmobj.updateontime') }}锛歿{ + setInfoBoxTime(itemdetail.updateTime) + }} </p> - <el-divider></el-divider> - <p>{{ $t('dataManage.vmobj.describe') }}锛歿{ itemdetail.descr }}</p> </div> </el-card> </div> @@ -199,41 +215,41 @@ <el-input v-model="editForm.name" autocomplete="off"></el-input> </el-form-item> <el-form-item - :label="$t('dataManage.vmobj.type')" + :label="$t('dataManage.vmobj.format')" :label-width="formLabelWidth" > <el-input v-model="editForm.type" autocomplete="off"></el-input> </el-form-item> <el-form-item - :label="$t('common.format')" + :label="$t('dataManage.vmobj.size')" :label-width="formLabelWidth" > - <el-input v-model="editForm.format" autocomplete="off"></el-input> + <el-input v-model="editForm.sizes" autocomplete="off"></el-input> </el-form-item> <el-form-item - :label="$t('dataManage.vmobj.coordSystem')" + :label="$t('dataManage.vmobj.depName')" :label-width="formLabelWidth" > - <el-input v-model="editForm.cs" autocomplete="off"></el-input> - </el-form-item> - <el-form-item - :label="$t('dataManage.vmobj.scale')" - :label-width="formLabelWidth" - > - <el-input v-model="editForm.scale" autocomplete="off"></el-input> - </el-form-item> - <el-form-item - :label="$t('dataManage.vmobj.resolpower')" - :label-width="formLabelWidth" - > - <el-input v-model="editForm.resolution" autocomplete="off"></el-input> + <!-- <el-input v-model="editForm.depName" autocomplete="off"></el-input> --> + <el-cascader + v-model="editForm.depid" + :options="companyOption" + @change="companyChange" + :props="cascader" + ></el-cascader> </el-form-item> <el-form-item :label="$t('dataManage.vmobj.describe')" :label-width="formLabelWidth" > - <el-input v-model="editForm.descr" autocomplete="off"></el-input> + <el-input v-model="editForm.describe" autocomplete="off"></el-input> </el-form-item> + <!-- <el-form-item + :label="$t('dataManage.vmobj.gather')" + :label-width="formLabelWidth" + > + <el-input v-model="editForm.gather" autocomplete="off"></el-input> + </el-form-item> --> </el-form> <div v-if="behavior == '淇敼淇℃伅'" slot="footer" class="dialog-footer"> <el-button size="medium" @click="cancelEdit()">{{ @@ -295,6 +311,8 @@ updateMeta, deleteMeta, insertMeta, + selectDictTab, + queryDepTree, } from '../../api/api'; import MyBread from '../../components/MyBread.vue'; export default { @@ -311,6 +329,9 @@ } }; return { + companyOption: [], + activeName: '', + optionCount: [], showCodeBox: false, value: true, multipleSelection: [], @@ -349,16 +370,107 @@ insert: false, update: false, }, + listData: { + pageSize: 10, + pageIndex: 1, + name: null, + }, + cascader: { + label: 'name', + value: 'id', + children: 'children', + checkStrictly: true, + emitPath: false, + }, }; }, created() { - this.getMetaData({ - pageIndex: 1, - pageSize: 10, - }); + this.getMetaData(); + this.getSelectDictTab(); this.showPermsBtn(); + this.getQueryDepTree(); }, methods: { + //鍗曚綅鍒楄〃鑾峰彇 + async getQueryDepTree() { + const res = await queryDepTree(); + if (res.code != 200) { + this.$message.error('鍗曚綅鍒楄〃鑾峰彇澶辫触'); + return; + } + // this.formInline.depid = 1; + this.companyOption = this.treeData(res.result); + }, + //鏍煎紡鍖栧垪琛� + formatData(row, column) { + let data = row[column.property]; + if (data == null) { + return data; + } + return this.format(data); + }, + setInfoBoxTime(res) { + if (res == null) { + return res; + } + return this.format(res); + }, + setInfoBoxSize(res) { + if (res >= 1024) { + return parseFloat(res / 1024).toFixed(3) + ' GB'; + } else { + return res + ' MB'; + } + }, + //鏍煎紡鍖栨椂闂� + format(shijianchuo) { + //shijianchuo鏄暣鏁帮紝鍚﹀垯瑕乸arseInt杞崲 + var time = new Date(shijianchuo); + var y = time.getFullYear(); + var m = time.getMonth() + 1; + var d = time.getDate(); + var h = time.getHours(); + var mm = time.getMinutes(); + var s = time.getSeconds(); + return ( + y + + '-' + + this.add0(m) + + '-' + + this.add0(d) + + ' ' + + h + + ':' + + mm + + ':' + + s + ); + }, + //鏍煎紡鍖栨椂闂� + add0(m) { + return m < 10 ? '0' + m : m; + }, + //鍗曚綅杞崲 + stateFormatSizes(row, column) { + if (row.sizes >= 1024) { + const val = parseFloat(row.sizes / 1024).toFixed(3); + return val + ' GB'; + } else { + return row.sizes + ' MB'; + } + }, + //鐩綍鏍戣幏鍙� + async getSelectDictTab() { + const data = await selectDictTab(); + if (data.code != 200) { + this.$message.error('涓嬫媺璋冪敤澶辫触'); + } + this.optionCount = data.result; + this.activeName = data.result[0].tab; + }, + getTableDesc(res) { + this.activeName = res.tab; + }, //鏄剧ず鏉冮檺鎸夐挳 showPermsBtn() { let currentPerms = this.$store.state.currentPerms; @@ -400,35 +512,26 @@ ); }, // 璇锋眰鏁版嵁鍐呭 - getMetaData(params) { - select_meta_ByPageAndCount(params).then((res) => { + getMetaData() { + select_meta_ByPageAndCount(this.listData).then((res) => { this.tableData = res.result; this.count = res.count; }); }, // 鏌ヨ queryInfo() { - let searchData = { - name: this.queryForm.name.trim(), - pageIndex: this.pageIndex, - pageSize: this.pageSize, - }; - select_meta_ByPageAndCount(searchData).then((res) => { - if (res.code == 200) { - this.tableData = res.result; - this.count = res.count; - } else { - console.log('鏌ヨ鎺ュ彛鎶ラ敊'); - this.$notify.error({ - title: res.code, - message: res.result, - }); - } - }); + this.listData.name = this.queryForm.name.trim(); + this.listData.pageSize = 10; + this.listData.pageIndex = 1; + this.getMetaData(); }, // 閲嶇疆鏌ヨ resetInfo(formName) { this.$refs[formName].resetFields(); + this.listData.pageSize = 10; + this.listData.pageIndex = 1; + this.listData.name = null; + this.getMetaData(); }, //鏂板鎸夐挳 showAddDialog() { @@ -450,7 +553,9 @@ setTimeout(() => { this.fullscreenLoading = false; if (res.code == 200) { - this.getMetaData({ pageIndex: 1, pageSize: 10 }); + this.listData.pageSize = 10; + this.listData.pageIndex = 1; + this.getMetaData(); this.$message({ message: '娣诲姞鎴愬姛', type: 'success', @@ -493,7 +598,9 @@ message: '鍒犻櫎鎴愬姛!', }); this.multipleSelection = []; - this.getMetaData({ pageIndex: 1, pageSize: 10 }); + this.listData.pageSize = 10; + this.listData.pageIndex = 1; + this.getMetaData(); } else { this.$message.error('鍒犻櫎澶辫触'); this.multipleSelection = []; @@ -550,7 +657,9 @@ setTimeout(() => { this.fullscreenLoading = false; if (res.code == 200) { - this.getMetaData({ pageIndex: 1, pageSize: 10 }); + this.listData.pageSize = 10; + this.listData.pageIndex = 1; + this.getMetaData(); this.$message({ message: '淇敼鎴愬姛', type: 'success', @@ -586,13 +695,23 @@ }, handleSizeChange(val) { - this.pageSize = val; - this.queryInfo(); + this.listData.pageSize = val; + this.listData.pageIndex = 1; + this.getMetaData(); }, handleCurrentChange(val) { - this.pageIndex = val; - this.currentPage = val; - this.queryInfo(); + this.listData.pageIndex = val; + this.getMetaData(); + }, + //鏍戝垪琛ㄧ敓鎴� + 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; // 杩斿洖涓�绾ц彍鍗� + }); }, }, }; @@ -617,15 +736,39 @@ } } .bottom { - width: 98%; + width: 100%; margin-top: 1%; height: 74%; - padding: 1%; - border: 1px solid white; - border-radius: 5px; - .rightTable { + display: flex; + justify-content: space-between; + .leftTree { + width: 15%; height: 100%; - width: 100%; + border: 1px solid white; + border-radius: 5px; + padding: 1%; + max-height: 670px; + overflow-y: auto; + li { + color: white; + border-bottom: 1px solid white; + line-height: 30px; + text-align: center; + } + li:hover { + background: rgba(255, 255, 255, 0.3); + } + .active { + color: #409eff; + } + } + .rightTable { + width: 80%; + height: 100%; + border: 1px solid white; + + border-radius: 5px; + padding: 1%; .table_box { width: 100%; height: 93%; -- Gitblit v1.9.3