三期复盘总结

el-checkbox

遇到好几次不同需求,处理的方式都不同. 如果采用 v-for 循环的话 可以直接免对数据项做处理,否则就要自己处理 checkbox 的数据.

// 1. 自己操作
  <el-form-item label="接入方式:"  class="radio-form-item" v-if="ruleForm.gameTypeSelect === 0">
    <el-checkbox-group v-model="checkList" @change="handleCheckedCitiesChange">
      <el-checkbox  @click.native.prevent="clickItem('supportNetGame')" label="supportNetGame">网游 sdk</el-checkbox>
      <el-checkbox @click.native.prevent="clickItem('supportSingleGame')" label="supportSingleGame">单机 sdk</el-checkbox>
    </el-checkbox-group>
  </el-form-item>

clickItem(e) {
  // 获取到 e ,如果有 arr 里面有 e 则去掉
  let arr = this.checkList;
  const arr2 = ['supportNetGame', 'supportSingleGame'];

  if (arr.includes(e)) {
      arr = arr2.filter(i => i !== e);
      this.checkList = [...arr]
  } else {
    // 不存在
    this.checkList.push(e)
  }

// 2. 无需操作
<el-form-item label="接入方式:"  class="radio-form-item" v-if="ruleForm.appType == '1'">
  <el-checkbox-group v-model="checkList" @change="handleCheckedCitiesChange">
      <el-checkbox v-for="item in accessTypeList" :label="item.value" :key="item.value">{{item.label}}</el-checkbox>
  </el-checkbox-group>
</el-form-item>

handleCheckedCitiesChange(e) {
  console.log('e: ', e);
},

时间戳处理

默认情况下得到的是时间戳, 我们可以将其 xxxx-xx-xx,在统一进行比较.

表单验证

针对层级嵌套比较深 Form 表单采用单个 input 框处理,在提交的时候可以在进行一次验证

el-radio-group

label 放入的数字 对应为 string 类型, :label 则为 number 类型.在做校验的时候可能会报错.所以我们要转换一下

form 表单 时间戳,做空判断

最后更新于

这有帮助吗?