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.
1027 lines
35 KiB
1027 lines
35 KiB
<template> |
|
<div> |
|
<el-card class="box-card"> |
|
<div slot="header" class="clearfix"> |
|
<span style="font-size: 16px">基本信息</span> |
|
</div> |
|
<el-form |
|
ref="testForm" |
|
:model="formData" |
|
:rules="rules" |
|
label-width="90px" |
|
label-position="right" |
|
:validate-on-rule-change="false" |
|
class="vd-form-three" |
|
> |
|
<template v-if="partType == '热表'"> |
|
<el-row :gutter="24"> |
|
<el-col :span="6"> |
|
<el-form-item label="零件号:" prop="partCode"> |
|
<el-input v-model="formData.partCode" disabled placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="零件名称:" prop="partName"> |
|
<el-input v-model="formData.partName" disabled placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="产品型号:" prop="productType"> |
|
<el-input v-model="formData.productType" placeholder="请输入" disabled /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="是否印字:" prop="isPrint"> |
|
<el-radio-group v-model="formData.isPrint"> |
|
<el-radio value="2">是</el-radio> |
|
<el-radio value="1">否</el-radio> |
|
</el-radio-group> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="材料:" prop="material"> |
|
<el-input v-model="formData.material" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="硬度:" prop="hardness"> |
|
<el-input v-model="formData.hardness" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="物料编码:" prop="plateGoodsCode"> |
|
<el-select |
|
v-model="formData.plateGoodsCode" |
|
placeholder="请选择" |
|
style="width: 250px" |
|
clearable |
|
filterable |
|
> |
|
<el-option :value="'04-05-023'" label="金钾-04-05-023" /> |
|
<el-option :value="'04-05-024'" label="银板-04-05-024" /> |
|
</el-select> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="产品应用领域:" prop="productApplicationArea"> |
|
<el-input v-model="formData.productApplicationArea" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
<el-row> |
|
<el-col :span="6"> |
|
<el-form-item label="镀种1:" prop="plate"> |
|
<el-input v-model="formData.plate" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="镀层代号1:" prop="plateCode"> |
|
<el-input v-model="formData.plateCode" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="面积1(dm²):" prop="area"> |
|
<el-input v-model="formData.area" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="镀层厚度1:" prop="plateThickness"> |
|
<el-input v-model="formData.plateThickness" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="镀种2:" prop="plateTwo"> |
|
<el-input v-model="formData.plateTwo" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="镀层代号2:" prop="plateCodeTwo"> |
|
<el-input v-model="formData.plateCodeTwo" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="面积2(dm²):" prop="areaTwo"> |
|
<el-input v-model="formData.areaTwo" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
<el-form-item label="镀层厚度2:" prop="plateThickness"> |
|
<el-input v-model="formData.plateThickness" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
<el-row :gutter="24"> |
|
<el-col :span="16"> |
|
<el-form-item label="工艺路线:"> |
|
{{ formData.craftWay }} |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
|
|
<el-row :gutter="24"> |
|
<el-col :span="6"> |
|
<el-form-item label="涂色标个数:" prop="tsbNum"> |
|
<el-input-number |
|
v-model="formData.tsbNum" |
|
:min="1" |
|
:max="10" |
|
controls-position="right" |
|
placeholder="请输入" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="涂色带个数:" prop="tsdNum"> |
|
<el-input-number |
|
v-model="formData.tsdNum" |
|
:min="1" |
|
:max="10" |
|
controls-position="right" |
|
placeholder="请输入" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="涂箭头个数:" prop="tjtNum"> |
|
<el-input-number |
|
v-model="formData.tjtNum" |
|
:min="1" |
|
:max="10" |
|
controls-position="right" |
|
placeholder="请输入" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
<el-row :gutter="24"> |
|
<el-col :span="14"> |
|
<el-form-item label="色标色带:" prop="memo"> |
|
<el-input |
|
v-model="formData.memo" |
|
:rows="3" |
|
type="textarea" |
|
maxlength="150" |
|
show-word-limit |
|
placeholder="请输入" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
|
|
<el-row :gutter="24"> |
|
<el-col :span="14"> |
|
<el-form-item label="关键信息:" prop="keyInfo"> |
|
<el-input |
|
v-model="formData.keyInfo" |
|
type="textarea" |
|
maxlength="150" |
|
show-word-limit |
|
rows="3" |
|
placeholder="请输入" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
<el-row :gutter="24"> |
|
<el-col :span="5"> |
|
<el-form-item label="有效期:" prop="periodOfValidity"> |
|
<el-radio-group v-model="formData.periodOfValidity" @change="periodOfValidityFn"> |
|
<el-radio value="1">长期有效</el-radio> |
|
<el-radio value="2">自定义</el-radio> |
|
</el-radio-group> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6" v-if="formData.periodOfValidity == '2'"> |
|
<el-form-item label="有效周期(天):" prop="expirationPeriod" label-width="100px"> |
|
<el-input-number |
|
:max="100000" |
|
:min="0" |
|
v-model="formData.expirationPeriod" |
|
controls-position="right" |
|
placeholder="请输入" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6" v-if="formData.periodOfValidity == '2'"> |
|
<el-form-item label="到期提醒(天):" prop="advanceRemind"> |
|
<el-input-number |
|
:max="100000" |
|
:min="0" |
|
v-model="formData.advanceRemind" |
|
controls-position="right" |
|
placeholder="请输入" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
<el-row :gutter="24"> |
|
<el-col :span="24"> |
|
<el-form-item label="工艺校验:" prop="sinTer"> |
|
<div style="width: 100%"> |
|
<el-checkbox v-model="formData.goldMark" disabled>镀金标识</el-checkbox> |
|
<el-checkbox |
|
v-model="formData.markingsTest" |
|
@change="setDataLocal" |
|
:true-label="'1'" |
|
:false-label="'0'" |
|
>涂色标</el-checkbox |
|
> |
|
<el-checkbox |
|
v-model="formData.fluorescenceCheck" |
|
@change="setDataLocal" |
|
:true-label="'1'" |
|
:false-label="'0'" |
|
>荧光检</el-checkbox |
|
> |
|
<el-checkbox |
|
v-model="formData.hotDispose" |
|
@change="setDataLocal" |
|
:true-label="'1'" |
|
:false-label="'0'" |
|
>热处理检验</el-checkbox |
|
> |
|
<el-checkbox |
|
v-model="formData.inkjetPrinting" |
|
@change="setDataLocal" |
|
:true-label="'1'" |
|
:false-label="'0'" |
|
>喷码</el-checkbox |
|
> |
|
</div> |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
</template> |
|
<template v-if="partType == '烧结'"> |
|
<el-row :gutter="24"> |
|
<el-col :span="6"> |
|
<el-form-item label="零件号:" prop="partCode"> |
|
<el-input v-model="formData.partCode" disabled placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="零件名称:" prop="partName"> |
|
<el-input v-model="formData.partName" disabled placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6" v-if="notSinTer && notGlassCake"> |
|
<el-form-item label="产品型号:" prop="productType"> |
|
<el-input v-model="formData.productType" placeholder="请输入" disabled /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="是否为玻璃饼:" prop="isClassCake"> |
|
<el-switch |
|
v-model="formData.isClassCake" |
|
disabled |
|
active-color="#13ce66" |
|
inactive-color="#ff4949" |
|
active-text="是" |
|
inactive-text="否" |
|
active-value="1" |
|
inactive-value="0" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="是否印字:" prop="isPrint"> |
|
<el-radio-group v-model="formData.isPrint" v-if="notGlassCake"> |
|
<el-radio value="2">单</el-radio> |
|
<el-radio value="3">双</el-radio> |
|
<el-radio value="1">否</el-radio> |
|
</el-radio-group> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6" v-if="notSinTer || !notGlassCake"> |
|
<el-form-item label="面积(dm²):"> |
|
<el-input v-model="formData.area" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6" v-if="notSinTer || !notGlassCake"> |
|
<el-form-item label="材料:" prop="material"> |
|
<el-input v-model="formData.material" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6" v-if="notSinTer && notGlassCake"> |
|
<el-form-item label="硬度:" prop="hardness"> |
|
<el-input v-model="formData.hardness" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6" v-if="notSinTer && notGlassCake"> |
|
<el-form-item label="物料编码:" prop="plateGoodsCode"> |
|
<el-select |
|
v-model="formData.plateGoodsCode" |
|
placeholder="请选择" |
|
style="width: 250px" |
|
clearable |
|
filterable |
|
> |
|
<el-option :value="'04-05-023'" label="金钾-04-05-023" /> |
|
<el-option :value="'04-05-024'" label="银板-04-05-024" /> |
|
</el-select> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6" v-if="notSinTer && notGlassCake"> |
|
<el-form-item label="镀种:" prop="plate"> |
|
<el-input v-model="formData.plate" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6" v-if="notSinTer && notGlassCake"> |
|
<el-form-item label="镀层代号:" prop="plateCode"> |
|
<el-input v-model="formData.plateCode" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6" v-if="notSinTer && notGlassCake"> |
|
<el-form-item label="面积(dm²):" prop="area"> |
|
<el-input v-model="formData.area" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6" v-if="(child || formData.glassCake) && formData.sinTerType != 5"> |
|
<el-form-item label="粉重:" prop="powderWeight"> |
|
<el-input v-model="formData.powderWeight" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6" v-if="notSinTer && notGlassCake"> |
|
<el-form-item label="镀层厚度:" prop="plateThickness"> |
|
<el-input v-model="formData.plateThickness" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6" v-if="!notGlassCake"> |
|
<el-form-item label="成型厚度:" prop="formingThickness"> |
|
<el-input v-model="formData.formingThickness" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="产品应用领域:" prop="productApplicationArea"> |
|
<el-input v-model="formData.productApplicationArea" placeholder="请输入" /> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="玻璃饼直径"> |
|
<el-input-number |
|
:max="100000" |
|
:min="0" |
|
v-model="formData.blbDiameter" |
|
precision="10" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="壳体最大外径"> |
|
<el-input-number |
|
:max="100000" |
|
:min="0" |
|
v-model="formData.externalDiameter" |
|
precision="10" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
<el-row :gutter="24"> |
|
<el-col :span="6"> |
|
<el-form-item label="涂色标个数:" prop="tsbNum"> |
|
<el-input-number |
|
v-model="formData.tsbNum" |
|
:min="1" |
|
:max="10" |
|
controls-position="right" |
|
placeholder="请输入" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="涂色带个数:" prop="tsdNum"> |
|
<el-input-number |
|
v-model="formData.tsdNum" |
|
:min="1" |
|
:max="10" |
|
controls-position="right" |
|
placeholder="请输入" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6"> |
|
<el-form-item label="涂箭头个数:" prop="tjtNum"> |
|
<el-input-number |
|
v-model="formData.tjtNum" |
|
:min="1" |
|
:max="10" |
|
controls-position="right" |
|
placeholder="请输入" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
|
|
<el-row :gutter="24" v-if="notGlassCake || !notSinTer"> |
|
<el-col :span="24"> |
|
<el-form-item label="工艺路线:"> |
|
{{ formData.craftWay }} |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="14"> |
|
<el-form-item label="关键信息:" prop="keyInfo"> |
|
<el-input |
|
v-model="formData.keyInfo" |
|
type="textarea" |
|
maxlength="150" |
|
show-word-limit |
|
rows="3" |
|
placeholder="请输入" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="14"> |
|
<el-form-item label="色标色带:" prop="memo"> |
|
<el-input |
|
v-model="formData.memo" |
|
:rows="3" |
|
type="textarea" |
|
maxlength="150" |
|
show-word-limit |
|
placeholder="请输入" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
<el-row :gutter="24"> |
|
<el-col :span="5"> |
|
<el-form-item label="有效期:" prop="periodOfValidity"> |
|
<el-radio-group v-model="formData.periodOfValidity" @change="periodOfValidityFn"> |
|
<el-radio value="1">长期有效</el-radio> |
|
<el-radio value="2">自定义</el-radio> |
|
</el-radio-group> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6" v-if="formData.periodOfValidity == '2'"> |
|
<el-form-item label="有效周期(天):" prop="expirationPeriod" label-width="100px"> |
|
<el-input-number |
|
:max="100000" |
|
:min="0" |
|
v-model="formData.expirationPeriod" |
|
controls-position="right" |
|
placeholder="请输入" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
<el-col :span="6" v-if="formData.periodOfValidity == '2'"> |
|
<el-form-item label="到期提醒(天):" prop="advanceRemind"> |
|
<el-input-number |
|
:max="100000" |
|
:min="0" |
|
v-model="formData.advanceRemind" |
|
controls-position="right" |
|
placeholder="请输入" |
|
/> |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
<el-row :gutter="24"> |
|
<el-col :span="24"> |
|
<el-form-item label="工艺校验:" prop="sinTer"> |
|
<div style="width: 100%"> |
|
<el-checkbox v-model="formData.goldMark" disabled>镀金标识</el-checkbox> |
|
<el-checkbox |
|
v-model="formData.markingsTest" |
|
@change="setDataLocal" |
|
:true-label="'1'" |
|
:false-label="'0'" |
|
>涂色标</el-checkbox |
|
> |
|
</div> |
|
</el-form-item> |
|
</el-col> |
|
</el-row> |
|
</template> |
|
</el-form> |
|
</el-card> |
|
<el-card class="box-card" v-if="data.length > 0" style="margin-top: 24px"> |
|
<div slot="header" class="clearfix"> |
|
<span style="font-size: 16px">子件信息</span> |
|
</div> |
|
<avue-crud |
|
:option="option" |
|
:table-loading="loading" |
|
:data="data" |
|
v-model="form" |
|
v-model:page="page" |
|
ref="crud" |
|
> |
|
<template #isElectroplating-form="{ row, disabled }"> |
|
<el-form-item label="子件编号:" prop="partCode"> |
|
<el-select |
|
v-model="row.isElectroplating" |
|
placeholder="请选择" |
|
style="width: 250px" |
|
v-if="!(row.sinTerType != 1 && row.partName.indexOf('A1') < 0)" |
|
> |
|
<el-option label="是" value="1"> </el-option> |
|
<el-option label="否" value="0"> </el-option> |
|
</el-select> |
|
</el-form-item> |
|
</template> |
|
</avue-crud> |
|
</el-card> |
|
</div> |
|
</template> |
|
<script> |
|
import { |
|
getPartDetail, |
|
authorizedAccomplish, |
|
getPlatingList, |
|
getLocallyPlatedPartList, |
|
} from '@/api/processManagement/taskProcessing'; |
|
|
|
export default { |
|
components: {}, |
|
props: { |
|
// partType: { |
|
// type: String, |
|
// default: '', |
|
// }, |
|
partId: { |
|
type: [Number, String], |
|
default: null, |
|
}, |
|
childPage: { |
|
type: Boolean, |
|
default: false, |
|
}, |
|
psId: { |
|
type: Number, |
|
default: null, |
|
}, |
|
rowObject: { |
|
type: Object, |
|
default: null, |
|
}, |
|
dsPartInfo: { |
|
type: Object, |
|
default: null, |
|
}, |
|
updateRow: { |
|
type: Object, |
|
default: null, |
|
}, |
|
}, |
|
data() { |
|
var checkCode = (rule, value, callback) => { |
|
this.$ajax |
|
.post('dsPart/checkCode', { |
|
partId: this.formData.partId, |
|
partCode: value, |
|
}) |
|
.then(res => { |
|
if (res.data) { |
|
callback(new Error(this.$t('global.duplicateCode'))); |
|
} else { |
|
callback(); |
|
} |
|
}); |
|
}; |
|
const proportionNum = (rule, value, callback) => { |
|
if (value === 0) { |
|
callback(new Error(this.$t('输入的值必须大于0'))); |
|
} else { |
|
callback(); |
|
} |
|
}; |
|
return { |
|
disabled: false, |
|
formData: { |
|
sinTer: false, |
|
goldMark: false, |
|
periodOfValidity: '1', |
|
youxiaozhouqi: '', |
|
expirationPeriod: '', |
|
fenzhong: '', |
|
}, |
|
validateObj: { |
|
fluorescenceCheck: false, |
|
inkjetPrinting: false, |
|
hotDispose: false, |
|
}, |
|
notSinTer: true, |
|
notGlassCake: true, |
|
tsbNum: null, |
|
tsdNum: null, |
|
tjtNum: null, |
|
numOptions: [], |
|
rules: { |
|
plate: [{ required: true, message: '请输入', trigger: 'blur' }], |
|
material: [{ required: true, message: '请输入', trigger: 'blur' }], |
|
isGlassCake: [{ required: true, message: '请选择', trigger: 'blur' }], |
|
isPrint: [{ required: true, message: '请选择', trigger: 'blur' }], |
|
dueDate: [{ required: true, message: '请选择', trigger: 'blur' }], |
|
partCode: [{ required: true, message: '请选择', trigger: 'blur' }], |
|
partName: [{ required: true, message: '请选择', trigger: 'blur' }], |
|
craftWay: [{ required: true, message: '请输入', trigger: 'blur' }], |
|
area: [ |
|
{ required: true, message: '请输入', trigger: 'blur' }, |
|
{ validator: proportionNum, trigger: 'blur' }, |
|
], |
|
expirationPeriod: [{ required: false, message: '请输入', trigger: 'blur' }], |
|
plate: [{ required: true, message: '请输入', trigger: 'blur' }], |
|
material: [{ required: true, message: '请输入', trigger: 'blur' }], |
|
mianji1: [{ required: true, message: '请输入', trigger: 'blur' }], |
|
periodOfValidity: [{ required: true, message: '请选择', trigger: 'blur' }], |
|
youxiaozhouqi: [{ required: false, message: '请选择', trigger: 'blur' }], |
|
fenzhong: [{ required: true, message: '请输入', trigger: 'blur' }], |
|
chengxinghoudu: [{ required: true, message: '请输入', trigger: 'blur' }], |
|
}, |
|
submitLoading: false, |
|
data: [], |
|
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: '面积(d㎡)', |
|
prop: 'area', |
|
search: false, |
|
sortable: true, |
|
overHidden: true, |
|
cell: true, |
|
}, |
|
|
|
{ |
|
label: '总面积', |
|
prop: 'totalArea', |
|
cell: true, |
|
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: 'isElectroplating', |
|
cell: true, |
|
search: false, |
|
sortable: true, |
|
overHidden: true, |
|
}, |
|
{ |
|
label: '修改人', |
|
prop: 'updateUserStr', |
|
search: false, |
|
sortable: true, |
|
overHidden: true, |
|
}, |
|
{ |
|
label: '修改时间', |
|
prop: 'updateTime', |
|
search: false, |
|
sortable: true, |
|
overHidden: true, |
|
}, |
|
], |
|
}, |
|
partType: '', |
|
loading: false, |
|
plateList: [], // |
|
}; |
|
}, |
|
created() {}, |
|
mounted() { |
|
this.disabled = this.dialogType == 'view' ? true : false; |
|
// this.formData = this.dsPartInfo; |
|
this.getLocallyPlatedPartList(); |
|
this.getPartDetails(); |
|
this.getPlatingList(); |
|
}, |
|
methods: { |
|
// 获取局部镀零件列表 |
|
getLocallyPlatedPartList() { |
|
getLocallyPlatedPartList().then(res => { |
|
this.locallyPlatedData = res.data.data; |
|
}); |
|
}, |
|
getPlatingList() { |
|
getPlatingList().then(res => { |
|
this.plateList = res.data.data; |
|
}); |
|
}, |
|
// 获取零件信息详情数据 |
|
getPartDetails() { |
|
getPartDetail({ taskId: this.updateRow.id, version: this.updateRow.version }).then(res => { |
|
this.formData = res.data.data.dsPartEntity; |
|
this.data = res.data.data.dsPartVOList; |
|
|
|
this.$emit('updateVersion', res.data.data.partVersion); |
|
|
|
if (this.data.length > 0) { |
|
this.data.forEach(item => { |
|
item.$cellEdit = true; |
|
if (item.area < 0) { |
|
item.totalArea = 0; |
|
} else { |
|
item.totalArea = (item.quota * item.area).toFixed(5); // 保留5位小数(字符串) |
|
} |
|
}); |
|
} |
|
|
|
this.partType = res.data.data.dsPartEntity.isSintering == '1' ? '烧结' : '热表'; |
|
// this.partType = '烧结'; |
|
if (this.formData.sinTerType == 3) { |
|
this.formData.glassCake = true; |
|
} else if (this.formData.sinTerType == 5) { |
|
this.formData.sinTer = true; |
|
} else { |
|
this.formData.glassCake = false; |
|
this.formData.sinTer = false; |
|
} |
|
this.sinTerChange(this.formData.sinTer); |
|
this.glassCakeChange(this.formData.glassCake); |
|
|
|
const craftWay = this.formData.craftWay; |
|
if (craftWay.indexOf('涂色标') !== -1 || craftWay.indexOf('涂色带') !== -1) { |
|
this.formData.markingsTest = true; |
|
} |
|
|
|
// 如果当前零件号在局部镀金列表里面 镀金标识禁用 this.getLocallyPlatedPartList(); |
|
let selPart = this.locallyPlatedData.filter(item => { |
|
return item.partCode == this.formData.partCode; |
|
}); |
|
if (selPart.lenght > 0) { |
|
if (this.partType == '') { |
|
this.formData.goldMark = true; |
|
} |
|
} |
|
this.formData.isClassCake = true; |
|
}); |
|
}, |
|
|
|
sinTerChange(v) { |
|
if (v) { |
|
this.notSinTer = false; |
|
// this.rules = this.rules2; |
|
// this.$set(this.rules, 'craftWay', [this.$validation.required]); |
|
// if (!this.formData.expirationPeriod && this.formData.expirationPeriod == '') { |
|
// this.$set(this.formData, 'expirationPeriod', 9999); |
|
// } |
|
// if (!this.formData.advanceRemind && this.formData.advanceRemind == '') { |
|
// this.$set(this.formData, 'advanceRemind', 10); |
|
// } |
|
// if (!this.formData.area && this.formData.area == '') { |
|
// this.$set(this.formData, 'area', 1); |
|
// } |
|
} else { |
|
this.notSinTer = true; |
|
if (this.notGlassCake) { |
|
// this.rules = this.rules1; |
|
// if (!this.childPage) { |
|
// this.$set(this.rules, 'lettering', [this.$validation.required]); |
|
// } |
|
} else { |
|
// this.$set(this.rules, 'craftWay', []); |
|
} |
|
} |
|
}, |
|
glassCakeChange(value) { |
|
if (value) { |
|
this.notGlassCake = false; |
|
// this.$set(this.rules, 'lettering', []); |
|
// this.areaText = '粉重'; |
|
// this.rules = this.rules2; |
|
// if (!this.formData.expirationPeriod && this.formData.expirationPeriod == '') { |
|
// this.$set(this.formData, 'expirationPeriod', 9999); |
|
// } |
|
// if (!this.formData.advanceRemind && this.formData.advanceRemind == '') { |
|
// this.$set(this.formData, 'advanceRemind', 10); |
|
// } |
|
// if (!this.formData.area && this.formData.area == '') { |
|
// this.$set(this.formData, 'area', 1); |
|
// } |
|
// this.$set(this.rules, 'craftWay', []); |
|
} else { |
|
this.notGlassCake = true; |
|
// this.areaText = this.$t('global.area'); |
|
// if (this.notSinTer) { |
|
// this.rules = this.rules1; |
|
// } |
|
// if (!this.childPage) { |
|
// this.$set(this.rules, 'lettering', [this.$validation.required]); |
|
// } |
|
// this.$set(this.rules, 'craftWay', [this.$validation.required]); |
|
} |
|
}, |
|
|
|
//有效期切换 |
|
periodOfValidityFn(value) { |
|
if (value == 2) { |
|
this.rules.youxiaozhouqi = [{ required: true, message: '请输入', trigger: 'blur' }]; |
|
this.rules.expirationPeriod = [{ required: true, message: '请输入', trigger: 'blur' }]; |
|
} else { |
|
this.rules.youxiaozhouqi = [{ required: false, message: '请输入', trigger: 'blur' }]; |
|
this.rules.expirationPeriod = [{ required: false, message: '请输入', trigger: 'blur' }]; |
|
} |
|
this.$nextTick(() => { |
|
this.$refs.testForm.clearValidate(); // 清空之前的校验结果 |
|
}); |
|
}, |
|
clear() { |
|
this.formData = {}; |
|
this.$refs.form.resetFields(); |
|
}, |
|
|
|
setDataLocal() { |
|
this.$setItem('零件信息信息验证', this.validateObj); |
|
}, |
|
submit(flag) { |
|
this.submitLoading = true; |
|
this.$refs.testForm.validate(valid => { |
|
if (valid) { |
|
let isReturn = false; |
|
if (this.formData.plateCode || this.formData.plateThickness) { |
|
if (!this.formData.plateGoodsCode) { |
|
isReturn = true; |
|
} |
|
} |
|
if (isReturn && this.notSinTer) { |
|
this.submitLoading = false; |
|
return this.$message.warning('请选择镀层物料'); |
|
} |
|
if (this.formData.craftWay.indexOf('涂色') != -1) { |
|
if ( |
|
this.formData.tsdNum === null && |
|
this.formData.tsbNum === null && |
|
this.formData.tjtNum === null |
|
) { |
|
this.submitLoading = false; |
|
return this.$message.warning('一级路线包含涂色,请填写涂色数据'); |
|
} |
|
} |
|
for (const item of this.data) { |
|
if (item.sinTerType === 1 && item.partCode && /A1/.test(item.partCode)) { |
|
if (!item.isElectroplating) { |
|
this.$message.warning(`子件【${item.partName}】为A1插针,必须填写“是否电镀”`); |
|
this.submitLoading = false; |
|
return; |
|
} |
|
} |
|
} |
|
// 🔴 新增:子件面积校验 |
|
for (const item of this.data) { |
|
// 1. 面积不能为空 |
|
if (item.area === null || item.area === undefined || item.area === '') { |
|
this.$message.warning(`子件【${item.partName}】的面积不能为空`); |
|
this.submitLoading = false; |
|
return; |
|
} |
|
|
|
// 2. 非壳体子件,面积不能大于 1 |
|
if (item.sinTerType !== 2) { |
|
const areaValue = parseFloat(item.area); |
|
if (isNaN(areaValue) || areaValue > 1) { |
|
this.$message.warning(`子件【${item.partName}】非壳体类型,面积不能大于1`); |
|
this.submitLoading = false; |
|
return; |
|
} |
|
} |
|
} |
|
|
|
this.formData.childPage = this.childPage; |
|
this.formData.psId = this.psId; |
|
|
|
// 判断单个面积是不是大于1 A1配置码的不能为空 |
|
// this.data.forEach(item=>{ |
|
// if(item.type=='2'){ |
|
|
|
// } |
|
// }) |
|
|
|
authorizedAccomplish({ dsPart: this.formData, partList: this.data }).then(res => { |
|
this.$message.success('操作成功'); |
|
this.cancel(flag, res.data); |
|
}); |
|
} else { |
|
this.submitLoading = false; |
|
} |
|
}); |
|
}, |
|
cancel(flag, dsPart) { |
|
this.$emit('cancelClose', flag, dsPart); |
|
// if (!flag) { |
|
// this.$refs.craftEdit.refreshLoad(); |
|
// } |
|
}, |
|
}, |
|
}; |
|
</script> |
|
<style lang="scss" scoped> |
|
.clearfix { |
|
margin-bottom: 12px; |
|
} |
|
|
|
.auto-fit { |
|
width: 100%; |
|
} |
|
|
|
.vd-form-three { |
|
.el-form-item { |
|
width: 100%; |
|
|
|
.el-input, |
|
.el-select, |
|
.el-input-number, |
|
.el-date-editor.el-input__wrapper { |
|
width: 250px; |
|
} |
|
} |
|
} |
|
:deep(.el-table .el-table__cell) { |
|
height: 50px !important; |
|
padding: 0 !important; |
|
line-height: 50px !important; |
|
} |
|
</style>
|
|
|