<ea-item label="科目" col="2" prop="subjectno"> <el-select v-model="model.subjectno" > <el-option v-for="(item, index) in EXPENSESUBJECT" :key="item.no" :label="item.label" :value="item.value"/> </el-select> </ea-item> 编辑回显的时候没有显示item.label 只显示了model.subjectno 帮我优化下这段代码
时间: 2024-01-27 14:03:04 浏览: 115
您可以将 `:label` 修改为 `:label.sync` 并添加一个 `v-model` 到 `item` 对象中。这样就可以在编辑回显时正确显示 `item.label` 了。修改后的代码如下:
```
<ea-item label="科目" col="2" prop="subjectno">
<el-select v-model="model.subjectno">
<el-option v-for="(item, index) in EXPENSESUBJECT" :key="item.no"
:label.sync="item.label" :value="item.value" v-model="item.checked"/>
</el-select>
</ea-item>
```
然后在编辑回显时,您可以遍历 `EXPENSESUBJECT` 数组中的每个对象,将 `model.subjectno` 与 `item.value` 进行比较,如果相等,则将 `item.checked` 设置为 `true`,这样就可以正确显示 `item.label` 了。
相关问题
<el-form-item label="事故形态" pop="xingtai"> <el-select v-model="form.xingtai" @change="chaxingtai(form.xingtai)" placeholder="请选择事故形态" size="small" > <el-option label="碰撞" value="碰撞"></el-option> <el-option label="刮蹭" value="刮蹭"></el-option> <el-option label="碾压" value="碾压"></el-option> <el-option label="翻车" value="翻车"></el-option> <el-option label="坠车" value="坠车"></el-option> <el-option label="失火" value="失火"></el-option> <el-option label="撞固定物" value="撞固定物"></el-option> <el-option label="撞静止车辆" value="撞静止车辆"></el-option> <el-option label="其他" value="其他" ></el-option> </el-select> <div v-if="xingtaiqita" style="width: 200px"> <el-input type="textarea" v-model="form.select_1" size="small" clearable > ></el-input > </div> </el-form-item>以上代码写出表单验证
你可以使用element-ui提供的表单验证来验证该字段是否为空。示例代码如下:
```
<template>
<el-form :model="form" :rules="rules" ref="form">
<el-form-item label="事故形态" prop="xingtai" pop="xingtai">
<el-select
v-model="form.xingtai"
@change="chaxingtai(form.xingtai)"
placeholder="请选择事故形态"
size="small"
>
<el-option label="碰撞" value="碰撞"></el-option>
<el-option label="刮蹭" value="刮蹭"></el-option>
<el-option label="碾压" value="碾压"></el-option>
<el-option label="翻车" value="翻车"></el-option>
<el-option label="坠车" value="坠车"></el-option>
<el-option label="失火" value="失火"></el-option>
<el-option label="撞固定物" value="撞固定物"></el-option>
<el-option label="撞静止车辆" value="撞静止车辆"></el-option>
<el-option label="其他" value="其他"></el-option>
</el-select>
<div v-if="xingtaiqita" style="width: 200px">
<el-input
type="textarea"
v-model="form.select_1"
size="small"
clearable
></el-input>
</div>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
</el-form-item>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
xingtai: '',
select_1: ''
},
xingtaiqita: false,
rules: {
xingtai: [
{
required: true,
message: '请选择事故形态',
trigger: 'change'
}
]
}
}
},
methods: {
chaxingtai(value) {
if (value === '其他') {
this.xingtaiqita = true
} else {
this.xingtaiqita = false
}
},
submitForm() {
this.$refs.form.validate(valid => {
if (valid) {
// 表单验证通过,提交表单
console.log('submit')
} else {
// 表单验证失败
console.log('error submit')
return false
}
})
}
}
}
</script>
```
在上面的代码中,我们给`el-form-item`组件设置了`prop`属性为`xingtai`,这是为了在验证时使用。在`rules`中,我们设置了`xingtai`字段必填,如果该字段为空,则会提示用户选择事故形态。在`submitForm`方法中,我们调用了`this.$refs.form.validate()`方法来进行表单验证,如果验证成功,则可以提交表单,否则会提示用户错误信息。
<el-card shadow="never"> <el-divider content-position="left"><h3>创建&编辑邮件模板</h3></el-divider> <el-form label-position="top"> <el-form-item label="邮件名称" prop="name" style="width: 200px"> <el-input v-model="modeData.name"></el-input> </el-form-item> <el-form-item label="模板名称" prop="subject" style="width: 200px"> <el-input v-model="modeData.subject"></el-input> </el-form-item> <el-form-item label="语言" prop="language"> <el-select v-model="modeData.language" placeholder="请选择"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> <el-form-item label="启动/禁用" prop="enable"> <el-switch v-model="modeData.enable" active-text="禁用" inactive-text="启动"> </el-switch> </el-form-item> <el-form-item label="模板配置" prop="value"> <PiEditor v-model="modeData.value" placeholder="请输入" :height="400" /> </el-form-item> <el-button @click="onSubmit">保存</el-button> </el-form> </el-card>请为这段代码布局
可以使用以下代码布局:
```
<template>
<el-card shadow="never">
<el-divider content-position="left">
<h3>创建&编辑邮件模板</h3>
</el-divider>
<el-form label-position="top">
<el-form-item label="邮件名称" prop="name">
<el-input v-model="modeData.name" style="width: 200px" />
</el-form-item>
<el-form-item label="模板名称" prop="subject">
<el-input v-model="modeData.subject" style="width: 200px" />
</el-form-item>
<el-form-item label="语言" prop="language">
<el-select v-model="modeData.language" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="启动/禁用" prop="enable">
<el-switch v-model="modeData.enable" active-text="禁用" inactive-text="启动" />
</el-form-item>
<el-form-item label="模板配置" prop="value">
<PiEditor v-model="modeData.value" placeholder="请输入" :height="400" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-form>
</el-card>
</template>
```
这样可以使表单更加美观,且易于使用。
阅读全文