Merge branch 'master' of http://103.135.160.14:9034/r/~shiwenshuai/DTKZZTX
| | |
| | | // DEM |
| | | var demLayer = LFData + '/dem'; |
| | | |
| | | |
| | | // t通信想定管理页面 |
| | | const thinkManageurl = "http://localhost/thinkManage/#/" |
| | | // 综合展示 |
| | | window.sceneConfig = { |
| | | // Sdk许可 |
| | |
| | | .contentBox { |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | |
| | | .box { |
| | | width: calc(100% - 20px); |
| | | height: calc(100% - 20px); |
| | | margin: 10px; |
| | | overflow: hidden; |
| | | width: calc(100% - 20px); |
| | | height: calc(100% - 20px); |
| | | margin: 10px; |
| | | overflow: hidden; |
| | | |
| | | } |
| | | |
| | | /*左侧div样式*/ |
| | | .left { |
| | | width: calc(14% - 10px); |
| | | /*左侧初始化宽度*/ |
| | | height: 100%; |
| | | overflow: auto; |
| | | border-radius: 10px; |
| | | float: left; |
| | | width: calc(14% - 10px); |
| | | /*左侧初始化宽度*/ |
| | | height: 100%; |
| | | overflow: auto; |
| | | border-radius: 10px; |
| | | float: left; |
| | | } |
| | | |
| | | /*拖拽区div样式*/ |
| | |
| | | .userRoleAuthorization_resize1, |
| | | .userRoleAuthorization_resize, |
| | | .resize { |
| | | cursor: col-resize; |
| | | float: left; |
| | | position: relative; |
| | | top: 45%; |
| | | background-color: #d6d6d6; |
| | | border-radius: 5px; |
| | | margin-top: -10px; |
| | | width: 10px; |
| | | height: 50px; |
| | | background-size: cover; |
| | | background-position: center; |
| | | /*z-index: 99999;*/ |
| | | font-size: 32px; |
| | | color: white; |
| | | cursor: col-resize; |
| | | float: left; |
| | | position: relative; |
| | | top: 45%; |
| | | background-color: #d6d6d6; |
| | | border-radius: 5px; |
| | | margin-top: -10px; |
| | | width: 10px; |
| | | height: 50px; |
| | | background-size: cover; |
| | | background-position: center; |
| | | /*z-index: 99999;*/ |
| | | font-size: 32px; |
| | | color: white; |
| | | |
| | | } |
| | | |
| | | .menuRoleAuthorization_resize { |
| | | /* left: 10px; */ |
| | | /* left: 10px; */ |
| | | } |
| | | |
| | | /*拖拽区鼠标悬停样式*/ |
| | |
| | | .userRoleAuthorization_resize1, |
| | | .userRoleAuthorization_resize, |
| | | .resize:hover { |
| | | color: #444444; |
| | | color: #444444; |
| | | } |
| | | |
| | | /*右侧div'样式*/ |
| | | .mid { |
| | | float: left; |
| | | width: 86%; |
| | | /*右侧初始化宽度*/ |
| | | height: 100%; |
| | | float: left; |
| | | width: 86%; |
| | | /*右侧初始化宽度*/ |
| | | height: 100%; |
| | | |
| | | border-radius: 10px; |
| | | border-radius: 10px; |
| | | } |
| | | |
| | | |
| | | |
| | | .subpage_Box { |
| | | width: 98%; |
| | | height: 98%; |
| | | padding: 1%; |
| | | /* overflow: auto; */ |
| | | width: 98%; |
| | | height: 98%; |
| | | padding: 1%; |
| | | |
| | | /* overflow: auto; */ |
| | | } |
| | | |
| | | .subpage_Iquery { |
| | | width: calc(98% - 2px); |
| | | height: auto; |
| | | width: calc(98% - 2px); |
| | | height: auto; |
| | | |
| | | padding-left: 1%; |
| | | padding-right: 1%; |
| | | padding-top: 1%; |
| | | border-radius: 5px; |
| | | padding-left: 1%; |
| | | padding-right: 1%; |
| | | padding-top: 1%; |
| | | border-radius: 5px; |
| | | } |
| | | |
| | | .subpage_Content { |
| | | width: calc(98% - 2px); |
| | | height: auto; |
| | | width: calc(98% - 2px); |
| | | height: auto; |
| | | |
| | | margin-top: 1%; |
| | | margin-bottom: 1%; |
| | | padding: 1%; |
| | | border-radius: 5px; |
| | | margin-top: 1%; |
| | | margin-bottom: 1%; |
| | | padding: 1%; |
| | | border-radius: 5px; |
| | | } |
| | | |
| | | .tarnsbtton { |
| | | width: 6%; |
| | | height: 100%; |
| | | /*flex 布局*/ |
| | | display: flex; |
| | | /*实现垂直居中*/ |
| | | align-items: center; |
| | | /*实现水平居中*/ |
| | | justify-content: center; |
| | | width: 6%; |
| | | height: 100%; |
| | | /*flex 布局*/ |
| | | display: flex; |
| | | /*实现垂直居中*/ |
| | | align-items: center; |
| | | /*实现水平居中*/ |
| | | justify-content: center; |
| | | } |
| | | |
| | | .dialogBox { |
| | | width: 100%; |
| | | height: 500px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | width: 100%; |
| | | height: 500px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .transFarBox { |
| | | width: 30%; |
| | | height: 100%; |
| | | width: 30%; |
| | | height: 100%; |
| | | |
| | | border-radius: 5px; |
| | | max-height: 500px; |
| | | overflow-y: auto; |
| | | border-radius: 5px; |
| | | max-height: 500px; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .transFarBox li { |
| | | line-height: 30px; |
| | | text-align: center; |
| | | line-height: 30px; |
| | | text-align: center; |
| | | } |
| | | |
| | | .transFarBox li:hover { |
| | | background: rgba(0, 0, 0, 0.2); |
| | | background: rgba(0, 0, 0, 0.2); |
| | | } |
| | | |
| | | .transFarBox .active { |
| | | color: #409eff; |
| | | color: #409eff; |
| | | } |
| | | |
| | | .dialogContent { |
| | | width: calc(100% - 20px); |
| | | max-height: 370px; |
| | | float: left; |
| | | overflow: auto; |
| | | padding: 10px; |
| | | width: calc(100% - 20px); |
| | | max-height: 370px; |
| | | float: left; |
| | | overflow: auto; |
| | | padding: 10px; |
| | | |
| | | } |
| | | |
| | | .dialogContent .ContBox { |
| | | width: 44%; |
| | | padding: 10px; |
| | | margin-left: 2%; |
| | | float: left; |
| | | width: 44%; |
| | | padding: 10px; |
| | | margin-left: 2%; |
| | | float: left; |
| | | |
| | | } |
| | | |
| | | .dialogContent .ContDiv { |
| | | display: flex; |
| | | justify-content: space-around; |
| | | margin: 5px 0px; |
| | | display: flex; |
| | | justify-content: space-around; |
| | | margin: 5px 0px; |
| | | |
| | | } |
| | | |
| | | .dialogContent .contLable { |
| | | width: 175px; |
| | | width: 175px; |
| | | |
| | | } |
| | | |
| | | .infoBox_box { |
| | | position: fixed; |
| | | width: 100vw; |
| | | height: 100vh; |
| | | background: rgba(0, 0, 0, 0.4); |
| | | top: 0; |
| | | left: 0; |
| | | z-index: 10; |
| | | position: fixed; |
| | | width: 100vw; |
| | | height: 100vh; |
| | | background: rgba(0, 0, 0, 0.4); |
| | | top: 0; |
| | | left: 0; |
| | | z-index: 10; |
| | | } |
| | | |
| | | .infoBox { |
| | | background: rgb(255, 255, 255); |
| | | width: 500px; |
| | | position: absolute; |
| | | z-index: 100; |
| | | top: 15%; |
| | | right: 15%; |
| | | border: 1px solid white; |
| | | background: rgb(255, 255, 255); |
| | | width: 500px; |
| | | position: absolute; |
| | | z-index: 100; |
| | | top: 15%; |
| | | right: 15%; |
| | | border: 1px solid white; |
| | | |
| | | height: 600px; |
| | | padding: 10px; |
| | | /* overflow: auto; */ |
| | | border-radius: 5px; |
| | | height: 600px; |
| | | padding: 10px; |
| | | /* overflow: auto; */ |
| | | border-radius: 5px; |
| | | |
| | | } |
| | | |
| | | .infoBox .el-card { |
| | | background-color: transparent; |
| | | background-color: transparent; |
| | | |
| | | } |
| | | |
| | | .infoBox span { |
| | | font-size: 16px; |
| | | font-weight: 600; |
| | | font-size: 16px; |
| | | font-weight: 600; |
| | | } |
| | | |
| | | .infoBox .contentBox { |
| | | margin: 0 aotu 10px; |
| | | overflow: auto; |
| | | /* height: 90%; */ |
| | | height: 500px; |
| | | margin: 0 aotu 10px; |
| | | overflow: auto; |
| | | /* height: 90%; */ |
| | | height: 500px; |
| | | } |
| | | |
| | | .infoBox p { |
| | | font-size: 14px; |
| | | font-size: 14px; |
| | | } |
| | |
| | | <template> |
| | | <div class="mapBox"> |
| | | <div id="mapdiv"> |
| | | <div class="imgbox" |
| | | v-if="showFlyimg"> |
| | | <img src="../assets/img/feixingqi.png" |
| | | alt="" /> |
| | | </div> |
| | | <div class="menu_Top box_divm" |
| | | v-if="$store.state.mapMenuBoolean"> |
| | | <map-menu-top v-if="$store.state.mapMenuBoxFlag == '1'" /> |
| | |
| | | } |
| | | }; |
| | | return { |
| | | showFlyimg: false, |
| | | centerFlag: false, |
| | | buffer: null, |
| | | showBufferBoxDialog: false, |
| | |
| | | ); |
| | | |
| | | }, |
| | | ViewerCameraBack () { |
| | | var that=this; |
| | | Viewer.camera.changed.addEventListener(() => { |
| | | // 视高 km |
| | | let alt=( |
| | | Viewer.camera.positionCartographic.height/1000 |
| | | ).toFixed(2); |
| | | // 方位角 |
| | | let heading=Cesium.Math.toDegrees( |
| | | Viewer.camera.heading |
| | | ).toFixed(2); |
| | | // 俯仰角 |
| | | let pitch=Cesium.Math.toDegrees(Viewer.camera.pitch).toFixed( |
| | | 2 |
| | | ); |
| | | // 翻滚角 |
| | | let roll=Cesium.Math.toDegrees(Viewer.camera.roll).toFixed(2); |
| | | // 级别 |
| | | let level=0; |
| | | let tileRender=Viewer.scene._globe._surface._tilesToRender; |
| | | if(tileRender&&tileRender.length>0) { |
| | | level=Viewer.scene._globe._surface._tilesToRender[0]._level; |
| | | } |
| | | // let str = `级数:${level} 视高:${alt}km 方位角:${heading}° 俯仰角:${pitch}° 翻滚角:${roll}°`; |
| | | |
| | | that.showFlyimg=pitch<-60? true:false; |
| | | // console.log(that.showFlyimg); |
| | | }); |
| | | }, |
| | | init3DMap () { |
| | | var webKey="94a34772eb88317fcbf8428e10448561"; |
| | | //地图初始化 |
| | |
| | | window.terrainFlag='MPT' |
| | | window.elevationTool=new SmartEarth.ElevationTool(window.sgworld); |
| | | elevationTool.setContourColor("#F1D487"); |
| | | this.ViewerCameraBack(); |
| | | }, |
| | | //dem切换 |
| | | changeTerrainLayer () { |
| | |
| | | // color: white !important; |
| | | // border: 1px solid rgba(255, 255, 255, 0.2) !important; |
| | | // } |
| | | .imgbox { |
| | | position: absolute; |
| | | /* background-color: #fff; */ |
| | | /* opacity: 0.2;. */ |
| | | /* top:50px; */ |
| | | width: 100%; |
| | | height: 400px; |
| | | z-index: 9; |
| | | top: 0px; |
| | | } |
| | | img { |
| | | width: 100%; |
| | | height: 100%; |
| | | -webkit-user-drag: none; |
| | | } |
| | | </style> |
| | |
| | | nodeName, |
| | | ]"></My-bread> |
| | | <el-divider /> |
| | | <div class="menuBox"> |
| | | <div class="menuTitle"> |
| | | <div> |
| | | <el-input size="small" |
| | | prefix-icon="el-icon-search"></el-input> |
| | | </div> |
| | | <div> |
| | | <el-button type="success" |
| | | size="small" |
| | | @click="handlerInsert">添加</el-button> |
| | | <el-button type="danger" |
| | | size="small" |
| | | @click="handlerDel">删除</el-button> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="menuContent"> |
| | | |
| | | <el-table :data="tableData" |
| | | style="width: 100%;height:calc(100% - 1px); " |
| | | @selection-change="handleSelectionChange"> |
| | | <el-table-column prop="name" |
| | | align="center" |
| | | label="名称"> |
| | | </el-table-column> |
| | | <el-table-column prop="coord" |
| | | align="center" |
| | | label="链路"> |
| | | </el-table-column> |
| | | <el-table-column prop="types" |
| | | align="center" |
| | | label="链接站点"> |
| | | </el-table-column> |
| | | <el-table-column prop="bak" |
| | | align="center" |
| | | label="链路状态"> |
| | | </el-table-column> |
| | | <el-table-column label="操作"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" |
| | | plain |
| | | type="warning" |
| | | @click="handleEdit(scope.$index, scope.row)">编辑</el-button> |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | </div> |
| | | <div class="menupage"> |
| | | <el-pagination @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="listData.pageIndex" |
| | | :page-sizes="[100, 200, 300, 400]" |
| | | :page-size="listData.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="listData.count"></el-pagination> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <el-dialog :title="title" |
| | | :visible.sync="dialogVisible" |
| | | width="50%" |
| | | :before-close="handleClose"> |
| | | <el-form :model="editFrom" |
| | | label-width="80px"> |
| | | <el-form-item label="名称"> |
| | | <el-input v-model="editFrom.name" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链路"> |
| | | <el-input v-model="editFrom.coord" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入位置"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链接站点"> |
| | | <el-input v-model="editFrom.coord" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入位置"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链路状态"> |
| | | <el-input v-model="editFrom.bak" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入备注"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" |
| | | class="dialog-footer"> |
| | | <el-button size="small" |
| | | @click="setSubMite">取 消</el-button> |
| | | <el-button type="primary" |
| | | size="small" |
| | | @click="handleClose">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | |
| | | </template> |
| | |
| | | formLabelWidth: '70px', |
| | | pid: null, |
| | | nodeName: null, |
| | | listData: { |
| | | pageIndex: 1, |
| | | pageSize: 100, |
| | | count: 0, |
| | | }, |
| | | tableData: [ |
| | | |
| | | ], |
| | | options: [ |
| | | { |
| | | name: '指挥所通信枢纽', |
| | | val: "t1" |
| | | },{ |
| | | name: '干线通讯枢纽', |
| | | val: "t2" |
| | | },{ |
| | | name: '辅助通讯枢纽', |
| | | val: "t3" |
| | | } |
| | | ], |
| | | multipleSelection: [], |
| | | |
| | | dialogVisible: false, |
| | | title: "", |
| | | editFrom: { |
| | | types: "", |
| | | } |
| | | }; |
| | | }, |
| | | created () { }, |
| | |
| | | this.getTreeData(); |
| | | //左右拖動 |
| | | this.dragControllerDiv(); |
| | | this.setTableDataStart(); |
| | | }, |
| | | methods: { |
| | | handleClose () { |
| | | this.title=""; |
| | | this.dialogVisible=false; |
| | | this.editFrom.types=this.options[0].val |
| | | }, |
| | | setSubMite () { |
| | | this.handleClose(); |
| | | }, |
| | | handlerInsert () { |
| | | this.title="新增"; |
| | | this.dialogVisible=true; |
| | | }, |
| | | handleEdit (index,row) { |
| | | this.editFrom=JSON.parse(JSON.stringify(row)); |
| | | this.title="修改"; |
| | | this.dialogVisible=true; |
| | | }, |
| | | handlerDel () { |
| | | |
| | | }, |
| | | formatter (row,column) { |
| | | var obj=this.options.filter(res => { |
| | | if(row.types==res.val) { |
| | | return res; |
| | | } |
| | | }); |
| | | return obj[0].name |
| | | }, |
| | | setTableDataStart () { |
| | | this.tableData=[{ |
| | | name: 'XXX链路1', |
| | | types: ' ', |
| | | coord: "", |
| | | bak: "" |
| | | },{ |
| | | name: 'XXX链路2', |
| | | types: ' ', |
| | | coord: "", |
| | | bak: "", |
| | | }] |
| | | this.listData.count=this.tableData.length; |
| | | this.handleClose(); |
| | | }, |
| | | handleSelectionChange (res) { |
| | | this.multipleSelection=res; |
| | | }, |
| | | handleSizeChange (val) { |
| | | console.log(`每页 ${val} 条`); |
| | | this.listData.pageSize.val; |
| | | }, |
| | | handleCurrentChange (val) { |
| | | console.log(`当前页: ${val}`); |
| | | this.listData.pageIndex=val; |
| | | }, |
| | | //左右拖動 |
| | | dragControllerDiv: function() { |
| | | var resize=document.getElementsByClassName('resize'); |
| | |
| | | }; |
| | | </script> |
| | | |
| | | |
| | | <style lang="less" scoped> |
| | | .menuBox { |
| | | width: calc(100% - 20px); |
| | | height: calc(95% - 20px); |
| | | margin: 10px; |
| | | |
| | | display: flex; |
| | | position: relative; |
| | | flex-direction: column; |
| | | .menuTitle { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 10px; |
| | | } |
| | | .menuContent { |
| | | flex: 1; |
| | | } |
| | | .menupage { |
| | | margin-top: 10px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | nodeName, |
| | | ]"></My-bread> |
| | | <el-divider /> |
| | | <div class="menuBox"> |
| | | <div class="menuTitle"> |
| | | <div> |
| | | <el-input size="small" |
| | | prefix-icon="el-icon-search"></el-input> |
| | | </div> |
| | | <div> |
| | | <el-button type="success" |
| | | size="small" |
| | | @click="handlerInsert">添加</el-button> |
| | | <el-button type="danger" |
| | | size="small" |
| | | @click="handlerDel">删除</el-button> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="menuContent"> |
| | | |
| | | <el-table :data="tableData" |
| | | style="width: 100%;height:calc(100% - 1px); " |
| | | @selection-change="handleSelectionChange"> |
| | | <el-table-column prop="name" |
| | | align="center" |
| | | label="名称"> |
| | | </el-table-column> |
| | | <el-table-column prop="coord" |
| | | align="center" |
| | | label="位置"> |
| | | </el-table-column> |
| | | <el-table-column prop="types" |
| | | align="center" |
| | | label="类型" |
| | | :formatter="formatter"> |
| | | </el-table-column> |
| | | <el-table-column prop="bak" |
| | | align="center" |
| | | label="备注"> |
| | | </el-table-column> |
| | | <el-table-column label="操作"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" |
| | | plain |
| | | type="warning" |
| | | @click="handleEdit(scope.$index, scope.row)">编辑</el-button> |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | </div> |
| | | <div class="menupage"> |
| | | <el-pagination @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="listData.pageIndex" |
| | | :page-sizes="[100, 200, 300, 400]" |
| | | :page-size="listData.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="listData.count"></el-pagination> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-dialog :title="title" |
| | | :visible.sync="dialogVisible" |
| | | width="50%" |
| | | :before-close="handleClose"> |
| | | <el-form :model="editFrom" |
| | | label-width="80px"> |
| | | <el-form-item label="名称"> |
| | | <el-input v-model="editFrom.name" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="位置"> |
| | | <el-input v-model="editFrom.coord" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入位置"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="类型"> |
| | | <el-select v-model="editFrom.types" |
| | | style="width:calc(100% - 100px)" |
| | | placeholder=""> |
| | | <el-option v-for="item in options" |
| | | :key="item.val" |
| | | :label="item.name" |
| | | :value="item.val"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="备注"> |
| | | <el-input v-model="editFrom.bak" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入备注"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" |
| | | class="dialog-footer"> |
| | | <el-button size="small" |
| | | @click="setSubMite">取 消</el-button> |
| | | <el-button type="primary" |
| | | size="small" |
| | | @click="handleClose">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | </div> |
| | | |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import { selectMenuRecursive,queryMenuTree,sign_insertOpLog } from '@/api/api.js' |
| | | import MyBread from "@/components/MyBread.vue"; |
| | | import customElMenu from "@/components/customElMenu.vue"; |
| | |
| | | formLabelWidth: '70px', |
| | | pid: null, |
| | | nodeName: null, |
| | | listData: { |
| | | pageIndex: 1, |
| | | pageSize: 100, |
| | | count: 0, |
| | | }, |
| | | tableData: [ |
| | | |
| | | ], |
| | | options: [ |
| | | { |
| | | name: '指挥所通信枢纽', |
| | | val: "t1" |
| | | },{ |
| | | name: '干线通讯枢纽', |
| | | val: "t2" |
| | | },{ |
| | | name: '辅助通讯枢纽', |
| | | val: "t3" |
| | | } |
| | | ], |
| | | multipleSelection: [], |
| | | |
| | | dialogVisible: false, |
| | | title: "", |
| | | editFrom: { |
| | | types: "", |
| | | } |
| | | }; |
| | | }, |
| | | created () { }, |
| | |
| | | this.getTreeData(); |
| | | //左右拖動 |
| | | this.dragControllerDiv(); |
| | | this.setTableDataStart(); |
| | | }, |
| | | methods: { |
| | | handleClose () { |
| | | this.title=""; |
| | | this.dialogVisible=false; |
| | | this.editFrom.types=this.options[0].val |
| | | }, |
| | | setSubMite () { |
| | | this.handleClose(); |
| | | }, |
| | | handlerInsert () { |
| | | this.title="新增"; |
| | | this.dialogVisible=true; |
| | | }, |
| | | handleEdit (index,row) { |
| | | this.editFrom=JSON.parse(JSON.stringify(row)); |
| | | this.title="修改"; |
| | | this.dialogVisible=true; |
| | | }, |
| | | handlerDel () { |
| | | |
| | | }, |
| | | formatter (row,column) { |
| | | var obj=this.options.filter(res => { |
| | | if(row.types==res.val) { |
| | | return res; |
| | | } |
| | | }); |
| | | return obj[0].name |
| | | }, |
| | | setTableDataStart () { |
| | | this.tableData=[{ |
| | | name: 'XXX枢纽1', |
| | | types: 't1', |
| | | coord: "", |
| | | bak: "" |
| | | },{ |
| | | name: 'XXX枢纽2', |
| | | types: 't2', |
| | | coord: "", |
| | | bak: "", |
| | | }] |
| | | this.listData.count=this.tableData.length; |
| | | this.handleClose(); |
| | | }, |
| | | handleSelectionChange (res) { |
| | | this.multipleSelection=res; |
| | | }, |
| | | handleSizeChange (val) { |
| | | console.log(`每页 ${val} 条`); |
| | | this.listData.pageSize.val; |
| | | }, |
| | | handleCurrentChange (val) { |
| | | console.log(`当前页: ${val}`); |
| | | this.listData.pageIndex=val; |
| | | }, |
| | | //左右拖動 |
| | | dragControllerDiv: function() { |
| | | var resize=document.getElementsByClassName('resize'); |
| | |
| | | return value.type==1; |
| | | }); |
| | | this.menuList=this.treeData(menuList); |
| | | console.log(this.menuList) |
| | | |
| | | this.m1=this.menuList[0].cnName; |
| | | this.setViewController(this.menuList[0]); |
| | | this.nodeName=this.m1 |
| | |
| | | treeData (source) { |
| | | let cloneData=JSON.parse(JSON.stringify(source)); // 对源数据深度克隆 |
| | | var that=this; |
| | | // console.log(cloneData); |
| | | |
| | | if(cloneData.length!=0) { |
| | | return cloneData.filter((father) => { |
| | | // 循环所有项 |
| | |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="less" scoped> |
| | | .menuBox { |
| | | width: calc(100% - 20px); |
| | | height: calc(95% - 20px); |
| | | margin: 10px; |
| | | |
| | | display: flex; |
| | | position: relative; |
| | | flex-direction: column; |
| | | .menuTitle { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 10px; |
| | | } |
| | | .menuContent { |
| | | flex: 1; |
| | | } |
| | | .menupage { |
| | | margin-top: 10px; |
| | | } |
| | | } |
| | | </style> |
| | | |
| | | |
| | |
| | | nodeName, |
| | | ]"></My-bread> |
| | | <el-divider /> |
| | | <div class="menuBox"> |
| | | <div class="menuTitle"> |
| | | <div> |
| | | <el-input size="small" |
| | | prefix-icon="el-icon-search"></el-input> |
| | | </div> |
| | | <div> |
| | | <el-button type="success" |
| | | size="small" |
| | | @click="handlerInsert">添加</el-button> |
| | | <el-button type="danger" |
| | | size="small" |
| | | @click="handlerDel">删除</el-button> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="menuContent"> |
| | | |
| | | <el-table :data="tableData" |
| | | style="width: 100%;height:calc(100% - 1px); " |
| | | @selection-change="handleSelectionChange"> |
| | | <el-table-column prop="name" |
| | | align="center" |
| | | label="名称"> |
| | | </el-table-column> |
| | | <el-table-column prop="coord" |
| | | align="center" |
| | | label="链路"> |
| | | </el-table-column> |
| | | <el-table-column prop="types" |
| | | align="center" |
| | | label="链接站点"> |
| | | </el-table-column> |
| | | <el-table-column prop="bak" |
| | | align="center" |
| | | label="链路状态"> |
| | | </el-table-column> |
| | | <el-table-column label="操作"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" |
| | | plain |
| | | type="warning" |
| | | @click="handleEdit(scope.$index, scope.row)">编辑</el-button> |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | </div> |
| | | <div class="menupage"> |
| | | <el-pagination @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="listData.pageIndex" |
| | | :page-sizes="[100, 200, 300, 400]" |
| | | :page-size="listData.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="listData.count"></el-pagination> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <el-dialog :title="title" |
| | | :visible.sync="dialogVisible" |
| | | width="50%" |
| | | :before-close="handleClose"> |
| | | <el-form :model="editFrom" |
| | | label-width="80px"> |
| | | <el-form-item label="名称"> |
| | | <el-input v-model="editFrom.name" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链路"> |
| | | <el-input v-model="editFrom.coord" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入位置"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链接站点"> |
| | | <el-input v-model="editFrom.coord" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入位置"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链路状态"> |
| | | <el-input v-model="editFrom.bak" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入备注"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" |
| | | class="dialog-footer"> |
| | | <el-button size="small" |
| | | @click="setSubMite">取 消</el-button> |
| | | <el-button type="primary" |
| | | size="small" |
| | | @click="handleClose">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | |
| | | </template> |
| | |
| | | formLabelWidth: '70px', |
| | | pid: null, |
| | | nodeName: null, |
| | | listData: { |
| | | pageIndex: 1, |
| | | pageSize: 100, |
| | | count: 0, |
| | | }, |
| | | tableData: [ |
| | | |
| | | ], |
| | | options: [ |
| | | { |
| | | name: '指挥所通信枢纽', |
| | | val: "t1" |
| | | },{ |
| | | name: '干线通讯枢纽', |
| | | val: "t2" |
| | | },{ |
| | | name: '辅助通讯枢纽', |
| | | val: "t3" |
| | | } |
| | | ], |
| | | multipleSelection: [], |
| | | |
| | | dialogVisible: false, |
| | | title: "", |
| | | editFrom: { |
| | | types: "", |
| | | } |
| | | }; |
| | | }, |
| | | created () { }, |
| | |
| | | this.getTreeData(); |
| | | //左右拖動 |
| | | this.dragControllerDiv(); |
| | | this.setTableDataStart(); |
| | | }, |
| | | methods: { |
| | | handleClose () { |
| | | this.title=""; |
| | | this.dialogVisible=false; |
| | | this.editFrom.types=this.options[0].val |
| | | }, |
| | | setSubMite () { |
| | | this.handleClose(); |
| | | }, |
| | | handlerInsert () { |
| | | this.title="新增"; |
| | | this.dialogVisible=true; |
| | | }, |
| | | handleEdit (index,row) { |
| | | this.editFrom=JSON.parse(JSON.stringify(row)); |
| | | this.title="修改"; |
| | | this.dialogVisible=true; |
| | | }, |
| | | handlerDel () { |
| | | |
| | | }, |
| | | formatter (row,column) { |
| | | var obj=this.options.filter(res => { |
| | | if(row.types==res.val) { |
| | | return res; |
| | | } |
| | | }); |
| | | return obj[0].name |
| | | }, |
| | | setTableDataStart () { |
| | | this.tableData=[{ |
| | | name: 'XXX链路1', |
| | | types: ' ', |
| | | coord: "", |
| | | bak: "" |
| | | },{ |
| | | name: 'XXX链路2', |
| | | types: ' ', |
| | | coord: "", |
| | | bak: "", |
| | | }] |
| | | this.listData.count=this.tableData.length; |
| | | this.handleClose(); |
| | | }, |
| | | handleSelectionChange (res) { |
| | | this.multipleSelection=res; |
| | | }, |
| | | handleSizeChange (val) { |
| | | console.log(`每页 ${val} 条`); |
| | | this.listData.pageSize.val; |
| | | }, |
| | | handleCurrentChange (val) { |
| | | console.log(`当前页: ${val}`); |
| | | this.listData.pageIndex=val; |
| | | }, |
| | | //左右拖動 |
| | | dragControllerDiv: function() { |
| | | var resize=document.getElementsByClassName('resize'); |
| | |
| | | }; |
| | | </script> |
| | | |
| | | |
| | | <style lang="less" scoped> |
| | | .menuBox { |
| | | width: calc(100% - 20px); |
| | | height: calc(95% - 20px); |
| | | margin: 10px; |
| | | |
| | | display: flex; |
| | | position: relative; |
| | | flex-direction: column; |
| | | .menuTitle { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 10px; |
| | | } |
| | | .menuContent { |
| | | flex: 1; |
| | | } |
| | | .menupage { |
| | | margin-top: 10px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | nodeName, |
| | | ]"></My-bread> |
| | | <el-divider /> |
| | | <div class="menuBox"> |
| | | <div class="menuTitle"> |
| | | <div> |
| | | <el-input size="small" |
| | | prefix-icon="el-icon-search"></el-input> |
| | | </div> |
| | | <div> |
| | | <el-button type="success" |
| | | size="small" |
| | | @click="handlerInsert">添加</el-button> |
| | | <el-button type="danger" |
| | | size="small" |
| | | @click="handlerDel">删除</el-button> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="menuContent"> |
| | | |
| | | <el-table :data="tableData" |
| | | style="width: 100%;height:calc(100% - 1px); " |
| | | @selection-change="handleSelectionChange"> |
| | | <el-table-column prop="name" |
| | | align="center" |
| | | label="名称"> |
| | | </el-table-column> |
| | | <el-table-column prop="coord" |
| | | align="center" |
| | | label="链路"> |
| | | </el-table-column> |
| | | <el-table-column prop="types" |
| | | align="center" |
| | | label="链接站点"> |
| | | </el-table-column> |
| | | <el-table-column prop="bak" |
| | | align="center" |
| | | label="链路状态"> |
| | | </el-table-column> |
| | | <el-table-column label="操作"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" |
| | | plain |
| | | type="warning" |
| | | @click="handleEdit(scope.$index, scope.row)">编辑</el-button> |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | </div> |
| | | <div class="menupage"> |
| | | <el-pagination @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="listData.pageIndex" |
| | | :page-sizes="[100, 200, 300, 400]" |
| | | :page-size="listData.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="listData.count"></el-pagination> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <el-dialog :title="title" |
| | | :visible.sync="dialogVisible" |
| | | width="50%" |
| | | :before-close="handleClose"> |
| | | <el-form :model="editFrom" |
| | | label-width="80px"> |
| | | <el-form-item label="名称"> |
| | | <el-input v-model="editFrom.name" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链路"> |
| | | <el-input v-model="editFrom.coord" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入位置"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链接站点"> |
| | | <el-input v-model="editFrom.coord" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入位置"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链路状态"> |
| | | <el-input v-model="editFrom.bak" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入备注"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" |
| | | class="dialog-footer"> |
| | | <el-button size="small" |
| | | @click="setSubMite">取 消</el-button> |
| | | <el-button type="primary" |
| | | size="small" |
| | | @click="handleClose">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | |
| | | </template> |
| | |
| | | formLabelWidth: '70px', |
| | | pid: null, |
| | | nodeName: null, |
| | | listData: { |
| | | pageIndex: 1, |
| | | pageSize: 100, |
| | | count: 0, |
| | | }, |
| | | tableData: [ |
| | | |
| | | ], |
| | | options: [ |
| | | { |
| | | name: '指挥所通信枢纽', |
| | | val: "t1" |
| | | },{ |
| | | name: '干线通讯枢纽', |
| | | val: "t2" |
| | | },{ |
| | | name: '辅助通讯枢纽', |
| | | val: "t3" |
| | | } |
| | | ], |
| | | multipleSelection: [], |
| | | |
| | | dialogVisible: false, |
| | | title: "", |
| | | editFrom: { |
| | | types: "", |
| | | } |
| | | }; |
| | | }, |
| | | created () { }, |
| | |
| | | this.getTreeData(); |
| | | //左右拖動 |
| | | this.dragControllerDiv(); |
| | | this.setTableDataStart(); |
| | | }, |
| | | methods: { |
| | | handleClose () { |
| | | this.title=""; |
| | | this.dialogVisible=false; |
| | | this.editFrom.types=this.options[0].val |
| | | }, |
| | | setSubMite () { |
| | | this.handleClose(); |
| | | }, |
| | | handlerInsert () { |
| | | this.title="新增"; |
| | | this.dialogVisible=true; |
| | | }, |
| | | handleEdit (index,row) { |
| | | this.editFrom=JSON.parse(JSON.stringify(row)); |
| | | this.title="修改"; |
| | | this.dialogVisible=true; |
| | | }, |
| | | handlerDel () { |
| | | |
| | | }, |
| | | formatter (row,column) { |
| | | var obj=this.options.filter(res => { |
| | | if(row.types==res.val) { |
| | | return res; |
| | | } |
| | | }); |
| | | return obj[0].name |
| | | }, |
| | | setTableDataStart () { |
| | | this.tableData=[{ |
| | | name: 'XXX链路1', |
| | | types: ' ', |
| | | coord: "", |
| | | bak: "" |
| | | },{ |
| | | name: 'XXX链路2', |
| | | types: ' ', |
| | | coord: "", |
| | | bak: "", |
| | | }] |
| | | this.listData.count=this.tableData.length; |
| | | this.handleClose(); |
| | | }, |
| | | handleSelectionChange (res) { |
| | | this.multipleSelection=res; |
| | | }, |
| | | handleSizeChange (val) { |
| | | console.log(`每页 ${val} 条`); |
| | | this.listData.pageSize.val; |
| | | }, |
| | | handleCurrentChange (val) { |
| | | console.log(`当前页: ${val}`); |
| | | this.listData.pageIndex=val; |
| | | }, |
| | | //左右拖動 |
| | | dragControllerDiv: function() { |
| | | var resize=document.getElementsByClassName('resize'); |
| | |
| | | }; |
| | | </script> |
| | | |
| | | |
| | | <style lang="less" scoped> |
| | | .menuBox { |
| | | width: calc(100% - 20px); |
| | | height: calc(95% - 20px); |
| | | margin: 10px; |
| | | |
| | | display: flex; |
| | | position: relative; |
| | | flex-direction: column; |
| | | .menuTitle { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 10px; |
| | | } |
| | | .menuContent { |
| | | flex: 1; |
| | | } |
| | | .menupage { |
| | | margin-top: 10px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <div class="dictionaryBox"> |
| | | <My-bread :list="[ |
| | | `通信效能评估`, |
| | | `通信毁伤影响评估`, |
| | | `通信毁伤影响评估` |
| | | |
| | | ]"></My-bread> |
| | | <el-divider /> |
| | | <div class="mainBox"> |
| | | <div class="menuBox"> |
| | | <div class="menuTitle"> |
| | | <div> |
| | | <el-input size="small" |
| | | prefix-icon="el-icon-search"></el-input> |
| | | </div> |
| | | <div> |
| | | <el-button type="success" |
| | | size="small" |
| | | @click="handlerInsert">添加</el-button> |
| | | <el-button type="danger" |
| | | size="small" |
| | | @click="handlerDel">删除</el-button> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="menuContent"> |
| | | |
| | | <el-table :data="tableData" |
| | | style="width: 100%;height:calc(100% - 1px); " |
| | | @selection-change="handleSelectionChange"> |
| | | <el-table-column prop="name" |
| | | align="center" |
| | | label="名称"> |
| | | </el-table-column> |
| | | <el-table-column prop="coord" |
| | | align="center" |
| | | label="链路"> |
| | | </el-table-column> |
| | | <el-table-column prop="types" |
| | | align="center" |
| | | label="链接站点"> |
| | | </el-table-column> |
| | | <el-table-column prop="bak" |
| | | align="center" |
| | | label="链路状态"> |
| | | </el-table-column> |
| | | <el-table-column label="操作"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" |
| | | plain |
| | | type="warning" |
| | | @click="handleEdit(scope.$index, scope.row)">编辑</el-button> |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | </div> |
| | | <div class="menupage"> |
| | | <el-pagination @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="listData.pageIndex" |
| | | :page-sizes="[100, 200, 300, 400]" |
| | | :page-size="listData.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="listData.count"></el-pagination> |
| | | |
| | | </div> |
| | | </div> |
| | | <el-dialog :title="title" |
| | | :visible.sync="dialogVisible" |
| | | width="50%" |
| | | :before-close="handleClose"> |
| | | <el-form :model="editFrom" |
| | | label-width="80px"> |
| | | <el-form-item label="名称"> |
| | | <el-input v-model="editFrom.name" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链路"> |
| | | <el-input v-model="editFrom.coord" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入位置"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链接站点"> |
| | | <el-input v-model="editFrom.coord" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入位置"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链路状态"> |
| | | <el-input v-model="editFrom.bak" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入备注"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" |
| | | class="dialog-footer"> |
| | | <el-button size="small" |
| | | @click="setSubMite">取 消</el-button> |
| | | <el-button type="primary" |
| | | size="small" |
| | | @click="handleClose">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | components: { MyBread }, |
| | | data () { |
| | | return { |
| | | listData: { |
| | | pageIndex: 1, |
| | | pageSize: 100, |
| | | count: 0, |
| | | }, |
| | | tableData: [ |
| | | |
| | | ], |
| | | options: [ |
| | | { |
| | | name: '指挥所通信枢纽', |
| | | val: "t1" |
| | | },{ |
| | | name: '干线通讯枢纽', |
| | | val: "t2" |
| | | },{ |
| | | name: '辅助通讯枢纽', |
| | | val: "t3" |
| | | } |
| | | ], |
| | | multipleSelection: [], |
| | | |
| | | dialogVisible: false, |
| | | title: "", |
| | | editFrom: { |
| | | types: "", |
| | | } |
| | | }; |
| | | }, |
| | | watch: { |
| | | |
| | | }, |
| | | created () { |
| | | |
| | | this.setTableDataStart(); |
| | | }, |
| | | methods () { |
| | | methods: { |
| | | handleClose () { |
| | | this.title=""; |
| | | this.dialogVisible=false; |
| | | this.editFrom.types=this.options[0].val |
| | | }, |
| | | setSubMite () { |
| | | this.handleClose(); |
| | | }, |
| | | handlerInsert () { |
| | | this.title="新增"; |
| | | this.dialogVisible=true; |
| | | }, |
| | | handleEdit (index,row) { |
| | | this.editFrom=JSON.parse(JSON.stringify(row)); |
| | | this.title="修改"; |
| | | this.dialogVisible=true; |
| | | }, |
| | | handlerDel () { |
| | | |
| | | }, |
| | | formatter (row,column) { |
| | | var obj=this.options.filter(res => { |
| | | if(row.types==res.val) { |
| | | return res; |
| | | } |
| | | }); |
| | | return obj[0].name |
| | | }, |
| | | setTableDataStart () { |
| | | this.tableData=[{ |
| | | name: 'XXX链路1', |
| | | types: ' ', |
| | | coord: "", |
| | | bak: "" |
| | | },{ |
| | | name: 'XXX链路2', |
| | | types: ' ', |
| | | coord: "", |
| | | bak: "", |
| | | }] |
| | | this.listData.count=this.tableData.length; |
| | | this.handleClose(); |
| | | }, |
| | | handleSelectionChange (res) { |
| | | this.multipleSelection=res; |
| | | }, |
| | | handleSizeChange (val) { |
| | | console.log(`每页 ${val} 条`); |
| | | this.listData.pageSize.val; |
| | | }, |
| | | handleCurrentChange (val) { |
| | | console.log(`当前页: ${val}`); |
| | | this.listData.pageIndex=val; |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | |
| | | margin: 10px; |
| | | border-radius: 5px; |
| | | } |
| | | .menuBox { |
| | | width: calc(100% - 20px); |
| | | height: calc(95% - 20px); |
| | | margin: 10px; |
| | | |
| | | display: flex; |
| | | position: relative; |
| | | flex-direction: column; |
| | | .menuTitle { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 10px; |
| | | } |
| | | .menuContent { |
| | | flex: 1; |
| | | } |
| | | .menupage { |
| | | margin-top: 10px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | |
| | | <template> |
| | | <div class="dictionaryBox"> |
| | | <My-bread :list="[ |
| | | <iframe :src="url" |
| | | width="100%" |
| | | height="100%"></iframe> |
| | | <!-- <My-bread :list="[ |
| | | `通信方案筹划`, |
| | | `方案拟制`, |
| | | `通信方案拟制`, |
| | | ]"></My-bread> |
| | | <el-divider /> |
| | | <div class="mainBox"> |
| | | <div class="menuBox"> |
| | | <div class="menuTitle"> |
| | | <div> |
| | | <el-input size="small" |
| | | prefix-icon="el-icon-search"></el-input> |
| | | </div> |
| | | <div> |
| | | <el-button type="success" |
| | | size="small" |
| | | @click="handlerInsert">添加</el-button> |
| | | <el-button type="danger" |
| | | size="small" |
| | | @click="handlerDel">删除</el-button> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="menuContent"> |
| | | |
| | | <el-table :data="tableData" |
| | | style="width: 100%;height:calc(100% - 1px); " |
| | | @selection-change="handleSelectionChange"> |
| | | <el-table-column prop="name" |
| | | align="center" |
| | | label="名称"> |
| | | </el-table-column> |
| | | <el-table-column prop="coord" |
| | | align="center" |
| | | label="链路"> |
| | | </el-table-column> |
| | | <el-table-column prop="types" |
| | | align="center" |
| | | label="链接站点"> |
| | | </el-table-column> |
| | | <el-table-column prop="bak" |
| | | align="center" |
| | | label="链路状态"> |
| | | </el-table-column> |
| | | <el-table-column label="操作"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" |
| | | plain |
| | | type="warning" |
| | | @click="handleEdit(scope.$index, scope.row)">编辑</el-button> |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | </div> |
| | | <div class="menupage"> |
| | | <el-pagination @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="listData.pageIndex" |
| | | :page-sizes="[100, 200, 300, 400]" |
| | | :page-size="listData.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="listData.count"></el-pagination> |
| | | |
| | | </div> |
| | | </div> |
| | | <el-dialog :title="title" |
| | | :visible.sync="dialogVisible" |
| | | width="50%" |
| | | :before-close="handleClose"> |
| | | <el-form :model="editFrom" |
| | | label-width="80px"> |
| | | <el-form-item label="名称"> |
| | | <el-input v-model="editFrom.name" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链路"> |
| | | <el-input v-model="editFrom.coord" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入位置"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链接站点"> |
| | | <el-input v-model="editFrom.coord" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入位置"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链路状态"> |
| | | <el-input v-model="editFrom.bak" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入备注"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" |
| | | class="dialog-footer"> |
| | | <el-button size="small" |
| | | @click="setSubMite">取 消</el-button> |
| | | <el-button type="primary" |
| | | size="small" |
| | | @click="handleClose">确 定</el-button> |
| | | </span> |
| | | </el-dialog> --> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | components: { MyBread }, |
| | | data () { |
| | | return { |
| | | listData: { |
| | | pageIndex: 1, |
| | | pageSize: 100, |
| | | count: 0, |
| | | }, |
| | | tableData: [ |
| | | |
| | | ], |
| | | options: [ |
| | | { |
| | | name: '指挥所通信枢纽', |
| | | val: "t1" |
| | | },{ |
| | | name: '干线通讯枢纽', |
| | | val: "t2" |
| | | },{ |
| | | name: '辅助通讯枢纽', |
| | | val: "t3" |
| | | } |
| | | ], |
| | | multipleSelection: [], |
| | | |
| | | dialogVisible: false, |
| | | title: "", |
| | | editFrom: { |
| | | types: "", |
| | | }, |
| | | url: null, |
| | | }; |
| | | }, |
| | | watch: { |
| | | |
| | | }, |
| | | created () { |
| | | |
| | | this.url=thinkManageurl; |
| | | console.log(this.ur); |
| | | this.setTableDataStart(); |
| | | }, |
| | | methods () { |
| | | methods: { |
| | | handleClose () { |
| | | this.title=""; |
| | | this.dialogVisible=false; |
| | | this.editFrom.types=this.options[0].val |
| | | }, |
| | | setSubMite () { |
| | | this.handleClose(); |
| | | }, |
| | | handlerInsert () { |
| | | this.title="新增"; |
| | | this.dialogVisible=true; |
| | | }, |
| | | handleEdit (index,row) { |
| | | this.editFrom=JSON.parse(JSON.stringify(row)); |
| | | this.title="修改"; |
| | | this.dialogVisible=true; |
| | | }, |
| | | handlerDel () { |
| | | |
| | | }, |
| | | formatter (row,column) { |
| | | var obj=this.options.filter(res => { |
| | | if(row.types==res.val) { |
| | | return res; |
| | | } |
| | | }); |
| | | return obj[0].name |
| | | }, |
| | | setTableDataStart () { |
| | | this.tableData=[{ |
| | | name: 'XXX链路1', |
| | | types: ' ', |
| | | coord: "", |
| | | bak: "" |
| | | },{ |
| | | name: 'XXX链路2', |
| | | types: ' ', |
| | | coord: "", |
| | | bak: "", |
| | | }] |
| | | this.listData.count=this.tableData.length; |
| | | this.handleClose(); |
| | | }, |
| | | handleSelectionChange (res) { |
| | | this.multipleSelection=res; |
| | | }, |
| | | handleSizeChange (val) { |
| | | console.log(`每页 ${val} 条`); |
| | | this.listData.pageSize.val; |
| | | }, |
| | | handleCurrentChange (val) { |
| | | console.log(`当前页: ${val}`); |
| | | this.listData.pageIndex=val; |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | <style lang="less" scoped> |
| | | //@import url(); 引入公共css类 |
| | | .dictionaryBox { |
| | | height: calc(100% - 40px); |
| | | width: calc(100% - 40px); |
| | | padding: 10px; |
| | | height: calc(100% - 20px); |
| | | width: calc(100% - 20px); |
| | | // padding: 10px; |
| | | background: #f4f8ff; |
| | | margin: 10px; |
| | | border-radius: 5px; |
| | | } |
| | | .menuBox { |
| | | width: calc(100% - 20px); |
| | | height: calc(95% - 20px); |
| | | margin: 10px; |
| | | |
| | | display: flex; |
| | | position: relative; |
| | | flex-direction: column; |
| | | .menuTitle { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 10px; |
| | | } |
| | | .menuContent { |
| | | flex: 1; |
| | | } |
| | | .menupage { |
| | | margin-top: 10px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | `方案讲评`, |
| | | ]"></My-bread> |
| | | <el-divider /> |
| | | <div class="mainBox"> |
| | | <div class="menuBox"> |
| | | <div class="menuTitle"> |
| | | <div> |
| | | <el-input size="small" |
| | | prefix-icon="el-icon-search"></el-input> |
| | | </div> |
| | | <div> |
| | | <el-button type="success" |
| | | size="small" |
| | | @click="handlerInsert">添加</el-button> |
| | | <el-button type="danger" |
| | | size="small" |
| | | @click="handlerDel">删除</el-button> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="menuContent"> |
| | | |
| | | <el-table :data="tableData" |
| | | style="width: 100%;height:calc(100% - 1px); " |
| | | @selection-change="handleSelectionChange"> |
| | | <el-table-column prop="name" |
| | | align="center" |
| | | label="名称"> |
| | | </el-table-column> |
| | | <el-table-column prop="coord" |
| | | align="center" |
| | | label="链路"> |
| | | </el-table-column> |
| | | <el-table-column prop="types" |
| | | align="center" |
| | | label="链接站点"> |
| | | </el-table-column> |
| | | <el-table-column prop="bak" |
| | | align="center" |
| | | label="链路状态"> |
| | | </el-table-column> |
| | | <el-table-column label="操作"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" |
| | | plain |
| | | type="warning" |
| | | @click="handleEdit(scope.$index, scope.row)">编辑</el-button> |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | </div> |
| | | <div class="menupage"> |
| | | <el-pagination @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="listData.pageIndex" |
| | | :page-sizes="[100, 200, 300, 400]" |
| | | :page-size="listData.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="listData.count"></el-pagination> |
| | | |
| | | </div> |
| | | </div> |
| | | <el-dialog :title="title" |
| | | :visible.sync="dialogVisible" |
| | | width="50%" |
| | | :before-close="handleClose"> |
| | | <el-form :model="editFrom" |
| | | label-width="80px"> |
| | | <el-form-item label="名称"> |
| | | <el-input v-model="editFrom.name" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链路"> |
| | | <el-input v-model="editFrom.coord" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入位置"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链接站点"> |
| | | <el-input v-model="editFrom.coord" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入位置"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链路状态"> |
| | | <el-input v-model="editFrom.bak" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入备注"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" |
| | | class="dialog-footer"> |
| | | <el-button size="small" |
| | | @click="setSubMite">取 消</el-button> |
| | | <el-button type="primary" |
| | | size="small" |
| | | @click="handleClose">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | components: { MyBread }, |
| | | data () { |
| | | return { |
| | | listData: { |
| | | pageIndex: 1, |
| | | pageSize: 100, |
| | | count: 0, |
| | | }, |
| | | tableData: [ |
| | | |
| | | ], |
| | | options: [ |
| | | { |
| | | name: '指挥所通信枢纽', |
| | | val: "t1" |
| | | },{ |
| | | name: '干线通讯枢纽', |
| | | val: "t2" |
| | | },{ |
| | | name: '辅助通讯枢纽', |
| | | val: "t3" |
| | | } |
| | | ], |
| | | multipleSelection: [], |
| | | |
| | | dialogVisible: false, |
| | | title: "", |
| | | editFrom: { |
| | | types: "", |
| | | } |
| | | }; |
| | | }, |
| | | watch: { |
| | | |
| | | }, |
| | | created () { |
| | | |
| | | this.setTableDataStart(); |
| | | }, |
| | | methods () { |
| | | methods: { |
| | | handleClose () { |
| | | this.title=""; |
| | | this.dialogVisible=false; |
| | | this.editFrom.types=this.options[0].val |
| | | }, |
| | | setSubMite () { |
| | | this.handleClose(); |
| | | }, |
| | | handlerInsert () { |
| | | this.title="新增"; |
| | | this.dialogVisible=true; |
| | | }, |
| | | handleEdit (index,row) { |
| | | this.editFrom=JSON.parse(JSON.stringify(row)); |
| | | this.title="修改"; |
| | | this.dialogVisible=true; |
| | | }, |
| | | handlerDel () { |
| | | |
| | | }, |
| | | formatter (row,column) { |
| | | var obj=this.options.filter(res => { |
| | | if(row.types==res.val) { |
| | | return res; |
| | | } |
| | | }); |
| | | return obj[0].name |
| | | }, |
| | | setTableDataStart () { |
| | | this.tableData=[{ |
| | | name: 'XXX链路1', |
| | | types: ' ', |
| | | coord: "", |
| | | bak: "" |
| | | },{ |
| | | name: 'XXX链路2', |
| | | types: ' ', |
| | | coord: "", |
| | | bak: "", |
| | | }] |
| | | this.listData.count=this.tableData.length; |
| | | this.handleClose(); |
| | | }, |
| | | handleSelectionChange (res) { |
| | | this.multipleSelection=res; |
| | | }, |
| | | handleSizeChange (val) { |
| | | console.log(`每页 ${val} 条`); |
| | | this.listData.pageSize.val; |
| | | }, |
| | | handleCurrentChange (val) { |
| | | console.log(`当前页: ${val}`); |
| | | this.listData.pageIndex=val; |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | |
| | | margin: 10px; |
| | | border-radius: 5px; |
| | | } |
| | | .menuBox { |
| | | width: calc(100% - 20px); |
| | | height: calc(95% - 20px); |
| | | margin: 10px; |
| | | |
| | | display: flex; |
| | | position: relative; |
| | | flex-direction: column; |
| | | .menuTitle { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 10px; |
| | | } |
| | | .menuContent { |
| | | flex: 1; |
| | | } |
| | | .menupage { |
| | | margin-top: 10px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | `仿真模型管理`, |
| | | ]"></My-bread> |
| | | <el-divider /> |
| | | <div class="mainBox"> |
| | | <div class="menuBox"> |
| | | <div class="menuTitle"> |
| | | <div> |
| | | <el-input size="small" |
| | | prefix-icon="el-icon-search"></el-input> |
| | | </div> |
| | | <div> |
| | | <el-button type="success" |
| | | size="small" |
| | | @click="handlerInsert">添加</el-button> |
| | | <el-button type="danger" |
| | | size="small" |
| | | @click="handlerDel">删除</el-button> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="menuContent"> |
| | | |
| | | <el-table :data="tableData" |
| | | style="width: 100%;height:calc(100% - 1px); " |
| | | @selection-change="handleSelectionChange"> |
| | | <el-table-column prop="name" |
| | | align="center" |
| | | label="名称"> |
| | | </el-table-column> |
| | | <el-table-column prop="coord" |
| | | align="center" |
| | | label="链路"> |
| | | </el-table-column> |
| | | <el-table-column prop="types" |
| | | align="center" |
| | | label="链接站点"> |
| | | </el-table-column> |
| | | <el-table-column prop="bak" |
| | | align="center" |
| | | label="链路状态"> |
| | | </el-table-column> |
| | | <el-table-column label="操作"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" |
| | | plain |
| | | type="warning" |
| | | @click="handleEdit(scope.$index, scope.row)">编辑</el-button> |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | </div> |
| | | <div class="menupage"> |
| | | <el-pagination @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="listData.pageIndex" |
| | | :page-sizes="[100, 200, 300, 400]" |
| | | :page-size="listData.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="listData.count"></el-pagination> |
| | | |
| | | </div> |
| | | </div> |
| | | <el-dialog :title="title" |
| | | :visible.sync="dialogVisible" |
| | | width="50%" |
| | | :before-close="handleClose"> |
| | | <el-form :model="editFrom" |
| | | label-width="80px"> |
| | | <el-form-item label="名称"> |
| | | <el-input v-model="editFrom.name" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链路"> |
| | | <el-input v-model="editFrom.coord" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入位置"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链接站点"> |
| | | <el-input v-model="editFrom.coord" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入位置"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="链路状态"> |
| | | <el-input v-model="editFrom.bak" |
| | | style="width:calc(100% - 100px);" |
| | | placeholder="请输入备注"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" |
| | | class="dialog-footer"> |
| | | <el-button size="small" |
| | | @click="setSubMite">取 消</el-button> |
| | | <el-button type="primary" |
| | | size="small" |
| | | @click="handleClose">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | components: { MyBread }, |
| | | data () { |
| | | return { |
| | | listData: { |
| | | pageIndex: 1, |
| | | pageSize: 100, |
| | | count: 0, |
| | | }, |
| | | tableData: [ |
| | | |
| | | ], |
| | | options: [ |
| | | { |
| | | name: '指挥所通信枢纽', |
| | | val: "t1" |
| | | },{ |
| | | name: '干线通讯枢纽', |
| | | val: "t2" |
| | | },{ |
| | | name: '辅助通讯枢纽', |
| | | val: "t3" |
| | | } |
| | | ], |
| | | multipleSelection: [], |
| | | |
| | | dialogVisible: false, |
| | | title: "", |
| | | editFrom: { |
| | | types: "", |
| | | } |
| | | }; |
| | | }, |
| | | watch: { |
| | | |
| | | }, |
| | | created () { |
| | | |
| | | this.setTableDataStart(); |
| | | }, |
| | | methods () { |
| | | methods: { |
| | | handleClose () { |
| | | this.title=""; |
| | | this.dialogVisible=false; |
| | | this.editFrom.types=this.options[0].val |
| | | }, |
| | | setSubMite () { |
| | | this.handleClose(); |
| | | }, |
| | | handlerInsert () { |
| | | this.title="新增"; |
| | | this.dialogVisible=true; |
| | | }, |
| | | handleEdit (index,row) { |
| | | this.editFrom=JSON.parse(JSON.stringify(row)); |
| | | this.title="修改"; |
| | | this.dialogVisible=true; |
| | | }, |
| | | handlerDel () { |
| | | |
| | | }, |
| | | formatter (row,column) { |
| | | var obj=this.options.filter(res => { |
| | | if(row.types==res.val) { |
| | | return res; |
| | | } |
| | | }); |
| | | return obj[0].name |
| | | }, |
| | | setTableDataStart () { |
| | | this.tableData=[{ |
| | | name: 'XXX链路1', |
| | | types: ' ', |
| | | coord: "", |
| | | bak: "" |
| | | },{ |
| | | name: 'XXX链路2', |
| | | types: ' ', |
| | | coord: "", |
| | | bak: "", |
| | | }] |
| | | this.listData.count=this.tableData.length; |
| | | this.handleClose(); |
| | | }, |
| | | handleSelectionChange (res) { |
| | | this.multipleSelection=res; |
| | | }, |
| | | handleSizeChange (val) { |
| | | console.log(`每页 ${val} 条`); |
| | | this.listData.pageSize.val; |
| | | }, |
| | | handleCurrentChange (val) { |
| | | console.log(`当前页: ${val}`); |
| | | this.listData.pageIndex=val; |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | |
| | | margin: 10px; |
| | | border-radius: 5px; |
| | | } |
| | | .menuBox { |
| | | width: calc(100% - 20px); |
| | | height: calc(95% - 20px); |
| | | margin: 10px; |
| | | |
| | | display: flex; |
| | | position: relative; |
| | | flex-direction: column; |
| | | .menuTitle { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 10px; |
| | | } |
| | | .menuContent { |
| | | flex: 1; |
| | | } |
| | | .menupage { |
| | | margin-top: 10px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="subpage_Box"> |
| | | <My-bread :list="[ |
| | | `${$t('dataManage.dataManage')}`, |
| | | `${$t('dataManage.projectManagement')}`, |
| | | `数据资源管理`, |
| | | `通用模板管理`, |
| | | ]"></My-bread> |
| | | <el-divider /> |
| | | <div class="mainBox"> |
| | | |
| | | <div class="cataLogContent leftTree subpage_Div" |
| | | style="border: 1px solid #dcdfe6;"> |
| | | <div style="min-width: 450px"> |
| | | <el-tree ref="tree" |
| | | :props="defaultProps" |
| | | node-key="id" |
| | | :data="dirList" |
| | | :highlight-current="true" |
| | | :expand-on-click-node="false" |
| | | :default-expanded-keys="expandData" |
| | | @node-click="handleNodeClick" |
| | | @node-contextmenu="openTreeMenu"> |
| | | </el-tree> |
| | | <div class="right_menu box_divm" |
| | | id="menu" |
| | | v-show="showRightMenu"> |
| | | <ul> |
| | | <li @click="setMenuDataCopy">复制</li> |
| | | <li @click="setMenuDataPaste">粘贴</li> |
| | | </ul> |
| | | </div> |
| | | <div class="mainContent"> |
| | | <div></div> |
| | | <div> |
| | | <el-button size="small" |
| | | type="success" |
| | | plain>新增模板</el-button> |
| | | <el-button size="small" |
| | | plain |
| | | type="danger">删除模板</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="cataLog_rightContent right subpage_Div"> |
| | | <div class="inquire" |
| | | style=" |
| | | align-items: center; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | "> |
| | | <el-breadcrumb separator="/"> |
| | | <el-breadcrumb-item :to="{ path: '/' }">{{ |
| | | |
| | | }}</el-breadcrumb-item> |
| | | </el-breadcrumb> |
| | | <div style="margin-right: -5px"> |
| | | <div class="menuTop"> |
| | | <el-form :inline="true" |
| | | class="demo-form-inline"> |
| | | <el-form-item> |
| | | |
| | | <el-button v-show="directoryFlag" |
| | | icon="el-icon-download" |
| | | type="info" |
| | | size="small" |
| | | @click="setDirectoryDownload">{{ $t("shuJuGuanLi.butten.folderDownload") }}</el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | |
| | | <el-button icon="el-icon-download" |
| | | type="info" |
| | | size="small" |
| | | @click="setTemplateDownload">{{ $t("shuJuGuanLi.butten.templateDownload") }}</el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-upload action |
| | | accept=".xlsx, .xls" |
| | | :auto-upload="false" |
| | | :show-file-list="false" |
| | | :on-change="handleChange" |
| | | :file-list="fileList"> |
| | | <el-button type="success" |
| | | icon="el-icon-plus" |
| | | size="small">{{ $t("shuJuGuanLi.butten.uploads") }}</el-button> |
| | | </el-upload> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button v-if="menuStatus.insert" |
| | | :disabled="itemdetail.pid == null ? true : false" |
| | | @click="setNewNode(1)" |
| | | type="success" |
| | | icon="el-icon-plus" |
| | | size="small">{{ $t("shuJuGuanLi.butten.NewPeer") }}</el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button v-if="menuStatus.insert" |
| | | :disabled="itemdetail.pid == null ? true : false" |
| | | @click="setNewNode(2)" |
| | | type="success" |
| | | icon="el-icon-plus" |
| | | size="small">{{ $t("shuJuGuanLi.butten.AddChild") }}</el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button v-if="menuStatus.delete" |
| | | @click="setDelNode()" |
| | | :disabled="itemdetail.pid == null ? true : false" |
| | | type="danger" |
| | | icon="el-icon-delete" |
| | | size="small">{{ $t("shuJuGuanLi.butten.Delete") }}</el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button v-if="menuStatus.update" |
| | | :disabled="itemdetail.pid == null ? true : false" |
| | | @click="setEditNode(1)" |
| | | type="info" |
| | | icon="el-icon-top" |
| | | size="small">{{ $t("shuJuGuanLi.butten.MoveUp") }}</el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button v-if="menuStatus.update" |
| | | :disabled="itemdetail.pid == null ? true : false" |
| | | @click="setEditNode(2)" |
| | | type="info" |
| | | icon="el-icon-bottom" |
| | | size="small">{{ $t("shuJuGuanLi.butten.MoveDown") }}</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | <div class="dividing-line"></div> |
| | | |
| | | <el-form :model="itemdetail" |
| | | ref="itemdetail" |
| | | :rules="rules" |
| | | style="position: relative; padding-top: 18px"> |
| | | <el-form-item prop="name" |
| | | :label="$t('dataManage.dataUpObj.name')" |
| | | :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.name" |
| | | size="small" |
| | | style=" max-width: 420px" |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueName')" |
| | | clearable /> |
| | | <!-- style="max-width: 400px"--> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('dataManage.dataUpObj.explain')" |
| | | :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.descr" |
| | | type="textarea" |
| | | style=" max-width: 420px" |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueexplain')" |
| | | clearable /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('dataManage.dataUpObj.inspectionItems')" |
| | | :label-width="formLabelWidth"> |
| | | <el-select style="width: 420px" |
| | | v-model="itemdetail.checks" |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueexamine')" |
| | | multiple> |
| | | <el-option v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | <!-- <el-input |
| | | |
| | | type="textarea" |
| | | style=" max-width: 420px" |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueone')" |
| | | clearable |
| | | /> --> |
| | | <!-- resize="none"--> |
| | | <!-- style="height: 100%; overflow: auto; max-width: 400px"--> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('dataManage.dataUpObj.fileExtension')" |
| | | :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.exts" |
| | | type="textarea" |
| | | style=" max-width: 420px" |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuesuffix')" |
| | | clearable /> |
| | | </el-form-item> |
| | | <!-- <el-form-item |
| | | :label="$t('dataManage.dataUpObj.inspectionItems')" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-input |
| | | v-model="itemdetail.checks" |
| | | type="textarea" |
| | | resize="none" |
| | | style="height: 100%; overflow: auto; max-width: 400px" |
| | | /> |
| | | </el-form-item>--> |
| | | <el-form-item :label="$t('dataManage.dataUpObj.code')" |
| | | :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.code" |
| | | disabled |
| | | type="textarea" |
| | | style=" max-width: 420px" |
| | | autosize /> |
| | | </el-form-item> |
| | | <!-- <el-form-item |
| | | :label="$t('dataManage.dataUpObj.catalogRemarks')" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-input |
| | | v-model="itemdetail.bak" |
| | | type="textarea" |
| | | resize="none" |
| | | style="max-width: 400px" |
| | | /> |
| | | </el-form-item>--> |
| | | <!-- <div class="btnBox"> |
| | | <el-button |
| | | v-if="menuStatus.update" |
| | | class="primary" |
| | | size="small" |
| | | @click="updCata('itemdetail')" |
| | | >{{ $t("common.preservation") }}</el-button |
| | | > |
| | | <el-button |
| | | v-if="menuStatus.update" |
| | | type="info" |
| | | size="small" |
| | | @click="reset" |
| | | >{{ $t("common.cancel") }}</el-button |
| | | > |
| | | </div>--> |
| | | </el-form> |
| | | <div slot="footer" |
| | | class="dialog-footer" |
| | | style="padding-left: 45% ;padding-top: 20px"> |
| | | <el-button v-if="menuStatus.update" |
| | | type="primary" |
| | | size="small" |
| | | @click="updCata('itemdetail')">{{ $t("common.preservation") }}</el-button> |
| | | <el-button v-if="menuStatus.update" |
| | | size="small" |
| | | @click="reset">{{ $t("common.cancel") }}</el-button> |
| | | </div> |
| | | <div class="taleBox"> |
| | | <el-table :data="tableData" |
| | | style="width: 100%;height:calc(100% - 1px)"> |
| | | <el-table-column prop="date" |
| | | label="日期" |
| | | width="180"> |
| | | </el-table-column> |
| | | <el-table-column prop="name" |
| | | label="姓名" |
| | | width="180"> |
| | | </el-table-column> |
| | | <el-table-column prop="address" |
| | | label="地址"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="pageBox"> |
| | | <el-pagination @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page.sync="currentPage2" |
| | | :page-sizes="[100, 200, 300, 400]" |
| | | :page-size="100" |
| | | layout="sizes, prev, pager, next" |
| | | :total="1000"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="cataSettings_tree"> --> |
| | | |
| | | <!-- <div class="cataTreeBox"> |
| | | |
| | | </div> --> |
| | | <!-- </div> --> |
| | | <!-- <div class="itemSettings"> --> |
| | | <!-- <div class="title_box"> |
| | | <h4>详细信息</h4> |
| | | </div> --> |
| | | <!-- <div class="form_box"> |
| | | |
| | | </div> --> |
| | | <!-- </div> --> |
| | | <el-dialog :title="$t('dataManage.dataUpObj.newDirectory')" |
| | | :visible.sync="dialogFormVisible" |
| | | :before-close="handleClose"> |
| | | <el-form :model="ruleForm" |
| | | ref="ruleForm" |
| | | :rules="rules"> |
| | | <el-form-item :label="$t('dataManage.dataUpObj.name')" |
| | | prop="name" |
| | | :label-width="formLabelWidth"> |
| | | <el-input v-model="ruleForm.name" |
| | | autocomplete="off" |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueName')"></el-input> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('dataManage.dataUpObj.explain')" |
| | | :label-width="formLabelWidth"> |
| | | <el-input v-model="ruleForm.descr" |
| | | autocomplete="off" |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueexplain')"></el-input> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('dataManage.dataUpObj.fileExtension')" |
| | | :label-width="formLabelWidth"> |
| | | <el-input v-model="ruleForm.exts" |
| | | type="textarea" |
| | | resize="none" |
| | | style="height: 100%; overflow: auto" |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuesuffix')" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('dataManage.dataUpObj.inspectionItems')" |
| | | :label-width="formLabelWidth"> |
| | | <!-- <el-input |
| | | |
| | | type="textarea" |
| | | resize="none" |
| | | |
| | | /> --> |
| | | <el-select v-model="ruleForm.checks" |
| | | multiple |
| | | style="width:100%;" |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueexamine')"> |
| | | <el-option v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | |
| | | </el-form-item> |
| | | <el-form-item :label="$t('dataManage.dataUpObj.code')" |
| | | :label-width="formLabelWidth"> |
| | | <el-input v-model="ruleForm.code" |
| | | disabled |
| | | type="textarea" |
| | | resize="none" |
| | | style="height: 100%; overflow: auto" /> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('dataManage.dataUpObj.Remarks')" |
| | | :label-width="formLabelWidth"> |
| | | <el-input v-model="ruleForm.bak" |
| | | autocomplete="off" |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueRemarks')"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" |
| | | class="dialog-footer"> |
| | | <el-button @click="resetForm('ruleForm')">{{ |
| | | $t("common.cancel") |
| | | }}</el-button> |
| | | <el-button class="primary" |
| | | @click="submitForm('ruleForm')" |
| | | v-loading.fullscreen.lock="fullscreenLoading">{{ $t("common.preservation") }}</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <iframe id="Iframe1" |
| | | src="" |
| | | style="display: none; border: 0; padding: 0; height: 0; width: 0"></iframe> |
| | | <div class="loadBox" |
| | | v-if="loadDialogVisible"> |
| | | <div style="widht:100%; margin:20px; color:white"> |
| | | <div style="margin-left:99%"> |
| | | <!-- <el-link |
| | | @click="setloadDialogVisible()" |
| | | style="color:white" |
| | | > X</el-link> --> |
| | | </div> |
| | | </div> |
| | | <div v-loading="true" |
| | | element-loading-background="rgba(0, 0, 0, 0.0) " |
| | | element-loading-text="目录上传中,请等待..." |
| | | style="margin: 0px 20px;widht:100%;height:calc(100% - 80px); "> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | queryDirTree, |
| | | queryMaxId, |
| | | updateDirTree, |
| | | updateDirTrees, |
| | | insertDir, |
| | | deleteDir, |
| | | getPerms, |
| | | } from "../../api/api"; |
| | | import * as XSLX from "xlsx"; |
| | | |
| | | import MyBread from "../../components/MyBread.vue"; |
| | | import clone from "@turf/clone"; |
| | | import $ from 'jquery' |
| | | import { getToken } from '../../utils/auth'; |
| | | |
| | | export default { |
| | | name: "catalogueManage", |
| | | components: { |
| | | MyBread, |
| | | }, |
| | | data () { |
| | | let validName=(rule,value,callback) => { |
| | | if(value===""||value===null||value===undefined) { |
| | | return callback(new Error("目录名称不能为空")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | return { |
| | | directoryData: null, |
| | | directoryFlag: false, |
| | | menuStatus: { |
| | | delete: false, |
| | | insert: false, |
| | | update: false, |
| | | }, |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "name", |
| | | }, |
| | | fullscreenLoading: false, |
| | | oriData: [], //原始树数据 |
| | | dirList: [], //el树数据 |
| | | old_dirDat: [], //el树数据(拖动前) |
| | | newData: [], //拖动后原始数据 |
| | | itemdetail: { |
| | | checks: [], |
| | | }, |
| | | itemaName: null, |
| | | backUpData: "", |
| | | formLabelWidth: "150px", |
| | | delChildID: "", |
| | | delChildIDs: [], |
| | | dialogFormVisible: false, |
| | | ruleForm: { |
| | | level: null, |
| | | orderNum: null, |
| | | pid: null, |
| | | name: "", |
| | | descr: "", |
| | | bak: "", |
| | | checks: [] |
| | | }, |
| | | rules: { |
| | | name: [{ required: true,validator: validName,trigger: "blur" }], |
| | | }, |
| | | newNode: null, |
| | | expandData: [], |
| | | fileList: [], |
| | | file: null, |
| | | tableData: [], |
| | | options: [ |
| | | { |
| | | value: 'checkMain', |
| | | label: '总质检' |
| | | },{ |
| | | value: 'checkOsgb', |
| | | label: 'OSGB检查' |
| | | },{ |
| | | value: 'checkXls', |
| | | label: '表格数据检查' |
| | | },{ |
| | | value: 'checkLaz', |
| | | label: '点云检查' |
| | | },{ |
| | | value: 'checkDem', |
| | | label: '高程检查' |
| | | },{ |
| | | value: 'checkAttrs', |
| | | label: '属性检查' |
| | | },{ |
| | | value: 'checkTopology', |
| | | label: '拓扑检查' |
| | | },{ |
| | | value: 'checkDecorate', |
| | | label: '图面整饰检查' |
| | | },{ |
| | | value: 'checkOrigin', |
| | | label: '原点检查' |
| | | },{ |
| | | value: 'checkDom', |
| | | label: '栅格检查' |
| | | },{ |
| | | value: 'checkMath', |
| | | label: '数学基础检查' |
| | | },{ |
| | | value: 'checkMeta', |
| | | label: '元数据检查' |
| | | },{ |
| | | value: 'checkLogical', |
| | | label: '逻辑一致性检查' |
| | | },{ |
| | | value: 'checkSingleIntegrity', |
| | | label: '单项成果完整性检查' |
| | | } |
| | | |
| | | ], |
| | | currentData: null, |
| | | showRightMenu: false, |
| | | checksData: null, |
| | | checksCopyData: null, |
| | | loadDialogVisible: false |
| | | return { |
| | | tableData: [{ |
| | | date: '2016-05-02', |
| | | name: '王小虎', |
| | | address: '上海市普陀区金沙江路 1518 弄' |
| | | },{ |
| | | date: '2016-05-04', |
| | | name: '王小虎', |
| | | address: '上海市普陀区金沙江路 1517 弄' |
| | | },{ |
| | | date: '2016-05-01', |
| | | name: '王小虎', |
| | | address: '上海市普陀区金沙江路 1519 弄' |
| | | },{ |
| | | date: '2016-05-03', |
| | | name: '王小虎', |
| | | address: '上海市普陀区金沙江路 1516 弄' |
| | | }] |
| | | }; |
| | | }, |
| | | methods: { |
| | | // 复制 |
| | | setMenuDataCopy () { |
| | | this.checksCopyData=this.checksData; |
| | | }, |
| | | //粘贴 |
| | | setMenuDataPaste () { |
| | | if(!this.checksCopyData) { |
| | | return this.$message('未选中要复制的节点'); |
| | | } |
| | | var val=this.$refs.tree.getNode(this.checksCopyData).data; |
| | | |
| | | var level=this.$refs.tree.getNode(this.checksData).data.level+1; |
| | | this.setInsertCopyData([val],this.checksData,level); |
| | | }, |
| | | setInsertCopyData (val,pid,level) { |
| | | for(var i in val) { |
| | | var data=val[i]; |
| | | var pchildNodes=[]; |
| | | |
| | | if(this.$refs.tree.getNode(pid)&&this.$refs.tree.getNode(pid).childNodes) { |
| | | pchildNodes=this.$refs.tree.getNode(pid).childNodes |
| | | } |
| | | var orderNum=this.getMaxOrderNum(pchildNodes); |
| | | var obj={ |
| | | bak: data.bak, |
| | | level: level, |
| | | orderNum: orderNum+1, |
| | | pid: pid, |
| | | checks: data.checks, |
| | | name: data.name, |
| | | descr: data.descr, |
| | | exts: data.exts, |
| | | } |
| | | insertDir(obj).then((res) => { |
| | | if(res.code==200) { |
| | | this.getDirTree(); |
| | | if(data.children&&data.children.length>0) { |
| | | |
| | | this.setInsertCopyData(data.children,res.result,level+1) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | handleNodeClick (data,node) { |
| | | this.showRightMenu=false; |
| | | document.removeEventListener('click',this.closeRightMenu) |
| | | this.layerFormInline(data) |
| | | |
| | | }, |
| | | //右键菜单 |
| | | openTreeMenu (event,data,node,obj) { |
| | | this.showRightMenu=true; |
| | | let menu=document.getElementById('menu') |
| | | menu.style.left=event.clientX+20+'px' |
| | | menu.style.top=event.clientY+'px' |
| | | document.addEventListener('click',this.closeRightMenu) |
| | | this.checksData=data.id; |
| | | console.log(this.checksData) |
| | | }, |
| | | closeRightMenu () { |
| | | this.showRightMenu=false; |
| | | document.removeEventListener('click',this.closeRightMenu) |
| | | |
| | | }, |
| | | setTemplateDownload () { |
| | | var url=window.location.href; |
| | | var testurl=window.location.origin+"/"; |
| | | if(url.indexOf("web")!=-1) { |
| | | testurl=testurl+"/web/"; |
| | | } |
| | | testurl+=dirTemplateFile |
| | | $("#Iframe1").attr("src",testurl).click() |
| | | }, |
| | | handleChange (file,fileList) { |
| | | this.file=file; |
| | | if(fileList.length>0) { |
| | | this.fileList=[fileList[fileList.length-1]]; //这一步,是 展示最后一次选择文件; |
| | | this.handle(); |
| | | } |
| | | }, |
| | | async handle () { |
| | | let file=this.file?.raw; |
| | | if(!this.file) { |
| | | console.log("文件打开失败"); |
| | | return; |
| | | } else { |
| | | const reader=new FileReader(); |
| | | let that=this; |
| | | reader.readAsArrayBuffer(file); |
| | | reader.onload=function() { |
| | | const buffer=reader.result; |
| | | const bytes=new Uint8Array(buffer); |
| | | const length=bytes.byteLength; |
| | | let binary=""; |
| | | for(let i=0;i<length;i++) { |
| | | binary+=String.fromCharCode(bytes[i]); |
| | | } |
| | | const XLSX=require("xlsx"); |
| | | const wb=XLSX.read(binary,{ |
| | | type: "binary", |
| | | }); |
| | | const outdata=XLSX.utils.sheet_to_json( |
| | | wb.Sheets[wb.SheetNames[0]], |
| | | { defval: null } |
| | | ); // 默认第一行下为空也能解析出第一四行 |
| | | var data=[...outdata]; |
| | | that.setLeToFc(data); |
| | | }; |
| | | } |
| | | }, |
| | | |
| | | setLeToFc (res) { |
| | | var arr=[]; |
| | | for(var i in res) { |
| | | var value=this.getNameAndPname(res[i],res,i) |
| | | arr.push({ |
| | | name: value[0], |
| | | pname: value[1], |
| | | descr: res[i].explain, |
| | | checks: res[i].checks, |
| | | bak: res[i].bak, |
| | | exts: res[i].exts, |
| | | orderNum: null, |
| | | pid: null, |
| | | tid: parseInt(value[2])+1, |
| | | sid: parseInt(value[3])+1 |
| | | }) |
| | | } |
| | | |
| | | this.tableData=arr; |
| | | |
| | | this.setInsertData(this.tableData); |
| | | }, |
| | | getNameAndPname (res,result,flag) { |
| | | var chLevel=null; |
| | | var faLevel=null; |
| | | |
| | | for(var i=1;i<8;i++) { |
| | | var lel='L'+i; |
| | | if(res[lel]!=null) { |
| | | chLevel=i |
| | | } |
| | | } |
| | | if(chLevel==1) { |
| | | return [res['L'+chLevel],null,flag,-1] |
| | | } else { |
| | | faLevel=chLevel-1; |
| | | for(var i=flag;i>=0;i--) { |
| | | var val=result[i] |
| | | if(val['L'+faLevel]) { |
| | | return [res['L'+chLevel],val['L'+faLevel],flag,i] |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | setInsertData (res) { |
| | | var list=this.excelData(res); |
| | | if(list.length!=0) { |
| | | if(list[0].pname!=null) { |
| | | return this.$message.error("上传数据错误,第一条数据不为空"); |
| | | } |
| | | this.getAllNodeId(res); |
| | | } |
| | | }, |
| | | async getAllNodeId (res) { |
| | | this.loadDialogVisible=true; |
| | | for(let i=0;i<res.length;i++) { |
| | | var val=res[i]; |
| | | if(val.pname==null) { |
| | | val.orderNum=this.dirList[this.dirList.length-1].orderNum+1; |
| | | val.pid=0; |
| | | } else { |
| | | this.tableData.filter((child) => { |
| | | if(child.tid==val.sid) { |
| | | val.pid=child.id; |
| | | val.orderNum=i+1; |
| | | } |
| | | }); |
| | | } |
| | | |
| | | const data=await insertDir(val); |
| | | if(data.code!=200) { |
| | | this.$message.error("目录上传失败"+data.msg); |
| | | this.loadDialogVisible=false; |
| | | break; |
| | | } |
| | | |
| | | this.tableData.filter((child) => { |
| | | |
| | | if(child.name==val.name&&child.tid==val.tid) { |
| | | child.id=data.result; |
| | | } |
| | | }); |
| | | this.itemaName=data.result; |
| | | // this.getDirTree(); |
| | | |
| | | // if (res[i].children) { |
| | | // this.getAllNodeId(res[i].children); |
| | | // } |
| | | } |
| | | this.getDirTree(); |
| | | this.loadDialogVisible=false; |
| | | |
| | | }, |
| | | excelData (source) { |
| | | let cloneData=JSON.parse(JSON.stringify(source)); // 对源数据深度克隆 |
| | | return cloneData.filter((father) => { |
| | | // 循环所有项 |
| | | let branchArr=cloneData.filter((child) => father.tid==child.sid); // 对比ID,分别上下级菜单,并返回数据 |
| | | |
| | | branchArr.length>0? (father.children=branchArr):""; // 给父级添加一个children属性,并赋值 |
| | | // 属于同一对象问题,例如:令 a=b、c=1 ,然后再令 b.c=c , 那么 a.c=b.c=c=1 ;同理,后续令 c.d=2 ,那么 a.c.d 也是=2; |
| | | // 由此循环多次后,就能形成相应的树形数据结构 |
| | | return father.sid==0; // 返回一级菜单 |
| | | }); |
| | | }, |
| | | readFile (file) { |
| | | //文件读取 |
| | | return new Promise((resolve) => { |
| | | let reader=new FileReader(); |
| | | reader.readAsBinaryString(file); //以二进制的方式读取 |
| | | reader.onload=(ev) => { |
| | | resolve(ev.target.result); |
| | | }; |
| | | }); |
| | | }, |
| | | |
| | | // 请求目录树 |
| | | async getDirTree () { |
| | | //获取目录树最大ID,新建节点使用 |
| | | // queryMaxId().then((res) => { |
| | | // this.id = res.data; |
| | | // }); |
| | | // 获取目录树数据 |
| | | const data=await queryDirTree(); |
| | | |
| | | if(data.code!=200) { |
| | | return this.$message.error("项目列表查询失败"); |
| | | } |
| | | this.oriData=data.result; |
| | | this.newData=data.result; |
| | | this.dirList=this.treeData(data.result); |
| | | |
| | | |
| | | var cdata; |
| | | if(this.currentData) { |
| | | var rs=JSON.parse(this.currentData); |
| | | cdata=this.$refs.tree.getNode(rs.id).data; |
| | | } else { |
| | | cdata=this.dirList[this.dirList.length-1] |
| | | } |
| | | this.$nextTick(() => { |
| | | this.expandData=[cdata.id]; |
| | | this.$refs.tree.setCurrentKey(cdata.id); |
| | | this.layerFormInline(cdata) |
| | | }); |
| | | |
| | | |
| | | // queryDirTree().then((res) => { |
| | | // // console.log(res); |
| | | |
| | | |
| | | // if (res.code == 200) { |
| | | |
| | | |
| | | // // this.$nextTick(() => { |
| | | |
| | | // // this.expandData=[15] |
| | | // // this.$refs.tree.setCurrentKey(15); |
| | | |
| | | // // }); |
| | | |
| | | // } else { |
| | | // console.log("接口报错"); |
| | | // } |
| | | // }); |
| | | }, |
| | | handleClose () { |
| | | this.$confirm("关闭后无法保存,是否关闭?") |
| | | .then((_) => { |
| | | this.resetForm(); |
| | | }) |
| | | .catch((_) => { }); |
| | | }, |
| | | treeData (source) { |
| | | let cloneData=JSON.parse(JSON.stringify(source)); // 对源数据深度克隆 |
| | | return cloneData.filter((father) => { |
| | | // 循环所有项 |
| | | let branchArr=cloneData.filter((child) => father.id==child.pid); // 对比ID,分别上下级菜单,并返回数据 |
| | | if(branchArr.length>0) { |
| | | branchArr.sort(function(a,b) { |
| | | return a.orderNum-b.orderNum |
| | | }) |
| | | } |
| | | |
| | | branchArr.length>0? (father.children=branchArr):""; // 给父级添加一个children属性,并赋值 |
| | | // 属于同一对象问题,例如:令 a=b、c=1 ,然后再令 b.c=c , 那么 a.c=b.c=c=1 ;同理,后续令 c.d=2 ,那么 a.c.d 也是=2; |
| | | // 由此循环多次后,就能形成相应的树形数据结构 |
| | | return father.pid==0; // 返回一级菜单 |
| | | }); |
| | | }, |
| | | //向上向下移动 |
| | | setEditNode (res) { |
| | | let node=this.$refs.tree.getCurrentNode(); |
| | | let pchildNodes=this.$refs.tree.getNode(node.id).parent.childNodes; |
| | | let currentId={}; |
| | | for(let i=0;i<pchildNodes.length;i++) { |
| | | if(pchildNodes[i].data.id==node.id) { |
| | | currentId=i; |
| | | } |
| | | } |
| | | switch(res) { |
| | | case 1: //向上移动 |
| | | if(currentId!=0) { |
| | | const tempChildrenNodex1=pchildNodes[currentId-1]; |
| | | const tempChildrenNodex2=pchildNodes[currentId]; |
| | | // tempChildrenNodex2.orderNum = |
| | | // pchildNodes[currentId - 1].data.orderNum; |
| | | // tempChildrenNodex1.orderNum = pchildNodes[currentId].data.orderNum; |
| | | |
| | | const arr=[]; |
| | | this.oriData.filter((res) => { |
| | | if(res.id==tempChildrenNodex2.data.id) { |
| | | // res.orderNum = tempChildrenNodex2.orderNum; |
| | | arr.push(res); |
| | | } else if(res.id==tempChildrenNodex1.data.id) { |
| | | // res.orderNum = tempChildrenNodex1.orderNum; |
| | | arr.push(res); |
| | | } |
| | | }); |
| | | |
| | | const orderNum=arr[1].orderNum |
| | | arr[1].orderNum=arr[0].orderNum |
| | | arr[0].orderNum=orderNum |
| | | |
| | | this.newData=arr; |
| | | this.sendChange(); |
| | | } else { |
| | | this.$message({ |
| | | message: "处于顶端,不能继续上移", |
| | | type: "warning", |
| | | }); |
| | | } |
| | | break; |
| | | case 2: //向下移动 |
| | | if(currentId<pchildNodes.length-1) { |
| | | const tempChildrenNodex1=pchildNodes[currentId+1]; |
| | | const tempChildrenNodex2=pchildNodes[currentId]; |
| | | // tempChildrenNodex2.orderNum = |
| | | // pchildNodes[currentId + 1].data.orderNum; |
| | | // tempChildrenNodex1.orderNum = pchildNodes[currentId].data.orderNum; |
| | | |
| | | const arr=[]; |
| | | this.oriData.filter((res) => { |
| | | if(res.id==tempChildrenNodex2.data.id) { |
| | | // res.orderNum = tempChildrenNodex2.orderNum; |
| | | arr.push(res); |
| | | } else if(res.id==tempChildrenNodex1.data.id) { |
| | | // res.orderNum = tempChildrenNodex1.orderNum; |
| | | arr.push(res); |
| | | } |
| | | }); |
| | | const orderNum=arr[1].orderNum |
| | | arr[1].orderNum=arr[0].orderNum |
| | | arr[0].orderNum=orderNum |
| | | this.newData=arr; |
| | | this.sendChange(); |
| | | } else { |
| | | this.$message({ |
| | | message: "处于底端,不能继续下移", |
| | | type: "warning", |
| | | }); |
| | | } |
| | | break; |
| | | } |
| | | }, |
| | | setDelNode () { |
| | | this.$confirm("此操作将永久删除该目录, 是否继续?","提示",{ |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | this.remove(this.newNode,this.itemdetail); |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | | type: "info", |
| | | message: "已取消删除", |
| | | }); |
| | | }); |
| | | }, |
| | | insertStart () { |
| | | this.ruleForm={ |
| | | level: null, |
| | | orderNum: null, |
| | | pid: null, |
| | | name: "", |
| | | descr: "", |
| | | bak: "", |
| | | checks: [] |
| | | } |
| | | }, |
| | | setNewNode (res) { |
| | | this.insertStart(); |
| | | var node=this.$refs.tree.getCurrentNode(); |
| | | this.newNode=node; |
| | | var id,lever,orderNum; |
| | | if(res==1) { |
| | | //新增同级 |
| | | id=this.itemdetail.pid; |
| | | let pchildNodes=this.$refs.tree.getNode(this.newNode.id).parent.childNodes |
| | | orderNum=this.getMaxOrderNum(pchildNodes); |
| | | lever=this.itemdetail.level; |
| | | } else if(res==2) { |
| | | //新增子级 |
| | | id=this.itemdetail.id; |
| | | let pchildNodes=this.$refs.tree.getNode(this.newNode.id).childNodes |
| | | orderNum=this.getMaxOrderNum(pchildNodes); |
| | | lever=this.itemdetail.level+1; |
| | | } |
| | | |
| | | this.ruleForm.pid=id; |
| | | this.ruleForm.level=lever; |
| | | this.ruleForm.orderNum=orderNum; |
| | | this.dialogFormVisible=true; |
| | | }, |
| | | getMaxOrderNum (res) { |
| | | var val=-100; |
| | | for(var i in res) { |
| | | if(res[i].data.orderNum>val) { |
| | | val=res[i].data.orderNum; |
| | | } |
| | | } |
| | | val=val+1; |
| | | return val; |
| | | }, |
| | | append (node,data) { |
| | | this.dialogFormVisible=true; |
| | | this.ruleForm.pid=data.id; |
| | | this.ruleForm.orderNum=node.childNodes.length+1; |
| | | this.ruleForm.level=data.level+1; |
| | | }, |
| | | resetForm (formName) { |
| | | this.dialogFormVisible=false; |
| | | this.ruleForm={}; |
| | | this.$nextTick(() => { |
| | | this.ruleForm={}; |
| | | // this.$refs[formName].resetFields(); |
| | | }); |
| | | }, |
| | | submitForm (formName) { |
| | | this.$nextTick(() => { |
| | | this.$refs[formName].validate((valid) => { |
| | | if(valid) { |
| | | this.fullscreenLoading=true; |
| | | var val=this.ruleForm; |
| | | if(this.ruleForm.checks) { |
| | | val.checks=this.ruleForm.checks.toString() |
| | | } else { |
| | | val.checks='' |
| | | } |
| | | // var val = JSON.parse(JSON.stringify(this.ruleForm)) |
| | | // this.itemdetail = val |
| | | insertDir(val) |
| | | .then((res) => { |
| | | setTimeout(() => { |
| | | this.fullscreenLoading=false; |
| | | |
| | | if(res.code==200) { |
| | | this.$message({ |
| | | message: "添加成功", |
| | | type: "success", |
| | | }); |
| | | |
| | | // this.itemdetail = {}; |
| | | // this.ruleForm = {}; |
| | | this.dialogFormVisible=false; |
| | | this.$refs[formName].resetFields(); |
| | | this.getDirTree(); |
| | | } |
| | | },500); |
| | | }) |
| | | .catch((res) => { |
| | | this.itemdetail={}; |
| | | this.$message.error("添加失败"); |
| | | this.fullscreenLoading=false; |
| | | console.log(res); |
| | | }); |
| | | } else { |
| | | // alert("目录名称不能为空"); |
| | | return false; |
| | | } |
| | | }); |
| | | }); |
| | | }, |
| | | remove (node,data) { |
| | | this.itemaName=node.parent.data.id; |
| | | |
| | | this.$confirm("此操作将删除该节点, 是否继续?","提示",{ |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | //兄弟重新排序 |
| | | const parent=node.parent; |
| | | const children=parent.data.children||parent.data; |
| | | children.splice(data.orderNum-1,1); |
| | | children.forEach((item,index) => { |
| | | item.orderNum=index+1; |
| | | }); |
| | | |
| | | this.traverseArr(data); //获取删除的子ID |
| | | this.delChildIDs.push(data.id); //要删除的全部ID |
| | | let delIDs=this.delChildIDs; |
| | | Promise.all([ |
| | | deleteDir({ ids: delIDs.toString() }), |
| | | updateDirTrees(children), |
| | | ]) |
| | | .then((res) => { |
| | | if(res[0].code==200&&res[1].code==200) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "删除成功!", |
| | | }); |
| | | let pchildNodes=this.$refs.tree.getNode(this.itemdetail.id).parent; |
| | | if(pchildNodes.data.id) { |
| | | this.currentData=JSON.stringify(pchildNodes.data) |
| | | } else { |
| | | this.currentData=null |
| | | } |
| | | this.itemdetail={}; |
| | | |
| | | this.getDirTree(); |
| | | } else if(res[0].code==200) { |
| | | this.$message.error("删除成功,位置调整失败"); |
| | | } else if(res[1].code==200) { |
| | | this.$message.error("删除失败,位置调整成功"); |
| | | } else { |
| | | this.$message.error("删除失败"); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | // this.$message.error("删除失败"); |
| | | // this.itemdetail = {}; |
| | | }); |
| | | //重置要删除的子ID |
| | | this.delChildIDs=[]; |
| | | }) |
| | | .catch(() => { |
| | | this.$message("已取消删除"); |
| | | }); |
| | | // this.dialogMessage="是否删除" |
| | | // this.dialogFlag = 1; |
| | | // this.dialogFrom ={ |
| | | // node:node, |
| | | // val:data |
| | | // } |
| | | // this.dialogVisible=true;//目录树更改弹窗 |
| | | // const parent = node.parent; |
| | | // const children = parent.data.children || parent.data; |
| | | // const index = children.findIndex((d) => d.id === data.id); |
| | | // let res = children.splice(index, 1); |
| | | // // console.log(res); |
| | | // // console.log(data); |
| | | // console.log(this.flaten(res)); |
| | | }, |
| | | traverseArr (obj) { |
| | | if(obj.children) { |
| | | return obj.children.forEach((item) => { |
| | | // console.log(item.id + "---" + item.name); |
| | | // this.delChildID += "id=" + item.id + "&"; |
| | | this.delChildIDs.push(item.id); |
| | | this.traverseArr(item); |
| | | }); |
| | | } |
| | | return; |
| | | }, |
| | | flaten (arr) { |
| | | return arr.reduce((p,v,i) => { |
| | | for(let i=0;i<p.length;i++) { |
| | | if(p[i].children) { |
| | | delete p[i].children; |
| | | } |
| | | } |
| | | return p.concat(v.children? this.flaten(v.children).concat(v):v); |
| | | },[]); |
| | | }, |
| | | handleDragStart (node,ev) { |
| | | this.old_dirDat=JSON.parse(JSON.stringify(this.dirList)); //将备份的dir重新赋值 |
| | | }, |
| | | handleDrop (draggingNode,dropNode,dropType,ev) { |
| | | this.$confirm("此操作将保存目录更改, 是否继续?","提示",{ |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | //父节点 |
| | | let data=dropType!="inner"? dropNode.parent.data:dropNode.data; |
| | | // 父节点中全部子节点 |
| | | let nodeData= |
| | | dropNode.level==1&&dropType!="inner"? data:data.children; |
| | | //变更节点 |
| | | nodeData.forEach((item,i) => { |
| | | if(dropType!="inner") { |
| | | if(draggingNode.data.pid===dropNode.data.pid) { |
| | | item.pid=item.pid; |
| | | } else { |
| | | item.pid=dropNode.data.pid; |
| | | } |
| | | } else { |
| | | item.pid=data.id; |
| | | } |
| | | item.orderNum=i+1; |
| | | }); |
| | | |
| | | let arr=[]; |
| | | this.oriData.forEach((e) => { |
| | | nodeData.forEach((item) => { |
| | | if(item.id===e.id) e=item; |
| | | }); |
| | | arr.push(e); |
| | | }); |
| | | this.newData=arr; |
| | | this.sendChange(); |
| | | }) |
| | | .catch(() => { |
| | | this.$message("已取消更改"); |
| | | this.dirList=this.old_dirDat; //将备份的dir重新赋值 |
| | | }); |
| | | }, |
| | | async sendChange () { |
| | | const data=await updateDirTrees(this.newData) |
| | | |
| | | if(data.code!=200) { |
| | | return this.$message.error("移动失败"); |
| | | } |
| | | this.getDirTree(); |
| | | // this.getLayerTree() |
| | | // .then((res) => { |
| | | // if (res.code == 200) { |
| | | // |
| | | // return; |
| | | // } else { |
| | | // this.$message.error("移动失败,请重试!"); |
| | | // } |
| | | // }) |
| | | // .catch(() => { |
| | | // this.$message.error("移动失败,请重试!"); |
| | | // }); |
| | | }, |
| | | |
| | | setDirectoryDownload () { |
| | | var url=BASE_URL+'/dir/downloadDir?token='+getToken()+'&id='+this.directoryData.id |
| | | console.log(url) |
| | | $("#Iframe1").attr("src",url).click() |
| | | }, |
| | | |
| | | layerFormInline (data) { |
| | | if(data.pid==0) { |
| | | this.directoryData=data; |
| | | this.directoryFlag=true; |
| | | } else { |
| | | this.directoryFlag=false; |
| | | } |
| | | |
| | | this.newNode=this.$refs.tree.getNode(data.id); |
| | | this.backUpData=JSON.stringify(data); |
| | | var val=this.$refs.tree.getNode(data.id).data; |
| | | this.itemdetail=val; |
| | | this.currentData=JSON.stringify(data) |
| | | |
| | | var checks=[]; |
| | | if(val.checks) { |
| | | if(val.checks.indexOf(',')>-1) { |
| | | var value=val.checks.split(','); |
| | | for(var i in value) { |
| | | checks.push(value[i]) |
| | | } |
| | | } else if(val.checks.indexOf('[]')>-1) { |
| | | |
| | | } else { |
| | | checks.push(val.checks) |
| | | } |
| | | this.itemdetail.checks=checks; |
| | | } else { |
| | | this.itemdetail.checks=[] |
| | | } |
| | | }, |
| | | |
| | | |
| | | async updCata (formName) { |
| | | this.fullscreenLoading=true; |
| | | var val=JSON.parse(JSON.stringify(this.itemdetail)); |
| | | val.orderNum=this.newNode.data.orderNum; |
| | | |
| | | var value=this.itemdetail.checks.toString() |
| | | val.checks=value; |
| | | const data=await updateDirTree(val); |
| | | this.currentData=JSON.stringify(this.itemdetail) |
| | | |
| | | if(data.code!=200) { |
| | | this.fullscreenLoading=false; |
| | | return this.$message.error("修改失败"); |
| | | } |
| | | this.$message({ |
| | | message: '修改成功', |
| | | type: 'success' |
| | | }); |
| | | this.fullscreenLoading=false; |
| | | this.getDirTree(); |
| | | |
| | | // this.$nextTick(() => { |
| | | // this.$refs[formName].validate((valid) => { |
| | | // if (valid) { |
| | | // |
| | | |
| | | // var val = this.itemdetail |
| | | // var value = this.itemdetail.checks.toString() |
| | | // val.checks = value; |
| | | // |
| | | // let res = JSON.parse(JSON.stringify(this.itemdetail)); |
| | | // this.itemdetail = res; |
| | | // |
| | | // updateDirTree(val) |
| | | // .then((res) => { |
| | | // setTimeout(() => { |
| | | // this.fullscreenLoading = false; |
| | | // if (res.code == 200) { |
| | | // this.getDirTree(); |
| | | // // this.itemdetail = {}; |
| | | // this.dialogFormVisible = false; |
| | | // } |
| | | // }, 500); |
| | | // }) |
| | | // .catch((res) => { |
| | | // this.$message.error("修改失败,请重试!"); |
| | | // this.fullscreenLoading = false; |
| | | // }); |
| | | // } else { |
| | | // return false; |
| | | // } |
| | | // }); |
| | | // }); |
| | | }, |
| | | reset (formName) { |
| | | this.itemdetail={}; |
| | | // this.$refs[formName].resetFields(); |
| | | if(this.backUpData!="") { |
| | | this.itemdetail=JSON.parse(this.backUpData); |
| | | var val=JSON.parse(this.backUpData); |
| | | var checks=[]; |
| | | if(val.checks) { |
| | | if(val.checks.indexOf(',')>-1) { |
| | | var value=val.checks.split(','); |
| | | for(var i in value) { |
| | | checks.push(value[i]) |
| | | } |
| | | } else { |
| | | checks.push(val.checks) |
| | | } |
| | | this.itemdetail.checks=checks; |
| | | } else { |
| | | this.itemdetail.checks=[] |
| | | } |
| | | } |
| | | }, |
| | | showPermsMenu (res) { |
| | | switch(res.tag) { |
| | | case "/delete": |
| | | this.menuStatus.delete=true; |
| | | break; |
| | | case "/insert": |
| | | this.menuStatus.insert=true; |
| | | break; |
| | | case "/update": |
| | | this.menuStatus.update=true; |
| | | break; |
| | | } |
| | | }, |
| | | getPerms () { |
| | | var val=this.$store.state.currentPerms; |
| | | var permsEntity=this.$store.state.permsEntity; |
| | | if(!permsEntity||!permsEntity.length) { |
| | | getPerms().then((res) => { |
| | | if(res.code==200) { |
| | | permsEntity=res.result; |
| | | } |
| | | }); |
| | | } |
| | | for(var i=0;i<permsEntity.length;i++) { |
| | | if(val===permsEntity[i].perms) { |
| | | this.showPermsMenu(permsEntity[i]); |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | mounted () { |
| | | this.getDirTree(); |
| | | this.getPerms(); |
| | | |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | .subpage_Box { |
| | | //height: 96%; |
| | | width: calc(98% - 20px); |
| | | height: calc(95% - 20px); |
| | | padding: 1%; |
| | | height: calc(95.5% - 20px); |
| | | |
| | | border-radius: 10px; |
| | | background: #f4f8ff; |
| | | margin: 10px; |
| | | // .cataLogContent { |
| | | // width: 100%; |
| | | // height: 100%; |
| | | // display: flex; |
| | | // // align-items: center; |
| | | // justify-content: space-between; |
| | | // .cataLog_leftTree { |
| | | // width: 30%; |
| | | // height: 98%; |
| | | // border-radius: 5px; |
| | | // padding: 10px; |
| | | // overflow-y: auto; |
| | | // } |
| | | // .cataLog_rightContent { |
| | | // width: 66%; |
| | | // height: 98%; |
| | | // border-radius: 5px; |
| | | // padding: 10px; |
| | | // .menuTop { |
| | | // /deep/ .el-form-item { |
| | | // margin-bottom: 0px; |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | } |
| | | |
| | | .mainBox { |
| | | padding-top: 10px; |
| | | width: 100%; |
| | | height: calc(100% - 75px); |
| | | height: calc(100% - 40px); |
| | | display: flex; |
| | | justify-content: space-around; |
| | | .leftTree { |
| | | width: calc(32% - 0px); |
| | | height: 100%; |
| | | padding: 10px; |
| | | border-radius: 5px; |
| | | box-sizing: border-box; |
| | | overflow-y: auto; |
| | | flex-direction: column; |
| | | .mainContent { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | .right { |
| | | width: 65%; |
| | | height: 100%; |
| | | border-radius: 5px; |
| | | padding: 10px; |
| | | box-sizing: border-box; |
| | | border: 1px solid #dcdfe6; |
| | | .inquire { |
| | | // margin-bottom: 10px; |
| | | padding: 8px; |
| | | // margin-top: 10px; |
| | | border-radius: 5px; |
| | | //border: 1px solid #dcdfe6; |
| | | //margin-bottom: 20px; |
| | | .el-form-item { |
| | | margin: 5px; |
| | | } |
| | | } |
| | | .taleBox { |
| | | flex: 1; |
| | | margin-top: 10px; |
| | | margin-bottom: 10px; |
| | | } |
| | | .right_menu { |
| | | position: fixed; |
| | | display: block; |
| | | z-index: 10000; |
| | | padding: 10px; |
| | | border: 1px solid #ebeef5; |
| | | border-radius: 4px; |
| | | box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); |
| | | ul { |
| | | width: 100%; |
| | | height: 100%; |
| | | list-style: none; |
| | | margin: 0; |
| | | padding: 0; |
| | | border-radius: 2%; |
| | | li { |
| | | margin: 0 0 1px 0; |
| | | color: rgb(77, 77, 73); |
| | | text-align: center; |
| | | font-size: 14px; |
| | | padding: 4%; |
| | | width: 100%; |
| | | height: 9.7%; |
| | | float: left; |
| | | } |
| | | li:hover { |
| | | color: #409eff !important; |
| | | } |
| | | } |
| | | .pageBox { |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | } |
| | | .loadBox { |
| | |
| | | element-loading-background="rgba(0, 0, 0, 0.8)" |
| | | :element-loading-text="loadText"> |
| | | <My-bread :list="[ |
| | | `${$t('dataManage.dataManage')}`, |
| | | `${$t('dataManage.dataUpdata')}`, |
| | | `数据资源管理`, |
| | | `多媒体素材管理`, |
| | | ]"></My-bread> |
| | | <el-divider /> |
| | | <el-tabs type="card" |
| | |
| | | :model="formInline" |
| | | class="demo-form-inline"> |
| | | <!-- 入库类型 --> |
| | | <el-form-item :label="$t('dataManage.dataUpObj.UploadType')" |
| | | <!-- <el-form-item :label="$t('dataManage.dataUpObj.UploadType')" |
| | | style="margin-right: 2%" |
| | | size="small"> |
| | | <el-select :disabled="tableData.length == 0 ? false : true" |
| | |
| | | @change="uploadTypeChange" |
| | | :popper-append-to-body="false" |
| | | placeholder="请选择"> |
| | | <!-- <el-option |
| | | v-for="item in uploadOption" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | ></el-option>--> |
| | | |
| | | |
| | | <el-option :label="$t('shuJuGuanLi.pselect.dFile')" |
| | | value="v1" /> |
| | | <el-option :label="$t('shuJuGuanLi.pselect.dFiles')" |
| | | value="v2" /> |
| | | <el-option :label="$t('shuJuGuanLi.pselect.dFfilest')" |
| | | value="v3" /> |
| | | </el-select> |
| | | <el-option :label="$t('shuJuGuanLi.pselect.dFile')" |
| | | value="v1" /> |
| | | <el-option :label="$t('shuJuGuanLi.pselect.dFiles')" |
| | | value="v2" /> |
| | | <el-option :label="$t('shuJuGuanLi.pselect.dFfilest')" |
| | | value="v3" /> |
| | | </el-select> |
| | | |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <!-- 存储目录 --> |
| | | <el-form-item style="margin-right: 2%" |
| | | <!-- <el-form-item style="margin-right: 2%" |
| | | v-show="uploadFlag" |
| | | :label="$t('dataManage.dataUpObj.storageDirectory')" |
| | | size="small"> |
| | |
| | | :props="cascader" |
| | | @node-click="catalogChange" /> |
| | | </el-option> |
| | | </el-select> |
| | | <!-- <el-cascader |
| | | </el-select> --> |
| | | <!-- <el-cascader |
| | | :disabled="tableData.length == 0 ? false : true" |
| | | v-model="formInline.dirid" |
| | | :options="catalogOption" |
| | |
| | | ref="selectcascader" |
| | | :props="cascader" |
| | | ></el-cascader> --> |
| | | </el-form-item> |
| | | <!-- </el-form-item> --> |
| | | <!-- 项目名称 --> |
| | | <el-form-item style="margin-right: 2%" |
| | | <!-- <el-form-item style="margin-right: 2%" |
| | | v-show="!uploadFlag" |
| | | :label="$t('dataManage.dataUpObj.entryName')" |
| | | size="small"> |
| | |
| | | :label="item.name" |
| | | :value="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <!-- 数据版本 --> |
| | | <el-form-item :label="$t('dataManage.dataUpObj.dataVersion')" |
| | | <!-- <el-form-item :label="$t('dataManage.dataUpObj.dataVersion')" |
| | | style="margin-right: 2%" |
| | | size="small"> |
| | | <el-select :popper-append-to-body="false" |
| | |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <!-- 数据专业 --> |
| | | <el-form-item :label="$t('dataManage.dataUpObj.dataSpecialty')" |
| | | <!-- <el-form-item :label="$t('dataManage.dataUpObj.dataSpecialty')" |
| | | style="margin-right: 2%" |
| | | size="small"> |
| | | <el-select :popper-append-to-body="false" |
| | | :disabled="tableData.length == 0 ? false : true" |
| | | v-model="formInline.specialtyId" |
| | | :placeholder="$t('common.choose')"> |
| | | <!-- <el-option |
| | | v-for="item in specialtyOption" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option>--> |
| | | |
| | | <el-option :label="$t('shuJuGuanLi.pselect.SurveyingAndMapping')" |
| | | value="测量专业" /> |
| | |
| | | <el-option :label="$t('shuJuGuanLi.pselect.LineDiscipline')" |
| | | value='线路专业' /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <!-- 坐标系 --> |
| | | <el-form-item :label="$t('dataManage.dataUpObj.coordinateSystem')" |
| | | <!-- <el-form-item :label="$t('dataManage.dataUpObj.coordinateSystem')" |
| | | style="margin-right: 3%" |
| | | size="small"> |
| | | <el-select :popper-append-to-body="false" |
| | |
| | | :value="item.epsgcode"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <div class="flex_box"> |
| | | <div style="margin-right: auto"> |
| | | <!-- 线路类别 --> |
| | |
| | | </el-input> |
| | | </el-form-item> |
| | | <!-- 选择元数据 --> |
| | | <el-form-item v-show="uploadFlag" |
| | | <!-- <el-form-item v-show="uploadFlag" |
| | | v-if="formInline.uploadType == 'v1'" |
| | | style="padding-left: 16px"> |
| | | <el-link :disabled="tableData.length == 0 ? false : true" |
| | |
| | | accept=".xls,.xlsx" |
| | | style="display: none" |
| | | @change="handleMetaFileChange"></input> |
| | | </el-form-item> |
| | | <el-form-item v-show="uploadFlag" |
| | | </el-form-item> --> |
| | | <!-- <el-form-item v-show="uploadFlag" |
| | | v-if="formInline.uploadType == 'v1'" |
| | | size="small"> |
| | | <el-input :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueone')" |
| | |
| | | style="width:200px;" |
| | | disabled> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <!-- 选择WBS数据 --> |
| | | <el-form-item v-show="!uploadFlag"> |
| | | <el-link :disabled="tableData.length == 0 ? false : true" |
| | |
| | | <div> |
| | | <el-form-item> |
| | | <!-- 上传 --> |
| | | <el-button v-if="menuStatus.upload" |
| | | :disabled="tableData.length == 0 ? false : true" |
| | | <el-button :disabled="tableData.length == 0 ? false : true" |
| | | @click="setFileUpload" |
| | | size="small" |
| | | icon="el-icon-upload" |
| | |
| | | }} |
| | | </el-button> |
| | | <!-- 删除 --> |
| | | <el-button v-if="menuStatus.delete" |
| | | :disabled="multipleSelection.length == 0 ? true : false" |
| | | <el-button :disabled="multipleSelection.length == 0 ? true : false" |
| | | icon="el-icon-delete" |
| | | size="small" |
| | | @click="setFileDelete" |
| | | type="danger">{{ $t('common.delete') }} |
| | | </el-button> |
| | | <!-- 入库 --> |
| | | <el-button v-if="menuStatus.insert" |
| | | @click="setFileWare" |
| | | <el-button @click="setFileWare" |
| | | size="small" |
| | | :disabled="tableData.length == 0 ? true : false" |
| | | icon="el-icon-folder-add" |
| | |
| | | }, |
| | | |
| | | mounted () { |
| | | this.noteVisible=true; |
| | | // this.noteVisible=true; |
| | | //获取坐标系 |
| | | this.setCoordinateSystem(); |
| | | //获取项目名称 |
| | |
| | | }; |
| | | </script> |
| | | <style lang="less" scoped> |
| | | .subpage_Box { |
| | | width: calc(98% - 20px); |
| | | height: 88% !important; |
| | | padding: 1%; |
| | | background: #f4f8ff; |
| | | margin: 10px; |
| | | position: absolute; |
| | | /* overflow: auto; */ |
| | | } |
| | | .bottom { |
| | | width: 100%; |
| | | margin-top: 0.5%; |
| | |
| | | height: 570px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | |
| | | background: #f4f8ff; |
| | | .rightTable { |
| | | width: 98%; |
| | | height: 92%; |
| | | |
| | | background: #f4f8ff; |
| | | border-radius: 5px; |
| | | padding: 1%; |
| | | |
| | |
| | | <template> |
| | | <div class="authorityManagement_box"> |
| | | <My-bread :list="[ |
| | | `${$t('dataManage.dataManage')}`, |
| | | `${$t('dataManage.templateManage')}`, |
| | | `数据资源管理`, |
| | | `通用模板管理`, |
| | | ]"></My-bread> |
| | | <el-divider /> |
| | | <div class="searchComp subpage_Div" ref="container"> |
| | | <el-form ref="ruleForm" :model="ruleForm" :inline="true"> |
| | | <div class="searchComp subpage_Div" |
| | | ref="container"> |
| | | <el-form ref="ruleForm" |
| | | :model="ruleForm" |
| | | :inline="true"> |
| | | <div class="flex_box"> |
| | | <div style="margin-right: auto"> |
| | | <el-form-item :label="$t('userManage.authorityM.name')"> |
| | | <el-input style="width:200px" size="small" v-model="ruleForm.name" |
| | | :placeholder="$t('userManage.authorityM.nameHolder')"> |
| | | <i slot="suffix" class="el-icon-search" @click="setRefreshTable"></i> |
| | | <el-input style="width:200px" |
| | | size="small" |
| | | v-model="ruleForm.name" |
| | | :placeholder="$t('userManage.authorityM.nameHolder')"> |
| | | <i slot="suffix" |
| | | class="el-icon-search" |
| | | @click="setRefreshTable"></i> |
| | | </el-input> |
| | | </el-form-item> |
| | | </div> |
| | |
| | | <!-- >{{ $t('common.iquery') }}</el-button>--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item> |
| | | <el-button v-if="btnStatus.insert" @click="setTableInsert" icon="el-icon-edit" type="success" |
| | | size="small">{{ $t('common.append') }}</el-button> |
| | | <el-button v-if="btnStatus.insert" |
| | | @click="setTableInsert" |
| | | icon="el-icon-edit" |
| | | type="success" |
| | | size="small">{{ $t('common.append') }}</el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button v-if="btnStatus.delete" icon="el-icon-delete" @click="delTableData" type="danger" |
| | | size="small">{{ |
| | | <el-button v-if="btnStatus.delete" |
| | | icon="el-icon-delete" |
| | | @click="delTableData" |
| | | type="danger" |
| | | size="small">{{ |
| | | $t('common.delete') }}</el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button icon="el-icon-refresh" @click="restRefreshTable" type="info" size="small">{{ $t('common.empty') |
| | | <el-button icon="el-icon-refresh" |
| | | @click="restRefreshTable" |
| | | type="info" |
| | | size="small">{{ $t('common.empty') |
| | | }}</el-button> |
| | | </el-form-item> |
| | | </div> |
| | |
| | | </el-form> |
| | | </div> |
| | | <div class="dividing-line"></div> |
| | | <div class="table_box" :style="styleVar"> |
| | | <el-table :data="tableData" style="width: 100%" border @selection-change="handleSelectionChange" |
| | | height="calc(100% - 45px)"> |
| | | <el-table-column type="selection" width="55" /> |
| | | <el-table-column align="center" type="index" :label="$t('dataManage.styleObj.index')" width="70px" /> |
| | | <el-table-column align="center" prop="name" :label="$t('dataManage.styleObj.name')" /> |
| | | <el-table-column align="center" prop="type" :label="$t('common.fileType')"> |
| | | <div class="table_box" |
| | | :style="styleVar"> |
| | | <el-table :data="tableData" |
| | | style="width: 100%" |
| | | border |
| | | @selection-change="handleSelectionChange" |
| | | height="calc(100% - 65px)"> |
| | | <el-table-column type="selection" |
| | | width="55" /> |
| | | <el-table-column align="center" |
| | | type="index" |
| | | :label="$t('dataManage.styleObj.index')" |
| | | width="70px" /> |
| | | <el-table-column align="center" |
| | | prop="name" |
| | | :label="$t('dataManage.styleObj.name')" /> |
| | | <el-table-column align="center" |
| | | prop="type" |
| | | :label="$t('common.fileType')"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.type == 1">World模板 </span> |
| | | <span v-else-if="scope.row.type == 2">Excel模板</span> |
| | | <span v-else-if="scope.row.type == 3">Zip模板</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" prop="code" :label="$t('common.templateType')" :formatter="codeData" /> |
| | | <el-table-column align="center" |
| | | prop="code" |
| | | :label="$t('common.templateType')" |
| | | :formatter="codeData" /> |
| | | <!-- <el-table-column |
| | | align="center" |
| | | prop="fname" |
| | |
| | | prop="bak" |
| | | :label="$t('common.bak')" |
| | | /> --> |
| | | <el-table-column align="center" prop="createName" :label="$t('dataManage.vmobj.createonuser')" /> |
| | | <el-table-column align="center" prop="createTime" :label="$t('dataManage.vmobj.createontime')" |
| | | :formatter="formatData" /> |
| | | <el-table-column min-width="100" :label="$t('dataManage.dictionaryManageObj.operation')"> |
| | | <el-table-column align="center" |
| | | prop="createName" |
| | | :label="$t('dataManage.vmobj.createonuser')" /> |
| | | <el-table-column align="center" |
| | | prop="createTime" |
| | | :label="$t('dataManage.vmobj.createontime')" |
| | | :formatter="formatData" /> |
| | | <el-table-column min-width="100" |
| | | :label="$t('dataManage.dictionaryManageObj.operation')"> |
| | | |
| | | <template slot-scope="scope"> |
| | | <el-button v-if="btnStatus.select" @click="showDetail(scope.$index, scope.row)" type="primary" plain |
| | | size="small">{{ $t('dataManage.dictionaryManageObj.lookOver') }}</el-button> |
| | | <el-button v-if="btnStatus.update" @click="handleEdit(scope.$index, scope.row)" type="warning" plain |
| | | size="small">{{ $t('dataManage.dictionaryManageObj.revamp') }}</el-button> |
| | | <el-button v-if="btnStatus.download" plain @click="handleDownload(scope.$index, scope.row)" type="info" |
| | | size="small">{{ $t('common.download') }}</el-button> |
| | | <el-button v-if="btnStatus.select" |
| | | @click="showDetail(scope.$index, scope.row)" |
| | | type="primary" |
| | | plain |
| | | size="small">{{ $t('dataManage.dictionaryManageObj.lookOver') }}</el-button> |
| | | <el-button v-if="btnStatus.update" |
| | | @click="handleEdit(scope.$index, scope.row)" |
| | | type="warning" |
| | | plain |
| | | size="small">{{ $t('dataManage.dictionaryManageObj.revamp') }}</el-button> |
| | | <el-button v-if="btnStatus.download" |
| | | plain |
| | | @click="handleDownload(scope.$index, scope.row)" |
| | | type="info" |
| | | size="small">{{ $t('common.download') }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div 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 @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> |
| | |
| | | <el-dialog :title="behavior == '新增' |
| | | ? `${$t('common.append')}` |
| | | : `${$t('common.update')}` |
| | | " :visible.sync="dialogVisible" :before-close="handleClose"> |
| | | " |
| | | :visible.sync="dialogVisible" |
| | | :before-close="handleClose"> |
| | | <div style="height: 500px; overflow: auto"> |
| | | <el-form ref="form" :model="editForm" label-width="100px" label-position="top"> |
| | | <el-form ref="form" |
| | | :model="editForm" |
| | | label-width="100px" |
| | | label-position="top"> |
| | | <el-form-item :label="$t('dataManage.styleObj.name')"> |
| | | <el-input style="width:85%" v-model="editForm.name" |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo') + $t('dataManage.styleObj.name')"></el-input> |
| | | <el-input style="width:85%" |
| | | v-model="editForm.name" |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo') + $t('dataManage.styleObj.name')"></el-input> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('common.templateType')"> |
| | | <!-- <el-input |
| | | style="width:100%" |
| | | v-model=" editForm.code" |
| | | ></el-input> --> |
| | | <el-select :popper-append-to-body="false" style="width:85%" @change="selFileCodeChange" |
| | | v-model="editForm.code" |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetree') + $t('dataManage.common.templateType')"> |
| | | <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> |
| | | <el-select :popper-append-to-body="false" |
| | | style="width:85%" |
| | | @change="selFileCodeChange" |
| | | v-model="editForm.code" |
| | | disabled |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetree') + $t('dataManage.common.templateType')"> |
| | | <el-option v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('common.fileType')"> |
| | | <el-select :popper-append-to-body="false" v-model="editForm.type" @change="selFileTypeChange" |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetree') + $t('common.fileType')" style="width:85%"> |
| | | <el-option v-for="item in typeOption" :key="item.value" :label="item.label" :value="item.value"> |
| | | <el-select :popper-append-to-body="false" |
| | | v-model="editForm.type" |
| | | @change="selFileTypeChange" |
| | | disabled |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetree') + $t('common.fileType')" |
| | | style="width:85%"> |
| | | <el-option v-for="item in typeOption" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | <!-- <el-option |
| | | label="World模板" |
| | |
| | | <el-form-item :label="$t('common.filePath')"> |
| | | <div class="BoxFlex"> |
| | | <div class="BoxFlexinput"> |
| | | <el-input v-model="editForm.fname" disabled autocomplete="off" style="width:100%"></el-input> |
| | | <el-input v-model="editForm.fname" |
| | | disabled |
| | | autocomplete="off" |
| | | style="width:100%"></el-input> |
| | | </div> |
| | | <div class="BoxFlexbutton"> |
| | | <input name="file1" type="file" id="editFile" multiple="multiple" :accept="selectFileType" |
| | | style="display: none" @change="geteditFile(1)" /> |
| | | <el-button style="margin-left: 6px;" type="primary" size="small" :underline="false" |
| | | @click="geteditFile(0)">选择</el-button> |
| | | <el-button type="primary" size="small" :underline="false" @click="geteditFile(2)">上传</el-button> |
| | | <input name="file1" |
| | | type="file" |
| | | id="editFile" |
| | | multiple="multiple" |
| | | :accept="selectFileType" |
| | | style="display: none" |
| | | @change="geteditFile(1)" /> |
| | | <el-button style="margin-left: 6px;" |
| | | type="primary" |
| | | size="small" |
| | | :underline="false" |
| | | @click="geteditFile(0)">选择</el-button> |
| | | <el-button type="primary" |
| | | size="small" |
| | | :underline="false" |
| | | @click="geteditFile(2)">上传</el-button> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('common.bak')"> |
| | | <el-input style="width:85%" v-model="editForm.bak" |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo') + $t('common.bak')"></el-input> |
| | | <el-input style="width:85%" |
| | | v-model="editForm.bak" |
| | | :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo') + $t('common.bak')"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div v-if="behavior == '新增'" slot="footer" class="dialog-footer"> |
| | | <el-button size="small" @click="closeInsertData">取 消</el-button> |
| | | <el-button type="primary" size="small" @click="addInsertData">确 定</el-button> |
| | | <div v-if="behavior == '新增'" |
| | | slot="footer" |
| | | class="dialog-footer"> |
| | | <el-button size="small" |
| | | @click="closeInsertData">取 消</el-button> |
| | | <el-button type="primary" |
| | | size="small" |
| | | @click="addInsertData">确 定</el-button> |
| | | </div> |
| | | <div v-if="behavior != '新增'" slot="footer" class="dialog-footer"> |
| | | <el-button size="small" @click="closeEditData">取 消</el-button> |
| | | <el-button type="primary" size="small" @click="addEditData">确 定</el-button> |
| | | <div v-if="behavior != '新增'" |
| | | slot="footer" |
| | | class="dialog-footer"> |
| | | <el-button size="small" |
| | | @click="closeEditData">取 消</el-button> |
| | | <el-button type="primary" |
| | | size="small" |
| | | @click="addEditData">确 定</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <div class="infoBox_box" v-show="showinfoBox"> |
| | | <div class="infoBox_box" |
| | | v-show="showinfoBox"> |
| | | <div class="infoBox subpage_Div box_div"> |
| | | |
| | | <div slot="header" class="clearfix"> |
| | | <div slot="header" |
| | | class="clearfix"> |
| | | <span>{{ $t('dataManage.styleObj.deInformation') }}</span> |
| | | <div style="float: right; cursor: pointer" @click="closeDetial"> |
| | | <div style="float: right; cursor: pointer" |
| | | @click="closeDetial"> |
| | | <i class="el-icon-close"></i> |
| | | </div> |
| | | </div> |
| | |
| | | </p> |
| | | <el-divider></el-divider> |
| | | <p> |
| | | <p> |
| | | <label> {{ $t('common.fileType') }}:</label> |
| | | <label class="boxlabel">{{ itemdetail.fileType }}</label> |
| | | </p> |
| | | <p> |
| | | <label> {{ $t('common.fileType') }}:</label> |
| | | <label class="boxlabel">{{ itemdetail.fileType }}</label> |
| | | </p> |
| | | </p> |
| | | <el-divider></el-divider> |
| | | <p> |
| | |
| | | |
| | | </div> |
| | | </div> |
| | | <iframe id="downFrame" src="" style="display: none; border: 0; padding: 0; height: 0; width: 0"></iframe> |
| | | <iframe id="downFrame" |
| | | src="" |
| | | style="display: none; border: 0; padding: 0; height: 0; width: 0"></iframe> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | export default { |
| | | name: "templateManage", |
| | | components: { MyBread }, |
| | | data() { |
| | | data () { |
| | | return { |
| | | options: [], |
| | | itemdetail: {}, |
| | |
| | | rowGuid: null, |
| | | }; |
| | | }, |
| | | created() { |
| | | created () { |
| | | this.showPermsBtn(); |
| | | this.showTableData(); |
| | | }, |
| | | beforeDestroy() { |
| | | this.timer && clearTimeout(this.timer); |
| | | window.removeEventListener("resize", this.onResize); |
| | | beforeDestroy () { |
| | | this.timer&&clearTimeout(this.timer); |
| | | window.removeEventListener("resize",this.onResize); |
| | | }, |
| | | mounted() { |
| | | mounted () { |
| | | |
| | | var obj = dataStatistics.statistics.filter(res => { |
| | | if (res.isMenu != false) |
| | | var obj=dataStatistics.statistics.filter(res => { |
| | | if(res.isMenu!=false) |
| | | return res; |
| | | }) |
| | | this.options = obj |
| | | window.addEventListener("resize", this.onResize); |
| | | this.options=obj |
| | | window.addEventListener("resize",this.onResize); |
| | | this.calHeight(); |
| | | }, |
| | | methods: { |
| | | onResize() { |
| | | this.timer && clearTimeout(this.timer); |
| | | this.timer = setTimeout(() => { |
| | | onResize () { |
| | | this.timer&&clearTimeout(this.timer); |
| | | this.timer=setTimeout(() => { |
| | | this.calHeight(); |
| | | }, 500); |
| | | },500); |
| | | }, |
| | | calHeight() { |
| | | calHeight () { |
| | | this.$nextTick(() => { |
| | | const rect = this.$refs.container.getBoundingClientRect(); |
| | | this.tableHeight = `${rect.height + 97}px`; |
| | | this.styleVar["height"] = `calc(100% - ${rect.height + 30}px)`; |
| | | const rect=this.$refs.container.getBoundingClientRect(); |
| | | this.tableHeight=`${rect.height+97}px`; |
| | | this.styleVar["height"]=`calc(100% - ${rect.height+30}px)`; |
| | | // this.styleVar["height"] = `calc(100% - ${rect.height + 97}px)`; |
| | | }); |
| | | }, |
| | | //修改取消 |
| | | closeEditData() { |
| | | closeEditData () { |
| | | this.closeInsertData(); |
| | | }, |
| | | handleClose() { |
| | | handleClose () { |
| | | var blackTheme; |
| | | if (this.$store.state.themeflag == true) { |
| | | blackTheme = { |
| | | if(this.$store.state.themeflag==true) { |
| | | blackTheme={ |
| | | customClass: "Black_theme", |
| | | }; |
| | | } |
| | | |
| | | this.$confirm("关闭后无法保存,是否关闭?", blackTheme) |
| | | this.$confirm("关闭后无法保存,是否关闭?",blackTheme) |
| | | .then((_) => { |
| | | this.closeInsertData(); |
| | | }) |
| | | .catch((_) => { }); |
| | | }, |
| | | codeData(row, column) { |
| | | codeData (row,column) { |
| | | |
| | | var code = row.code; |
| | | let val = this.options.filter(res => { |
| | | if (res.value == code) { |
| | | var code=row.code; |
| | | let val=this.options.filter(res => { |
| | | if(res.value==code) { |
| | | return res |
| | | } |
| | | }) |
| | | if (val.length > 0) { |
| | | if(val.length>0) { |
| | | return val[0].label |
| | | } else { |
| | | return code |
| | |
| | | |
| | | }, |
| | | //查看 |
| | | showDetail(index, row) { |
| | | this.itemdetail = row; |
| | | showDetail (index,row) { |
| | | this.itemdetail=row; |
| | | |
| | | if (parseInt(row.type) == 1) { |
| | | this.itemdetail.fileType = "World模板"; |
| | | } else if (parseInt(row.type) == 2) { |
| | | this.itemdetail.fileType = "Excel模板"; |
| | | } else if (parseInt(row.type) == 3) { |
| | | this.itemdetail.fileType = "Zip模板"; |
| | | if(parseInt(row.type)==1) { |
| | | this.itemdetail.fileType="World模板"; |
| | | } else if(parseInt(row.type)==2) { |
| | | this.itemdetail.fileType="Excel模板"; |
| | | } else if(parseInt(row.type)==3) { |
| | | this.itemdetail.fileType="Zip模板"; |
| | | } |
| | | var val = this.options.filter(res => { |
| | | if (res.value == row.code) { |
| | | var val=this.options.filter(res => { |
| | | if(res.value==row.code) { |
| | | return res |
| | | } |
| | | }) |
| | | if (val.length > 0 && val[0].label) { |
| | | this.itemdetail.code = val[0].label; |
| | | if(val.length>0&&val[0].label) { |
| | | this.itemdetail.code=val[0].label; |
| | | } |
| | | |
| | | // if (row.code.indexOf("countSizes") != -1) { |
| | |
| | | // this.itemdetail.code = "用户流量统计"; |
| | | // } |
| | | |
| | | this.itemdetail.cTime = this.format(row.createTime); |
| | | if (row.updateTime) { |
| | | this.itemdetail.cTime=this.format(row.createTime); |
| | | if(row.updateTime) { |
| | | |
| | | this.itemdetail.uTime = this.format(row.updateTime); |
| | | this.itemdetail.uTime=this.format(row.updateTime); |
| | | } |
| | | // this.itemdetail.uTime = this.format(row.updateTime); |
| | | this.showinfoBox = true; |
| | | this.showinfoBox=true; |
| | | }, |
| | | //关闭查看 |
| | | closeDetial() { |
| | | this.showinfoBox = false; |
| | | closeDetial () { |
| | | this.showinfoBox=false; |
| | | }, |
| | | //下载 |
| | | handleDownload(index, row) { |
| | | var token = getToken(); |
| | | var url = |
| | | BASE_URL + "/report/download?token=" + token + "&guid=" + row.guid; |
| | | $("#downFrame").attr("src", url).click(); |
| | | handleDownload (index,row) { |
| | | var token=getToken(); |
| | | var url= |
| | | BASE_URL+"/report/download?token="+token+"&guid="+row.guid; |
| | | $("#downFrame").attr("src",url).click(); |
| | | }, |
| | | //修改提交 |
| | | async addEditData() { |
| | | this.editForm.guid = this.rowGuid; |
| | | async addEditData () { |
| | | this.editForm.guid=this.rowGuid; |
| | | debugger |
| | | const data = await report_update(this.editForm); |
| | | if (data.code != 200) { |
| | | const data=await report_update(this.editForm); |
| | | if(data.code!=200) { |
| | | return this.$message.error("修改失败"); |
| | | } |
| | | this.$message({ |
| | |
| | | this.closeInsertData(); |
| | | }, |
| | | //文件类型切换 |
| | | selFileTypeChange(val) { |
| | | if (parseInt(val) == 1) { |
| | | this.selectFileType = ".docx"; |
| | | } else if (parseInt(val) == 2) { |
| | | this.selectFileType = ".xlsx"; |
| | | } else if (parseInt(val) == 3) { |
| | | this.selectFileType = ".zip"; |
| | | selFileTypeChange (val) { |
| | | if(parseInt(val)==1) { |
| | | this.selectFileType=".docx"; |
| | | } else if(parseInt(val)==2) { |
| | | this.selectFileType=".xlsx"; |
| | | } else if(parseInt(val)==3) { |
| | | this.selectFileType=".zip"; |
| | | } |
| | | }, |
| | | selFileCodeChange(res) { |
| | | selFileCodeChange (res) { |
| | | var name; |
| | | for (var i in this.options) { |
| | | if (this.options[i].value == res) { |
| | | name = this.options[i].label |
| | | for(var i in this.options) { |
| | | if(this.options[i].value==res) { |
| | | name=this.options[i].label |
| | | break; |
| | | } |
| | | } |
| | | console.log(name) |
| | | if (name.indexOf('统计') > -1) { |
| | | this.typeOption = [{ |
| | | label: "World模板", |
| | | value: "1" |
| | | }, { |
| | | if(name.indexOf('统计')>-1) { |
| | | this.typeOption=[{ |
| | | label: "Excel模板", |
| | | value: "2" |
| | | }] |
| | | |
| | | } else { |
| | | this.typeOption = [{ |
| | | label: "World模板", |
| | | value: "1" |
| | | }, { |
| | | this.typeOption=[{ |
| | | label: "Excel模板", |
| | | value: "2" |
| | | }, { |
| | | label: "Zip模板", |
| | | value: "3" |
| | | }] |
| | | } |
| | | this.editForm.type = this.typeOption[0].value |
| | | this.editForm.type=this.typeOption[0].value |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | //修改 |
| | | handleEdit(index, row) { |
| | | this.behavior = "修改"; |
| | | this.editForm = row; |
| | | handleEdit (index,row) { |
| | | this.behavior="修改"; |
| | | this.editForm=row; |
| | | |
| | | if (row.name.indexOf('统计') > -1) { |
| | | this.typeOption = [{ |
| | | if(row.name.indexOf('统计')>-1) { |
| | | this.typeOption=[{ |
| | | label: "World模板", |
| | | value: "1" |
| | | }, { |
| | | },{ |
| | | label: "Excel模板", |
| | | value: "2" |
| | | }] |
| | | |
| | | } else { |
| | | this.typeOption = [{ |
| | | this.typeOption=[{ |
| | | label: "World模板", |
| | | value: "1" |
| | | }, { |
| | | },{ |
| | | label: "Excel模板", |
| | | value: "2" |
| | | }, { |
| | | },{ |
| | | label: "Zip模板", |
| | | value: "3" |
| | | }] |
| | | } |
| | | if (parseInt(row.type) == 1) { |
| | | this.selectFileType = ".docx"; |
| | | } else if (parseInt(row.type) == 2) { |
| | | this.selectFileType = ".xlsx"; |
| | | if(parseInt(row.type)==1) { |
| | | this.selectFileType=".docx"; |
| | | } else if(parseInt(row.type)==2) { |
| | | this.selectFileType=".xlsx"; |
| | | } |
| | | this.rowGuid = row.guid; |
| | | this.rowGuid=row.guid; |
| | | |
| | | |
| | | |
| | | |
| | | this.dialogVisible = true; |
| | | this.dialogVisible=true; |
| | | }, |
| | | //删除 |
| | | async delTableData() { |
| | | if (this.multipleSelection.length == 0) { |
| | | async delTableData () { |
| | | if(this.multipleSelection.length==0) { |
| | | return this.$message("请选择要删除的数据"); |
| | | } |
| | | var std = []; |
| | | for (var i in this.multipleSelection) { |
| | | var std=[]; |
| | | for(var i in this.multipleSelection) { |
| | | std.push(this.multipleSelection[i].id); |
| | | } |
| | | this.$confirm("此操作将永久删除该模块, 是否继续?", "提示", { |
| | | this.$confirm("此操作将永久删除该模块, 是否继续?","提示",{ |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(async () => { |
| | | const data = await report_deletes({ ids: std.toString() }); |
| | | if (data.code == 200) { |
| | | this.InsertFormdialog = false; |
| | | const data=await report_deletes({ ids: std.toString() }); |
| | | if(data.code==200) { |
| | | this.InsertFormdialog=false; |
| | | this.$message({ |
| | | message: "删除成功!", |
| | | type: "success", |
| | |
| | | }, |
| | | |
| | | //重置查询 |
| | | restRefreshTable() { |
| | | this.ruleForm.name = ""; |
| | | restRefreshTable () { |
| | | this.ruleForm.name=""; |
| | | this.setRefreshTable(); |
| | | }, |
| | | //重置刷新Table |
| | | setRefreshTable() { |
| | | this.listData.pageIndex = 1; |
| | | this.listData.pageSize = 10; |
| | | setRefreshTable () { |
| | | this.listData.pageIndex=1; |
| | | this.listData.pageSize=10; |
| | | this.showTableData(); |
| | | }, |
| | | //新增一条数据 |
| | | async addInsertData() { |
| | | this.editForm.guid = this.rowGuid; |
| | | const data = await report_insert(this.editForm); |
| | | if (data.code != 200) { |
| | | async addInsertData () { |
| | | this.editForm.guid=this.rowGuid; |
| | | const data=await report_insert(this.editForm); |
| | | if(data.code!=200) { |
| | | return this.$message.error("新增失败"); |
| | | } |
| | | this.$message({ |
| | |
| | | this.closeInsertData(); |
| | | }, |
| | | //关闭新增 |
| | | closeInsertData() { |
| | | this.dialogVisible = false; |
| | | this.editForm = { |
| | | closeInsertData () { |
| | | this.dialogVisible=false; |
| | | this.editForm={ |
| | | fname: "", |
| | | guid: "", |
| | | name: "", |
| | |
| | | bak: "", |
| | | }; |
| | | this.setRefreshTable(); |
| | | document.getElementById("editFile").value = ""; |
| | | document.getElementById("editFile").value=""; |
| | | }, |
| | | //文件上传 |
| | | async geteditFile(res) { |
| | | async geteditFile (res) { |
| | | |
| | | if (parseInt(this.editForm.type) == 1) { |
| | | this.selectFileType = ".docx"; |
| | | } else if (parseInt(this.editForm.type) == 2) { |
| | | this.selectFileType = ".xlsx"; |
| | | } |
| | | // if(parseInt(this.editForm.type)==1) { |
| | | // this.selectFileType=".docx"; |
| | | // } else if(parseInt(this.editForm.type)==2) { |
| | | // this.selectFileType=".xlsx"; |
| | | // } |
| | | this.selectFileType=".xlsx"; |
| | | this.$nextTick(() => { |
| | | this.setEditFile(res) |
| | | }) |
| | | |
| | | }, |
| | | async setEditFile(res) { |
| | | if (res == 0) { |
| | | if (this.editForm.type == "") { |
| | | async setEditFile (res) { |
| | | if(res==0) { |
| | | if(this.editForm.type=="") { |
| | | return this.$message("请选择上传文件类型"); |
| | | } |
| | | |
| | | |
| | | |
| | | $("#editFile").click(); |
| | | } else if (res == 1) { |
| | | var val = document.getElementById("editFile").files; |
| | | if (!val || !val.length) return; |
| | | this.editForm.fname = val[0].name; |
| | | } else if (res == 2) { |
| | | var fs = document.getElementById("editFile"); |
| | | if (fs.files.length == 0) { |
| | | } else if(res==1) { |
| | | var val=document.getElementById("editFile").files; |
| | | if(!val||!val.length) return; |
| | | this.editForm.fname=val[0].name; |
| | | } else if(res==2) { |
| | | var fs=document.getElementById("editFile"); |
| | | if(fs.files.length==0) { |
| | | return; |
| | | } |
| | | var formData = new FormData(); |
| | | formData.append("file", fs.files[0]); |
| | | var val_data = await report_upload(formData); |
| | | if (val_data.code == 200) { |
| | | this.editForm.guid = val_data.result; |
| | | this.rowGuid = val_data.result; |
| | | var formData=new FormData(); |
| | | formData.append("file",fs.files[0]); |
| | | var val_data=await report_upload(formData); |
| | | if(val_data.code==200) { |
| | | this.editForm.guid=val_data.result; |
| | | this.rowGuid=val_data.result; |
| | | this.$message({ |
| | | message: "上传成功!", |
| | | type: "success", |
| | |
| | | } |
| | | }, |
| | | //格式化列表 |
| | | formatData(row, column) { |
| | | let data = row[column.property]; |
| | | if (data == null) { |
| | | formatData (row,column) { |
| | | let data=row[column.property]; |
| | | if(data==null) { |
| | | return data; |
| | | } |
| | | return this.format(data); |
| | | }, |
| | | //格式化时间 |
| | | format(shijianchuo) { |
| | | format (shijianchuo) { |
| | | //shijianchuo是整数,否则要parseInt转换 |
| | | 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); |
| | | 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); |
| | | }, |
| | | //格式化时间 |
| | | add0(m) { |
| | | return m < 10 ? "0" + m : m; |
| | | add0 (m) { |
| | | return m<10? "0"+m:m; |
| | | }, |
| | | //Table选择事件 |
| | | handleSelectionChange(val) { |
| | | this.multipleSelection = val; |
| | | handleSelectionChange (val) { |
| | | this.multipleSelection=val; |
| | | }, |
| | | |
| | | editFormStart() { |
| | | this.editForm.code = "dataTable"; |
| | | editFormStart () { |
| | | this.editForm.code="dataTable"; |
| | | var name; |
| | | for (var i in this.options) { |
| | | if (this.options[i].value == this.editForm.code) { |
| | | name = this.options[i].label |
| | | for(var i in this.options) { |
| | | if(this.options[i].value==this.editForm.code) { |
| | | name=this.options[i].label |
| | | break; |
| | | } |
| | | } |
| | | |
| | | if (name.indexOf('统计') > -1) { |
| | | this.typeOption = [{ |
| | | label: "World模板", |
| | | value: "1" |
| | | }, { |
| | | if(name.indexOf('统计')>-1) { |
| | | this.typeOption=[{ |
| | | label: "Excel模板", |
| | | value: "2" |
| | | }] |
| | | |
| | | } else { |
| | | this.typeOption = [{ |
| | | label: "World模板", |
| | | value: "1" |
| | | }, { |
| | | this.typeOption=[{ |
| | | label: "Excel模板", |
| | | value: "2" |
| | | }, { |
| | | label: "Zip模板", |
| | | value: "3" |
| | | }] |
| | | } |
| | | this.editForm.type = this.typeOption[0].value |
| | | this.editForm.type=this.typeOption[0].value |
| | | }, |
| | | |
| | | //新增弹窗 |
| | | setTableInsert() { |
| | | setTableInsert () { |
| | | this.editFormStart(); |
| | | this.behavior = "新增"; |
| | | this.dialogVisible = true; |
| | | this.behavior="新增"; |
| | | this.dialogVisible=true; |
| | | }, |
| | | //分页切换 |
| | | handleSizeChange(val) { |
| | | this.listData.pageSize = val; |
| | | this.listData.pageIndex = 1; |
| | | handleSizeChange (val) { |
| | | this.listData.pageSize=val; |
| | | this.listData.pageIndex=1; |
| | | this.showTableData(); |
| | | }, |
| | | //分页切换 |
| | | handleCurrentChange(val) { |
| | | this.listData.pageIndex = val; |
| | | handleCurrentChange (val) { |
| | | this.listData.pageIndex=val; |
| | | this.showTableData(); |
| | | }, |
| | | //列表调用 |
| | | async showTableData() { |
| | | this.listData.name = this.ruleForm.name; |
| | | const data = await report_selectByPageAndCount(this.listData); |
| | | if (data.code != 200) { |
| | | async showTableData () { |
| | | this.listData.name=this.ruleForm.name; |
| | | const data=await report_selectByPageAndCount(this.listData); |
| | | if(data.code!=200) { |
| | | return this.$message.error("列表调用失败"); |
| | | } |
| | | |
| | | this.tableData = data.result; |
| | | this.listData.count = data.count; |
| | | this.tableData=data.result; |
| | | this.listData.count=data.count; |
| | | }, |
| | | //权限配置 |
| | | showPermsBtn() { |
| | | let currentPerms = this.$store.state.currentPerms; |
| | | let permsEntity = this.$store.state.permsEntity; |
| | | 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)); |
| | | .filter((item) => item.perms==currentPerms) |
| | | .map((item) => (this.btnStatus[item.tag.substr(1)]=true)); |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | <style lang="less" scoped> |
| | | //@import url(); 引入公共css类 |
| | | .authorityManagement_box { |
| | | height: 98%; |
| | | width: 98%; |
| | | height: calc(97.5% - 20px); |
| | | width: calc(99% - 20px); |
| | | padding: 0.5%; |
| | | |
| | | background: #f4f8ff; |
| | | margin: 10px; |
| | | .el-input { |
| | | width: 730px; |
| | | } |