//增加(Create)、检索(Retrieve)、更新(Update)和删除(Delete) /* jshint esversion: 11 */ import { config, method, HOOK } from './config'; import { mergeOptions } from '@/utils/utils'; /** * CRUD 的基础配置 * * @param {*} options 选择 */ function CRUD(options = {}) { const defaultOptions = config.defaultOptions; //合并用户配置参数信息 options = mergeOptions(defaultOptions, options); //data为系统视图配置(一般不做整合)-对象合并 const crud = Object.assign(options, config.data); // 附加方法 CRUD操作执行方法 Object.assign(crud, method); // 冻结处理(使得配置信息不可修改) Object.freeze(crud); return crud; } /** * CRUD的配置参数 * @param {*} options 配置参数 * @returns */ function crudConfig(options = {}) { //合并传入过来的参数 const crud = CRUD({}); return { data() { return { crud }; }, beforeRefresh() { //创建前 this.crud.registerVM(options.type, this); }, destroy() { //销毁 this.crud.unregisterVM(options.type, this); } }; } /** * CRUD钩子 */ CRUD.HOOK = HOOK; /** * CRUD状态 */ CRUD.STATUS = { NORMAL: 0, //正常 PREPARED: 1, //准备好的 PROCESSING: 2 //处理好的 }; export default CRUD; export { crudConfig };