import { reactive } from "vue"; /** * BasisTable组件默认配置 * @param { Boolean } selection 多选项配置 * @param { Boolean } batch_delete 指量删除按钮 * @param { Boolean } pagination 分页 */ export function configHook(){ const config = reactive({ selection: true, batch_delete: true, pagination: true, request: true, search: true, action_request: false, row_key: "id", expand_all: true, has_button_delete: "", has_button_batch_delete: "" }) /** * * @param {*} data 配置额外组件,true显示,false不显示 */ const configInit = (data = {}) => { // 无数据时不执行 if(JSON.stringify(data) === "{}") { return false; } // 获取默认配置项的所有key const keys = Object.keys(config); // 循环传入的配置项 for(let key in data) { // 过滤原型链的对象 if (!data.hasOwnProperty(key)) { continue; } // ES6语法判断传入的key和默认配置的key相同时,则直接更新默认配置项的值 if(keys.includes(key)) { config[key] = data[key]; } } } return { config, configInit }; }