UNPKG

crud-up

Version:

基于el-plus-crud上做细微修改以适配新的依赖特性 原版请见https://github.com/KDJack/el-plus-crud

57 lines (47 loc) 1.91 kB
import { App } from 'vue' import components from './components-list' import ElPlusForm from './components/el-plus-form/ElPlusForm.vue' import ElPlusFormDialog from './components/el-plus-form/ElPlusFormDialog.vue' import ElPlusFormGroup from './components/el-plus-form/ElPlusFormGroup.vue' import ElPlusTable from './components/el-plus-table/ElPlusTable.vue' import defaultConf from './config' import * as all from '../types' import { cloneDeep, debounce } from 'lodash-es' export default { install: (app: App, config?: all.ICRUDConfig, format?: { [key: string]: Function }, globalData?: { [key: string]: Function }) => { // 合并配置 deepMerge(defaultConf, config || {}) defaultConf.debug && console.log('initConfig: ', defaultConf) // 这里注入format对象 app.provide('format', format) app.provide('globalData', globalData) // 这里注入defaultConf app.provide('defaultConf', defaultConf) // 这里注入lodash app.provide('lodash', { cloneDeep, debounce }) // 循环注册表单组件 components.unshift(ElPlusForm) components.unshift(ElPlusFormDialog) components.unshift(ElPlusFormGroup) // 注册列表组件 components.push(ElPlusTable) defaultConf.debug && console.log('components: ', components) components.map((component: any) => { app.component(component.name, component) }) } } /** * 深度合并对象 * @param obj1 * @param obj2 * @returns */ function deepMerge(obj1: any, obj2: any) { let key for (key in obj2) { // 如果target(也就是obj1[key])存在,且是对象的话再去调用deepMerge,否则就是obj1[key]里面没这个对象,需要与obj2[key]合并 obj1[key] = obj1[key] && obj1[key].toString() === '[object Object]' ? deepMerge(obj1[key], obj2[key]) : (obj1[key] = obj2[key]) } return obj1 }