<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.append')}}</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"
|
sortable
|
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>
|