302 lines
8.4 KiB
Vue
302 lines
8.4 KiB
Vue
<!--
|
|
* @Author: zwq
|
|
* @Date: 2021-11-18 14:16:25
|
|
* @LastEditors: zwq
|
|
* @LastEditTime: 2022-12-12 15:51:58
|
|
* @Description:
|
|
-->
|
|
<template>
|
|
<el-dialog
|
|
:title="!threeDataForm.id ? '新增' : '修改'"
|
|
append-to-body
|
|
:visible.sync="threeVisible"
|
|
>
|
|
<el-row :gutter="10">
|
|
<el-form
|
|
:model="threeDataForm"
|
|
:rules="dataRule"
|
|
ref="threeDataForm"
|
|
@keyup.enter.native="dataFormSubmit()"
|
|
label-width="80px"
|
|
>
|
|
<el-col :span="8">
|
|
<el-form-item label="编码" prop="code">
|
|
<el-input v-model="threeDataForm.code" placeholder="编码"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-form-item label="名称" prop="name">
|
|
<el-input v-model="threeDataForm.name" placeholder="名称"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-form-item label="特性类型" prop="type">
|
|
<el-select
|
|
v-model="threeDataForm.type"
|
|
@change="numIsblack"
|
|
:style="{ width: '100%' }"
|
|
filterable
|
|
placeholder="请选择特性类型"
|
|
>
|
|
<el-option
|
|
v-for="item in typeArr"
|
|
:key="item.value"
|
|
:label="item.name"
|
|
:value="item.value"
|
|
>
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-form-item label="缺陷等级" prop="defectLevel">
|
|
<el-select
|
|
:disabled="threeDataForm.type === 2"
|
|
v-model="threeDataForm.defectLevel"
|
|
:style="{ width: '100%' }"
|
|
filterable
|
|
placeholder="请选择缺陷等级"
|
|
>
|
|
<el-option
|
|
v-for="item in defectLevelArr"
|
|
:key="item.value"
|
|
:label="item.name"
|
|
:value="item.value"
|
|
>
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-form-item label="量具" prop="measureToolId">
|
|
<el-select
|
|
:disabled="threeDataForm.type === 2"
|
|
v-model="threeDataForm.measureToolId"
|
|
placeholder="请选择单位"
|
|
clearable
|
|
:style="{ width: '100%' }"
|
|
>
|
|
<el-option
|
|
v-for="(item, index) in measureToolArr"
|
|
:key="index"
|
|
:label="item.name"
|
|
:value="item.id"
|
|
></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-form-item label="单位" prop="unitId">
|
|
<el-select
|
|
:disabled="threeDataForm.type === 2"
|
|
v-model="threeDataForm.unitId"
|
|
placeholder="请选择单位"
|
|
clearable
|
|
:style="{ width: '100%' }"
|
|
>
|
|
<el-option
|
|
v-for="(item, index) in unitArr"
|
|
:key="index"
|
|
:label="item.name"
|
|
:value="item.id"
|
|
></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-form-item label="规格" prop="specifications">
|
|
<el-input
|
|
:disabled="threeDataForm.type === 2"
|
|
v-model="threeDataForm.specifications"
|
|
placeholder="规格"
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-form-item label="LSL" prop="lsl">
|
|
<el-input-number
|
|
:disabled="threeDataForm.type === 2"
|
|
v-model="threeDataForm.lsl"
|
|
placeholder="LSL"
|
|
></el-input-number>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-form-item label="SL" prop="sl">
|
|
<el-input-number
|
|
:disabled="threeDataForm.type === 2"
|
|
v-model="threeDataForm.sl"
|
|
placeholder="SL"
|
|
></el-input-number>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-form-item label="USL" prop="usl">
|
|
<el-input-number
|
|
:disabled="threeDataForm.type === 2"
|
|
v-model="threeDataForm.usl"
|
|
placeholder="USL"
|
|
></el-input-number>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-form-item label="备注" prop="remark">
|
|
<el-input v-model="threeDataForm.remark" placeholder="备注"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-form>
|
|
</el-row>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button @click="threeVisible = false">取消</el-button>
|
|
<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
threeVisible: false,
|
|
threeDataForm: {
|
|
id: "",
|
|
productId: "",
|
|
code: "",
|
|
name: "",
|
|
type: "",
|
|
defectLevel: "",
|
|
measureToolId: "",
|
|
unitId: "",
|
|
specifications: "",
|
|
lsl: "",
|
|
sl: "",
|
|
usl: "",
|
|
remark: "",
|
|
},
|
|
typeArr: [
|
|
{
|
|
name: "计数",
|
|
value: 2,
|
|
},
|
|
{
|
|
name: "计量",
|
|
value: 1,
|
|
},
|
|
],
|
|
defectLevelArr: [
|
|
{
|
|
name: "致命缺陷",
|
|
value: 1,
|
|
},
|
|
{
|
|
name: "严重缺陷",
|
|
value: 2,
|
|
},
|
|
{
|
|
name: "轻微缺陷",
|
|
value: 3,
|
|
},
|
|
],
|
|
measureToolArr: [],
|
|
unitArr: [],
|
|
dataRule: {
|
|
code: [{ required: true, message: "编码不能为空", trigger: "blur" }],
|
|
name: [{ required: true, message: "名称不能为空", trigger: "blur" }],
|
|
},
|
|
};
|
|
},
|
|
created() {
|
|
this.getArr();
|
|
},
|
|
methods: {
|
|
init(id, productId) {
|
|
this.threeDataForm.id = id || "";
|
|
this.threeDataForm.productId = productId;
|
|
this.threeVisible = true;
|
|
this.$nextTick(() => {
|
|
this.$refs["threeDataForm"].resetFields();
|
|
if (this.threeDataForm.id) {
|
|
this.$http
|
|
.get(`/basic/productFeatures/${this.threeDataForm.id}`)
|
|
.then(({ data: res }) => {
|
|
if (res.code !== 0) {
|
|
return this.$message.error(res.msg);
|
|
}
|
|
this.threeDataForm = res.data;
|
|
})
|
|
.catch(() => {});
|
|
}
|
|
});
|
|
},
|
|
getArr() {
|
|
this.$http
|
|
.get("/basic/unit/page", {
|
|
params: {
|
|
page: 1,
|
|
limit: 500,
|
|
},
|
|
})
|
|
.then(({ data: res }) => {
|
|
if (res.code !== 0) {
|
|
return this.$message.error(res.msg);
|
|
}
|
|
this.unitArr = res.data.list;
|
|
})
|
|
.catch(() => {});
|
|
this.$http
|
|
.get("/basic/measureTool/page", {
|
|
params: {
|
|
page: 1,
|
|
limit: 500,
|
|
},
|
|
})
|
|
.then(({ data: res }) => {
|
|
if (res.code !== 0) {
|
|
return this.$message.error(res.msg);
|
|
}
|
|
this.measureToolArr = res.data.list;
|
|
})
|
|
.catch(() => {});
|
|
},
|
|
numIsblack(val){
|
|
if(val===2){
|
|
this.threeDataForm.defectLevel= ""
|
|
this.threeDataForm.measureToolId= ""
|
|
this.threeDataForm.unitId= ""
|
|
this.threeDataForm.specifications= ""
|
|
this.threeDataForm.lsl= 0
|
|
this.threeDataForm.sl= 0
|
|
this.threeDataForm.usl= 0
|
|
}
|
|
},
|
|
// 表单提交
|
|
dataFormSubmit() {
|
|
this.$refs["threeDataForm"].validate((valid) => {
|
|
if (!valid) {
|
|
return false;
|
|
}
|
|
this.$http[!this.threeDataForm.id ? "post" : "put"](
|
|
"/basic/productFeatures/",
|
|
this.threeDataForm
|
|
)
|
|
.then(({ data: res }) => {
|
|
if (res.code !== 0) {
|
|
return this.$message.error(res.msg);
|
|
}
|
|
this.$message({
|
|
message: this.$t("prompt.success"),
|
|
type: "success",
|
|
duration: 500,
|
|
onClose: () => {
|
|
this.threeVisible = false;
|
|
this.$emit("refreshThreeDataList");
|
|
},
|
|
});
|
|
})
|
|
.catch(() => {});
|
|
});
|
|
},
|
|
},
|
|
};
|
|
</script>
|