<template>
|
<el-container>
|
<el-aside>
|
<basic-container>
|
<div ref="TreeBox" style="height: calc(100vh - 164px);!important;">
|
<!-- 左侧树 -->
|
<div style="height: calc(100vh - 200px);">
|
<avue-tree :data="treeData" :option="treeOption" @node-click="nodeClick">
|
<span slot-scope="{ node, data }" class="el-tree-node__label">
|
<span style="font-size: 15px">
|
<i class="el-icon-s-promotion"></i>
|
{{ (node || {}).label }}
|
</span>
|
</span>
|
</avue-tree>
|
</div>
|
</div>
|
</basic-container>
|
</el-aside>
|
|
<el-main>
|
<basic-container>
|
<div v-if="this.nodeRow && this.nodeRow.label">
|
<el-button icon="el-icon-plus" size="small" type="primary" @click="addHandler">创建</el-button>
|
<el-button icon="el-icon-edit" plain size="small" type="primary" @click="editHandler">修改</el-button>
|
<el-button icon="el-icon-delete" plain size="small" type="danger" @click="delHandler">删除</el-button>
|
<el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">导出</el-button>
|
<el-button icon="el-icon-upload2" plain size="small" type="primary" @click="upLoadClickHandler">导入</el-button>
|
</div>
|
<avue-crud ref="crud"
|
@selection-change="selectionChange"
|
@row-click="rowClick"
|
:data="crudData" :option="crudOption" :table-loading="tableLoading" style="margin-top: 10px">
|
</avue-crud>
|
<form-dialog ref="formRef" @refresh="getTemp"></form-dialog>
|
<!--导入 -->
|
<upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" title="导入"
|
@updata="getTemp"></upload-file>
|
</basic-container>
|
</el-main>
|
</el-container>
|
</template>
|
|
<script>
|
import {gridLink} from "@/api/modeling/linkType/api";
|
import {getObjTypeQTs,deleteLinkTemplate,expLinkTemplate,impLinkTemplate} from "@/api/queryTemplate/linkTypeQuery";
|
import basicOption from "@/util/basic-option";
|
import FormDialog from "./formDialog.vue"
|
import func from "@/util/func";
|
|
export default {
|
name: "index",
|
components: {FormDialog},
|
data() {
|
return {
|
treeOption: {
|
height: 'auto',
|
defaultExpandedKeys: ['topNode'],
|
menu: false,
|
addBtn: false,
|
props: {
|
label: 'label',
|
value: 'oid',
|
children: 'children'
|
}
|
},
|
nodeRow: {},
|
treeData: [{
|
label: '链接类型',
|
oid: 'topNode',
|
children: []
|
}],
|
templateForm: '',
|
templateData: [],
|
form: {
|
name: ''
|
},
|
rules: {
|
name: [
|
{required: true, message: '请输入查询模板名称', trigger: 'blur'}
|
]
|
},
|
title: '',
|
visible: false,
|
tableLoading: false,
|
crudData: [],
|
crudOption: {
|
...basicOption,
|
addBtn: false,
|
editBtn: false,
|
delBtn: false,
|
selection: true,
|
menu: false,
|
height: "auto",
|
calcHeight: -40,
|
tip: false,
|
header:false,
|
column: [{
|
label: '查询模板名称',
|
prop: 'qtName'
|
}, {
|
label: '创建人',
|
prop: 'creator'
|
}, {
|
label: '创建时间',
|
prop: 'createTimeText'
|
}, {
|
label: '方向',
|
prop: 'direction',
|
width:80,
|
formatter:function (row, value) {
|
if (row.queryTemplate.direction == 'positive') {
|
return '正向'
|
}else{
|
return '反向'
|
}
|
}
|
}, {
|
label: '业务类型',
|
prop: 'btmType',
|
width: 130,
|
formatter:function (row, value) {
|
return row.queryTemplate.btmType;
|
}
|
}, {
|
label: '版本版次',
|
prop: 'version',
|
formatter:function (row, value) {
|
if(row.queryTemplate.version==1){
|
return '当前版本当前版次'
|
}else if(row.queryTemplate.version==2){
|
return '当前版本最新版次'
|
}else if(row.queryTemplate.version==3){
|
return '最新版本最新版次'
|
}else if(row.queryTemplate.version==7){
|
return '已发布的最新版本'
|
}else {
|
return ''
|
}
|
}
|
}, {
|
label: '查询是否有下级',
|
prop: 'queryISLeaf',
|
width: 120,
|
formatter:function (row, value) {
|
return row.queryTemplate.queryISLeaf
|
}
|
}, {
|
label: '子节点层次数',
|
prop: 'level',
|
width: 100,
|
formatter:function (row, value) {
|
return row.queryTemplate.level;
|
}
|
}]
|
},
|
selectionRow: [],
|
tipList: [
|
"导入仅能上传.vciqtf格式文件"
|
],
|
upFileType: ['vciqtf'],
|
fileUrl: 'api/templateController/impLinkTemplate',
|
}
|
},
|
created() {
|
this.getTreeList();
|
},
|
methods: {
|
//树表查询
|
getTreeList() {
|
const loading = this.$loading({});
|
gridLink().then(res => {
|
const data = res.data.data.map(item => {
|
item.label=item.name;
|
return item;
|
});
|
this.treeData[0].children = data;
|
loading.close();
|
})
|
},
|
|
// 树点击
|
nodeClick(row) {
|
this.nodeRow = row;
|
this.tableLoading = true;
|
this.getTemp();
|
},
|
//获取查询模板列表
|
getTemp() {
|
getObjTypeQTs(this.nodeRow.label).then(res => {
|
this.crudData = res.data.data;
|
this.tableLoading = false;
|
this.selectionClear();
|
})
|
},
|
rowClick(row) {
|
this.$refs.crud.toggleSelection();
|
this.$refs.crud.toggleRowSelection(row); //选中当前行
|
this.selectionRow = [row];
|
},
|
selectionChange(list) {
|
this.selectionRow = list;
|
},
|
selectionClear() {
|
this.selectionRow = [];
|
this.$refs.crud.toggleSelection();
|
},
|
//创建
|
addHandler() {
|
this.$refs.formRef.openDialog(this.nodeRow.label,'创建','add',{treeData:this.nodeRow});
|
this.$nextTick(()=>{
|
this.$refs.formRef.formItems[0].disabled = false;
|
this.$refs.formRef.$refs.form.getInit(this.$refs.formRef.formItems)
|
});
|
},
|
//修改
|
editHandler() {
|
if (this.selectionRow.length!=1) {
|
this.$message.error('请选择一条数据');
|
return;
|
}
|
this.$refs.formRef.openDialog(this.nodeRow.label,'修改','edit',{treeData:this.nodeRow,selectData:this.selectionRow[0]});
|
this.$nextTick(()=>{
|
this.$refs.formRef.formItems[0].disabled = true;
|
this.$refs.formRef.$refs.form.getInit(this.$refs.formRef.formItems)
|
});
|
},
|
//删除
|
delHandler() {
|
if (this.selectionRow.length==0) {
|
this.$message.error('请选择数据');
|
return;
|
}
|
this.$confirm('您确定要删除所选择的数据吗?', '提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(() => {
|
let names=this.selectionRow.map(item=>{
|
return item.qtName
|
})
|
deleteLinkTemplate({names:names.join(',')}).then(res => {
|
if (res.data.code === 200) {
|
this.$message.success(res.data.obj);
|
this.getTemp();
|
}
|
})
|
}).catch(() => {
|
this.$message({
|
type: 'info',
|
message: '已取消删除'
|
});
|
});
|
},
|
//导出
|
exportClickHandler(){
|
if (this.selectionRow.length <= 0) {
|
this.$message.warning('请至少选择一条数据进行导出');
|
return;
|
}
|
|
let qtNames = this.selectionRow.map(item => item.qtName).join(',');
|
expLinkTemplate({qtNames: qtNames}).then(res => {
|
func.downloadFileByBlobHandler(res);
|
this.$message.success('导出成功');
|
})
|
},
|
upLoadClickHandler(){
|
this.$refs.upload.visible = true;
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
::v-deep {
|
.el-scrollbar__wrap {
|
overflow: auto !important;
|
}
|
.headerCon{
|
.el-button{
|
width: 82px;
|
}
|
}
|
}
|
|
.headerCon {
|
display: flex;
|
flex-wrap: wrap;
|
margin-bottom: 5px;
|
|
.el-button + .el-button {
|
margin-left: 5px;
|
}
|
|
.el-button {
|
margin-top: 5px;
|
}
|
}
|
|
.headerCon > .el-button:nth-child(4) {
|
margin-left: 0;
|
}
|
|
.headerCon > .el-button:nth-child(7) {
|
margin-left: 0;
|
}
|
|
|
.smallBtn {
|
width: 82px;
|
text-align: center;
|
padding-left: 4.5px;
|
}
|
|
</style>
|