|
|
|
@ -1,147 +1,66 @@ |
|
|
|
<template> |
|
|
|
<template> |
|
|
|
<el-dialog :title="title" append-to-body :modelValue="openShow" width="50%" @close="closeDialog"> |
|
|
|
<el-dialog :title="title" append-to-body :modelValue="openShow" width="50%" @close="closeDialog"> |
|
|
|
<el-form |
|
|
|
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="auto" class="demo-ruleForm"> |
|
|
|
:model="ruleForm" |
|
|
|
|
|
|
|
:rules="rules" |
|
|
|
|
|
|
|
ref="ruleForm" |
|
|
|
|
|
|
|
label-width="100px" |
|
|
|
|
|
|
|
class="demo-ruleForm" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-row> |
|
|
|
<el-row> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="作业中心:" prop="workCenterId"> |
|
|
|
<el-form-item label="作业中心:" prop="workCenterId"> |
|
|
|
<el-select |
|
|
|
<el-select v-model="ruleForm.workCenterId" placeholder="请选择" |
|
|
|
v-model="ruleForm.workCenterId" |
|
|
|
@change="value => onChangeData(value, 'workCenterId')" clearable filterable> |
|
|
|
placeholder="请选择" |
|
|
|
<el-option v-for="item in wcData" :key="item.id" :value="item.id" :label="item.wcName"></el-option> |
|
|
|
@change="value => onChangeData(value, 'workCenterId')" |
|
|
|
|
|
|
|
clearable |
|
|
|
|
|
|
|
filterable |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in wcData" |
|
|
|
|
|
|
|
:key="item.id" |
|
|
|
|
|
|
|
:value="item.id" |
|
|
|
|
|
|
|
:label="item.wcName" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="工序:" prop="processId"> |
|
|
|
<el-form-item label="工序:" prop="processId"> |
|
|
|
<el-select |
|
|
|
<el-select v-model="ruleForm.processId" placeholder="请选择" style="width: 100%" clearable filterable |
|
|
|
v-model="ruleForm.processId" |
|
|
|
@change="value => onChangeData(value, 'processId')"> |
|
|
|
placeholder="请选择" |
|
|
|
<el-option v-for="item in processData" :key="item.id" :value="item.id" :label="item.name"></el-option> |
|
|
|
style="width: 100%" |
|
|
|
|
|
|
|
clearable |
|
|
|
|
|
|
|
filterable |
|
|
|
|
|
|
|
@change="value => onChangeData(value, 'processId')" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in processData" |
|
|
|
|
|
|
|
:key="item.id" |
|
|
|
|
|
|
|
:value="item.id" |
|
|
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="工艺能力:" prop="craftId"> |
|
|
|
<el-form-item label="工艺能力:" prop="craftId"> |
|
|
|
<el-select |
|
|
|
<el-select v-model="ruleForm.craftId" placeholder="请选择" style="width: 100%" clearable filterable |
|
|
|
v-model="ruleForm.craftId" |
|
|
|
@change="value => onChangeData(value, 'craftId')"> |
|
|
|
placeholder="请选择" |
|
|
|
<el-option v-for="item in craftData" :key="item.id" :value="item.id" :label="item.caName"></el-option> |
|
|
|
style="width: 100%" |
|
|
|
|
|
|
|
clearable |
|
|
|
|
|
|
|
filterable |
|
|
|
|
|
|
|
@change="value => onChangeData(value, 'craftId')" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in craftData" |
|
|
|
|
|
|
|
:key="item.id" |
|
|
|
|
|
|
|
:value="item.id" |
|
|
|
|
|
|
|
:label="item.caName" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="统计类型:" prop="type"> |
|
|
|
<el-form-item label="统计类型:" prop="type"> |
|
|
|
<el-select |
|
|
|
<el-select v-model="ruleForm.type" placeholder="请选择" style="width: 100%" clearable filterable> |
|
|
|
v-model="ruleForm.type" |
|
|
|
<el-option v-for="item in typeData" :key="item.value" :value="item.value" :label="item.label"></el-option> |
|
|
|
placeholder="请选择" |
|
|
|
|
|
|
|
style="width: 100%" |
|
|
|
|
|
|
|
clearable |
|
|
|
|
|
|
|
filterable |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in typeData" |
|
|
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
|
|
:value="item.value" |
|
|
|
|
|
|
|
:label="item.label" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-form-item label="额定工时类型:" prop="partType" label-width="140px"> |
|
|
|
<el-form-item label="额定工时类型:" prop="partType" label-width="110px"> |
|
|
|
<el-radio-group v-model="ruleForm.partType" @change="onPartTypeChange"> |
|
|
|
<el-radio-group v-model="ruleForm.partType" @change="onPartTypeChange"> |
|
|
|
<el-radio :label="0">默认</el-radio> |
|
|
|
<el-radio :label="0">默认</el-radio> |
|
|
|
<el-radio :label="1">壳体外径</el-radio> |
|
|
|
<el-radio :label="1">壳体外径</el-radio> |
|
|
|
<el-radio :label="2">玻璃饼直径</el-radio> |
|
|
|
<el-radio :label="2">玻璃饼直径</el-radio> |
|
|
|
<el-radio :label="3">芯数</el-radio> |
|
|
|
<el-radio :label="3">芯数</el-radio> |
|
|
|
|
|
|
|
<el-radio :label="4">涂色标</el-radio> |
|
|
|
</el-radio-group> |
|
|
|
</el-radio-group> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-col :span="24" v-if="ruleForm.partType != 4"> |
|
|
|
<el-form-item label="额定工时(分钟/每人每个):" prop="standardTime" label-width="180px"> |
|
|
|
<el-form-item label="额定工时(分钟/每人每个):" prop="standardTime" label-width="180px"> |
|
|
|
<div v-if="ruleForm.partType != 0"> |
|
|
|
<div v-if="ruleForm.partType != 0"> |
|
|
|
<div |
|
|
|
<div class="ability-input-group" v-for="(item, idx) in ruleForm.abilityList" :key="idx"> |
|
|
|
class="ability-input-group" |
|
|
|
|
|
|
|
v-for="(item, idx) in ruleForm.abilityList" |
|
|
|
|
|
|
|
:key="idx" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<div class="ability-row"> |
|
|
|
<div class="ability-row"> |
|
|
|
<el-input |
|
|
|
<el-input v-model="item.startNum" placeholder="最小值" style="width: 80px" type="number" /> |
|
|
|
v-model="item.startNum" |
|
|
|
|
|
|
|
placeholder="最小值" |
|
|
|
|
|
|
|
style="width: 80px" |
|
|
|
|
|
|
|
type="number" |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
<span class="operator-label">≤</span> |
|
|
|
<span class="operator-label">≤</span> |
|
|
|
<span class="logic-label">φ</span> |
|
|
|
<span class="logic-label">φ</span> |
|
|
|
<span class="operator-label"><</span> |
|
|
|
<span class="operator-label"><</span> |
|
|
|
<el-input |
|
|
|
<el-input v-model="item.endNum" placeholder="最大值" style="width: 80px" type="number" /> |
|
|
|
v-model="item.endNum" |
|
|
|
<el-input v-model="item.standardTime" placeholder="min/件" style="width: 80px;margin-left:5px" type="number" /> |
|
|
|
placeholder="最大值" |
|
|
|
|
|
|
|
style="width: 80px" |
|
|
|
|
|
|
|
type="number" |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
<el-input |
|
|
|
|
|
|
|
v-model="item.standardTime" |
|
|
|
|
|
|
|
placeholder="min/件" |
|
|
|
|
|
|
|
style="width: 80px" |
|
|
|
|
|
|
|
type="number" |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 添加/删除按钮 --> |
|
|
|
<!-- 添加/删除按钮 --> |
|
|
|
<el-button |
|
|
|
<el-button v-if="ruleForm.abilityList.length > 1" type="danger" icon="Minus" circle size="small" style="margin-left:5px" |
|
|
|
v-if="ruleForm.abilityList.length > 1" |
|
|
|
@click="removeAbilityItem(idx)" title="删除条件" /> |
|
|
|
type="danger" |
|
|
|
<el-button v-if="idx === ruleForm.abilityList.length - 1" type="primary" icon="Plus" circle |
|
|
|
icon="Minus" |
|
|
|
size="small" @click="addAbilityItem" style="margin-left:5px" title="添加条件" /> |
|
|
|
circle |
|
|
|
|
|
|
|
size="small" |
|
|
|
|
|
|
|
@click="removeAbilityItem(idx)" |
|
|
|
|
|
|
|
title="删除条件" |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
<el-button |
|
|
|
|
|
|
|
v-if="idx === ruleForm.abilityList.length - 1" |
|
|
|
|
|
|
|
type="primary" |
|
|
|
|
|
|
|
icon="Plus" |
|
|
|
|
|
|
|
circle |
|
|
|
|
|
|
|
size="small" |
|
|
|
|
|
|
|
@click="addAbilityItem" |
|
|
|
|
|
|
|
title="添加条件" |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
@ -150,7 +69,7 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-form-item label="准备工时(分钟):" prop="prepareTime" label-width="140px"> |
|
|
|
<el-form-item label="准备工时(分钟):" prop="prepareTime" label-width="140px"> |
|
|
|
<el-input-number v-model="ruleForm.prepareTime"></el-input-number> |
|
|
|
<el-input-number v-model="ruleForm.prepareTime"></el-input-number> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
@ -162,20 +81,9 @@ |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="证书类型:" prop="certificateId"> |
|
|
|
<el-form-item label="证书类型:" prop="certificateId"> |
|
|
|
<el-select |
|
|
|
<el-select v-model="ruleForm.certificateId" placeholder="请选择" style="width: 100%" clearable filterable |
|
|
|
v-model="ruleForm.certificateId" |
|
|
|
@change="value => onChangeData(value, 'certificateId')"> |
|
|
|
placeholder="请选择" |
|
|
|
<el-option v-for="item in certificateData" :key="item.id" :value="item.id" :label="item.name"></el-option> |
|
|
|
style="width: 100%" |
|
|
|
|
|
|
|
clearable |
|
|
|
|
|
|
|
filterable |
|
|
|
|
|
|
|
@change="value => onChangeData(value, 'certificateId')" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
v-for="item in certificateData" |
|
|
|
|
|
|
|
:key="item.id" |
|
|
|
|
|
|
|
:value="item.id" |
|
|
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
@ -223,19 +131,21 @@ export default { |
|
|
|
certificateData: [], //证书类型 |
|
|
|
certificateData: [], //证书类型 |
|
|
|
typeData: [ |
|
|
|
typeData: [ |
|
|
|
{ |
|
|
|
{ |
|
|
|
label: '单个零件', |
|
|
|
label: '单件', |
|
|
|
value: '0', |
|
|
|
value: '0', |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
{ |
|
|
|
label: '订单', |
|
|
|
label: '单批', |
|
|
|
value: '1', |
|
|
|
value: '1', |
|
|
|
}, |
|
|
|
}, |
|
|
|
], |
|
|
|
], |
|
|
|
ruleForm: {}, |
|
|
|
ruleForm: { |
|
|
|
|
|
|
|
type: '0', |
|
|
|
|
|
|
|
partType: 0, |
|
|
|
|
|
|
|
}, |
|
|
|
rules: { |
|
|
|
rules: { |
|
|
|
workCenterId: [{ required: true, message: '请选择作业中心', trigger: 'blur' }], |
|
|
|
workCenterId: [{ required: true, message: '请选择作业中心', trigger: 'blur' }], |
|
|
|
processId: [{ required: true, message: '请选择工序', trigger: 'blur' }], |
|
|
|
processId: [{ required: true, message: '请选择工序', trigger: 'blur' }], |
|
|
|
craftId: [{ required: true, message: '请选择工艺能力', trigger: 'blur' }], |
|
|
|
|
|
|
|
type: [{ required: true, message: '请选择统计类型', trigger: 'blur' }], |
|
|
|
type: [{ required: true, message: '请选择统计类型', trigger: 'blur' }], |
|
|
|
prepareTime: [{ required: true, message: '请输入准备工时', trigger: 'blur' }], |
|
|
|
prepareTime: [{ required: true, message: '请输入准备工时', trigger: 'blur' }], |
|
|
|
partType: [{ required: true, message: '请选择额定工时类型', trigger: 'blur' }], |
|
|
|
partType: [{ required: true, message: '请选择额定工时类型', trigger: 'blur' }], |
|
|
|
@ -288,8 +198,7 @@ export default { |
|
|
|
if (item.endNum && nextItem.startNum) { |
|
|
|
if (item.endNum && nextItem.startNum) { |
|
|
|
if (parseFloat(item.endNum) !== parseFloat(nextItem.startNum)) { |
|
|
|
if (parseFloat(item.endNum) !== parseFloat(nextItem.startNum)) { |
|
|
|
this.$message.error( |
|
|
|
this.$message.error( |
|
|
|
`第${i + 1}行,第${i + 1}组的结束值 (${item.endNum}) 必须等于第${ |
|
|
|
`第${i + 1}行,第${i + 1}组的结束值 (${item.endNum}) 必须等于第${i + 2 |
|
|
|
i + 2 |
|
|
|
|
|
|
|
}组的开始值 (${nextItem.startNum})` |
|
|
|
}组的开始值 (${nextItem.startNum})` |
|
|
|
); |
|
|
|
); |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
|