<template>
<div class="simple" >
<power v-model="btnListData"></power>
<div>
<div style="margin-left:5px;" class="formTitle">查询条件</div>
<el-row :gutter="10" class="formWrap">
<el-col class="form-item" :span="8">
<div class="inputLabel">一级经济事项</div>
<el-select v-model="search.oneEcoItem" @change="getTwoEconoOption()">
<el-option
v-for="(item,index) in oneEcoItemOption"
:label="item.name"
:value="item.code"
:key="index"
></el-option>
</el-select>
</el-col>
<el-col class="form-item" :span="8">
<div class="inputLabel">二级经济事项</div>
<el-select v-model="search.twoEcoItem" @change="getThreeEconoOption()" >
<el-option
v-for="(item,index) in twoEcoItemOption"
:label="item.name"
:value="item.code"
:key="index"
></el-option>
</el-select>
</el-col>
<el-col class="form-item" :span="8">
<div class="inputLabel">三级经济事项</div>
<el-select v-model="search.threeEcoItem">
<el-option
v-for="(item,index) in threeEcoItemOption"
:label="item.name"
:value="item.code"
:key="index"
></el-option>
</el-select>
</el-col>
</el-row>
<el-row :gutter="10" class="formWrap">
<el-col class="form-item" :span="8">
<div class="inputLabel">标签</div>
<el-select placeholder="全部" v-model="search.tag">
<el-option label="全部" value="" ></el-option>
<el-option label="通用" value="1"></el-option>
<el-option label="专用" value="0" ></el-option>
</el-select>
</el-col>
<el-col class="form-item" :span="8">
<div class="inputLabel">状态</div>
<el-select placeholder="全部" v-model="search.statusMean">
<el-option label="全部" value="" ></el-option>
<el-option label="审批中" value="审批中"></el-option>
<el-option label="生效" value="生效" ></el-option>
<el-option label="驳回" value="驳回" ></el-option>
<el-option label="失效" value="失效" ></el-option>
</el-select>
</el-col>
</el-row>
<div class="footerButtonGroup">
<el-button @click="clearAll">重置</el-button>
<el-button v-if="$hasPower(btnListData)('ECONOMI_ITEM_SEARCH')" type="primary" @click="searchData">查询</el-button>
</div>
<div class="tabWrap">
<div class="tableTitle">
<font>查询结果</font>
<div class="fr">
<span v-if="$hasPower(btnListData)('ECONOMI_ITEM_ADD')" class="toolButtonItem" @click.prevent="addApply"><img src="@/icons/icon_add.png" style="margin-bottom:-3px"> 新增</span>
<span v-if="$hasPower(btnListData)('ECONOMI_ITEM_EDITT')" class="toolButtonItem" @click.prevent="editApply"><img src="@/icons/icon_edit01.png" style="margin-bottom:-3px"> 修改</span>
<span v-if="$hasPower(btnListData)('ECONOMI_ITEM_ENABLE')" class="toolButtonItem" @click.prevent="enable"><img src="@/icons/icon_start01.png" style="margin-bottom:-3px"> 生效</span>
<span v-if="$hasPower(btnListData)('ECONOMI_ITEM_DISABLE')" class="toolButtonItem" @click.prevent="disable"><img src="@/icons/icon_stop01.png" style="margin-bottom:-3px"> 失效</span>
<span v-show = 'false' v-if="$hasPower(btnListData)('ECONOMI_ITEM_EXPORT')" class="toolButtonItem" @click.prevent='getOut'><img src="@/icons/icon_daochu.png" style="margin-bottom:-3px"> 导出</span>
</div>
</div>
<el-table :data="tableData" @select='tabSelectItem' @select-all='tabSelectItem' border style="width:100%">
<el-table-column type="selection" header-align='center' min-width="45"></el-table-column>
<el-table-column label="序号" width="65" type="index"></el-table-column>
<el-table-column label="一级经济事项编码" prop="economic1Code" :show-overflow-tooltip="true" min-width='150'></el-table-column>
<el-table-column label="一级经济事项名称" prop="economic1Name" :show-overflow-tooltip="true" min-width='150'></el-table-column>
<el-table-column label="二级经济事项编码" prop="economic2Code" :showOverflowTooltip="true" min-width='150'></el-table-column>
<el-table-column label="二级经济事项名称" prop="economic2Name" min-width='150' showOverflowTooltip></el-table-column>
<el-table-column label="三级经济事项编码" prop="economic3Code" min-width='150' showOverflowTooltip></el-table-column>
<el-table-column label="三级经济事项名称" prop="economic3Name" width='150' showOverflowTooltip></el-table-column>
<el-table-column label="状态" align="center" width="100" showOverflowTooltip>
<template slot-scope="scope">
<span v-if="scope.row.statusMean=='审批中'" class="color">{{scope.row.statusMean}}</span>
<span v-else>{{scope.row.statusMean}}</span>
</template>
</el-table-column>
<el-table-column label="标签" prop="tagMean" width='100' showOverflowTooltip></el-table-column>
<el-table-column label="管理口径" prop="managementCaliberName" width='100' showOverflowTooltip></el-table-column>
<el-table-column label="释义" prop="comment" width='100' showOverflowTooltip></el-table-column>
</el-table>
</div>
<div class="myPaginationBox">
<p>共{{ (dataTotal / search.pageSize) === 0 ? 0 : Math.ceil(dataTotal / search.pageSize) }}页/<b>{{dataTotal}}</b>条数据</p>
<el-pagination @size-change="handleSizeChange" @current-change="handlepageNumChange" :page-sizes="[5, 10, 20, 30]" :page-size="search.pageSize"
:current-page="search.pageNum" layout="sizes, prev, pager, next, jumper" :total="dataTotal">
</el-pagination>
</div>
</div>
<el-dialog :visible.sync="dialogAddEdit" size='full' :modal='false' :close-on-click-modal='false' :close-on-press-escape='false'>
<div v-if="dialogAddEdit">
<AddEditEcono @saveAddEdit='saveAddEdit' @closeAddEditdialog='closeAddEditdialog' :sendAEData='sendAEData'></AddEditEcono>
</div>
</el-dialog>
</div>
</template>
<style>
@import "../../css/common.css";
</style>
<style>
.color {
color: #FF7000;
}
#data_picker .el-date-editor.el-input{
width: calc(100% - 110px)!important;
}
</style>
<script type="text/javascript">
import AddEditEcono from "./addEditEcono.vue"
import { tipMsg, justOne, downLoadFile } from '../../js/common.js'
export default {
components: {
AddEditEcono,
},
data() {
return {
loadUrl: '',
btnListData:"",
search: {
oneEcoItem: '',
twoEcoItem: '',
threeEcoItem: '',
tag: '',//标签
statusMean: '',
pageNum: 1,
pageSize: 10
},
num: '',
idList: [], //选择的id集合容器
tagList: [], //选择的tag集合容器
oneEcoItemOption: [], //一级经济事项集合
twoEcoItemOption: [], //二级经济事项集合
threeEcoItemOption: [], //三级级经济事项集合
forItem: [],
tableData: [],
dataTotal: 0,
dialogAddEdit: false, //新增编辑页面
tableTitle: '',
sendAEData: {}, //发送给新增和编辑对话框的参数。
}
},
created() {
this.loadUrl = `${this.$root.loadUrl}`;
this.getEconoOption()
},
mounted() {
},
methods: {
getEconoOption() {
let url = `${this.$root.loadUrl}/economicEventsApply/queryConditon`;
let params = {
levelNo:1,
};
this.$Http.post(url, params).then(rsp => {
if (rsp.body.code == "000000") {
this.oneEcoItemOption = rsp.body.data;
}
});
},
getTwoEconoOption() {
this.search.twoEcoItem = ""
this.search.threeEcoItem = ""
let url = `${this.$root.loadUrl}/economicEventsApply/queryConditon`;
let params = {
pCode:this.search.oneEcoItem,
levelNo:2,
};
this.$Http.post(url, params).then(rsp => {
if (rsp.body.code == "000000") {
this.twoEcoItemOption = rsp.body.data;
}
});
},
getThreeEconoOption() {
this.search.threeEcoItem = ""
let url = `${this.$root.loadUrl}/economicEventsApply/queryConditon`;
let params = {
pCode:this.search.twoEcoItem,
levelNo:3,
};
this.$Http.post(url, params).then(rsp => {
if (rsp.body.code == "000000") {
this.threeEcoItemOption = rsp.body.data;
}
});
},
//查询
searchData() {
let params = {
economic1Code:this.search.oneEcoItem,
economic2Code:this.search.twoEcoItem,
economic3Code:this.search.threeEcoItem,
tag:this.search.tag,
statusMean:this.search.statusMean,
pageNum:this.search.pageNum,
pageSize:this.search.pageSize,
}
this.$Http.post(this.loadUrl + '/economicEventsApply/list', params)
.then((res) => {
var result = res.body;
if (result.code == '000000') {
this.tableData = result.data.list;
this.dataTotal = result.data.total;
} else {
tipMsg(result.message, "error");
return;
}
})
},
//重置
clearAll() {
this.search = {
oneEcoItem: "",
twoEcoItem: "",
threeEcoItem: "",
tag: '',//标签
statusMean: '',
pageNum :1,
pageSize :10,
}
this.twoEcoItemOption = [];
this.threeEcoItemOption = [];
this.tableData = [];
this.dataTotal = 0;
},
//新增
addApply() {
this.dialogAddEdit = true;
this.sendAEData.edit = false;
},
//编辑
editApply() {
if (this.idList.length == 0) {
tipMsg('请选择一条数据', "warning");
return;
}
if (this.idList.length !=1) {
tipMsg('只能编辑一条数据', "warning");
return;
}
if (this.forItem[0].statusMean!="生效") {
tipMsg('只能对生效数据进行编辑。', "warning");
return;
}
let params = {
"id":this.idList[0],
"tag":this.forItem[0].tag
}
this.$Http.post(this.loadUrl + '/economicEventsApply/updateDetail', params)
.then((res) => {
var result = res.body;
if (result.code == '000000') {
this.sendAEData = result.data;
this.dialogAddEdit = true;
this.sendAEData.edit = true;
} else {
tipMsg(result.message, "error");
return;
}
})
},
//
//失效校验
disablecheckMust(){
for(var i=0; i<this.forItem.length;i++){
if(this.forItem[i].statusMean != "生效"){
tipMsg('勾选不对,只能对生效的数据进行失效操作!', "warning");
return false
}
}
return true;
},
//生效校验
enablecheckMust(){
for(var i=0; i<this.forItem.length;i++){
if(this.forItem[i].statusMean != "失效"){
tipMsg('勾选不对,只能对失效的数据进行生效操作!', "warning");
return false
}
}
return true;
},
//生效
enable() {
if (this.enablecheckMust()) {
this.$Http.post(this.loadUrl + '/economicEventsApply/toStart', this.idList)
.then((res) => {
var result = res.body;
if (result.code == '000000') {
tipMsg('生效成功', "success");
this.idList = [];
this.forItem = [];
this.searchData();
} else {
tipMsg(result.message, "error");
return;
}
})
}
},
//失效
disable() {
if (this.disablecheckMust()) {
this.$Http.post(this.loadUrl + '/economicEventsApply/toStop', this.idList)
.then((res) => {
var result = res.body;
if (result.code == '000000') {
tipMsg('失效成功', "success");
this.idList = [];
this.forItem = [];
this.searchData();
} else {
tipMsg(result.message, "error");
return;
}
})
}
},
tabSelectItem(item) {
let aList = [];
this.forItem = item; //传入数据中心,以备后用。
item.forEach((it) => {
aList.push(it.id);
})
setTimeout(this.idListckeck(aList), 100)
},
//去重
idListckeck(arr) {
this.idList = [];
for (var i = 0; i < arr.length; i++) {
if (this.idList.indexOf(arr[i]) == -1) {
this.idList.push(arr[i]);
}
}
return this.idList;
},
//导出
getOut() {
},
//每页大小
handleSizeChange(val) {
this.search.pageSize = val;
this.searchData()
},
//页数选择
handlepageNumChange(val) {
this.search.pageNum = val;
this.searchData()
},
//关闭新增编辑弹窗
closeAddEditdialog() {
this.forItem = [];
this.idList = [];
this.searchData()
this.dialogAddEdit = false;
},
//保存成功后 重新搜索
saveAddEdit() {
this.forItem = [];
this.idList = [];
this.searchData()
},
}
}
</script>