plm前端
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

<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>