@ -0,0 +1,431 @@ | |||
<template> | |||
<el-dialog | |||
title="配置OPC通讯" | |||
visible | |||
width="80%" | |||
:before-close="handleClose" | |||
v-loading="loading" | |||
> | |||
<el-form | |||
:inline="true" | |||
label-width="120px" | |||
:rules="rules" | |||
ref="formRef" | |||
:model="formData" | |||
class="demo-form-inline" | |||
> | |||
<el-row> | |||
<el-col :span="8"> | |||
<el-form-item label="工艺" prop="OPCBasicComInfo-StepDesc"> | |||
<el-input disabled v-model="formData['OPCBasicComInfo-StepDesc']" /> | |||
</el-form-item | |||
></el-col> | |||
<el-col :span="8"> | |||
<el-form-item | |||
:label="getColumnName('OPCBasicComInfo-StepNo')" | |||
prop="OPCBasicComInfo-StepNo" | |||
> | |||
<el-input-number | |||
disabled | |||
v-model="formData['OPCBasicComInfo-StepNo']" | |||
placeholder="请输入" | |||
></el-input-number> </el-form-item | |||
></el-col> | |||
<el-col :span="8"> | |||
<el-form-item | |||
:label="getColumnName('OPCBasicComInfo-PO')" | |||
prop="OPCBasicComInfo-PO" | |||
> | |||
<el-input-number | |||
disabled | |||
v-model="formData['OPCBasicComInfo-PO']" | |||
placeholder="请输入" | |||
></el-input-number> </el-form-item | |||
></el-col> | |||
<el-col :span="8"> | |||
<el-form-item | |||
:label="getColumnName('OPCBasicComInfo-ProjectId')" | |||
prop="OPCBasicComInfo-ProjectId" | |||
> | |||
<el-input | |||
disabled | |||
v-model="formData['OPCBasicComInfo-ProjectId']" | |||
placeholder="请输入" | |||
></el-input> </el-form-item | |||
></el-col> | |||
<el-col :span="8"> | |||
<el-form-item | |||
:label="getColumnName('OPCBasicComInfo-OperationId')" | |||
prop="OPCBasicComInfo-OperationId" | |||
> | |||
<el-input-number | |||
disabled | |||
v-model="formData['OPCBasicComInfo-OperationId']" | |||
placeholder="请输入" | |||
></el-input-number> </el-form-item | |||
></el-col> | |||
<el-col :span="8"> | |||
<el-form-item | |||
:label="getColumnName('OPCBasicComInfo-WorkPlaceNr')" | |||
prop="OPCBasicComInfo-WorkPlaceNr" | |||
> | |||
<el-select | |||
v-model="formData['OPCBasicComInfo-WorkPlaceNr']" | |||
placeholder="请选择" | |||
> | |||
<el-option | |||
v-for="item in stationList" | |||
:key="item['WorkPlace-WorkPlaceNr']" | |||
:label="item['WorkPlace-Descr']" | |||
:value="item['WorkPlace-WorkPlaceNr']" | |||
> | |||
</el-option> | |||
</el-select> </el-form-item | |||
></el-col> | |||
<el-col :span="8"> | |||
<el-form-item | |||
:label="getColumnName('OPCBasicComInfo-BrandName')" | |||
prop="OPCBasicComInfo-BrandName" | |||
> | |||
<el-input | |||
v-model="formData['OPCBasicComInfo-BrandName']" | |||
placeholder="请输入" | |||
></el-input> </el-form-item | |||
></el-col> | |||
<el-col :span="8"> | |||
<el-form-item | |||
:label="getColumnName('OPCBasicComInfo-MachineType')" | |||
prop="OPCBasicComInfo-MachineType" | |||
> | |||
<el-input | |||
v-model="formData['OPCBasicComInfo-MachineType']" | |||
placeholder="请输入" | |||
></el-input> </el-form-item | |||
></el-col> | |||
<el-col :span="8"> | |||
<el-form-item | |||
:label="getColumnName('OPCBasicComInfo-IpAddress')" | |||
prop="OPCBasicComInfo-IpAddress" | |||
> | |||
<el-input | |||
v-model="formData['OPCBasicComInfo-IpAddress']" | |||
placeholder="请输入" | |||
></el-input> </el-form-item | |||
></el-col> | |||
</el-row> | |||
<el-table | |||
:data="formData['OPCBasicComInfo-OPCComRuleLi'] || []" | |||
style="width: 100%" | |||
> | |||
<el-table-column type="expand"> | |||
<template slot-scope="props"> | |||
<el-table | |||
:data="props.row['OPCComRule-OPCComDetailRuleLi'] || []" | |||
style="width: 100%" | |||
> | |||
<el-table-column | |||
:label="getColumnName('OPCComDetailRule-DetailId')" | |||
prop="OPCComDetailRule-DetailId" | |||
> | |||
<template slot-scope="scope"> | |||
<el-input-number | |||
style="width: 100%" | |||
:min="0" | |||
v-model="scope.row['OPCComDetailRule-DetailId']" | |||
/> | |||
</template> | |||
</el-table-column> | |||
<el-table-column | |||
:label="getColumnName('OPCComDetailRule-BaseOnType')" | |||
prop="OPCComDetailRule-BaseOnType" | |||
> | |||
<template slot-scope="scope"> | |||
<el-input | |||
style="width: 100%" | |||
v-model="scope.row['OPCComDetailRule-BaseOnType']" | |||
/> | |||
</template> | |||
</el-table-column> | |||
<el-table-column | |||
:label="getColumnName('OPCComDetailRule-BaseOnValue')" | |||
prop="OPCComDetailRule-BaseOnValue" | |||
> | |||
<template slot-scope="scope"> | |||
<el-input | |||
style="width: 100%" | |||
v-model="scope.row['OPCComDetailRule-BaseOnValue']" | |||
/> | |||
</template> | |||
</el-table-column> | |||
<el-table-column | |||
:label="getColumnName('OPCComDetailRule-DataType')" | |||
prop="OPCComDetailRule-DataType" | |||
> | |||
<template slot-scope="scope"> | |||
<el-input | |||
style="width: 100%" | |||
v-model="scope.row['OPCComDetailRule-DataType']" | |||
/> | |||
</template> | |||
</el-table-column> | |||
<el-table-column label="操作" width="100"> | |||
<template slot-scope="scope"> | |||
<el-button | |||
size="mini" | |||
type="danger" | |||
@click="deleteOPCComDetailRule(scope.$index, props.$index)" | |||
>删除</el-button | |||
> | |||
</template> | |||
</el-table-column> | |||
</el-table> | |||
</template> | |||
</el-table-column> | |||
<el-table-column | |||
:label="getColumnName('OPCComRule-RuleId')" | |||
prop="OPCComRule-RuleId" | |||
> | |||
<template slot-scope="scope"> | |||
<el-input-number | |||
style="width: 100%" | |||
:min="0" | |||
v-model="scope.row['OPCComRule-RuleId']" | |||
/> | |||
</template> | |||
</el-table-column> | |||
<el-table-column | |||
:label="getColumnName('OPCComRule-ActionType')" | |||
prop="OPCComRule-ActionType" | |||
> | |||
<template slot-scope="scope"> | |||
<el-select | |||
style="width: 100%" | |||
v-model="scope.row['OPCComRule-ActionType']" | |||
placeholder="请选择" | |||
> | |||
<el-option | |||
v-for="item in actionTypeList" | |||
:key="item['stdeftab-stdeftyp']" | |||
:label="item['stdeftab-bez']" | |||
:value="item['stdeftab-stdeftyp']" | |||
> | |||
</el-option> | |||
</el-select> | |||
</template> | |||
</el-table-column> | |||
<el-table-column | |||
:label="getColumnName('OPCComRule-DBlockAddress')" | |||
prop="OPCComRule-DBlockAddress" | |||
> | |||
<template slot-scope="scope"> | |||
<el-input | |||
style="width: 100%" | |||
v-model="scope.row['OPCComRule-DBlockAddress']" | |||
/> | |||
</template> | |||
</el-table-column> | |||
<el-table-column | |||
:label="getColumnName('OPCComRule-DBlockValueType')" | |||
prop="OPCComRule-DBlockValueType" | |||
> | |||
<template slot-scope="scope"> | |||
<el-select | |||
v-model="scope.row['OPCComRule-DBlockValueType']" | |||
style="width: 100%" | |||
placeholder="请选择" | |||
> | |||
<el-option | |||
v-for="item in DBlockList" | |||
:key="item['stdeftab-stdeftyp']" | |||
:label="item['stdeftab-bez']" | |||
:value="item['stdeftab-stdeftyp']" | |||
> | |||
</el-option> | |||
</el-select> | |||
</template> | |||
</el-table-column> | |||
<el-table-column | |||
:label="getColumnName('OPCComRule-DBlockValue')" | |||
prop="OPCComRule-DBlockValue" | |||
> | |||
<template slot-scope="scope"> | |||
<el-input | |||
style="width: 100%" | |||
v-model="scope.row['OPCComRule-DBlockValue']" | |||
/> | |||
</template> | |||
</el-table-column> | |||
<el-table-column align="right" width="150"> | |||
<template slot="header"> | |||
<el-button type="success" @click="addOPCComRule">新增</el-button> | |||
</template> | |||
<template slot-scope="scope"> | |||
<el-button | |||
size="mini" | |||
v-if="scope.row['OPCComRule-DBlockValueType'] == '映射值'" | |||
@click="addOPCComDetailRule(scope.$index, scope.row)" | |||
>新增</el-button | |||
> | |||
<el-button | |||
size="mini" | |||
type="danger" | |||
@click="deleteOPCComRule(scope.$index, scope.row)" | |||
>删除</el-button | |||
> | |||
</template> | |||
</el-table-column> | |||
</el-table> | |||
</el-form> | |||
<span slot="footer" class="dialog-footer"> | |||
<el-button @click="handleClose">取 消</el-button> | |||
<el-button type="primary" @click="submitForm">确 定</el-button> | |||
</span> | |||
</el-dialog> | |||
</template> | |||
<script> | |||
import {add, getDetails, getStationList} from '@/api/plant/processData/basicCommunication' | |||
export default { | |||
props:{ | |||
item:{ | |||
default:{} | |||
}, | |||
isAddOrEdit:{ | |||
default:'OPCCommunication' | |||
}, | |||
}, | |||
data(){ | |||
return{ | |||
loading:false, | |||
rules: { | |||
'OPCBasicComInfo-PO': [ | |||
{ required: true, message: '请选择', trigger: 'blur' } | |||
], | |||
'OPCBasicComInfo-WorkPlaceNr': [ | |||
{ required: true, message: '请选择', trigger: 'blur' } | |||
], | |||
'OPCBasicComInfo-StepNo': [ | |||
{ required: true, message: '请选择', trigger: 'change' } | |||
], | |||
'OPCBasicComInfo-BrandName': [ | |||
{ required: true, message: '请输入', trigger: 'change' } | |||
], | |||
'OPCBasicComInfo-StepDesc': [ | |||
{ required: true, message: '请选择', trigger: 'change' } | |||
], | |||
'OPCBasicComInfo-MachineType':[ | |||
{ required: true, message: '请输入', trigger: 'change' } | |||
], | |||
'OPCBasicComInfo-IpAddress':[ | |||
{ required: true, message: '请输入', trigger: 'change' } | |||
], | |||
'OPCBasicComInfo-ProjectId':[ | |||
{ required: true, message: '请输入', trigger: 'change' } | |||
] | |||
}, | |||
formData:{}, | |||
OPCComRuleDefault:{ | |||
"OPCComRule-RuleId": undefined, | |||
"OPCComRule-ActionType": undefined, | |||
"OPCComRule-DBlockAddress": undefined, | |||
"OPCComRule-DBlockValueType": undefined, | |||
"OPCComRule-DBlockValue": undefined, | |||
'OPCComRule-OPCComDetailRuleLi':[] | |||
}, // OPCComRule模板 | |||
OPCComDetailRuleDefault:{ | |||
"OPCComDetailRule-DetailId": undefined, | |||
"OPCComDetailRule-BaseOnType": undefined, | |||
"OPCComDetailRule-BaseOnValue": undefined, | |||
"OPCComDetailRule-DataType": undefined | |||
}, // OPCComDetailRule模板 | |||
actionTypeList:[], // 操作类型列表 | |||
DBlockList:[], //DB列表 | |||
stationList:[], // 工位列表 | |||
} | |||
}, | |||
methods:{ | |||
// 关闭界面 | |||
handleClose(){ | |||
this.$emit('setIsAddOrEdit', '') | |||
}, | |||
// 提交表单 | |||
submitForm() { | |||
this.$refs['formRef'].validate((valid) => { | |||
if (valid) { | |||
this.add(); | |||
} else { | |||
console.log('error submit!!'); | |||
return false; | |||
} | |||
}); | |||
}, | |||
// 添加 | |||
add(){ | |||
this.loading=true; | |||
add({ | |||
...this.formData | |||
}).then(({code, data})=>{ | |||
this.loading=false; | |||
if(code==200){ | |||
this.msgSuccess('添加成功'); | |||
this.handleClose(); | |||
} | |||
}).catch(()=>{ | |||
this.loading=false; | |||
}) | |||
}, | |||
// 添加OPCComRule | |||
addOPCComRule(){ | |||
this.formData['OPCBasicComInfo-OPCComRuleLi'].push(JSON.parse(JSON.stringify(this.OPCComRuleDefault))) | |||
}, | |||
// 添加OPCComDetailRule | |||
addOPCComDetailRule(index, item){ | |||
this.formData['OPCBasicComInfo-OPCComRuleLi'][index]['OPCComRule-OPCComDetailRuleLi'].push(JSON.parse(JSON.stringify(this.OPCComDetailRuleDefault))) | |||
}, | |||
// 删除OPCComRule | |||
deleteOPCComRule(index){ | |||
this.formData['OPCBasicComInfo-OPCComRuleLi'].splice(index, 1); | |||
}, | |||
// 删除OPCComDetailRule | |||
deleteOPCComDetailRule(scopeIndex, parntIndex){ | |||
this.formData['OPCBasicComInfo-OPCComRuleLi'][parntIndex]['OPCComRule-OPCComDetailRuleLi'].splice(scopeIndex, 1); | |||
}, | |||
// 获取操作类型列表 | |||
getActionTypeList(){ | |||
this.getStanderOne({ statid: 'OPCComRule-ActionType' }).then(({data=[]}) => { | |||
this.actionTypeList=data; | |||
}) | |||
}, | |||
// 获取DB块值列表 | |||
getDBlockList(){ | |||
this.getStanderOne({ statid: 'OPCComRule-DBlockValueType' }).then(({data=[]}) => { | |||
this.DBlockList=data; | |||
}) | |||
}, | |||
// 获取详情 | |||
getDetails(){ | |||
getDetails(this.item['Operation-OperationId'], this.item['Operation-WorkPlaceNr']).then(({code, data})=>{ | |||
if(code==200){ | |||
this.formData=data; | |||
}else{ | |||
this.formData={...this.item,'OPCBasicComInfo-OPCComRuleLi':[]}; | |||
} | |||
}) | |||
}, | |||
// 获取工位列表 | |||
getStationList(){ | |||
getStationList().then(({data=[]})=>{ | |||
this.stationList = data; | |||
}) | |||
} | |||
}, | |||
created(){ | |||
this.getActionTypeList(); | |||
this.getDBlockList(); | |||
this.getStationList(); | |||
this.getDetails(); | |||
} | |||
} | |||
</script> |
@ -0,0 +1,417 @@ | |||
<template> | |||
<el-dialog | |||
:title="isAddOrEdit == 'edit' ? '编辑' : '新增'" | |||
visible | |||
width="90%" | |||
v-loading="loading" | |||
:before-close="handleClose" | |||
> | |||
<el-form | |||
:inline="true" | |||
:rules="rules" | |||
ref="formRef" | |||
:model="item" | |||
label-width="120px" | |||
class="demo-form-inline" | |||
> | |||
<el-row> | |||
<el-col :span="8"> | |||
<el-form-item | |||
:label="getColumnName('TightenWrenchInfo-PO')" | |||
prop="TightenWrenchInfo-PO" | |||
> | |||
<el-select | |||
v-model="item['TightenWrenchInfo-PO']" | |||
:disabled="isAddOrEdit == 'edit'" | |||
placeholder="请选择" | |||
@change="setStep" | |||
style="width: 185px" | |||
> | |||
<el-option | |||
v-for="item in operationList" | |||
:key="item['Operation-PO']" | |||
:label="item['Operation-StepDesc']" | |||
:value="item['Operation-PO']" | |||
> | |||
</el-option> | |||
</el-select> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="8"> | |||
<el-form-item | |||
:label="getColumnName('TightenWrenchInfo-StepNo')" | |||
prop="TightenWrenchInfo-StepNo" | |||
> | |||
<el-input | |||
disabled | |||
v-model="item['TightenWrenchInfo-StepNo']" | |||
placeholder="请选择" | |||
></el-input> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="8"> | |||
<el-form-item | |||
:label="getColumnName('TightenWrenchInfo-StepDesc')" | |||
prop="TightenWrenchInfo-StepDesc" | |||
> | |||
<el-input | |||
disabled | |||
v-model="item['TightenWrenchInfo-StepDesc']" | |||
placeholder="请选择" | |||
></el-input> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="8"> | |||
<el-form-item | |||
:label="getColumnName('TightenWrenchInfo-ProjectId')" | |||
prop="TightenWrenchInfo-ProjectId" | |||
> | |||
<el-input | |||
disabled | |||
v-model="item['TightenWrenchInfo-ProjectId']" | |||
placeholder="请输入" | |||
></el-input> </el-form-item | |||
></el-col> | |||
<el-col :span="8"> | |||
<el-form-item | |||
:label="getColumnName('TightenWrenchInfo-OperationId')" | |||
prop="TightenWrenchInfo-OperationId" | |||
> | |||
<el-input-number | |||
disabled | |||
v-model="item['TightenWrenchInfo-OperationId']" | |||
placeholder="请输入" | |||
></el-input-number> </el-form-item | |||
></el-col> | |||
<el-col :span="8"> | |||
<el-form-item | |||
:label="getColumnName('TightenWrenchInfo-WorkPlaceNr')" | |||
prop="TightenWrenchInfo-WorkPlaceNr" | |||
> | |||
<el-select | |||
:disabled="isAddOrEdit == 'edit'" | |||
v-model="item['TightenWrenchInfo-WorkPlaceNr']" | |||
placeholder="请选择" | |||
@change="setStep" | |||
> | |||
<el-option | |||
v-for="item in stationList" | |||
:key="item['WorkPlace-WorkPlaceNr']" | |||
:label="item['WorkPlace-Descr']" | |||
:value="item['WorkPlace-WorkPlaceNr']" | |||
> | |||
</el-option> | |||
</el-select> </el-form-item | |||
></el-col> | |||
<el-col :span="8"> | |||
<el-form-item | |||
:label="getColumnName('TightenWrenchInfo-BrandName')" | |||
prop="TightenWrenchInfo-BrandName" | |||
> | |||
<el-input | |||
v-model="item['TightenWrenchInfo-BrandName']" | |||
placeholder="请输入" | |||
></el-input> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="8"> | |||
<el-form-item | |||
:label="getColumnName('TightenWrenchInfo-MachineType')" | |||
prop="TightenWrenchInfo-MachineType" | |||
> | |||
<el-input | |||
v-model="item['TightenWrenchInfo-MachineType']" | |||
placeholder="请输入" | |||
></el-input> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="8"> | |||
<el-form-item | |||
:label="getColumnName('TightenWrenchInfo-IpAddress')" | |||
prop="TightenWrenchInfo-IpAddress" | |||
> | |||
<el-input | |||
v-model="item['TightenWrenchInfo-IpAddress']" | |||
placeholder="请输入" | |||
></el-input> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="24"> | |||
<div v-for="(data, index) in item.tightenWrenchRuleInfoLi" :key="index"> | |||
<el-col :span="5"> | |||
<el-form-item | |||
:label="getColumnName('TightenWrenchRuleInfo-RuleId')" | |||
:prop="'tightenWrenchRuleInfoLi.' + index + '.ruleId'" | |||
:rules="[{ required: true, message: '请输入', trigger: 'blur' }]" | |||
> | |||
<el-input-number | |||
:min="0" | |||
v-model="data.ruleId" | |||
placeholder="请输入" | |||
></el-input-number> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="5"> | |||
<el-form-item | |||
:label="getColumnName('TightenWrenchRuleInfo-MainControlAction')" | |||
:prop="'tightenWrenchRuleInfoLi.' + index + '.mainControlAction'" | |||
label-width="160px" | |||
:rules="[{ required: true, message: '请选择', trigger: 'blur' }]" | |||
> | |||
<el-select v-model="data.mainControlAction" placeholder="请选择"> | |||
<el-option | |||
v-for="item in mainControlActionList" | |||
:key="item['stdeftab-stdeftyp']" | |||
:label="item['stdeftab-bez']" | |||
:value="item['stdeftab-stdeftyp']" | |||
> | |||
</el-option> | |||
</el-select> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="5"> | |||
<el-form-item | |||
:label="getColumnName('TightenWrenchRuleInfo-ControlId')" | |||
:prop="'tightenWrenchRuleInfoLi.' + index + '.controlId'" | |||
:rules="[{ required: true, message: '请输入', trigger: 'blur' }]" | |||
> | |||
<el-input-number | |||
:min="1" | |||
:max="9" | |||
v-model="data.controlId" | |||
placeholder="请输入" | |||
></el-input-number> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="5"> | |||
<el-form-item | |||
:label="getColumnName('TightenWrenchRuleInfo-ControlTime')" | |||
:prop="'tightenWrenchRuleInfoLi.' + index + '.controlTime'" | |||
label-width="140px" | |||
:rules="[{ required: true, message: '请输入', trigger: 'blur' }]" | |||
> | |||
<el-input-number | |||
:min="0" | |||
v-model="data.controlTime" | |||
placeholder="请输入" | |||
></el-input-number> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="4"> | |||
<el-button | |||
v-if="item.tightenWrenchRuleInfoLi.length > 1" | |||
@click="clearFormItem(index)" | |||
type="danger" | |||
>删除</el-button | |||
> | |||
<el-button | |||
v-if="index == item.tightenWrenchRuleInfoLi.length - 1" | |||
type="primary" | |||
@click="addFormItem" | |||
>新增</el-button | |||
> | |||
</el-col> | |||
</div> | |||
</el-col> | |||
</el-row> | |||
</el-form> | |||
<span slot="footer" class="dialog-footer"> | |||
<el-button @click="handleClose">取 消</el-button> | |||
<el-button type="primary" @click="submitForm">确 定</el-button> | |||
</span> | |||
</el-dialog> | |||
</template> | |||
<script> | |||
import {add, edit, getOperation, getTightenwrenchDetail, getStationList } from '@/api/plant/processData/openProtocol' | |||
export default { | |||
props:{ | |||
item:{ | |||
default:{} | |||
}, | |||
isAddOrEdit:{ | |||
default:'add' | |||
}, | |||
}, | |||
data(){ | |||
return{ | |||
loading:false, | |||
rules: { | |||
'TightenWrenchInfo-PO': [ | |||
{ required: true, message: '请选择', trigger: 'blur' } | |||
], | |||
'TightenWrenchInfo-StepNo': [ | |||
{ required: true, message: '请选择', trigger: 'change' } | |||
], | |||
'TightenWrenchInfo-StepDesc': [ | |||
{ required: true, message: '请选择', trigger: 'change' } | |||
], | |||
'TightenWrenchInfo-BrandName': [ | |||
{ required: true, message: '请输入', trigger: 'change' } | |||
], | |||
'TightenWrenchInfo-MachineType': [ | |||
{ required: true, message: '请输入', trigger: 'change' } | |||
], | |||
'TightenWrenchInfo-IpAddress': [ | |||
{ required: true, message: '请输入', trigger: 'change' } | |||
], | |||
'TightenWrenchInfo-ProjectId':[ | |||
{ required: true, message: '请输入', trigger: 'change' } | |||
], | |||
'TightenWrenchInfo-OperationId':[ | |||
{ required: true, message: '请输入', trigger: 'change' } | |||
], | |||
'TightenWrenchInfo-WorkPlaceNr': [ | |||
{ required: true, message: '请选择', trigger: 'blur' } | |||
], | |||
}, | |||
defaultItem:{ | |||
'ruleId':undefined, | |||
'mainControlAction': undefined, | |||
'controlTime': undefined, | |||
controlId:undefined | |||
}, | |||
operationList:[], // 工艺列表 | |||
mainControlActionList:[], // 状态列表 | |||
stationList:[], // 工位列表 | |||
} | |||
}, | |||
methods:{ | |||
// 关闭界面 | |||
handleClose(){ | |||
this.$emit('setIsAddOrEdit', '') | |||
}, | |||
// 提交表单 | |||
submitForm() { | |||
this.$refs['formRef'].validate((valid) => { | |||
console.log(this.item); | |||
if (valid) { | |||
if(this.isAddOrEdit=='add'){ | |||
this.add(); | |||
}else if(this.isAddOrEdit=='edit'){ | |||
this.edit(); | |||
} | |||
} else { | |||
console.log('error submit!!'); | |||
return false; | |||
} | |||
}); | |||
}, | |||
// 添加 | |||
add(){ | |||
this.loading=true; | |||
add({ | |||
...this.item, | |||
'TightenWrenchInfo-TightenWrenchRuleInfoLi': this.item.tightenWrenchRuleInfoLi.map(e=>{ | |||
e={ | |||
'TightenWrenchRuleInfo-RuleId': e.ruleId, | |||
'TightenWrenchRuleInfo-MainControlAction': e.mainControlAction, | |||
'TightenWrenchRuleInfo-ControlTime': e.controlTime, | |||
'TightenWrenchRuleInfo-ControlId':e.controlId | |||
}; | |||
return e; | |||
}) | |||
}).then(({code, data})=>{ | |||
this.loading=false; | |||
if(code==200){ | |||
this.msgSuccess('添加成功'); | |||
this.handleClose(); | |||
} | |||
}).catch(()=>{ | |||
this.loading=false; | |||
}) | |||
}, | |||
// 编辑 | |||
edit(){ | |||
this.loading=true; | |||
edit({ | |||
...this.item, | |||
'TightenWrenchInfo-TightenWrenchRuleInfoLi': this.item.tightenWrenchRuleInfoLi.map(e=>{ | |||
e={ | |||
'TightenWrenchRuleInfo-RuleId': e.ruleId, | |||
'TightenWrenchRuleInfo-MainControlAction': e.mainControlAction, | |||
'TightenWrenchRuleInfo-ControlTime': e.controlTime, | |||
'TightenWrenchRuleInfo-ControlId':e.controlId | |||
}; | |||
return e; | |||
}) | |||
}).then(({code, data})=>{ | |||
this.loading=false; | |||
if(code==200){ | |||
this.msgSuccess('编辑成功'); | |||
this.handleClose(); | |||
} | |||
}).catch(()=>{ | |||
this.loading=false; | |||
}) | |||
}, | |||
// 动态添加form项 | |||
addFormItem(){ | |||
this.item.tightenWrenchRuleInfoLi.push({...this.defaultItem}); | |||
}, | |||
// 删除form项 | |||
clearFormItem(index){ | |||
this.item.tightenWrenchRuleInfoLi.splice(index, 1) | |||
}, | |||
// 获取工艺列表 | |||
getOperation(){ | |||
getOperation().then(({data=[]})=>{ | |||
this.operationList=data | |||
}) | |||
}, | |||
setStep(value){ | |||
const item = this.operationList.find(e=>e['Operation-PO'] == value); | |||
this.item['TightenWrenchInfo-StepNo']= item['Operation-StepNo']; | |||
this.item['TightenWrenchInfo-StepDesc']= item['Operation-StepDesc']; | |||
this.item['TightenWrenchInfo-ProjectId']= item['Operation-ProjectId']; | |||
this.item['TightenWrenchInfo-OperationId']= item['Operation-OperationId']; | |||
}, | |||
// 获取详情 | |||
getTightenwrenchDetail(){ | |||
getTightenwrenchDetail(this.item['TightenWrenchInfo-OperationId'], this.item['TightenWrenchInfo-WorkPlaceNr']).then(({data={}})=>{ | |||
this.item={ | |||
...this.item, | |||
tightenWrenchRuleInfoLi:(data['TightenWrenchInfo-TightenWrenchRuleInfoLi'] || []).map(e=>{ | |||
e={ | |||
ruleId: e['TightenWrenchRuleInfo-RuleId'], | |||
mainControlAction: e['TightenWrenchRuleInfo-MainControlAction'], | |||
controlTime: e['TightenWrenchRuleInfo-ControlTime'], | |||
controlId: e['TightenWrenchRuleInfo-ControlId'] | |||
}; | |||
return e; | |||
}) | |||
} | |||
console.log(this.item); | |||
}) | |||
}, | |||
// 获取工位列表 | |||
getStationList(){ | |||
getStationList().then(({data=[]})=>{ | |||
this.stationList = data; | |||
}) | |||
} | |||
}, | |||
created(){ | |||
this.getOperation(); | |||
this.getStationList(); | |||
this.getStanderOne({ statid: 'MainControlAction' }).then(({data=[]}) => { | |||
this.mainControlActionList=data | |||
}) | |||
if(this.isAddOrEdit=='edit'){ | |||
this.getTightenwrenchDetail(); | |||
}else{ | |||
this.item={ | |||
...this.item, | |||
tightenWrenchRuleInfoLi:[{...this.defaultItem}] | |||
} | |||
} | |||
} | |||
} | |||
</script> | |||
<style lang="scss" scoped> | |||
.el-input-number--medium { | |||
width: 160px; | |||
} | |||
.el-select { | |||
width: 146px; | |||
} | |||
</style> |