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.
838 lines
28 KiB
838 lines
28 KiB
<template> |
|
<el-dialog title="详情" v-model="setCrewShow" :before-close="cancel" fullscreen> |
|
<div class="tabs-container"> |
|
<el-tabs v-if="setCrewShow" v-model="activeNameTab"> |
|
<el-tab-pane label="零件信息" name="1"> </el-tab-pane> |
|
<el-tab-pane label="工艺编制" name="2"> </el-tab-pane> |
|
</el-tabs> |
|
<div class="content-right"> |
|
<p v-if="this.detailsType == 'taskProcessing'">工艺版本:202510191001</p> |
|
<el-select v-else v-model="version" placeholder="请输入" clearable filterable disabled> |
|
<el-option |
|
v-for="(item, index) in versionOptions" |
|
:key="index" |
|
:label="item.partVersions" |
|
:value="item.partVersions" |
|
/> |
|
</el-select> |
|
</div> |
|
<div v-show="activeNameTab === '1'"> |
|
<el-card class="box-card-info"> |
|
<div slot="header" class="clearfix"> |
|
<span style="font-size: 20px">基本信息</span> |
|
</div> |
|
<el-form |
|
ref="testForm" |
|
:model="formData" |
|
label-width="120px" |
|
label-position="right" |
|
:validate-on-rule-change="false" |
|
class="vd-form-three" |
|
> |
|
<el-row :gutter="24"> |
|
<el-col :span="8"> |
|
<el-form-item label="零件号:" prop="partCode"> |
|
{{ formData.partCode }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8"> |
|
<el-form-item label="零件名称:" prop="partName"> |
|
{{ formData.partName }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8"> |
|
<el-form-item label="产品型号:" prop="productType"> |
|
{{ formData.productType }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8" v-if="partType == '烧结'"> |
|
<el-form-item label="是否为玻璃饼:" prop="isGlassCake"> |
|
{{ formData.isGlassCake ? '是' : '否' }} |
|
</el-form-item> |
|
</el-col> |
|
|
|
<el-col :span="8" v-if="partType == '烧结'"> |
|
<el-form-item label="是否印字:" prop="isPrint"> |
|
<span v-if="!formData.isGlassCake"> |
|
{{ formData.isPrint == 1 ? '否' : formData.isPrint == 2 ? '单' : '双' }} |
|
</span> |
|
<span v-if="formData.isGlassCake"> |
|
{{ formData.isPrint == 2 ? '是' : '否' }} |
|
</span> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8" v-if="partType == '烧结' && formData.isGlassCake"> |
|
<el-form-item label="材料:" prop="glassCailiao"> |
|
{{ formData.material }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8" v-if="partType == '烧结' && formData.isGlassCake"> |
|
<el-form-item label="粉重:" prop="powderWeight"> |
|
{{ formData.powderWeight }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8" v-if="partType == '烧结' && formData.isGlassCake"> |
|
<el-form-item label="成型厚度:" prop="formingThickness"> |
|
{{ formData.formingThickness }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8" v-if="partType == '烧结' && formData.isGlassCake"> |
|
<el-form-item label="面积(dm²):" prop="area"> |
|
{{ formData.area }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8" v-if="partType == '热表'"> |
|
<el-form-item label="硬度:" prop="hardness"> |
|
{{ formData.hardness }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8" v-if="partType == '热表'"> |
|
<el-form-item label="材料:" prop="material"> |
|
{{ formData.material }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col |
|
:span="8" |
|
v-if="partType == '热表' || (partType == '烧结' && formData.isGlassCake)" |
|
> |
|
<el-form-item label="物料编码:" prop="wuliaobianma"> |
|
<el-select |
|
v-model="value" |
|
placeholder="请选择" |
|
style="width: 250px" |
|
disabled |
|
clearable |
|
filterable |
|
> |
|
<el-option label="物料一" value="1" /> |
|
<el-option label="物料二" value="2" /> |
|
<el-option label="物料三" value="3" /> |
|
</el-select> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8" v-if="partType == '热表'"> |
|
<el-form-item label="镀种1:" prop="plate"> |
|
<el-select |
|
v-model="formData.plate" |
|
placeholder="请选择" |
|
style="width: 250px" |
|
disabled |
|
clearable |
|
filterable |
|
> |
|
<el-option label="镀种一" value="1" /> |
|
<el-option label="镀种二" value="2" /> |
|
<el-option label="镀种三" value="3" /> |
|
</el-select> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8" v-if="partType == '热表'"> |
|
<el-form-item label="镀层代号1:" prop="plateCode"> |
|
{{ formData.plateCode }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8" v-if="partType == '热表'"> |
|
<el-form-item label="面积1(dm²):" prop="area"> |
|
{{ formData.area }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8" v-if="partType == '热表'"> |
|
<el-form-item label="镀种2:" prop="plateTwo"> |
|
<el-select |
|
v-model="formData.plateTwo" |
|
placeholder="请选择" |
|
style="width: 250px" |
|
disabled |
|
clearable |
|
filterable |
|
> |
|
<el-option label="镀种一" value="1" /> |
|
<el-option label="镀种二" value="2" /> |
|
<el-option label="镀种三" value="3" /> |
|
</el-select> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8" v-if="partType == '热表'"> |
|
<el-form-item label="镀层代号2:" prop="plateCodeTwo"> |
|
{{ formData.plateCodeTwo }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8" v-if="partType == '热表'"> |
|
<el-form-item label="面积2(dm²):" prop="areaTwo"> |
|
{{ formData.areaTwo }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8" v-if="partType == '热表'"> |
|
<el-form-item label="镀层厚度:" prop="plateThickness"> |
|
{{ formData.plateThickness }} |
|
</el-form-item> |
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
<el-form-item label="产品应用领域:" prop="plateThickness"> |
|
{{ formData.productApplicationArea }} |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
|
|
<el-row :gutter="24"> |
|
<el-col :span="16"> |
|
<el-form-item label="工艺路线:" prop="craftWay"> |
|
{{ formData.craftWay }} |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
<el-row :gutter="24"> |
|
<el-col :span="8"> |
|
<el-form-item label="有效期:" prop="periodOfValidity"> |
|
{{ formData.periodOfValidity == 1 ? '长期有效' : '自定义' }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8"> |
|
<el-form-item label="有效周期(天):" prop="expirationPeriod"> |
|
{{ formData.expirationPeriod }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8"> |
|
<el-form-item label="到期提醒(天):" prop="advanceRemind"> |
|
{{ formData.advanceRemind }} |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
<el-row :gutter="24"> |
|
<el-col :span="8"> |
|
<el-form-item label="涂色标个数:" prop="tsbNum"> |
|
{{ formData.tsbNum }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8"> |
|
<el-form-item label="涂色带个数:" prop="tsdNum"> |
|
{{ formData.tsdNum }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8"> |
|
<el-form-item label="涂箭头个数:" prop="tjtNum"> |
|
{{ formData.tjtNum }} |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
<el-row :gutter="24"> |
|
<el-col :span="16"> |
|
<el-form-item label="色标色带:" prop="memo"> |
|
{{ formData.memo }} |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
<el-row :gutter="24"> |
|
<el-col :span="16"> |
|
<el-form-item label="关键信息:" prop="keyInfo"> |
|
{{ formData.keyInfo }} |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
<el-row :gutter="24"> |
|
<el-col |
|
:span="24" |
|
v-if="partType == '热表' || (partType == '烧结' && !formData.isGlassCake)" |
|
> |
|
<el-form-item label="工艺校验:" prop="sinTer"> |
|
<el-checkbox v-model="formData.goldMark" v-if="partType == '热表'" disabled |
|
>镀金标识</el-checkbox |
|
> |
|
<el-checkbox v-model="formData.markingsTest" disabled>涂色标</el-checkbox> |
|
<el-checkbox |
|
v-model="formData.fluorescenceCheck" |
|
v-if="partType == '热表'" |
|
disabled |
|
>荧光检</el-checkbox |
|
> |
|
<el-checkbox v-model="formData.hotDispose" v-if="partType == '热表'" disabled |
|
>热处理检验</el-checkbox |
|
> |
|
<el-checkbox v-model="formData.inkjetPrinting" v-if="partType == '热表'" |
|
>喷码</el-checkbox |
|
> |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
</el-form> |
|
</el-card> |
|
<el-card |
|
class="box-card" |
|
v-if="formData.isSintering == '1' && !formData.isGlassCake" |
|
style="margin-top: 24px" |
|
> |
|
<div slot="header" class="clearfix"> |
|
<span style="font-size: 20px">子件信息</span> |
|
</div> |
|
<avue-crud |
|
:option="option" |
|
:table-loading="loading" |
|
:data="dataTable" |
|
v-model="form" |
|
ref="crud" |
|
> |
|
</avue-crud> |
|
</el-card> |
|
</div> |
|
<div v-show="activeNameTab === '2'" class="box-card"> |
|
<div class="process-left"> |
|
<div class="process-select"> |
|
<!-- 工艺级别:--> |
|
<el-form :model="form" label-width="auto"> |
|
<el-form-item label="工艺级别:"> |
|
<el-select |
|
v-model="rank" |
|
placeholder="请选择" |
|
style="width: 220px" |
|
@change="leavelChange" |
|
clearable |
|
filterable |
|
> |
|
<el-option label="一级工艺" value="1" /> |
|
<el-option label="二级工艺" value="2" /> |
|
<el-option label="三级工艺" value="3" /> |
|
</el-select> |
|
</el-form-item> |
|
</el-form> |
|
</div> |
|
<el-tree |
|
style="width: 240px" |
|
:data="data" |
|
:props="defaultProps" |
|
@node-click="handleNodeClick" |
|
:default-expand-all="true" |
|
:expand-on-click-node="false" |
|
/> |
|
</div> |
|
<div class="process-right"> |
|
<el-form :model="form" label-width="auto"> |
|
<el-row :gutter="24"> |
|
<el-col :span="8"> |
|
<el-form-item label="重要度:" prop="prority"> |
|
{{ |
|
this.craftData.craftList.length > 0 |
|
? this.craftData.craftList[0].craftInfo.prority |
|
: '' |
|
}} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8"> |
|
<el-form-item label="生产标识:" prop="qualityGradeName"> |
|
{{ |
|
this.craftData.craftList.length > 0 |
|
? this.craftData.craftList[0].craftInfo.qualityGradeName |
|
: '' |
|
}} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="8"> |
|
<el-form-item label="备注:" prop="beizhu"> |
|
{{ |
|
this.craftData.craftList.length > 0 |
|
? this.craftData.craftList[0].craftInfo.remarks |
|
: '' |
|
}} |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
</el-form> |
|
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> |
|
<el-tab-pane label="工序" name="1" v-if="treeLeave == 2"></el-tab-pane> |
|
<el-tab-pane label="项目" name="2" v-if="treeLeave == 3"></el-tab-pane> |
|
<el-tab-pane label="尺寸、量具" name="3" v-if="treeLeave == 3"></el-tab-pane> |
|
<el-tab-pane label="工装、模具表" name="4" v-if="treeLeave == 3"></el-tab-pane> |
|
</el-tabs> |
|
<el-table :data="form1.tableData1" style="width: 100%" v-if="activeName == '1'"> |
|
<el-table-column prop="processNo" label="工序号"></el-table-column> |
|
<el-table-column prop="processName" label="工序"> </el-table-column> |
|
<el-table-column prop="craftName" label="工艺能力"> </el-table-column> |
|
<el-table-column prop="proDes" label="工序描述"> </el-table-column> |
|
<el-table-column prop="proHours" label="定额工时(分钟)"> </el-table-column> |
|
<el-table-column prop="setoutHours" label="准备工时(分钟)"> </el-table-column> |
|
<el-table-column prop="isMain" label="是否主工序"> |
|
<template #default="scope"> |
|
{{ scope.row.isMain == '1' ? '是' : '否' }} |
|
</template> |
|
</el-table-column> |
|
</el-table> |
|
<el-table :data="form2.tableData2" style="width: 100%" v-if="activeName == '2'"> |
|
<el-table-column prop="processNo" label="工序号"></el-table-column> |
|
<el-table-column prop="projectName" label="检验项目"> </el-table-column> |
|
<el-table-column prop="projectStandard" label="检验标准"> </el-table-column> |
|
<el-table-column prop="proHours" label="定额工时(分钟)"> </el-table-column> |
|
<el-table-column prop="prepareHours" label="准备工时(分钟)"></el-table-column> |
|
</el-table> |
|
<el-table :data="form3.tableData3" style="width: 100%" v-if="activeName == '3'"> |
|
<el-table-column prop="processNo" label="工序号"></el-table-column> |
|
<el-table-column prop="testType" label="镀前镀后"> |
|
<template #default="scope"> |
|
{{ scope.row.testType == 1 ? '镀前' : '镀后' }} |
|
</template> |
|
</el-table-column> |
|
<el-table-column prop="tool" label="量具"> </el-table-column> |
|
<el-table-column prop="toolSize" label="量具尺寸"></el-table-column> |
|
<el-table-column prop="toolInfo" label="图纸尺寸"></el-table-column> |
|
</el-table> |
|
<el-table :data="form4.tableData4" style="width: 100%" v-if="activeName == '4'"> |
|
<el-table-column prop="processNo" label="工序号"></el-table-column> |
|
<el-table-column prop="moldCode" label="对应工装"> </el-table-column> |
|
<el-table-column prop="moldName" label="工装名称"></el-table-column> |
|
<el-table-column prop="isPrint" label="是否印字"></el-table-column> |
|
<el-table-column prop="printNo" label="印字版编号"></el-table-column> |
|
<el-table-column prop="testFixtureNo" label="测试夹具号"></el-table-column> |
|
</el-table> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
<template #footer> |
|
<div class="dialog-footer"> |
|
<el-button @click="cancel()">取消</el-button> |
|
<!-- <el-button type="primary" @click="cancel()"> 确认 </el-button> --> |
|
</div> |
|
</template> |
|
</el-dialog> |
|
</template> |
|
<script> |
|
import dsPartBasicInfo from './dsPartBasicInfo.vue'; |
|
import processPlanning from './processPlanning.vue'; |
|
import { |
|
getPartManagementDetail, |
|
getProcessManagementAuthorized, |
|
getPartDetail, |
|
getProcessAuthorized, |
|
getVersion, |
|
} from '@/api/processManagement/taskProcessing'; |
|
|
|
export default { |
|
name: 'DsPartIndex', |
|
components: { |
|
dsPartBasicInfo, |
|
processPlanning, |
|
}, |
|
props: { |
|
partType: { |
|
type: String, |
|
default: '', |
|
}, |
|
isOpen: { |
|
type: Boolean, |
|
default: false, |
|
}, |
|
|
|
dialogType: { |
|
type: String, |
|
default: '', |
|
}, |
|
rowData: { |
|
type: Object, |
|
default: () => ({}), |
|
}, |
|
detailsType: { |
|
type: String, |
|
default: '', |
|
}, |
|
partId: { |
|
type: String, |
|
default: '', |
|
}, |
|
}, |
|
data() { |
|
return { |
|
showProcessVersion: false, |
|
setCrewShow: false, |
|
activeName: '1', |
|
activeNameTab: '1', |
|
craftData: {}, |
|
formData: {}, |
|
form: {}, |
|
processLevel: '1', |
|
rankList: [], |
|
rank: '2', |
|
priorityList: [], |
|
form1: { |
|
tableData1: [], //工序 |
|
}, |
|
form2: { |
|
tableData2: [], //项目 |
|
}, |
|
form3: { |
|
tableData3: [], //量具 |
|
}, |
|
form4: { |
|
tableData4: [], //工装 |
|
}, |
|
activeName: '1', |
|
treeLeave: 2, //组织树选中层级 |
|
data: [], |
|
dataTable: [], |
|
option: { |
|
tip: false, |
|
simplePage: false, |
|
searchShow: true, |
|
searchMenuSpan: 6, |
|
dialogWidth: '60%', |
|
border: true, |
|
selection: false, |
|
viewBtn: true, |
|
menuWidth: 240, |
|
dialogClickModal: false, |
|
excelBtn: true, |
|
viewBtn: false, |
|
editBtnText: '编辑', |
|
refreshBtn: false, |
|
searchShowBtn: false, |
|
gridBtn: false, |
|
menu: false, |
|
header: false, |
|
index: true, |
|
searchLabelPosition: 'left', |
|
searchGutter: 24, |
|
searchSpan: 6, |
|
menuAlign: 'left', |
|
gridBtn: false, |
|
searchMenuPosition: 'right', |
|
addBtnIcon: ' ', |
|
viewBtnIcon: ' ', |
|
delBtnIcon: ' ', |
|
editBtnIcon: ' ', |
|
align: 'center', |
|
column: [ |
|
{ |
|
label: '零件号', |
|
prop: 'partCode', |
|
search: false, |
|
sortable: true, |
|
overHidden: true, |
|
}, |
|
{ |
|
label: '零件名称', |
|
prop: 'partName', |
|
search: false, |
|
sortable: true, |
|
overHidden: true, |
|
}, |
|
{ |
|
label: '产品型号', |
|
prop: 'productType', |
|
search: false, |
|
sortable: true, |
|
overHidden: true, |
|
}, |
|
{ |
|
label: '数量', |
|
prop: 'quota', |
|
search: false, |
|
sortable: true, |
|
overHidden: true, |
|
}, |
|
{ |
|
label: '总面积', |
|
prop: 'quota', |
|
search: false, |
|
sortable: true, |
|
overHidden: true, |
|
}, |
|
{ |
|
label: '零件类型', |
|
prop: 'sinTerType', |
|
search: false, |
|
sortable: true, |
|
overHidden: true, |
|
type: 'select', |
|
filterable: true, |
|
clearable: true, |
|
cell: true, |
|
dicData: [ |
|
{ |
|
label: '插针', |
|
value: '1', |
|
}, |
|
{ |
|
label: '壳体', |
|
value: '2', |
|
}, |
|
{ |
|
label: '石墨模', |
|
value: '5', |
|
}, |
|
{ |
|
label: '自制玻璃饼', |
|
value: '3', |
|
}, |
|
{ |
|
label: '其他', |
|
value: '4', |
|
}, |
|
], |
|
}, |
|
{ |
|
label: '修改人', |
|
prop: 'updateUser', |
|
search: false, |
|
sortable: true, |
|
overHidden: true, |
|
}, |
|
{ |
|
label: '修改时间', |
|
prop: 'updateTime', |
|
search: false, |
|
sortable: true, |
|
overHidden: true, |
|
}, |
|
], |
|
}, |
|
loading: false, |
|
defaultProps: { |
|
children: 'children', |
|
label: 'label', |
|
}, |
|
version:'',//版本号 |
|
versionOptions:[],// |
|
}; |
|
}, |
|
mounted() { |
|
this.setCrewShow = this.isOpen; |
|
|
|
this.getCcraftInfo(); |
|
this.getPartInfo(); |
|
}, |
|
methods: { |
|
|
|
// 获取零件号的版本号列表 |
|
partChange(partId) { |
|
getVersion({ partId: partId }).then(res => { |
|
this.versionOptions = res.data.data; |
|
}); |
|
},// 组织树点击 |
|
handleNodeClick(nodes, node, self) { |
|
if (nodes.disabled) { |
|
return false; |
|
} |
|
this.treeNodes = nodes; |
|
this.treeLeave = node.level; |
|
|
|
// 清空现有表格数据 |
|
this.form1.tableData1 = []; |
|
this.form2.tableData2 = []; |
|
this.form3.tableData3 = []; |
|
this.form4.tableData4 = []; |
|
// 根据节点层级切换标签页 |
|
if (this.treeLeave === 2) { |
|
this.activeName = '1'; |
|
this.form1.tableData1 = nodes.processList; |
|
} |
|
// 根据节点层级加载对应数据 |
|
if (this.treeLeave === 3) { |
|
this.activeName = '2'; |
|
// 三级节点:工序级,加载工序相关数据 |
|
const { processInfo, projectList, measuringToolList, moldToolList } = nodes.rawData; |
|
|
|
// 加载项目表格数据 |
|
this.form2.tableData2 = projectList.map(item => ({ |
|
trialNo: item.projectCode, |
|
projectName: item.projectName, |
|
projectStandard: item.projectStandard, |
|
proHours: item.proHours, |
|
prepareHours: item.prepareHours, |
|
})); |
|
|
|
// 加载量具表格数据 |
|
this.form3.tableData3 = measuringToolList.map(item => ({ |
|
trialNo: item.projectCode || '', |
|
testType: item.testType, |
|
tool: item.tool, |
|
toolSize: item.toolSize, |
|
toolInfo: item.toolInfo, |
|
})); |
|
|
|
// 加载工装表格数据 |
|
this.form4.tableData4 = moldToolList.map(item => ({ |
|
trialNo: processInfo.processNo, |
|
moldCode: item.moldCode, |
|
moldName: item.moldName, |
|
isPrint: item.isPrint, |
|
printNo: item.printNo, |
|
testFixtureNo: item.testFixtureNo, |
|
})); |
|
} |
|
}, |
|
setDataLocal() { |
|
this.$setItem('零件信息信息验证', this.validateObj); |
|
}, |
|
leavelChange(value) { |
|
console.log('工艺级别', value); |
|
this.getCcraftInfo(); |
|
}, |
|
// 获取工艺信息 |
|
getCcraftInfo() { |
|
// 零件工艺管理-详情 |
|
if (this.detailsType == 'processPlanning') { |
|
let query = { |
|
partId: this.rowData.id, |
|
partVersion: '1.3', |
|
rank: this.rank, |
|
}; |
|
getProcessManagementAuthorized(query).then(res => { |
|
this.data = this.transformCraftTree(res.data.data); |
|
}); |
|
} else if (this.detailsType === 'taskProcessing') { |
|
let query = { |
|
partId: this.partId, |
|
rank: this.rank, |
|
taskId: this.rowData.id, |
|
}; |
|
getProcessAuthorized(query).then(res => { |
|
this.craftData = res.data.data; |
|
this.data = this.transformCraftTree(res.data.data); |
|
}); |
|
} |
|
}, |
|
// 获取零件信息 |
|
getPartInfo() { |
|
console.log('获取零件信息', this.rowData); |
|
// 零件工艺管理-详情 |
|
if (this.detailsType == 'processPlanning') { |
|
let query = { |
|
partId: this.rowData.id, |
|
partVersion: '1.3', |
|
rank: this.rank, |
|
}; |
|
getPartManagementDetail(query).then(res => { |
|
this.formData = res.data.data.dsPartEntity; |
|
}); |
|
} else if (this.detailsType === 'taskProcessing') { |
|
getPartDetail(this.rowData.id).then(res => { |
|
this.formData = res.data.data.dsPartEntity; |
|
this.dataTable = res.data.data.dsPartEntities; |
|
}); |
|
} |
|
}, |
|
// 组织树转换 |
|
transformCraftTree(responseData) { |
|
const { partInfo, craftList } = responseData; |
|
const partCode = partInfo.partCode; |
|
|
|
// 构建树形结构并保留原始数据引用 |
|
const tree = [ |
|
{ |
|
label: partCode, |
|
disabled: true, |
|
rawData: partInfo, // 保存零件原始数据 |
|
children: craftList.map(craft => { |
|
const { craftInfo, processList } = craft; |
|
// 拼接二级节点标签:roamNo-craftNo |
|
const craftLabel = `${craftInfo.roamNo}-${craftInfo.craftNo}`; |
|
|
|
return { |
|
...craftInfo, |
|
label: craftLabel, |
|
processList: processList.map(process => { |
|
return process.processInfo; |
|
}), |
|
rawData: craftInfo, // 保存工艺原始数据 |
|
children: processList.map(process => { |
|
const { processInfo, projectList, measuringToolList, moldToolList } = process; |
|
// 三级节点:工序名称 |
|
const processLabel = processInfo.processName; |
|
|
|
return { |
|
...processInfo, |
|
label: processLabel, |
|
rawData: { |
|
processInfo, |
|
projectList, |
|
measuringToolList, |
|
moldToolList, |
|
}, // 保存工序及关联数据 |
|
children: projectList.map(project => ({ |
|
label: project.projectName, // 四级节点:项目名称 |
|
rawData: project, // 保存项目原始数据 |
|
disabled: true, |
|
})), |
|
}; |
|
}), |
|
}; |
|
}), |
|
}, |
|
]; |
|
|
|
return tree; |
|
}, |
|
handleClick(value) { |
|
console.log(999999, value); |
|
}, |
|
partSubRefLoad() { |
|
this.$refs.partSubRef.loadData(this.partId, true); |
|
}, |
|
cancelClose(flag, dsPart) { |
|
if (flag) { |
|
this.cancel(true); |
|
} else { |
|
this.partId = dsPart.partId; |
|
} |
|
}, |
|
cancel(refresh) { |
|
this.activeName = '1'; |
|
this.setCrewShow = false; |
|
this.$emit('cancel', typeof refresh === 'boolean' && refresh); |
|
}, |
|
}, |
|
}; |
|
</script> |
|
<style lang="scss" scoped> |
|
.tabs-container { |
|
position: relative; |
|
} |
|
|
|
.content-right { |
|
width: 200px; |
|
position: absolute; |
|
right: -24px; |
|
top: -5px; |
|
/* 或者使用 flex: 0 0 200px; 根据需要调整宽度 */ |
|
} |
|
.box-card { |
|
display: flex; |
|
flex-direction: row; |
|
height: calc(100vh - 200px); |
|
|
|
.process-left { |
|
// padding: 20px; |
|
border: 1px solid #ccc; |
|
|
|
.process-select { |
|
padding: 12px; |
|
background: #e4e7ed; |
|
|
|
:deep(.el-form-item) { |
|
margin-bottom: 0px !important; |
|
} |
|
} |
|
} |
|
|
|
.process-right { |
|
padding: 12px; |
|
flex: 1; |
|
border: 1px solid #ccc; |
|
border-left: 0; |
|
|
|
.table-btn { |
|
width: 100%; |
|
height: 50px; |
|
|
|
.table-btn-left { |
|
float: left; |
|
} |
|
|
|
.table-btn-right { |
|
float: right; |
|
} |
|
} |
|
} |
|
} |
|
:deep(.el-card__body) { |
|
width: 100%; |
|
} |
|
</style>
|
|
|