qidian-vue-ui 1.1.19 → 1.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/avatar/index.d.ts +2 -0
- package/dist/components/avatar/index.vue.d.ts +17 -0
- package/dist/components/avatar/index.vue.mjs +8 -0
- package/dist/components/avatar/index.vue.mjs.map +1 -0
- package/dist/components/avatar/index.vue2.mjs +107 -0
- package/dist/components/avatar/index.vue2.mjs.map +1 -0
- package/dist/components/avatar/props.d.ts +5 -0
- package/dist/components/avatar/props.mjs +11 -0
- package/dist/components/avatar/props.mjs.map +1 -0
- package/dist/components/avatar/types.d.ts +9 -0
- package/dist/components/config-provider/config.d.ts +1 -0
- package/dist/components/config-provider/config.mjs +2 -0
- package/dist/components/config-provider/config.mjs.map +1 -1
- package/dist/components/config-provider/index.d.ts +15 -12
- package/dist/components/config-provider/index.mjs +17 -6
- package/dist/components/config-provider/index.mjs.map +1 -1
- package/dist/components/config-provider/types.d.ts +4 -2
- package/dist/components/crud/list.vue2.mjs +3 -0
- package/dist/components/crud/list.vue2.mjs.map +1 -1
- package/dist/components/crud/props.d.ts +2 -0
- package/dist/components/crud/table.vue2.mjs +3 -0
- package/dist/components/crud/table.vue2.mjs.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/service/list.vue.mjs +1 -1
- package/dist/components/service/list.vue2.mjs +10 -1
- package/dist/components/service/list.vue2.mjs.map +1 -1
- package/dist/components/service/props.d.ts +2 -0
- package/dist/components/service/props.mjs +4 -2
- package/dist/components/service/props.mjs.map +1 -1
- package/dist/components/service/table.vue.mjs +1 -1
- package/dist/components/service/table.vue2.mjs +19 -1
- package/dist/components/service/table.vue2.mjs.map +1 -1
- package/dist/components/service/types.d.ts +2 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useAgentChat/index.d.ts +1 -1
- package/dist/hooks/useAgentChat/index.mjs.map +1 -1
- package/dist/hooks/useDict/index.d.ts +1 -1
- package/dist/hooks/useDict/index.mjs.map +1 -1
- package/dist/hooks/useUserAvatar/index.d.ts +5 -0
- package/dist/hooks/useUserAvatar/index.mjs +38 -0
- package/dist/hooks/useUserAvatar/index.mjs.map +1 -0
- package/dist/hooks/useUserAvatar/types.d.ts +3 -0
- package/dist/index.mjs +47 -43
- package/dist/index.mjs.map +1 -1
- package/dist/qidian-vue-ui.css +20 -8
- package/package.json +2 -2
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { QdAvatarProps } from './types';
|
|
2
|
+
declare var __VLS_6: string, __VLS_7: any;
|
|
3
|
+
type __VLS_Slots = {} & {
|
|
4
|
+
[K in NonNullable<typeof __VLS_6>]?: (props: typeof __VLS_7) => any;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_component: import("vue").DefineComponent<QdAvatarProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<QdAvatarProps> & Readonly<{}>, {
|
|
7
|
+
hideOnLoadFailed: boolean;
|
|
8
|
+
icon: import("tdesign-vue-next").TNode;
|
|
9
|
+
mode: "ossId" | "url";
|
|
10
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
12
|
+
export default _default;
|
|
13
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
14
|
+
new (): {
|
|
15
|
+
$slots: S;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import _sfc_main from "./index.vue2.mjs";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
4
|
+
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-527dccf6"]]);
|
|
5
|
+
export {
|
|
6
|
+
index as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=index.vue.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { defineComponent, mergeDefaults, inject, computed, ref, watch, resolveDirective, createElementBlock, openBlock, withDirectives, createCommentVNode, createBlock, unref, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps, normalizeClass, toDisplayString } from "vue";
|
|
2
|
+
import { Avatar } from "tdesign-vue-next";
|
|
3
|
+
import { isEmpty, validator, abortWrapper, filterSlots } from "qidian-shared";
|
|
4
|
+
import { qdAvatarProps } from "./props.mjs";
|
|
5
|
+
import { PROVIDE_AVATAR } from "../config-provider/config.mjs";
|
|
6
|
+
import "../../hooks/useAgentChat/index.mjs";
|
|
7
|
+
import "../../locales/zh-CN.mjs";
|
|
8
|
+
import { useUserAvatar } from "../../hooks/useUserAvatar/index.mjs";
|
|
9
|
+
const _hoisted_1 = { class: "qd-avatar" };
|
|
10
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
11
|
+
...{
|
|
12
|
+
name: "QdAvatar"
|
|
13
|
+
},
|
|
14
|
+
__name: "index",
|
|
15
|
+
props: /* @__PURE__ */ mergeDefaults({
|
|
16
|
+
name: {},
|
|
17
|
+
mode: {},
|
|
18
|
+
avatarClassName: {},
|
|
19
|
+
nameClassName: {},
|
|
20
|
+
image: {},
|
|
21
|
+
alt: {},
|
|
22
|
+
content: {},
|
|
23
|
+
default: {},
|
|
24
|
+
hideOnLoadFailed: { type: Boolean },
|
|
25
|
+
icon: {},
|
|
26
|
+
imageProps: {},
|
|
27
|
+
shape: {},
|
|
28
|
+
size: {},
|
|
29
|
+
onError: { type: Function },
|
|
30
|
+
service: { type: Function }
|
|
31
|
+
}, qdAvatarProps),
|
|
32
|
+
setup(__props) {
|
|
33
|
+
const props = __props;
|
|
34
|
+
const globalAvatarProps = inject(
|
|
35
|
+
PROVIDE_AVATAR,
|
|
36
|
+
computed(() => void 0)
|
|
37
|
+
);
|
|
38
|
+
const { loading, getAvatar } = useUserAvatar();
|
|
39
|
+
let serviceAbort;
|
|
40
|
+
const reImage = ref();
|
|
41
|
+
const reProps = computed(() => {
|
|
42
|
+
const { name, mode, avatarClassName, nameClassName, image, service, ...avatarOptions } = props;
|
|
43
|
+
const reAlt = avatarOptions.alt || name;
|
|
44
|
+
const serviceOptions = { service: service || globalAvatarProps.value?.service };
|
|
45
|
+
return {
|
|
46
|
+
avatarOptions: {
|
|
47
|
+
...avatarOptions,
|
|
48
|
+
alt: reAlt
|
|
49
|
+
},
|
|
50
|
+
serviceOptions,
|
|
51
|
+
name,
|
|
52
|
+
mode,
|
|
53
|
+
avatarClassName,
|
|
54
|
+
nameClassName,
|
|
55
|
+
image
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
watch(
|
|
59
|
+
() => reProps.value.image,
|
|
60
|
+
async (newVal, oldVal) => {
|
|
61
|
+
if (newVal === oldVal) return;
|
|
62
|
+
serviceAbort?.abort?.("abort");
|
|
63
|
+
const { mode, serviceOptions } = reProps.value;
|
|
64
|
+
if (mode === "ossId") {
|
|
65
|
+
const { service } = serviceOptions;
|
|
66
|
+
if (!service || isEmpty(newVal) || validator(newVal, "url")) {
|
|
67
|
+
reImage.value = newVal;
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
serviceAbort = abortWrapper(getAvatar(newVal));
|
|
71
|
+
const res = await serviceAbort;
|
|
72
|
+
reImage.value = res;
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
reImage.value = newVal;
|
|
76
|
+
},
|
|
77
|
+
{ immediate: true }
|
|
78
|
+
);
|
|
79
|
+
return (_ctx, _cache) => {
|
|
80
|
+
const _directive_loading = resolveDirective("loading");
|
|
81
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
82
|
+
withDirectives((openBlock(), createBlock(unref(Avatar), mergeProps({ class: __props.avatarClassName }, reProps.value.avatarOptions, {
|
|
83
|
+
image: typeof reImage.value === "number" ? reImage.value + "" : reImage.value
|
|
84
|
+
}), createSlots({ _: 2 }, [
|
|
85
|
+
renderList(unref(filterSlots)(_ctx.$slots, ["default", "empty"]), (name) => {
|
|
86
|
+
return {
|
|
87
|
+
name,
|
|
88
|
+
fn: withCtx((slotProps) => [
|
|
89
|
+
renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotProps)), void 0, true)
|
|
90
|
+
])
|
|
91
|
+
};
|
|
92
|
+
})
|
|
93
|
+
]), 1040, ["class", "image"])), [
|
|
94
|
+
[_directive_loading, unref(loading)]
|
|
95
|
+
]),
|
|
96
|
+
reProps.value.name ? (openBlock(), createElementBlock("span", {
|
|
97
|
+
key: 0,
|
|
98
|
+
class: normalizeClass(`qd-avatar__name ${__props.nameClassName}`)
|
|
99
|
+
}, toDisplayString(reProps.value.name), 3)) : createCommentVNode("", true)
|
|
100
|
+
]);
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
export {
|
|
105
|
+
_sfc_main as default
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=index.vue2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/avatar/index.vue"],"sourcesContent":["<template>\n <div class=\"qd-avatar\">\n <t-avatar\n v-loading=\"loading\"\n :class=\"avatarClassName\"\n v-bind=\"reProps.avatarOptions\"\n :image=\"typeof reImage === 'number' ? reImage + '' : reImage\"\n >\n <template v-for=\"name in filterSlots($slots, ['default', 'empty'])\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-avatar>\n\n <span v-if=\"reProps.name\" :class=\"`qd-avatar__name ${nameClassName}`\">{{ reProps.name }}</span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import type { QdAvatarProps } from './types'\n import type { AbortWrapperPromise } from 'qidian-shared'\n import { Avatar as TAvatar } from 'tdesign-vue-next'\n import { abortWrapper, filterSlots, isEmpty, validator } from 'qidian-shared'\n import { qdAvatarProps } from './props'\n import { ref, computed, watch, inject } from 'vue'\n import { PROVIDE_AVATAR } from '../config-provider/config'\n import { useUserAvatar } from '../../hooks'\n\n defineOptions({\n name: 'QdAvatar'\n })\n\n const props = withDefaults(defineProps<QdAvatarProps>(), qdAvatarProps)\n\n const globalAvatarProps = inject(\n PROVIDE_AVATAR,\n computed(() => undefined)\n )\n\n const { loading, getAvatar } = useUserAvatar()\n let serviceAbort: AbortWrapperPromise<Awaited<ReturnType<typeof getAvatar>>> | undefined\n\n const reImage = ref<string | number | undefined>()\n const reProps = computed(() => {\n const { name, mode, avatarClassName, nameClassName, image, service, ...avatarOptions } = props\n const reAlt = avatarOptions.alt || name\n const serviceOptions = { service: service || globalAvatarProps.value?.service }\n\n return {\n avatarOptions: {\n ...avatarOptions,\n alt: reAlt\n },\n serviceOptions,\n name,\n mode,\n avatarClassName,\n nameClassName,\n image\n }\n })\n\n watch(\n () => reProps.value.image,\n async (newVal, oldVal) => {\n if (newVal === oldVal) return\n\n serviceAbort?.abort?.('abort')\n const { mode, serviceOptions } = reProps.value\n if (mode === 'ossId') {\n const { service } = serviceOptions\n if (!service || isEmpty(newVal) || validator(newVal, 'url')) {\n reImage.value = newVal\n return\n }\n\n serviceAbort = abortWrapper(getAvatar(newVal))\n const res = await serviceAbort\n reImage.value = res\n return\n }\n\n reImage.value = newVal\n },\n { immediate: true }\n )\n</script>\n\n<style lang=\"less\" scoped>\n .qd-avatar {\n display: inline-flex;\n align-items: center;\n font: var(--td-font-body-medium);\n color: var(--td-text-color-primary);\n\n &__name {\n margin-left: var(--td-comp-margin-s);\n }\n }\n</style>\n"],"names":["_openBlock","_createElementBlock","_createBlock","_unref","TAvatar","_mergeProps","$slots","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BE,UAAM,QAAQ;AAEd,UAAM,oBAAoB;AAAA,MACxB;AAAA,MACA,SAAS,MAAM,MAAS;AAAA,IAAA;AAG1B,UAAM,EAAE,SAAS,UAAA,IAAc,cAAA;AAC/B,QAAI;AAEJ,UAAM,UAAU,IAAA;AAChB,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM,EAAE,MAAM,MAAM,iBAAiB,eAAe,OAAO,SAAS,GAAG,cAAA,IAAkB;AACzF,YAAM,QAAQ,cAAc,OAAO;AACnC,YAAM,iBAAiB,EAAE,SAAS,WAAW,kBAAkB,OAAO,QAAA;AAEtE,aAAO;AAAA,QACL,eAAe;AAAA,UACb,GAAG;AAAA,UACH,KAAK;AAAA,QAAA;AAAA,QAEP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ,CAAC;AAED;AAAA,MACE,MAAM,QAAQ,MAAM;AAAA,MACpB,OAAO,QAAQ,WAAW;AACxB,YAAI,WAAW,OAAQ;AAEvB,sBAAc,QAAQ,OAAO;AAC7B,cAAM,EAAE,MAAM,eAAA,IAAmB,QAAQ;AACzC,YAAI,SAAS,SAAS;AACpB,gBAAM,EAAE,YAAY;AACpB,cAAI,CAAC,WAAW,QAAQ,MAAM,KAAK,UAAU,QAAQ,KAAK,GAAG;AAC3D,oBAAQ,QAAQ;AAChB;AAAA,UACF;AAEA,yBAAe,aAAa,UAAU,MAAM,CAAC;AAC7C,gBAAM,MAAM,MAAM;AAClB,kBAAQ,QAAQ;AAChB;AAAA,QACF;AAEA,gBAAQ,QAAQ;AAAA,MAClB;AAAA,MACA,EAAE,WAAW,KAAA;AAAA,IAAK;;;AAlFpB,aAAAA,UAAA,GAAAC,mBAaM,OAbN,YAaM;AAAA,qCAZJC,YASWC,MAAAC,MAAA,GATXC,WASW,EAPR,OAAO,QAAA,gBAAA,GACA,QAAA,MAAQ,eAAa;AAAA,UAC5B,OAAK,OAAS,QAAA,UAAO,WAAgB,QAAA,aAAe,QAAA;AAAA,QAAA;qBAE5BF,MAAA,WAAA,EAAYG,KAAAA,QAAM,CAAA,WAAA,OAAA,CAAA,GAAA,CAA1B,SAAI;;;cACnB,IAAAC,QAAA,CAD2E,cAAS;AAAA,gBACpFC,WAAwC,KAAA,QAA3B,MAAIC,eAAAC,mBAAU,SAAS,CAAA,GAAA,QAAA,IAAA;AAAA,cAAA;;;;+BAN3BP,MAAA,OAAA,CAAO;AAAA,QAAA;QAUR,QAAA,MAAQ,qBAApBF,mBAA+F,QAAA;AAAA;UAApE,yCAA0B,QAAA,aAAa,EAAA;AAAA,QAAA,GAAOU,gBAAA,QAAA,MAAQ,IAAI,GAAA,CAAA;;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createVNode } from "vue";
|
|
2
|
+
import { UserIcon } from "tdesign-icons-vue-next";
|
|
3
|
+
const qdAvatarProps = {
|
|
4
|
+
hideOnLoadFailed: true,
|
|
5
|
+
icon: () => () => createVNode(UserIcon, null, null),
|
|
6
|
+
mode: "ossId"
|
|
7
|
+
};
|
|
8
|
+
export {
|
|
9
|
+
qdAvatarProps
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=props.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"props.mjs","sources":["../../../src/components/avatar/props.tsx"],"sourcesContent":["import { UserIcon } from 'tdesign-icons-vue-next'\n\nexport const qdAvatarProps = {\n hideOnLoadFailed: true,\n icon: () => () => <UserIcon />,\n mode: 'ossId'\n} as const\n"],"names":["qdAvatarProps","hideOnLoadFailed","icon","_createVNode","UserIcon","mode"],"mappings":";;AAEO,MAAMA,gBAAgB;AAAA,EAC3BC,kBAAkB;AAAA,EAClBC,MAAMA,MAAM,MAAAC,YAAAC,UAAA,MAAA,IAAA;AAAA,EACZC,MAAM;AACR;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TdAvatarProps } from 'tdesign-vue-next';
|
|
2
|
+
import type { QdAvatarBaseOptions } from '../../hooks/useUserAvatar';
|
|
3
|
+
export interface QdAvatarProps extends Omit<TdAvatarProps, 'image'>, QdAvatarBaseOptions {
|
|
4
|
+
name?: string;
|
|
5
|
+
mode?: 'ossId' | 'url';
|
|
6
|
+
avatarClassName?: string;
|
|
7
|
+
nameClassName?: string;
|
|
8
|
+
image?: string | number;
|
|
9
|
+
}
|
|
@@ -3,5 +3,6 @@ import type { QdConfigProviderProps } from './types';
|
|
|
3
3
|
export declare const PROVIDE_USER: InjectionKey<ComputedRef<QdConfigProviderProps['user']>>;
|
|
4
4
|
export declare const PROVIDE_DICT: InjectionKey<ComputedRef<QdConfigProviderProps['dict']>>;
|
|
5
5
|
export declare const PROVIDE_UPLOAD: InjectionKey<ComputedRef<QdConfigProviderProps['upload']>>;
|
|
6
|
+
export declare const PROVIDE_AVATAR: InjectionKey<ComputedRef<QdConfigProviderProps['avatar']>>;
|
|
6
7
|
export declare const PROVIDE_ORG: InjectionKey<ComputedRef<QdConfigProviderProps['org']>>;
|
|
7
8
|
export declare const PROVIDE_GLOBAL_CONFIG: InjectionKey<ComputedRef<NonNullable<QdConfigProviderProps['globalConfig']>>>;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
const PROVIDE_USER = Symbol("QdUser");
|
|
2
2
|
const PROVIDE_DICT = Symbol("QdDict");
|
|
3
3
|
const PROVIDE_UPLOAD = Symbol("QdUpload");
|
|
4
|
+
const PROVIDE_AVATAR = Symbol("QdAvatar");
|
|
4
5
|
const PROVIDE_ORG = Symbol("QdOrg");
|
|
5
6
|
const PROVIDE_GLOBAL_CONFIG = Symbol("QdGlobalConfig");
|
|
6
7
|
export {
|
|
8
|
+
PROVIDE_AVATAR,
|
|
7
9
|
PROVIDE_DICT,
|
|
8
10
|
PROVIDE_GLOBAL_CONFIG,
|
|
9
11
|
PROVIDE_ORG,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.mjs","sources":["../../../src/components/config-provider/config.ts"],"sourcesContent":["import type { ComputedRef, InjectionKey } from 'vue'\nimport type { QdConfigProviderProps } from './types'\n\nexport const PROVIDE_USER: InjectionKey<ComputedRef<QdConfigProviderProps['user']>> =\n Symbol('QdUser')\nexport const PROVIDE_DICT: InjectionKey<ComputedRef<QdConfigProviderProps['dict']>> =\n Symbol('QdDict')\nexport const PROVIDE_UPLOAD: InjectionKey<ComputedRef<QdConfigProviderProps['upload']>> =\n Symbol('QdUpload')\nexport const PROVIDE_ORG: InjectionKey<ComputedRef<QdConfigProviderProps['org']>> =\n Symbol('QdOrg')\nexport const PROVIDE_GLOBAL_CONFIG: InjectionKey<\n ComputedRef<NonNullable<QdConfigProviderProps['globalConfig']>>\n> = Symbol('QdGlobalConfig')\n\n"],"names":[],"mappings":"AAGO,MAAM,eACX,OAAO,QAAQ;AACV,MAAM,eACX,OAAO,QAAQ;AACV,MAAM,iBACX,OAAO,UAAU;AACZ,MAAM,cACX,OAAO,OAAO;AACT,MAAM,wBAET,OAAO,gBAAgB;"}
|
|
1
|
+
{"version":3,"file":"config.mjs","sources":["../../../src/components/config-provider/config.ts"],"sourcesContent":["import type { ComputedRef, InjectionKey } from 'vue'\nimport type { QdConfigProviderProps } from './types'\n\nexport const PROVIDE_USER: InjectionKey<ComputedRef<QdConfigProviderProps['user']>> =\n Symbol('QdUser')\nexport const PROVIDE_DICT: InjectionKey<ComputedRef<QdConfigProviderProps['dict']>> =\n Symbol('QdDict')\nexport const PROVIDE_UPLOAD: InjectionKey<ComputedRef<QdConfigProviderProps['upload']>> =\n Symbol('QdUpload')\nexport const PROVIDE_AVATAR: InjectionKey<ComputedRef<QdConfigProviderProps['avatar']>> =\n Symbol('QdAvatar')\nexport const PROVIDE_ORG: InjectionKey<ComputedRef<QdConfigProviderProps['org']>> =\n Symbol('QdOrg')\nexport const PROVIDE_GLOBAL_CONFIG: InjectionKey<\n ComputedRef<NonNullable<QdConfigProviderProps['globalConfig']>>\n> = Symbol('QdGlobalConfig')\n\n"],"names":[],"mappings":"AAGO,MAAM,eACX,OAAO,QAAQ;AACV,MAAM,eACX,OAAO,QAAQ;AACV,MAAM,iBACX,OAAO,UAAU;AACZ,MAAM,iBACX,OAAO,UAAU;AACZ,MAAM,cACX,OAAO,OAAO;AACT,MAAM,wBAET,OAAO,gBAAgB;"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export declare const QdConfigProvider: import("vue").DefineComponent<{
|
|
2
2
|
locale?: string | undefined;
|
|
3
3
|
user?: import("./types").QdUser | undefined;
|
|
4
|
-
dict?: import("
|
|
4
|
+
dict?: import("../..").QdDictBaseOptions | undefined;
|
|
5
5
|
upload?: Pick<import("..").QdUploadProps, "action" | "headers" | "isBatchUpload" | "method" | "name" | "requestMethod" | "listOssByIds" | "listOssByUrls" | "del"> | undefined;
|
|
6
|
-
|
|
6
|
+
avatar?: import("../..").QdAvatarBaseOptions | undefined;
|
|
7
|
+
agentChat?: Pick<import("../..").UseAgentChatOptions, "getSessionId" | "getUrl"> | undefined;
|
|
7
8
|
org?: {
|
|
8
9
|
search?: Pick<import("..").QdOrgSelectProps, "service" | "transformParams" | "transformRes">;
|
|
9
10
|
select?: Partial<Pick<import("..").QdOrgSelectProps, "type" | "showDeptName" | "showFullDeptPath" | "keys">>;
|
|
@@ -73,9 +74,10 @@ export declare const QdConfigProvider: import("vue").DefineComponent<{
|
|
|
73
74
|
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
74
75
|
locale?: string | undefined;
|
|
75
76
|
user?: import("./types").QdUser | undefined;
|
|
76
|
-
dict?: import("
|
|
77
|
+
dict?: import("../..").QdDictBaseOptions | undefined;
|
|
77
78
|
upload?: Pick<import("..").QdUploadProps, "action" | "headers" | "isBatchUpload" | "method" | "name" | "requestMethod" | "listOssByIds" | "listOssByUrls" | "del"> | undefined;
|
|
78
|
-
|
|
79
|
+
avatar?: import("../..").QdAvatarBaseOptions | undefined;
|
|
80
|
+
agentChat?: Pick<import("../..").UseAgentChatOptions, "getSessionId" | "getUrl"> | undefined;
|
|
79
81
|
org?: {
|
|
80
82
|
search?: Pick<import("..").QdOrgSelectProps, "service" | "transformParams" | "transformRes">;
|
|
81
83
|
select?: Partial<Pick<import("..").QdOrgSelectProps, "type" | "showDeptName" | "showFullDeptPath" | "keys">>;
|
|
@@ -141,14 +143,9 @@ export declare const QdConfigProvider: import("vue").DefineComponent<{
|
|
|
141
143
|
};
|
|
142
144
|
}) | undefined;
|
|
143
145
|
}> & Readonly<{}>, {
|
|
146
|
+
avatar: import("../..").QdAvatarBaseOptions | undefined;
|
|
147
|
+
dict: import("../..").QdDictBaseOptions<import("../..").QdDictItem, unknown, string, string> | undefined;
|
|
144
148
|
locale: string | undefined;
|
|
145
|
-
user: import("./types").QdUser | undefined;
|
|
146
|
-
dict: import("../../hooks/useDict/types").QdDictBaseOptions<import("../..").QdDictItem, unknown, string, string> | undefined;
|
|
147
|
-
upload: Pick<import("..").QdUploadProps<import("tdesign-vue-next").UploadFile, unknown, string | number | (string | number)[], string | number | (string | number)[], unknown, string | string[], string | string[], unknown, string | number | (string | number)[], string | number | (string | number)[]>, "name" | "del" | "action" | "headers" | "isBatchUpload" | "method" | "requestMethod" | "listOssByIds" | "listOssByUrls"> | undefined;
|
|
148
|
-
org: {
|
|
149
|
-
search?: Pick<import("..").QdOrgSelectProps, "service" | "transformParams" | "transformRes">;
|
|
150
|
-
select?: Partial<Pick<import("..").QdOrgSelectProps, "type" | "showDeptName" | "showFullDeptPath" | "keys">>;
|
|
151
|
-
} | undefined;
|
|
152
149
|
globalConfig: {
|
|
153
150
|
loading?: {
|
|
154
151
|
text?: string;
|
|
@@ -209,6 +206,12 @@ export declare const QdConfigProvider: import("vue").DefineComponent<{
|
|
|
209
206
|
adaptiveView?: string;
|
|
210
207
|
};
|
|
211
208
|
} | undefined;
|
|
212
|
-
|
|
209
|
+
upload: Pick<import("..").QdUploadProps<import("tdesign-vue-next").UploadFile, unknown, string | number | (string | number)[], string | number | (string | number)[], unknown, string | string[], string | string[], unknown, string | number | (string | number)[], string | number | (string | number)[]>, "name" | "del" | "action" | "headers" | "isBatchUpload" | "method" | "requestMethod" | "listOssByIds" | "listOssByUrls"> | undefined;
|
|
210
|
+
agentChat: Pick<import("../..").UseAgentChatOptions, "getSessionId" | "getUrl"> | undefined;
|
|
211
|
+
user: import("./types").QdUser | undefined;
|
|
212
|
+
org: {
|
|
213
|
+
search?: Pick<import("..").QdOrgSelectProps, "service" | "transformParams" | "transformRes">;
|
|
214
|
+
select?: Partial<Pick<import("..").QdOrgSelectProps, "type" | "showDeptName" | "showFullDeptPath" | "keys">>;
|
|
215
|
+
} | undefined;
|
|
213
216
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
214
217
|
export type { QdConfigProviderProps } from './types';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, ref, computed, provide, watch, watchEffect, h } from "vue";
|
|
2
2
|
import { ConfigProvider } from "tdesign-vue-next";
|
|
3
3
|
import { to } from "qidian-shared";
|
|
4
|
-
import { PROVIDE_USER, PROVIDE_DICT, PROVIDE_UPLOAD, PROVIDE_ORG, PROVIDE_GLOBAL_CONFIG } from "./config.mjs";
|
|
4
|
+
import { PROVIDE_USER, PROVIDE_DICT, PROVIDE_UPLOAD, PROVIDE_AVATAR, PROVIDE_ORG, PROVIDE_GLOBAL_CONFIG } from "./config.mjs";
|
|
5
5
|
const QdConfigProvider = defineComponent({
|
|
6
6
|
name: "QdConfigProvider",
|
|
7
7
|
props: {
|
|
@@ -21,6 +21,10 @@ const QdConfigProvider = defineComponent({
|
|
|
21
21
|
type: Object,
|
|
22
22
|
default: void 0
|
|
23
23
|
},
|
|
24
|
+
avatar: {
|
|
25
|
+
type: Object,
|
|
26
|
+
default: void 0
|
|
27
|
+
},
|
|
24
28
|
org: {
|
|
25
29
|
type: Object,
|
|
26
30
|
default: void 0
|
|
@@ -45,26 +49,33 @@ const QdConfigProvider = defineComponent({
|
|
|
45
49
|
const user = computed(() => props.user);
|
|
46
50
|
const dict = computed(() => props.dict);
|
|
47
51
|
const upload = computed(() => props.upload);
|
|
52
|
+
const avatar = computed(() => props.avatar);
|
|
48
53
|
const org = computed(() => props.org);
|
|
49
54
|
provide(PROVIDE_USER, user);
|
|
50
55
|
provide(PROVIDE_DICT, dict);
|
|
51
56
|
provide(PROVIDE_UPLOAD, upload);
|
|
57
|
+
provide(PROVIDE_AVATAR, avatar);
|
|
52
58
|
provide(PROVIDE_ORG, org);
|
|
53
59
|
provide(PROVIDE_GLOBAL_CONFIG, mergedGlobalConfig);
|
|
54
60
|
watch(
|
|
55
|
-
() => [props.user, props.dict, props.agentChat],
|
|
56
|
-
([newUser, newDict, newAgentChat]) => {
|
|
61
|
+
() => [props.user, props.dict, props.avatar, props.agentChat],
|
|
62
|
+
([newUser, newDict, newAvatar, newAgentChat]) => {
|
|
57
63
|
if (typeof window !== "undefined") {
|
|
58
64
|
window.__QIDIAN_USER__ = newUser;
|
|
59
65
|
window.__QIDIAN_DICT__ = newDict;
|
|
66
|
+
window.__QIDIAN_AVATAR__ = newAvatar;
|
|
60
67
|
window.__QIDIAN_AGENT_CHAT__ = newAgentChat;
|
|
61
68
|
}
|
|
62
69
|
},
|
|
63
70
|
{ immediate: true }
|
|
64
71
|
);
|
|
65
|
-
watch(
|
|
66
|
-
|
|
67
|
-
|
|
72
|
+
watch(
|
|
73
|
+
mergedGlobalConfig,
|
|
74
|
+
(newConfig) => {
|
|
75
|
+
window.__QIDIAN_GLOBAL_CONFIG__ = newConfig;
|
|
76
|
+
},
|
|
77
|
+
{ immediate: true }
|
|
78
|
+
);
|
|
68
79
|
watchEffect(async () => {
|
|
69
80
|
const localeMap = {
|
|
70
81
|
"zh-CN": () => import("../../locales/zh-CN.mjs"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../src/components/config-provider/index.ts"],"sourcesContent":["import type { PropType } from 'vue'\nimport type { QdConfigProviderProps } from './types'\nimport { defineComponent, provide, h, ref, watchEffect, computed, watch } from 'vue'\nimport { ConfigProvider as TConfigProvider } from 'tdesign-vue-next'\nimport { to } from 'qidian-shared'\nimport {\n PROVIDE_DICT,\n PROVIDE_GLOBAL_CONFIG,\n PROVIDE_ORG,\n PROVIDE_UPLOAD,\n PROVIDE_USER\n} from './config'\n\nexport const QdConfigProvider = defineComponent({\n name: 'QdConfigProvider',\n props: {\n locale: {\n type: String as PropType<QdConfigProviderProps['locale']>,\n default: 'zh-CN'\n },\n\n user: {\n type: Object as PropType<QdConfigProviderProps['user']>,\n default: undefined\n },\n\n dict: {\n type: Object as PropType<QdConfigProviderProps['dict']>,\n default: undefined\n },\n\n upload: {\n type: Object as PropType<QdConfigProviderProps['upload']>,\n default: undefined\n },\n\n org: {\n type: Object as PropType<QdConfigProviderProps['org']>,\n default: undefined\n },\n\n agentChat: {\n type: Object as PropType<QdConfigProviderProps['agentChat']>,\n default: undefined\n },\n\n globalConfig: {\n type: Object as PropType<QdConfigProviderProps['globalConfig']>,\n default: undefined\n }\n },\n setup(props: QdConfigProviderProps, { slots }) {\n const qdGlobalConfig = ref()\n const mergedGlobalConfig = computed(() => {\n return {\n ...qdGlobalConfig.value,\n ...props.globalConfig\n }\n })\n\n const user = computed(() => props.user)\n const dict = computed(() => props.dict)\n const upload = computed(() => props.upload)\n const org = computed(() => props.org)\n\n provide(PROVIDE_USER, user)\n provide(PROVIDE_DICT, dict)\n provide(PROVIDE_UPLOAD, upload)\n provide(PROVIDE_ORG, org)\n provide(PROVIDE_GLOBAL_CONFIG, mergedGlobalConfig)\n\n watch(\n () => [props.user, props.dict, props.agentChat] as const,\n ([newUser, newDict, newAgentChat]) => {\n if (typeof window !== 'undefined') {\n window.__QIDIAN_USER__ = newUser\n window.__QIDIAN_DICT__ = newDict\n window.__QIDIAN_AGENT_CHAT__ = newAgentChat\n }\n },\n { immediate: true }\n )\n\n watch(mergedGlobalConfig
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/components/config-provider/index.ts"],"sourcesContent":["import type { PropType } from 'vue'\nimport type { QdConfigProviderProps } from './types'\nimport { defineComponent, provide, h, ref, watchEffect, computed, watch } from 'vue'\nimport { ConfigProvider as TConfigProvider } from 'tdesign-vue-next'\nimport { to } from 'qidian-shared'\nimport {\n PROVIDE_AVATAR,\n PROVIDE_DICT,\n PROVIDE_GLOBAL_CONFIG,\n PROVIDE_ORG,\n PROVIDE_UPLOAD,\n PROVIDE_USER\n} from './config'\n\nexport const QdConfigProvider = defineComponent({\n name: 'QdConfigProvider',\n props: {\n locale: {\n type: String as PropType<QdConfigProviderProps['locale']>,\n default: 'zh-CN'\n },\n\n user: {\n type: Object as PropType<QdConfigProviderProps['user']>,\n default: undefined\n },\n\n dict: {\n type: Object as PropType<QdConfigProviderProps['dict']>,\n default: undefined\n },\n\n upload: {\n type: Object as PropType<QdConfigProviderProps['upload']>,\n default: undefined\n },\n\n avatar: {\n type: Object as PropType<QdConfigProviderProps['avatar']>,\n default: undefined\n },\n\n org: {\n type: Object as PropType<QdConfigProviderProps['org']>,\n default: undefined\n },\n\n agentChat: {\n type: Object as PropType<QdConfigProviderProps['agentChat']>,\n default: undefined\n },\n\n globalConfig: {\n type: Object as PropType<QdConfigProviderProps['globalConfig']>,\n default: undefined\n }\n },\n setup(props: QdConfigProviderProps, { slots }) {\n const qdGlobalConfig = ref()\n const mergedGlobalConfig = computed(() => {\n return {\n ...qdGlobalConfig.value,\n ...props.globalConfig\n }\n })\n\n const user = computed(() => props.user)\n const dict = computed(() => props.dict)\n const upload = computed(() => props.upload)\n const avatar = computed(() => props.avatar)\n const org = computed(() => props.org)\n\n provide(PROVIDE_USER, user)\n provide(PROVIDE_DICT, dict)\n provide(PROVIDE_UPLOAD, upload)\n provide(PROVIDE_AVATAR, avatar)\n provide(PROVIDE_ORG, org)\n provide(PROVIDE_GLOBAL_CONFIG, mergedGlobalConfig)\n\n watch(\n () => [props.user, props.dict, props.avatar, props.agentChat] as const,\n ([newUser, newDict, newAvatar, newAgentChat]) => {\n if (typeof window !== 'undefined') {\n window.__QIDIAN_USER__ = newUser\n window.__QIDIAN_DICT__ = newDict\n window.__QIDIAN_AVATAR__ = newAvatar\n window.__QIDIAN_AGENT_CHAT__ = newAgentChat\n }\n },\n { immediate: true }\n )\n\n watch(\n mergedGlobalConfig,\n (newConfig) => {\n window.__QIDIAN_GLOBAL_CONFIG__ = newConfig\n },\n { immediate: true }\n )\n\n watchEffect(async () => {\n const localeMap = {\n 'zh-CN': () => import('../../locales/zh-CN'),\n 'zh-TW': () => import('../../locales/zh-TW'),\n 'en-US': () => import('../../locales/en-US')\n }\n\n const loadLocale = localeMap[props.locale as keyof typeof localeMap] || localeMap['zh-CN']\n const [err, res] = await to(\n loadLocale() as unknown as Promise<{\n default: NonNullable<QdConfigProviderProps['globalConfig']>\n }>\n )\n if (err) return\n\n qdGlobalConfig.value = res.default\n })\n\n return () => h(TConfigProvider, { globalConfig: mergedGlobalConfig.value }, slots.default)\n }\n})\n\nexport type { QdConfigProviderProps } from './types'\n"],"names":["TConfigProvider"],"mappings":";;;;AAcO,MAAM,mBAAmB,gBAAgB;AAAA,EAC9C,MAAM;AAAA,EACN,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,KAAK;AAAA,MACH,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAGX,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF,MAAM,OAA8B,EAAE,SAAS;AAC7C,UAAM,iBAAiB,IAAA;AACvB,UAAM,qBAAqB,SAAS,MAAM;AACxC,aAAO;AAAA,QACL,GAAG,eAAe;AAAA,QAClB,GAAG,MAAM;AAAA,MAAA;AAAA,IAEb,CAAC;AAED,UAAM,OAAO,SAAS,MAAM,MAAM,IAAI;AACtC,UAAM,OAAO,SAAS,MAAM,MAAM,IAAI;AACtC,UAAM,SAAS,SAAS,MAAM,MAAM,MAAM;AAC1C,UAAM,SAAS,SAAS,MAAM,MAAM,MAAM;AAC1C,UAAM,MAAM,SAAS,MAAM,MAAM,GAAG;AAEpC,YAAQ,cAAc,IAAI;AAC1B,YAAQ,cAAc,IAAI;AAC1B,YAAQ,gBAAgB,MAAM;AAC9B,YAAQ,gBAAgB,MAAM;AAC9B,YAAQ,aAAa,GAAG;AACxB,YAAQ,uBAAuB,kBAAkB;AAEjD;AAAA,MACE,MAAM,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,QAAQ,MAAM,SAAS;AAAA,MAC5D,CAAC,CAAC,SAAS,SAAS,WAAW,YAAY,MAAM;AAC/C,YAAI,OAAO,WAAW,aAAa;AACjC,iBAAO,kBAAkB;AACzB,iBAAO,kBAAkB;AACzB,iBAAO,oBAAoB;AAC3B,iBAAO,wBAAwB;AAAA,QACjC;AAAA,MACF;AAAA,MACA,EAAE,WAAW,KAAA;AAAA,IAAK;AAGpB;AAAA,MACE;AAAA,MACA,CAAC,cAAc;AACb,eAAO,2BAA2B;AAAA,MACpC;AAAA,MACA,EAAE,WAAW,KAAA;AAAA,IAAK;AAGpB,gBAAY,YAAY;AACtB,YAAM,YAAY;AAAA,QAChB,SAAS,MAAM,OAAO,yBAAqB;AAAA,QAC3C,SAAS,MAAM,OAAO,yBAAqB;AAAA,QAC3C,SAAS,MAAM,OAAO,yBAAqB;AAAA,MAAA;AAG7C,YAAM,aAAa,UAAU,MAAM,MAAgC,KAAK,UAAU,OAAO;AACzF,YAAM,CAAC,KAAK,GAAG,IAAI,MAAM;AAAA,QACvB,WAAA;AAAA,MAAW;AAIb,UAAI,IAAK;AAET,qBAAe,QAAQ,IAAI;AAAA,IAC7B,CAAC;AAED,WAAO,MAAM,EAAEA,gBAAiB,EAAE,cAAc,mBAAmB,MAAA,GAAS,MAAM,OAAO;AAAA,EAC3F;AACF,CAAC;"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { TdConfigProviderProps } from 'tdesign-vue-next';
|
|
2
|
-
import type { QdDictBaseOptions } from '../../hooks/useDict
|
|
2
|
+
import type { QdDictBaseOptions } from '../../hooks/useDict';
|
|
3
3
|
import type { QdUploadProps } from '../upload';
|
|
4
|
-
import type { UseAgentChatOptions } from '../../hooks/useAgentChat
|
|
4
|
+
import type { UseAgentChatOptions } from '../../hooks/useAgentChat';
|
|
5
5
|
import type { QdOrgSelectProps } from '../org';
|
|
6
|
+
import type { QdAvatarBaseOptions } from '../../hooks/useUserAvatar';
|
|
6
7
|
export interface QdUser {
|
|
7
8
|
roles?: string[];
|
|
8
9
|
permissions?: string[];
|
|
@@ -12,6 +13,7 @@ export interface QdConfigProviderProps {
|
|
|
12
13
|
user?: QdUser;
|
|
13
14
|
dict?: QdDictBaseOptions;
|
|
14
15
|
upload?: Pick<QdUploadProps, 'action' | 'headers' | 'isBatchUpload' | 'method' | 'name' | 'requestMethod' | 'listOssByIds' | 'listOssByUrls' | 'del'>;
|
|
16
|
+
avatar?: QdAvatarBaseOptions;
|
|
15
17
|
agentChat?: Pick<UseAgentChatOptions, 'getSessionId' | 'getUrl'>;
|
|
16
18
|
org?: {
|
|
17
19
|
search?: Pick<QdOrgSelectProps, 'service' | 'transformParams' | 'transformRes'>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.vue2.mjs","sources":["../../../src/components/crud/list.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'qd-crud-list',\n reProps.serviceListOptions.scroll?.target ? 'qd-crud-list--has-scroll-target' : ''\n ]\"\n >\n <div v-if=\"reProps.searchOptions?.items?.length || $slots.actions\" class=\"qd-crud-list__header\">\n <qd-crud-search\n v-if=\"reProps.searchOptions?.items?.length\"\n ref=\"search\"\n v-model:data=\"searchData\"\n v-bind=\"reProps.searchOptions\"\n :on-submit=\"triggerSearch\"\n >\n <template #form-footer>\n <t-space align=\"center\" size=\"small\">\n <t-button type=\"submit\" @click=\"handleSearch\">{{ t('searchText') }}</t-button>\n <t-button variant=\"outline\" @click=\"handleResetSearch\">{{ t('resetText') }}</t-button>\n </t-space>\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'search')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-crud-search>\n\n <div v-if=\"$slots.actions\" class=\"qd-crud-list__toolbar\">\n <t-space align=\"center\" size=\"small\">\n <slot name=\"actions\" />\n </t-space>\n </div>\n </div>\n\n <qd-service-list ref=\"list\" v-model:data=\"data\" v-bind=\"reProps.serviceListOptions\">\n <template v-if=\"$slots.default\" #default=\"slotProps\">\n <slot v-bind=\"slotProps\" />\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'list')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-service-list>\n </div>\n</template>\n\n<script\n setup\n lang=\"tsx\"\n generic=\"\n D extends TableRowData = TableRowData,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n \"\n>\n import type { TableRowData } from 'tdesign-vue-next'\n import type { ServiceMaybePageParams, ServicePageParams, ServicePagination } from 'qidian-shared'\n import type { QdCrudListInstanceFunctions, QdCrudListProps } from './types'\n import type { QdFormSubmitContext } from '../form'\n import type { QdServiceListProps } from '../service'\n import { computed, nextTick, onMounted, useTemplateRef } from 'vue'\n import { extractSlotsWithPrefix } from 'qidian-shared'\n import { Space as TSpace, Button as TButton } from 'tdesign-vue-next'\n import { useVModels } from '@vueuse/core'\n import { qdCrudListProps } from './props'\n import { QdServiceList } from '../service'\n import QdCrudSearch from './search.vue'\n import { useConfig } from '../config-provider/useConfig'\n\n type Props = QdCrudListProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdCrudListProps)\n const emit = defineEmits<{\n 'update:searchData': [Props['searchData']]\n 'update:data': [Props['data']]\n }>()\n const { data, searchData } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const { t } = useConfig('crud')\n\n const reProps = computed(() => {\n const { data, searchData: inSearchData, search, transformParams, ...serviceListOptions } = props\n\n const mergedTransformParams = (params: ServiceMaybePageParams<Pag>) => {\n const merged = { ...params, ...searchData.value } as ServiceMaybePageParams<Pag>\n if (transformParams) return transformParams(merged)\n return merged\n }\n\n return {\n searchOptions: search,\n serviceListOptions: {\n ...serviceListOptions,\n transformParams: mergedTransformParams\n } as QdServiceListProps<D, R, P, TP, Pag>,\n models: {\n data,\n searchData: inSearchData\n }\n }\n })\n\n const searchRef = useTemplateRef('search')\n const listRef = useTemplateRef('list')\n\n function handleSearch() {}\n\n async function handleResetSearch() {\n searchRef.value?.reset()\n await nextTick()\n searchRef.value?.submit()\n }\n\n function triggerSearch({ validateResult }: QdFormSubmitContext<typeof searchData.value>) {\n if (validateResult !== true) return\n\n listRef.value?.refresh()\n }\n\n const expose = {} as QdCrudListInstanceFunctions<D, R, P, TP, Pag>\n\n onMounted(() => {\n Object.assign(expose, listRef.value)\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-crud-list {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n\n &__header + .qd-service-list {\n margin-top: var(--td-comp-margin-l);\n }\n\n .qd-crud-search + .qd-crud-list__toolbar {\n margin-top: var(--td-comp-margin-l);\n }\n\n &__header > .qd-crud-search {\n :deep(.qd-form) {\n display: flex;\n align-items: flex-end;\n flex-flow: row wrap;\n\n & > .qd-grid {\n flex: 1 1 0;\n overflow: hidden;\n margin-right: var(--td-comp-margin-l);\n }\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n }\n\n & > .qd-service-list {\n flex: 1 1 0;\n }\n\n &--has-scroll-target {\n & > .qd-service-list {\n flex: auto;\n }\n\n .qd-crud-list {\n &__header {\n position: sticky;\n top: 0;\n z-index: 10;\n }\n }\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","data","searchData","useVModels","passive","t","useConfig","reProps","computed","inSearchData","search","transformParams","serviceListOptions","mergedTransformParams","params","merged","value","searchOptions","models","searchRef","useTemplateRef","listRef","handleSearch","handleResetSearch","reset","nextTick","submit","triggerSearch","validateResult","refresh","expose","onMounted","Object","assign","__expose","_createElementBlock","class","_normalizeClass","scroll","target","items","length","$slots","actions","_openBlock","_hoisted_1","_createBlock","QdCrudSearch","_mergeProps","ref","_unref","$event","_createSlots","_createVNode","TSpace","align","size","TButton","type","onClick","variant","extractSlotsWithPrefix","item","name","filterName","fn","_withCtx","slotProps","_renderSlot","_ctx","originalName","undefined","_hoisted_2","_","default"],"mappings":"
|
|
1
|
+
{"version":3,"file":"list.vue2.mjs","sources":["../../../src/components/crud/list.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'qd-crud-list',\n reProps.serviceListOptions.scroll?.target ? 'qd-crud-list--has-scroll-target' : ''\n ]\"\n >\n <div v-if=\"reProps.searchOptions?.items?.length || $slots.actions\" class=\"qd-crud-list__header\">\n <qd-crud-search\n v-if=\"reProps.searchOptions?.items?.length\"\n ref=\"search\"\n v-model:data=\"searchData\"\n v-bind=\"reProps.searchOptions\"\n :on-submit=\"triggerSearch\"\n >\n <template #form-footer>\n <t-space align=\"center\" size=\"small\">\n <t-button type=\"submit\" @click=\"handleSearch\">{{ t('searchText') }}</t-button>\n <t-button variant=\"outline\" @click=\"handleResetSearch\">{{ t('resetText') }}</t-button>\n </t-space>\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'search')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-crud-search>\n\n <div v-if=\"$slots.actions\" class=\"qd-crud-list__toolbar\">\n <t-space align=\"center\" size=\"small\">\n <slot name=\"actions\" />\n </t-space>\n </div>\n </div>\n\n <qd-service-list ref=\"list\" v-model:data=\"data\" v-bind=\"reProps.serviceListOptions\">\n <template v-if=\"$slots.default\" #default=\"slotProps\">\n <slot v-bind=\"slotProps\" />\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'list')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-service-list>\n </div>\n</template>\n\n<script\n setup\n lang=\"tsx\"\n generic=\"\n D extends TableRowData = TableRowData,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n \"\n>\n import type { TableRowData } from 'tdesign-vue-next'\n import type { ServiceMaybePageParams, ServicePageParams, ServicePagination } from 'qidian-shared'\n import type { QdCrudListInstanceFunctions, QdCrudListProps } from './types'\n import type { QdFormSubmitContext } from '../form'\n import type { QdServiceListProps } from '../service'\n import { computed, nextTick, onMounted, useTemplateRef } from 'vue'\n import { extractSlotsWithPrefix } from 'qidian-shared'\n import { Space as TSpace, Button as TButton } from 'tdesign-vue-next'\n import { useVModels } from '@vueuse/core'\n import { qdCrudListProps } from './props'\n import { QdServiceList } from '../service'\n import QdCrudSearch from './search.vue'\n import { useConfig } from '../config-provider/useConfig'\n\n type Props = QdCrudListProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdCrudListProps)\n const emit = defineEmits<{\n 'update:searchData': [Props['searchData']]\n 'update:data': [Props['data']]\n }>()\n const { data, searchData } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const { t } = useConfig('crud')\n\n const reProps = computed(() => {\n const { data, searchData: inSearchData, search, transformParams, ...serviceListOptions } = props\n\n const mergedTransformParams = (params: ServiceMaybePageParams<Pag>) => {\n const merged = { ...params, ...searchData.value } as ServiceMaybePageParams<Pag>\n if (transformParams) return transformParams(merged)\n return merged\n }\n\n return {\n searchOptions: search,\n serviceListOptions: {\n ...serviceListOptions,\n transformParams: mergedTransformParams\n } as QdServiceListProps<D, R, P, TP, Pag>,\n models: {\n data,\n searchData: inSearchData\n }\n }\n })\n\n const searchRef = useTemplateRef('search')\n const listRef = useTemplateRef('list')\n\n function handleSearch() {}\n\n async function handleResetSearch() {\n searchRef.value?.reset()\n await nextTick()\n searchRef.value?.submit()\n }\n\n function triggerSearch({ validateResult }: QdFormSubmitContext<typeof searchData.value>) {\n if (validateResult !== true) return\n\n listRef.value?.refresh()\n }\n\n const expose = {} as QdCrudListInstanceFunctions<D, R, P, TP, Pag>\n\n onMounted(() => {\n Object.assign(expose, listRef.value)\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-crud-list {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n\n &__header + .qd-service-list {\n margin-top: var(--td-comp-margin-l);\n }\n\n .qd-crud-search + .qd-crud-list__toolbar {\n margin-top: var(--td-comp-margin-l);\n }\n\n &__header > .qd-crud-search {\n :deep(.qd-form) {\n display: flex;\n align-items: flex-end;\n flex-flow: row wrap;\n\n & > .qd-grid {\n flex: 1 1 0;\n overflow: hidden;\n margin-right: var(--td-comp-margin-l);\n }\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n }\n\n & > .qd-service-list {\n flex: 1 1 0;\n }\n\n &--has-scroll-target {\n & > .qd-service-list {\n flex: auto;\n }\n\n .qd-crud-list {\n &__header {\n position: sticky;\n top: 0;\n z-index: 10;\n }\n }\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","data","searchData","useVModels","passive","t","useConfig","reProps","computed","inSearchData","search","transformParams","serviceListOptions","mergedTransformParams","params","merged","value","searchOptions","models","searchRef","useTemplateRef","listRef","handleSearch","handleResetSearch","reset","nextTick","submit","triggerSearch","validateResult","refresh","expose","onMounted","Object","assign","__expose","_createElementBlock","class","_normalizeClass","scroll","target","items","length","$slots","actions","_openBlock","_hoisted_1","_createBlock","QdCrudSearch","_mergeProps","ref","_unref","$event","_createSlots","_createVNode","TSpace","align","size","TButton","type","onClick","variant","extractSlotsWithPrefix","item","name","filterName","fn","_withCtx","slotProps","_renderSlot","_ctx","originalName","undefined","_hoisted_2","_","default"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+EE,UAAMA,QAAQC;AACd,UAAMC,OAAOC;AAIb,UAAM;AAAA,MAAEC;AAAAA,MAAMC;AAAAA,IAAW,IAAIC,WAA4CN,OAAOE,MAAM;AAAA,MACpFK,SAAS;AAAA,IACX,CAAC;AAED,UAAM;AAAA,MAAEC;AAAAA,IAAE,IAAIC,UAAU,MAAM;AAE9B,UAAMC,UAAUC,SAAS,MAAM;AAC7B,YAAM;AAAA,QAAEP,MAAAA;AAAAA,QAAMC,YAAYO;AAAAA,QAAcC;AAAAA,QAAQC;AAAAA,QAAiB,GAAGC;AAAAA,MAAmB,IAAIf;AAE3F,YAAMgB,wBAAyBC,YAAwC;AACrE,cAAMC,SAAS;AAAA,UAAE,GAAGD;AAAAA,UAAQ,GAAGZ,WAAWc;AAAAA;AAC1C,YAAIL,gBAAiB,QAAOA,gBAAgBI,MAAM;AAClD,eAAOA;AAAAA,MACT;AAEA,aAAO;AAAA,QACLE,eAAeP;AAAAA,QACfE,oBAAoB;AAAA,UAClB,GAAGA;AAAAA,UACHD,iBAAiBE;AAAAA;QAEnBK,QAAQ;AAAA,UACNjB,MAAAA;AAAAA,UACAC,YAAYO;AAAAA,QACd;AAAA;IAEJ,CAAC;AAED,UAAMU,YAAYC,eAAe,QAAQ;AACzC,UAAMC,UAAUD,eAAe,MAAM;AAErC,aAASE,eAAe;AAAA,IAAC;AAEzB,mBAAeC,oBAAoB;AACjCJ,gBAAUH,OAAOQ,MAAK;AACtB,YAAMC,SAAQ;AACdN,gBAAUH,OAAOU,OAAM;AAAA,IACzB;AAEA,aAASC,cAAc;AAAA,MAAEC;AAAAA,IAA6D,GAAG;AACvF,UAAIA,mBAAmB,KAAM;AAE7BP,cAAQL,OAAOa,QAAO;AAAA,IACxB;AAEA,UAAMC,SAAS,CAAA;AAEfC,cAAU,MAAM;AACdC,aAAOC,OAAOH,QAAQT,QAAQL,KAAK;AAAA,IACrC,CAAC;AAEDkB,aAAaJ,MAAM;;0BAtInBK,mBAgDM,OAAA;AAAA,QA/CHC,OAAKC,eAAA,iBAAgC9B,QAAAS,MAAQJ,mBAAmB0B,QAAQC,SAAM,oCAAA,EAAA;UAKpEhC,QAAAS,MAAQC,eAAeuB,OAAOC,UAAUC,KAAAA,OAAOC,WAA1DC,UAAA,GAAAT,mBA4BM,OA5BNU,YA4BM,CA1BItC,QAAAS,MAAQC,eAAeuB,OAAOC,UADtCG,UAAA,GAAAE,YAoBiBC,cApBjBC,WAoBiB;AAAA;QAlBfC,KAAI;AAAA,QACIhD,MAAMiD,MAAAhD,UAAA;AAAA,mFAAAA,WAAUc,QAAAmC,SAAA;AAAA,MAChB,GAAA5C,QAAAS,MAAQC,eAAa;AAAA,QAC5B,aAAWU;AAAAA,OAAa,GAAAyB,YAAA;AAAA,QAEd,uBACT,MAGU,CAHVC,YAGUH,MAAAI,KAAA,GAAA;AAAA,UAHDC,OAAM;AAAA,UAASC,MAAK;AAAA;2BAC3B,MAA8E,CAA9EH,YAA8EH,MAAAO,MAAA,GAAA;AAAA,YAApEC,MAAK;AAAA,YAAUC,SAAOrC;AAAAA;6BAAc,MAAqB,iCAAlB4B,MAAA7C,CAAA,EAAC,YAAA,CAAA,GAAA,CAAA,CAAA;;cAClDgD,YAAsFH,MAAAO,MAAA,GAAA;AAAA,YAA5EG,SAAQ;AAAA,YAAWD,SAAOpC;AAAAA;6BAAmB,MAAoB,iCAAjB2B,MAAA7C,CAAA,EAAC,WAAA,CAAA,GAAA,CAAA,CAAA;;;;;;qBAK9C6C,MAAAW,sBAAA,EAAuBnB,KAAAA,QAAM,QAAA,GAArCoB,UAAI;;UACVC,MAAAD,KAAKE;AAAAA,UAENC,IAAAC,QAFoBC,eAAS,CAE7BC,WAAqDC,KAAA3B,QAAxCoB,KAAKQ,gDAAsBH,SAAS,CAAA,GAAAI,QAAA,IAAA,CAAA;;6DAI1C7B,KAAAA,OAAOC,WAAlBC,UAAA,GAAAT,mBAIM,OAJNqC,YAIM,CAHJnB,YAEUH,MAAAI,KAAA,GAAA;AAAA,QAFDC,OAAM;AAAA,QAASC,MAAK;AAAA;yBAC3B,MAAuB,CAAvBY,WAAuBC,KAAA3B,QAAA,WAAA,CAAA,GAAA6B,QAAA,IAAA,CAAA;;8EAK7BlB,YAWkBH,sBAXlBF,WAWkB;AAAA,QAXDC,KAAI;AAAA,QAAehD,MAAMiD,MAAAjD,IAAA;AAAA,6EAAAA,KAAIe,QAAAmC,SAAA;AAAA,SAAU5C,QAAAS,MAAQJ,kBAAkB,GAAAwC,YAAA;AAAA,QAAAqB,GAAA;AAAA,MAAA,GAAA,CAChE/B,KAAAA,OAAOgC;cAAU;AAAA,QAC/BT,IAAAC,QADwCC,eAAS,CACjDC,WAA2BC,0DAAbF,SAAS,CAAA,GAAAI,QAAA,IAAA,CAAA;;6BAIRrB,MAAAW,sBAAA,EAAuBnB,KAAAA,QAAM,MAAA,GAArCoB,UAAI;;UACVC,MAAAD,KAAKE;AAAAA,UAENC,IAAAC,QAFoBC,eAAS,CAE7BC,WAAqDC,KAAA3B,QAAxCoB,KAAKQ,gDAAsBH,SAAS,CAAA,GAAAI,QAAA,IAAA,CAAA;;;;;;"}
|
|
@@ -61,8 +61,10 @@ export declare const qdCrudTableProps: {
|
|
|
61
61
|
readonly paginationAffixedBottom: undefined;
|
|
62
62
|
readonly pagination: undefined;
|
|
63
63
|
readonly headerBg: true;
|
|
64
|
+
readonly loadingWithData: true;
|
|
64
65
|
};
|
|
65
66
|
export declare const qdCrudListProps: {
|
|
66
67
|
searchData: () => {};
|
|
67
68
|
data: () => never[];
|
|
69
|
+
loadingWithData: true;
|
|
68
70
|
};
|