qidian-vue-ui 1.1.23 → 1.1.25
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.vue.d.ts +4 -3
- package/dist/components/avatar/index.vue.mjs +1 -1
- package/dist/components/avatar/index.vue2.mjs +12 -4
- package/dist/components/avatar/index.vue2.mjs.map +1 -1
- package/dist/components/avatar/props.d.ts +0 -1
- package/dist/components/avatar/props.mjs +0 -3
- package/dist/components/avatar/props.mjs.map +1 -1
- package/dist/components/image/index.vue.d.ts +7 -1
- package/dist/components/image/index.vue.mjs +19 -4
- package/dist/components/image/index.vue.mjs.map +1 -1
- package/dist/components/image/props.d.ts +0 -2
- package/dist/components/image/props.mjs +0 -4
- package/dist/components/image/props.mjs.map +1 -1
- package/dist/qidian-vue-ui.css +2 -2
- package/package.json +1 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { QdAvatarProps } from './types';
|
|
2
|
-
declare var
|
|
2
|
+
declare var __VLS_5: {}, __VLS_12: string, __VLS_13: any;
|
|
3
3
|
type __VLS_Slots = {} & {
|
|
4
|
-
[K in NonNullable<typeof
|
|
4
|
+
[K in NonNullable<typeof __VLS_12>]?: (props: typeof __VLS_13) => any;
|
|
5
|
+
} & {
|
|
6
|
+
icon?: (props: typeof __VLS_5) => any;
|
|
5
7
|
};
|
|
6
8
|
declare const __VLS_component: import("vue").DefineComponent<QdAvatarProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<QdAvatarProps> & Readonly<{}>, {
|
|
7
9
|
hideOnLoadFailed: boolean;
|
|
8
|
-
icon: import("tdesign-vue-next").TNode;
|
|
9
10
|
mode: "ossId" | "url";
|
|
10
11
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
12
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main from "./index.vue2.mjs";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
4
|
-
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4
|
+
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4f36ffc5"]]);
|
|
5
5
|
export {
|
|
6
6
|
index as default
|
|
7
7
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { defineComponent, mergeDefaults, inject, computed, ref, watch, resolveDirective, createElementBlock, openBlock, withDirectives, createCommentVNode, createBlock, unref, mergeProps, createSlots,
|
|
1
|
+
import { defineComponent, mergeDefaults, inject, computed, ref, watch, resolveDirective, createElementBlock, openBlock, withDirectives, createCommentVNode, createBlock, unref, mergeProps, createSlots, withCtx, renderSlot, createVNode, renderList, normalizeProps, guardReactiveProps, normalizeClass, toDisplayString } from "vue";
|
|
2
2
|
import { Avatar } from "tdesign-vue-next";
|
|
3
|
-
import {
|
|
3
|
+
import { UserIcon } from "tdesign-icons-vue-next";
|
|
4
|
+
import { isEmpty, validator, abortWrapper, filterSlots } from "qidian-shared";
|
|
4
5
|
import { qdAvatarImageProps, qdAvatarProps } from "./props.mjs";
|
|
5
6
|
import { PROVIDE_AVATAR } from "../config-provider/config.mjs";
|
|
6
7
|
import "../../hooks/useAgentChat/index.mjs";
|
|
@@ -93,8 +94,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
93
94
|
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
94
95
|
withDirectives((openBlock(), createBlock(unref(Avatar), mergeProps({ class: __props.avatarClassName }, reProps.value.avatarOptions, {
|
|
95
96
|
image: typeof reImage.value === "number" ? reImage.value + "" : reImage.value
|
|
96
|
-
}), createSlots({
|
|
97
|
-
|
|
97
|
+
}), createSlots({
|
|
98
|
+
icon: withCtx(() => [
|
|
99
|
+
renderSlot(_ctx.$slots, "icon", {}, () => [
|
|
100
|
+
createVNode(unref(UserIcon))
|
|
101
|
+
], true)
|
|
102
|
+
]),
|
|
103
|
+
_: 2
|
|
104
|
+
}, [
|
|
105
|
+
renderList(unref(filterSlots)(_ctx.$slots, ["icon"]), (name) => {
|
|
98
106
|
return {
|
|
99
107
|
name,
|
|
100
108
|
fn: withCtx((slotProps) => [
|
|
@@ -1 +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, size: 'small' }\"\n :class=\"avatarClassName\"\n v-bind=\"reProps.avatarOptions\"\n :image=\"typeof reImage === 'number' ? reImage + '' : reImage\"\n >\n <template v-for=\"name in $slots\" #[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, isEmpty, validator } from 'qidian-shared'\n import { qdAvatarImageProps, 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 import { merge } from 'lodash-es'\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 {\n name,\n mode,\n avatarClassName,\n nameClassName,\n image,\n service,\n imageProps,\n ...avatarOptions\n } = props\n const reAlt = avatarOptions.alt || name\n const serviceOptions = { service: service || globalAvatarProps.value?.service }\n const reImageProps = merge(imageProps, qdAvatarImageProps)\n\n return {\n avatarOptions: {\n ...avatarOptions,\n imageProps: reImageProps,\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","
|
|
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, size: 'small' }\"\n :class=\"avatarClassName\"\n v-bind=\"reProps.avatarOptions\"\n :image=\"typeof reImage === 'number' ? reImage + '' : reImage\"\n >\n <template #icon>\n <slot name=\"icon\"><user-icon /></slot>\n </template>\n\n <template v-for=\"name in filterSlots($slots, ['icon'])\" #[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 { UserIcon } from 'tdesign-icons-vue-next'\n import { abortWrapper, filterSlots, isEmpty, validator } from 'qidian-shared'\n import { qdAvatarImageProps, 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 import { merge } from 'lodash-es'\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 {\n name,\n mode,\n avatarClassName,\n nameClassName,\n image,\n service,\n imageProps,\n ...avatarOptions\n } = props\n const reAlt = avatarOptions.alt || name\n const serviceOptions = { service: service || globalAvatarProps.value?.service }\n const reImageProps = merge(imageProps, qdAvatarImageProps)\n\n return {\n avatarOptions: {\n ...avatarOptions,\n imageProps: reImageProps,\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","_renderSlot","_createVNode","$slots","_withCtx","_normalizeProps","_guardReactiveProps","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCE,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;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MAAA,IACD;AACJ,YAAM,QAAQ,cAAc,OAAO;AACnC,YAAM,iBAAiB,EAAE,SAAS,WAAW,kBAAkB,OAAO,QAAA;AACtE,YAAM,eAAe,MAAM,YAAY,kBAAkB;AAEzD,aAAO;AAAA,QACL,eAAe;AAAA,UACb,GAAG;AAAA,UACH,YAAY;AAAA,UACZ,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;;;AAnGpB,aAAAA,UAAA,GAAAC,mBAiBM,OAjBN,YAiBM;AAAA,qCAhBJC,YAaWC,MAAAC,MAAA,GAbXC,WAaW,EAXR,OAAO,QAAA,gBAAA,GACA,QAAA,MAAQ,eAAa;AAAA,UAC5B,OAAK,OAAS,QAAA,UAAO,WAAgB,QAAA,aAAe,QAAA;AAAA,QAAA;UAE1C,cACT,MAAsC;AAAA,YAAtCC,WAAsC,yBAAtC,MAAsC;AAAA,cAApBC,YAAaJ,MAAA,QAAA,CAAA;AAAA,YAAA;;;;qBAGRA,MAAA,WAAA,EAAYK,KAAAA,QAAM,CAAA,MAAA,CAAA,GAAA,CAA1B,SAAI;;;cACnB,IAAAC,QAAA,CAD+D,cAAS;AAAA,gBACxEH,WAAwC,KAAA,QAA3B,MAAII,eAAAC,mBAAU,SAAS,CAAA,GAAA,QAAA,IAAA;AAAA,cAAA;;;;0CAVzBR,MAAA,OAAA,GAAO,MAAA,QAAA,CAAA;AAAA,QAAA;QAcV,QAAA,MAAQ,qBAApBF,mBAA+F,QAAA;AAAA;UAApE,yCAA0B,QAAA,aAAa,EAAA;AAAA,QAAA,GAAOW,gBAAA,QAAA,MAAQ,IAAI,GAAA,CAAA;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.mjs","sources":["../../../src/components/avatar/props.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"props.mjs","sources":["../../../src/components/avatar/props.tsx"],"sourcesContent":["export const qdAvatarProps = {\n hideOnLoadFailed: true,\n mode: 'ossId'\n} as const\n\nexport const qdAvatarImageProps = {\n lazy: true\n} as const\n"],"names":["qdAvatarProps","hideOnLoadFailed","mode","qdAvatarImageProps","lazy"],"mappings":"AAAO,MAAMA,gBAAgB;AAAA,EAC3BC,kBAAkB;AAAA,EAClBC,MAAM;AACR;AAEO,MAAMC,qBAAqB;AAAA,EAChCC,MAAM;AACR;"}
|
|
@@ -3,7 +3,13 @@ declare const _default: <OR = unknown, OP extends string | number | (string | nu
|
|
|
3
3
|
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, never> & QdImageProps<OR, OP, TOP> & Partial<{}>> & import("vue").PublicProps;
|
|
4
4
|
expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
|
|
5
5
|
attrs: any;
|
|
6
|
-
slots: {
|
|
6
|
+
slots: {
|
|
7
|
+
[x: string]: ((props: any) => any) | undefined;
|
|
8
|
+
} & {
|
|
9
|
+
loading?: (props: {}) => any;
|
|
10
|
+
} & {
|
|
11
|
+
error?: (props: {}) => any;
|
|
12
|
+
};
|
|
7
13
|
emit: {};
|
|
8
14
|
}>) => import("vue").VNode & {
|
|
9
15
|
__ctx?: Awaited<typeof __VLS_setup>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { defineComponent, mergeDefaults, inject, computed, ref, watch, resolveDirective, withDirectives, createBlock, openBlock, unref, mergeProps, createSlots,
|
|
1
|
+
import { defineComponent, mergeDefaults, inject, computed, ref, watch, resolveDirective, withDirectives, createBlock, openBlock, unref, mergeProps, createSlots, withCtx, renderSlot, createVNode, renderList, normalizeProps, guardReactiveProps } from "vue";
|
|
2
2
|
import { qdImageProps } from "./props.mjs";
|
|
3
3
|
import { Image } from "tdesign-vue-next";
|
|
4
|
-
import {
|
|
4
|
+
import { ImageErrorIcon, LoadingIcon } from "tdesign-icons-vue-next";
|
|
5
|
+
import { isEmpty, validator, suspectedWrapperPromise, to, filterSlots } from "qidian-shared";
|
|
5
6
|
import { PROVIDE_UPLOAD } from "../config-provider/config.mjs";
|
|
6
7
|
import merge from "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/merge.mjs";
|
|
7
8
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -88,7 +89,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
88
89
|
res = serviceRes;
|
|
89
90
|
}
|
|
90
91
|
reSrc.value = res[0]?.url;
|
|
92
|
+
return;
|
|
91
93
|
}
|
|
94
|
+
reSrc.value = newVal;
|
|
92
95
|
},
|
|
93
96
|
{ immediate: true }
|
|
94
97
|
);
|
|
@@ -96,8 +99,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
96
99
|
const _directive_loading = resolveDirective("loading");
|
|
97
100
|
return withDirectives((openBlock(), createBlock(unref(Image), mergeProps(reProps.value.imageOptions, {
|
|
98
101
|
src: typeof reSrc.value === "number" ? reSrc.value + "" : reSrc.value
|
|
99
|
-
}), createSlots({
|
|
100
|
-
|
|
102
|
+
}), createSlots({
|
|
103
|
+
loading: withCtx(() => [
|
|
104
|
+
renderSlot(_ctx.$slots, "loading", {}, () => [
|
|
105
|
+
createVNode(unref(LoadingIcon))
|
|
106
|
+
])
|
|
107
|
+
]),
|
|
108
|
+
error: withCtx(() => [
|
|
109
|
+
renderSlot(_ctx.$slots, "error", {}, () => [
|
|
110
|
+
createVNode(unref(ImageErrorIcon))
|
|
111
|
+
])
|
|
112
|
+
]),
|
|
113
|
+
_: 2
|
|
114
|
+
}, [
|
|
115
|
+
renderList(unref(filterSlots)(_ctx.$slots, ["loading", "error"]), (name) => {
|
|
101
116
|
return {
|
|
102
117
|
name,
|
|
103
118
|
fn: withCtx((slotProps) => [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue.mjs","sources":["../../../src/components/image/index.vue"],"sourcesContent":["<template>\n <t-image\n v-loading=\"{ loading: serviceLoad, size: 'small' }\"\n v-bind=\"reProps.imageOptions\"\n :src=\"typeof reSrc === 'number' ? reSrc + '' : reSrc\"\n >\n <template v-for=\"name in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-image>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n OR = unknown,\n OP extends string | number | (string | number)[] = string | number | (string | number)[],\n TOP = OP\n \"\n>\n import type { QdImageProps } from './types'\n import type { QdUploadListOssByIdsResult } from '../upload/types'\n import { qdImageProps } from './props'\n import { Image as TImage } from 'tdesign-vue-next'\n import { computed, inject, ref, watch } from 'vue'\n import { isEmpty, suspectedWrapperPromise, to, validator } from 'qidian-shared'\n import { PROVIDE_UPLOAD } from '../config-provider/config'\n import { merge } from 'lodash-es'\n\n defineOptions({\n name: 'QdImage'\n })\n\n type Props = QdImageProps<OR, OP, TOP>\n\n const props = withDefaults(defineProps<Props>(), qdImageProps)\n\n const globalUploadProps = inject(\n PROVIDE_UPLOAD,\n computed(() => undefined)\n )\n\n const reSrc = ref<string | number | File | undefined>()\n const reProps = computed(() => {\n const { src, mode, listOssByIds, ...imageOptions } = props\n const reListOssByIds = merge(listOssByIds, globalUploadProps.value?.listOssByIds)\n\n return {\n src,\n mode,\n listOssByIds: reListOssByIds,\n imageOptions\n }\n })\n\n const serviceLoad = ref(false)\n\n watch(\n () => reProps.value.src,\n async (newVal, oldVal) => {\n if (newVal === oldVal) return\n\n const { mode, listOssByIds } = reProps.value\n if (mode === 'ossId') {\n if (\n !listOssByIds ||\n !listOssByIds.service ||\n isEmpty(newVal) ||\n newVal instanceof File ||\n validator(newVal, 'url')\n ) {\n reSrc.value = newVal\n return\n }\n\n const { service, transformParams, transformRes } = listOssByIds\n\n serviceLoad.value = true\n const currentParams = newVal\n let tParams: TOP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as OP))\n if (trErr) {\n serviceLoad.value = false\n throw trErr\n }\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(\n service(tParams || (currentParams as unknown as TOP))\n )\n if (serviceErr) {\n serviceLoad.value = false\n throw serviceErr\n }\n\n let res: QdUploadListOssByIdsResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n serviceLoad.value = false\n if (trErr) throw trErr\n\n res = trRes\n } else {\n serviceLoad.value = false\n res = serviceRes as QdUploadListOssByIdsResult\n }\n\n reSrc.value = res[0]?.url\n }\n },\n { immediate: true }\n )\n</script>\n"],"names":["_withDirectives","_openBlock","_createBlock","_unref","TImage","_mergeProps","$slots","_withCtx","
|
|
1
|
+
{"version":3,"file":"index.vue.mjs","sources":["../../../src/components/image/index.vue"],"sourcesContent":["<template>\n <t-image\n v-loading=\"{ loading: serviceLoad, size: 'small' }\"\n v-bind=\"reProps.imageOptions\"\n :src=\"typeof reSrc === 'number' ? reSrc + '' : reSrc\"\n >\n <template #loading>\n <slot name=\"loading\"><loading-icon /></slot>\n </template>\n\n <template #error>\n <slot name=\"error\"><image-error-icon /></slot>\n </template>\n\n <template v-for=\"name in filterSlots($slots, ['loading', 'error'])\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-image>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n OR = unknown,\n OP extends string | number | (string | number)[] = string | number | (string | number)[],\n TOP = OP\n \"\n>\n import type { QdImageProps } from './types'\n import type { QdUploadListOssByIdsResult } from '../upload/types'\n import { qdImageProps } from './props'\n import { Image as TImage } from 'tdesign-vue-next'\n import { LoadingIcon, ImageErrorIcon } from 'tdesign-icons-vue-next'\n import { computed, inject, ref, watch } from 'vue'\n import { filterSlots, isEmpty, suspectedWrapperPromise, to, validator } from 'qidian-shared'\n import { PROVIDE_UPLOAD } from '../config-provider/config'\n import { merge } from 'lodash-es'\n\n defineOptions({\n name: 'QdImage'\n })\n\n type Props = QdImageProps<OR, OP, TOP>\n\n const props = withDefaults(defineProps<Props>(), qdImageProps)\n\n const globalUploadProps = inject(\n PROVIDE_UPLOAD,\n computed(() => undefined)\n )\n\n const reSrc = ref<string | number | File | undefined>()\n const reProps = computed(() => {\n const { src, mode, listOssByIds, ...imageOptions } = props\n const reListOssByIds = merge(listOssByIds, globalUploadProps.value?.listOssByIds)\n\n return {\n src,\n mode,\n listOssByIds: reListOssByIds,\n imageOptions\n }\n })\n\n const serviceLoad = ref(false)\n\n watch(\n () => reProps.value.src,\n async (newVal, oldVal) => {\n if (newVal === oldVal) return\n\n const { mode, listOssByIds } = reProps.value\n if (mode === 'ossId') {\n if (\n !listOssByIds ||\n !listOssByIds.service ||\n isEmpty(newVal) ||\n newVal instanceof File ||\n validator(newVal, 'url')\n ) {\n reSrc.value = newVal\n return\n }\n\n const { service, transformParams, transformRes } = listOssByIds\n\n serviceLoad.value = true\n const currentParams = newVal\n let tParams: TOP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as OP))\n if (trErr) {\n serviceLoad.value = false\n throw trErr\n }\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(\n service(tParams || (currentParams as unknown as TOP))\n )\n if (serviceErr) {\n serviceLoad.value = false\n throw serviceErr\n }\n\n let res: QdUploadListOssByIdsResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n serviceLoad.value = false\n if (trErr) throw trErr\n\n res = trRes\n } else {\n serviceLoad.value = false\n res = serviceRes as QdUploadListOssByIdsResult\n }\n\n reSrc.value = res[0]?.url\n return\n }\n\n reSrc.value = newVal\n },\n { immediate: true }\n )\n</script>\n"],"names":["_withDirectives","_openBlock","_createBlock","_unref","TImage","_mergeProps","_renderSlot","_createVNode","$slots","_withCtx","_normalizeProps","_guardReactiveProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CE,UAAM,QAAQ;AAEd,UAAM,oBAAoB;AAAA,MACxB;AAAA,MACA,SAAS,MAAM,MAAS;AAAA,IAAA;AAG1B,UAAM,QAAQ,IAAA;AACd,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM,EAAE,KAAK,MAAM,cAAc,GAAG,iBAAiB;AACrD,YAAM,iBAAiB,MAAM,cAAc,kBAAkB,OAAO,YAAY;AAEhF,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,cAAc;AAAA,QACd;AAAA,MAAA;AAAA,IAEJ,CAAC;AAED,UAAM,cAAc,IAAI,KAAK;AAE7B;AAAA,MACE,MAAM,QAAQ,MAAM;AAAA,MACpB,OAAO,QAAQ,WAAW;AACxB,YAAI,WAAW,OAAQ;AAEvB,cAAM,EAAE,MAAM,aAAA,IAAiB,QAAQ;AACvC,YAAI,SAAS,SAAS;AACpB,cACE,CAAC,gBACD,CAAC,aAAa,WACd,QAAQ,MAAM,KACd,kBAAkB,QAClB,UAAU,QAAQ,KAAK,GACvB;AACA,kBAAM,QAAQ;AACd;AAAA,UACF;AAEA,gBAAM,EAAE,SAAS,iBAAiB,aAAA,IAAiB;AAEnD,sBAAY,QAAQ;AACpB,gBAAM,gBAAgB;AACtB,cAAI;AAEJ,cAAI,iBAAiB;AACnB,kBAAM,CAAC,OAAO,KAAK,IAAI,MAAM,wBAAwB,gBAAgB,aAAmB,CAAC;AACzF,gBAAI,OAAO;AACT,0BAAY,QAAQ;AACpB,oBAAM;AAAA,YACR;AAEA,sBAAU;AAAA,UACZ;AAEA,gBAAM,CAAC,YAAY,UAAU,IAAI,MAAM;AAAA,YACrC,QAAQ,WAAY,aAAgC;AAAA,UAAA;AAEtD,cAAI,YAAY;AACd,wBAAY,QAAQ;AACpB,kBAAM;AAAA,UACR;AAEA,cAAI;AACJ,cAAI,cAAc;AAChB,kBAAM,CAAC,OAAO,KAAK,IAAI,MAAM,wBAAwB,aAAa,UAAU,CAAC;AAC7E,wBAAY,QAAQ;AACpB,gBAAI,MAAO,OAAM;AAEjB,kBAAM;AAAA,UACR,OAAO;AACL,wBAAY,QAAQ;AACpB,kBAAM;AAAA,UACR;AAEA,gBAAM,QAAQ,IAAI,CAAC,GAAG;AACtB;AAAA,QACF;AAEA,cAAM,QAAQ;AAAA,MAChB;AAAA,MACA,EAAE,WAAW,KAAA;AAAA,IAAK;;;AA9HpB,aAAAA,gBAAAC,aAAAC,YAgBUC,MAAAC,KAAA,GAhBVC,WAEU,QAcA,MAdQ,cAAY;AAAA,QAC3B,KAAG,OAAS,MAAA,UAAK,WAAgB,MAAA,aAAa,MAAA;AAAA,MAAA;QAEpC,iBACT,MAA4C;AAAA,UAA5CC,WAA4C,4BAA5C,MAA4C;AAAA,YAAvBC,YAAgBJ,MAAA,WAAA,CAAA;AAAA,UAAA;;QAG5B,eACT,MAA8C;AAAA,UAA9CG,WAA8C,0BAA9C,MAA8C;AAAA,YAA3BC,YAAoBJ,MAAA,cAAA,CAAA;AAAA,UAAA;;;;mBAGhBA,MAAA,WAAA,EAAYK,KAAAA,QAAM,CAAA,WAAA,OAAA,CAAA,GAAA,CAA1B,SAAI;;;YACnB,IAAAC,QAAA,CAD2E,cAAS;AAAA,cACpFH,WAAwC,KAAA,QAA3B,MAAII,eAAAC,mBAAU,SAAS,CAAA,CAAA;AAAA,YAAA;;;;wCAbhB,YAAA,OAAW,MAAA,SAAA;AAAA,MAAA;;;;"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import { createVNode } from "vue";
|
|
2
|
-
import { ImageErrorIcon, LoadingIcon } from "tdesign-icons-vue-next";
|
|
3
1
|
const qdImageProps = {
|
|
4
|
-
loading: () => () => createVNode(LoadingIcon, null, null),
|
|
5
|
-
error: () => () => createVNode(ImageErrorIcon, null, null),
|
|
6
2
|
mode: "ossId",
|
|
7
3
|
lazy: true
|
|
8
4
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.mjs","sources":["../../../src/components/image/props.
|
|
1
|
+
{"version":3,"file":"props.mjs","sources":["../../../src/components/image/props.ts"],"sourcesContent":["export const qdImageProps = {\n mode: 'ossId',\n lazy: true\n} as const\n"],"names":[],"mappings":"AAAO,MAAM,eAAe;AAAA,EAC1B,MAAM;AAAA,EACN,MAAM;AACR;"}
|
package/dist/qidian-vue-ui.css
CHANGED
|
@@ -133,13 +133,13 @@ p {
|
|
|
133
133
|
-webkit-box-orient: vertical;
|
|
134
134
|
-webkit-line-clamp: var(--v07d46710);
|
|
135
135
|
}
|
|
136
|
-
.qd-avatar[data-v-
|
|
136
|
+
.qd-avatar[data-v-4f36ffc5] {
|
|
137
137
|
display: inline-flex;
|
|
138
138
|
align-items: center;
|
|
139
139
|
font: var(--td-font-body-medium);
|
|
140
140
|
color: var(--td-text-color-primary);
|
|
141
141
|
}
|
|
142
|
-
.qd-avatar__name[data-v-
|
|
142
|
+
.qd-avatar__name[data-v-4f36ffc5] {
|
|
143
143
|
margin-left: var(--td-comp-margin-s);
|
|
144
144
|
}
|
|
145
145
|
[data-v-cdb247de] .qd-card__header--click {
|