element tree 初始化 表單驗證初始化

問題:

使用this.$ref['form'] .resetFields()無法重置表單項

原因:

1.沒有給表單添加ref屬性 (且名字不能和 :model="addForm" 名字重復(fù) 否則不起作用 )
2.表單項el-form-item沒有添加prop屬性,prop屬性需要與input框綁定的屬性一致

<el-form :model="addForm" label-width="100px" :rules="addFormResource" ref="addForm1">
         <el-row :gutter="10">
           <el-col :span="12">
             <!-- <el-row>
               <el-col :span="24">
                 <div class="grid-content bg-purple">
                   <el-form-item label="用戶名" prop="account">
                     <div class="input-tpm blue-input">
                       <i class="honer-left"></i>
                       <el-input placeholder v-model="addForm.account"></el-input>
                       <i class="honer-right"></i>
                     </div>
                   </el-form-item>
                 </div>
               </el-col>
             </el-row> -->
             <el-row>
               <el-col :span="24">
                 <div class="grid-content bg-purple-light">
                   <el-form-item label="姓名" prop="name">
                     <div class="input-tpm blue-input">
                       <i class="honer-left"></i>
                       <el-input placeholder v-model="addForm.name"></el-input>
                       <i class="honer-right"></i>
                     </div>
                   </el-form-item>
                 </div>
               </el-col>
             </el-row>
           </el-col>
           <el-col :span="12">
             <div style="font-size: 14px;">部門選擇</div>
             <div style="height: 250px;overflow: auto">
               <el-tree
                 size="small"
                 show-checkbox
                 :data="treeData"
                 node-key="id"
                 :check-strictly="true"
                 :props="props"
                 @check-change="checkChange"

                 ref="depTree"
               ></el-tree>
             </div>
           </el-col>
         </el-row>
       </el-form>

3.data 類型

data() {
      var checkUname = (rule, value, callback) => {
        var regx = /^[a-zA-Z0-9_]{4,16}$/;
        if (value == "") {
          callback(new Error("請輸入用戶名"));
        } else if (!regx.test(value)) {
          callback(new Error("用戶名必須是4~6位數(shù)字、字母或下劃線"));
        } else {
          callback();
        }
      };
   
      // 真實姓名校驗
      var validatePass = (rule, value, callback) => {
        if (value === '') {
          callback(new Error('請輸入姓名'));
        } else {
          if (this.LoginorgCode == '') {
            callback(new Error('請先選擇部門再填寫姓名'));
          } else {
            /*api.getBeyLoginName({
              realName: value,
              orgCode: this.LoginorgCode
            }).then(res => {
              console.log("res", res)
              if (res.code == 'code_200') {
                this.nameSeq = res.data.nameSeq;
                callback(new Error("該用戶名已存在請用" + res.data.loginAlias + "登錄"));
              } else {
                callback();
              }
            });
          */

          }
        }
      };
 
      return {
     
        treeData:[
        {
          id: 1,
          label: "品牌一",
          children: [
            {
              id: 4,
              label: "華東區(qū)域",
              children: [
                {
                  id: 9,
                  label: "上海"
                },
                {
                  id: 10,
                  label: "昆山"
                }
              ]
            }
          ]
        },
        {
          id: 2,
          label: "品牌二",
          children: [
            {
              id: 5,
              label: "華東區(qū)域"
            },
            {
              id: 6,
              label: "華南區(qū)域"
            }
          ]
        },
        {
          id: 3,
          label: "品牌三",
          children: [
            {
              id: 7,
              label: "華北區(qū)域"
            },
            {
              id: 8,
              label: "華南區(qū)域"
            }
          ]
        }
      ],
        props: {
          label: "departmentName",
          children: "children"
        },
   
        // 編輯相關(guān)數(shù)據(jù)
        addFormResource: {
          account: [{required: true, validator: checkUname, trigger: "blur"}],
   
          name: [{required: true, validator: validatePass, trigger: 'blur'}]
          
        },
        // 添加綁定的數(shù)據(jù)
        addForm: {
          // account: "",
          departmentId: "",
          departmentPid: "",
          name: "",
          flag: "1",
          phone: "",
          userRoleIds: "",
          roles: "",
          policeNumber: '',
          loginAlias: ''
        },
        //按鈕權(quán)限
        btnShow: {
          insertUserAndRoleInfo: 0,
          selectById: 0,
          updateUserInfo: 0, //修改
          updateUserUsingUserByIds: 0, //啟用用戶
          updateUserForbidByIds: 0 //禁用用戶
        },
        
        treeId: "",
        depList: [],
        isAddTree: false
      };
    },

4.調(diào)用方法

this.refs.addForm1.resetFields() //注意 addForm1 (且名字不能和 :model="addForm" 名字重復(fù) 否則不起作用 ) this.refs.depTree.setCheckedKeys([]); // 注意點擊事件影響

@node-click="nodeClick"
@check-change="checkChange"

可能會對 tree 值產(chǎn)生影響 使,重置無效

// 取消
      cancleDialog(type) {
        var self = this;
        //self.$refs["addForm"].resetFields(); //清空\
        console.log(self.$refs,"this.$refs");
        this.$nextTick(()=>{
          this.$refs.addForm1.resetFields() //注意 addForm1 
        });

        //self.$refs.depTree.$children[0].setCheckedKeys([]);
        self.isAddTree = true;
        if(self.isAddTree){
          self.$refs.depTree.setCheckedKeys([]); // 注意點擊事件影響
          self.isAddTree = false
        }
        console.log(self.$refs.depTree.$children[0],"sdfsfsdfsdfsdfsdf")
        //self.$refs.depTreebj.setCheckedKeys([]);
        //self.$refs.depTreeck.setCheckedKeys([]);

      
      },
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容