tav-ui
Version:
82 lines (77 loc) • 3 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var antDesignVue = require('ant-design-vue');
var constants$1 = require('../constants2.js');
var useProps = require('../hooks/use-props2.js');
var constants = require('./constants2.js');
var types = require('./types2.js');
var pluginVue_exportHelper = require('../../../../../_virtual/plugin-vue_export-helper.js');
const __default__ = {
name: "TaTablePermissionDataQuery"
};
function setup(__props, { expose }) {
const props = __props;
const id = vue.ref(constants.DEFAULT_TABLEPERMISSIONDATAQUERY_ID());
const type = vue.ref(constants.DEFAULT_TABLEPERMISSIONDATAQUERY_CLASSNAME);
const attrs = vue.useAttrs();
const mergedProps = useProps.useMergedProps(props, "TaTablePermissionDataQuery", constants$1.DEFAULT_APIPARAMS);
const permissionContent = vue.ref();
const isUseApi = vue.computed(() => mergedProps.value.apiParams && mergedProps.value.apiPermissionData);
const loading = vue.ref(false);
async function handlePermission() {
if (mergedProps.value.disabled)
return;
if (isUseApi.value) {
permissionContent.value = {
apiParams: mergedProps.value.apiParams,
apiPermissionData: mergedProps.value.apiPermissionData
};
}
}
vue.onBeforeMount(async () => {
if (props.immediate) {
await handlePermission();
}
});
vue.watch(() => JSON.stringify(mergedProps.value.apiParams), async (curVal, preVal) => {
if (curVal && curVal !== "{}" && curVal !== preVal) {
if (props.immediate) {
await handlePermission();
}
}
});
const permissionsContext = vue.inject(constants$1.permissionsContextKey, void 0);
const context = vue.reactive({
id,
type,
disabled: mergedProps.value.disabled,
permission: permissionContent
});
vue.onMounted(() => {
permissionsContext?.addPermission(context);
});
vue.onBeforeUnmount(() => {
permissionsContext?.removePermission(context);
});
vue.provide(constants$1.permissionContextKey, context);
expose({
id,
permissionContext: context
});
return (_ctx, _cache) => {
return loading.value ? (vue.openBlock(), vue.createBlock(vue.unref(antDesignVue.Spin), {
key: 0,
size: "large",
tip: "\u6B63\u5728\u52A0\u8F7D\u6743\u9650\uFF0C\u8BF7\u7A0D\u7B49 \u{1F47E}"
})) : vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.mergeProps({ key: 1 }, { ...vue.unref(mergedProps).value, ...vue.unref(attrs), permission: permissionContent.value })));
};
}
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
...__default__,
props: types.tablePermissionDataQueryProps,
setup
});
var TablePermissionDataQuery = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "/home/runner/work/tav-ui/tav-ui/packages/components/permission/src/TablePermissionDataQuery/index.vue"]]);
exports["default"] = TablePermissionDataQuery;
//# sourceMappingURL=index2.js.map