/* * @Author: 陶秋峰 * @Date: 2015-12-26 11:38:57 * @Last Modified by: 陶秋峰 * @Last Modified time: 2015-12-26 11:39:32 * @CopyRight 蛮蛮工作室 */ // import * as has from 'dojo/has'; import {Hash} from './interfaces'; import Data, {IParam, IData_def} from './data'; import {IView_def} from './view'; export interface IPV{ dts_def: IData_def[]; views_def: IView_def[]; } export default class Base{ protected pv: IPV; protected dts: Hash = {}; protected build_dts(defs: IData_def[]) { let dts_def = defs || []; dts_def.forEach((data_def)=>{ this.dts[data_def.name] = new Data(data_def); }); } // // 自动加载view数据 // _init_views_data() { // let me: mmstudio.Base = this; // let views = me.compntDefin && me.compntDefin.views; // let d = new Deferred(); // if (!views) { // d.resolve({}); // return d.promise; // } // let p: feidao.Promise[] = []; // let get_params = function(view_name: string, p_params: feidao.data.params) { // let my_params = me.get_params(view_name); // if (!p_params) { // return my_params.get_params(); // } // // my_params.reset(); // let field: string; // let search = p_params.search || {}; // for (field in search) { // if (search.hasOwnProperty(field)) { // my_params.add_param(field, search[field]); // } // } // let sort = p_params.sort || {}; // for (field in sort) { // if (search.hasOwnProperty(field)) { // let asc = sort[field]; // if (asc === 'asc' || asc === 'ASC') { // asc = true; // } else if (asc === 'desc' || asc === 'DESC') { // asc = false; // } // my_params.add_sort(field, !!asc); // } // } // p_params.pagesize != undefined && my_params.set_paging_size(p_params.pagesize); // p_params.pageindex != undefined && my_params.chang_paging_index(p_params.pageindex); // return my_params.get_params(); // }; // array.forEach(views, function(view_setting) { // let view: mmstudio.View; // if (view_setting && view_setting.loaddata) { // view = me.get_view(view_setting.viewname); // if (view) { // p.push(view.refresh_data(get_params(view_setting.viewname, view_setting.conditions), view_setting.loaddata === 2)); // me.clear_params(view_setting.viewname); // } // } else if (view_setting && view_setting.editable) { // view = me.get_view(view_setting.viewname); // view.init_empty_data(); // } // }); // return all(p); // }, // /** // * 新增视图 // * @access protected // * @param {object} p_view 视图 // */ // add_view(p_view: mmstudio.View) { // if (!p_view) { // console.error('view is null'); // return; // } // if (this.get_view(p_view.get_name())) { // console.warn('view exists'); // } // this._rt.views[p_view.get_name()] = p_view; // }, // /** // * 根据名称获取视图 // * @access public // * @param {string?} p_view_name 视图名称,如果为空则以数组形式返回所有视图对象 // * @returns {feidao/core/view} 返回视图对象 // */ // get_view(p_view_name) { // if (lang.isObject(p_view_name) && p_view_name !== null) { // return p_view_name; // } // else if (lang.isString(p_view_name)) { // return this._rt.views[p_view_name]; // } else { // return this.get_views(); // } // }, // //获取所有视图对象数组 // get_views() { // let vs = []; // if (this._rt && this._rt.views) { // let views = this._rt.views; // for (let view_name in views) { // vs.push(this._rt.views[view_name]); // } // } // return vs; // }, // /** // * 根据名称(和视图名称)获取block // * @param {string} [p_view_name] 视图名称 // * @param {(string|undefined)} p_block_name Block名称 // * @return {feidao/core/block} 返回block对象 // */ // get_block(p_view_name, p_block_name) { // let me: mmstudio.base = this; // if (!p_block_name) { // p_block_name = p_view_name; // p_view_name = null; // let views = me.get_views(); // let block: mmstudio.block; // array.some(views, function(view) { // block = view.get_block(p_block_name); // return !!block; // }); // return block; // } // else { // let v = me.get_view(p_view_name); // if (v) { // return v.get_block(p_block_name); // } // } // }, // /** // * 组件初始化事件 // */ // onBeforeInit(d: dojo.Deferred) { // d.resolve({}); // }, // /** // * 组件初始化后事件 // */ // onAfterInit(d: dojo.Deferred) { // d.resolve({}); // }, // onview_data_load(view_name: string) { }, // onerror(err: any) { }, // /** // * 组件完全初始化后事件,如:在onAfterInit中有异步事件 // */ // onReady() { } // }); // }); }