yudao-dev/src/views/quality/base/basicData/qualityInspectionBoxBtn/dialogForm.vue

252 lines
6.7 KiB
Vue
Raw Normal View History

2023-11-07 19:10:45 +08:00
<!--
2023-09-18 17:01:44 +08:00
filename: dialogForm.vue
author: liubin
date: 2023-09-11 15:55:13
description: DialogForm for equipmentBindSection only
-->
<template>
2023-11-07 19:10:45 +08:00
<el-form ref="form" :model="dataForm" label-width="120px" v-loading="formLoading">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="产线" prop="productionLineId"
:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
<el-select v-model="dataForm.productionLineId" placeholder="请选择产线" filterable
@change="handleProductlineChange">
<el-option v-for="opt in productionLineList" :key="opt.value" :label="opt.label" :value="opt.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工段" prop="sectionId" :rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
<el-select v-model="dataForm.sectionId" placeholder="请选择工段" filterable @change="$emit('update', dataForm)">
<el-option v-for="opt in workshopSectionList" :key="opt.value" :label="opt.label" :value="opt.value" />
</el-select>
</el-form-item>
</el-col>
2023-09-18 17:01:44 +08:00
2023-11-07 19:10:45 +08:00
<el-col :span="12">
<el-form-item label="按钮盒识别码" prop="buttonId" :rules="[
2023-11-22 14:00:02 +08:00
{ required: true, message: '不能为空', trigger: 'blur' },
{
type: 'number',
message: '请输入整数',
trigger: 'blur',
transform: (val) => Number.isInteger(Number(val)) && Number(val),
},
]">
2023-11-07 19:10:45 +08:00
<el-input v-model="dataForm.buttonId" @change="$emit('update', dataForm)" placeholder="请输入整数" />
</el-form-item>
2023-09-18 17:01:44 +08:00
<el-form-item
2023-11-22 11:15:39 +08:00
label="产线"
prop="productionLineId"
:rules="[
{ required: true, message: '产线不能为空', trigger: 'blur' },
]">
2023-09-18 17:01:44 +08:00
<el-select
2023-11-22 11:15:39 +08:00
v-model="dataForm.productionLineId"
2023-09-18 17:01:44 +08:00
placeholder="请选择产线"
2023-11-22 11:15:39 +08:00
filterable
2023-09-18 17:01:44 +08:00
@change="handleProductlineChange">
<el-option
v-for="opt in productionLineList"
:key="opt.value"
:label="opt.label"
:value="opt.value" />
</el-select>
2023-11-22 11:15:39 +08:00
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="工段"
prop="sectionId"
:rules="[
{ required: true, message: '工段不能为空', trigger: 'blur' },
]">
<el-select
v-model="dataForm.sectionId"
placeholder="请选择工段"
filterable
@change="$emit('update', dataForm)">
<el-option
v-for="opt in workshopSectionList"
:key="opt.value"
:label="opt.label"
:value="opt.value" />
</el-select>
</el-form-item>
</el-col>
2023-09-18 17:01:44 +08:00
2023-11-22 11:15:39 +08:00
<el-col :span="12">
<el-form-item
label="按钮盒识别码"
prop="buttonId"
:rules="[
{
required: true,
message: '按钮盒识别码不能为空',
trigger: 'blur',
},
{
type: 'number',
message: '请输入整数',
trigger: 'blur',
transform: (val) => Number.isInteger(Number(val)) && Number(val),
},
]">
<el-input
v-model="dataForm.buttonId"
@change="$emit('update', dataForm)"
placeholder="请输入整数" />
</el-form-item>
</el-col>
2023-09-18 17:01:44 +08:00
2023-11-07 19:10:45 +08:00
<el-col :span="12">
<el-form-item label="按钮值" prop="keyValue" :rules="[
2023-11-22 14:00:02 +08:00
{ required: true, message: '不能为空', trigger: 'blur' },
{
type: 'number',
message: '请输入100以内的整数',
trigger: 'blur',
transform: (val) =>
Number.isInteger(+val) &&
Number(val) >= 0 &&
Number(val) <= 100 &&
Number(val),
},
]">
2023-11-07 19:10:45 +08:00
<el-input v-model="dataForm.keyValue" type="number" min="0" max="100" @change="$emit('update', dataForm)"
placeholder="请输入按钮盒模式" />
</el-form-item>
</el-col>
2023-09-18 17:01:44 +08:00
2023-11-07 19:10:45 +08:00
<el-col :span="12">
2023-11-22 14:00:02 +08:00
<el-form-item label="检测内容" prop="inspectionDetId">
<el-select v-model="dataForm.inspectionDetId" placeholder="请选择检测内容" filterable
@change="$emit('update', dataForm)">
<el-option v-for="opt in inspectionDetList" :key="opt.value" :label="opt.label" :value="opt.value" />
</el-select>
2023-11-07 19:10:45 +08:00
</el-form-item>
</el-col>
</el-row>
</el-form>
2023-09-18 17:01:44 +08:00
</template>
<script>
export default {
name: 'DialogForm',
model: {
prop: 'dataForm',
event: 'update',
},
emits: ['update'],
components: {},
props: {
dataForm: {
type: Object,
default: () => ({}),
},
},
data() {
return {
formLoading: true,
2023-11-22 14:00:02 +08:00
productionLineList: [],
inspectionDetList:[],
2023-09-18 17:01:44 +08:00
workshopSectionList: [],
};
},
mounted() {
2023-11-22 14:00:02 +08:00
this.getProductionLineList()
this.getQualityInspectionDetList()
2023-09-18 17:01:44 +08:00
// this.getWorksectionList();
// this.getCode('/base/equipment-group-alarm/getCode').then((code) => {
// this.formLoading = false;
// this.$emit('update', {
// ...this.dataForm,
// code,
// });
// });
},
watch: {
'dataForm.productionId': {
handler(id) {
2023-09-22 10:54:21 +08:00
if (id != null) this.getWorksectionList(id);
2023-09-18 17:01:44 +08:00
},
2023-09-22 10:54:21 +08:00
immediate: true,
},
2023-09-18 17:01:44 +08:00
},
methods: {
/** 模拟透传 ref */
validate(cb) {
return this.$refs.form.validate(cb);
},
resetFields(args) {
return this.$refs.form.resetFields(args);
},
async getProductionLineList() {
this.formLoading = true;
const res = await this.$axios({
2023-11-07 19:10:45 +08:00
url: '/base/core-production-line/listAll',
2023-09-18 17:01:44 +08:00
method: 'get',
});
if (res.code == 0) {
this.productionLineList = res.data.map((item) => ({
label: item.name,
value: item.id,
}));
}
this.formLoading = false;
},
2023-11-22 14:00:02 +08:00
async getQualityInspectionDetList() {
this.formLoading = true;
const res = await this.$axios({
url: '/base/quality-inspection-det/listAll',
method: 'get',
});
if (res.code == 0) {
this.inspectionDetList = res.data.map((item) => ({
label: item.content,
value: item.id,
}));
}
this.formLoading = false;
},
2023-09-18 17:01:44 +08:00
async getWorksectionList(id) {
this.formLoading = true;
const res = await this.$axios({
2023-11-07 19:10:45 +08:00
url: '/base/core-workshop-section/listByParentId',
2023-09-18 17:01:44 +08:00
method: 'get',
params: {
id,
},
});
if (res.code == 0) {
this.workshopSectionList = res.data.map((item) => ({
label: item.name,
value: item.id,
}));
}
this.formLoading = false;
},
async handleProductlineChange(id) {
await this.getWorksectionList(id);
this.dataForm.sectionId = null;
this.$emit('update', this.dataForm);
},
async getCode(url) {
const response = await this.$axios(url);
return response.data;
},
},
};
</script>
<style scoped lang="scss">
.el-date-editor,
.el-select {
width: 100%;
}
</style>