| | |
| | | <template> |
| | | <a-menu :style="menuStyle" @click="menuItemClick" v-if="menuVisible" mode="vertical"> |
| | | <template v-for="menuItem in defaultContextMenuList[currentMenuLevel]"> |
| | | <a-menu-item :key="menuItem.code" v-if="menuItem.show&&menuItem.subMenu.length===0"> |
| | | <template v-for="menuItem in defaultContextMenuList[tableRowInfo.param]"> |
| | | <a-menu-item :key="menuItem.code" v-has="menuItem.code" v-if="menuItem.subMenu.length===0"> |
| | | <a-icon :type="menuItem.icon"/> |
| | | {{menuItem.label}} |
| | | </a-menu-item> |
| | |
| | | <a-sub-menu v-if="menuItem.subMenu.length>0"> |
| | | <span slot="title"><a-icon :type="menuItem.icon"/><span>{{menuItem.label}}</span></span> |
| | | |
| | | <a-menu-item v-for="subMenuItem in menuItem.subMenu" :key="subMenuItem.code" v-if="subMenuItem.show" |
| | | <a-menu-item v-for="subMenuItem in menuItem.subMenu" :key="subMenuItem.code" v-has="subMenuItem.code" |
| | | style="height: 32px;line-height: 32px"> |
| | | <a-icon :type="subMenuItem.icon"/> |
| | | {{subMenuItem.label}} |
| | |
| | | }, |
| | | currentMenuLevel: '', |
| | | defaultContextMenuList: { |
| | | //文档 |
| | | document: [ |
| | | //设备类 |
| | | deviceCustomType: [ |
| | | { label: '编辑设备类信息', code: 'type_edit', subMenu: [], icon: 'edit', isCommonMethod: false }, |
| | | { label: '删除', code: 'type_delete', subMenu: [], icon: 'delete', isCommonMethod: false }, |
| | | { label: '导入NC程序', code: 'type_nc_import', subMenu: [], icon: 'import', isCommonMethod: true } |
| | | ], |
| | | //NC文档 |
| | | NC: [ |
| | | { label: '编辑文档信息', code: 'document_edit', subMenu: [], icon: 'edit', isCommonMethod: false }, |
| | | { label: '指派到设备', code: 'document_assign', subMenu: [], icon: 'cluster', isCommonMethod: false }, |
| | | { label: '导出NC程序', code: 'document_export', subMenu: [], icon: 'export', isCommonMethod: true }, |
| | | { label: '导入NC程序', code: 'document_import', subMenu: [], icon: 'import', isCommonMethod: true }, |
| | | { label: '提取刀具', code: 'document_extract', subMenu: [], icon: 'tool', isCommonMethod: false }, |
| | | { label: '导入NC程序', code: 'document_nc_import', subMenu: [], icon: 'import', isCommonMethod: true }, |
| | | { label: '下载', code: 'document_download', subMenu: [], icon: 'download', isCommonMethod: true }, |
| | | { label: '删除', code: 'document_delete', subMenu: [], icon: 'delete', isCommonMethod: true }, |
| | | { label: '批量删除', code: 'document_batch_remove', subMenu: [], icon: 'delete', isCommonMethod: false }, |
| | | { label: '批量删除', code: 'document_batch_remove', subMenu: [], icon: 'delete', isCommonMethod: true }, |
| | | { label: '定型', code: 'document_appoint', subMenu: [], icon: 'swap-right', isCommonMethod: true }, |
| | | { |
| | | label: '生命周期', |
| | | subMenu: [ |
| | | { label: '出库', code: 'document_pull', icon: 'export', isCommonMethod: false }, |
| | | { label: '取消出库', code: 'document_cancel_pull', icon: 'stop', isCommonMethod: false }, |
| | | { label: '出库', code: 'document_pull', icon: 'export', isCommonMethod: true }, |
| | | { label: '取消出库', code: 'document_cancel_pull', icon: 'stop', isCommonMethod: true }, |
| | | { label: '入库', code: 'document_push', icon: 'import', isCommonMethod: true }, |
| | | { label: '发布', code: 'document_publish', icon: 'flag', isCommonMethod: false }, |
| | | { label: '重新发布', code: 'document_republish', icon: 'reload', isCommonMethod: false }, |
| | | { label: '归档', code: 'document_pigeonhole', icon: 'database', isCommonMethod: false } |
| | | { label: '发布', code: 'document_publish', icon: 'flag', isCommonMethod: true }, |
| | | { label: '重新发布', code: 'document_republish', icon: 'reload', isCommonMethod: true }, |
| | | { label: '归档', code: 'document_pigeonhole', icon: 'database', isCommonMethod: true } |
| | | ], |
| | | icon: 'hourglass' |
| | | } |
| | | ], |
| | | //其它文档 |
| | | OTHER: [ |
| | | { label: '编辑文档信息', code: 'document_edit', subMenu: [], icon: 'edit', isCommonMethod: false }, |
| | | { label: '导入文档', code: 'document_other_import', subMenu: [], icon: 'import', isCommonMethod: true }, |
| | | { label: '下载', code: 'document_download', subMenu: [], icon: 'download', isCommonMethod: true }, |
| | | { label: '删除', code: 'document_delete', subMenu: [], icon: 'delete', isCommonMethod: true }, |
| | | { label: '批量删除', code: 'document_batch_remove', subMenu: [], icon: 'delete', isCommonMethod: true }, |
| | | { |
| | | label: '生命周期', |
| | | subMenu: [ |
| | | { label: '出库', code: 'document_pull', icon: 'export', isCommonMethod: true }, |
| | | { label: '取消出库', code: 'document_cancel_pull', icon: 'stop', isCommonMethod: true }, |
| | | { label: '入库', code: 'document_push', icon: 'import', isCommonMethod: true }, |
| | | { label: '发布', code: 'document_publish', icon: 'flag', isCommonMethod: true }, |
| | | { label: '重新发布', code: 'document_republish', icon: 'reload', isCommonMethod: true }, |
| | | { label: '归档', code: 'document_pigeonhole', icon: 'database', isCommonMethod: true } |
| | | ], |
| | | icon: 'hourglass' |
| | | } |
| | | ], |
| | | //已发送文档 |
| | | SEND: [ |
| | | { label: '编辑文档信息', code: 'document_edit', subMenu: [], icon: 'edit', isCommonMethod: false }, |
| | | { label: '导入NC程序', code: 'document_nc_import', subMenu: [], icon: 'import', isCommonMethod: true }, |
| | | { label: '下载', code: 'document_download', subMenu: [], icon: 'download', isCommonMethod: true }, |
| | | { label: '删除', code: 'document_delete', subMenu: [], icon: 'delete', isCommonMethod: true }, |
| | | { label: '批量删除', code: 'document_batch_remove', subMenu: [], icon: 'delete', isCommonMethod: true }, |
| | | { |
| | | label: '生命周期', |
| | | subMenu: [ |
| | | { label: '出库', code: 'document_pull', icon: 'export', isCommonMethod: true }, |
| | | { label: '取消出库', code: 'document_cancel_pull', icon: 'stop', isCommonMethod: true }, |
| | | { label: '入库', code: 'document_push', icon: 'import', isCommonMethod: true }, |
| | | { label: '发布', code: 'document_publish', icon: 'flag', isCommonMethod: true }, |
| | | { label: '重新发布', code: 'document_republish', icon: 'reload', isCommonMethod: true }, |
| | | { label: '归档', code: 'document_pigeonhole', icon: 'database', isCommonMethod: true } |
| | | ], |
| | | icon: 'hourglass' |
| | | } |
| | | ], |
| | | //已接收文档 |
| | | REC: [ |
| | | { label: '编辑文档信息', code: 'document_edit', subMenu: [], icon: 'edit', isCommonMethod: false }, |
| | | { label: '导入NC程序', code: 'document_nc_import', subMenu: [], icon: 'import', isCommonMethod: true }, |
| | | { label: '下载', code: 'document_download', subMenu: [], icon: 'download', isCommonMethod: true }, |
| | | { label: '删除', code: 'document_delete', subMenu: [], icon: 'delete', isCommonMethod: true }, |
| | | { label: '批量删除', code: 'document_batch_remove', subMenu: [], icon: 'delete', isCommonMethod: true }, |
| | | { label: '指派到产品', code: 'document_rec_assign', subMenu: [], icon: 'cluster', isCommonMethod: false }, |
| | | { |
| | | label: '生命周期', |
| | | subMenu: [ |
| | | { label: '出库', code: 'document_pull', icon: 'export', isCommonMethod: true }, |
| | | { label: '取消出库', code: 'document_cancel_pull', icon: 'stop', isCommonMethod: true }, |
| | | { label: '入库', code: 'document_push', icon: 'import', isCommonMethod: true }, |
| | | { label: '发布', code: 'document_publish', icon: 'flag', isCommonMethod: true }, |
| | | { label: '重新发布', code: 'document_republish', icon: 'reload', isCommonMethod: true }, |
| | | { label: '归档', code: 'document_pigeonhole', icon: 'database', isCommonMethod: true } |
| | | ], |
| | | icon: 'hourglass' |
| | | } |
| | | ], |
| | | //文件 |
| | | file: [ |
| | | { label: '指定当前版本', code: 'file_assign', isCommonMethod: false },//文件-指定当前版本 |
| | | { label: '比对', code: 'file_add_relative', isCommonMethod: false }//比对 |
| | | { label: '指定当前版本', code: 'file_assign', subMenu: [], icon: 'highlight', isCommonMethod: false },//文件-指定当前版本 |
| | | { label: '比对', code: 'file_add_relative', subMenu: [], icon: 'interaction', isCommonMethod: false }//比对 |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | getCurrentDocumentType() { |
| | | if (this.tableRowInfo.attributionType === 5 || this.tableRowInfo.attributionType === 6) return 'NC' |
| | | else return 'OTHER' |
| | | } |
| | | }, |
| | | methods: { |
| | | menuItemClick({ item, key }) { |
| | | const menuKeyArray = key.split('_') |
| | | const isCommonMethod = this.defaultContextMenuList[this.currentMenuLevel].find(item => item.code === key).isCommonMethod |
| | | const menuArrayItem = this.defaultContextMenuList[this.tableRowInfo.param].find(item => item.code === key) |
| | | let isCommonMethod, modalTitle |
| | | if (menuArrayItem) { |
| | | isCommonMethod = menuArrayItem.isCommonMethod |
| | | modalTitle = menuArrayItem.label |
| | | } else { |
| | | const subMenuArrayItem = this.defaultContextMenuList[this.tableRowInfo.param].find(item => item.subMenu.length > 0).subMenu.find(item => item.code === key) |
| | | isCommonMethod = subMenuArrayItem.isCommonMethod |
| | | modalTitle = subMenuArrayItem.label |
| | | } |
| | | let methodName |
| | | // 判断是否为公共方法,如果为公共方法则截取专有属性product/component/part/process等字段 |
| | | if (isCommonMethod) { |
| | |
| | | // product_add => handleProcessAdd 触发对应组件事件 |
| | | methodName = 'handle' + menuKeyArray.map(item => item[0].toUpperCase() + item.slice(1)).join('') |
| | | } |
| | | const modalTitle = this.defaultContextMenuList[this.currentMenuLevel].find(item => item.code === key).label |
| | | console.log('methodName---------------------------------------', methodName) |
| | | console.log('tableRowInfo---------------------------------------', this.tableRowInfo) |
| | | console.log('methodName---------------------------------------', methodName) |
| | | this.$bus.$emit('tableMenuItemMethodTrigger', { |
| | | methodName, |
| | | modalTitle, |