|
|
@@ -0,0 +1,266 @@ |
|
|
|
<!-- |
|
|
|
filename: dialogForm.vue |
|
|
|
author: liubin |
|
|
|
date: 2023-09-11 15:55:13 |
|
|
|
description: DialogForm for equipmentBindSection only |
|
|
|
--> |
|
|
|
|
|
|
|
<template> |
|
|
|
<el-form |
|
|
|
ref="form" |
|
|
|
:model="dataForm" |
|
|
|
label-width="128px" |
|
|
|
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 |
|
|
|
clearable |
|
|
|
@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="workshopSectionId" |
|
|
|
:rules="[ |
|
|
|
{ required: true, message: '工段不能为空', trigger: 'blur' }, |
|
|
|
]"> |
|
|
|
<el-select |
|
|
|
v-model="dataForm.workshopSectionId" |
|
|
|
filterable |
|
|
|
clearable |
|
|
|
placeholder="请选择工段" |
|
|
|
@change="$emit('update', dataForm)"> |
|
|
|
<el-option |
|
|
|
v-for="opt in worksectionList" |
|
|
|
:key="opt.value" |
|
|
|
:label="opt.label" |
|
|
|
:value="opt.value" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row :gutter="20"> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item |
|
|
|
label="设备" |
|
|
|
prop="equipmentId" |
|
|
|
clearable |
|
|
|
filterable |
|
|
|
:rules="[ |
|
|
|
{ required: true, message: '设备不能为空', trigger: 'blur' }, |
|
|
|
]"> |
|
|
|
<el-select |
|
|
|
v-model="dataForm.equipmentId" |
|
|
|
filterable |
|
|
|
placeholder="请选择设备" |
|
|
|
@change="$emit('update', dataForm)"> |
|
|
|
<el-option |
|
|
|
v-for="opt in equipmentList" |
|
|
|
: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="sort" |
|
|
|
:rules="[ |
|
|
|
{ |
|
|
|
type: 'number', |
|
|
|
trigger: 'change', |
|
|
|
message: '请输入正确的数字类型', |
|
|
|
transform: (val) => Number(val), |
|
|
|
}, |
|
|
|
]"> |
|
|
|
<el-input |
|
|
|
v-model="dataForm.sort" |
|
|
|
clearable |
|
|
|
@change="$emit('update', dataForm)" |
|
|
|
placeholder="请输入工段排序" /> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row :gutter="20"> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item |
|
|
|
label="产线统计类型" |
|
|
|
prop="lineDataType" |
|
|
|
:rules="[ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: '产线统计类型不能为空', |
|
|
|
trigger: 'change', |
|
|
|
}, |
|
|
|
]"> |
|
|
|
<el-select |
|
|
|
v-model="dataForm.lineDataType" |
|
|
|
placeholder="请选择产线统计类型" |
|
|
|
clearable |
|
|
|
filterable |
|
|
|
@change="$emit('update', dataForm)"> |
|
|
|
<el-option |
|
|
|
v-for="opt in [ |
|
|
|
{ label: '无类型', value: 0 }, |
|
|
|
{ label: '进口统计', value: 1 }, |
|
|
|
{ label: '出口统计', value: 2 }, |
|
|
|
]" |
|
|
|
: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="sectionDataType" |
|
|
|
:rules="[ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: '工段统计类型不能为空', |
|
|
|
trigger: 'change', |
|
|
|
}, |
|
|
|
]"> |
|
|
|
<el-select |
|
|
|
v-model="dataForm.sectionDataType" |
|
|
|
placeholder="请选择工段统计类型" |
|
|
|
clearable |
|
|
|
filterable |
|
|
|
@change="$emit('update', dataForm)"> |
|
|
|
<el-option |
|
|
|
v-for="opt in [ |
|
|
|
{ label: '无类型', value: 0 }, |
|
|
|
{ label: '进口统计', value: 1 }, |
|
|
|
{ label: '出口统计', value: 2 }, |
|
|
|
]" |
|
|
|
:key="opt.value" |
|
|
|
:label="opt.label" |
|
|
|
:value="opt.value" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-form> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
export default { |
|
|
|
name: 'DialogForm', |
|
|
|
model: { |
|
|
|
prop: 'dataForm', |
|
|
|
event: 'update', |
|
|
|
}, |
|
|
|
emits: ['update'], |
|
|
|
components: {}, |
|
|
|
props: { |
|
|
|
dataForm: { |
|
|
|
type: Object, |
|
|
|
default: () => ({}), |
|
|
|
}, |
|
|
|
}, |
|
|
|
data() { |
|
|
|
return { |
|
|
|
formLoading: true, |
|
|
|
productionLineList: [], |
|
|
|
equipmentList: [], |
|
|
|
worksectionList: [], |
|
|
|
dataFormCache: null, |
|
|
|
}; |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
Promise.all([this.getProductLineList(), this.getEquipmentList()]).then( |
|
|
|
() => { |
|
|
|
this.formLoading = false; |
|
|
|
} |
|
|
|
); |
|
|
|
}, |
|
|
|
watch: { |
|
|
|
'dataForm.productionLineId': { |
|
|
|
handler: async function (plId) { |
|
|
|
if (plId) await this.getWorksectionList(plId); |
|
|
|
}, |
|
|
|
immediate: true, |
|
|
|
}, |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
/** 模拟透传 ref */ |
|
|
|
validate(cb) { |
|
|
|
return this.$refs.form.validate(cb); |
|
|
|
}, |
|
|
|
resetFields(args) { |
|
|
|
return this.$refs.form.resetFields(args); |
|
|
|
}, |
|
|
|
async handleProductlineChange(id) { |
|
|
|
await this.getWorksectionList(id); |
|
|
|
this.dataForm.workshopSectionId = null; |
|
|
|
this.$emit('update', this.dataForm); |
|
|
|
}, |
|
|
|
// getCode |
|
|
|
async getCode(url) { |
|
|
|
const response = await this.$axios(url); |
|
|
|
return response.data; |
|
|
|
}, |
|
|
|
// 获取产线列表 |
|
|
|
async getProductLineList() { |
|
|
|
const response = await this.$axios('/base/core-production-line/listAll'); |
|
|
|
this.productionLineList = response.data.map((item) => ({ |
|
|
|
label: item.name, |
|
|
|
value: item.id, |
|
|
|
})); |
|
|
|
}, |
|
|
|
// 获取设备列表 |
|
|
|
async getEquipmentList() { |
|
|
|
const response = await this.$axios( |
|
|
|
// '/base/core-equipment/page?pageNo=1&pageSize=100' |
|
|
|
'/base/core-equipment/listAll' |
|
|
|
); |
|
|
|
this.equipmentList = response.data.map((item) => ({ |
|
|
|
label: item.name, |
|
|
|
value: item.id, |
|
|
|
})); |
|
|
|
}, |
|
|
|
// 获取工段列表 |
|
|
|
async getWorksectionList(plId) { |
|
|
|
const response = await this.$axios( |
|
|
|
'/base/core-workshop-section/listByParentId', |
|
|
|
{ |
|
|
|
params: { |
|
|
|
id: plId, |
|
|
|
}, |
|
|
|
} |
|
|
|
); |
|
|
|
this.worksectionList = response.data.map((item) => ({ |
|
|
|
label: item.name, |
|
|
|
value: item.id, |
|
|
|
})); |
|
|
|
}, |
|
|
|
}, |
|
|
|
}; |
|
|
|
</script> |
|
|
|
|
|
|
|
<style scoped lang="scss"> |
|
|
|
.el-date-editor, |
|
|
|
.el-select { |
|
|
|
width: 100%; |
|
|
|
} |
|
|
|
</style> |