From e9c68ca4e38d720fe6e9a1fd4c0e5b85bfbca21a Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Mon, 25 Jan 2021 21:07:01 +0800 Subject: [PATCH] 表单预验证的项,改由指定字段决定 --- bases/Pilot.js | 24 +++++++++++++++++++++--- 1 files changed, 21 insertions(+), 3 deletions(-) diff --git a/bases/Pilot.js b/bases/Pilot.js index a8fc753..c92522b 100644 --- a/bases/Pilot.js +++ b/bases/Pilot.js @@ -12,16 +12,34 @@ return {}; } - createOptions() { + createOptions(dataAdd) { const options = { methods: {}, }; - Object.getOwnPropertyNames(Object.getPrototypeOf(this)).forEach(name => { + const names = []; + // 实例本身的字段 + Object.getOwnPropertyNames(this).forEach(name => names.push(name)); + // 类的字段 + Object.getOwnPropertyNames(Object.getPrototypeOf(this)).forEach(name => names.push(name)); + // 传递 + names.forEach(name => { + // 构造器忽略,如果存在属性 $methods 也忽略 if (name === 'constructor' || name === '$methods') { return; } if (/^\$/.test(name)) { - options[name.replace('$', '')] = this[name]; + if (name === '$data' && typeof dataAdd !== 'undefined') { + // 当有传data值进来,初始值必须带data中的字段 + const dataOrig = this.$data(); + options.data = () => { + return { + ...dataOrig, + ...dataAdd, + } + } + } else { + options[name.replace('$', '')] = this[name]; + } } else { options.methods[name] = this[name]; } -- Gitblit v1.9.1