| | |
| | | :ajaxFun="ajaxFun" |
| | | ref="completeProductStructureTable" |
| | | > |
| | | <template #toolbar> |
| | | <el-button type="primary" @click="addByStructureHandle" |
| | | v-if="permissions.technology_completeproductstructure_bom">产品结构生成BOM</el-button> |
| | | <el-button @click="() => {this.approveHandle('ACCEPT')}" |
| | | :disabled="uniqueStateArr.includes('01draft')" |
| | | v-if="permissions.technology_completeproductstructure_accept">批准</el-button> |
| | | <el-button @click="() => {this.approveHandle('REVOKE')}" |
| | | :disabled="uniqueStateArr.includes('02accepted')" |
| | | v-if="permissions.technology_completeproductstructure_revoke">撤回</el-button> |
| | | <el-button @click="() => {this.approveHandle('CANCEL')}" |
| | | :disabled="uniqueStateArr.includes('02accepted')" |
| | | v-if="permissions.technology_completeproductstructure_cancel">拒绝</el-button> |
| | | <el-button @click="() => {this.deleteAll()}" type="primary" |
| | | v-if="permissions.technology_completeproductstructure_batch_delete">批量删除</el-button> |
| | | </template> |
| | | <template #toolbar></template> |
| | | </ttable> |
| | | </basic-container> |
| | | </div> |
| | |
| | | fetchList, |
| | | delObj, |
| | | addByStructure, |
| | | exportBom |
| | | } from '@/api/technology/completeproductstructure' |
| | | import ttable from '@/views/common/ztt-table.vue' |
| | | import { mapGetters } from 'vuex' |
| | | import { changeState } from '../../../api/technology/completeproductstructure' |
| | | import { remote } from '@/api/admin/dict' |
| | | import { transform } from '@/util/fileTransform' |
| | | |
| | | export default { |
| | | data() { |
| | |
| | | }, |
| | | ], |
| | | toolbar: [], |
| | | operator: [ |
| | | { |
| | | text: '删除', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.deleteHandle, |
| | | }, |
| | | ], |
| | | operator: null, |
| | | operatorConfig: { |
| | | fixed: 'right', |
| | | label: '操作', |
| | |
| | | this.getData() |
| | | }, |
| | | created() { |
| | | if(this.permissions.technology_completeproductstructure_bom){ |
| | | this.table.toolbar.push({ |
| | | text: '产品结构生成BOM', |
| | | disabled: false, |
| | | type: 'primary', |
| | | fun: ()=>{this.addByStructureHandle()}, |
| | | permitArr: [], |
| | | }) |
| | | } |
| | | if(this.permissions.technology_completeproductstructure_accept){ |
| | | this.table.toolbar.push({ |
| | | text: '批准', |
| | | disabled: true, |
| | | fun: ()=>{this.approveHandle('ACCEPT')}, |
| | | permitArr: ['01draft'], |
| | | }) |
| | | } |
| | | if(this.permissions.technology_completeproductstructure_revoke){ |
| | | this.table.toolbar.push({ |
| | | text: '撤回', |
| | | disabled: true, |
| | | fun: () => {this.approveHandle('REVOKE')}, |
| | | permitArr: ['02accepted'], |
| | | }) |
| | | } |
| | | if(this.permissions.technology_completeproductstructure_cancel){ |
| | | this.table.toolbar.push({ |
| | | text: '拒绝', |
| | | disabled: true, |
| | | fun: ()=>{this.approveHandle('CANCEL')}, |
| | | permitArr: ['02accepted'], |
| | | }) |
| | | } |
| | | if(this.permissions.technology_completeproductstructure_batch_delete){ |
| | | this.table.toolbar.push({ |
| | | text: '批量删除', |
| | | type:'primary', |
| | | disabled: false, |
| | | permitArr: [], |
| | | fun: ()=>{this.deleteAll()}, |
| | | }) |
| | | } |
| | | if(this.permissions.technology_completeproductstructure_bom_export){ |
| | | this.table.toolbar.push({ |
| | | text: 'BOM导出', |
| | | type:'primary', |
| | | disabled: false, |
| | | permitArr: [], |
| | | fun: ()=>{this.exportBomFun()}, |
| | | }) |
| | | } |
| | | if(this.permissions.technology_completeproductstructure_del){ |
| | | this.table.operator = [ |
| | | { |
| | | text: '删除', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.deleteHandle, |
| | | }, |
| | | ] |
| | | } |
| | | this.getBomTypeDbOptions() |
| | | }, |
| | | watch:{ |
| | | multipleSelection(newVal){ |
| | | if(newVal.length==0){ |
| | | this.table.toolbar.forEach(ele=>{ |
| | | if(ele.text=='拒绝' || ele.text=='批准' || ele.text=='撤回'){ |
| | | ele.disabled = true |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | exportBomFun(){ |
| | | let ids = this.multipleSelection.map(ele=>ele.id) |
| | | if(ids.length<1){ |
| | | this.$message.error("请选择一条数据") |
| | | return |
| | | } |
| | | exportBom(ids).then(res=>{ |
| | | if(res.status===200){ |
| | | transform(res) |
| | | } |
| | | }).catch(error=>{ |
| | | console.error(error) |
| | | }) |
| | | }, |
| | | getBomTypeDbOptions() { |
| | | remote('bom_type_db').then((response) => { |
| | | if (response.data.code === 0) { |
| | |
| | | }, |
| | | // 删除 |
| | | deleteHandle(row) { |
| | | if(!this.permissions.technology_completeproductstructure_del){ |
| | | this.$message.error("该角色没有操作权限") |
| | | return |
| | | } |
| | | this.$confirm('是否确认删除编号为' + row.number, '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | |
| | | uniqueStateArr.push(stateArr[i]) |
| | | } |
| | | } |
| | | this.uniqueStateArr = uniqueStateArr |
| | | // 循环表头按钮,判断每个按钮的permitArr是否完全包含选中状态,若完全包含,则按钮亮,否则按钮灰 |
| | | // var toolbar = this.table.toolbar |
| | | // for (var j = 0; j < toolbar.length; j++) { |
| | | // if ( |
| | | // uniqueStateArr.every((val) => |
| | | // toolbar[j].permitArr.length <= 0 |
| | | // ? true |
| | | // : toolbar[j].permitArr.includes(val) |
| | | // ) |
| | | // ) { |
| | | // toolbar[j].disabled = false |
| | | // } else { |
| | | // toolbar[j].disabled = true |
| | | // } |
| | | // } |
| | | var toolbar = this.table.toolbar |
| | | for (var j = 0; j < toolbar.length; j++) { |
| | | if ( |
| | | uniqueStateArr.every((val) => |
| | | toolbar[j].permitArr.length <= 0 |
| | | ? true |
| | | : toolbar[j].permitArr.includes(val) |
| | | ) |
| | | ) { |
| | | toolbar[j].disabled = false |
| | | } else { |
| | | toolbar[j].disabled = true |
| | | } |
| | | } |
| | | // 将选中记录赋值给multipleSelection |
| | | this.multipleSelection = val |
| | | }, |