@zhsz/cool-design-crud
Version:
102 lines (101 loc) • 2.5 kB
JavaScript
"use strict";
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const vue = require("vue");
const merge = require("merge");
const helper = require("./helper.js");
const mitt = require("../../utils/mitt.js");
const index$1 = require("../../utils/index.js");
const emitter = require("../../emitter.js");
require("../../utils/test.js");
const core = require("../../hooks/core.js");
require("@formily/core");
require("lodash-es");
require("../../hooks/table.js");
const cloneDeep = require("clone-deep");
const index = /* @__PURE__ */ vue.defineComponent({
name: "cl-crud",
props: {
/** Crud 组件唯一ID */
name: String,
/** 接口对象 */
service: Object,
/** 权限 */
permission: Object,
/** 字典 */
dict: Object,
/** 监听刷新事件 */
onRefresh: Function,
/** 监听删除事件 */
onDelete: Function,
/** 是否有边框 */
border: Boolean,
/** 内间距 */
padding: {
type: String,
default: "10px"
}
},
setup(props, {
slots,
expose
}) {
const {
uid
} = vue.getCurrentInstance();
const config = vue.reactive(index$1.mergeConfig(vue.inject("useCrud__options") || {}));
const mitt$1 = new mitt.default(uid);
const {
dict,
permission
} = core.useGlobal();
const crud = vue.reactive(index$1.deepMerge({
id: props.name || uid,
// 绑定的路由地址
routePath: location.pathname || "/",
// 表格配置
table: {
headerMenu: true,
contextMenu: true,
border: true
},
// 表格加载状态
loading: false,
// 表格已选列
selection: [],
// 请求参数
params: {
page: 1,
size: 10
},
// 请求服务
service: {},
// 字典
dict: {},
// 权限
permission: {}
}, cloneDeep({
dict,
permission
})));
emitter.crudList.push(merge.merge(crud, helper.useHelper({
mitt: mitt$1,
config,
crud
})));
vue.provide("crud", crud);
vue.provide("mitt", mitt$1);
expose(crud);
return () => {
var _a;
return vue.createVNode("div", {
"class": ["cl-crud", {
"is-border": props.border
}],
"style": {
padding: props.padding
}
}, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
};
}
});
exports.default = index;