WebApp【公共组件库】@前端(For Git Submodule)
Tevin
2020-12-24 5510f41e111068a91bbba1ade732c920bb67f248
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];
            }