src/assets/lang/en.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/assets/lang/zh.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/datamanage/dataController.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/datamanage/domainManage.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/datamanage/downLoader.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/datamanage/projectManage.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/datamanage/versionManage.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/assets/lang/en.js
@@ -51,6 +51,7 @@ datawarehousing: 'Data warehousing', rangeManage: 'Range management', dataRetrieval: 'data retrieval', dataDownload: 'Data download', dataUpObj: { catalogue: 'Catalogue', company: 'Company', src/assets/lang/zh.js
@@ -50,7 +50,8 @@ datawarehousing: 'æ°æ®å ¥åº', rangeManage: 'å¼å管ç', dataRetrieval: 'æ°æ®æ£ç´¢', dataDownload: 'æ°æ®ä¸è½½', projectManage: '项ç®ç®¡ç', dataUpObj: { catalogue: 'ç®å½', company: 'åä½', src/views/datamanage/dataController.vue
@@ -34,6 +34,8 @@ ></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> </el-card> </div> </div> @@ -51,6 +53,8 @@ import metadataManage from '@/views/datamanage/metadataManage.vue'; //æ°æ®ç®¡ç-å æ°æ®ç®¡ç import styleManage from '@/views/datamanage/styleManage.vue'; //æ°æ®ç®¡ç-æ ·å¼ç®¡ç import dataLoader from '@/views/datamanage/dataLoader.vue'; //æ°æ®ç®¡ç-æ°æ®å ¥åº import downLoader from '@/views/datamanage/downLoader.vue'; //æ°æ®ç®¡ç-æ°æ®ä¸è½½ import projectManage from '@/views/datamanage/projectManage.vue'; export default { components: { customElMenu, @@ -63,6 +67,8 @@ metadataManage, styleManage, dataLoader, downLoader, projectManage, }, data() { return { src/views/datamanage/domainManage.vue
@@ -511,7 +511,7 @@ this.$refs[formName].validate((valid) => { if (valid) { this.fullscreenLoading = true; debugger; insertDomain(this.editForm) .then((res) => { setTimeout(() => { src/views/datamanage/downLoader.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,726 @@ <template> <div class="verSionBox"> <My-bread :list="[ `${$t('dataManage.dataManage')}`, `${$t('dataManage.dataDownload')}`, ]" ></My-bread> <el-divider /> <div class="verSionContent"> <div class="verSion_leftTree"> <ver-dir-tree></ver-dir-tree> </div> <div class="verSion_rightContent"> <el-form ref="ruleForm" :model="ruleForm" :inline="true"> <el-form-item :label="$t('dataManage.vmobj.keyword')" prop="name"> <el-input v-model="ruleForm.name" :placeholder="$t('common.pleaseInput')" /> </el-form-item> <el-form-item> <el-button @click="onSubmit('ruleForm')" icon="el-icon-search" size="small" class="primary" >{{ $t('common.iquery') }}</el-button > <el-button type="success" v-if="btnStatus.insert" @click="(InsertFormdialog = true), getSelectdirTab()" icon="el-icon-plus" size="small" >{{ $t('common.append') }}</el-button > <el-button type="info" @click="resetForm('ruleForm')" icon="el-icon-delete" size="small" >{{ $t('common.empty') }}</el-button > </el-form-item> </el-form> <el-divider class="eldivider" /> <div style="height: 80%"> <el-table :data="tableData" style="width: 100%" height="99%"> <el-table-column align="center" type="index" :label="$t('dataManage.vmobj.index')" width="70px" /> <el-table-column align="center" prop="id" v-if="false" /> <el-table-column align="center" prop="name" :label="$t('common.versionName')" /> <el-table-column align="center" prop="depName" :label="$t('dataManage.vmobj.catalogue')" /> <el-table-column align="center" prop="descr" :label="$t('dataManage.vmobj.describe')" /> <el-table-column align="center" prop="createUser" :label="$t('dataManage.vmobj.createonuser')" /> <el-table-column align="center" prop="createTime" :label="$t('dataManage.vmobj.createontime')" :formatter="formatTime" /> <el-table-column align="center" prop="UpdateUser" :label="$t('dataManage.vmobj.updateonuser')" /> <el-table-column align="center" prop="updateTime" :label="$t('dataManage.vmobj.updateontime')" :formatter="formatTime" /> <el-table-column min-width="150" :label="$t('common.operate')"> <template slot-scope="scope"> <el-button v-if="btnStatus.update" @click=" handleEdit(scope.$index, scope.row); getSelectdirTab(); " type="warning" size="small" >{{ $t('common.update') }}</el-button > <el-button v-if="btnStatus.delete" @click="handleDelete(scope.$index, scope.row)" type="danger" size="small" >{{ $t('common.delete') }}</el-button > </template> </el-table-column> </el-table> <div style="margin-top: 20px; margin-left: 200px" class="pagination_box" > <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listData.pageIndex" :page-sizes="[10, 20, 30, 40]" :page-size="listData.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="count" > </el-pagination> </div> </div> </div> </div> <el-dialog :title="$t('dataManage.vmobj.editVersion')" :visible.sync="dialogFormVisible" > <el-form :model="upform"> <el-form-item :label="$t('dataManage.vmobj.name')" :label-width="formLabelWidth" > <el-input v-model="upform.name" autocomplete="off"></el-input> </el-form-item> <el-form-item :label="$t('dataManage.vmobj.catalogue')" :label-width="formLabelWidth" > <el-cascader style="width: 300px" v-model="upform.dirid" :options="editcatalogOption" @change="upCatalogChange" :props="cascader" ></el-cascader> </el-form-item> <el-form-item :label="$t('dataManage.vmobj.describe')" :label-width="formLabelWidth" > <el-input v-model="upform.descr" autocomplete="off"></el-input> </el-form-item> </el-form> <div slot="footer" type="info" class="dialog-footer"> <el-button @click="editFromDataClose">{{ $t('common.close') }}</el-button> <el-button @click="editFromData" class="primary">{{ $t('common.confirm') }}</el-button> </div> </el-dialog> <el-dialog :title="$t('dataManage.vmobj.addVersion')" :visible.sync="InsertFormdialog" width="30%" > <el-form :model="insertform"> <el-form-item :label="$t('dataManage.vmobj.name')" :label-width="formLabelWidth" > <el-input style="width: 300px" v-model="insertform.name" autocomplete="off" ></el-input> </el-form-item> <el-form-item :label="$t('dataManage.vmobj.catalogue')" :label-width="formLabelWidth" > <el-cascader style="width: 300px" v-model="insertform.path" :options="catalogOption" @change="catalogChange" :props="cascader" ></el-cascader> </el-form-item> <el-form-item :label="$t('dataManage.vmobj.describe')" :label-width="formLabelWidth" > <el-input style="width: 300px" v-model="insertform.descr" autocomplete="off" ></el-input> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click="insertFromDataClose" type="info">{{ $t('common.close') }}</el-button> <el-button @click="insertFromData" class="primary">{{ $t('common.confirm') }}</el-button> </div> </el-dialog> <!-- <div class="searchComp"> <el-form ref="ruleForm" :model="ruleForm" :inline="true"> <el-form-item :label="$t('dataManage.vmobj.keyword')" prop="name"> <el-input v-model="ruleForm.name" :placeholder="$t('common.pleaseInput')" /> </el-form-item> <el-form-item> <el-button @click="onSubmit('ruleForm')" icon="el-icon-search" size="small" >{{ $t('common.iquery') }}</el-button > <el-button v-if="btnStatus.insert" @click="InsertFormdialog = true" icon="el-icon-plus" size="small" >{{ $t('common.append') }}</el-button > <el-button @click="resetForm('ruleForm')" icon="el-icon-delete" size="small" >{{ $t('common.empty') }}</el-button > </el-form-item> </el-form> </div> <div class="bottom"> <div class="leftTree"> <ver-dir-tree></ver-dir-tree> </div> <div class="rightTable"> <div class="table_box"> </div> </div> </div> <div class="infoBox" v-show="showinfoBox"> <el-card class="box-card"> <div slot="header" class="clearfix"> <span>详ç»ä¿¡æ¯</span> <div style="float: right; cursor: pointer"> <i class="el-icon-close"></i> </div> </div> <div class="contentBox"> <p>æ°æ®åç§°ï¼{{ itemdetail.name }}</p> <el-divider></el-divider> <p>æå±ç®å½ï¼{{ itemdetail.path }}</p> <el-divider></el-divider> <p>å建æ¶é´ï¼{{ itemdetail.create_time }}</p> <el-divider></el-divider> <p>å建人åï¼{{ itemdetail.create_user }}</p> <el-divider></el-divider> <p>ä¸ä¼ åä½ï¼{{ itemdetail.up_unit }}</p> <el-divider></el-divider> <p>æ°æ®ç¶æï¼{{ itemdetail.status }}</p> <el-divider></el-divider> <p>æ°æ®çæ¬ï¼{{ itemdetail.version }}</p> </div> </el-card> </div> <div class="leftTrees" v-if="showCata"> <div class="treeBox"> <ver-dir-trees></ver-dir-trees> </div> <div class="btnBox"> <el-button type="primary" size="small" @click="selectCataName">{{ $t('common.confirm') }}</el-button> <el-button type="primary" size="small" @click="showCata = false">{{ $t('common.close') }}</el-button> </div> </div> --> </div> </template> <script> import { select_Ver_ByPageAndCount, insertVersion, deleteVersion, updateVersion, selectdirTab, } from '../../api/api'; import verDirTree from './verDirTree.vue'; import MyBread from '../../components/MyBread.vue'; import verDirTrees from './verDirTrees.vue'; import moment from 'moment'; export default { name: 'versionManage', components: { MyBread, verDirTree, verDirTrees }, data() { return { catalogOption: [], editcatalogOption: [], showCata: false, formLabelWidth: '100px', dialogFormVisible: false, InsertFormdialog: false, showinfoBox: false, itemdetail: {}, upform: {}, ruleForm: {}, insertform: {}, tableData: [], count: 0, rowFlag: null, listData: { name: null, depName: null, pageIndex: 1, pageSize: 10, }, cascader: { label: 'name', value: 'id', children: 'children', checkStrictly: true, emitPath: false, }, btnStatus: { select: false, delete: false, upload: false, download: false, insert: false, update: false, }, }; }, created() { this.getRoleTabelData(); this.showPermsBtn(); }, computed: { pathId() { return this.$store.state.cataNode.id; }, }, methods: { //ç®å½åæ¢ catalogChange(value) { this.insertform.dirid = value; }, upCatalogChange(val) { this.upform.dirid == val; }, //ç®å½å表è·å async getSelectdirTab() { const res = await selectdirTab(); if (res.code != 200) { this.$message.error('ç®å½å表è·å失败'); return; } this.insertform.name = this.getYMD(); this.insertform.path = 1; this.insertform.dirid = 1; this.upform.dirid == 1; this.catalogOption = this.treeData(res.result); this.editcatalogOption = this.treeData(res.result); }, getYMD() { let myDate = new Date(); let myYear = myDate.getFullYear(); //è·å宿´ç年份(4ä½,1970-????) let myMonth = myDate.getMonth() + 1; //è·åå½åæä»½(0-11,0代表1æ) let myToday = myDate.getDate(); //è·åå½åæ¥(1-31) myMonth = myMonth > 9 ? myMonth : '0' + myMonth; myToday = myToday > 9 ? myToday : '0' + myToday; let nowDate = 'V' + myYear + myMonth + myToday; return nowDate; }, //æ åè¡¨çæ 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) : ''; // ç»ç¶çº§æ·»å ä¸ä¸ªchildren屿§ï¼å¹¶èµå¼ return father.pid == 0; // è¿åä¸çº§èå }); }, showPermsBtn() { let currentPerms = this.$store.state.currentPerms; let permsEntity = this.$store.state.permsEntity; permsEntity .filter((item) => item.perms == currentPerms) .map((item) => (this.btnStatus[item.tag.substr(1)] = true)); }, resetForm() { this.ruleForm = {}; this.$store.state.verCateNode = {}; this.$bus.$emit('clearTressLabel', true); this.getRoleTabelData(); }, onSubmit() { this.listData.pageIndex = 1; this.listData.pageSize = 10; this.getRoleTabelData(); }, async getRoleTabelData() { if (this.listData.tab == '') { delete this.listData.tab; } this.listData.name = this.ruleForm.name; this.listData.depName = this.$store.state.verCateNode.name; const data = await select_Ver_ByPageAndCount(this.listData); if (data.code != 200) { this.$message.error('å表è°ç¨å¤±è´¥'); } this.tableData = data.result; this.count = data.count; }, handleSizeChange(val) { this.listData.pageSize = val; this.getRoleTabelData(); }, handleCurrentChange(val) { this.listData.pageIndex = val; this.getRoleTabelData(); }, showVerTree(res) { this.showCata = true; this.rowFlag = res; }, selectCataName() { this.showCata = false; if (this.rowFlag == 3) { this.insertform.path = this.$store.state.verCateNodes.name; this.insertform.dirid = this.$store.state.verCateNodes.id; } else if (this.rowFlag == 2) { this.upform.depName = this.$store.state.verCateNodes.name; this.upform.dirid = this.$store.state.verCateNodes.id; } }, editFromDataClose() { this.dialogFormVisible = false; this.upform = {}; }, async editFromData() { if (this.upform.depName == null) { this.$message({ message: 'è¯·éæ©è§è²æå±åä½', type: 'warning', }); return; } const data = await updateVersion(this.upform); if (data.code == 200) { this.dialogFormVisible = false; this.upform = {}; this.$message({ message: 'ä¿®æ¹æåï¼', type: 'success', }); this.getRoleTabelData(); } else { this.$message({ message: 'ä¿®æ¹å¤±è´¥ï¼', type: 'warning', }); } }, insertFromDataClose() { this.InsertFormdialog = false; this.insertform = {}; }, async insertFromData() { if (this.insertform.dirid == null) { this.$message({ message: 'è¯·éæ©è§è²æå±åä½', type: 'warning', }); return; } const data = await insertVersion(this.insertform); if (data.code == 200) { this.InsertFormdialog = false; this.insertform = {}; this.$message({ message: 'æ·»å æåï¼', type: 'success', }); this.getRoleTabelData(); } else { this.$message({ message: 'æ·»å 失败ï¼', type: 'warning', }); } }, formatTime(row, column) { let date = row[column.property]; if (date === undefined || date === null) { return ''; } return moment(parseInt(date)).format('YYYY-MM-DD HH:mm:ss'); }, async handleDelete(index, row) { const data = await deleteVersion(row.id); if (data.code == 200) { this.InsertFormdialog = false; this.$message({ message: 'å 餿åï¼', type: 'success', }); this.getRoleTabelData(); } else { this.$message({ message: 'å é¤å¤±è´¥ï¼', type: 'warning', }); } }, handleEdit(index, row) { this.dialogFormVisible = true; this.upform = row; }, }, watch: { pathId: { immediate: true, handler(val) {}, }, }, }; </script> <style lang="less" scoped> //@import url(); å¼å ¥å ¬å ±cssç±» .verSionBox { height: 81%; width: 97%; position: absolute; box-sizing: border-box; .verSionContent { width: 100%; height: 92%; display: flex; justify-content: space-between; .verSion_leftTree { width: 15%; height: 95%; border: 1px solid white; border-radius: 5px; padding: 1%; max-height: 670px; overflow-y: auto; } .verSion_rightContent { width: 80%; height: 95%; border: 1px solid white; border-radius: 5px; padding: 1%; overflow-y: auto; } } .eldivider { margin-top: 0px; } .primary { background: #409eff; border: #409eff; color: white; } /deep/ .el-select .el-input__inner { border-color: #fff !important; } .pagination_box { margin-top: 20px; /deep/.el-input__inner { background-color: transparent !important; border: 1px solid; color: white; } /deep/.el-pagination__total { color: white; } /deep/.el-pagination__jump { color: white; } /deep/.el-pager li.active { color: #409eff; } /deep/.el-pager li { color: white; background: transparent; } /deep/.el-pager li { color: white; } /deep/.btn-prev { background: transparent; } /deep/.btn-next { background: transparent; } /deep/.btn-next i { color: white; } /deep/.btn-prev i { color: white; } } /deep/.el-form-item__label { color: white; } // 设置è¾å ¥æ¡çèæ¯è²ãåä½é¢è²ãè¾¹æ¡å±æ§è®¾ç½®ï¼ /deep/.el-input__inner { background-color: transparent !important ; color: #fff; border: 1px solid; } /*ä¿®æ¹table 表ä½çèæ¯é¢è²åæåé¢è²*/ /deep/ .el-table { background-color: transparent; th, td { background-color: transparent; } .el-table__expanded-cell { background-color: transparent !important; } // è¡¨å¤´èæ¯è² th.el-table__cell { background-color: #303030; color: #fff; } tr > td { background-color: #303030; color: #fff; } // hoverææ tr:hover > td { background-color: rgba(255, 255, 255, 0.3) !important; } tbody tr:hover { background-color: rgba(255, 255, 255, 0.3) !important; // text-align: center; } // æ»å¨æ¡å®½é« .el-table__body-wrapper::-webkit-scrollbar { width: 5px; height: 5px; } .el-table__body-wrapper::-webkit-scrollbar { width: 5px; /*æ»å¨æ¡å®½åº¦*/ height: 5px; /*æ»å¨æ¡é«åº¦*/ } /*å®ä¹æ»å¨æ¡è½¨é å é´å½±+åè§*/ .el-table__body-wrapper::-webkit-scrollbar-track { box-shadow: 0px 1px 3px #216fe6 inset; /*æ»å¨æ¡çèæ¯åºåçå é´å½±*/ border-radius: 10px; } /*å®ä¹æ»å å é´å½±+åè§*/ .el-table__body-wrapper::-webkit-scrollbar-thumb { box-shadow: 0px 1px 3px #216fe6 inset; border-radius: 6px; background-color: #216fe6; } } /deep/ .el-dialog { background: #303030; } /deep/.el-range-editor.is-active, .el-range-editor.is-active:hover, .el-select .el-input.is-focus .el-input__inner { border: 1px solid; } /deep/.el-dialog__title { color: white; } /deep/ .el-select .el-input__inner { border-color: #fff !important; } /deep/.el-cascader .el-input__inner { border-color: #fff !important; } } </style> src/views/datamanage/projectManage.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,726 @@ <template> <div class="verSionBox"> <My-bread :list="[ `${$t('dataManage.dataManage')}`, `${$t('dataManage.projectManage')}`, ]" ></My-bread> <el-divider /> <div class="verSionContent"> <div class="verSion_leftTree"> <ver-dir-tree></ver-dir-tree> </div> <div class="verSion_rightContent"> <el-form ref="ruleForm" :model="ruleForm" :inline="true"> <el-form-item :label="$t('dataManage.vmobj.keyword')" prop="name"> <el-input v-model="ruleForm.name" :placeholder="$t('common.pleaseInput')" /> </el-form-item> <el-form-item> <el-button @click="onSubmit('ruleForm')" icon="el-icon-search" size="small" class="primary" >{{ $t('common.iquery') }}</el-button > <el-button type="success" v-if="btnStatus.insert" @click="(InsertFormdialog = true), getSelectdirTab()" icon="el-icon-plus" size="small" >{{ $t('common.append') }}</el-button > <el-button type="info" @click="resetForm('ruleForm')" icon="el-icon-delete" size="small" >{{ $t('common.empty') }}</el-button > </el-form-item> </el-form> <el-divider class="eldivider" /> <div style="height: 80%"> <el-table :data="tableData" style="width: 100%" height="99%"> <el-table-column align="center" type="index" :label="$t('dataManage.vmobj.index')" width="70px" /> <el-table-column align="center" prop="id" v-if="false" /> <el-table-column align="center" prop="name" :label="$t('common.versionName')" /> <el-table-column align="center" prop="depName" :label="$t('dataManage.vmobj.catalogue')" /> <el-table-column align="center" prop="descr" :label="$t('dataManage.vmobj.describe')" /> <el-table-column align="center" prop="createUser" :label="$t('dataManage.vmobj.createonuser')" /> <el-table-column align="center" prop="createTime" :label="$t('dataManage.vmobj.createontime')" :formatter="formatTime" /> <el-table-column align="center" prop="UpdateUser" :label="$t('dataManage.vmobj.updateonuser')" /> <el-table-column align="center" prop="updateTime" :label="$t('dataManage.vmobj.updateontime')" :formatter="formatTime" /> <el-table-column min-width="150" :label="$t('common.operate')"> <template slot-scope="scope"> <el-button v-if="btnStatus.update" @click=" handleEdit(scope.$index, scope.row); getSelectdirTab(); " type="warning" size="small" >{{ $t('common.update') }}</el-button > <el-button v-if="btnStatus.delete" @click="handleDelete(scope.$index, scope.row)" type="danger" size="small" >{{ $t('common.delete') }}</el-button > </template> </el-table-column> </el-table> <div style="margin-top: 20px; margin-left: 200px" class="pagination_box" > <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listData.pageIndex" :page-sizes="[10, 20, 30, 40]" :page-size="listData.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="count" > </el-pagination> </div> </div> </div> </div> <el-dialog :title="$t('dataManage.vmobj.editVersion')" :visible.sync="dialogFormVisible" > <el-form :model="upform"> <el-form-item :label="$t('dataManage.vmobj.name')" :label-width="formLabelWidth" > <el-input v-model="upform.name" autocomplete="off"></el-input> </el-form-item> <el-form-item :label="$t('dataManage.vmobj.catalogue')" :label-width="formLabelWidth" > <el-cascader style="width: 300px" v-model="upform.dirid" :options="editcatalogOption" @change="upCatalogChange" :props="cascader" ></el-cascader> </el-form-item> <el-form-item :label="$t('dataManage.vmobj.describe')" :label-width="formLabelWidth" > <el-input v-model="upform.descr" autocomplete="off"></el-input> </el-form-item> </el-form> <div slot="footer" type="info" class="dialog-footer"> <el-button @click="editFromDataClose">{{ $t('common.close') }}</el-button> <el-button @click="editFromData" class="primary">{{ $t('common.confirm') }}</el-button> </div> </el-dialog> <el-dialog :title="$t('dataManage.vmobj.addVersion')" :visible.sync="InsertFormdialog" width="30%" > <el-form :model="insertform"> <el-form-item :label="$t('dataManage.vmobj.name')" :label-width="formLabelWidth" > <el-input style="width: 300px" v-model="insertform.name" autocomplete="off" ></el-input> </el-form-item> <el-form-item :label="$t('dataManage.vmobj.catalogue')" :label-width="formLabelWidth" > <el-cascader style="width: 300px" v-model="insertform.path" :options="catalogOption" @change="catalogChange" :props="cascader" ></el-cascader> </el-form-item> <el-form-item :label="$t('dataManage.vmobj.describe')" :label-width="formLabelWidth" > <el-input style="width: 300px" v-model="insertform.descr" autocomplete="off" ></el-input> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click="insertFromDataClose" type="info">{{ $t('common.close') }}</el-button> <el-button @click="insertFromData" class="primary">{{ $t('common.confirm') }}</el-button> </div> </el-dialog> <!-- <div class="searchComp"> <el-form ref="ruleForm" :model="ruleForm" :inline="true"> <el-form-item :label="$t('dataManage.vmobj.keyword')" prop="name"> <el-input v-model="ruleForm.name" :placeholder="$t('common.pleaseInput')" /> </el-form-item> <el-form-item> <el-button @click="onSubmit('ruleForm')" icon="el-icon-search" size="small" >{{ $t('common.iquery') }}</el-button > <el-button v-if="btnStatus.insert" @click="InsertFormdialog = true" icon="el-icon-plus" size="small" >{{ $t('common.append') }}</el-button > <el-button @click="resetForm('ruleForm')" icon="el-icon-delete" size="small" >{{ $t('common.empty') }}</el-button > </el-form-item> </el-form> </div> <div class="bottom"> <div class="leftTree"> <ver-dir-tree></ver-dir-tree> </div> <div class="rightTable"> <div class="table_box"> </div> </div> </div> <div class="infoBox" v-show="showinfoBox"> <el-card class="box-card"> <div slot="header" class="clearfix"> <span>详ç»ä¿¡æ¯</span> <div style="float: right; cursor: pointer"> <i class="el-icon-close"></i> </div> </div> <div class="contentBox"> <p>æ°æ®åç§°ï¼{{ itemdetail.name }}</p> <el-divider></el-divider> <p>æå±ç®å½ï¼{{ itemdetail.path }}</p> <el-divider></el-divider> <p>å建æ¶é´ï¼{{ itemdetail.create_time }}</p> <el-divider></el-divider> <p>å建人åï¼{{ itemdetail.create_user }}</p> <el-divider></el-divider> <p>ä¸ä¼ åä½ï¼{{ itemdetail.up_unit }}</p> <el-divider></el-divider> <p>æ°æ®ç¶æï¼{{ itemdetail.status }}</p> <el-divider></el-divider> <p>æ°æ®çæ¬ï¼{{ itemdetail.version }}</p> </div> </el-card> </div> <div class="leftTrees" v-if="showCata"> <div class="treeBox"> <ver-dir-trees></ver-dir-trees> </div> <div class="btnBox"> <el-button type="primary" size="small" @click="selectCataName">{{ $t('common.confirm') }}</el-button> <el-button type="primary" size="small" @click="showCata = false">{{ $t('common.close') }}</el-button> </div> </div> --> </div> </template> <script> import { select_Ver_ByPageAndCount, insertVersion, deleteVersion, updateVersion, selectdirTab, } from '../../api/api'; import verDirTree from './verDirTree.vue'; import MyBread from '../../components/MyBread.vue'; import verDirTrees from './verDirTrees.vue'; import moment from 'moment'; export default { name: 'versionManage', components: { MyBread, verDirTree, verDirTrees }, data() { return { catalogOption: [], editcatalogOption: [], showCata: false, formLabelWidth: '100px', dialogFormVisible: false, InsertFormdialog: false, showinfoBox: false, itemdetail: {}, upform: {}, ruleForm: {}, insertform: {}, tableData: [], count: 0, rowFlag: null, listData: { name: null, depName: null, pageIndex: 1, pageSize: 10, }, cascader: { label: 'name', value: 'id', children: 'children', checkStrictly: true, emitPath: false, }, btnStatus: { select: false, delete: false, upload: false, download: false, insert: false, update: false, }, }; }, created() { this.getRoleTabelData(); this.showPermsBtn(); }, computed: { pathId() { return this.$store.state.cataNode.id; }, }, methods: { //ç®å½åæ¢ catalogChange(value) { this.insertform.dirid = value; }, upCatalogChange(val) { this.upform.dirid == val; }, //ç®å½å表è·å async getSelectdirTab() { const res = await selectdirTab(); if (res.code != 200) { this.$message.error('ç®å½å表è·å失败'); return; } this.insertform.name = this.getYMD(); this.insertform.path = 1; this.insertform.dirid = 1; this.upform.dirid == 1; this.catalogOption = this.treeData(res.result); this.editcatalogOption = this.treeData(res.result); }, getYMD() { let myDate = new Date(); let myYear = myDate.getFullYear(); //è·å宿´ç年份(4ä½,1970-????) let myMonth = myDate.getMonth() + 1; //è·åå½åæä»½(0-11,0代表1æ) let myToday = myDate.getDate(); //è·åå½åæ¥(1-31) myMonth = myMonth > 9 ? myMonth : '0' + myMonth; myToday = myToday > 9 ? myToday : '0' + myToday; let nowDate = 'V' + myYear + myMonth + myToday; return nowDate; }, //æ åè¡¨çæ 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) : ''; // ç»ç¶çº§æ·»å ä¸ä¸ªchildren屿§ï¼å¹¶èµå¼ return father.pid == 0; // è¿åä¸çº§èå }); }, showPermsBtn() { let currentPerms = this.$store.state.currentPerms; let permsEntity = this.$store.state.permsEntity; permsEntity .filter((item) => item.perms == currentPerms) .map((item) => (this.btnStatus[item.tag.substr(1)] = true)); }, resetForm() { this.ruleForm = {}; this.$store.state.verCateNode = {}; this.$bus.$emit('clearTressLabel', true); this.getRoleTabelData(); }, onSubmit() { this.listData.pageIndex = 1; this.listData.pageSize = 10; this.getRoleTabelData(); }, async getRoleTabelData() { if (this.listData.tab == '') { delete this.listData.tab; } this.listData.name = this.ruleForm.name; this.listData.depName = this.$store.state.verCateNode.name; const data = await select_Ver_ByPageAndCount(this.listData); if (data.code != 200) { this.$message.error('å表è°ç¨å¤±è´¥'); } this.tableData = data.result; this.count = data.count; }, handleSizeChange(val) { this.listData.pageSize = val; this.getRoleTabelData(); }, handleCurrentChange(val) { this.listData.pageIndex = val; this.getRoleTabelData(); }, showVerTree(res) { this.showCata = true; this.rowFlag = res; }, selectCataName() { this.showCata = false; if (this.rowFlag == 3) { this.insertform.path = this.$store.state.verCateNodes.name; this.insertform.dirid = this.$store.state.verCateNodes.id; } else if (this.rowFlag == 2) { this.upform.depName = this.$store.state.verCateNodes.name; this.upform.dirid = this.$store.state.verCateNodes.id; } }, editFromDataClose() { this.dialogFormVisible = false; this.upform = {}; }, async editFromData() { if (this.upform.depName == null) { this.$message({ message: 'è¯·éæ©è§è²æå±åä½', type: 'warning', }); return; } const data = await updateVersion(this.upform); if (data.code == 200) { this.dialogFormVisible = false; this.upform = {}; this.$message({ message: 'ä¿®æ¹æåï¼', type: 'success', }); this.getRoleTabelData(); } else { this.$message({ message: 'ä¿®æ¹å¤±è´¥ï¼', type: 'warning', }); } }, insertFromDataClose() { this.InsertFormdialog = false; this.insertform = {}; }, async insertFromData() { if (this.insertform.dirid == null) { this.$message({ message: 'è¯·éæ©è§è²æå±åä½', type: 'warning', }); return; } const data = await insertVersion(this.insertform); if (data.code == 200) { this.InsertFormdialog = false; this.insertform = {}; this.$message({ message: 'æ·»å æåï¼', type: 'success', }); this.getRoleTabelData(); } else { this.$message({ message: 'æ·»å 失败ï¼', type: 'warning', }); } }, formatTime(row, column) { let date = row[column.property]; if (date === undefined || date === null) { return ''; } return moment(parseInt(date)).format('YYYY-MM-DD HH:mm:ss'); }, async handleDelete(index, row) { const data = await deleteVersion(row.id); if (data.code == 200) { this.InsertFormdialog = false; this.$message({ message: 'å 餿åï¼', type: 'success', }); this.getRoleTabelData(); } else { this.$message({ message: 'å é¤å¤±è´¥ï¼', type: 'warning', }); } }, handleEdit(index, row) { this.dialogFormVisible = true; this.upform = row; }, }, watch: { pathId: { immediate: true, handler(val) {}, }, }, }; </script> <style lang="less" scoped> //@import url(); å¼å ¥å ¬å ±cssç±» .verSionBox { height: 81%; width: 97%; position: absolute; box-sizing: border-box; .verSionContent { width: 100%; height: 92%; display: flex; justify-content: space-between; .verSion_leftTree { width: 15%; height: 95%; border: 1px solid white; border-radius: 5px; padding: 1%; max-height: 670px; overflow-y: auto; } .verSion_rightContent { width: 80%; height: 95%; border: 1px solid white; border-radius: 5px; padding: 1%; overflow-y: auto; } } .eldivider { margin-top: 0px; } .primary { background: #409eff; border: #409eff; color: white; } /deep/ .el-select .el-input__inner { border-color: #fff !important; } .pagination_box { margin-top: 20px; /deep/.el-input__inner { background-color: transparent !important; border: 1px solid; color: white; } /deep/.el-pagination__total { color: white; } /deep/.el-pagination__jump { color: white; } /deep/.el-pager li.active { color: #409eff; } /deep/.el-pager li { color: white; background: transparent; } /deep/.el-pager li { color: white; } /deep/.btn-prev { background: transparent; } /deep/.btn-next { background: transparent; } /deep/.btn-next i { color: white; } /deep/.btn-prev i { color: white; } } /deep/.el-form-item__label { color: white; } // 设置è¾å ¥æ¡çèæ¯è²ãåä½é¢è²ãè¾¹æ¡å±æ§è®¾ç½®ï¼ /deep/.el-input__inner { background-color: transparent !important ; color: #fff; border: 1px solid; } /*ä¿®æ¹table 表ä½çèæ¯é¢è²åæåé¢è²*/ /deep/ .el-table { background-color: transparent; th, td { background-color: transparent; } .el-table__expanded-cell { background-color: transparent !important; } // è¡¨å¤´èæ¯è² th.el-table__cell { background-color: #303030; color: #fff; } tr > td { background-color: #303030; color: #fff; } // hoverææ tr:hover > td { background-color: rgba(255, 255, 255, 0.3) !important; } tbody tr:hover { background-color: rgba(255, 255, 255, 0.3) !important; // text-align: center; } // æ»å¨æ¡å®½é« .el-table__body-wrapper::-webkit-scrollbar { width: 5px; height: 5px; } .el-table__body-wrapper::-webkit-scrollbar { width: 5px; /*æ»å¨æ¡å®½åº¦*/ height: 5px; /*æ»å¨æ¡é«åº¦*/ } /*å®ä¹æ»å¨æ¡è½¨é å é´å½±+åè§*/ .el-table__body-wrapper::-webkit-scrollbar-track { box-shadow: 0px 1px 3px #216fe6 inset; /*æ»å¨æ¡çèæ¯åºåçå é´å½±*/ border-radius: 10px; } /*å®ä¹æ»å å é´å½±+åè§*/ .el-table__body-wrapper::-webkit-scrollbar-thumb { box-shadow: 0px 1px 3px #216fe6 inset; border-radius: 6px; background-color: #216fe6; } } /deep/ .el-dialog { background: #303030; } /deep/.el-range-editor.is-active, .el-range-editor.is-active:hover, .el-select .el-input.is-focus .el-input__inner { border: 1px solid; } /deep/.el-dialog__title { color: white; } /deep/ .el-select .el-input__inner { border-color: #fff !important; } /deep/.el-cascader .el-input__inner { border-color: #fff !important; } } </style> src/views/datamanage/versionManage.vue
@@ -323,6 +323,7 @@ data() { return { catalogOption: [], editcatalogOption: [], showCata: false, formLabelWidth: '100px', dialogFormVisible: false,