<template> <div> <div flex style="height: 100%;"> <base-layout title="菜单树" style="width:260px;" :bottonShow="false" :isPage="false" :mainColor="mainColor" ref="treeLayout" :operateButtonSwitch="false"> <div slot="main"> <base-tree ref="baseTree" @handleNodeClick="handleNodeClick" :menuData="menuData"></base-tree> </div> </base-layout> <div style="flex:1;"> <!-- <div style=""> <p>标准按钮</p> <div flex-wrap="cross:centet;height: 100px;overflow: auto;"> <el-button v-for="(item,index) in standardList" :type="item.type?item.type:'primary'" size="small" style="margin-left: 5px;margin-bottom: 10px;" @click="funNewClick(item)" :key="index"> {{item.menuName}} </el-button> </div> </div> --> <base-layout title="按钮权限" ref="buttonLayout" :isPage="true" @onFuncBtn="getFuncBtn" @pageChange="pageChange"> <div slot="main" slot-scope="{ tableHeight }" style="height: 100%;"> <base-table ref="customtable" :border="true" :showIndex="false" :tabLoading.sync="tabLoading" :tableHeight="tableHeight" :tableData="tableData" @radioChange="radioChange" :slotrow="true" :tableColumn="tableColumn"> </base-table> </div> </base-layout> </div> </div> <!-- 按钮权限弹窗 --> <base-dialog :closeEscape="true" :showClose="true" :closeModal="false" :dialogVisible.sync="settingsDialog" class="userDialog" title="按钮权限" width="700px" top="10vh"> <base-form ref="customForm" :formRow="formRow" :isFunBtn="isFunBtn" :formdata="formdata" @onSubmit="getSubmit"> </base-form> </base-dialog> </div> </template> <script> import baseTable from "@/components/base/baseTable"; import baseLayout from "@/components/base/baseLayout"; import baseDialog from "@/components/base/BaseNewDialog/index.vue"; import baseTree from "@/components/base/BaseMenuTree/index.vue"; import baseForm from "@/components/base/baseNewForm/index.vue"; import configData from "./configData"; import { GetMenuTree, } from '@/api/apis/menuManage' import { buttonGetMenBillList, buttonGetBillList, buttonSaveData, buttonDelData } from '@/api/apis/buttonList' export default { name: "review", components: { baseLayout, baseTable, baseDialog, baseTree, baseForm }, data() { return { radioIndex: false, radioID: false, mainColor: '#f8f8f8', tabLoading: false, standardList: [{ icon: 'el-icon-search', menuName: '新增' },], tableData: [], settingsDialog: false, settingCenter: "left", isFunBtn: true, formRow: configData.formRow, // buttonList: [{ // 'menuName': '新增', // icon: 'el-icon-plus' // }, // { // 'menuName': '编辑', // icon: 'el-icon-edit' // }, // { // 'menuName': '删除', // icon: 'el-icon-delete', // type: 'danger' // }, // ], btnEvenName: '', menuData: [], formdata: {}, pageModel: { limit: 20, menuId: '', page: 1, Sequence: "", SequenceName: "" } } }, computed: { // 表头配置 tableColumn() { return configData.tableColumnJson }, }, mounted() { this.initPage() }, methods: { initPage() { this.getMenuData() this.getTableData() }, async getMenuData() { let res = await GetMenuTree({}) if (res.code == 1) { let arr = JSON.parse(res.data[0]) this.menuData = JSON.parse(res.data[0]) } }, // 树状图点击事件 handleNodeClick(data) { this.pageModel.menuId = data.id this.pageModel.page = 1 this.RefreshTable() }, // 刷新table RefreshTable() { this.radioID = false this.radioIndex = false this.$nextTick(() => { this.$refs.buttonLayout.pageClear() this.$refs.customtable.clearRadioIndex() }) this.getTableData() }, pageChange(model) { this.pageModel.page = model.page this.pageModel.limit = model.limit this.getTableData() }, // 单选 radioChange(val) { this.radioIndex = val.index this.radioID = val.id }, getTableData() { this.tabLoading = true let params = { ...this.pageModel } this.tabLoading = true this.tableData = [] buttonGetBillList(params).then(res => { if (res.code == 1) { this.tableData = res.data[1] this.$nextTick(() => { this.$refs.buttonLayout.setPageTotal(res.data[0]) }) } this.tabLoading = false }) this.tabLoading = false }, btnadd() { console.log("添加") }, test() { console.log("测试") }, // 按钮点击事件 getFuncBtn(btnEven) { this.btnEvenName = btnEven.menuName // let ftnFunction = 'test' // this[ftnFunction]() if (btnEven.menuName == '新增') { if (!this.pageModel.menuId) { this.$vmNews('请选择菜单') return } // this.$refs.customForm.resetForm() this.settingsDialog = true this.$nextTick(() => { this.$refs.customForm.choiceAssignment({}) }) } if (btnEven.menuName == "编辑") { if (this.radioID === false) { this.$vmNews('请选择一条数据') return } this.settingsDialog = true this.formdata = this.tableData[this.radioIndex] this.$nextTick(() => { this.$refs.customForm.choiceAssignment(this.tableData[this.radioIndex]) }) } if (btnEven.menuName == '删除') { if (this.radioID === false) { this.$vmNews('请选择一条数据') return } this.$confirm('确定删除吗?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { let params = { id: this.radioID } buttonDelData(params).then(res => { if (res.code == 1) { this.$vmNews("删除成功", 'success') this.pageModel.page = 1 this.RefreshTable() } }) }).catch(() => { }); } }, //表单提交 getSubmit(data) { let params = { ...data } if (this.btnEvenName == '编辑') { delete params.createTime delete params.index } else { params.id = 0 params.MenuID = this.pageModel.menuId } buttonSaveData({ dataMain: params }).then(res => { if (res.code == 1) { this.$vmNews("保存成功", 'success') this.pageModel.page = 1 this.RefreshTable() this.settingsDialog = false } }) }, funNewClick(item) { // this.$emit('onFuncBtn', item); }, }, } </script> <style></style>