| | |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | }/*, |
| | | { |
| | | minWidth: '100', |
| | | prop: 'productionCounting', |
| | | label: '是否报工', |
| | |
| | | optList: () => { |
| | | return this.getChangeList() |
| | | } |
| | | } |
| | | } */ |
| | | ] |
| | | }, |
| | | addOrUpdateVisible: false, |
| | |
| | | </el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="替代号" prop="alternativeNo"> |
| | | <!-- <el-form-item label="替代号" prop="alternativeNo"> |
| | | <el-input |
| | | v-model="treeForm.alternativeNo" |
| | | placeholder="替代号" |
| | | disabled |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | |
| | | <el-form-item label="替代描述" prop="alternativeDesc"> |
| | | <!-- <el-form-item label="替代描述" prop="alternativeDesc"> |
| | | <el-input |
| | | v-model="treeForm.alternativeDesc" |
| | | placeholder="替代描述" |
| | | disabled |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | |
| | | <el-form-item label="绝缘颜色"> |
| | | <el-input |
| | | v-model="treeForm.insulationColor" |
| | | placeholder="绝缘颜色" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="护套颜色"> |
| | | <!-- --> |
| | | <!-- <el-form-item label="护套颜色"> |
| | | <el-input v-model="treeForm.sheathColor" placeholder="护套颜色"> |
| | | </el-input> |
| | | </el-form-item> |
| | |
| | | placeholder="特性1" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | |
| | | <el-table-column label="零件名称" prop="partName"></el-table-column> |
| | | <el-table-column label="单位" prop="unit"></el-table-column> |
| | | <el-table-column label="数量" prop="qpa"></el-table-column> |
| | | <el-table-column label="盘数" prop="discNum"></el-table-column> |
| | | <!-- <el-table-column label="盘数" prop="discNum"></el-table-column> --> |
| | | </el-table> |
| | | <!-- <el-table |
| | | class="tree-select-table" |
| | |
| | | import { |
| | | fetchList, |
| | | delObj, |
| | | addByStructure |
| | | addByStructure, |
| | | } 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' |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | uploadInfo: { |
| | | // 是否展示上传EXCEL以及对应的url |
| | | isShow: true, |
| | | url: 'mes/bom/uploadExcel' |
| | | url: 'mes/bom/uploadExcel', |
| | | }, |
| | | prelang: 'completeProductStructure', |
| | | options: { |
| | |
| | | isRefresh: true, // 是否显示刷新按钮 |
| | | isShowHide: true, // 是否显示显影按钮 |
| | | isSearch: false, // 高级查询按钮 |
| | | defaultOrderBy: { column: 'id', direction: 'desc' } |
| | | defaultOrderBy: { column: 'id', direction: 'desc' }, |
| | | }, |
| | | table: { |
| | | total: 0, |
| | |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | render: { fun: this.addOrUpdateHandle } |
| | | render: { fun: this.addOrUpdateHandle }, |
| | | }, |
| | | // 零件名称 |
| | | { |
| | |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | searchInfoType: 'text', |
| | | }, |
| | | // 零件号 |
| | | { |
| | |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | searchInfoType: 'text', |
| | | }, |
| | | |
| | | // 状态 |
| | |
| | | formatVal = '已取消' |
| | | } |
| | | return formatVal |
| | | } |
| | | }, |
| | | }, |
| | | |
| | | // 类型 |
| | |
| | | formatter: this.formatBomTypeDbType, |
| | | optList: () => { |
| | | return this.bomTypeDbOptions |
| | | } |
| | | }, |
| | | }, |
| | | // 版本号 |
| | | { |
| | |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | searchInfoType: 'text', |
| | | }, |
| | | |
| | | // 替代号 |
| | | { |
| | | minWidth: '120', |
| | | prop: 'alternativeNo', |
| | | label: '替代号', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'alternativeNo', |
| | | // label: '替代号', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text', |
| | | // }, |
| | | |
| | | // 替代描述 |
| | | { |
| | | minWidth: '120', |
| | | prop: 'alternativeDesc', |
| | | label: '替代描述', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'alternativeDesc', |
| | | // label: '替代描述', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text', |
| | | // }, |
| | | |
| | | // 绝缘颜色 |
| | | { |
| | | minWidth: '120', |
| | | prop: 'insulationColor', |
| | | label: '绝缘颜色', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'insulationColor', |
| | | // label: '绝缘颜色', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text', |
| | | // }, |
| | | // 护套颜色 |
| | | { |
| | | minWidth: '120', |
| | | prop: 'sheathColor', |
| | | label: '护套颜色', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'sheathColor', |
| | | // label: '护套颜色', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text', |
| | | // }, |
| | | // 特性1 |
| | | { |
| | | minWidth: '120', |
| | | prop: 'characteristicOne', |
| | | label: '特性1', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'characteristicOne', |
| | | // label: '特性1', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text', |
| | | // }, |
| | | // 创建人 |
| | | { |
| | | minWidth: '120', |
| | |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | searchInfoType: 'text', |
| | | }, |
| | | // 创建时间 |
| | | { |
| | |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'datetimerange' |
| | | } |
| | | searchInfoType: 'datetimerange', |
| | | }, |
| | | ], |
| | | toolbar: [ |
| | | // { |
| | |
| | | text: '产品结构生成BOM', |
| | | fun: this.addByStructureHandle, |
| | | disabled: false, |
| | | permitArr: [] |
| | | permitArr: [], |
| | | }, |
| | | { |
| | | text: '批准', |
| | |
| | | this.approveHandle('ACCEPT') |
| | | }, |
| | | disabled: false, |
| | | permitArr: ['01draft'] |
| | | permitArr: ['01draft'], |
| | | }, |
| | | { |
| | | text: '撤回', |
| | |
| | | this.approveHandle('REVOKE') |
| | | }, |
| | | disabled: false, |
| | | permitArr: ['02accepted'] |
| | | permitArr: ['02accepted'], |
| | | }, |
| | | { |
| | | text: '拒绝', |
| | |
| | | this.approveHandle('CANCEL') |
| | | }, |
| | | disabled: false, |
| | | permitArr: ['02accepted'] |
| | | permitArr: ['02accepted'], |
| | | }, |
| | | { |
| | | text: '删除', |
| | |
| | | this.deleteAll() |
| | | }, |
| | | disabled: false, |
| | | permitArr: [] |
| | | } |
| | | permitArr: [], |
| | | }, |
| | | ], |
| | | operator: [ |
| | | { |
| | | text: '删除', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.deleteHandle |
| | | } |
| | | fun: this.deleteHandle, |
| | | }, |
| | | ], |
| | | operatorConfig: { |
| | | fixed: 'right', |
| | | label: '操作', |
| | | width: 100, |
| | | minWidth: 100 |
| | | } |
| | | minWidth: 100, |
| | | }, |
| | | }, |
| | | stateOptionList: [ |
| | | { |
| | | value: '01draft', |
| | | label: '草稿' |
| | | label: '草稿', |
| | | }, |
| | | { |
| | | value: '02accepted', |
| | | label: '已接受' |
| | | label: '已接受', |
| | | }, |
| | | { |
| | | value: '03cancelled', |
| | | label: '已取消' |
| | | } |
| | | label: '已取消', |
| | | }, |
| | | ], |
| | | bomTypeDbOptions: [] |
| | | bomTypeDbOptions: [], |
| | | } |
| | | }, |
| | | components: { |
| | | ttable |
| | | ttable, |
| | | }, |
| | | computed: { |
| | | ...mapGetters(['permissions']) |
| | | ...mapGetters(['permissions']), |
| | | }, |
| | | activated() { |
| | | this.getData() |
| | |
| | | addOrUpdateHandle(row) { |
| | | this.$router.push({ |
| | | name: 'completeProductStructure', |
| | | params: { id: row == null ? null : row.id } |
| | | params: { id: row == null ? null : row.id }, |
| | | }) |
| | | }, |
| | | // 按产品结构生成BOM |
| | | addByStructureHandle() { |
| | | addByStructure() |
| | | this.$message({ |
| | | message: '已在后台生成BOM,请执行结束后刷新页面', |
| | | type: 'success' |
| | | addByStructure().then((res) => { |
| | | let result = Array.from(new Set(res.data.data)) |
| | | this.$message.success(result.join(',')) |
| | | this.getData() |
| | | }) |
| | | // this.$message({ |
| | | // message: '已在后台生成BOM,请执行结束后刷新页面', |
| | | // type: 'success', |
| | | // }) |
| | | }, |
| | | // 删除 |
| | | deleteHandle(row) { |
| | |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | closeOnClickModal: false |
| | | closeOnClickModal: false, |
| | | }) |
| | | .then(function() { |
| | | .then(function () { |
| | | const ids = [] |
| | | ids.push(row.id) |
| | | return delObj(ids) |
| | |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | closeOnClickModal: false |
| | | closeOnClickModal: false, |
| | | }) |
| | | .then(function() { |
| | | .then(function () { |
| | | const ids = that.multipleSelection.map((item) => { |
| | | return item.id |
| | | }) |
| | |
| | | handleSelectionChange(val) { |
| | | // 根据状态,禁用表头按钮 |
| | | // 筛选出选中记录的状态 |
| | | var stateArr = val.map(function(value, index) { |
| | | var stateArr = val.map(function (value, index) { |
| | | return value.state |
| | | }) |
| | | // 选中状态数组元素去重 |
| | |
| | | }, |
| | | getStateOptionList() { |
| | | return this.stateOptionList |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | |
| | | multipleSelection: [], |
| | | uploadInfo: { |
| | | // 是否展示上传EXCEL以及对应的url |
| | | isShow: true, |
| | | isShow: false, |
| | | url: '/mes/operation/excel/upload' |
| | | }, |
| | | prelang: 'operation', |
| | |
| | | // isSearch: true, |
| | | // searchInfoType: 'text' |
| | | // }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'outsideOpItem', |
| | | label: '外部工序项目', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'select', |
| | | formatter: this.formatOutsideOpItem, |
| | | optList: () => { |
| | | return this.outsideOpItemOptions |
| | | } |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: 'outsideOpItem', |
| | | // label: '外部工序项目', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'select', |
| | | // formatter: this.formatOutsideOpItem, |
| | | // optList: () => { |
| | | // return this.outsideOpItemOptions |
| | | // } |
| | | // }, |
| | | // 备注 |
| | | { |
| | | minWidth: '120', |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="padding-top: 10px"> |
| | | <!-- <el-row style="padding-top: 10px"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="配置项"> |
| | | <el-checkbox-group |
| | |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-row> --> |
| | | </el-form> |
| | | </div> |
| | | |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <!-- <el-col :span="12"> |
| | | <el-form-item label="因素单位" prop="runTimeCodeDb" :rules="disabled ? [{required: false}] : dataRule.runTimeCodeDb"> |
| | | <el-select |
| | | v-model="dataForm.runTimeCodeDb" |
| | |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-col> --> |
| | | </el-row> |
| | | <el-row> |
| | | <!-- <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="机器运转因素" prop="machRunFactor" :rules="disabled ? [{required: false}] : dataRule.machRunFactor"> |
| | | <el-input |
| | |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-row> --> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="人工类别" prop="laborClassNo"> |
| | |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <!-- <el-col :span="12"> |
| | | <el-form-item label="外部工序项目" prop="outsideOpItem"> |
| | | <el-select |
| | | v-model="dataForm.outsideOpItem" |
| | |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-col> --> |
| | | <el-col :span="12"> </el-col> |
| | | </el-row> |
| | | </el-form> |
| | |
| | | noShowTip: false |
| | | }, |
| | | // 是否为主工艺 |
| | | { |
| | | /* { |
| | | minWidth: '120', |
| | | prop: 'master', |
| | | label: '主工艺', |
| | |
| | | formatter: (row, column, cellValue) => { |
| | | return cellValue == true ? '是' : '否' |
| | | } |
| | | }, |
| | | }, */ |
| | | // 状态 |
| | | { |
| | | minWidth: '120', |
| | |
| | | searchInfoType: 'datetimerange' |
| | | }, |
| | | // 替代 |
| | | { |
| | | /* { |
| | | minWidth: '120', |
| | | prop: 'alternativeNo', |
| | | label: '替代', |
| | |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | }, */ |
| | | // 替代描述 |
| | | { |
| | | /* { |
| | | minWidth: '120', |
| | | prop: 'alternativeDesc', |
| | | label: '替代描述', |
| | |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | }, */ |
| | | // 是否已同步至IFS |
| | | // { |
| | | // minWidth: '120', |
| | |
| | | style="width: 280px" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="wireCore" label="线芯"> |
| | | <!-- <el-form-item prop="wireCore" label="线芯"> |
| | | <el-input |
| | | v-model="dataForm.wireCore" |
| | | placeholder="线芯" |
| | | style="width: 60px" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <el-form-item label="BOM" prop="bomId"> |
| | | <el-select :disabled="dataForm.id != null" v-model="dataForm.bomId" placeholder="" filterable> |
| | | <el-option |
| | |
| | | >{{ dataForm.ifsSync ? '是' : '否' }}</span |
| | | > |
| | | </el-form-item> --> |
| | | <el-form-item label="主工艺" prop="master"> |
| | | <!-- <el-form-item label="主工艺" prop="master"> |
| | | <el-switch v-model="dataForm.master"> </el-switch> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | |
| | | <span v-if="!editable">{{ scope.row.operationName }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | prop="outsideOpItem" |
| | | label="外部工序项目" |
| | | align="center" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <el-table-column |
| | | prop="partName" |
| | | label="零件" |
| | |
| | | }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | prop="runTimeCodeDb" |
| | | label="因素单位" |
| | | align="center" |
| | |
| | | label="劳力设置时间" |
| | | align="center" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <el-table-column |
| | | prop="laborClassNo" |
| | | label="人工类别" |
| | |
| | | </el-input> |
| | | </div> |
| | | |
| | | <el-divider content-position="left">配置项</el-divider> |
| | | <!-- <el-divider content-position="left">配置项</el-divider> |
| | | |
| | | <div class="node-content-config"> |
| | | <el-checkbox-group |
| | |
| | | >工单预留</el-checkbox-button |
| | | > |
| | | </el-checkbox-group> |
| | | </div> |
| | | </div> --> |
| | | |
| | | <!-- <el-divider content-position="left">能力</el-divider> |
| | | <div class="node-content"> |
| | |
| | | } |
| | | }, |
| | | // 是否为默认结构 |
| | | { |
| | | /* { |
| | | minWidth: '120', |
| | | prop: 'master', |
| | | label: '默认结构', |
| | |
| | | formatter: (row, column, cellValue) => { |
| | | return cellValue == true ? '是' : '否' |
| | | } |
| | | }, |
| | | }, */ |
| | | // 描述 |
| | | { |
| | | minWidth: '120', |
| | |
| | | >{{ dataForm.ifsSync ? '是' : '否' }}</span |
| | | > |
| | | </el-form-item> --> |
| | | <el-form-item label="默认结构" prop="master"> |
| | | <!-- <el-form-item label="默认结构" prop="master"> |
| | | <el-checkbox v-model="dataForm.master"></el-checkbox> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | |
| | | |
| | | <el-table-column label="单位" prop="unit" align="center"> |
| | | </el-table-column> |
| | | <el-table-column label="盘数(盘)" prop="discNum" align="center"> |
| | | <!-- <el-table-column label="盘数(盘)" prop="discNum" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | size="small" |
| | |
| | | scope.row.discNum |
| | | }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <!-- <el-table-column label="图号" prop="drawingNumber" align="center"> |
| | | </el-table-column> --> |
| | | <el-table-column align="center" label="操作" width="85px"> |