中航光电热表web
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.

118 lines
4.5 KiB

<template>
<el-dialog title="含量检测" append-to-body :modelValue="openShow" width="40%" @close="closeDialog">
4 months ago
<!-- 合并为单个表单避免ref冲突 -->
<el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="90">
<el-row>
<el-col :span="12">
<el-form-item label="作业中心" prop="zuoyezhongxin">
<el-select v-model="ruleForm.zuoyezhongxin" placeholder="请选择">
4 months ago
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="化验时间" prop="huayanshijian">
4 months ago
<!-- 修复日期选择器v-model绑定错误 -->
<el-date-picker
v-model="ruleForm.huayanshijian"
type="date"
placeholder="请选择"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
</el-row>
4 months ago
<el-table :data="ruleForm.tableData" style="width: 100%">
<el-table-column type="index" label="序号" width="180" />
<el-table-column prop="name" label="作业槽" width="180" />
<el-table-column prop="address" label="测量值">
<template #header>
<span><i style="color:red">*</i>测量值</span>
</template>
<template #default="scope">
<!-- 将输入框放入form-item内部避免校验时的更新冲突 -->
<el-form-item
:prop="'tableData.' + scope.$index + '.address'"
:rules="[{ required: true, message: '请输入测量值', trigger: ['blur', 'change'] }]"
>
<el-input-number
v-model="scope.row.address"
controls-position="right"
@change="handleChange"
/>
</el-form-item>
</template>
</el-table-column>
</el-table>
</el-form>
4 months ago
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</template>
</el-dialog>
</template>
4 months ago
<script>
export default {
props: {
showDialog: {
type: Boolean,
default: false
},
},
data() {
return {
openShow: false,
ruleForm: {
huayanshijian: '',
4 months ago
zuoyezhongxin: '',
tableData: [
{ address: null, name: '#16' },
{ address: null, name: '#15' },
{ address: null, name: '#14' },
{ address: null, name: '#13' },
{ address: null, name: '#12' }
]
},
rules: {
huayanshijian: [
4 months ago
{ required: true, message: '请选择化验时间', trigger:[ 'change', 'blur'] }
],
zuoyezhongxin: [
4 months ago
{ required: true, message: '请选择作业中心', trigger: ['change', 'blur'] }
]
},
options: [
4 months ago
{ label: '作业中心一1', value: '1' },
{ label: '作业中心二', value: '2' }
]
}
},
mounted() {
this.openShow = this.showDialog
},
methods: {
closeDialog() {
this.openShow = false
this.$emit('closeDialog');
4 months ago
},
submit() {
this.$refs.ruleFormRef.validate((valid) => {
if (valid) {
console.log('提交数据:', this.ruleForm)
// 提交逻辑
}
})
},
handleChange(value) {
// 避免在change事件中修改可能触发表格更新的数据
console.log('测量值变化:', value)
}
}
}
4 months ago
</script>