<template>
|
<div class="Spatialbox">
|
<My-bread :list="[
|
`${$t('dataManage.dataManage')}`,
|
`${$t('dataManage.dataRetrieval')}`,
|
]"></My-bread>
|
<el-divider />
|
<div class="spatialContent ">
|
<div class="spatial_leftTree subpage_Div "
|
style="border: 1px solid #dcdfe6;">
|
<el-input size="small"
|
v-model="filterText"
|
style="width:220px;"
|
:placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuedataName')"
|
suffix-icon="el-icon-search"></el-input>
|
|
<div style="width:300px">
|
<el-tree :data="tree"
|
:props="defaultProps"
|
node-key="id"
|
:current-node-key="10"
|
@node-click="handleNodeClick"
|
:filter-node-method="filterNode"
|
ref="tree"></el-tree>
|
</div>
|
</div>
|
<div class="contentshuju">
|
<div class="contentshujutou">
|
<el-form ref="ruleForm"
|
:model="ruleForm"
|
:inline="true">
|
|
<el-form-item>
|
<!-- type="textarea" disabled-->
|
<el-input v-model="ruleForm.fileName"
|
size="small"
|
:rows="2"
|
style="width: 300px;"
|
disabled
|
:placeholder="$t('shuJuGuanLi.shuJuJianSuo.label')">
|
<!-- <i
|
slot="suffix"
|
class="el-icon-search"
|
@click="submitForm"
|
style="padding-right: 8px"
|
></i> -->
|
</el-input>
|
|
</el-form-item>
|
<el-form-item>
|
<el-button @click="conditionVisible = true"
|
size="small"
|
type="success"
|
icon="el-icon-plus">{{$t('common.lable6')}}</el-button>
|
|
</el-form-item>
|
|
<el-form-item style="float: right">
|
<el-button @click="resetForm"
|
type="info"
|
size="small"
|
icon="el-icon-refresh">{{$t('common.reset')}}</el-button>
|
</el-form-item>
|
|
<!-- <el-form-item style="float: right">
|
<el-button
|
@click="submitForm"
|
type="primary"
|
size="small"
|
icon="el-icon-search"
|
>{{$t('shuJuGuanLi.lable6')}}</el-button>
|
</el-form-item>-->
|
|
<!-- 去掉 -->
|
<!-- <el-form-item style="float: right">
|
<el-button
|
v-if="btnStatus.insert"
|
@click="conditionVisible = true"
|
size="small"
|
icon="el-icon-plus"
|
type="success"
|
>{{$t('common.append')}}</el-button>
|
</el-form-item>-->
|
|
<el-form-item style="float: right">
|
<el-button @click="getSpaceMapVisibale"
|
size="small"
|
type="primary"
|
icon="el-icon-search">{{
|
$t('synthesis.rangequery')
|
}}</el-button>
|
</el-form-item>
|
|
</el-form>
|
</div>
|
<div class="dividing-line"></div>
|
<div class="table_box"
|
style="height:calc(100% - 130px); ">
|
<!-- border-->
|
<!-- ref="filterTable"-->
|
<!-- :data="tableData"-->
|
<!-- style="width: 100%"-->
|
<!-- height="calc(100% - 57px)"-->
|
<!-- :header-cell-style="{background:'#e6eaee',color:'#181818', 'text-align': 'center'} "-->
|
<el-table ref="refTableData"
|
:data="tableData"
|
style="width: 100% ;"
|
border
|
height="100%">
|
<el-table-column type="selection"
|
width="20"
|
align="center" />
|
<!-- :label="item.alias"-->
|
<el-table-column min-width="135"
|
v-for="(item, index) in attributeData"
|
:key="index"
|
:label="$i18n.locale == 'zh' ? item.alias : item.field"
|
:prop="item.field"
|
show-overflow-tooltip
|
align="center"></el-table-column>
|
<el-table-column min-width="240"
|
:label="$t('common.operate')">
|
<template slot-scope="scope">
|
<el-button type="primary"
|
plain
|
size="small"
|
@click="showDetail(scope.$index, scope.row)">{{$t('common.details')}}</el-button>
|
<el-button plain
|
size="small"
|
@click="getAttachTable(scope.$index, scope.row)">{{$t('common.enclosure')}}</el-button>
|
<el-button plain
|
size="small"
|
type="info"
|
v-if="matchState1(scope, /[]/)"
|
@click="getAttributeTable(scope.$index, scope.row)">{{$t('common.attribute')}}</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
|
</div>
|
|
<div class="pagination_box">
|
<el-pagination @size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
:current-page="listData.pageIndex"
|
:page-sizes="[10, 50, 100,200]"
|
:page-size="listData.pageSize"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="count">
|
</el-pagination>
|
</div>
|
|
</div>
|
|
</div>
|
<div class="infoBox_box"
|
v-show="showinfoBox">
|
<div class="infoBox box_div">
|
|
<div slot="header"
|
class="clearfix">
|
<span>{{$t('common.details')}}</span>
|
|
<div style="float: right; cursor: pointer"
|
@click="closeDetial">
|
<i class="el-icon-close"></i>
|
</div>
|
<el-divider></el-divider>
|
</div>
|
<div class="contentBox">
|
<ul>
|
<li v-for="(item, index) in itemdetail">
|
<p>
|
<label> {{ item.label }}:</label>
|
<label class="boxlabel">{{ item.value }}</label>
|
</p>
|
<el-divider></el-divider>
|
</li>
|
</ul>
|
</div>
|
|
</div>
|
</div>
|
<el-dialog :title="$t('common.attachinform')"
|
:visible.sync="dialogFormVisible">
|
<div style="height:68vh">
|
<el-form :model="formInline"
|
class="demo-form-inline"
|
label-position="top">
|
<el-form-item>
|
<el-input v-model="formInline.file"
|
style="width: 300px; margin-right: 20px"
|
:placeholder="$t('common.choose')"
|
disabled></el-input>
|
<input name="file1"
|
type="file"
|
id="insertFile"
|
multiple="multiple"
|
style="display: none"
|
@change="insertFile( )" />
|
<el-link @click="getInsertFile( )"
|
:underline="false"><i class="el-icon-folder-opened"></i></el-link>
|
</el-form-item>
|
<el-form-item>
|
<el-row>
|
<el-col :span="3">
|
<el-link v-if="btnStatus.insert"
|
class="elLink"
|
:underline="false"
|
@click="setAttachInsert">{{$t('common.append')}}</el-link>
|
</el-col>
|
<el-col :span="3">
|
<el-link v-if="btnStatus.delete"
|
class="elLink"
|
:underline="false"
|
@click="setAttachDel">{{$t('common.delete')}}</el-link>
|
</el-col>
|
<!-- <el-col :span="3"> <el-link class="elLink" :underline="false" >{{$t('common.reset')}}</i></el-link></el-col> -->
|
</el-row>
|
</el-form-item>
|
</el-form>
|
<el-table :data="tableAttach"
|
ref="filterTable"
|
height="calc(100% - 130px)"
|
border
|
style="width: 100%"
|
@selection-change="handleAttatchChange">
|
<el-table-column type="selection"
|
width="70" />
|
<el-table-column width="60"
|
type="index"
|
:label="$t('common.index')" />
|
<el-table-column prop="name"
|
:label="$t('common.fileNme')" />
|
|
<el-table-column prop="sizes"
|
:label="$t('common.size')"
|
:formatter="statSizeChange" />
|
<el-table-column align="center"
|
:label="$t('common.operate')"
|
min-width="100">
|
<template slot-scope="scope">
|
<el-link v-if="matchState(scope, /[]/)"
|
@click="setAttatchDetail(scope.$index, scope.row)"
|
class="elLink">{{ $t('common.see') }}</el-link>
|
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
</el-dialog>
|
<el-dialog :visible.sync="conditionVisible"
|
title="高级查询"
|
:before-close="handleconditionClose"
|
width="44%">
|
|
<el-form :inline="true"
|
:model="formSql"
|
class="demo-form-inline"
|
label-position="top">
|
|
<el-form-item>
|
<el-select @change="fieldChange($event)"
|
v-model="formSql.field"
|
:popper-append-to-body="false">
|
<el-option v-for="item in filedsOption"
|
:key="item.field"
|
:label="item.alias"
|
:value="item.field">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item>
|
<el-select :popper-append-to-body="false"
|
v-model="formSql.condition">
|
<el-option v-for="item in condOption"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item v-show="!fromSqlflag">
|
<el-input v-model="formSql.value"
|
:placeholder="$t('shuJuGuanLi.shuJuJianSuo.queryContent')"></el-input>
|
</el-form-item>
|
<el-form-item v-show="fromSqlflag">
|
<el-date-picker v-model="formSql.date"
|
type="date"
|
placeholder="选择日期"
|
value-format="yyyy-MM-dd">
|
</el-date-picker>
|
</el-form-item>
|
|
</el-form>
|
|
<span slot="footer"
|
class="dialog-footer">
|
<el-button size="small"
|
@click="startFiledAndcondition">取 消</el-button>
|
<el-button class="primaries"
|
size="small"
|
@click="appendQueryFilter">确 定</el-button>
|
</span>
|
</el-dialog>
|
|
<el-dialog :title=" $t('synthesis.rangequery')"
|
:visible.sync="dialogMapVisible"
|
width="90%"
|
top="10vh"
|
:before-close="handleMapClose">
|
<div style="height:700px">
|
<map-sdk v-if='showMapVisible'></map-sdk>
|
</div>
|
</el-dialog>
|
<el-dialog title="预览"
|
:append-to-body="false"
|
:visible.sync="dialog.dialogVisible"
|
width="70%"
|
:close-on-click-modal="false">
|
<div v-if="dialog.isPdf"
|
class="pdfClass">
|
<iframe :src="dialog.src"
|
type="application/x-google-chrome-pdf"
|
width="100%"
|
height="100%">
|
</iframe>
|
</div>
|
<div v-if="dialog.isJpg"
|
class="pdfClass">
|
<el-image style="width:100%; height:100%"
|
:src="dialog.src"
|
:preview-src-list="[dialog.src]">
|
</el-image>
|
|
</div>
|
</el-dialog>
|
<el-dialog :title="attribute.title"
|
:append-to-body="false"
|
:visible.sync="AttributedialogVisible"
|
width="80%"
|
:close-on-click-modal="false">
|
<div class="attributeBox">
|
<div class="attrubuteLeft">
|
<ul>
|
<li v-for="item in attrbuteOption"
|
:class="{active:attributeFlag === item.name}"
|
@click="setChangeAttrubuteData(item)">
|
{{item.name}}
|
</li>
|
</ul>
|
</div>
|
<div class="attrubuteRight">
|
<el-table ref="refAttributeTable"
|
:data="attributeTable"
|
style="width:100%;"
|
border
|
height="calc(100% - 50px)">
|
<el-table-column type="selection"
|
align="center" />
|
|
<el-table-column min-width="135"
|
v-for="(item, index) in attributeFild"
|
:key="index"
|
:label="item.alias"
|
:prop="item.field"
|
show-overflow-tooltip
|
align="center"></el-table-column>
|
|
</el-table>
|
<div class="pagination_box">
|
<el-pagination @size-change="attributeSizeChange"
|
@current-change="attributeCurrentChange"
|
:current-page="attribute.pageIndex"
|
:page-sizes="[10, 20, 50, 100]"
|
:page-size="attribute.pageSize"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="attribute.count">
|
</el-pagination>
|
</div>
|
</div>
|
</div>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import MapSdk from "../../components/mapsdk.vue";
|
import $ from "jquery";
|
import { conditions } from "../Archive/Archive.js";
|
import {
|
dataQuery_selectTabs,
|
dataQuery_selectDomains,
|
dataQuery_selectFields,
|
dataQuery_selectByPage,
|
dataQuery_uploadFiles,
|
dataQuery_selectFiles,
|
dataQuery_deletes,
|
dataUploadSelectVerByDirid,
|
} from "../../api/api";
|
import { getToken } from "../../utils/auth.js";
|
import catalogueTree from "../../components/catalogueTree.vue";
|
import MyBread from "../../components/MyBread.vue";
|
import {
|
getTreeData
|
} from "../../utils/treeData.js"
|
|
|
export default {
|
//import引入的组件需要注入到对象中才能使用
|
name: "dataSearch",
|
components: { MyBread,catalogueTree,MapSdk },
|
data () {
|
return {
|
attachtable: [
|
"b_pac_geologic_hazard",
|
"b_hydrogeology",
|
"b_pac_meteorological",
|
"b_pac_marine_meteorological",
|
"b_pac_frozensoil",
|
"s_borehole",
|
"m_marker",
|
"m_hydraulic_protection",
|
"m_equipment_nameplate",
|
],
|
formInline: {
|
file: "",
|
},
|
formSql: {
|
field: "",
|
condition: "",
|
value: "",
|
type: "",
|
date: "",
|
},
|
fromSqlflag: false,
|
tree: [
|
],
|
tableAttach: [],
|
filedsOption: [],
|
condOption: [],
|
|
defaultProps: {
|
children: "children",
|
label: "label",
|
},
|
btnStatus: {
|
select: false,
|
delete: false,
|
upload: false,
|
download: false,
|
insert: false,
|
update: false,
|
},
|
tableType: null,
|
ruleForm: {
|
fileName: "",
|
},
|
FBtest: false,
|
tableData: [],
|
formLabelWidth: "120px",
|
dialogFormVisible: false,
|
upform: {
|
gid: "",
|
pipename: "",
|
sitename: "",
|
type: "",
|
seriesname: "",
|
stationvalue: "",
|
transportm: "",
|
diameter: "",
|
name: "",
|
},
|
|
changePag: true,
|
showinfoBox: false,
|
itemdetail: {},
|
|
attributeData: [],
|
currentPage: 1,
|
searchName: "",
|
multipleSelection: [],
|
filedsLayer: null,
|
count: 0,
|
listData: {
|
pageSize: 10,
|
pageIndex: 1,
|
name: null,
|
filter: null,
|
wkt: null,
|
},
|
getClickTable: null,
|
attacgSelection: [],
|
conditionVisible: false,
|
dialogMapVisible: false,
|
showMapVisible: false,
|
upAttach: {
|
tabName: null,
|
eventid: null,
|
},
|
filterText: "",
|
dialog: {
|
dialogVisible: false,
|
isPdf: false,
|
isJpg: false,
|
src: ''
|
},
|
AttributedialogVisible: false,
|
attribute: {
|
name: null,
|
pageIndex: 1,
|
pageSize: 10,
|
count: 0,
|
title: null
|
},
|
attrbuteOption: [],
|
attributeFlag: null,
|
attributeTable: [],
|
attributeLayer: null,
|
attributeFild: null,
|
};
|
},
|
created () {
|
// this.getSPData(10, 1, "");
|
// this.getSPCount("");
|
this.showPermsBtn();
|
this.getTreeDataAll();
|
},
|
watch: {
|
filterText (val) {
|
this.$refs.tree.filter(val);
|
},
|
},
|
|
methods: {
|
//分页点击事件
|
attributeSizeChange (val) {
|
this.attribute.pageSize=val;
|
this.attribute.pageIndex=1;
|
//获取table信息
|
this.setAttributeTableData(this.attributeLayer);
|
},
|
attributeCurrentChange (val) {
|
this.attribute.pageIndex=val;
|
//获取table信息
|
this.setAttributeTableData(this.attributeLayer);
|
},
|
getAttributeTable (idnex,row) {
|
this.attribute.title=row.workname;
|
this.attrbuteOption=workSite;
|
|
this.AttributedialogVisible=true;
|
this.setChangeAttrubuteData(this.attrbuteOption[0])
|
},
|
setChangeAttrubuteData (res) {
|
this.attributeFlag=res.name;
|
this.attribute.pageIndex=1;
|
this.attribute.pageSize=10;
|
this.attribute.count=0;
|
this.attributeLayer=res;
|
this.setAttributeTableData(res)
|
},
|
setAttributeTableData (res) {
|
var name=res.table.replaceAll("_","");
|
this.attribute.name=name;
|
var value=this.getAttributeDomFiled(name)
|
this.getAttributeTableData(value,res)
|
},
|
|
//获取每个表字段名称及阈值
|
async getAttributeDomFiled (res) {
|
//查询字段信息;
|
const fileds=await dataQuery_selectFields({
|
name: res,
|
});
|
if(fileds.code!=200) {
|
this.$message.error("调用列表失败,请联系工作人员!");
|
return;
|
}
|
|
//查询阈值信息;
|
const domains=await dataQuery_selectDomains({
|
name: res,
|
});
|
if(domains.code!=200) {
|
this.$message.error("调用列表失败,请联系工作人员!");
|
return;
|
}
|
var data1=fileds.result;
|
var data2=domains.result;
|
var std=[];
|
this.filedsOption=[];
|
for(var i in data1) {
|
if(data1[i].type!='geometry'&&data1[i].type) {
|
|
this.filedsOption.push(data1[i]);
|
}
|
if(data1[i].showtype==1) {
|
if(data1[i].domainNa!=null) {
|
data1[i].domainNa=this.getDomainNaFild(data1[i].domainNa,data2);
|
}
|
std.push(data1[i]);
|
}
|
}
|
return std;
|
},
|
|
//获取表格信息
|
async getAttributeTableData (res,result) {
|
res.then((val) => {
|
this.attributeFild=val;
|
});
|
|
this.attribute.filter="workname = "+"'"+this.attribute.title+"'";
|
|
|
const data=await dataQuery_selectByPage(this.attribute);
|
if(data.code!=200) {
|
this.$message.error("调用列表失败,请联系工作人员!");
|
return;
|
}
|
this.attributeTable=[]
|
var res_val=this.attributeFild;
|
this.attribute.count=data.count;
|
for(var i in data.result) {
|
let val_Data=data.result[i];
|
|
for(var j in res_val) {
|
if(res_val[j].domainNa!=null&&res_val[j].domainNa!=undefined) {
|
|
val_Data[res_val[j].field]=res_val[j].domainNa;
|
}
|
}
|
}
|
|
this.attributeTable=data.result;
|
this.$nextTick(() => {
|
this.$resfs.refAttributeTable.doLayout()
|
});
|
|
},
|
|
|
|
matchState1 (state="",reg) {
|
var row=state.row;
|
if(
|
this.listData.name=="ssurveyworksite"
|
) {
|
return true;
|
}
|
return false;
|
},
|
statSizeChange (row,column) {
|
return this.stateFormatSizes(row.sizes)
|
},
|
stateFormatSizes (res) {
|
if(res>=1024) {
|
const val=parseFloat(res/1024).toFixed(3);
|
return val+' GB';
|
} else {
|
return res+' MB';
|
}
|
},
|
filterNode (value,data) {
|
if(!value) return true;
|
return data.label.indexOf(value)!==-1;
|
},
|
getSpaceMapVisibale () {
|
this.dialogMapVisible=true;
|
this.showMapVisible=true;
|
this.$store.state.mapMenuBoolean=true;
|
this.$store.state.mapMenuBoxFlag="1";
|
this.$store.state.mapPopBoolean=false;
|
this.$store.state.mapPopBoxFlag=null;
|
this.$store.state.download=true;
|
},
|
handleMapClose () {
|
this.$confirm("确认关闭?")
|
.then((_) => {
|
this.closeMapDown();
|
})
|
.catch((_) => { });
|
},
|
closeMapDown () {
|
this.dialogMapVisible=false;
|
this.showMapVisible=false;
|
this.$store.state.mapMenuBoolean=false;
|
this.$store.state.mapMenuBoxFlag=null;
|
this.$store.state.download=false;
|
this.$store.state.mapPopBoolean=false;
|
this.$store.state.mapPopBoxFlag=null;
|
},
|
|
refreshAttatchDetail () {
|
this.dialog.src="";
|
this.dialog.dialogVisible=false;
|
this.dialog.isPdf=false;
|
this.dialog.isJpg=false;
|
},
|
//附件查看
|
setAttatchDetail (index,row) {
|
|
this.refreshAttatchDetail()
|
var name=row.name;
|
if(name.indexOf('.pdf')!=-1||name.indexOf('.PDF')!=-1) {
|
this.dialog.dialogVisible=true;
|
this.dialog.isPdf=true;
|
var url=BASE_URL+"/comprehensive/downloadForView?guid="+row.guid+"&token="+getToken();
|
this.dialog.src=url
|
} else if(
|
name.indexOf('.jpg')!=-1
|
||name.indexOf('.gif')!=-1
|
||name.indexOf('.png')!=-1
|
||name.indexOf('.jpeg')!=-1
|
||name.indexOf('.JPG')!=-1
|
||name.indexOf('.GIF')!=-1
|
||name.indexOf('.PNG')!=-1
|
||name.indexOf('.JPEG')!=-1
|
||name.indexOf('.BMP')!=-1
|
||name.indexOf('.bmp')!=-1
|
) {
|
this.dialog.dialogVisible=true;
|
this.dialog.isJpg=true;
|
var url=BASE_URL+"/comprehensive/downloadForView?guid="+row.guid+"&token="+getToken();
|
this.dialog.src=url
|
}
|
},
|
|
matchState (state="",reg) {
|
var row=state.row;
|
var name=row.name;
|
|
if(name) {
|
if(name.indexOf('.pdf')!=-1
|
||name.indexOf('.jpg')!=-1
|
||name.indexOf('.gif')!=-1
|
||name.indexOf('.png')!=-1
|
||name.indexOf('.jpeg')!=-1
|
||name.indexOf('.PDF')!=-1
|
||name.indexOf('.JPG')!=-1
|
||name.indexOf('.GIF')!=-1
|
||name.indexOf('.PNG')!=-1
|
||name.indexOf('.JPEG')!=-1
|
||name.indexOf('.BMP')!=-1
|
||name.indexOf('.bmp')!=-1) {
|
return true;
|
}
|
}
|
|
return false;
|
},
|
|
|
async setAttachDel () {
|
var std=[];
|
for(var i in this.attacgSelection) {
|
std.push(this.attacgSelection[i].id);
|
}
|
const res=await dataQuery_deletes({ ids: std.toString() });
|
if(res.code!=200) {
|
this.$message.error("文件删除失败");
|
}
|
this.getAttacthFlieList();
|
},
|
setAttachInsert () {
|
var token=getToken();
|
var fs=document.getElementById("insertFile");
|
if(fs.files.length==0) {
|
this.$message({
|
message: "请选择要上传的文件!",
|
type: "warning",
|
});
|
return;
|
}
|
const formData=new FormData();
|
for(var i=0,c=fs.files.length;i<c;i++) {
|
formData.append("file",fs.files[i]); // fs.files[i].name,file
|
}
|
|
$.ajax(
|
BASE_URL+
|
"/dataQuery/uploadFiles?token="+
|
token+
|
"&tabName="+
|
this.upAttach.tabName+
|
"&eventid="+
|
this.upAttach.eventid,
|
{
|
type: "post",
|
data: formData,
|
async: true,
|
cache: false,
|
processData: false,
|
contentType: false,
|
success: (rs) => {
|
this.$message({
|
message: "附件添加成功",
|
type: "success",
|
});
|
document.getElementById("insertFile").value="";
|
this.formInline={
|
file: "",
|
};
|
|
this.getAttacthFlieList();
|
},
|
error: (e) => {
|
document.getElementById("insertFile").value="";
|
this.$message.error("附件添加失败");
|
},
|
}
|
);
|
},
|
async getAttacthFlieList () {
|
var obj=this.upAttach;
|
|
const res=await dataQuery_selectFiles(obj);
|
if(res.code!=200) {
|
this.$message.error("列表调用失败");
|
return;
|
}
|
this.tableAttach=res.result;
|
},
|
|
getAttachTable (index,row) {
|
if(row.eventid!=null) {
|
this.upAttach.eventid=row.eventid;
|
} else {
|
this.upAttach.eventid="";
|
}
|
this.getAttacthFlieList();
|
this.dialogFormVisible=true;
|
},
|
//附件=>文件选择
|
getInsertFile () {
|
$("#insertFile").click();
|
},
|
insertFile () {
|
var val=document.getElementById("insertFile").files;
|
if(!val||!val.length) return;
|
|
this.formInline.file=val[0].name;
|
},
|
//获取目录树数据
|
async getTreeDataAll () {
|
const data=await dataQuery_selectTabs();
|
if(data.code!=200) {
|
this.$message.error("列表调用失败");
|
}
|
var val=data.result;
|
this.tree=getTreeData(val)
|
// for (var i in option) {
|
// var val_Data = option[i];
|
// val_Data.id = "1" + i;
|
// // val_Data.label = val_Data.tabDesc + "(" + val_Data.tab + ")"
|
// val_Data.label = val_Data.tabDesc;
|
// option[i].id = parseInt(option[i].id);
|
// for (var j in this.tree) {
|
// if (this.tree[j].ns == option[i].ns) {
|
// this.tree[j].children.push(val_Data);
|
// }
|
// }
|
|
// }
|
// var std = [];
|
// val.filter((item) => {
|
// if (std.indexOf(item.bak) == -1) {
|
// std.push(item.bak);
|
// this.tree.push(
|
// {
|
// val: item.bak,
|
// label: item.bak,
|
// children: [],
|
// }
|
// )
|
// }
|
// });
|
|
// this.tree.filter((item) => {
|
// val.filter((res) => {
|
// if (item.val === res.bak) {
|
// res.label = res.tabDesc
|
// item.children.push(res)
|
// }
|
// })
|
// })
|
|
this.handleNodeClick(this.tree[0].children[0]);
|
},
|
//授权管理
|
showPermsBtn () {
|
let currentPerms=this.$store.state.currentPerms;
|
let permsEntity=this.$store.state.permsEntity;
|
permsEntity
|
.filter((item) => item.perms==currentPerms)
|
.map((item) => {
|
this.btnStatus[item.tag.substr(1)]=true;
|
});
|
},
|
//树点击事件
|
handleNodeClick (data) {
|
//判断点击是否为子节点
|
if(data.children!=null) return;
|
|
this.listData.name=data.entity; //要查询表格类型;
|
this.getClickTable=data;
|
this.listData.pageIndex=1;
|
this.listData.pageSize=10;
|
|
this.count=0;
|
this.upAttach.tabName=data.ns+"."+data.tab;
|
this.filedsLayer=this.getCollapseDomFiled(); //获取每个表字段名称及阈值
|
|
//获取table信息
|
this.getCollapseTable(this.filedsLayer);
|
},
|
//获取表格信息
|
async getCollapseTable (res) {
|
res.then((val) => {
|
this.attributeData=val;
|
});
|
if(this.ruleForm.fileName!="") {
|
this.listData.filter=this.ruleForm.fileName;
|
} else {
|
this.listData.filter=null;
|
}
|
|
const data=await dataQuery_selectByPage(this.listData);
|
if(data.code!=200) {
|
this.$message.error("调用列表失败,请联系工作人员!");
|
return;
|
}
|
this.tableData=[]
|
var res_val=this.attributeData;
|
this.count=data.count;
|
for(var i in data.result) {
|
let val_Data=data.result[i];
|
|
for(var j in res_val) {
|
if(res_val[j].domainNa!=null&&res_val[j].domainNa!=undefined) {
|
|
val_Data[res_val[j].field]=res_val[j].domainNa;
|
}
|
}
|
}
|
var that=this;
|
var value=data.result.filter((item) => {
|
|
if(item.dirName) {
|
item.dirid=item.dirName
|
}
|
if(item.depName) {
|
|
item.depid=item.depName
|
}
|
if(item.verName) {
|
item.verid=item.verName
|
}
|
|
if(item.createName) {
|
item.createuser=item.createName
|
}
|
if(item.updateName) {
|
item.updateuser=item.updateName
|
}
|
if(item.createtime) {
|
item.createtime=that.format(item.createtime);
|
}
|
|
if(item.updatetime) {
|
item.updatetime=that.format(item.updatetime);
|
}
|
return item
|
})
|
|
|
|
|
|
this.tableData=value;
|
|
this.$nextTick(() => {
|
this.$refs.refTableData.doLayout();
|
});
|
},
|
//格式化时间
|
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);
|
},
|
//格式化时间
|
add0 (m) {
|
return m<10? "0"+m:m;
|
},
|
|
|
|
|
|
//获取每个表字段名称及阈值
|
async getCollapseDomFiled () {
|
//查询字段信息;
|
const fileds=await dataQuery_selectFields({
|
name: this.listData.name,
|
});
|
if(fileds.code!=200) {
|
this.$message.error("调用列表失败,请联系工作人员!");
|
return;
|
}
|
|
//查询阈值信息;
|
const domains=await dataQuery_selectDomains({
|
name: this.listData.name,
|
});
|
if(domains.code!=200) {
|
this.$message.error("调用列表失败,请联系工作人员!");
|
return;
|
}
|
var data1=fileds.result;
|
var data2=domains.result;
|
var std=[];
|
this.filedsOption=[];
|
for(var i in data1) {
|
if(data1[i].type!='geometry'&&data1[i].type) {
|
|
this.filedsOption.push(data1[i]);
|
}
|
if(data1[i].showtype==1) {
|
if(data1[i].domainNa!=null) {
|
data1[i].domainNa=this.getDomainNaFild(data1[i].domainNa,data2);
|
}
|
std.push(data1[i]);
|
}
|
}
|
this.startFiledAndcondition();
|
return std;
|
},
|
startFiledAndcondition () {
|
this.conditionVisible=false;
|
this.conditionChange(this.filedsOption[0]);
|
this.formSql.value="";
|
this.formSql.date=new Date();
|
},
|
handleconditionClose () {
|
this.$confirm("确认关闭?")
|
.then((_) => {
|
this.startFiledAndcondition();
|
})
|
.catch((_) => { });
|
},
|
|
fieldChange (value) {
|
var obj={};
|
obj=this.filedsOption.find(function(item) {
|
return item.field===value;
|
});
|
this.conditionChange(obj);
|
},
|
conditionChange (res) {
|
this.formSql.field=res.field;
|
this.formSql.type=res.type;
|
if(res.type=="date"||res.type=="datetime") {
|
this.fromSqlflag=true;
|
} else {
|
this.fromSqlflag=false;
|
}
|
var std=[];
|
this.condOption=[];
|
if(res.type=="text"||res.type=="blob") {
|
std=conditions[0];
|
} else if(res.type=="date"||res.type=="datetime") {
|
std=conditions[2];
|
} else {
|
std=conditions[1];
|
}
|
for(var i in std) {
|
this.condOption.push({
|
label: std[i],
|
value: std[i],
|
});
|
}
|
this.formSql.condition=this.condOption[0].value;
|
},
|
appendQueryFilter () {
|
if(this.formSql.type=="date"||this.formSql.type=="datetime") {
|
if(this.formSql.date==null) {
|
this.$message.error("请输入要查询的信息!");
|
return;
|
}
|
} else {
|
if(this.formSql.value=="") {
|
this.$message.error("请输入要查询的信息!");
|
return;
|
}
|
}
|
|
if(this.ruleForm.fileName!="") {
|
this.ruleForm.fileName+=" and ";
|
}
|
var val;
|
|
if(this.formSql.type=="long"||this.formSql.type=="integer") {
|
val=parseInt(this.formSql.value);
|
} else if(this.formSql.type=="double") {
|
if(this.formSql.value.indexOf(".")!=-1) {
|
val=this.formSql.value;
|
} else {
|
val=parseFloat(this.formSql.value).toFixed(1);
|
}
|
} else if(
|
this.formSql.type=="date"||
|
this.formSql.type=="datetime"
|
) {
|
var time=new Date(this.formSql.date);
|
var m=time.getMonth()+1;
|
var d=time.getDate();
|
var y=time.getFullYear();
|
val="'"+y+"-"+this.add0(m)+"-"+this.add0(d)+"'";
|
} else {
|
val="'"+this.formSql.value+"'";
|
}
|
this.ruleForm.fileName+=
|
this.formSql.field+" "+this.formSql.condition+" "+val;
|
|
this.startFiledAndcondition();
|
this.submitForm();
|
},
|
|
//值域字段匹配
|
getDomainNaFild (res,result) {
|
for(var i in result) {
|
if(result[i].domName==res) {
|
return result[i].codeDesc;
|
}
|
}
|
return null;
|
},
|
// 请求场站点内容
|
getSPData (size,num,name) {
|
querySitePoint(size,num,name).then((res) => {
|
this.tableData=res.data;
|
});
|
},
|
// 请求场站点数量
|
getSPCount (name) {
|
querySitePointCount(name).then((res) => {
|
this.count=res.data;
|
});
|
},
|
// 请求场站点内容
|
getSSData (size,num,name) {
|
queryStationSeries(size,num,name).then((res) => {
|
this.tableData=res.data;
|
});
|
},
|
// 请求场站点数量
|
getSSCount (name) {
|
queryStationSeriesCount(name).then((res) => {
|
this.count=res.data;
|
});
|
},
|
|
// 请求标桩内容
|
getMData (size,num,name) {
|
queryMarker(size,num,name).then((res) => {
|
this.tableData=res.data;
|
});
|
},
|
// 请求标桩数量
|
getMCount (name) {
|
queryMarkerCount(name).then((res) => {
|
this.count=res.data;
|
});
|
},
|
|
// 关键字查询
|
submitForm () {
|
this.listData.pageIndex=1;
|
this.listData.pageSize=10;
|
//获取table信息
|
this.getCollapseTable(this.filedsLayer);
|
},
|
//分页点击事件
|
handleSizeChange (val) {
|
this.listData.pageSize=val;
|
this.listData.pageIndex=1;
|
//获取table信息
|
this.getCollapseTable(this.filedsLayer);
|
},
|
handleCurrentChange (val) {
|
this.listData.pageIndex=val;
|
//获取table信息
|
this.getCollapseTable(this.filedsLayer);
|
},
|
// 重置查询
|
resetForm () {
|
this.ruleForm.fileName="";
|
this.listData.pageIndex=1;
|
this.listData.pageSize=10;
|
//获取table信息
|
this.getCollapseTable(this.filedsLayer);
|
},
|
|
// 发布按钮
|
testfb () {
|
// if (this.FBtest) {
|
// this.$confirm("是否取消发布?", "提示", {
|
// confirmButtonText: "确定",
|
// cancelButtonText: "取消",
|
// type: "warning",
|
// })
|
// .then(() => {
|
const loading=this.$loading({
|
lock: true,
|
text: "Loading",
|
spinner: "el-icon-loading",
|
background: "rgba(0, 0, 0, 0.7)",
|
});
|
setTimeout(() => {
|
loading.close();
|
this.FBtest=!this.FBtest;
|
},2000);
|
// })
|
// .catch(() => {});
|
// }
|
},
|
// 查看界面
|
showDetail (index,row) {
|
console.log(index,row);
|
console.log(this.attributeData);
|
this.showinfoBox=true;
|
|
var std=[];
|
for(var i in this.attributeData) {
|
std.push({
|
label: this.attributeData[i].alias,
|
value: row[this.attributeData[i].field],
|
});
|
}
|
this.itemdetail=std;
|
},
|
// 关闭查看
|
closeDetial () {
|
this.showinfoBox=false;
|
this.itemdetail={};
|
},
|
|
// 修改界面
|
handleEdit (index,row) {
|
this.dialogFormVisible=true;
|
this.upform=JSON.parse(JSON.stringify(row));
|
},
|
// 提交修改
|
updateForm () {
|
let params={};
|
this.$confirm("是否确定编辑?","提示",{
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning",
|
})
|
.then(() => {
|
this.dialogFormVisible=false;
|
switch(this.tableType) {
|
case "场站点":
|
params={
|
gid: this.upform.gid,
|
pipename: this.upform.pipename,
|
sitename: this.upform.sitename,
|
type: this.upform.type,
|
};
|
UpdateSitePoint(params).then((res) => {
|
if(res.data==1) {
|
this.$message({
|
message: "修改成功",
|
type: "success",
|
});
|
}
|
this.getSPData(10,1,"");
|
this.getSPCount("");
|
});
|
break;
|
case "管道中心线":
|
params={
|
gid: this.upform.gid,
|
pipename: this.upform.pipename,
|
seriesname: this.upform.seriesname,
|
stationvalue: this.upform.stationvalue,
|
transportm: this.upform.transportm,
|
diameter: this.upform.diameter,
|
};
|
UpdateStationSeries(params).then((res) => {
|
if(res.data==1) {
|
this.$message({
|
message: "修改成功",
|
type: "success",
|
});
|
}
|
this.getSSData(10,1,"");
|
this.getSSCount("");
|
});
|
break;
|
case "标桩":
|
params={
|
gid: this.upform.gid,
|
pipename: this.upform.pipename,
|
name: this.upform.name,
|
type: this.upform.type,
|
};
|
UpdatgeMarker(params).then((res) => {
|
if(res.data==1) {
|
this.$message({
|
message: "修改成功",
|
type: "success",
|
});
|
}
|
this.getMData(10,1,"");
|
this.getMCount("");
|
});
|
break;
|
}
|
// updateMetaData(this.upform).then((res) => {
|
// if (res.data == 1) {
|
// this.$message({
|
// message: "修改成功",
|
// type: "success",
|
// });
|
// }
|
// this.getMetaData(10, 1, "");
|
// this.getMetaCount("");
|
// });
|
})
|
.catch(() => { });
|
},
|
// 获取多选选中的对象
|
handleSelectionChange (val) {
|
this.multipleSelection=val;
|
},
|
handleAttatchChange (val) {
|
this.attacgSelection=val;
|
},
|
// 删除多条
|
DelFormData () {
|
var std=[];
|
for(var i in this.multipleSelection) {
|
std.push(this.multipleSelection[i].gid);
|
}
|
this.$confirm("确定是否删除所选内容?","提示",{
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning",
|
})
|
.then(() => {
|
switch(this.tableType) {
|
case "场站点":
|
dltSitePoint(std).then((res) => {
|
if(res.data!==0) {
|
this.$message({
|
message: "删除成功",
|
type: "success",
|
});
|
}
|
this.getSPData(10,1,"");
|
this.getSPCount("");
|
});
|
break;
|
case "管道中心线":
|
dltStationSeries(std).then((res) => {
|
if(res.data!==0) {
|
this.$message({
|
message: "删除成功",
|
type: "success",
|
});
|
}
|
this.getSSData(10,1,"");
|
this.getSSCount("");
|
});
|
break;
|
case "标桩":
|
dltMarker(std).then((res) => {
|
if(res.data!==0) {
|
this.$message({
|
message: "删除成功",
|
type: "success",
|
});
|
}
|
this.getMData(10,1,"");
|
this.getMCount("");
|
});
|
break;
|
}
|
// dltMetaDatas(std).then((res) => {
|
// this.getMetaData(10, 1, "");
|
// this.getMetaCount("");
|
// this.$message({
|
// type: "success",
|
// message: "删除成功!",
|
// });
|
// });
|
})
|
.catch(() => { });
|
},
|
},
|
};
|
</script>
|
<style lang="less" scoped>
|
//@import url(); 引入公共css类
|
.Spatialbox {
|
height: 98%;
|
width: 98%;
|
padding: 0.5%;
|
.spatialContent {
|
width: 100%;
|
height: calc(100% - 75px);
|
padding-top: 10px;
|
display: flex;
|
justify-content: space-around;
|
.spatial_leftTree {
|
width: calc(23% - 0px);
|
height: 100%;
|
padding: 10px;
|
border-radius: 5px;
|
box-sizing: border-box;
|
overflow-y: auto;
|
}
|
.contentshuju {
|
width: 75%;
|
height: 100%;
|
border-radius: 5px;
|
padding: 0px;
|
box-sizing: border-box;
|
border: 1px solid #dcdfe6;
|
}
|
}
|
.pdfClass {
|
height: 70vh;
|
width: 100%;
|
position: relative;
|
}
|
.attributeBox {
|
height: 63vh;
|
width: 100%;
|
position: relative;
|
display: flex;
|
justify-content: space-between;
|
.attrubuteLeft {
|
width: calc(20% - 20px);
|
height: calc(100% - 20px);
|
border: 1px solid #dcdfe6;
|
border-radius: 5px;
|
padding: 10px;
|
li {
|
border-bottom: 1px solid #dcdfe6;
|
line-height: 30px;
|
text-align: center;
|
}
|
li:hover {
|
background: rgba(255, 255, 255, 0.3);
|
color: #409eff;
|
}
|
.active {
|
color: #409eff;
|
}
|
}
|
.attrubuteRight {
|
width: 79%;
|
height: 100%;
|
border: 1px solid #dcdfe6;
|
border-radius: 5px;
|
}
|
}
|
}
|
|
.table_box2 {
|
border-radius: 5px;
|
padding: 10px;
|
box-sizing: border-box;
|
}
|
|
.contentshujutou {
|
padding: 8px;
|
// margin-top: 10px;
|
border-radius: 5px;
|
.el-form-item {
|
margin: 5px;
|
}
|
}
|
.pagination_box {
|
margin-top: 0px;
|
}
|
</style>
|