233 lines
5.7 KiB
Vue
233 lines
5.7 KiB
Vue
<template>
|
|
<div flex>
|
|
<div class="treeBody" v-if="menuData.length > 0">
|
|
<base-tree ref="baseTree" :isCenter="false" :isSaveBtn="false" :Allshow="false" :showCheckbox="false"
|
|
:menuData="menuData" @handleNodeClick="handleNodeClick"
|
|
>
|
|
</base-tree>
|
|
</div>
|
|
|
|
<div style="overflow: hidden;padding: 10px;flex: 1;">
|
|
<div flex="cross:center" style="margin-bottom: 10px;" v-if="showSearch">
|
|
<el-input v-model="write" :placeholder="placeholder" style="width: 200px;margin-right: 10px;">
|
|
</el-input>
|
|
<el-button type="primary" icon="el-icon-search" @click="search">查询</el-button>
|
|
</div>
|
|
<base-table ref="customtable" :border="true" :showIndex="false" :tabLoading.sync="tabLoading" :slotrow="true"
|
|
:tableData="tableData" :tableColumn="tableColumn" :funData="[]" @onCellClick="getCell"
|
|
:tableHeight="tableHeightLog"
|
|
@onSelectionChange="getSelect" :highlightCurrent="true" @radioChange="radioChange"
|
|
>
|
|
<!-- 单选 -->
|
|
<template v-slot:option="{row}">
|
|
<el-radio v-model="radio" :label="row.$index"></el-radio>
|
|
</template>
|
|
</base-table>
|
|
<base-page :pageModel.sync="pageModel" @onPageChange="pageChange" :pageSizesList="[10 , 20, 80, 100, 150]"
|
|
v-if="pageShow"
|
|
></base-page>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import baseTable from '@/components/base/baseTable'
|
|
import baseLayout from '@/components/base/baseLayout'
|
|
import baseJurisdiction from '@/components/base/baseJurisdiction/index.vue'
|
|
import baseTree from '@/components/base/BaseMenuTree/index.vue'
|
|
import basePage from '@/components/base/basePage'
|
|
import configData from './configData'
|
|
|
|
export default {
|
|
name: 'review',
|
|
components: {
|
|
baseLayout,
|
|
baseTable,
|
|
baseTree,
|
|
baseJurisdiction,
|
|
basePage
|
|
},
|
|
props: {
|
|
// 表格尺寸
|
|
placeholder: {
|
|
type: String,
|
|
default: '请输入内容'
|
|
},
|
|
choiceDialog: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
tableColumn: {
|
|
type: Array,
|
|
default() {
|
|
return []
|
|
}
|
|
},
|
|
menuData: {
|
|
type: Array,
|
|
default() {
|
|
return []
|
|
}
|
|
},
|
|
tableData: {
|
|
type: Array,
|
|
default() {
|
|
return []
|
|
}
|
|
},
|
|
pageShow: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
showSearch: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
|
|
|
|
},
|
|
watch: {
|
|
choiceDialog: {
|
|
deep: true, //深度监听设置为 true
|
|
handler: function(newV, oldV) {
|
|
if (this.choiceDialog) {
|
|
this.reset()
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
radio: false,
|
|
optionData: '',
|
|
// 分页数据
|
|
pageModel: {
|
|
total: 0,
|
|
page: 1,
|
|
limit: 10
|
|
},
|
|
write: '',
|
|
nowBtns: [{
|
|
'routeUrl': 'button_jurisdiction',
|
|
'menuName': '权限设置'
|
|
}],
|
|
tabLoading: false,
|
|
selectTable: [], //多选
|
|
settingsDialog: false,
|
|
settingCenter: 'left',
|
|
tableHeightLog: 'calc(100vh - 416px)'
|
|
}
|
|
},
|
|
computed: {
|
|
// 表头配置
|
|
// tableColumn() {
|
|
// return configData.tableColumnJson
|
|
// },
|
|
},
|
|
mounted() {
|
|
// this.$refs.customtable.clearRadioIndex()
|
|
},
|
|
methods: {
|
|
// 查询、筛选事件
|
|
getQuery(model) {
|
|
console.log(model)
|
|
},
|
|
// 单元格点击事件
|
|
getCell(row, label) {
|
|
|
|
},
|
|
// 详情页 type: 1 新增 2编辑
|
|
goInfo(type = 1, id) {
|
|
|
|
},
|
|
getElSelect(event, index, indexItem, param) {
|
|
},
|
|
// 按钮点击事件
|
|
getFuncBtn(btnEven) {
|
|
console.log(btnEven)
|
|
if (btnEven.routeUrl == 'button_jurisdiction') {
|
|
this.settingsDialog = true
|
|
}
|
|
},
|
|
// 表格多选
|
|
getSelect(selectTable) {
|
|
this.selectTable = selectTable
|
|
},
|
|
// 树状图点击事件
|
|
handleNodeClick(data) {
|
|
this.organizationForm = {
|
|
o_OrganCode: data.o_OrganCode,
|
|
ParentOrganName: data.label
|
|
}
|
|
this.propvalue = data.label
|
|
this.optionData = ''
|
|
this.$refs.customtable.clearRadioIndex()
|
|
this.$emit('handleNodeClick', data)
|
|
},
|
|
// 页数或每页条数更改时触发
|
|
pageChange() {
|
|
let pageModel ={
|
|
page: this.pageModel.pageIndex ? this.pageModel.pageIndex : 1,
|
|
limit: this.pageModel.pageSize? this.pageModel.pageSize : 10
|
|
}
|
|
this.$emit('onQuery', this.mergeParam(), pageModel)
|
|
},
|
|
mergeParam(state) {
|
|
|
|
if (state) {
|
|
this.pageModel.page = 1
|
|
}
|
|
let page = {
|
|
page: this.pageModel.page,
|
|
limit: this.pageModel.limit
|
|
}
|
|
for (let i in this.model) {
|
|
if (!this.model[i]) {
|
|
this.model[i] = null
|
|
}
|
|
}
|
|
let search = Object.assign({}, page, this.model)
|
|
return Object.assign({}, page, this.model)
|
|
},
|
|
// 设置分页total值
|
|
setPageTotal(total) {
|
|
this.$set(this.pageModel, 'total', total)
|
|
},
|
|
//查询
|
|
search() {
|
|
this.$emit('getTableList', this.write)
|
|
},
|
|
radioChange(val) {
|
|
this.optionData = val
|
|
this.radio = val.index
|
|
},
|
|
reset() {
|
|
this.write = ''
|
|
this.radio = false
|
|
}
|
|
},
|
|
mounted() {
|
|
// this.$refs.choice.reset()
|
|
}
|
|
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
.treeBody {
|
|
background-color: #f2f3f4;
|
|
width: 25%;
|
|
margin-top: 10px;
|
|
height: calc(100vh - 360px);
|
|
overflow-y: auto;
|
|
}
|
|
|
|
/* >>>.el-table__body-wrapper {
|
|
height: 300px !important;
|
|
} */
|
|
|
|
.app-container {
|
|
height: calc(100% - 52px);
|
|
}
|
|
</style>
|