You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
4.6 KiB
169 lines
4.6 KiB
<template>
|
|
<el-dialog
|
|
:title="buttons.menuList || '菜单列表'"
|
|
@close="close"
|
|
:close-on-click-modal="false"
|
|
:visible.sync="visible">
|
|
<div class="mod-menu">
|
|
<el-table
|
|
:data="dataList"
|
|
v-loading="dataListLoading"
|
|
border
|
|
:height="tableHeight"
|
|
style="width: 100%; ">
|
|
<el-table-column
|
|
prop="name"
|
|
header-align="center"
|
|
min-width="150"
|
|
:label="buttons.name || '名称'">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="parentName"
|
|
header-align="center"
|
|
align="center"
|
|
width="120"
|
|
:label="buttons.parentName || '上级菜单'">
|
|
</el-table-column>
|
|
<el-table-column
|
|
header-align="center"
|
|
align="center"
|
|
:label="buttons.icon || '图标'">
|
|
<template slot-scope="scope">
|
|
<icon-svg :name="scope.row.icon || ''"></icon-svg>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="type"
|
|
header-align="center"
|
|
align="center"
|
|
:label="buttons.type || '类型'">
|
|
<template slot-scope="scope">
|
|
<el-link v-if="scope.row.type === 0" type="success">{{ buttons.type1 || '目录' }}</el-link>
|
|
<el-link v-else-if="scope.row.type === 1" size="small" type="success">{{ buttons.type2 || '菜单' }}
|
|
</el-link>
|
|
<el-link v-else-if="scope.row.type === 2" size="small" type="info">{{ buttons.type3 || '按钮' }}</el-link>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
fixed="right"
|
|
header-align="center"
|
|
align="center"
|
|
width="150"
|
|
:label="buttons.cz || '操作'">
|
|
<template slot-scope="scope">
|
|
<a v-if="isAuth('sys:oss:all') && scope.row.type === 1 " type="text" size="small"
|
|
@click="helpFileList(scope.row.menuId)">{{ buttons.helpFileList || '帮助文档' }}</a>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
|
|
<FileList ref="helpFileList" v-if="helpFileVisible"></FileList>
|
|
</div>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button type="primary" @click="visible = false">{{ buttons.close || '关闭' }}</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
searchFunctionButtonList,
|
|
} from "@/api/sysLanguage.js"
|
|
import FileList from '../common/file-list'
|
|
import {treeDataTranslate} from '@/utils'
|
|
|
|
export default {
|
|
data() {
|
|
return {
|
|
// height: 450,
|
|
dataForm: {},
|
|
dataList: [],
|
|
tableHeight: 0,
|
|
visible: false,
|
|
dataListLoading: false,
|
|
addOrUpdateVisible: false,
|
|
menuLanguageVisible: false,
|
|
helpFileVisible: false,
|
|
buttons: {
|
|
menuList: '菜单列表',
|
|
name: '名称',
|
|
cz: '操作',
|
|
upload: '上传',
|
|
delete: '删除',
|
|
fileDownload: '下载',
|
|
deleteList: '批量删除',
|
|
helpFileList: '帮助文档',
|
|
parentName: '上级菜单',
|
|
icon: '图标',
|
|
type: '类型',
|
|
type1: '目录',
|
|
type2: '菜单',
|
|
type3: '按钮',
|
|
close: '关闭'
|
|
},
|
|
}
|
|
},
|
|
components: {
|
|
FileList
|
|
},
|
|
activated() {
|
|
this.getDataList()
|
|
},
|
|
mounted() {
|
|
this.$nextTick(() => {
|
|
this.tableHeight = (window.innerHeight * 0.65);
|
|
})
|
|
},
|
|
methods: {
|
|
// 获取button的词典
|
|
getFunctionButtonList() {
|
|
let queryButton = {
|
|
functionId: this.$route.meta.menuId,
|
|
tableId: '*',
|
|
languageCode: this.$i18n.locale,
|
|
objectType: 'button'
|
|
}
|
|
searchFunctionButtonList(queryButton).then(({data}) => {
|
|
if (data.code == 0 && data.data) {
|
|
this.buttons = data.data
|
|
}
|
|
})
|
|
},
|
|
init() {
|
|
this.visible = true
|
|
this.getDataList()
|
|
},
|
|
getDataList() {
|
|
this.dataListLoading = true
|
|
this.$http({
|
|
url: this.$http.adornUrl('/sys/menu/list/' + this.$i18n.locale),
|
|
method: 'get',
|
|
params: this.$http.adornParams()
|
|
}).then(({data}) => {
|
|
this.dataList = data.filter(item => item.type === 1 && item.menuType === 'pc')
|
|
this.dataListLoading = false
|
|
})
|
|
},
|
|
// 帮助文档列表
|
|
helpFileList(val) {
|
|
let fileMappingDto = {
|
|
fileId: '',
|
|
fileType: '功能帮助文档',
|
|
orderRef1: val,
|
|
orderRef2: '*',
|
|
orderRef3: '*',
|
|
}
|
|
this.helpFileVisible = true;
|
|
this.$nextTick(() => {
|
|
this.$refs.helpFileList.init(fileMappingDto)
|
|
})
|
|
},
|
|
close() {
|
|
this.dataList = []
|
|
}
|
|
},
|
|
created() {
|
|
this.getFunctionButtonList()
|
|
}
|
|
}
|
|
</script>
|