项目中的编辑问题

因为项目中有很多功能,都是通过id获取,所以遇到了坑
一、如图所示,下拉框显示id或者空白
在这里插入图片描述

解决后的,主要问题出在 ‘:value="item.unid"‘这里  原来给的是和key值一致导致内容无法显示
<el-form-item label="教室" prop="classroom_id">
                    <el-select v-model="addClassForm.classroom_id" placeholder="请选择教室" clearable filterable allow-create default-first-option>
                      <el-option v-for="(item,i) in classroomShuzu" :key="i" :label="item.classroom_name" :value="item.unid" />
                    </el-select>
                </el-form-item>

二、修改学期时,发现时间不随学期变化
修改之前
在这里插入图片描述
修改之后
在这里插入图片描述
对比发现时间没有变化
解决办法:

HTML
<el-form-item label="学期" prop="semester_id">
                    <el-select v-model="addClassForm.semester_id" placeholder="请选择学期" clearable filterable allow-create default-first-option @change="Selectxueqi">
                      <el-option v-for="(item,i) in semeteShuzu" :key="i" :label="item.semester_name" :value="item.unid" />
                    </el-select>
                </el-form-item>
js
// 通过学期获取时间
        Selectxueqi(){
          const rs = this.semeteShuzu.find(item => item.unid === this.addClassForm.semester_id)
            this.addClassForm.begin_time = rs.start_time
            this.addClassForm.end_time = rs.end_time
        },

最终效果图:可以看到时间不同
在这里插入图片描述在这里插入图片描述

三、当添加和修改即所谓的编辑使用同一个弹框时,修改数据后,点击添加数据仍然存在,并没有随着确定或者取消按钮清空下拉框`
原因:点击编辑 再点击添加,这时候数据已经赋值了, 所以this.$refs[formName].resetFields(),无法把数据重置为空[] 这肯定不是我们想要的结果
解决办法:验证数据时添加change事件 例如:

 day: [{
                    required: true,
                    message: '请输入日期',
                    //在此处添加change
                    **trigger: 'blur,change' ,**
                }],
还有一种办法就是:通过循环,把form 里面的每个属性值清空,这样打开就会变成一个空的表单了
/添加用户
addBtn(){
  this.dialogVisible=true
  this.messages="添加";
  this.isEditStreet=false
  this.$nextTick(function(){
    this.$refs['form'].clearValidate()
  })
  //这里是使用for in 循环的方法来清空
  for(let key in this.form){
    this.form[key]=""
  }
},

四、当两个添加页面选择同一个字段时,名字无法渲染
如图所示:在这里插入图片描述

新增弹框中的教室 v-model="addClassForm.classroom_id双向绑定是addclassForm
<el-form-item label="教室" prop="classroom_id">
                    <el-select v-model="addClassForm.classroom_id" placeholder="请选择教室" clearable filterable allow-create default-first-option>
                      <el-option v-for="(item,i) in classroomShuzu" :key="i" :label="item.classroom_name" :value="item.unid" />
                    </el-select>
                </el-form-item>
新增嵌套上课时间弹框的教室 v-model="addDateForm.classroom_id双向绑定是addDateForm
<el-form-item label="教室" prop="classroom_id">
                    <el-select v-model="addDateForm.classroom_id" placeholder="请选择教室" clearable filterable allow-create default-first-option>
                      <el-option v-for="(item,i) in classroomShuzu" :key="i" :label="item.classroom_name" :value="item.unid" />
                    </el-select>
                </el-form-item>              

原因:因为双向绑定不一样,所以无法一致,但是当他们的双向绑定一致时,发现上课时间的表单如图所示,没有渲染
解决办法:谁有解决办法可以发出来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值