1 说明

  对原先的一个表单编辑功能进行修改,有两个选择框从非必填变为必填。

  修改完成后,去编辑的时候有时候就会出问题,明明选择了值,却还是出现非空提示

 

2 代码

  其中,机构部门和是否是负责人从非必填变为必填了

 <el-dialog :title="dialogTitle" :visible.sync="dialogAddVisible" width="600px" @close="reset">
                <el-form :model="tableForm"  ref="tableForm" :rules="tableRules"  label-width="160px">
                    <el-form-item label="名称" prop="positionname" >
                        <el-input v-model="tableForm.positionname" style="width:90%"></el-input>
                    </el-form-item>

                    <el-form-item label="本级排序" prop="sortno" >
                        <el-input v-model="tableForm.sortno" style="width:90%"></el-input>
                    </el-form-item>

                    <el-form-item label="机构部门" prop="orgidseq" >
                        <el-cascader :options="orgnizationlist"   v-model="tableForm.orgidseq" :show-all-levels="false" style="width:90%"></el-cascader>
                    </el-form-item>

                    <el-form-item label="上级岗位" prop="parentId" >
                        <el-select v-model="tableForm.parentId" clearable filterable placeholder="请选择" style="width:90%">
                            <el-option
                            v-for="item in keyList"
                            :key="item.value"
                            :label="item.name"
                            :value="item.value">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <el-form-item label="是否是负责人" prop="feild2" >
                        <dx-select codeType="boolean"  v-model="tableForm.feild2" clearable style="width:90%"></dx-select>
                    </el-form-item>
                    <el-form-item label="备注" prop="remark">
                        <el-input v-model="tableForm.remark" style="width:90%"></el-input>
                    </el-form-item>

                </el-form>
                <div slot="footer" class="dialog-footer">
                    <el-button type="primary"  @click="saveAddForm">确 定</el-button>
                    <el-button @click="reset">取 消</el-button>
                </div>
            </el-dialog>

校验规则

         tableRules:{
                positionname:[{required: true, message: '请输入'}],
                sortno:[{required: true, message: '请输入'}],
                orgidseq:[{required: true, message: '请选择', trigger: 'change'}],
                feild2:[{required: true, message: '请选择', trigger: 'change'}],
            },

 

3 问题

  不明白为什么,整了半天,各种尝试,最后终于好了

  
1)原先的赋值代码
  点击编辑的时候去赋值回显表单
  feild2 和 orgidseq 如果为空字符串或者空数组的话就会有问题
edit(row){
            this.tableForm = {} // 设为空
            this.dialogAddVisible = true
            this.dialogTitle = '编辑'
            this.tableForm.id = row.id
            this.tableForm.positionname = row.positionname
            this.tableForm.sortno = row.sortno
            this.tableForm.parentId = row.parentId
            this.tableForm.remark = row.remarkthis.tableForm.feild2 = row.feild2
this.tableForm.orgidseq = row.orgidseq
            
            

            console.log('编辑this.tableForm',this.tableForm)

        },

 

  2)修改后

feild2 和 orgidseq存在值才赋值
edit(row){
            this.tableForm = {}
            this.dialogAddVisible = true
            this.dialogTitle = '编辑'
            this.tableForm.id = row.id
            this.tableForm.positionname = row.positionname
            this.tableForm.sortno = row.sortno
            this.tableForm.parentId = row.parentId
            this.tableForm.remark = row.remark
            if(row.feild2){
                this.tableForm.feild2 = row.feild2
            }
            if(row.orgidseq){
                this.tableForm.orgidseq = row.orgidseq
            }
            

            console.log('编辑this.tableForm',this.tableForm)

        },