|
|
@@ -1,32 +1,32 @@
|
|
|
<template>
|
|
|
- <ele-modal :visible.sync="visible" v-if="visible" :title="title" width="80%" @close="cancel">
|
|
|
+ <ele-modal custom-class="ele-dialog-form" :visible.sync="visible" v-if="visible" :title="title" width="80%" @close="cancel">
|
|
|
<headerTitle title="基本信息"></headerTitle>
|
|
|
- <el-form label-width="100px">
|
|
|
+ <el-form label-width="100px" ref="form" :model="form" :rules="rules" >
|
|
|
<el-row>
|
|
|
- <el-col :span="8">
|
|
|
+ <el-col :span="8" label-width="100px">
|
|
|
<el-form-item label="BOM编码" prop="code">
|
|
|
<el-input
|
|
|
placeholder="自动生成"
|
|
|
disabled
|
|
|
- v-model="formData.code"
|
|
|
+ v-model="form.code"
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="BOM名称" prop="name">
|
|
|
- <el-input placeholder="请输入" v-model="formData.name"></el-input>
|
|
|
+ <el-input placeholder="请输入" v-model="form.name"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="所属工厂" prop="factoryId">
|
|
|
- <factorySelect v-model="formData.factoryId" />
|
|
|
+ <factorySelect v-model="form.factoryId" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="产品编码" prop="categoryCode">
|
|
|
<el-input
|
|
|
placeholder="请输入"
|
|
|
- v-model="formData.categoryCode"
|
|
|
+ v-model="form.categoryCode"
|
|
|
@click.native="selectProd"
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
|
@@ -36,16 +36,26 @@
|
|
|
<el-input
|
|
|
placeholder="请选择"
|
|
|
disabled
|
|
|
- v-model="formData.categoryName"
|
|
|
+ v-model="form.categoryName"
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="分类层级" prop="categoryType">
|
|
|
-
|
|
|
+ <el-form-item label="版本号" prop="versionNumber">
|
|
|
+ <el-input
|
|
|
+ placeholder="请选择"
|
|
|
+ disabled
|
|
|
+ v-model="form.versionNumber"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="分类层级" prop="categoryType">
|
|
|
<el-select
|
|
|
- v-model="formData.categoryType"
|
|
|
+ v-model="form.categoryType"
|
|
|
placeholder="请选择"
|
|
|
class="w100"
|
|
|
>
|
|
|
@@ -65,7 +75,7 @@
|
|
|
<el-col :span="16">
|
|
|
<el-input
|
|
|
placeholder="请输入"
|
|
|
- v-model.number="formData.baseCount"
|
|
|
+ v-model.number="form.baseCount"
|
|
|
>
|
|
|
</el-input
|
|
|
></el-col>
|
|
|
@@ -73,7 +83,7 @@
|
|
|
<el-col :span="6"
|
|
|
><DictSelection
|
|
|
dictName="计量单位"
|
|
|
- v-model="formData.baseCountUnit"
|
|
|
+ v-model="form.baseCountUnit"
|
|
|
/></el-col>
|
|
|
</el-row>
|
|
|
</el-form-item>
|
|
|
@@ -83,7 +93,7 @@
|
|
|
<el-select
|
|
|
:disabled="title == '新建'"
|
|
|
clearable
|
|
|
- v-model="formData.status"
|
|
|
+ v-model="form.status"
|
|
|
placeholder="请选择"
|
|
|
class="w100"
|
|
|
>
|
|
|
@@ -102,7 +112,7 @@
|
|
|
ref="table"
|
|
|
:columns="columns"
|
|
|
:datasource="tableData"
|
|
|
- height="calc(100vh - 350px)"
|
|
|
+ height="calc(100vh - 550px)"
|
|
|
:need-page="false"
|
|
|
>
|
|
|
<!-- 表头工具栏 -->
|
|
|
@@ -160,17 +170,29 @@
|
|
|
statusOpt: Object
|
|
|
},
|
|
|
data () {
|
|
|
+
|
|
|
+ var baseCountVa = (rule ,value,callback ) => {
|
|
|
+ if (value == '') {
|
|
|
+ callback(new Error('请输入基本数量'));
|
|
|
+ } else if (this.form.baseCountUnit == '') {
|
|
|
+ callback(new Error('请选择基本数量单位'));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
return {
|
|
|
visible: false,
|
|
|
title: '',
|
|
|
row: {},
|
|
|
- formData: {
|
|
|
+ form: {
|
|
|
code: '',
|
|
|
name: '',
|
|
|
factoryId: '',
|
|
|
categoryCode: '',
|
|
|
categoryId: '',
|
|
|
categoryName: '',
|
|
|
+ versionNumber: '',
|
|
|
categoryType: '',
|
|
|
baseCount: '',
|
|
|
baseCountUnit: '',
|
|
|
@@ -237,7 +259,22 @@
|
|
|
slot: 'action',
|
|
|
label: '操作'
|
|
|
}
|
|
|
- ]
|
|
|
+ ],
|
|
|
+ rules: {
|
|
|
+ name: [
|
|
|
+ { required: true, message: '请输入BOM名称', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ factoryId: [
|
|
|
+ { required: true, message: '请输入所属工厂', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ categoryCode: [
|
|
|
+ { required: true, message: '请输入产品编码', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+
|
|
|
+ baseCount: [
|
|
|
+ { validator: baseCountVa, trigger: 'blur' }
|
|
|
+ ]
|
|
|
+ }
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
@@ -272,13 +309,13 @@
|
|
|
},
|
|
|
async _getCode () {
|
|
|
const code = await getCode('bom_code');
|
|
|
- this.formData.code = code;
|
|
|
+ this.form.code = code;
|
|
|
},
|
|
|
selectProd () {
|
|
|
- this.$refs.productDialogRef.open(this.formData, (res) => {
|
|
|
- this.formData.categoryCode = res.code;
|
|
|
- this.formData.categoryId = res.id;
|
|
|
- this.formData.categoryName = res.name;
|
|
|
+ this.$refs.productDialogRef.open(this.form, (res) => {
|
|
|
+ this.form.categoryCode = res.code;
|
|
|
+ this.form.categoryId = res.id;
|
|
|
+ this.form.categoryName = res.name;
|
|
|
console.log(res);
|
|
|
});
|
|
|
},
|
|
|
@@ -291,7 +328,19 @@
|
|
|
row.brandNum = res.brandNum;
|
|
|
});
|
|
|
},
|
|
|
- save () {},
|
|
|
+ save () {
|
|
|
+ // console.log(11)
|
|
|
+ // console.log(this.form)
|
|
|
+
|
|
|
+ this.$refs.form.validate((valid) => {
|
|
|
+ if (!valid) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ this.loading = true;
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+ },
|
|
|
handleDel (index) {
|
|
|
this.tableData.splice(index, 1);
|
|
|
},
|