<el-form ref="taskDictForm" :model="taskDictForm" label-width="120px" :rules="taskDictFormRules" > <el-form-item label="任务参数" prop="taskParm"> <el-input type="textarea" :rows="3" size="mini" style=" 90%;" v-model="taskDictForm.taskParm" placeholder="JSON格式" ></el-input> </el-form-item> </el-form>
editTaskDict(row) { this.taskDictForm = row if (row.taskParm) { try { let taskParm = JSON.parse(row.taskParm) this.taskDictForm.taskParm = JSON.stringify(taskParm, null, 4) } catch (err) {} } this.taskDictDialog = true }
展示出来就会是这样的:
其中提交的时候保证存入数据库的是json格式的,加了rules校验
出错了也要 callback 不然提交的时候返回的一直是false
var validateJSON = (rule, value, callback) => { if (value) { try { JSON.parse(value) } catch (err) { callback(new Error('任务参数JSON格式有误')) } callback() } }
taskDictFormRules: { taskParm: [{ validator: validateJSON, trigger: 'blur' }] }