<template>
<div class="all">
<div class="head">
<!-- <i class="el-icon-search"></i> -->
<el-button plain icon="el-icon-search" type="success" size="mini" @click="searchByDataCode">查询</el-button>
<el-button plain icon="el-icon-circle-plus-outline" type="success" size="mini" @click="dialogFormVisible = true">新增</el-button>
<!-- 新增的弹出框 -->
<el-dialog title="新增数据字典" :visible.sync="dialogFormVisible">
<el-form :model="formSub" label-width="80px">
<el-row>
<el-col :span="8">
<el-form-item label="字典编码">
<el-input v-model="formSub.data_code" style="width:150px;"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="字典名称">
<el-input v-model="formSub.data_name" style="width:150px;"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="参数级别" >
<el-input v-model="formSub.parameter_level" style="width:150px;"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- 子项目表格 -->
<el-button type="primary" size="mini" @click="addRow()">新增</el-button>
<el-table :data="tableData2"
border style="margin-top:5px;">
<el-table-column prop="item" label="编号" width="165">
<template slot-scope="scope">
<el-input ref="item" v-model="scope.row.item_id"
style="width:150px;"></el-input>
</template>>
</el-table-column>
<el-table-column prop="item" label="item编码" width="165">
<template slot-scope="scope">
<el-input ref="item" v-model="scope.row.item_code"
style="width:150px;"></el-input>
</template>>
</el-table-column>
<el-table-column prop="item" label="item状态" width="165">
<template slot-scope="scope">
<el-input ref="item" v-model="scope.row.item_state"
style="width:150px;"></el-input>
</template>>
</el-table-column>
<el-table-column prop="item" label="字典编码" width="180">
<template slot-scope="scope">
<el-input ref="item" v-model="scope.row.data_code"
style="width:150px;"></el-input>
</template>>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取 消</el-button>
<el-button type="primary" @click="addDataDictionary">确 定</el-button>
</div>
</el-dialog>
<!-- <el-button type="warning" size="mini" @click="dialogFormVisible1 = true">修改</el-button>
<el-button type="danger" size="mini">删除</el-button> -->
</div>
<el-form ref="form" :model="form" label-width="80px" style="margin-top:20px;">
<el-form-item label="字典编码:">
<el-input v-model="form.codeInput" placeholder="请输入" style="width:150px;"></el-input>
</el-form-item>
</el-form>
<!-- 表格 -->
<el-table ref="singleTable" :data="tableData" highlight-current-row
@current-change="handleCurrentChange"
@expand-change="listAllItemByDataCode"
style="width: 100%;" border>
<el-table-column type="expand">
<template slot-scope="props">
<!-- 展示子项目 -->
<el-table :data="tableData1"
max-height="800" border>
<el-table-column prop="item_id" label="编号" ></el-table-column>
<el-table-column prop="item_code" label="item编码" ></el-table-column>
<el-table-column prop="item_state" label="item状态" ></el-table-column>
<el-table-column prop="create_person" label="建档人" ></el-table-column>
<el-table-column prop="create_time" label="建档时间" width="190"></el-table-column>
<el-table-column prop="update_person" label="修改人" ></el-table-column>
<el-table-column prop="update_time" label="修改时间" width="190"></el-table-column>
<el-table-column prop="data_code" label="字典编码" ></el-table-column>
</el-table>
</template>
</el-table-column>
<el-table-column prop="data_code" label="字典编码" width="150"></el-table-column>
<el-table-column prop="data_name" label="字典名称" ></el-table-column>
<el-table-column prop="parameter_level" label="参数级别" ></el-table-column>
<el-table-column prop="create_person" label="建档人" ></el-table-column>
<el-table-column prop="create_time" label="建档时间" width="190" ></el-table-column>
<el-table-column prop="update_person" label="修改人" ></el-table-column>
<el-table-column prop="update_time" label="修改时间" width="190"></el-table-column>
<el-table-column label="操作" width="200" fixed="right">
<template slot-scope="scope" >
<el-button plain type="warning" size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
<el-button plain type="danger" size="small" @click="open(scope.row)">删除</el-button>
<!-- deleteDataDictionary(scope.row) -->
</template>
</el-table-column>
</el-table>
<!-- 编辑弹出框 -->
<el-dialog title="编辑数据字典" :visible.sync="editFormVisible" :height="800">
<el-form :model="formEdit" label-width="80px">·
<el-row>
<el-col :span="8">
<el-form-item label="字典编码">
<el-input v-model="formEdit.data_code" :readonly="true" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="字典名称">
<el-input v-model="formEdit.data_name" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="参数级别" >
<el-input v-model="formEdit.parameter_level" ></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- 子项目表格 -->
<el-button type="primary" size="mini" @click="addRow1()">新增</el-button>
<el-button type="danger" size="mini" @click="deleteItem()">删除</el-button>
<el-table :data="tableData3" ref="multipleTable"
@selection-change="handleSelectionChange"
border style="margin-top:5px;">
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column prop="item" label="编号" >
<template slot-scope="scope">
<el-input ref="item" v-model="scope.row.item_id"
:readonly="true" style="width:150px;"></el-input>
</template>
</el-table-column>
<el-table-column prop="item" label="item编号" >
<template slot-scope="scope">
<el-input ref="item" v-model="scope.row.item_code"
style="width:150px;"></el-input>
</template>
</el-table-column>
<el-table-column prop="item" label="item状态" >
<template slot-scope="scope">
<el-input ref="item" v-model="scope.row.item_state"
style="width:150px;"></el-input>
</template>
</el-table-column>
<el-table-column prop="item" label="字典编码" >
<template slot-scope="scope">
<el-input ref="item" v-model="scope.row.data_code"
style="width:150px;"></el-input>
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button @click="editFormVisible = false">取 消</el-button>
<el-button type="primary" @click="updateDataDictionary()">确 定</el-button>
</div>
</el-dialog>
<!-- 分页 -->
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange1"
:current-page="page"
:page-sizes="[5, 10, 20]"
:page-size="limit"
layout="total, sizes, prev, pager, next, jumper"
:total="count">
</el-pagination>
</div>
</template>
<script>
import axios from 'axios';
import { request } from "../../network/request";
export default {
name: "DataDictionary",
data() {
return {
//codeInput: '',
tableData: [],//外层表格初始值
tableData1:[],//子项表格初始值
tableData2:[{
item_id: '',
item_code: '',
item_state: '',
data_code: ''
}],//新增表格初始值
page:1,
limit:5,
count: 0,
form: {
codeInput: ''
},
dialogFormVisible: false,//弹出层初始为false
formSub: {
data_code:'',
data_name:'',
parameter_level:''
},
//编辑初始值设置
editFormVisible:false,
formEdit:{
data_code:'',
data_name:'',
parameter_level:''
},
tableData3: [{
item_id: '',
item_code: '',
item_state: '',
data_code: ''
}],
dialogDelVisible: false,
multipleSelection: [],
deleteItemsIds:''
}
},
mounted() {
// 发ajax请求,用以获取表格初始数据
const url = 'http://localhost:9091/systemmanagement/dataDictionary/selectAll/'+this.page+'/'+this.limit;
axios.get(url).then(
response => {
//alert("查询成功");
//初始数据
this.tableData = response.data.data.dataDictionaryList;
this.count = response.data.data.count;
}
).catch(
response => {
console.log(err);
},
);
},
methods: {
// 初始页currentPage、初始每页数据数pagesize和数据data
handleSizeChange: function (size) {
this.limit = size;
console.log(this.limit) //每页下拉显示数据
//发送请求新的数据
this.getDataByPagination();
},
handleCurrentChange1: function(page){
this.page = page;
console.log(this.page) //点击第几页
this.getDataByPagination();
},
//分页修改后的查询
getDataByPagination(){
const url = 'http://localhost:9091/systemmanagement/dataDictionary/selectAll/'+this.page+'/'+this.limit;
axios.get(url).then(
response => {
//alert("查询成功");
//初始数据
this.tableData = response.data.data.dataDictionaryList;
this.count = response.data.data.count;
}
).catch(
response => {
console.log(err);
},
);
},
// 选中当前行
setCurrent(row) {
this.$refs.singleTable.setCurrentRow(row);
},
handleCurrentChange(val) {
this.currentRow = val;
},
// 根据DataCode查询数据
searchByDataCode(){
request({
url: "/systemmanagement/dataDictionary/searchByDataCode",
method: "post",
data: {
data_code: this.form.codeInput
}
})
.then(response => {
//成功
this.tableData = response.data.data.dataDictionaryList;
this.count = response.data.data.count;
})
.catch(err => {
//失败
console.log(err);
});
},
//查询子项目数据
listAllItemByDataCode(row,expandedRows){
request({
url: "/systemmanagement/dataDictionaryItem/selectAll/"+row.data_code
// method: "post",
// data: {
// data_code: row.data_code
// }
})
.then(response => {
//成功
this.tableData1 = response.data.data;
})
.catch(err => {
//失败
console.log(err);
});
},
//添加数据字典
addDataDictionary(){
//var token = window.localStorage.getItem("token");
request({
url: "/systemmanagement/dataDictionary/addDataDictionary",
method:"post",
//headers:{"token":token},
data: {
data_code: this.formSub.data_code,
data_name: this.formSub.data_name,
parameter_level: this.formSub.parameter_level
}
})
.then(response => {
//成功
this.addDataItem();
})
.catch(err => {
//失败
console.log(err);
});
},
//添加子项目
addDataItem(){
//var token = window.localStorage.getItem("token");//获取登陆token
this.dialogFormVisible = false;
console.log(this.tableData2);
request({
url: "/systemmanagement/dataDictionaryItem/addDataItem",
method:"post",
//headers:{"token":token},
data: {
dataDictionaryItems: this.tableData2
}
})
.then(response => {
//成功
alert(response.data.message);
this.tableData2=[],
this.formSub.data_name = '',
this.formSub.data_code = '',
this.formSub.parameter_level = ''
location.reload();
})
.catch(err => {
//失败
console.log(err);
});
},
//表格新增行
addRow() {
this.tableData2.push({
item_id: '',
item_code: '',
item_state: '',
data_code: ''
});
},
//点击按钮触发编辑
handleEdit(index, row) {
this.editFormVisible = true;
this.formEdit = Object.assign({}, row);
console.log(this.formEdit);
request({
url: "/systemmanagement/dataDictionaryItem/selectAll/"+row.data_code
})
.then(response => {
//成功
this.tableData3 = response.data.data;
})
.catch(err => {
//失败
console.log(err);
});
},
//表格新增行
addRow1() {
this.tableData3.push({
item_id: '',
item_code: '',
item_state: '',
data_code: ''
});
},
//删除确认提示
open(row) {
this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
//删除
this.dialogDelVisible = false;
request({
url: "/systemmanagement/dataDictionary/deleteDataDictionary/"+row.data_code
})
.then(response => {
//成功
alert(response.data.message);
location.reload();
})
.catch(err => {
//失败
console.log(err);
});
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
//点击确认删除,删除DataDictionary
deleteDataDictionary(row){
this.dialogDelVisible = false;
request({
url: "/systemmanagement/dataDictionary/deleteDataDictionary/"+row.data_code
})
.then(response => {
//成功
alert(response.data.message);
location.reload();
})
.catch(err => {
//失败
console.log(err);
});
},
//获取选中的数据
handleSelectionChange(val) {
this.multipleSelection = val;
},
//删除编辑弹窗中的子项目
deleteItem(){
let items = this.multipleSelection;
items.forEach(element => {
this.deleteItemsIds = element.item_id+',';
});
console.log(this.deleteItemsIds);
// this.deleteItemsIds = items
// .map(item => item.item_id)
// .join();
request({
url: "/systemmanagement/dataDictionaryItem/deleteItem/"+this.deleteItemsIds
})
.then(res => {
this.$message({
message: res.data.message,
type: "success"
});
location.reload();
})
.catch(err => {
this.$message.error(err);
});
},
//修改数据
updateDataDictionary(){
//var token = window.localStorage.getItem("token");
this.editFormVisible = false;
request({
url: "/systemmanagement/dataDictionary/updateDataDictionary",
method:"post",
//headers:{"token":token},
data: {
data_code: this.formEdit.data_code,
data_name: this.formEdit.data_name,
parameter_level: this.formEdit.parameter_level
}
})
.then(response => {
//成功
//location.reload();
this.updateItem();
})
.catch(err => {
//失败
console.log(err);
});
},
//修改子项数据
updateItem(){
//var token = window.localStorage.getItem("token");
//获取行数据
let item = this.multipleSelection;
console.log(item[0].item_id);
request({
url: "/systemmanagement/dataDictionaryItem/updateItem",
method:"post",
//headers:{"token":token},
data: {
item_id: item[0].item_id,
item_code: item[0].item_code,
item_state: item[0].item_state,
data_code: item[0].data_code
}
})
.then(response => {
//成功
//location.reload();
})
.catch(err => {
//失败
console.log(err);
});
}
}
}
</script>
<style>
.all{
margin-left: 20px;
}
.search-module{
margin-top: 20px;
float: left;
}
.el-table td, .el-table th {
text-align: center;
padding: 5px 0;
}
</style>