qidian-vue-ui 1.1.45 → 1.1.47
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/dialog/form.vue.mjs +2 -4
- package/dist/components/dialog/form.vue.mjs.map +1 -1
- package/dist/components/dialog/index.vue.mjs +3 -1
- package/dist/components/dialog/index.vue.mjs.map +1 -1
- package/dist/components/dialog/types.d.ts +1 -1
- package/dist/components/service-dialog-table-select/define.d.ts +4 -0
- package/dist/components/service-dialog-table-select/define.mjs +7 -0
- package/dist/components/service-dialog-table-select/define.mjs.map +1 -0
- package/dist/components/service-dialog-table-select/index.d.ts +1 -0
- package/dist/components/service-dialog-table-select/index.vue.d.ts +4 -0
- package/dist/components/service-dialog-table-select/index.vue.mjs +1 -1
- package/dist/components/service-dialog-table-select/index.vue2.mjs +46 -24
- package/dist/components/service-dialog-table-select/index.vue2.mjs.map +1 -1
- package/dist/components/service-dialog-table-select/props.d.ts +13 -14
- package/dist/components/service-dialog-table-select/props.mjs +2 -1
- package/dist/components/service-dialog-table-select/props.mjs.map +1 -1
- package/dist/components/service-dialog-table-select/types.d.ts +6 -1
- package/dist/components/service-popup-table-select/define.d.ts +4 -0
- package/dist/components/service-popup-table-select/define.mjs +7 -0
- package/dist/components/service-popup-table-select/define.mjs.map +1 -0
- package/dist/components/service-popup-table-select/index.d.ts +1 -0
- package/dist/components/service-popup-table-select/index.vue.d.ts +4 -0
- package/dist/components/service-popup-table-select/index.vue.mjs +1 -1
- package/dist/components/service-popup-table-select/index.vue2.mjs +5 -3
- package/dist/components/service-popup-table-select/index.vue2.mjs.map +1 -1
- package/dist/components/upload/index.vue.mjs +1 -1
- package/dist/components/upload/index.vue2.mjs +14 -7
- package/dist/components/upload/index.vue2.mjs.map +1 -1
- package/dist/index.mjs +4 -0
- package/dist/index.mjs.map +1 -1
- package/dist/qidian-vue-ui.css +64 -31
- package/package.json +1 -1
|
@@ -98,11 +98,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
98
98
|
cancelBtn: loading || reConfirmLoading ? typeof wrapper.cancelBtn === "object" ? { ...wrapper.cancelBtn, disabled: true } : { disabled: true } : wrapper.cancelBtn,
|
|
99
99
|
onConfirm: (done) => {
|
|
100
100
|
const onConfirm = wrapper.onConfirm;
|
|
101
|
-
if (onConfirm)
|
|
102
|
-
onConfirm?.(done);
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
101
|
+
if (onConfirm) return onConfirm?.(done);
|
|
105
102
|
formRef.value?.submit();
|
|
103
|
+
return false;
|
|
106
104
|
}
|
|
107
105
|
},
|
|
108
106
|
models: { data: data2, visible: inVisible }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.vue.mjs","sources":["../../../src/components/dialog/form.vue"],"sourcesContent":["<template>\n <qd-dialog v-model:visible=\"visible\" v-bind=\"reProps.qdDialogOptions\">\n <template v-if=\"reProps.crudMode === 'view'\" #footer>\n <t-button theme=\"default\" @click=\"hide\">{{ t('closeText') }}</t-button>\n </template>\n\n <template v-for=\"name in extractSlotsWithoutPrefix($slots, 'form')\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" :context=\"data\" />\n </template>\n\n <qd-form ref=\"form\" v-model:data=\"data\" v-bind=\"reProps.qdFormOptions\">\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'form')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-form>\n </qd-dialog>\n</template>\n\n<script setup lang=\"ts\" generic=\"FD extends Data = Data\">\n import type { QdDialogDone, QdDialogFormInstanceFunctions, QdDialogFormProps } from './types'\n import type { FormInstanceFunctions, Data } from 'tdesign-vue-next'\n import type { QdFormProps, QdFormSubmitContext } from '../form'\n import { Button as TButton } from 'tdesign-vue-next'\n import { qdDialogFormProps } from './props'\n import { computed, useTemplateRef, ref } from 'vue'\n import { useVModels } from '@vueuse/core'\n import {\n easyCopy,\n extractSlotsWithoutPrefix,\n extractSlotsWithPrefix,\n suspectedWrapperPromise\n } from 'qidian-shared'\n import QdDialog from './index.vue'\n import { QdForm } from '../form'\n import { useConfig } from '../config-provider/useConfig'\n\n type Props = QdDialogFormProps<FD>\n\n const props = withDefaults(defineProps<Props>(), qdDialogFormProps)\n const emit = defineEmits<{\n 'update:visible': [Props['visible']]\n 'update:data': [Props['data']]\n }>()\n const { visible, data } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const { t } = useConfig('crud')\n const formRef = useTemplateRef<FormInstanceFunctions>('form')\n const formSubmitLoad = ref(false)\n\n const reProps = computed(() => {\n const {\n crudMode,\n data,\n visible: inVisible,\n wrapper,\n onSubmit,\n loading,\n ...qdFormOptions\n } = props\n const reConfirmLoading = formSubmitLoad.value || wrapper.confirmLoading\n\n return {\n crudMode,\n qdFormOptions: {\n ...qdFormOptions,\n loading,\n crudMode,\n onSubmit: async (context: QdFormSubmitContext<FD>) => {\n if (!onSubmit) return\n\n formSubmitLoad.value = true\n const [err, res] = await suspectedWrapperPromise(onSubmit(context))\n formSubmitLoad.value = false\n if (err || res === false) return\n\n visible.value = false\n }\n } as unknown as QdFormProps,\n qdDialogOptions: {\n ...wrapper,\n\n onOpened: () => {\n Object.assign(expose, formRef.value)\n wrapper.onOpened?.()\n },\n\n onBeforeClose: () => {\n formRef.value?.reset()\n wrapper.onBeforeClose?.()\n },\n\n confirmLoading: reConfirmLoading,\n closeOnEscKeydown: loading || reConfirmLoading ? false : wrapper.closeOnEscKeydown,\n closeOnOverlayClick: loading || reConfirmLoading ? false : wrapper.closeOnOverlayClick,\n closeBtn: loading || reConfirmLoading ? false : wrapper.closeBtn,\n\n confirmBtn:\n loading || reConfirmLoading\n ? typeof wrapper.confirmBtn === 'object'\n ? { ...wrapper.confirmBtn, disabled: true }\n : { disabled: true }\n : wrapper.confirmBtn,\n cancelBtn:\n loading || reConfirmLoading\n ? typeof wrapper.cancelBtn === 'object'\n ? { ...wrapper.cancelBtn, disabled: true }\n : { disabled: true }\n : wrapper.cancelBtn,\n\n onConfirm: (done: QdDialogDone) => {\n const onConfirm = wrapper.onConfirm\n if (onConfirm)
|
|
1
|
+
{"version":3,"file":"form.vue.mjs","sources":["../../../src/components/dialog/form.vue"],"sourcesContent":["<template>\n <qd-dialog v-model:visible=\"visible\" v-bind=\"reProps.qdDialogOptions\">\n <template v-if=\"reProps.crudMode === 'view'\" #footer>\n <t-button theme=\"default\" @click=\"hide\">{{ t('closeText') }}</t-button>\n </template>\n\n <template v-for=\"name in extractSlotsWithoutPrefix($slots, 'form')\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" :context=\"data\" />\n </template>\n\n <qd-form ref=\"form\" v-model:data=\"data\" v-bind=\"reProps.qdFormOptions\">\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'form')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-form>\n </qd-dialog>\n</template>\n\n<script setup lang=\"ts\" generic=\"FD extends Data = Data\">\n import type { QdDialogDone, QdDialogFormInstanceFunctions, QdDialogFormProps } from './types'\n import type { FormInstanceFunctions, Data } from 'tdesign-vue-next'\n import type { QdFormProps, QdFormSubmitContext } from '../form'\n import { Button as TButton } from 'tdesign-vue-next'\n import { qdDialogFormProps } from './props'\n import { computed, useTemplateRef, ref } from 'vue'\n import { useVModels } from '@vueuse/core'\n import {\n easyCopy,\n extractSlotsWithoutPrefix,\n extractSlotsWithPrefix,\n suspectedWrapperPromise\n } from 'qidian-shared'\n import QdDialog from './index.vue'\n import { QdForm } from '../form'\n import { useConfig } from '../config-provider/useConfig'\n\n type Props = QdDialogFormProps<FD>\n\n const props = withDefaults(defineProps<Props>(), qdDialogFormProps)\n const emit = defineEmits<{\n 'update:visible': [Props['visible']]\n 'update:data': [Props['data']]\n }>()\n const { visible, data } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const { t } = useConfig('crud')\n const formRef = useTemplateRef<FormInstanceFunctions>('form')\n const formSubmitLoad = ref(false)\n\n const reProps = computed(() => {\n const {\n crudMode,\n data,\n visible: inVisible,\n wrapper,\n onSubmit,\n loading,\n ...qdFormOptions\n } = props\n const reConfirmLoading = formSubmitLoad.value || wrapper.confirmLoading\n\n return {\n crudMode,\n qdFormOptions: {\n ...qdFormOptions,\n loading,\n crudMode,\n onSubmit: async (context: QdFormSubmitContext<FD>) => {\n if (!onSubmit) return\n\n formSubmitLoad.value = true\n const [err, res] = await suspectedWrapperPromise(onSubmit(context))\n formSubmitLoad.value = false\n if (err || res === false) return\n\n visible.value = false\n }\n } as unknown as QdFormProps,\n qdDialogOptions: {\n ...wrapper,\n\n onOpened: () => {\n Object.assign(expose, formRef.value)\n wrapper.onOpened?.()\n },\n\n onBeforeClose: () => {\n formRef.value?.reset()\n wrapper.onBeforeClose?.()\n },\n\n confirmLoading: reConfirmLoading,\n closeOnEscKeydown: loading || reConfirmLoading ? false : wrapper.closeOnEscKeydown,\n closeOnOverlayClick: loading || reConfirmLoading ? false : wrapper.closeOnOverlayClick,\n closeBtn: loading || reConfirmLoading ? false : wrapper.closeBtn,\n\n confirmBtn:\n loading || reConfirmLoading\n ? typeof wrapper.confirmBtn === 'object'\n ? { ...wrapper.confirmBtn, disabled: true }\n : { disabled: true }\n : wrapper.confirmBtn,\n cancelBtn:\n loading || reConfirmLoading\n ? typeof wrapper.cancelBtn === 'object'\n ? { ...wrapper.cancelBtn, disabled: true }\n : { disabled: true }\n : wrapper.cancelBtn,\n\n onConfirm: (done: QdDialogDone) => {\n const onConfirm = wrapper.onConfirm\n if (onConfirm) return onConfirm?.(done)\n\n formRef.value?.submit()\n return false\n }\n },\n models: { data, visible: inVisible }\n }\n })\n\n function show(newData?: FD) {\n if (newData != undefined) data.value = easyCopy(newData)\n visible.value = true\n }\n\n function hide() {\n visible.value = false\n }\n\n const expose = {\n show,\n hide\n } as QdDialogFormInstanceFunctions\n\n defineExpose(expose)\n</script>\n"],"names":["data","_openBlock","_createBlock","QdDialog","_mergeProps","_unref","_createSlots","_createVNode","$slots","_withCtx","_renderSlot","TButton"],"mappings":"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"}
|
|
@@ -68,12 +68,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
68
68
|
const onConfirm = dialogOptions.onConfirm;
|
|
69
69
|
if (!onConfirm) return;
|
|
70
70
|
confirmLoad.value = true;
|
|
71
|
-
suspectedWrapperPromise(
|
|
71
|
+
const [err, res] = await suspectedWrapperPromise(
|
|
72
72
|
onConfirm((closed) => {
|
|
73
73
|
visible.value = !closed;
|
|
74
74
|
})
|
|
75
75
|
);
|
|
76
76
|
confirmLoad.value = false;
|
|
77
|
+
if (err || res === false) return;
|
|
78
|
+
visible.value = false;
|
|
77
79
|
}
|
|
78
80
|
},
|
|
79
81
|
models: { visible: inVisible }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue.mjs","sources":["../../../src/components/dialog/index.vue"],"sourcesContent":["<template>\n <t-dialog v-model:visible=\"visible\" class=\"qd-dialog\" v-bind=\"reProps.dialogOptions\">\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-dialog>\n</template>\n\n<script setup lang=\"ts\">\n import type { QdDialogInstanceFunctions, QdDialogProps } from './types'\n import { qdDialogProps } from './props'\n import { Dialog as TDialog } from 'tdesign-vue-next'\n import { useVModels } from '@vueuse/core'\n import { computed, ref } from 'vue'\n import { suspectedWrapperPromise } from 'qidian-shared'\n\n defineOptions({\n name: 'QdDialog'\n })\n\n const props = withDefaults(defineProps<QdDialogProps>(), qdDialogProps)\n const emit = defineEmits<{\n 'update:visible': [QdDialogProps['visible']]\n }>()\n const { visible } = useVModels(props, emit, { passive: true })\n\n const confirmLoad = ref(false)\n\n const reProps = computed(() => {\n const { visible: inVisible, confirmLoading, ...dialogOptions } = props\n const reConfirmLoading = confirmLoad.value || confirmLoading\n\n return {\n dialogOptions: {\n ...dialogOptions,\n\n confirmLoading: reConfirmLoading,\n closeOnEscKeydown: reConfirmLoading ? false : dialogOptions.closeOnEscKeydown,\n closeOnOverlayClick: reConfirmLoading ? false : dialogOptions.closeOnOverlayClick,\n closeBtn: reConfirmLoading ? false : dialogOptions.closeBtn,\n\n cancelBtn: reConfirmLoading\n ? typeof dialogOptions.cancelBtn === 'object'\n ? { ...dialogOptions.cancelBtn, disabled: true }\n : { disabled: true }\n : dialogOptions.cancelBtn,\n\n onConfirm: async () => {\n const onConfirm = dialogOptions.onConfirm\n if (!onConfirm) return\n\n confirmLoad.value = true\n suspectedWrapperPromise(\n onConfirm((closed) => {\n visible.value = !closed\n })\n )\n confirmLoad.value = false\n }\n },\n models: { visible: inVisible }\n }\n })\n\n function show() {\n visible.value = true\n }\n\n function hide() {\n visible.value = false\n }\n\n const expose: QdDialogInstanceFunctions = { show, hide }\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\">\n .qd-dialog {\n .t-dialog__wrap > .t-dialog__position > .t-dialog > .t-dialog__body {\n overflow: visible;\n }\n }\n</style>\n"],"names":["_openBlock","_createBlock","_unref","_mergeProps","_createSlots","$slots","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBE,UAAM,QAAQ;AACd,UAAM,OAAO;AAGb,UAAM,EAAE,YAAY,WAAW,OAAO,MAAM,EAAE,SAAS,MAAM;AAE7D,UAAM,cAAc,IAAI,KAAK;AAE7B,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM,EAAE,SAAS,WAAW,gBAAgB,GAAG,kBAAkB;AACjE,YAAM,mBAAmB,YAAY,SAAS;AAE9C,aAAO;AAAA,QACL,eAAe;AAAA,UACb,GAAG;AAAA,UAEH,gBAAgB;AAAA,UAChB,mBAAmB,mBAAmB,QAAQ,cAAc;AAAA,UAC5D,qBAAqB,mBAAmB,QAAQ,cAAc;AAAA,UAC9D,UAAU,mBAAmB,QAAQ,cAAc;AAAA,UAEnD,WAAW,mBACP,OAAO,cAAc,cAAc,WACjC,EAAE,GAAG,cAAc,WAAW,UAAU,KAAA,IACxC,EAAE,UAAU,KAAA,IACd,cAAc;AAAA,UAElB,WAAW,YAAY;AACrB,kBAAM,YAAY,cAAc;AAChC,gBAAI,CAAC,UAAW;AAEhB,wBAAY,QAAQ;AACpB;AAAA,
|
|
1
|
+
{"version":3,"file":"index.vue.mjs","sources":["../../../src/components/dialog/index.vue"],"sourcesContent":["<template>\n <t-dialog v-model:visible=\"visible\" class=\"qd-dialog\" v-bind=\"reProps.dialogOptions\">\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-dialog>\n</template>\n\n<script setup lang=\"ts\">\n import type { QdDialogInstanceFunctions, QdDialogProps } from './types'\n import { qdDialogProps } from './props'\n import { Dialog as TDialog } from 'tdesign-vue-next'\n import { useVModels } from '@vueuse/core'\n import { computed, ref } from 'vue'\n import { suspectedWrapperPromise } from 'qidian-shared'\n\n defineOptions({\n name: 'QdDialog'\n })\n\n const props = withDefaults(defineProps<QdDialogProps>(), qdDialogProps)\n const emit = defineEmits<{\n 'update:visible': [QdDialogProps['visible']]\n }>()\n const { visible } = useVModels(props, emit, { passive: true })\n\n const confirmLoad = ref(false)\n\n const reProps = computed(() => {\n const { visible: inVisible, confirmLoading, ...dialogOptions } = props\n const reConfirmLoading = confirmLoad.value || confirmLoading\n\n return {\n dialogOptions: {\n ...dialogOptions,\n\n confirmLoading: reConfirmLoading,\n closeOnEscKeydown: reConfirmLoading ? false : dialogOptions.closeOnEscKeydown,\n closeOnOverlayClick: reConfirmLoading ? false : dialogOptions.closeOnOverlayClick,\n closeBtn: reConfirmLoading ? false : dialogOptions.closeBtn,\n\n cancelBtn: reConfirmLoading\n ? typeof dialogOptions.cancelBtn === 'object'\n ? { ...dialogOptions.cancelBtn, disabled: true }\n : { disabled: true }\n : dialogOptions.cancelBtn,\n\n onConfirm: async () => {\n const onConfirm = dialogOptions.onConfirm\n if (!onConfirm) return\n\n confirmLoad.value = true\n const [err, res] = await suspectedWrapperPromise(\n onConfirm((closed) => {\n visible.value = !closed\n })\n )\n confirmLoad.value = false\n if (err || res === false) return\n\n visible.value = false\n }\n },\n models: { visible: inVisible }\n }\n })\n\n function show() {\n visible.value = true\n }\n\n function hide() {\n visible.value = false\n }\n\n const expose: QdDialogInstanceFunctions = { show, hide }\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\">\n .qd-dialog {\n .t-dialog__wrap > .t-dialog__position > .t-dialog > .t-dialog__body {\n overflow: visible;\n }\n }\n</style>\n"],"names":["_openBlock","_createBlock","_unref","_mergeProps","_createSlots","$slots","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBE,UAAM,QAAQ;AACd,UAAM,OAAO;AAGb,UAAM,EAAE,YAAY,WAAW,OAAO,MAAM,EAAE,SAAS,MAAM;AAE7D,UAAM,cAAc,IAAI,KAAK;AAE7B,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM,EAAE,SAAS,WAAW,gBAAgB,GAAG,kBAAkB;AACjE,YAAM,mBAAmB,YAAY,SAAS;AAE9C,aAAO;AAAA,QACL,eAAe;AAAA,UACb,GAAG;AAAA,UAEH,gBAAgB;AAAA,UAChB,mBAAmB,mBAAmB,QAAQ,cAAc;AAAA,UAC5D,qBAAqB,mBAAmB,QAAQ,cAAc;AAAA,UAC9D,UAAU,mBAAmB,QAAQ,cAAc;AAAA,UAEnD,WAAW,mBACP,OAAO,cAAc,cAAc,WACjC,EAAE,GAAG,cAAc,WAAW,UAAU,KAAA,IACxC,EAAE,UAAU,KAAA,IACd,cAAc;AAAA,UAElB,WAAW,YAAY;AACrB,kBAAM,YAAY,cAAc;AAChC,gBAAI,CAAC,UAAW;AAEhB,wBAAY,QAAQ;AACpB,kBAAM,CAAC,KAAK,GAAG,IAAI,MAAM;AAAA,cACvB,UAAU,CAAC,WAAW;AACpB,wBAAQ,QAAQ,CAAC;AAAA,cACnB,CAAC;AAAA,YAAA;AAEH,wBAAY,QAAQ;AACpB,gBAAI,OAAO,QAAQ,MAAO;AAE1B,oBAAQ,QAAQ;AAAA,UAClB;AAAA,QAAA;AAAA,QAEF,QAAQ,EAAE,SAAS,UAAA;AAAA,MAAU;AAAA,IAEjC,CAAC;AAED,aAAS,OAAO;AACd,cAAQ,QAAQ;AAAA,IAClB;AAEA,aAAS,OAAO;AACd,cAAQ,QAAQ;AAAA,IAClB;AAEA,UAAM,SAAoC,EAAE,MAAM,KAAA;AAElD,aAAa,MAAM;;AA5EnB,aAAAA,aAAAC,YAIWC,eAJXC,WAIW;AAAA,QAJO,SAASD,MAAA,OAAA;AAAA,mFAAA,QAAO,QAAA,SAAA;AAAA,QAAE,OAAM;AAAA,MAAA,GAAoB,QAAA,MAAQ,aAAa,GAAAE,YAAA,EAAA,GAAA,KAAA;AAAA,mBACnDC,KAAAA,QAAM,CAAlB,GAAG,SAAI;;;YACvB,IAAAC,QAAA,CAD6C,cAAS;AAAA,cACtDC,WAAwC,KAAA,QAA3B,MAAIC,eAAAC,mBAAU,SAAS,CAAA,CAAA;AAAA,YAAA;;;;;;;"}
|
|
@@ -2,7 +2,7 @@ import type { Data, FormInstanceFunctions, TdDialogProps } from 'tdesign-vue-nex
|
|
|
2
2
|
import type { QdFormProps, QdFormSubmitContext } from '../form';
|
|
3
3
|
export type QdDialogDone = (closed: boolean) => void;
|
|
4
4
|
export interface QdDialogProps extends Omit<TdDialogProps, 'onConfirm'> {
|
|
5
|
-
onConfirm?: (done: QdDialogDone) => void | Promise<void>;
|
|
5
|
+
onConfirm?: (done: QdDialogDone) => void | boolean | Promise<void | boolean>;
|
|
6
6
|
}
|
|
7
7
|
export interface QdDialogInstanceFunctions {
|
|
8
8
|
show: () => void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { QdServiceDialogTableSelectProps } from './types';
|
|
2
|
+
import type { TableRowData } from 'tdesign-vue-next';
|
|
3
|
+
import type { ServicePageParams, ServicePagination } from 'qidian-shared';
|
|
4
|
+
export declare function defineQdServiceDialogTableSelect<D extends TableRowData = TableRowData, R = unknown, P = ServicePageParams, TP = P, Pag extends ServicePagination = ServicePagination>(config: QdServiceDialogTableSelectProps<D, R, P, TP, Pag>): QdServiceDialogTableSelectProps<D, R, P, TP, Pag>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.mjs","sources":["../../../src/components/service-dialog-table-select/define.ts"],"sourcesContent":["import type { QdServiceDialogTableSelectProps } from './types'\nimport type { TableRowData } from 'tdesign-vue-next'\nimport type { ServicePageParams, ServicePagination } from 'qidian-shared'\n\n/**\n * 定义 Service Dialog Table Select 配置,提供类型推导\n */\nexport function defineQdServiceDialogTableSelect<\n D extends TableRowData = TableRowData,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n>(config: QdServiceDialogTableSelectProps<D, R, P, TP, Pag>): QdServiceDialogTableSelectProps<D, R, P, TP, Pag> {\n return config\n}"],"names":[],"mappings":"AAOO,SAAS,iCAMd,QAA8G;AAC9G,SAAO;AACT;"}
|
|
@@ -20,6 +20,10 @@ declare const _default: <D extends TableRowData = TableRowData, R = unknown, P =
|
|
|
20
20
|
[x: string]: ((props: any) => any) | undefined;
|
|
21
21
|
} & {
|
|
22
22
|
[x: string]: ((props: any) => any) | undefined;
|
|
23
|
+
} & {
|
|
24
|
+
default?: (props: {
|
|
25
|
+
selectedRows: import("@vue/reactivity").UnwrapRefSimple<D>[];
|
|
26
|
+
}) => any;
|
|
23
27
|
} & {
|
|
24
28
|
'add-input'?: (props: {
|
|
25
29
|
addCustom: {
|
|
@@ -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-22654679"]]);
|
|
5
5
|
export {
|
|
6
6
|
index as default
|
|
7
7
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, mergeDefaults, useTemplateRef, ref, reactive, computed, createVNode, watch, onMounted, createElementBlock, openBlock, Fragment,
|
|
1
|
+
import { defineComponent, mergeDefaults, useTemplateRef, ref, reactive, computed, createVNode, watch, onMounted, createElementBlock, openBlock, Fragment, createElementVNode, mergeProps, renderSlot, unref, isRef, withCtx, createSlots, renderList, normalizeProps, guardReactiveProps } from "vue";
|
|
2
2
|
import { isEmpty, extractSlotsWithPrefix, identifyType } from "qidian-shared";
|
|
3
3
|
import { Select, Input, Space, Button } from "tdesign-vue-next";
|
|
4
4
|
import { AddIcon, SearchIcon } from "tdesign-icons-vue-next";
|
|
@@ -39,6 +39,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
39
39
|
onCreate: {
|
|
40
40
|
type: Function
|
|
41
41
|
},
|
|
42
|
+
onConfirm: {
|
|
43
|
+
type: Function
|
|
44
|
+
},
|
|
42
45
|
tableSize: {},
|
|
43
46
|
visible: {
|
|
44
47
|
type: Boolean
|
|
@@ -370,6 +373,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
370
373
|
onClear,
|
|
371
374
|
onCreate,
|
|
372
375
|
onChange,
|
|
376
|
+
onConfirm,
|
|
373
377
|
search,
|
|
374
378
|
tableSize,
|
|
375
379
|
addBtn,
|
|
@@ -412,6 +416,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
412
416
|
}, typeof addInput === "string" ? {
|
|
413
417
|
placeholder: addInput
|
|
414
418
|
} : addInput);
|
|
419
|
+
const dialogOptions = merge({}, {
|
|
420
|
+
header: placeholder
|
|
421
|
+
}, wrapper);
|
|
415
422
|
return {
|
|
416
423
|
creatable,
|
|
417
424
|
fillOptions,
|
|
@@ -425,7 +432,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
425
432
|
placeholder,
|
|
426
433
|
size
|
|
427
434
|
},
|
|
428
|
-
dialogOptions
|
|
435
|
+
dialogOptions,
|
|
429
436
|
tableOptions: {
|
|
430
437
|
...tableOptions,
|
|
431
438
|
size: tableSize,
|
|
@@ -439,6 +446,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
439
446
|
onClear,
|
|
440
447
|
onCreate,
|
|
441
448
|
onChange,
|
|
449
|
+
onConfirm,
|
|
442
450
|
addBtnOptions,
|
|
443
451
|
addConfirmBtnOptions,
|
|
444
452
|
addCancelBtnOptions,
|
|
@@ -461,9 +469,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
461
469
|
function handleSelectChange(rowKeys, options) {
|
|
462
470
|
latestSelectedRows = options.selectedRowData;
|
|
463
471
|
}
|
|
464
|
-
function handleConfirm() {
|
|
472
|
+
function handleConfirm(done) {
|
|
465
473
|
selectedRows.value = latestSelectedRows;
|
|
466
|
-
visible.value = false;
|
|
467
474
|
const {
|
|
468
475
|
selectOptions
|
|
469
476
|
} = reProps.value;
|
|
@@ -472,36 +479,30 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
472
479
|
if (selectOptions.valueType === "value") {
|
|
473
480
|
modelValue.value = selectOptions.multiple ? latestSelectedRows.map((item) => get(item, valueKey)) : get(latestSelectedRows[0], valueKey);
|
|
474
481
|
} else {
|
|
475
|
-
const rows =
|
|
482
|
+
const rows = latestSelectedRows.map((item) => ({
|
|
476
483
|
[valueKey]: get(item, valueKey),
|
|
477
484
|
[labelKey]: get(item, labelKey)
|
|
478
485
|
}));
|
|
479
486
|
modelValue.value = selectOptions.multiple ? rows : rows[0];
|
|
480
487
|
}
|
|
481
|
-
|
|
488
|
+
const eventParams = [modelValue.value, {
|
|
482
489
|
option: latestSelectedRows[latestSelectedRows.length - 1],
|
|
483
490
|
selectedOptions: latestSelectedRows,
|
|
484
491
|
trigger: "check"
|
|
485
|
-
}
|
|
492
|
+
}];
|
|
493
|
+
reProps.value.onChange?.(...eventParams);
|
|
494
|
+
const onConfirm = reProps.value.onConfirm;
|
|
495
|
+
if (!onConfirm) {
|
|
496
|
+
visible.value = false;
|
|
497
|
+
return;
|
|
498
|
+
}
|
|
499
|
+
return onConfirm(...eventParams, done);
|
|
486
500
|
}
|
|
487
501
|
function openDialog() {
|
|
488
502
|
const {
|
|
489
503
|
selectOptions
|
|
490
504
|
} = reProps.value;
|
|
491
505
|
if (selectOptions.readonly || selectOptions.disabled) return;
|
|
492
|
-
const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value;
|
|
493
|
-
if (identifyType(modelValue.value) === "array") {
|
|
494
|
-
selectedRowKeys.value = modelValue.value.map((item) => {
|
|
495
|
-
if (identifyType(item) === "object") {
|
|
496
|
-
return get(item, valueKey);
|
|
497
|
-
}
|
|
498
|
-
return item;
|
|
499
|
-
});
|
|
500
|
-
} else if (identifyType(modelValue.value) === "object") {
|
|
501
|
-
selectedRowKeys.value = [get(modelValue.value, valueKey)];
|
|
502
|
-
} else {
|
|
503
|
-
selectedRowKeys.value = isEmpty(modelValue.value) ? [] : [modelValue.value];
|
|
504
|
-
}
|
|
505
506
|
visible.value = true;
|
|
506
507
|
}
|
|
507
508
|
function handleClear(context) {
|
|
@@ -533,6 +534,22 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
533
534
|
}
|
|
534
535
|
function handleBeforeOpen() {
|
|
535
536
|
fillOptionsWatchStop?.();
|
|
537
|
+
const {
|
|
538
|
+
selectOptions
|
|
539
|
+
} = reProps.value;
|
|
540
|
+
const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value;
|
|
541
|
+
if (identifyType(modelValue.value) === "array") {
|
|
542
|
+
selectedRowKeys.value = modelValue.value.map((item) => {
|
|
543
|
+
if (identifyType(item) === "object") {
|
|
544
|
+
return get(item, valueKey);
|
|
545
|
+
}
|
|
546
|
+
return item;
|
|
547
|
+
});
|
|
548
|
+
} else if (identifyType(modelValue.value) === "object") {
|
|
549
|
+
selectedRowKeys.value = [get(modelValue.value, valueKey)];
|
|
550
|
+
} else {
|
|
551
|
+
selectedRowKeys.value = isEmpty(modelValue.value) ? [] : [modelValue.value];
|
|
552
|
+
}
|
|
536
553
|
}
|
|
537
554
|
function handleClosed() {
|
|
538
555
|
if (addCustom.visible) cancelAddCustom();
|
|
@@ -554,19 +571,24 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
554
571
|
Object.assign(expose, dialogRef.value);
|
|
555
572
|
});
|
|
556
573
|
return (_ctx, _cache) => {
|
|
557
|
-
return openBlock(), createElementBlock(Fragment, null, [
|
|
558
|
-
class:
|
|
574
|
+
return openBlock(), createElementBlock(Fragment, null, [createElementVNode("div", mergeProps({
|
|
575
|
+
class: "qd-dialog-table-select"
|
|
576
|
+
}, _ctx.$attrs, {
|
|
577
|
+
onClick: openDialog
|
|
578
|
+
}), [renderSlot(_ctx.$slots, "default", {
|
|
579
|
+
selectedRows: selectedRows.value
|
|
580
|
+
}, () => [createVNode(unref(Select), mergeProps({
|
|
581
|
+
class: ["qd-dialog-table-select__trigger", reProps.value.selectOptions.readonly ? "qd-dialog-table-select__trigger--readonly" : "", reProps.value.selectOptions.disabled ? "qd-dialog-table-select__trigger--disabled" : ""],
|
|
559
582
|
modelValue: unref(modelValue),
|
|
560
583
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(modelValue) ? modelValue.value = $event : null),
|
|
561
584
|
options: selectedRows.value,
|
|
562
585
|
"popup-visible": false
|
|
563
586
|
}, reProps.value.selectOptions, {
|
|
564
|
-
onClick: openDialog,
|
|
565
587
|
onClear: handleClear
|
|
566
588
|
}), {
|
|
567
589
|
suffixIcon: withCtx(() => [createVNode(unref(SearchIcon))]),
|
|
568
590
|
_: 1
|
|
569
|
-
}, 16, ["class", "modelValue", "options"]), createVNode(unref(_sfc_main$1), mergeProps({
|
|
591
|
+
}, 16, ["class", "modelValue", "options"])], true)], 16), createVNode(unref(_sfc_main$1), mergeProps({
|
|
570
592
|
ref: "dialog",
|
|
571
593
|
visible: unref(visible),
|
|
572
594
|
"onUpdate:visible": _cache[12] || (_cache[12] = ($event) => isRef(visible) ? visible.value = $event : null)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/service-dialog-table-select/index.vue"],"sourcesContent":["<template>\n <t-select\n :class=\"[\n 'qd-dialog-table-select',\n reProps.selectOptions.readonly ? 'qd-dialog-table-select--readonly' : '',\n reProps.selectOptions.disabled ? 'qd-dialog-table-select--disabled' : ''\n ]\"\n v-model=\"modelValue\"\n :options=\"selectedRows\"\n :popup-visible=\"false\"\n v-bind=\"reProps.selectOptions\"\n @click=\"openDialog\"\n @clear=\"handleClear\"\n >\n <template #suffixIcon>\n <search-icon />\n </template>\n </t-select>\n\n <qd-dialog\n ref=\"dialog\"\n v-model:visible=\"visible\"\n v-bind=\"reProps.dialogOptions\"\n @confirm=\"handleConfirm\"\n @before-open=\"handleBeforeOpen\"\n @closed=\"handleClosed\"\n >\n <qd-crud-table\n class=\"qd-dialog-table-select__table\"\n v-model:search-data=\"searchData\"\n v-model:data=\"data\"\n v-model:selected-row-keys=\"selectedRowKeys\"\n v-model:active-row-keys=\"selectedRowKeys\"\n v-model:column-controller-visible=\"columnControllerVisible\"\n v-model:display-columns=\"displayColumns\"\n v-model:expanded-rowKeys=\"expandedRowKeys\"\n v-model:filter-value=\"filterValue\"\n v-model:sort=\"sort\"\n v-model:expanded-tree-nodes=\"expandedTreeNodes\"\n reserve-selected-row-on-paginate\n active-row-type=\"multiple\"\n v-bind=\"reProps.tableOptions\"\n @select-change=\"handleSelectChange\"\n >\n <template v-if=\"reProps.creatable\" #table-bottom-content>\n <div v-if=\"addCustom.visible\" class=\"qd-dialog-table-select__table-add\">\n <slot name=\"add-input\" :add-custom=\"addCustom\">\n <t-input v-model=\"addCustom.value\" v-bind=\"reProps.addInputOptions\" />\n </slot>\n\n <t-space size=\"small\">\n <slot name=\"add-confirm-btn\" :add-custom=\"addCustom\">\n <t-button v-bind=\"reProps.addConfirmBtnOptions\" />\n </slot>\n\n <slot name=\"add-cancel-btn\" :add-custom=\"addCustom\">\n <t-button v-bind=\"reProps.addCancelBtnOptions\" />\n </slot>\n </t-space>\n </div>\n\n <slot v-else name=\"add-btn\" :add-custom=\"addCustom\">\n <t-button class=\"qd-dialog-table-select__table-add\" v-bind=\"reProps.addBtnOptions\" />\n </slot>\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\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'table')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-crud-table>\n </qd-dialog>\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 {\n SelectOptions,\n SelectValue,\n TableRowData,\n TdButtonProps,\n TdInputProps\n } from 'tdesign-vue-next'\n import type { ServicePageParams, ServicePagination } from 'qidian-shared'\n import type {\n QdDialogTableSelectInstanceFunctions,\n QdServiceDialogTableSelectProps\n } from './types'\n import type { QdDialogInstanceFunctions } from '../dialog'\n import type { QdCrudTableProps } from '../crud'\n import { extractSlotsWithPrefix, identifyType, isEmpty } from 'qidian-shared'\n import {\n Select as TSelect,\n Button as TButton,\n Input as TInput,\n Space as TSpace\n } from 'tdesign-vue-next'\n import type { WatchHandle } from 'vue'\n import { AddIcon, SearchIcon } from 'tdesign-icons-vue-next'\n import { qdDialogTableSelectSearchGrid, qdServiceDialogTableSelectProps } from './props'\n import { computed, onMounted, reactive, ref, useTemplateRef, watch } from 'vue'\n import { useVModels } from '@vueuse/core'\n import { QdDialog } from '../dialog'\n import { QdCrudTable } from '../crud'\n import { qdServiceSelectKeys } from '../service-select/props'\n import { useDisabled, useReadonly } from '../../hooks'\n import { get, merge } from 'lodash-es'\n import { useConfig } from '../config-provider/useConfig'\n\n defineOptions({\n name: 'QdServiceDialogTableSelect'\n })\n\n type Props = QdServiceDialogTableSelectProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdServiceDialogTableSelectProps)\n const emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']]\n 'update:visible': [Props['visible']]\n\n 'update:searchData': [Props['searchData']]\n 'update:data': [Props['data']]\n 'update:columnControllerVisible': [Props['columnControllerVisible']]\n 'update:displayColumns': [Props['displayColumns']]\n 'update:expandedRowKeys': [Props['expandedRowKeys']]\n 'update:filterValue': [Props['filterValue']]\n 'update:sort': [Props['sort']]\n 'update:expandedTreeNodes': [Props['expandedTreeNodes']]\n }>()\n const {\n modelValue,\n visible,\n searchData,\n data,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const { t } = useConfig('dialogTableSelect')\n const tdReadonly = useReadonly()\n const tdDisabled = useDisabled()\n const dialogRef = useTemplateRef<QdDialogInstanceFunctions>('dialog')\n\n const selectedRowKeys = ref<(string | number)[]>([])\n const selectedRows = ref<D[]>([])\n let latestSelectedRows: D[] = []\n\n const addCustom = reactive({\n visible: false,\n value: ''\n })\n const addConfirmDisabled = computed(() => isEmpty(addCustom.value))\n\n const reProps = computed(() => {\n const {\n modelValue,\n visible,\n fillOptions,\n searchData,\n data,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes,\n wrapper,\n readonly,\n\n multiple,\n disabled,\n keys,\n valueType,\n clearable,\n creatable,\n placeholder,\n size,\n\n onClear,\n onCreate,\n onChange,\n\n search,\n tableSize,\n\n addBtn,\n addConfirmBtn,\n addCancelBtn,\n addInput,\n\n ...tableOptions\n } = props\n\n const addBtnOptions: TdButtonProps = merge(\n {},\n {\n block: true,\n theme: 'primary',\n variant: 'dashed',\n icon: () => <AddIcon />,\n content: t('addText'),\n onClick: () => {\n addCustom.visible = true\n }\n },\n typeof addBtn === 'string' ? { content: addBtn } : addBtn\n )\n\n const addConfirmBtnOptions: TdButtonProps = merge(\n {},\n {\n content: t('addConfirmText'),\n onClick: confirmAddCustom\n },\n typeof addConfirmBtn === 'string'\n ? { content: addConfirmBtn, disabled: addConfirmDisabled.value }\n : { ...addConfirmBtn, disabled: addConfirmDisabled.value || addConfirmBtn?.disabled }\n )\n\n const addCancelBtnOptions: TdButtonProps = merge(\n {},\n {\n variant: 'outline',\n content: t('addCancelText'),\n onClick: cancelAddCustom\n },\n typeof addCancelBtn === 'string' ? { content: addCancelBtn } : addCancelBtn\n )\n\n const addInputOptions: TdInputProps = merge(\n {},\n { clearable: true },\n typeof addInput === 'string' ? { placeholder: addInput } : addInput\n )\n\n return {\n creatable,\n fillOptions,\n selectOptions: {\n multiple,\n readonly: readonly ?? tdReadonly.value,\n disabled: disabled ?? tdDisabled.value,\n keys,\n valueType,\n clearable,\n placeholder,\n size\n },\n dialogOptions: wrapper,\n tableOptions: {\n ...tableOptions,\n size: tableSize,\n search: {\n ...search,\n grid: merge({}, qdDialogTableSelectSearchGrid, search?.grid)\n },\n selectType: (multiple ? 'multiple' : 'single') as QdCrudTableProps['selectType'],\n rowKey: keys?.value || qdServiceSelectKeys.value\n },\n\n onClear,\n onCreate,\n onChange,\n\n addBtnOptions,\n addConfirmBtnOptions,\n addCancelBtnOptions,\n addInputOptions,\n\n models: {\n modelValue,\n visible,\n searchData,\n data,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n }\n }\n })\n\n let fillOptionsWatchStop: WatchHandle | undefined // 处理 fillOptions 合并逻辑\n\n function handleSelectChange(rowKeys: (string | number)[], options: SelectOptions<D>) {\n latestSelectedRows = options.selectedRowData\n }\n\n function handleConfirm() {\n selectedRows.value = latestSelectedRows\n visible.value = false\n\n /**\n * FIXME qd-dialog 一定要配置 destroy-on-close 并且在 modelValue 赋值前要销毁\n * 否则就会报错\n */\n const { selectOptions } = reProps.value\n const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value\n const labelKey = selectOptions.keys?.label || qdServiceSelectKeys.label\n if (selectOptions.valueType === 'value') {\n modelValue.value = selectOptions.multiple\n ? latestSelectedRows.map((item) => get(item, valueKey))\n : get(latestSelectedRows[0], valueKey)\n } else {\n const rows = selectedRows.value.map((item) => ({\n [valueKey]: get(item, valueKey),\n [labelKey]: get(item, labelKey)\n }))\n modelValue.value = selectOptions.multiple ? rows : rows[0]\n }\n\n reProps.value.onChange?.(modelValue.value, {\n option: latestSelectedRows[latestSelectedRows.length - 1],\n selectedOptions: latestSelectedRows,\n trigger: 'check'\n })\n }\n\n function openDialog() {\n const { selectOptions } = reProps.value\n if (selectOptions.readonly || selectOptions.disabled) return\n\n const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value\n if (identifyType(modelValue.value) === 'array') {\n selectedRowKeys.value = modelValue.value.map((item: (typeof modelValue.value)[number]) => {\n if (identifyType(item) === 'object') {\n return get(item, valueKey)\n }\n\n return item\n })\n } else if (identifyType(modelValue.value) === 'object') {\n selectedRowKeys.value = [get(modelValue.value, valueKey)]\n } else {\n selectedRowKeys.value = isEmpty(modelValue.value) ? [] : [modelValue.value]\n }\n visible.value = true\n }\n\n function handleClear(context: { e: MouseEvent }) {\n selectedRowKeys.value = []\n\n reProps.value.onChange?.(undefined as unknown as SelectValue, {\n e: context.e,\n option: null as unknown as D,\n selectedOptions: [],\n trigger: 'clear'\n })\n reProps.value.onClear?.(context)\n }\n\n function confirmAddCustom(e: MouseEvent) {\n reProps.value.onCreate?.(addCustom.value, (closed: boolean) => {\n visible.value = !closed\n })\n reProps.value.onChange?.(addCustom.value, {\n e,\n option: null as unknown as D,\n selectedOptions: [],\n trigger: 'check'\n })\n }\n\n function cancelAddCustom() {\n Object.assign(addCustom, {\n visible: false,\n value: ''\n })\n }\n\n function handleBeforeOpen() {\n fillOptionsWatchStop?.()\n }\n\n function handleClosed() {\n if (addCustom.visible) cancelAddCustom()\n\n if (reProps.value.dialogOptions.destroyOnClose) {\n data.value = []\n searchData.value = {}\n selectedRowKeys.value = []\n }\n }\n\n const expose = {} as QdDialogTableSelectInstanceFunctions\n\n fillOptionsWatchStop = watch(\n () => reProps.value.fillOptions,\n (fillOpts) => {\n if (!fillOpts?.length) return\n\n selectedRows.value = fillOpts as D[]\n },\n { immediate: true, deep: true }\n )\n\n onMounted(() => {\n Object.assign(expose, dialogRef.value)\n })\n</script>\n\n<style lang=\"less\" scoped>\n .qd-dialog-table-select {\n &:not(&--readonly):not(&--disabled) {\n cursor: pointer;\n }\n\n &__table {\n :deep(.qd-crud) {\n &-search > .t-card__body,\n &-table__body > .t-card__body {\n padding: 0 !important;\n }\n\n &-table__toolbar {\n display: none;\n }\n }\n\n :deep(.qd-service-table) {\n margin-top: 0;\n }\n\n &-add {\n margin-top: var(--td-comp-margin-m);\n display: flex;\n\n .t-input__wrap {\n flex: 1 1 0;\n overflow: hidden;\n margin-right: var(--td-comp-margin-m);\n }\n }\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","modelValue","visible","searchData","data","columnControllerVisible","displayColumns","expandedRowKeys","filterValue","sort","expandedTreeNodes","useVModels","passive","t","useConfig","tdReadonly","useReadonly","tdDisabled","useDisabled","dialogRef","useTemplateRef","selectedRowKeys","ref","selectedRows","latestSelectedRows","addCustom","reactive","value","addConfirmDisabled","computed","isEmpty","reProps","fillOptions","wrapper","readonly","multiple","disabled","keys","valueType","clearable","creatable","placeholder","size","onClear","onCreate","onChange","search","tableSize","addBtn","addConfirmBtn","addCancelBtn","addInput","tableOptions","addBtnOptions","merge","block","theme","variant","icon","_createVNode2","AddIcon","content","onClick","addConfirmBtnOptions","confirmAddCustom","addCancelBtnOptions","cancelAddCustom","addInputOptions","selectOptions","dialogOptions","grid","qdDialogTableSelectSearchGrid","selectType","rowKey","qdServiceSelectKeys","models","fillOptionsWatchStop","handleSelectChange","rowKeys","options","selectedRowData","handleConfirm","valueKey","labelKey","label","map","item","get","rows","option","length","selectedOptions","trigger","openDialog","identifyType","handleClear","context","undefined","e","closed","Object","assign","handleBeforeOpen","handleClosed","destroyOnClose","expose","watch","fillOpts","immediate","deep","onMounted","_createVNode","_unref","_mergeProps","class","$event","suffixIcon","SearchIcon","onConfirm","onBeforeOpen","onClosed","onSelectChange","_createSlots","_","_openBlock","_createElementBlock","_hoisted_1","_renderSlot","_ctx","$slots","_cache","TSpace","TButton","_normalizeProps","_guardReactiveProps","extractSlotsWithPrefix","name","filterName","fn","_withCtx","slotProps","originalName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqIE,UAAMA,QAAQC;AACd,UAAMC,OAAOC;AAab,UAAM;AAAA,MACJC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,IACF,IAAIC,WAA4Cd,OAAOE,MAAM;AAAA,MAC3Da,SAAS;AAAA,IACX,CAAC;AAED,UAAM;AAAA,MAAEC;AAAAA,IAAE,IAAIC,UAAU,mBAAmB;AAC3C,UAAMC,aAAaC,YAAW;AAC9B,UAAMC,aAAaC,YAAW;AAC9B,UAAMC,YAAYC,eAA0C,QAAQ;AAEpE,UAAMC,kBAAkBC,IAAyB,EAAE;AACnD,UAAMC,eAAeD,IAAS,EAAE;AAChC,QAAIE,qBAA0B,CAAA;AAE9B,UAAMC,YAAYC,SAAS;AAAA,MACzBxB,SAAS;AAAA,MACTyB,OAAO;AAAA,IACT,CAAC;AACD,UAAMC,qBAAqBC,SAAS,MAAMC,QAAQL,UAAUE,KAAK,CAAC;AAElE,UAAMI,UAAUF,SAAS,MAAM;AAC7B,YAAM;AAAA,QACJ5B,YAAAA;AAAAA,QACAC,SAAAA;AAAAA,QACA8B;AAAAA,QACA7B,YAAAA;AAAAA,QACAC,MAAAA;AAAAA,QACAC,yBAAAA;AAAAA,QACAC,gBAAAA;AAAAA,QACAC,iBAAAA;AAAAA,QACAC,aAAAA;AAAAA,QACAC,MAAAA;AAAAA,QACAC,mBAAAA;AAAAA,QACAuB;AAAAA,QACAC;AAAAA,QAEAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QAEAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QAEAC;AAAAA,QACAC;AAAAA,QAEAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QAEA,GAAGC;AAAAA,MACL,IAAIvD;AAEJ,YAAMwD,gBAA+BC,MACnC,IACA;AAAA,QACEC,OAAO;AAAA,QACPC,OAAO;AAAA,QACPC,SAAS;AAAA,QACTC,MAAMA,MAAAC,YAAAC,SAAA,MAAA,IAAA;AAAA,QACNC,SAAShD,EAAE,SAAS;AAAA,QACpBiD,SAASA,MAAM;AACbrC,oBAAUvB,UAAU;AAAA,QACtB;AAAA,MACF,GACA,OAAO8C,WAAW,WAAW;AAAA,QAAEa,SAASb;AAAAA,UAAWA,MACrD;AAEA,YAAMe,uBAAsCT,MAC1C,IACA;AAAA,QACEO,SAAShD,EAAE,gBAAgB;AAAA,QAC3BiD,SAASE;AAAAA,MACX,GACA,OAAOf,kBAAkB,WACrB;AAAA,QAAEY,SAASZ;AAAAA,QAAeb,UAAUR,mBAAmBD;AAAAA,MAAM,IAC7D;AAAA,QAAE,GAAGsB;AAAAA,QAAeb,UAAUR,mBAAmBD,SAASsB,eAAeb;AAAAA,MAAS,CACxF;AAEA,YAAM6B,sBAAqCX,MACzC,IACA;AAAA,QACEG,SAAS;AAAA,QACTI,SAAShD,EAAE,eAAe;AAAA,QAC1BiD,SAASI;AAAAA,MACX,GACA,OAAOhB,iBAAiB,WAAW;AAAA,QAAEW,SAASX;AAAAA,UAAiBA,YACjE;AAEA,YAAMiB,kBAAgCb,MACpC,IACA;AAAA,QAAEf,WAAW;AAAA,MAAK,GAClB,OAAOY,aAAa,WAAW;AAAA,QAAEV,aAAaU;AAAAA,UAAaA,QAC7D;AAEA,aAAO;AAAA,QACLX;AAAAA,QACAR;AAAAA,QACAoC,eAAe;AAAA,UACbjC;AAAAA,UACAD,UAAUA,YAAYnB,WAAWY;AAAAA,UACjCS,UAAUA,YAAYnB,WAAWU;AAAAA,UACjCU;AAAAA,UACAC;AAAAA,UACAC;AAAAA,UACAE;AAAAA,UACAC;AAAAA;QAEF2B,eAAepC;AAAAA,QACfmB,cAAc;AAAA,UACZ,GAAGA;AAAAA,UACHV,MAAMK;AAAAA,UACND,QAAQ;AAAA,YACN,GAAGA;AAAAA,YACHwB,MAAMhB,MAAM,CAAA,GAAIiB,+BAA+BzB,QAAQwB,IAAI;AAAA;UAE7DE,YAAarC,WAAW,aAAa;AAAA,UACrCsC,QAAQpC,MAAMV,SAAS+C,oBAAoB/C;AAAAA;QAG7CgB;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QAEAQ;AAAAA,QACAU;AAAAA,QACAE;AAAAA,QACAE;AAAAA,QAEAQ,QAAQ;AAAA,UACN1E,YAAAA;AAAAA,UACAC,SAAAA;AAAAA,UACAC,YAAAA;AAAAA,UACAC,MAAAA;AAAAA,UACAC,yBAAAA;AAAAA,UACAC,gBAAAA;AAAAA,UACAC,iBAAAA;AAAAA,UACAC,aAAAA;AAAAA,UACAC,MAAAA;AAAAA,UACAC,mBAAAA;AAAAA,QACF;AAAA;IAEJ,CAAC;AAED,QAAIkE;AAEJ,aAASC,mBAAmBC,SAA8BC,SAA2B;AACnFvD,2BAAqBuD,QAAQC;AAAAA,IAC/B;AAEA,aAASC,gBAAgB;AACvB1D,mBAAaI,QAAQH;AACrBtB,cAAQyB,QAAQ;AAMhB,YAAM;AAAA,QAAEyC;AAAAA,UAAkBrC,QAAQJ;AAClC,YAAMuD,WAAWd,cAAc/B,MAAMV,SAAS+C,oBAAoB/C;AAClE,YAAMwD,WAAWf,cAAc/B,MAAM+C,SAASV,oBAAoBU;AAClE,UAAIhB,cAAc9B,cAAc,SAAS;AACvCrC,mBAAW0B,QAAQyC,cAAcjC,WAC7BX,mBAAmB6D,IAAKC,UAASC,IAAID,MAAMJ,QAAQ,CAAC,IACpDK,IAAI/D,mBAAmB,CAAC,GAAG0D,QAAQ;AAAA,MACzC,OAAO;AACL,cAAMM,OAAOjE,aAAaI,MAAM0D,IAAKC,WAAU;AAAA,UAC7C,CAACJ,QAAQ,GAAGK,IAAID,MAAMJ,QAAQ;AAAA,UAC9B,CAACC,QAAQ,GAAGI,IAAID,MAAMH,QAAQ;AAAA,QAChC,EAAE;AACFlF,mBAAW0B,QAAQyC,cAAcjC,WAAWqD,OAAOA,KAAK,CAAC;AAAA,MAC3D;AAEAzD,cAAQJ,MAAMkB,WAAW5C,WAAW0B,OAAO;AAAA,QACzC8D,QAAQjE,mBAAmBA,mBAAmBkE,SAAS,CAAC;AAAA,QACxDC,iBAAiBnE;AAAAA,QACjBoE,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAEA,aAASC,aAAa;AACpB,YAAM;AAAA,QAAEzB;AAAAA,UAAkBrC,QAAQJ;AAClC,UAAIyC,cAAclC,YAAYkC,cAAchC,SAAU;AAEtD,YAAM8C,WAAWd,cAAc/B,MAAMV,SAAS+C,oBAAoB/C;AAClE,UAAImE,aAAa7F,WAAW0B,KAAK,MAAM,SAAS;AAC9CN,wBAAgBM,QAAQ1B,WAAW0B,MAAM0D,IAAKC,UAA4C;AACxF,cAAIQ,aAAaR,IAAI,MAAM,UAAU;AACnC,mBAAOC,IAAID,MAAMJ,QAAQ;AAAA,UAC3B;AAEA,iBAAOI;AAAAA,QACT,CAAC;AAAA,MACH,WAAWQ,aAAa7F,WAAW0B,KAAK,MAAM,UAAU;AACtDN,wBAAgBM,QAAQ,CAAC4D,IAAItF,WAAW0B,OAAOuD,QAAQ,CAAC;AAAA,MAC1D,OAAO;AACL7D,wBAAgBM,QAAQG,QAAQ7B,WAAW0B,KAAK,IAAI,CAAA,IAAK,CAAC1B,WAAW0B,KAAK;AAAA,MAC5E;AACAzB,cAAQyB,QAAQ;AAAA,IAClB;AAEA,aAASoE,YAAYC,SAA4B;AAC/C3E,sBAAgBM,QAAQ,CAAA;AAExBI,cAAQJ,MAAMkB,WAAWoD,QAAqC;AAAA,QAC5DC,GAAGF,QAAQE;AAAAA,QACXT,QAAQ;AAAA,QACRE,iBAAiB,CAAA;AAAA,QACjBC,SAAS;AAAA,MACX,CAAC;AACD7D,cAAQJ,MAAMgB,UAAUqD,OAAO;AAAA,IACjC;AAEA,aAAShC,iBAAiBkC,GAAe;AACvCnE,cAAQJ,MAAMiB,WAAWnB,UAAUE,OAAQwE,YAAoB;AAC7DjG,gBAAQyB,QAAQ,CAACwE;AAAAA,MACnB,CAAC;AACDpE,cAAQJ,MAAMkB,WAAWpB,UAAUE,OAAO;AAAA,QACxCuE;AAAAA,QACAT,QAAQ;AAAA,QACRE,iBAAiB,CAAA;AAAA,QACjBC,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAEA,aAAS1B,kBAAkB;AACzBkC,aAAOC,OAAO5E,WAAW;AAAA,QACvBvB,SAAS;AAAA,QACTyB,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAEA,aAAS2E,mBAAmB;AAC1B1B,6BAAoB;AAAA,IACtB;AAEA,aAAS2B,eAAe;AACtB,UAAI9E,UAAUvB,QAASgE,iBAAe;AAEtC,UAAInC,QAAQJ,MAAM0C,cAAcmC,gBAAgB;AAC9CpG,aAAKuB,QAAQ,CAAA;AACbxB,mBAAWwB,QAAQ,CAAA;AACnBN,wBAAgBM,QAAQ,CAAA;AAAA,MAC1B;AAAA,IACF;AAEA,UAAM8E,SAAS,CAAA;AAEf7B,2BAAuB8B,MACrB,MAAM3E,QAAQJ,MAAMK,aACnB2E,cAAa;AACZ,UAAI,CAACA,UAAUjB,OAAQ;AAEvBnE,mBAAaI,QAAQgF;AAAAA,IACvB,GACA;AAAA,MAAEC,WAAW;AAAA,MAAMC,MAAM;AAAA,IAAK,CAChC;AAEAC,cAAU,MAAM;AACdV,aAAOC,OAAOI,QAAQtF,UAAUQ,KAAK;AAAA,IACvC,CAAC;;8DAvaDoF,YAgBWC,eAhBXC,WAgBW;AAAA,QAfRC,OAAK,2BAA0CnF,QAAAJ,MAAQyC,cAAclC,WAAQ,qCAAA,IAAkDH,QAAAJ,MAAQyC,cAAchC,WAAQ,qCAAA,EAAA;AAAA,oBAKrJ4E,MAAA/G,UAAA;AAAA,yFAAAA,WAAU0B,QAAAwF,SAAA;AAAA,QAClBpC,SAASxD,aAAAI;AAAAA,QACT,iBAAe;AAAA,MACR,GAAAI,QAAAJ,MAAQyC,eAAa;AAAA,QAC5BN,SAAO+B;AAAAA,QACPlD,SAAOoD;AAAAA;QAEGqB,oBACT,MAAe,CAAfL,YAAeC,MAAAK,UAAA,CAAA,CAAA;;kDAInBN,YA6DYC,oBA7DZC,WA6DY;AAAA,QA5DV3F,KAAI;AAAA,QACIpB,SAAS8G,MAAA9G,OAAA;AAAA,qFAAAA,QAAOyB,QAAAwF,SAAA;AAAA,MAChB,GAAApF,QAAAJ,MAAQ0C,eAAa;AAAA,QAC5BiD,WAASrC;AAAAA,QACTsC,cAAajB;AAAAA,QACbkB,UAAQjB;AAAAA;yBAET,MAoDgB,CApDhBQ,YAoDgBC,oBApDhBC,WAoDgB;AAAA,UAnDdC,OAAM;AAAA,UACE,eAAaF,MAAA7G,UAAA;AAAA,2FAAAA,WAAUwB,QAAAwF,SAAA;AAAA,UACvB/G,MAAM4G,MAAA5G,IAAA;AAAA,+EAAAA,KAAIuB,QAAAwF,SAAA;AAAA,UACV,qBAAmB9F,gBAAAM;AAAAA,4EAAAN,gBAAeM,QAAAwF;AAAAA,UAClC,mBAAiB9F,gBAAAM;AAAAA,0EAAAN,gBAAeM,QAAAwF;AAAAA,UAChC,6BAA2BH,MAAA3G,uBAAA;AAAA,qHAAAA,wBAAuBsB,QAAAwF,SAAA;AAAA,UAClD,mBAAiBH,MAAA1G,cAAA;AAAA,mGAAAA,eAAcqB,QAAAwF,SAAA;AAAA,UAC/B,oBAAkBH,MAAAzG,eAAA;AAAA,qGAAAA,gBAAeoB,QAAAwF,SAAA;AAAA,UACjC,gBAAcH,MAAAxG,WAAA;AAAA,6FAAAA,YAAWmB,QAAAwF,SAAA;AAAA,UACzB1G,MAAMuG,MAAAvG,IAAA;AAAA,iFAAAA,KAAIkB,QAAAwF,SAAA;AAAA,UACV,uBAAqBH,MAAAtG,iBAAA;AAAA,2GAAAA,kBAAiBiB,QAAAwF,SAAA;AAAA,UAC9C,oCAAA;AAAA,UACA,mBAAgB;AAAA,QACR,GAAApF,QAAAJ,MAAQyB,cAAY;AAAA,UAC3BqE,gBAAe5C;AAAAA,SAAkB,GAAA6C,YAAA;AAAA,UAAAC,GAAA;AAAA,QAAA,GAAA,CAElB5F,QAAAJ,MAAQa;gBAAY;AAAA,sBAClC,MAcM,CAdKf,UAAUvB,WAArB0H,UAAA,GAAAC,mBAcM,OAdNC,YAcM,CAbJC,WAEOC,KAAAC,QAAA,aAAA;AAAA,YAFiBxG;AAAAA,aAAxB,MAEO,CADLsF,YAAsEC,cAAtEC,WAAsE;AAAA,YAApDhH,YAAAwB,UAAUE;AAAAA,YAAV,uBAAAuG,OAAA,CAAA,MAAAA,OAAA,CAAA,IAAAf,YAAA1F,UAAUE,QAAKwF;AAAAA,aAAUpF,QAAAJ,MAAQwC,eAAe,GAAA,MAAA,IAAA,CAAA,YAAA,CAAA,CAAA,UAGpE4C,YAQUC,MAAAmB,KAAA,GAAA;AAAA,YARDzF,MAAK;AAAA,UAAO,GAAA;AAAA,6BACnB,MAEO,CAFPqF,WAEOC,KAAAC,QAAA,mBAAA;AAAA,cAFuBxG;AAAAA,eAA9B,MAEO,CADLsF,YAAkDC,MAAAoB,MAAA,GAAAC,eAAAC,mBAAhCvG,QAAAJ,MAAQoC,oBAAoB,CAAA,GAAA,MAAA,EAAA,CAAA,UAGhDgE,WAEOC,KAAAC,QAAA,kBAAA;AAAA,cAFsBxG;AAAAA,eAA7B,MAEO,CADLsF,YAAiDC,MAAAoB,MAAA,GAAAC,eAAAC,mBAA/BvG,QAAAJ,MAAQsC,mBAAmB,CAAA,GAAA,MAAA,EAAA,CAAA;;kBAKnD8D,WAEOC,KAAAC,QAAA,WAAA;AAAA;YAFsBxG;AAAAA,aAA7B,MAEO,CADLsF,YAAqFC,MAAAoB,MAAA,GAArFnB,WAAqF;AAAA,YAA3EC,OAAM;AAAA,UAAmC,GAASnF,QAAAJ,MAAQ0B,aAAa,GAAA,MAAA,EAAA,CAAA;;+BAKpE2D,MAAAuB,sBAAA,EAAuBN,KAAAA,QAAM,QAAA,GAArC3C,UAAI;;YACVkD,MAAAlD,KAAKmD;AAAAA,YAENC,IAAAC,QAFoBC,eAAS,CAE7Bb,WAAqDC,KAAAC,QAAxC3C,KAAKuD,gDAAsBD,SAAS,CAAA,GAAA3C,QAAA,IAAA,CAAA;;uBAIlCe,MAAAuB,sBAAA,EAAuBN,KAAAA,QAAM,OAAA,GAArC3C,UAAI;;YACVkD,MAAAlD,KAAKmD;AAAAA,YAENC,IAAAC,QAFoBC,eAAS,CAE7Bb,WAAqDC,KAAAC,QAAxC3C,KAAKuD,gDAAsBD,SAAS,CAAA,GAAA3C,QAAA,IAAA,CAAA;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/service-dialog-table-select/index.vue"],"sourcesContent":["<template>\n <div class=\"qd-dialog-table-select\" v-bind=\"$attrs\" @click=\"openDialog\">\n <slot :selected-rows=\"selectedRows\">\n <t-select\n :class=\"[\n 'qd-dialog-table-select__trigger',\n reProps.selectOptions.readonly ? 'qd-dialog-table-select__trigger--readonly' : '',\n reProps.selectOptions.disabled ? 'qd-dialog-table-select__trigger--disabled' : ''\n ]\"\n v-model=\"modelValue\"\n :options=\"selectedRows\"\n :popup-visible=\"false\"\n v-bind=\"reProps.selectOptions\"\n @clear=\"handleClear\"\n >\n <template #suffixIcon>\n <search-icon />\n </template>\n </t-select>\n </slot>\n </div>\n\n <qd-dialog\n ref=\"dialog\"\n v-model:visible=\"visible\"\n v-bind=\"reProps.dialogOptions\"\n @confirm=\"handleConfirm\"\n @before-open=\"handleBeforeOpen\"\n @closed=\"handleClosed\"\n >\n <qd-crud-table\n class=\"qd-dialog-table-select__table\"\n v-model:search-data=\"searchData\"\n v-model:data=\"data\"\n v-model:selected-row-keys=\"selectedRowKeys\"\n v-model:active-row-keys=\"selectedRowKeys\"\n v-model:column-controller-visible=\"columnControllerVisible\"\n v-model:display-columns=\"displayColumns\"\n v-model:expanded-rowKeys=\"expandedRowKeys\"\n v-model:filter-value=\"filterValue\"\n v-model:sort=\"sort\"\n v-model:expanded-tree-nodes=\"expandedTreeNodes\"\n reserve-selected-row-on-paginate\n active-row-type=\"multiple\"\n v-bind=\"reProps.tableOptions\"\n @select-change=\"handleSelectChange\"\n >\n <template v-if=\"reProps.creatable\" #table-bottom-content>\n <div v-if=\"addCustom.visible\" class=\"qd-dialog-table-select__table-add\">\n <slot name=\"add-input\" :add-custom=\"addCustom\">\n <t-input v-model=\"addCustom.value\" v-bind=\"reProps.addInputOptions\" />\n </slot>\n\n <t-space size=\"small\">\n <slot name=\"add-confirm-btn\" :add-custom=\"addCustom\">\n <t-button v-bind=\"reProps.addConfirmBtnOptions\" />\n </slot>\n\n <slot name=\"add-cancel-btn\" :add-custom=\"addCustom\">\n <t-button v-bind=\"reProps.addCancelBtnOptions\" />\n </slot>\n </t-space>\n </div>\n\n <slot v-else name=\"add-btn\" :add-custom=\"addCustom\">\n <t-button class=\"qd-dialog-table-select__table-add\" v-bind=\"reProps.addBtnOptions\" />\n </slot>\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\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'table')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-crud-table>\n </qd-dialog>\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 {\n SelectOptions,\n SelectValue,\n TableRowData,\n TdButtonProps,\n TdInputProps\n } from 'tdesign-vue-next'\n import type { ServicePageParams, ServicePagination } from 'qidian-shared'\n import type {\n QdDialogTableSelectInstanceFunctions,\n QdServiceDialogTableSelectProps\n } from './types'\n import type { QdDialogDone, QdDialogInstanceFunctions } from '../dialog'\n import type { QdCrudTableProps } from '../crud'\n import { extractSlotsWithPrefix, identifyType, isEmpty } from 'qidian-shared'\n import {\n Select as TSelect,\n Button as TButton,\n Input as TInput,\n Space as TSpace\n } from 'tdesign-vue-next'\n import type { WatchHandle } from 'vue'\n import { AddIcon, SearchIcon } from 'tdesign-icons-vue-next'\n import { qdDialogTableSelectSearchGrid, qdServiceDialogTableSelectProps } from './props'\n import { computed, onMounted, reactive, ref, useTemplateRef, watch } from 'vue'\n import { useVModels } from '@vueuse/core'\n import { QdDialog } from '../dialog'\n import { QdCrudTable } from '../crud'\n import { qdServiceSelectKeys } from '../service-select/props'\n import { useDisabled, useReadonly } from '../../hooks'\n import { get, merge } from 'lodash-es'\n import { useConfig } from '../config-provider/useConfig'\n\n defineOptions({\n name: 'QdServiceDialogTableSelect'\n })\n\n type Props = QdServiceDialogTableSelectProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdServiceDialogTableSelectProps)\n const emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']]\n 'update:visible': [Props['visible']]\n\n 'update:searchData': [Props['searchData']]\n 'update:data': [Props['data']]\n 'update:columnControllerVisible': [Props['columnControllerVisible']]\n 'update:displayColumns': [Props['displayColumns']]\n 'update:expandedRowKeys': [Props['expandedRowKeys']]\n 'update:filterValue': [Props['filterValue']]\n 'update:sort': [Props['sort']]\n 'update:expandedTreeNodes': [Props['expandedTreeNodes']]\n }>()\n const {\n modelValue,\n visible,\n searchData,\n data,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const { t } = useConfig('dialogTableSelect')\n const tdReadonly = useReadonly()\n const tdDisabled = useDisabled()\n const dialogRef = useTemplateRef<QdDialogInstanceFunctions>('dialog')\n\n const selectedRowKeys = ref<(string | number)[]>([])\n const selectedRows = ref<D[]>([])\n let latestSelectedRows: D[] = []\n\n const addCustom = reactive({\n visible: false,\n value: ''\n })\n const addConfirmDisabled = computed(() => isEmpty(addCustom.value))\n\n const reProps = computed(() => {\n const {\n modelValue,\n visible,\n fillOptions,\n searchData,\n data,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes,\n wrapper,\n readonly,\n\n multiple,\n disabled,\n keys,\n valueType,\n clearable,\n creatable,\n placeholder,\n size,\n\n onClear,\n onCreate,\n onChange,\n onConfirm,\n\n search,\n tableSize,\n\n addBtn,\n addConfirmBtn,\n addCancelBtn,\n addInput,\n\n ...tableOptions\n } = props\n\n const addBtnOptions: TdButtonProps = merge(\n {},\n {\n block: true,\n theme: 'primary',\n variant: 'dashed',\n icon: () => <AddIcon />,\n content: t('addText'),\n onClick: () => {\n addCustom.visible = true\n }\n },\n typeof addBtn === 'string' ? { content: addBtn } : addBtn\n )\n\n const addConfirmBtnOptions: TdButtonProps = merge(\n {},\n {\n content: t('addConfirmText'),\n onClick: confirmAddCustom\n },\n typeof addConfirmBtn === 'string'\n ? { content: addConfirmBtn, disabled: addConfirmDisabled.value }\n : { ...addConfirmBtn, disabled: addConfirmDisabled.value || addConfirmBtn?.disabled }\n )\n\n const addCancelBtnOptions: TdButtonProps = merge(\n {},\n {\n variant: 'outline',\n content: t('addCancelText'),\n onClick: cancelAddCustom\n },\n typeof addCancelBtn === 'string' ? { content: addCancelBtn } : addCancelBtn\n )\n\n const addInputOptions: TdInputProps = merge(\n {},\n { clearable: true },\n typeof addInput === 'string' ? { placeholder: addInput } : addInput\n )\n\n const dialogOptions = merge({}, { header: placeholder }, wrapper)\n\n return {\n creatable,\n fillOptions,\n selectOptions: {\n multiple,\n readonly: readonly ?? tdReadonly.value,\n disabled: disabled ?? tdDisabled.value,\n keys,\n valueType,\n clearable,\n placeholder,\n size\n },\n dialogOptions,\n tableOptions: {\n ...tableOptions,\n size: tableSize,\n search: {\n ...search,\n grid: merge({}, qdDialogTableSelectSearchGrid, search?.grid)\n },\n selectType: (multiple ? 'multiple' : 'single') as QdCrudTableProps['selectType'],\n rowKey: keys?.value || qdServiceSelectKeys.value\n },\n\n onClear,\n onCreate,\n onChange,\n onConfirm,\n\n addBtnOptions,\n addConfirmBtnOptions,\n addCancelBtnOptions,\n addInputOptions,\n\n models: {\n modelValue,\n visible,\n searchData,\n data,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n }\n }\n })\n\n let fillOptionsWatchStop: WatchHandle | undefined // 处理 fillOptions 合并逻辑\n\n function handleSelectChange(rowKeys: (string | number)[], options: SelectOptions<D>) {\n latestSelectedRows = options.selectedRowData\n }\n\n function handleConfirm(done: QdDialogDone) {\n selectedRows.value = latestSelectedRows\n const { selectOptions } = reProps.value\n const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value\n const labelKey = selectOptions.keys?.label || qdServiceSelectKeys.label\n if (selectOptions.valueType === 'value') {\n modelValue.value = selectOptions.multiple\n ? latestSelectedRows.map((item) => get(item, valueKey))\n : get(latestSelectedRows[0], valueKey)\n } else {\n const rows = latestSelectedRows.map((item) => ({\n [valueKey]: get(item, valueKey),\n [labelKey]: get(item, labelKey)\n }))\n modelValue.value = selectOptions.multiple ? rows : rows[0]\n }\n\n const eventParams = [\n modelValue.value,\n {\n option: latestSelectedRows[latestSelectedRows.length - 1],\n selectedOptions: latestSelectedRows,\n trigger: 'check'\n }\n ] as const\n reProps.value.onChange?.(...eventParams)\n\n const onConfirm = reProps.value.onConfirm\n if (!onConfirm) {\n visible.value = false\n return\n }\n\n return onConfirm(...eventParams, done)\n }\n\n function openDialog() {\n const { selectOptions } = reProps.value\n if (selectOptions.readonly || selectOptions.disabled) return\n\n visible.value = true\n }\n\n function handleClear(context: { e: MouseEvent }) {\n selectedRowKeys.value = []\n\n reProps.value.onChange?.(undefined as unknown as SelectValue, {\n e: context.e,\n option: null as unknown as D,\n selectedOptions: [],\n trigger: 'clear'\n })\n reProps.value.onClear?.(context)\n }\n\n function confirmAddCustom(e: MouseEvent) {\n reProps.value.onCreate?.(addCustom.value, (closed: boolean) => {\n visible.value = !closed\n })\n reProps.value.onChange?.(addCustom.value, {\n e,\n option: null as unknown as D,\n selectedOptions: [],\n trigger: 'check'\n })\n }\n\n function cancelAddCustom() {\n Object.assign(addCustom, {\n visible: false,\n value: ''\n })\n }\n\n function handleBeforeOpen() {\n fillOptionsWatchStop?.()\n\n const { selectOptions } = reProps.value\n const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value\n if (identifyType(modelValue.value) === 'array') {\n selectedRowKeys.value = modelValue.value.map((item: (typeof modelValue.value)[number]) => {\n if (identifyType(item) === 'object') {\n return get(item, valueKey)\n }\n\n return item\n })\n } else if (identifyType(modelValue.value) === 'object') {\n selectedRowKeys.value = [get(modelValue.value, valueKey)]\n } else {\n selectedRowKeys.value = isEmpty(modelValue.value) ? [] : [modelValue.value]\n }\n }\n\n function handleClosed() {\n if (addCustom.visible) cancelAddCustom()\n\n if (reProps.value.dialogOptions.destroyOnClose) {\n data.value = []\n searchData.value = {}\n selectedRowKeys.value = []\n }\n }\n\n const expose = {} as QdDialogTableSelectInstanceFunctions\n\n fillOptionsWatchStop = watch(\n () => reProps.value.fillOptions,\n (fillOpts) => {\n if (!fillOpts?.length) return\n\n selectedRows.value = fillOpts as D[]\n },\n { immediate: true, deep: true }\n )\n\n onMounted(() => {\n Object.assign(expose, dialogRef.value)\n })\n</script>\n\n<style lang=\"less\" scoped>\n .qd-dialog-table-select {\n width: 100%;\n\n &__trigger {\n width: 100%;\n\n &:not(&--readonly):not(&--disabled) {\n cursor: pointer;\n }\n }\n\n &__table {\n :deep(.qd-crud) {\n &-search > .t-card__body,\n &-table__body > .t-card__body {\n padding: 0 !important;\n }\n\n &-table__toolbar {\n display: none;\n }\n }\n\n :deep(.qd-service-table) {\n margin-top: 0;\n }\n\n &-add {\n margin-top: var(--td-comp-margin-m);\n display: flex;\n\n .t-input__wrap {\n flex: 1 1 0;\n overflow: hidden;\n margin-right: var(--td-comp-margin-m);\n }\n }\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","modelValue","visible","searchData","data","columnControllerVisible","displayColumns","expandedRowKeys","filterValue","sort","expandedTreeNodes","useVModels","passive","t","useConfig","tdReadonly","useReadonly","tdDisabled","useDisabled","dialogRef","useTemplateRef","selectedRowKeys","ref","selectedRows","latestSelectedRows","addCustom","reactive","value","addConfirmDisabled","computed","isEmpty","reProps","fillOptions","wrapper","readonly","multiple","disabled","keys","valueType","clearable","creatable","placeholder","size","onClear","onCreate","onChange","onConfirm","search","tableSize","addBtn","addConfirmBtn","addCancelBtn","addInput","tableOptions","addBtnOptions","merge","block","theme","variant","icon","_createVNode2","AddIcon","content","onClick","addConfirmBtnOptions","confirmAddCustom","addCancelBtnOptions","cancelAddCustom","addInputOptions","dialogOptions","header","selectOptions","grid","qdDialogTableSelectSearchGrid","selectType","rowKey","qdServiceSelectKeys","models","fillOptionsWatchStop","handleSelectChange","rowKeys","options","selectedRowData","handleConfirm","done","valueKey","labelKey","label","map","item","get","rows","eventParams","option","length","selectedOptions","trigger","openDialog","handleClear","context","undefined","e","closed","Object","assign","handleBeforeOpen","identifyType","handleClosed","destroyOnClose","expose","watch","fillOpts","immediate","deep","onMounted","_createElementVNode","_mergeProps","class","$attrs","_renderSlot","_ctx","$slots","_createVNode","_unref","$event","suffixIcon","SearchIcon","onBeforeOpen","onClosed","onSelectChange","_createSlots","_","_openBlock","_createElementBlock","_hoisted_1","_cache","TSpace","TButton","_normalizeProps","_guardReactiveProps","extractSlotsWithPrefix","name","filterName","fn","_withCtx","slotProps","originalName"],"mappings":"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"}
|
|
@@ -16,20 +16,19 @@ export declare const qdServiceDialogTableSelectProps: {
|
|
|
16
16
|
readonly clearable: false;
|
|
17
17
|
readonly valueType: "value";
|
|
18
18
|
readonly wrapper: () => {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
readonly showOverlay: true;
|
|
19
|
+
width: "min(960px, 100%)";
|
|
20
|
+
theme: "default";
|
|
21
|
+
attach: "body";
|
|
22
|
+
footer: true;
|
|
23
|
+
closeBtn: true;
|
|
24
|
+
closeOnEscKeydown: true;
|
|
25
|
+
closeOnOverlayClick: false;
|
|
26
|
+
confirmOnEnter: undefined;
|
|
27
|
+
destroyOnClose: false;
|
|
28
|
+
lazy: true;
|
|
29
|
+
placement: "center";
|
|
30
|
+
preventScrollThrough: true;
|
|
31
|
+
showOverlay: true;
|
|
33
32
|
};
|
|
34
33
|
readonly data: () => never[];
|
|
35
34
|
readonly columnControllerVisible: undefined;
|
|
@@ -7,6 +7,7 @@ const {
|
|
|
7
7
|
reserveSelectedRowOnPaginate,
|
|
8
8
|
...qdServiceTableOtherProps
|
|
9
9
|
} = qdServiceTableProps;
|
|
10
|
+
const { header, ...qdDialogOtherProps } = qdDialogProps;
|
|
10
11
|
const qdDialogTableSelectSearchGrid = {
|
|
11
12
|
col: {
|
|
12
13
|
xs: 4,
|
|
@@ -25,7 +26,7 @@ const qdServiceDialogTableSelectProps = {
|
|
|
25
26
|
disabled: void 0,
|
|
26
27
|
clearable: false,
|
|
27
28
|
valueType: "value",
|
|
28
|
-
wrapper: () =>
|
|
29
|
+
wrapper: () => qdDialogOtherProps
|
|
29
30
|
};
|
|
30
31
|
export {
|
|
31
32
|
qdDialogTableSelectSearchGrid,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.mjs","sources":["../../../src/components/service-dialog-table-select/props.ts"],"sourcesContent":["import { qdDialogProps } from '../dialog/props'\nimport { qdServiceTableProps } from '../service/table/props'\n\nconst {\n selectedRowKeys,\n activeRowKeys,\n rowKey,\n reserveSelectedRowOnPaginate,\n ...qdServiceTableOtherProps\n} = qdServiceTableProps\n\nexport const qdDialogTableSelectSearchGrid = {\n col: {\n xs: 4,\n sm: 4,\n md: 3,\n lg: 3,\n xl: 3,\n xxl: 2\n }\n}\n\nexport const qdServiceDialogTableSelectProps = {\n ...qdServiceTableOtherProps,\n\n searchData: () => ({}),\n\n multiple: false,\n readonly: undefined,\n disabled: undefined,\n clearable: false,\n valueType: 'value',\n\n wrapper: () =>
|
|
1
|
+
{"version":3,"file":"props.mjs","sources":["../../../src/components/service-dialog-table-select/props.ts"],"sourcesContent":["import { qdDialogProps } from '../dialog/props'\nimport { qdServiceTableProps } from '../service/table/props'\n\nconst {\n selectedRowKeys,\n activeRowKeys,\n rowKey,\n reserveSelectedRowOnPaginate,\n ...qdServiceTableOtherProps\n} = qdServiceTableProps\n\nconst { header, ...qdDialogOtherProps } = qdDialogProps\n\nexport const qdDialogTableSelectSearchGrid = {\n col: {\n xs: 4,\n sm: 4,\n md: 3,\n lg: 3,\n xl: 3,\n xxl: 2\n }\n}\n\nexport const qdServiceDialogTableSelectProps = {\n ...qdServiceTableOtherProps,\n\n searchData: () => ({}),\n\n multiple: false,\n readonly: undefined,\n disabled: undefined,\n clearable: false,\n valueType: 'value',\n\n wrapper: () => qdDialogOtherProps\n} as const\n"],"names":[],"mappings":";;AAGA,MAAM;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,IAAI;AAEJ,MAAM,EAAE,QAAQ,GAAG,mBAAA,IAAuB;AAEnC,MAAM,gCAAgC;AAAA,EAC3C,KAAK;AAAA,IACH,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,KAAK;AAAA,EAAA;AAET;AAEO,MAAM,kCAAkC;AAAA,EAC7C,GAAG;AAAA,EAEH,YAAY,OAAO,CAAA;AAAA,EAEnB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,WAAW;AAAA,EAEX,SAAS,MAAM;AACjB;"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import type { ServicePageParams, ServicePagination } from 'qidian-shared';
|
|
2
|
-
import type { TableRowData, TdButtonProps, TdInputProps } from 'tdesign-vue-next';
|
|
2
|
+
import type { SelectValue, SelectValueChangeTrigger, TableRowData, TdButtonProps, TdInputProps } from 'tdesign-vue-next';
|
|
3
3
|
import type { QdCrudTableProps } from '../crud';
|
|
4
4
|
import type { QdDialogInstanceFunctions, QdDialogProps } from '../dialog';
|
|
5
5
|
import type { QdServiceSelectProps } from '../service-select';
|
|
6
6
|
import type { QdDialogDone } from '../dialog';
|
|
7
7
|
export interface QdServiceDialogTableSelectProps<D extends TableRowData = TableRowData, R = unknown, P = ServicePageParams, TP = P, Pag extends ServicePagination = ServicePagination> extends Omit<QdCrudTableProps<D, R, P, TP, Pag>, 'add' | 'actions' | 'edit' | 'view' | 'del' | 'rowActions' | 'form' | 'selectedRowKeys' | 'activeRowKeys' | 'activeRowType' | 'rowKey' | 'selectType' | 'size' | 'reserveSelectedRowOnPaginate' | 'onAsyncLoadingClick' | 'onCellClick' | 'onChange' | 'onColumnChange' | 'onColumnControllerVisibleChange' | 'onDataChange' | 'onDisplayColumnsChange' | 'onDragSort' | 'onExpandChange' | 'onFilterChange' | 'onRowEdit' | 'onRowValidate' | 'onSelectChange' | 'onSortChange' | 'onValidate'>, Pick<QdServiceSelectProps<D, R, P, TP, Pag>, 'modelValue' | 'multiple' | 'readonly' | 'disabled' | 'placeholder' | 'clearable' | 'creatable' | 'keys' | 'size' | 'valueType' | 'fillOptions' | 'onClear' | 'onChange'> {
|
|
8
8
|
onCreate?: (value: string | number | boolean, done: QdDialogDone) => void;
|
|
9
|
+
onConfirm?: (value: SelectValue, context: {
|
|
10
|
+
option?: D;
|
|
11
|
+
selectedOptions: D[];
|
|
12
|
+
trigger: SelectValueChangeTrigger;
|
|
13
|
+
}, done: QdDialogDone) => void | boolean | Promise<void | boolean>;
|
|
9
14
|
tableSize?: QdCrudTableProps['size'];
|
|
10
15
|
visible?: boolean;
|
|
11
16
|
wrapper?: Omit<QdDialogProps, 'visible' | 'onBeforeClose' | 'onBeforeOpen' | 'onCancel' | 'onClose' | 'onCloseBtnClick' | 'onClosed' | 'onConfirm' | 'onEscKeydown' | 'onOpened' | 'onOverlayClick'>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { QdServicePopupTableSelectProps } from './types';
|
|
2
|
+
import type { TableRowData } from 'tdesign-vue-next';
|
|
3
|
+
import type { ServicePageParams, ServicePagination } from 'qidian-shared';
|
|
4
|
+
export declare function defineQdServicePopupTableSelect<D extends TableRowData = TableRowData, R = unknown, P = ServicePageParams, TP = P, Pag extends ServicePagination = ServicePagination>(config: QdServicePopupTableSelectProps<D, R, P, TP, Pag>): QdServicePopupTableSelectProps<D, R, P, TP, Pag>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.mjs","sources":["../../../src/components/service-popup-table-select/define.ts"],"sourcesContent":["import type { QdServicePopupTableSelectProps } from './types'\nimport type { TableRowData } from 'tdesign-vue-next'\nimport type { ServicePageParams, ServicePagination } from 'qidian-shared'\n\n/**\n * 定义 Service Popup Table Select 配置,提供类型推导\n */\nexport function defineQdServicePopupTableSelect<\n D extends TableRowData = TableRowData,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n>(config: QdServicePopupTableSelectProps<D, R, P, TP, Pag>): QdServicePopupTableSelectProps<D, R, P, TP, Pag> {\n return config\n}"],"names":[],"mappings":"AAOO,SAAS,gCAMd,QAA4G;AAC5G,SAAO;AACT;"}
|
|
@@ -20,6 +20,10 @@ declare const _default: <D extends TableRowData = TableRowData, R = unknown, P =
|
|
|
20
20
|
[x: string]: ((props: any) => any) | undefined;
|
|
21
21
|
} & {
|
|
22
22
|
[x: string]: ((props: any) => any) | undefined;
|
|
23
|
+
} & {
|
|
24
|
+
default?: (props: {
|
|
25
|
+
selectedRows: import("@vue/reactivity").UnwrapRefSimple<D>[];
|
|
26
|
+
}) => any;
|
|
23
27
|
} & {
|
|
24
28
|
'add-input'?: (props: {
|
|
25
29
|
addCustom: {
|
|
@@ -2,7 +2,7 @@ import _sfc_main from "./index.vue2.mjs";
|
|
|
2
2
|
/* empty css */
|
|
3
3
|
/* empty css */
|
|
4
4
|
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
5
|
-
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
5
|
+
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-e27012b0"]]);
|
|
6
6
|
export {
|
|
7
7
|
index as default
|
|
8
8
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, mergeDefaults, ref, reactive, computed, createVNode, watch, createBlock, openBlock, unref, mergeProps, isRef, withCtx, createSlots, renderList, createElementBlock,
|
|
1
|
+
import { defineComponent, mergeDefaults, ref, reactive, computed, createVNode, watch, createBlock, openBlock, unref, mergeProps, isRef, withCtx, renderSlot, createSlots, renderList, createElementBlock, normalizeProps, guardReactiveProps } from "vue";
|
|
2
2
|
import { isEmpty, identifyType, extractSlotsWithPrefix } from "qidian-shared";
|
|
3
3
|
import { Popup, Select, Input, Space, Button } from "tdesign-vue-next";
|
|
4
4
|
import { AddIcon, SearchIcon } from "tdesign-icons-vue-next";
|
|
@@ -631,7 +631,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
631
631
|
}, slotProps), void 0, true)])
|
|
632
632
|
};
|
|
633
633
|
})]), 1040, ["search-data", "data", "selected-row-keys", "active-row-keys", "column-controller-visible", "display-columns", "expanded-rowKeys", "filter-value", "sort", "expanded-tree-nodes"])]),
|
|
634
|
-
default: withCtx(() => [
|
|
634
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default", {
|
|
635
|
+
selectedRows: selectedRows.value
|
|
636
|
+
}, () => [createVNode(unref(Select), mergeProps({
|
|
635
637
|
modelValue: unref(modelValue),
|
|
636
638
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(modelValue) ? modelValue.value = $event : null),
|
|
637
639
|
options: selectedRows.value,
|
|
@@ -641,7 +643,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
641
643
|
}), {
|
|
642
644
|
suffixIcon: withCtx(() => [createVNode(unref(SearchIcon))]),
|
|
643
645
|
_: 1
|
|
644
|
-
}, 16, ["modelValue", "options"])]),
|
|
646
|
+
}, 16, ["modelValue", "options"])], true)]),
|
|
645
647
|
_: 3
|
|
646
648
|
}, 16, ["modelValue"]);
|
|
647
649
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/service-popup-table-select/index.vue"],"sourcesContent":["<template>\n <t-popup v-model=\"popupVisible\" v-bind=\"reProps.popupOptions\">\n <t-select\n v-model=\"modelValue\"\n :options=\"selectedRows\"\n :popup-visible=\"false\"\n v-bind=\"reProps.selectOptions\"\n @clear=\"handleClear\"\n >\n <template #suffixIcon>\n <search-icon />\n </template>\n </t-select>\n\n <template #content>\n <qd-crud-table\n class=\"qd-popup-table-select__table\"\n v-model:search-data=\"searchData\"\n v-model:data=\"data\"\n v-model:selected-row-keys=\"selectedRowKeys\"\n v-model:active-row-keys=\"selectedRowKeys\"\n v-model:column-controller-visible=\"columnControllerVisible\"\n v-model:display-columns=\"displayColumns\"\n v-model:expanded-rowKeys=\"expandedRowKeys\"\n v-model:filter-value=\"filterValue\"\n v-model:sort=\"sort\"\n v-model:expanded-tree-nodes=\"expandedTreeNodes\"\n reserve-selected-row-on-paginate\n active-row-type=\"multiple\"\n v-bind=\"reProps.tableOptions\"\n @select-change=\"handleSelectChange\"\n >\n <template v-if=\"reProps.creatable\" #table-bottom-content>\n <div v-if=\"addCustom.visible\" class=\"qd-popup-table-select__table-add\">\n <slot name=\"add-input\" :add-custom=\"addCustom\">\n <t-input v-model=\"addCustom.value\" v-bind=\"reProps.addInputOptions\" />\n </slot>\n\n <t-space size=\"small\">\n <slot name=\"add-confirm-btn\" :add-custom=\"addCustom\">\n <t-button v-bind=\"reProps.addConfirmBtnOptions\" />\n </slot>\n\n <slot name=\"add-cancel-btn\" :add-custom=\"addCustom\">\n <t-button v-bind=\"reProps.addCancelBtnOptions\" />\n </slot>\n </t-space>\n </div>\n\n <slot v-else name=\"add-btn\" :add-custom=\"addCustom\">\n <t-button class=\"qd-popup-table-select__table-add\" v-bind=\"reProps.addBtnOptions\" />\n </slot>\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\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'table')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" :add-custom=\"addCustom\" v-bind=\"slotProps\" />\n </template>\n </qd-crud-table>\n </template>\n </t-popup>\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 {\n SelectOptions,\n SelectValue,\n TableRowData,\n TdButtonProps,\n TdInputProps\n } from 'tdesign-vue-next'\n import type { QdServicePopupTableSelectProps } from './types'\n import type { ServicePageParams, ServicePagination } from 'qidian-shared'\n import type { QdCrudTableProps } from '../crud'\n import type { WatchHandle } from 'vue'\n import { extractSlotsWithPrefix, identifyType } from 'qidian-shared'\n import {\n Popup as TPopup,\n Select as TSelect,\n Button as TButton,\n Input as TInput,\n Space as TSpace\n } from 'tdesign-vue-next'\n import { AddIcon, SearchIcon } from 'tdesign-icons-vue-next'\n import { qdServicePopup, qdServicePopupTableSelectProps } from './props'\n import { useVModels } from '@vueuse/core'\n import { computed, reactive, ref, watch } from 'vue'\n import { get, merge } from 'lodash-es'\n import { qdDialogTableSelectSearchGrid } from '../service-dialog-table-select/props'\n import { qdServiceSelectKeys } from '../service-select/props'\n import { QdCrudTable } from '../crud'\n import { isEmpty } from 'qidian-shared'\n import { useConfig } from '../config-provider/useConfig'\n import { useDisabled, useReadonly } from '../../hooks'\n\n defineOptions({\n name: 'QdServicePopupTableSelect'\n })\n\n type Props = QdServicePopupTableSelectProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdServicePopupTableSelectProps)\n const emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']]\n 'update:popupVisible': [Props['popupVisible']]\n\n 'update:searchData': [Props['searchData']]\n 'update:data': [Props['data']]\n 'update:columnControllerVisible': [Props['columnControllerVisible']]\n 'update:displayColumns': [Props['displayColumns']]\n 'update:expandedRowKeys': [Props['expandedRowKeys']]\n 'update:filterValue': [Props['filterValue']]\n 'update:sort': [Props['sort']]\n 'update:expandedTreeNodes': [Props['expandedTreeNodes']]\n }>()\n const {\n modelValue,\n popupVisible,\n searchData,\n data,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const { t } = useConfig('dialogTableSelect')\n const tdReadonly = useReadonly()\n const tdDisabled = useDisabled()\n\n const selectedRowKeys = ref<(string | number)[]>([])\n const selectedRows = ref<D[]>([])\n\n const addCustom = reactive({\n visible: false,\n value: ''\n })\n const addConfirmDisabled = computed(() => isEmpty(addCustom.value))\n\n const reProps = computed(() => {\n const {\n modelValue,\n popupVisible,\n popupProps,\n fillOptions,\n searchData,\n data: inData,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes,\n readonly,\n\n multiple,\n disabled,\n keys,\n valueType,\n clearable,\n creatable,\n placeholder,\n size,\n\n onClear,\n onCreate,\n onChange,\n\n search,\n tableSize,\n\n addBtn,\n addConfirmBtn,\n addCancelBtn,\n addInput,\n\n ...tableOptions\n } = props\n\n const rePopupOptions = merge({}, qdServicePopup, { trigger: 'click' } as const, popupProps, {\n disabled: tdDisabled.value || tdReadonly.value || disabled || readonly || popupProps?.disabled\n })\n const onVisibleChange = rePopupOptions.onVisibleChange\n rePopupOptions.onVisibleChange = (visible, context) => {\n onVisibleChange?.(visible, context)\n\n if (visible) {\n fillOptionsWatchStop?.()\n handleOpen()\n } else {\n if (addCustom.visible) cancelAddCustom()\n if (reProps.value.popupOptions.destroyOnClose) {\n data.value = []\n searchData.value = {}\n selectedRowKeys.value = []\n }\n }\n }\n\n let reOverlayClassName = rePopupOptions.overlayClassName\n if (!reOverlayClassName) {\n reOverlayClassName = 'qd-popup-table-select__overlay'\n } else if (typeof reOverlayClassName === 'string') {\n reOverlayClassName += ' qd-popup-table-select__overlay'\n } else if (identifyType(reOverlayClassName) === 'array') {\n reOverlayClassName.push('qd-popup-table-select__overlay')\n } else if (identifyType(reOverlayClassName) === 'object') {\n ;(\n reOverlayClassName as {\n [className: string]: any\n }\n )['qd-popup-table-select__overlay'] = true\n }\n\n rePopupOptions.overlayClassName = reOverlayClassName\n\n const addBtnOptions: TdButtonProps = merge(\n {},\n {\n block: true,\n theme: 'primary',\n variant: 'dashed',\n icon: () => <AddIcon />,\n content: t('addText'),\n onClick: () => {\n addCustom.visible = true\n }\n },\n typeof addBtn === 'string' ? { content: addBtn } : addBtn\n )\n\n const addConfirmBtnOptions: TdButtonProps = merge(\n {},\n {\n content: t('addConfirmText'),\n onClick: confirmAddCustom\n },\n typeof addConfirmBtn === 'string'\n ? { content: addConfirmBtn, disabled: addConfirmDisabled.value }\n : { ...addConfirmBtn, disabled: addConfirmDisabled.value || addConfirmBtn?.disabled }\n )\n\n const addCancelBtnOptions: TdButtonProps = merge(\n {},\n {\n variant: 'outline',\n content: t('addCancelText'),\n onClick: cancelAddCustom\n },\n typeof addCancelBtn === 'string' ? { content: addCancelBtn } : addCancelBtn\n )\n\n const addInputOptions: TdInputProps = merge(\n {},\n { clearable: true },\n typeof addInput === 'string' ? { placeholder: addInput } : addInput\n )\n\n return {\n creatable,\n fillOptions,\n popupOptions: rePopupOptions,\n selectOptions: {\n multiple,\n readonly,\n disabled,\n keys,\n valueType,\n clearable,\n placeholder,\n size\n },\n tableOptions: {\n ...tableOptions,\n size: tableSize,\n search: {\n ...search,\n grid: merge({}, qdDialogTableSelectSearchGrid, search?.grid)\n },\n selectType: (multiple ? 'multiple' : 'single') as QdCrudTableProps['selectType'],\n rowKey: keys?.value || qdServiceSelectKeys.value\n },\n\n onClear,\n onCreate,\n onChange,\n\n addBtnOptions,\n addConfirmBtnOptions,\n addCancelBtnOptions,\n addInputOptions,\n\n models: {\n modelValue,\n popupVisible,\n searchData,\n data: inData,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n }\n }\n })\n\n let fillOptionsWatchStop: WatchHandle | undefined // 处理 fillOptions 合并逻辑\n\n function handleSelectChange(rowKeys: (string | number)[], options: SelectOptions<D>) {\n selectedRows.value = options.selectedRowData\n\n const { selectOptions } = reProps.value\n const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value\n const labelKey = selectOptions.keys?.label || qdServiceSelectKeys.label\n if (selectOptions.valueType === 'value') {\n modelValue.value = selectOptions.multiple\n ? selectedRows.value.map((item) => get(item, valueKey))\n : get(selectedRows.value[0], valueKey)\n } else {\n const rows = selectedRows.value.map((item) => ({\n [valueKey]: get(item, valueKey),\n [labelKey]: get(item, labelKey)\n }))\n modelValue.value = selectOptions.multiple ? rows : rows[0]\n }\n\n reProps.value.onChange?.(modelValue.value, {\n option: selectedRows.value[selectedRows.value.length - 1] as D,\n selectedOptions: selectedRows.value as D[],\n trigger: 'check'\n })\n }\n\n function handleOpen() {\n const { selectOptions } = reProps.value\n\n const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value\n if (identifyType(modelValue.value) === 'array') {\n selectedRowKeys.value = modelValue.value.map((item: (typeof modelValue.value)[number]) => {\n if (identifyType(item) === 'object') {\n return get(item, valueKey)\n }\n\n return item\n })\n } else if (identifyType(modelValue.value) === 'object') {\n selectedRowKeys.value = [get(modelValue.value, valueKey)]\n } else {\n selectedRowKeys.value = isEmpty(modelValue.value) ? [] : [modelValue.value]\n }\n }\n\n function handleClear(context: { e: MouseEvent }) {\n selectedRowKeys.value = []\n\n reProps.value.onChange?.(undefined as unknown as SelectValue, {\n e: context.e,\n option: null as unknown as D,\n selectedOptions: [],\n trigger: 'clear'\n })\n reProps.value.onClear?.(context)\n }\n\n function confirmAddCustom(e: MouseEvent) {\n reProps.value.onCreate?.(addCustom.value)\n reProps.value.onChange?.(addCustom.value, {\n e,\n option: null as unknown as D,\n selectedOptions: [],\n trigger: 'check'\n })\n popupVisible.value = false\n reProps.value.popupOptions.onVisibleChange?.(popupVisible.value, {\n e,\n trigger: 'trigger-element-close'\n })\n }\n\n function cancelAddCustom() {\n Object.assign(addCustom, {\n visible: false,\n value: ''\n })\n }\n\n fillOptionsWatchStop = watch(\n () => reProps.value.fillOptions,\n (fillOpts) => {\n if (!fillOpts?.length) return\n\n selectedRows.value = fillOpts as D[]\n },\n { immediate: true, deep: true }\n )\n</script>\n\n<style lang=\"less\">\n .qd-popup-table-select__overlay {\n width: min(960px, 100%);\n }\n</style>\n\n<style lang=\"less\" scoped>\n .qd-popup-table-select {\n &__table {\n :deep(.qd-crud) {\n &-search > .t-card__body,\n &-table__body > .t-card__body {\n padding: 0 !important;\n }\n\n &-table__toolbar {\n display: none;\n }\n }\n\n :deep(.qd-service-table) {\n margin-top: 0;\n }\n\n &-add {\n margin-top: var(--td-comp-margin-m);\n display: flex;\n\n .t-input__wrap {\n flex: 1 1 0;\n overflow: hidden;\n margin-right: var(--td-comp-margin-m);\n }\n }\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","modelValue","popupVisible","searchData","data","columnControllerVisible","displayColumns","expandedRowKeys","filterValue","sort","expandedTreeNodes","useVModels","passive","t","useConfig","tdReadonly","useReadonly","tdDisabled","useDisabled","selectedRowKeys","ref","selectedRows","addCustom","reactive","visible","value","addConfirmDisabled","computed","isEmpty","reProps","popupProps","fillOptions","inData","readonly","multiple","disabled","keys","valueType","clearable","creatable","placeholder","size","onClear","onCreate","onChange","search","tableSize","addBtn","addConfirmBtn","addCancelBtn","addInput","tableOptions","rePopupOptions","merge","qdServicePopup","trigger","onVisibleChange","context","fillOptionsWatchStop","handleOpen","cancelAddCustom","popupOptions","destroyOnClose","reOverlayClassName","overlayClassName","identifyType","push","addBtnOptions","block","theme","variant","icon","_createVNode2","AddIcon","content","onClick","addConfirmBtnOptions","confirmAddCustom","addCancelBtnOptions","addInputOptions","selectOptions","grid","qdDialogTableSelectSearchGrid","selectType","rowKey","qdServiceSelectKeys","models","handleSelectChange","rowKeys","options","selectedRowData","valueKey","labelKey","label","map","item","get","rows","option","length","selectedOptions","handleClear","undefined","e","Object","assign","watch","fillOpts","immediate","deep","_openBlock","_createBlock","_unref","_mergeProps","$event","_createVNode","class","onSelectChange","_createSlots","_","_createElementBlock","_hoisted_1","_renderSlot","_ctx","$slots","_cache","TSpace","TButton","_normalizeProps","_guardReactiveProps","extractSlotsWithPrefix","name","filterName","fn","_withCtx","slotProps","originalName","suffixIcon","SearchIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/service-popup-table-select/index.vue"],"sourcesContent":["<template>\n <t-popup v-model=\"popupVisible\" v-bind=\"reProps.popupOptions\">\n <slot :selected-rows=\"selectedRows\">\n <t-select\n v-model=\"modelValue\"\n :options=\"selectedRows\"\n :popup-visible=\"false\"\n v-bind=\"reProps.selectOptions\"\n @clear=\"handleClear\"\n >\n <template #suffixIcon>\n <search-icon />\n </template>\n </t-select>\n </slot>\n\n <template #content>\n <qd-crud-table\n class=\"qd-popup-table-select__table\"\n v-model:search-data=\"searchData\"\n v-model:data=\"data\"\n v-model:selected-row-keys=\"selectedRowKeys\"\n v-model:active-row-keys=\"selectedRowKeys\"\n v-model:column-controller-visible=\"columnControllerVisible\"\n v-model:display-columns=\"displayColumns\"\n v-model:expanded-rowKeys=\"expandedRowKeys\"\n v-model:filter-value=\"filterValue\"\n v-model:sort=\"sort\"\n v-model:expanded-tree-nodes=\"expandedTreeNodes\"\n reserve-selected-row-on-paginate\n active-row-type=\"multiple\"\n v-bind=\"reProps.tableOptions\"\n @select-change=\"handleSelectChange\"\n >\n <template v-if=\"reProps.creatable\" #table-bottom-content>\n <div v-if=\"addCustom.visible\" class=\"qd-popup-table-select__table-add\">\n <slot name=\"add-input\" :add-custom=\"addCustom\">\n <t-input v-model=\"addCustom.value\" v-bind=\"reProps.addInputOptions\" />\n </slot>\n\n <t-space size=\"small\">\n <slot name=\"add-confirm-btn\" :add-custom=\"addCustom\">\n <t-button v-bind=\"reProps.addConfirmBtnOptions\" />\n </slot>\n\n <slot name=\"add-cancel-btn\" :add-custom=\"addCustom\">\n <t-button v-bind=\"reProps.addCancelBtnOptions\" />\n </slot>\n </t-space>\n </div>\n\n <slot v-else name=\"add-btn\" :add-custom=\"addCustom\">\n <t-button class=\"qd-popup-table-select__table-add\" v-bind=\"reProps.addBtnOptions\" />\n </slot>\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\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'table')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" :add-custom=\"addCustom\" v-bind=\"slotProps\" />\n </template>\n </qd-crud-table>\n </template>\n </t-popup>\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 {\n SelectOptions,\n SelectValue,\n TableRowData,\n TdButtonProps,\n TdInputProps\n } from 'tdesign-vue-next'\n import type { QdServicePopupTableSelectProps } from './types'\n import type { ServicePageParams, ServicePagination } from 'qidian-shared'\n import type { QdCrudTableProps } from '../crud'\n import type { WatchHandle } from 'vue'\n import { extractSlotsWithPrefix, identifyType } from 'qidian-shared'\n import {\n Popup as TPopup,\n Select as TSelect,\n Button as TButton,\n Input as TInput,\n Space as TSpace\n } from 'tdesign-vue-next'\n import { AddIcon, SearchIcon } from 'tdesign-icons-vue-next'\n import { qdServicePopup, qdServicePopupTableSelectProps } from './props'\n import { useVModels } from '@vueuse/core'\n import { computed, reactive, ref, watch } from 'vue'\n import { get, merge } from 'lodash-es'\n import { qdDialogTableSelectSearchGrid } from '../service-dialog-table-select/props'\n import { qdServiceSelectKeys } from '../service-select/props'\n import { QdCrudTable } from '../crud'\n import { isEmpty } from 'qidian-shared'\n import { useConfig } from '../config-provider/useConfig'\n import { useDisabled, useReadonly } from '../../hooks'\n\n defineOptions({\n name: 'QdServicePopupTableSelect'\n })\n\n type Props = QdServicePopupTableSelectProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdServicePopupTableSelectProps)\n const emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']]\n 'update:popupVisible': [Props['popupVisible']]\n\n 'update:searchData': [Props['searchData']]\n 'update:data': [Props['data']]\n 'update:columnControllerVisible': [Props['columnControllerVisible']]\n 'update:displayColumns': [Props['displayColumns']]\n 'update:expandedRowKeys': [Props['expandedRowKeys']]\n 'update:filterValue': [Props['filterValue']]\n 'update:sort': [Props['sort']]\n 'update:expandedTreeNodes': [Props['expandedTreeNodes']]\n }>()\n const {\n modelValue,\n popupVisible,\n searchData,\n data,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const { t } = useConfig('dialogTableSelect')\n const tdReadonly = useReadonly()\n const tdDisabled = useDisabled()\n\n const selectedRowKeys = ref<(string | number)[]>([])\n const selectedRows = ref<D[]>([])\n\n const addCustom = reactive({\n visible: false,\n value: ''\n })\n const addConfirmDisabled = computed(() => isEmpty(addCustom.value))\n\n const reProps = computed(() => {\n const {\n modelValue,\n popupVisible,\n popupProps,\n fillOptions,\n searchData,\n data: inData,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes,\n readonly,\n\n multiple,\n disabled,\n keys,\n valueType,\n clearable,\n creatable,\n placeholder,\n size,\n\n onClear,\n onCreate,\n onChange,\n\n search,\n tableSize,\n\n addBtn,\n addConfirmBtn,\n addCancelBtn,\n addInput,\n\n ...tableOptions\n } = props\n\n const rePopupOptions = merge({}, qdServicePopup, { trigger: 'click' } as const, popupProps, {\n disabled: tdDisabled.value || tdReadonly.value || disabled || readonly || popupProps?.disabled\n })\n const onVisibleChange = rePopupOptions.onVisibleChange\n rePopupOptions.onVisibleChange = (visible, context) => {\n onVisibleChange?.(visible, context)\n\n if (visible) {\n fillOptionsWatchStop?.()\n handleOpen()\n } else {\n if (addCustom.visible) cancelAddCustom()\n if (reProps.value.popupOptions.destroyOnClose) {\n data.value = []\n searchData.value = {}\n selectedRowKeys.value = []\n }\n }\n }\n\n let reOverlayClassName = rePopupOptions.overlayClassName\n if (!reOverlayClassName) {\n reOverlayClassName = 'qd-popup-table-select__overlay'\n } else if (typeof reOverlayClassName === 'string') {\n reOverlayClassName += ' qd-popup-table-select__overlay'\n } else if (identifyType(reOverlayClassName) === 'array') {\n reOverlayClassName.push('qd-popup-table-select__overlay')\n } else if (identifyType(reOverlayClassName) === 'object') {\n ;(\n reOverlayClassName as {\n [className: string]: any\n }\n )['qd-popup-table-select__overlay'] = true\n }\n\n rePopupOptions.overlayClassName = reOverlayClassName\n\n const addBtnOptions: TdButtonProps = merge(\n {},\n {\n block: true,\n theme: 'primary',\n variant: 'dashed',\n icon: () => <AddIcon />,\n content: t('addText'),\n onClick: () => {\n addCustom.visible = true\n }\n },\n typeof addBtn === 'string' ? { content: addBtn } : addBtn\n )\n\n const addConfirmBtnOptions: TdButtonProps = merge(\n {},\n {\n content: t('addConfirmText'),\n onClick: confirmAddCustom\n },\n typeof addConfirmBtn === 'string'\n ? { content: addConfirmBtn, disabled: addConfirmDisabled.value }\n : { ...addConfirmBtn, disabled: addConfirmDisabled.value || addConfirmBtn?.disabled }\n )\n\n const addCancelBtnOptions: TdButtonProps = merge(\n {},\n {\n variant: 'outline',\n content: t('addCancelText'),\n onClick: cancelAddCustom\n },\n typeof addCancelBtn === 'string' ? { content: addCancelBtn } : addCancelBtn\n )\n\n const addInputOptions: TdInputProps = merge(\n {},\n { clearable: true },\n typeof addInput === 'string' ? { placeholder: addInput } : addInput\n )\n\n return {\n creatable,\n fillOptions,\n popupOptions: rePopupOptions,\n selectOptions: {\n multiple,\n readonly,\n disabled,\n keys,\n valueType,\n clearable,\n placeholder,\n size\n },\n tableOptions: {\n ...tableOptions,\n size: tableSize,\n search: {\n ...search,\n grid: merge({}, qdDialogTableSelectSearchGrid, search?.grid)\n },\n selectType: (multiple ? 'multiple' : 'single') as QdCrudTableProps['selectType'],\n rowKey: keys?.value || qdServiceSelectKeys.value\n },\n\n onClear,\n onCreate,\n onChange,\n\n addBtnOptions,\n addConfirmBtnOptions,\n addCancelBtnOptions,\n addInputOptions,\n\n models: {\n modelValue,\n popupVisible,\n searchData,\n data: inData,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n }\n }\n })\n\n let fillOptionsWatchStop: WatchHandle | undefined // 处理 fillOptions 合并逻辑\n\n function handleSelectChange(rowKeys: (string | number)[], options: SelectOptions<D>) {\n selectedRows.value = options.selectedRowData\n\n const { selectOptions } = reProps.value\n const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value\n const labelKey = selectOptions.keys?.label || qdServiceSelectKeys.label\n if (selectOptions.valueType === 'value') {\n modelValue.value = selectOptions.multiple\n ? selectedRows.value.map((item) => get(item, valueKey))\n : get(selectedRows.value[0], valueKey)\n } else {\n const rows = selectedRows.value.map((item) => ({\n [valueKey]: get(item, valueKey),\n [labelKey]: get(item, labelKey)\n }))\n modelValue.value = selectOptions.multiple ? rows : rows[0]\n }\n\n reProps.value.onChange?.(modelValue.value, {\n option: selectedRows.value[selectedRows.value.length - 1] as D,\n selectedOptions: selectedRows.value as D[],\n trigger: 'check'\n })\n }\n\n function handleOpen() {\n const { selectOptions } = reProps.value\n const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value\n if (identifyType(modelValue.value) === 'array') {\n selectedRowKeys.value = modelValue.value.map((item: (typeof modelValue.value)[number]) => {\n if (identifyType(item) === 'object') {\n return get(item, valueKey)\n }\n\n return item\n })\n } else if (identifyType(modelValue.value) === 'object') {\n selectedRowKeys.value = [get(modelValue.value, valueKey)]\n } else {\n selectedRowKeys.value = isEmpty(modelValue.value) ? [] : [modelValue.value]\n }\n }\n\n function handleClear(context: { e: MouseEvent }) {\n selectedRowKeys.value = []\n\n reProps.value.onChange?.(undefined as unknown as SelectValue, {\n e: context.e,\n option: null as unknown as D,\n selectedOptions: [],\n trigger: 'clear'\n })\n reProps.value.onClear?.(context)\n }\n\n function confirmAddCustom(e: MouseEvent) {\n reProps.value.onCreate?.(addCustom.value)\n reProps.value.onChange?.(addCustom.value, {\n e,\n option: null as unknown as D,\n selectedOptions: [],\n trigger: 'check'\n })\n popupVisible.value = false\n reProps.value.popupOptions.onVisibleChange?.(popupVisible.value, {\n e,\n trigger: 'trigger-element-close'\n })\n }\n\n function cancelAddCustom() {\n Object.assign(addCustom, {\n visible: false,\n value: ''\n })\n }\n\n fillOptionsWatchStop = watch(\n () => reProps.value.fillOptions,\n (fillOpts) => {\n if (!fillOpts?.length) return\n\n selectedRows.value = fillOpts as D[]\n },\n { immediate: true, deep: true }\n )\n</script>\n\n<style lang=\"less\">\n .qd-popup-table-select__overlay {\n width: min(960px, 100%);\n }\n</style>\n\n<style lang=\"less\" scoped>\n .qd-popup-table-select {\n &__table {\n :deep(.qd-crud) {\n &-search > .t-card__body,\n &-table__body > .t-card__body {\n padding: 0 !important;\n }\n\n &-table__toolbar {\n display: none;\n }\n }\n\n :deep(.qd-service-table) {\n margin-top: 0;\n }\n\n &-add {\n margin-top: var(--td-comp-margin-m);\n display: flex;\n\n .t-input__wrap {\n flex: 1 1 0;\n overflow: hidden;\n margin-right: var(--td-comp-margin-m);\n }\n }\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","modelValue","popupVisible","searchData","data","columnControllerVisible","displayColumns","expandedRowKeys","filterValue","sort","expandedTreeNodes","useVModels","passive","t","useConfig","tdReadonly","useReadonly","tdDisabled","useDisabled","selectedRowKeys","ref","selectedRows","addCustom","reactive","visible","value","addConfirmDisabled","computed","isEmpty","reProps","popupProps","fillOptions","inData","readonly","multiple","disabled","keys","valueType","clearable","creatable","placeholder","size","onClear","onCreate","onChange","search","tableSize","addBtn","addConfirmBtn","addCancelBtn","addInput","tableOptions","rePopupOptions","merge","qdServicePopup","trigger","onVisibleChange","context","fillOptionsWatchStop","handleOpen","cancelAddCustom","popupOptions","destroyOnClose","reOverlayClassName","overlayClassName","identifyType","push","addBtnOptions","block","theme","variant","icon","_createVNode2","AddIcon","content","onClick","addConfirmBtnOptions","confirmAddCustom","addCancelBtnOptions","addInputOptions","selectOptions","grid","qdDialogTableSelectSearchGrid","selectType","rowKey","qdServiceSelectKeys","models","handleSelectChange","rowKeys","options","selectedRowData","valueKey","labelKey","label","map","item","get","rows","option","length","selectedOptions","handleClear","undefined","e","Object","assign","watch","fillOpts","immediate","deep","_openBlock","_createBlock","_unref","_mergeProps","$event","_createVNode","class","onSelectChange","_createSlots","_","_createElementBlock","_hoisted_1","_renderSlot","_ctx","$slots","_cache","TSpace","TButton","_normalizeProps","_guardReactiveProps","extractSlotsWithPrefix","name","filterName","fn","_withCtx","slotProps","originalName","suffixIcon","SearchIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0HE,UAAMA,QAAQC;AACd,UAAMC,OAAOC;AAab,UAAM;AAAA,MACJC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,IACF,IAAIC,WAA4Cd,OAAOE,MAAM;AAAA,MAC3Da,SAAS;AAAA,IACX,CAAC;AAED,UAAM;AAAA,MAAEC;AAAAA,IAAE,IAAIC,UAAU,mBAAmB;AAC3C,UAAMC,aAAaC,YAAW;AAC9B,UAAMC,aAAaC,YAAW;AAE9B,UAAMC,kBAAkBC,IAAyB,EAAE;AACnD,UAAMC,eAAeD,IAAS,EAAE;AAEhC,UAAME,YAAYC,SAAS;AAAA,MACzBC,SAAS;AAAA,MACTC,OAAO;AAAA,IACT,CAAC;AACD,UAAMC,qBAAqBC,SAAS,MAAMC,QAAQN,UAAUG,KAAK,CAAC;AAElE,UAAMI,UAAUF,SAAS,MAAM;AAC7B,YAAM;AAAA,QACJ1B,YAAAA;AAAAA,QACAC,cAAAA;AAAAA,QACA4B;AAAAA,QACAC;AAAAA,QACA5B,YAAAA;AAAAA,QACAC,MAAM4B;AAAAA,QACN3B,yBAAAA;AAAAA,QACAC,gBAAAA;AAAAA,QACAC,iBAAAA;AAAAA,QACAC,aAAAA;AAAAA,QACAC,MAAAA;AAAAA,QACAC,mBAAAA;AAAAA,QACAuB;AAAAA,QAEAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QAEAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QAEAC;AAAAA,QACAC;AAAAA,QAEAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QAEA,GAAGC;AAAAA,MACL,IAAItD;AAEJ,YAAMuD,iBAAiBC,MAAM,CAAA,GAAIC,gBAAgB;AAAA,QAAEC,SAAS;AAAA,SAAoBzB,YAAY;AAAA,QAC1FK,UAAUlB,WAAWQ,SAASV,WAAWU,SAASU,YAAYF,YAAYH,YAAYK;AAAAA,MACxF,CAAC;AACD,YAAMqB,kBAAkBJ,eAAeI;AACvCJ,qBAAeI,kBAAkB,CAAChC,SAASiC,YAAY;AACrDD,0BAAkBhC,SAASiC,OAAO;AAElC,YAAIjC,SAAS;AACXkC,iCAAoB;AACpBC,qBAAU;AAAA,QACZ,OAAO;AACL,cAAIrC,UAAUE,QAASoC,iBAAe;AACtC,cAAI/B,QAAQJ,MAAMoC,aAAaC,gBAAgB;AAC7C1D,iBAAKqB,QAAQ,CAAA;AACbtB,YAAAA,YAAWsB,QAAQ,CAAA;AACnBN,4BAAgBM,QAAQ,CAAA;AAAA,UAC1B;AAAA,QACF;AAAA,MACF;AAEA,UAAIsC,qBAAqBX,eAAeY;AACxC,UAAI,CAACD,oBAAoB;AACvBA,6BAAqB;AAAA,MACvB,WAAW,OAAOA,uBAAuB,UAAU;AACjDA,8BAAsB;AAAA,MACxB,WAAWE,aAAaF,kBAAkB,MAAM,SAAS;AACvDA,2BAAmBG,KAAK,gCAAgC;AAAA,MAC1D,WAAWD,aAAaF,kBAAkB,MAAM,UAAU;AAEtDA,2BAGA,gCAAgC,IAAI;AAAA,MACxC;AAEAX,qBAAeY,mBAAmBD;AAElC,YAAMI,gBAA+Bd,MACnC,IACA;AAAA,QACEe,OAAO;AAAA,QACPC,OAAO;AAAA,QACPC,SAAS;AAAA,QACTC,MAAMA,MAAAC,YAAAC,SAAA,MAAA,IAAA;AAAA,QACNC,SAAS7D,EAAE,SAAS;AAAA,QACpB8D,SAASA,MAAM;AACbrD,oBAAUE,UAAU;AAAA,QACtB;AAAA,MACF,GACA,OAAOuB,WAAW,WAAW;AAAA,QAAE2B,SAAS3B;AAAAA,UAAWA,MACrD;AAEA,YAAM6B,uBAAsCvB,MAC1C,IACA;AAAA,QACEqB,SAAS7D,EAAE,gBAAgB;AAAA,QAC3B8D,SAASE;AAAAA,MACX,GACA,OAAO7B,kBAAkB,WACrB;AAAA,QAAE0B,SAAS1B;AAAAA,QAAeb,UAAUT,mBAAmBD;AAAAA,MAAM,IAC7D;AAAA,QAAE,GAAGuB;AAAAA,QAAeb,UAAUT,mBAAmBD,SAASuB,eAAeb;AAAAA,MAAS,CACxF;AAEA,YAAM2C,sBAAqCzB,MACzC,IACA;AAAA,QACEiB,SAAS;AAAA,QACTI,SAAS7D,EAAE,eAAe;AAAA,QAC1B8D,SAASf;AAAAA,MACX,GACA,OAAOX,iBAAiB,WAAW;AAAA,QAAEyB,SAASzB;AAAAA,UAAiBA,YACjE;AAEA,YAAM8B,kBAAgC1B,MACpC,IACA;AAAA,QAAEf,WAAW;AAAA,MAAK,GAClB,OAAOY,aAAa,WAAW;AAAA,QAAEV,aAAaU;AAAAA,UAAaA,QAC7D;AAEA,aAAO;AAAA,QACLX;AAAAA,QACAR;AAAAA,QACA8B,cAAcT;AAAAA,QACd4B,eAAe;AAAA,UACb9C;AAAAA,UACAD;AAAAA,UACAE;AAAAA,UACAC;AAAAA,UACAC;AAAAA,UACAC;AAAAA,UACAE;AAAAA,UACAC;AAAAA;QAEFU,cAAc;AAAA,UACZ,GAAGA;AAAAA,UACHV,MAAMK;AAAAA,UACND,QAAQ;AAAA,YACN,GAAGA;AAAAA,YACHoC,MAAM5B,MAAM,CAAA,GAAI6B,+BAA+BrC,QAAQoC,IAAI;AAAA;UAE7DE,YAAajD,WAAW,aAAa;AAAA,UACrCkD,QAAQhD,MAAMX,SAAS4D,oBAAoB5D;AAAAA;QAG7CiB;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QAEAuB;AAAAA,QACAS;AAAAA,QACAE;AAAAA,QACAC;AAAAA,QAEAO,QAAQ;AAAA,UACNrF,YAAAA;AAAAA,UACAC,cAAAA;AAAAA,UACAC,YAAAA;AAAAA,UACAC,MAAM4B;AAAAA,UACN3B,yBAAAA;AAAAA,UACAC,gBAAAA;AAAAA,UACAC,iBAAAA;AAAAA,UACAC,aAAAA;AAAAA,UACAC,MAAAA;AAAAA,UACAC,mBAAAA;AAAAA,QACF;AAAA;IAEJ,CAAC;AAED,QAAIgD;AAEJ,aAAS6B,mBAAmBC,SAA8BC,SAA2B;AACnFpE,mBAAaI,QAAQgE,QAAQC;AAE7B,YAAM;AAAA,QAAEV;AAAAA,UAAkBnD,QAAQJ;AAClC,YAAMkE,WAAWX,cAAc5C,MAAMX,SAAS4D,oBAAoB5D;AAClE,YAAMmE,WAAWZ,cAAc5C,MAAMyD,SAASR,oBAAoBQ;AAClE,UAAIb,cAAc3C,cAAc,SAAS;AACvCpC,mBAAWwB,QAAQuD,cAAc9C,WAC7Bb,aAAaI,MAAMqE,IAAKC,UAASC,IAAID,MAAMJ,QAAQ,CAAC,IACpDK,IAAI3E,aAAaI,MAAM,CAAC,GAAGkE,QAAQ;AAAA,MACzC,OAAO;AACL,cAAMM,OAAO5E,aAAaI,MAAMqE,IAAKC,WAAU;AAAA,UAC7C,CAACJ,QAAQ,GAAGK,IAAID,MAAMJ,QAAQ;AAAA,UAC9B,CAACC,QAAQ,GAAGI,IAAID,MAAMH,QAAQ;AAAA,QAChC,EAAE;AACF3F,mBAAWwB,QAAQuD,cAAc9C,WAAW+D,OAAOA,KAAK,CAAC;AAAA,MAC3D;AAEApE,cAAQJ,MAAMmB,WAAW3C,WAAWwB,OAAO;AAAA,QACzCyE,QAAQ7E,aAAaI,MAAMJ,aAAaI,MAAM0E,SAAS,CAAC;AAAA,QACxDC,iBAAiB/E,aAAaI;AAAAA,QAC9B8B,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAEA,aAASI,aAAa;AACpB,YAAM;AAAA,QAAEqB;AAAAA,UAAkBnD,QAAQJ;AAClC,YAAMkE,WAAWX,cAAc5C,MAAMX,SAAS4D,oBAAoB5D;AAClE,UAAIwC,aAAahE,WAAWwB,KAAK,MAAM,SAAS;AAC9CN,wBAAgBM,QAAQxB,WAAWwB,MAAMqE,IAAKC,UAA4C;AACxF,cAAI9B,aAAa8B,IAAI,MAAM,UAAU;AACnC,mBAAOC,IAAID,MAAMJ,QAAQ;AAAA,UAC3B;AAEA,iBAAOI;AAAAA,QACT,CAAC;AAAA,MACH,WAAW9B,aAAahE,WAAWwB,KAAK,MAAM,UAAU;AACtDN,wBAAgBM,QAAQ,CAACuE,IAAI/F,WAAWwB,OAAOkE,QAAQ,CAAC;AAAA,MAC1D,OAAO;AACLxE,wBAAgBM,QAAQG,QAAQ3B,WAAWwB,KAAK,IAAI,CAAA,IAAK,CAACxB,WAAWwB,KAAK;AAAA,MAC5E;AAAA,IACF;AAEA,aAAS4E,YAAY5C,SAA4B;AAC/CtC,sBAAgBM,QAAQ,CAAA;AAExBI,cAAQJ,MAAMmB,WAAW0D,QAAqC;AAAA,QAC5DC,GAAG9C,QAAQ8C;AAAAA,QACXL,QAAQ;AAAA,QACRE,iBAAiB,CAAA;AAAA,QACjB7C,SAAS;AAAA,MACX,CAAC;AACD1B,cAAQJ,MAAMiB,UAAUe,OAAO;AAAA,IACjC;AAEA,aAASoB,iBAAiB0B,GAAe;AACvC1E,cAAQJ,MAAMkB,WAAWrB,UAAUG,KAAK;AACxCI,cAAQJ,MAAMmB,WAAWtB,UAAUG,OAAO;AAAA,QACxC8E;AAAAA,QACAL,QAAQ;AAAA,QACRE,iBAAiB,CAAA;AAAA,QACjB7C,SAAS;AAAA,MACX,CAAC;AACDrD,mBAAauB,QAAQ;AACrBI,cAAQJ,MAAMoC,aAAaL,kBAAkBtD,aAAauB,OAAO;AAAA,QAC/D8E;AAAAA,QACAhD,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAEA,aAASK,kBAAkB;AACzB4C,aAAOC,OAAOnF,WAAW;AAAA,QACvBE,SAAS;AAAA,QACTC,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAEAiC,2BAAuBgD,MACrB,MAAM7E,QAAQJ,MAAMM,aACnB4E,cAAa;AACZ,UAAI,CAACA,UAAUR,OAAQ;AAEvB9E,mBAAaI,QAAQkF;AAAAA,IACvB,GACA;AAAA,MAAEC,WAAW;AAAA,MAAMC,MAAM;AAAA,IAAK,CAChC;;AAlaA,aAAAC,UAAA,GAAAC,YAsEUC,cAtEVC,WAsEU;AAAA,oBAtEQD,MAAA9G,YAAA;AAAA,6FAAAA,aAAYuB,QAAAyF,SAAA;AAAA,MAAU,GAAArF,QAAAJ,MAAQoC,YAAY,GAAA;AAAA,QAe/Ca,iBACT,MAoDgB,CApDhByC,YAoDgBH,oBApDhBC,WAoDgB;AAAA,UAnDdG,OAAM;AAAA,UACE,eAAaJ,MAAA7G,UAAA;AAAA,2FAAAA,WAAUsB,QAAAyF,SAAA;AAAA,UACvB9G,MAAM4G,MAAA5G,IAAA;AAAA,+EAAAA,KAAIqB,QAAAyF,SAAA;AAAA,UACV,qBAAmB/F,gBAAAM;AAAAA,4EAAAN,gBAAeM,QAAAyF;AAAAA,UAClC,mBAAiB/F,gBAAAM;AAAAA,0EAAAN,gBAAeM,QAAAyF;AAAAA,UAChC,6BAA2BF,MAAA3G,uBAAA;AAAA,qHAAAA,wBAAuBoB,QAAAyF,SAAA;AAAA,UAClD,mBAAiBF,MAAA1G,cAAA;AAAA,mGAAAA,eAAcmB,QAAAyF,SAAA;AAAA,UAC/B,oBAAkBF,MAAAzG,eAAA;AAAA,qGAAAA,gBAAekB,QAAAyF,SAAA;AAAA,UACjC,gBAAcF,MAAAxG,WAAA;AAAA,6FAAAA,YAAWiB,QAAAyF,SAAA;AAAA,UACzBzG,MAAMuG,MAAAvG,IAAA;AAAA,iFAAAA,KAAIgB,QAAAyF,SAAA;AAAA,UACV,uBAAqBF,MAAAtG,iBAAA;AAAA,2GAAAA,kBAAiBe,QAAAyF,SAAA;AAAA,UAC9C,oCAAA;AAAA,UACA,mBAAgB;AAAA,QACR,GAAArF,QAAAJ,MAAQ0B,cAAY;AAAA,UAC3BkE,gBAAe9B;AAAAA,SAAkB,GAAA+B,YAAA;AAAA,UAAAC,GAAA;AAAA,QAAA,GAAA,CAElB1F,QAAAJ,MAAQc;gBAAY;AAAA,sBAClC,MAcM,CAdKjB,UAAUE,WAArBsF,UAAA,GAAAU,mBAcM,OAdNC,YAcM,CAbJC,WAEOC,KAAAC,QAAA,aAAA;AAAA,YAFiBtG;AAAAA,aAAxB,MAEO,CADL6F,YAAsEH,cAAtEC,WAAsE;AAAA,YAApDhH,YAAAqB,UAAUG;AAAAA,YAAV,uBAAAoG,OAAA,CAAA,MAAAA,OAAA,CAAA,IAAAX,YAAA5F,UAAUG,QAAKyF;AAAAA,aAAUrF,QAAAJ,MAAQsD,eAAe,GAAA,MAAA,IAAA,CAAA,YAAA,CAAA,CAAA,UAGpEoC,YAQUH,MAAAc,KAAA,GAAA;AAAA,YARDrF,MAAK;AAAA,UAAO,GAAA;AAAA,6BACnB,MAEO,CAFPiF,WAEOC,KAAAC,QAAA,mBAAA;AAAA,cAFuBtG;AAAAA,eAA9B,MAEO,CADL6F,YAAkDH,MAAAe,MAAA,GAAAC,eAAAC,mBAAhCpG,QAAAJ,MAAQmD,oBAAoB,CAAA,GAAA,MAAA,EAAA,CAAA,UAGhD8C,WAEOC,KAAAC,QAAA,kBAAA;AAAA,cAFsBtG;AAAAA,eAA7B,MAEO,CADL6F,YAAiDH,MAAAe,MAAA,GAAAC,eAAAC,mBAA/BpG,QAAAJ,MAAQqD,mBAAmB,CAAA,GAAA,MAAA,EAAA,CAAA;;kBAKnD4C,WAEOC,KAAAC,QAAA,WAAA;AAAA;YAFsBtG;AAAAA,aAA7B,MAEO,CADL6F,YAAoFH,MAAAe,MAAA,GAApFd,WAAoF;AAAA,YAA1EG,OAAM;AAAA,UAAkC,GAASvF,QAAAJ,MAAQ0C,aAAa,GAAA,MAAA,EAAA,CAAA;;+BAKnE6C,MAAAkB,sBAAA,EAAuBN,KAAAA,QAAM,QAAA,GAArC7B,UAAI;;YACVoC,MAAApC,KAAKqC;AAAAA,YAENC,IAAAC,QAFoBC,eAAS,CAE7Bb,WAAqDC,KAAAC,QAAxC7B,KAAKyC,gDAAsBD,SAAS,CAAA,GAAAjC,QAAA,IAAA,CAAA;;uBAIlCU,MAAAkB,sBAAA,EAAuBN,KAAAA,QAAM,OAAA,GAArC7B,UAAI;;YACVoC,MAAApC,KAAKqC;AAAAA,YAENC,IAAAC,QAFoBC,eAAS,CAE7Bb,WAA6EC,KAAAC,QAAhE7B,KAAKyC,cAAlBvB,WAA6E;AAAA,cAA5C3F;AAAAA,eAA+BiH,SAAS,GAAAjC,QAAA,IAAA,CAAA;;;yBAjE/E,MAYO,CAZPoB,WAYOC,KAAAC,QAAA,WAAA;AAAA,UAZAvG,cAAeA,aAAAI;AAAAA,WAAtB,MAYO,CAXL0F,YAUWH,eAVXC,WAUW;AAAA,sBATAD,MAAA/G,UAAA;AAAA,2FAAAA,WAAUwB,QAAAyF,SAAA;AAAA,UAClBzB,SAASpE,aAAAI;AAAAA,UACT,iBAAe;AAAA,QACR,GAAAI,QAAAJ,MAAQuD,eAAa;AAAA,UAC5BtC,SAAO2D;AAAAA,QAAW,CAAA,GAAA;AAAA,UAERoC,oBACT,MAAe,CAAftB,YAAeH,MAAA0B,UAAA,CAAA,CAAA;;;;;;;;"}
|
|
@@ -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-e86a1393"]]);
|
|
5
5
|
export {
|
|
6
6
|
index as default
|
|
7
7
|
};
|
|
@@ -175,12 +175,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
175
175
|
Object.assign(reSizeLimit, { message: t("sizeLimitMessage") }, sizeLimit);
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
|
-
const
|
|
178
|
+
const reAccept = accept ? accept : theme.includes("image") ? qdUploadAcceptMap.image : qdUploadAcceptMap.default;
|
|
179
|
+
const acceptStr = reAccept.join(",");
|
|
179
180
|
const reBeforeUpload = (file) => {
|
|
180
181
|
if (beforeUpload) return beforeUpload(file);
|
|
181
|
-
if (
|
|
182
|
+
if (reAccept && !isTypeByName(file.name, reAccept)) {
|
|
182
183
|
msgError(
|
|
183
|
-
`${t("fileFormatNotSupportedMessage")[0]} ${
|
|
184
|
+
`${t("fileFormatNotSupportedMessage")[0]} ${reAccept} ${t("fileFormatNotSupportedMessage")[1]}`
|
|
184
185
|
);
|
|
185
186
|
return false;
|
|
186
187
|
}
|
|
@@ -419,7 +420,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
419
420
|
watch(
|
|
420
421
|
reModelValue,
|
|
421
422
|
async (newVal, oldVal) => {
|
|
422
|
-
if (!newVal.length
|
|
423
|
+
if (!newVal.length) {
|
|
424
|
+
fileList.value = [];
|
|
425
|
+
return;
|
|
426
|
+
}
|
|
427
|
+
if (checkSameObject(newVal, oldVal) || fileList.value.length) return;
|
|
423
428
|
const { valueMode } = reProps.value;
|
|
424
429
|
const apiFn = valueMode === "url" ? getOssByUrls : getOssByIds;
|
|
425
430
|
const [err, res] = await to(apiFn(newVal));
|
|
@@ -452,10 +457,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
452
457
|
`qd-upload--${reProps.value.theme}`,
|
|
453
458
|
reProps.value.onlyView ? "qd-upload--only-view" : "",
|
|
454
459
|
!reProps.value.uploadOptions.showUploadProgress && reProps.value.onlyView ? "qd-upload--hide-progress" : "",
|
|
455
|
-
!reProps.value.uploadOptions.autoUpload && reProps.value.showManualButton ? "" : "qd-upload--hide-manual-upload"
|
|
460
|
+
!reProps.value.uploadOptions.autoUpload && reProps.value.showManualButton ? "" : "qd-upload--hide-manual-upload",
|
|
461
|
+
reProps.value.uploadOptions.disabled ? "qd-upload--disabled" : ""
|
|
456
462
|
],
|
|
457
463
|
files: unref(fileList),
|
|
458
|
-
"onUpdate:files": _cache[2] || (_cache[2] = ($event) => isRef(fileList) ? fileList.value = $event : null)
|
|
464
|
+
"onUpdate:files": _cache[2] || (_cache[2] = ($event) => isRef(fileList) ? fileList.value = $event : null),
|
|
465
|
+
tabindex: reProps.value.onlyView || reProps.value.uploadOptions.disabled ? "" : "0"
|
|
459
466
|
}, reProps.value.uploadOptions), createSlots({
|
|
460
467
|
default: withCtx(() => [
|
|
461
468
|
["btn-file-popup", "btn-image-popup"].includes(__props.theme) ? (openBlock(), createBlock(unref(Space), {
|
|
@@ -541,7 +548,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
541
548
|
])
|
|
542
549
|
};
|
|
543
550
|
})
|
|
544
|
-
]), 1040, ["class", "files"]);
|
|
551
|
+
]), 1040, ["class", "files", "tabindex"]);
|
|
545
552
|
};
|
|
546
553
|
}
|
|
547
554
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/upload/index.vue"],"sourcesContent":["<template>\n <t-upload\n ref=\"upload\"\n :class=\"[\n 'qd-upload',\n `qd-upload--${reProps.theme}`,\n reProps.onlyView ? 'qd-upload--only-view' : '',\n !reProps.uploadOptions.showUploadProgress && reProps.onlyView\n ? 'qd-upload--hide-progress'\n : '',\n !reProps.uploadOptions.autoUpload && reProps.showManualButton\n ? ''\n : 'qd-upload--hide-manual-upload'\n ]\"\n v-model:files=\"fileList\"\n v-bind=\"reProps.uploadOptions\"\n >\n <template v-if=\"['btn-file-popup', 'btn-image-popup'].includes(theme)\">\n <t-space align=\"center\" size=\"small\">\n <t-button\n v-if=\"!reProps.onlyView\"\n variant=\"outline\"\n :disabled=\"reProps.uploadOptions.disabled\"\n >\n <template #icon><upload-icon /></template>\n {{\n !fileList.length\n ? t('triggerUploadText').fileInput\n : reProps.uploadOptions.max === 1 || !reProps.uploadOptions.multiple\n ? t('triggerUploadText').reupload\n : t('triggerUploadText').continueUpload\n }}\n </t-button>\n\n <t-popup v-if=\"fileList.length\" show-arrow trigger=\"click\">\n <t-badge :count=\"fileList.length\" size=\"small\" :offset=\"[2, 2]\" @click.stop>\n <t-button variant=\"outline\">\n <template #icon><browse-icon /></template>\n {{ t('viewFileText') }}\n </t-button>\n </t-badge>\n\n <template #content>\n <t-upload\n :class=\"[\n 'qd-upload__popup-upload',\n reProps.uploadOptions.disabled ? 'qd-upload__popup-upload--disabled' : ''\n ]\"\n v-model:files=\"popupFileList\"\n :theme=\"popupUploadTheme\"\n :disabled=\"reProps.uploadOptions.disabled\"\n :on-remove=\"reProps.handlePopupRemove\"\n :show-thumbnail=\"reProps.uploadOptions.showThumbnail\"\n :show-image-file-name=\"reProps.uploadOptions.showImageFileName\"\n :show-upload-progress=\"reProps.uploadOptions.showUploadProgress\"\n >\n <template #trigger><span style=\"display: none\"></span></template>\n </t-upload>\n </template>\n </t-popup>\n </t-space>\n </template>\n\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-upload>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n F extends UploadFile = UploadFile,\n OR = unknown,\n OP extends string | number | (string | number)[] = string | number | (string | number)[],\n TOP = OP,\n UR = unknown,\n UP extends string | string[] = string | string[],\n TUP = UP,\n DR = unknown,\n DP extends string | number | (string | number)[] = string | number | (string | number)[],\n TDP = DP\n \"\n>\n import type {\n SizeLimitObj,\n TdUploadProps,\n UploadFile,\n UploadInstanceFunctions\n } from 'tdesign-vue-next'\n import type {\n QdUploadDeleteResult,\n QdUploadInstanceFunctions,\n QdUploadListOssByIdsResult,\n QdUploadProps\n } from './types'\n import { qdUploadProps, qdUploadSizeLimit } from './props'\n import { useVModels } from '@vueuse/core'\n import { computed, inject, onMounted, useTemplateRef, ref, watch } from 'vue'\n import {\n Upload as TUpload,\n Button as TButton,\n Popup as TPopup,\n Space as TSpace,\n Badge as TBadge\n } from 'tdesign-vue-next'\n import { UploadIcon, BrowseIcon } from 'tdesign-icons-vue-next'\n import {\n checkSameObject,\n easyCopy,\n isEmpty,\n isTypeByName,\n suspectedWrapperPromise,\n to,\n useTimer\n } from 'qidian-shared'\n import dayjs from 'dayjs'\n import { PROVIDE_UPLOAD } from '../config-provider/config'\n import { useConfig } from '../config-provider/useConfig'\n import { useModal, useDisabled, useReadonly } from '../../hooks'\n import { PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE } from '../form'\n import { qdUploadAcceptMap } from './config'\n import { qdDictConvStrSeparator } from '../dict/tag/props'\n\n defineOptions({\n name: 'QdUpload'\n })\n\n type Props = QdUploadProps<F, OR, OP, TOP, UR, UP, TUP, DR, DP, TDP>\n\n const props = withDefaults(defineProps<Props>(), qdUploadProps)\n const emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']]\n 'update:files': [Props['files']]\n }>()\n const { modelValue, files: fileList } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const reModelValue = computed({\n get: () => {\n const { convStr } = reProps.value\n const value = modelValue.value\n if (isEmpty(value)) return []\n if (typeof value === 'string') {\n return value.split((typeof convStr === 'string' ? convStr : '') || qdDictConvStrSeparator)\n }\n\n return value\n },\n set: (val) => {\n const { convStr } = reProps.value\n if (convStr) {\n modelValue.value = val.join(\n (typeof convStr === 'string' ? convStr : '') || qdDictConvStrSeparator\n )\n return\n }\n\n modelValue.value = val\n }\n })\n\n const formAddBeforeSubmitQueue = inject(PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE, undefined)\n const { t } = useConfig('upload')\n const tdReadonly = useReadonly()\n const tdDisabled = useDisabled()\n const { msgError, msgWarning } = useModal()\n const uploadRef = useTemplateRef<UploadInstanceFunctions>('upload')\n const { timer: uploadTimer, clearTimer: clearUploadTimer } = useTimer('interval')\n\n const delList = ref<(string | number)[]>([])\n\n const popupFileList = computed(() => [...fileList.value])\n\n const globalUploadProps = inject(\n PROVIDE_UPLOAD,\n computed(() => undefined)\n )\n const reProps = computed(() => {\n const {\n modelValue,\n files,\n convStr,\n valueMode,\n theme,\n sizeLimit,\n accept,\n multiple,\n disabled,\n beforeUpload,\n onValidate,\n formatResponse,\n onSuccess,\n onRemove,\n\n onlyView,\n listOssByIds,\n listOssByUrls,\n del,\n\n action,\n bucketConfigKey,\n showImageFileName,\n showUploadProgress,\n showThumbnail,\n draggable,\n\n showManualButton,\n ...uploadOptions\n } = props\n const globalUploadPropsV = globalUploadProps.value\n\n const reAction = action || globalUploadPropsV?.action\n const actionUrl = typeof reAction === 'string' ? reAction : reAction?.(bucketConfigKey)\n\n const reSizeLimit = easyCopy(qdUploadSizeLimit) as SizeLimitObj | undefined\n if (reSizeLimit) {\n if (typeof sizeLimit === 'number') {\n reSizeLimit.size = sizeLimit\n reSizeLimit.message = t('sizeLimitMessage')\n } else {\n Object.assign(reSizeLimit, { message: t('sizeLimitMessage') }, sizeLimit)\n }\n }\n\n const acceptStr = (\n accept\n ? accept\n : theme.includes('image')\n ? qdUploadAcceptMap.image\n : qdUploadAcceptMap.default\n ).join(',')\n\n const reBeforeUpload: typeof beforeUpload = (file) => {\n if (beforeUpload) return beforeUpload(file)\n\n if (accept && !isTypeByName(file.name, accept)) {\n msgError(\n `${t('fileFormatNotSupportedMessage')[0]} ${accept} ${t('fileFormatNotSupportedMessage')[1]}`\n )\n return false\n }\n\n return true\n }\n\n const reOnValidate: typeof onValidate = (context) => {\n if (onValidate) {\n onValidate(context)\n return\n }\n\n switch (context.type) {\n case 'FILES_OVER_LENGTH_LIMIT':\n msgWarning(`${t('maxUploadMessage')[0]}${props.max}${t('maxUploadMessage')[1]}`)\n break\n case 'FILTER_FILE_SAME_NAME':\n msgWarning(t('sameNameMessage'))\n break\n case 'FILE_OVER_SIZE_LIMIT':\n msgWarning(`${context.files.map((t) => t.name).join(',')} ${t('fileSizeExceedsLimit')}`)\n break\n }\n }\n\n const reFormatResponse: typeof formatResponse = (res, context) => {\n if (formatResponse) return formatResponse(res, context)\n\n if (res.code === 200) {\n const { url, ossId, fileName, uploadTime } = res.data || {}\n return {\n success: true,\n url,\n name: fileName,\n ossId,\n uploadTime: uploadTime || dayjs().format('YYYY-MM-DD HH:mm:ss')\n }\n }\n\n return { status: 'fail', error: res.message || res.msg || t('fileUploadFailed') }\n }\n\n const reOnSuccess: typeof onSuccess = (context) => {\n onSuccess?.(context)\n updateModelValue(fileList.value)\n }\n\n const reOnRemove: typeof onRemove = (context) => {\n onRemove?.(context)\n const { ossId } = context.file?.response || {}\n\n if (ossId) {\n if (props.autoUpload) to(handleDel(ossId))\n else addDel(ossId)\n }\n\n updateModelValue(fileList.value)\n }\n\n const handlePopupRemove: typeof onRemove = (context) => {\n reOnRemove(context)\n if (isEmpty(context.index)) return\n\n fileList.value.splice(context.index, 1)\n }\n\n const reUploadOptions = {\n action: actionUrl,\n theme: ['custom', 'file', 'file-input', 'file-flow', 'image', 'image-flow'].includes(theme)\n ? theme\n : 'custom',\n sizeLimit: reSizeLimit,\n accept: acceptStr,\n multiple: multiple ?? props.max !== 1,\n disabled: onlyView ? true : (disabled ?? (tdDisabled.value || tdReadonly.value)),\n beforeUpload: reBeforeUpload,\n onValidate: reOnValidate,\n formatResponse: reFormatResponse,\n onSuccess: reOnSuccess,\n onRemove: reOnRemove,\n showImageFileName: onlyView ? false : showImageFileName,\n showUploadProgress: onlyView ? false : showUploadProgress,\n showThumbnail: onlyView ? true : showThumbnail,\n draggable: onlyView ? false : draggable,\n ...uploadOptions\n } as TdUploadProps\n\n if (globalUploadPropsV) {\n Object.entries(globalUploadPropsV).forEach(([key, value]) => {\n if (['action'].includes(key) || isEmpty(value)) return\n ;(reUploadOptions as Record<string, unknown>)[key] = value\n })\n }\n\n return {\n theme,\n convStr,\n valueMode,\n accept,\n handlePopupRemove,\n onlyView,\n listOssByIds: {\n ...globalUploadPropsV?.listOssByIds,\n ...listOssByIds\n } as Props['listOssByIds'],\n listOssByUrls: {\n ...globalUploadPropsV?.listOssByUrls,\n ...listOssByUrls\n } as Props['listOssByUrls'],\n del: { ...globalUploadPropsV?.del, ...del } as Props['del'],\n showManualButton,\n uploadOptions: reUploadOptions,\n models: {\n modelValue,\n files\n }\n }\n })\n\n const popupUploadTheme = computed(() => {\n switch (props.theme) {\n case 'btn-image-popup':\n return 'image'\n default:\n return 'file-flow'\n }\n })\n\n const expose = {} as QdUploadInstanceFunctions\n\n const uploadFiles: QdUploadInstanceFunctions['uploadFiles'] = (options) => {\n uploadRef.value?.uploadFiles(options?.files)\n\n return new Promise((resolve, reject) => {\n uploadTimer.value = setInterval(() => {\n const isFinished = fileList.value.every((item) => item.status !== 'progress')\n if (!isFinished) return\n\n clearUploadTimer()\n updateModelValue(fileList.value)\n\n const errorList = fileList.value.filter((item) => item.status === 'fail')\n if (errorList.length) {\n const msg = `${errorList.map((item) => item.name).join(',')} ${t('fileUploadFailed')}`\n if (options?.showErrorMessage !== false) {\n msgError(msg)\n }\n reject(new Error(msg))\n return\n }\n\n resolve(fileList.value)\n }, 100)\n })\n }\n\n function updateModelValue(files: UploadFile[]) {\n const tempModelValue: typeof reModelValue.value = []\n files.forEach((item) => {\n if (item.status !== 'success') return\n tempModelValue.push(item.response![reProps.value.valueMode])\n })\n reModelValue.value = tempModelValue\n }\n\n async function handleDel(\n ossId: string | number | (string | number)[],\n showErrorMessage?: boolean\n ) {\n const { del } = reProps.value\n if (!del) return\n\n const { service, transformParams, transformRes } = del\n\n const currentParams = ossId\n let tParams: TDP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as DP))\n if (trErr) throw trErr\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as unknown as TDP)))\n if (serviceErr) throw serviceErr\n\n let res: QdUploadDeleteResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as QdUploadDeleteResult\n }\n\n if (typeof res === 'boolean') {\n res = { success: res, message: '' }\n }\n\n if (!res) {\n res = { success: true, message: '' }\n }\n\n const message = res.message\n if (res.success === false) {\n if (message && showErrorMessage !== false) msgError(message)\n throw new Error(message)\n }\n }\n\n async function addDel(ossId: string | number) {\n delList.value.push(ossId)\n }\n\n async function getOssByIds(ossId: string | number | (string | number)[]) {\n const { listOssByIds } = reProps.value\n if (!listOssByIds) return []\n\n const { service, transformParams, transformRes } = listOssByIds\n\n const currentParams = ossId\n let tParams: TOP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as OP))\n if (trErr) throw trErr\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as unknown as TOP)))\n if (serviceErr) throw serviceErr\n\n let res: QdUploadListOssByIdsResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as QdUploadListOssByIdsResult\n }\n\n return res\n }\n\n async function getOssByUrls(ossId: string | string[]) {\n const { listOssByUrls } = reProps.value\n if (!listOssByUrls) return []\n\n const { service, transformParams, transformRes } = listOssByUrls\n\n const currentParams = ossId\n let tParams: TUP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as UP))\n if (trErr) throw trErr\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as unknown as TUP)))\n if (serviceErr) throw serviceErr\n\n let res: QdUploadListOssByIdsResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as QdUploadListOssByIdsResult\n }\n\n return res\n }\n\n async function uploadBeforeFormSubmit() {\n const [err] = await to(uploadFiles({ showErrorMessage: false }))\n if (err) return { success: false, message: err.message }\n return true\n }\n\n async function delBeforeFormSubmit() {\n if (!delList.value.length) return true\n\n const [err] = await to(handleDel(delList.value, false))\n if (err) return true\n return true\n }\n\n formAddBeforeSubmitQueue?.(uploadBeforeFormSubmit)\n formAddBeforeSubmitQueue?.(delBeforeFormSubmit)\n\n watch(\n reModelValue,\n async (newVal, oldVal) => {\n if (!newVal.length || checkSameObject(newVal, oldVal) || fileList.value.length) return\n\n const { valueMode } = reProps.value\n const apiFn = valueMode === 'url' ? getOssByUrls : getOssByIds\n const [err, res] = await to(apiFn(newVal))\n if (err) return\n\n fileList.value = res.map((item) => {\n const { url, ossId, originalName, fileSize, contentType, createTime } = item\n\n return {\n url,\n uid: ossId,\n name: originalName,\n size: fileSize,\n type: contentType,\n uploadTime: createTime,\n response: { status: 'success', url, ossId, name: originalName, uploadTime: createTime },\n status: 'success'\n }\n }) as unknown as F[]\n },\n { deep: true, immediate: true }\n )\n\n onMounted(() => {\n Object.assign(expose, uploadRef.value, { uploadFiles })\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-upload {\n :deep(.t-upload) {\n &__dragger {\n min-width: 336px;\n min-height: 144px;\n width: 100%;\n height: 100%;\n }\n\n &__flow {\n width: 100%;\n max-width: 100%;\n }\n }\n\n &__popup-upload {\n :deep(.t-image-viewer__trigger) {\n display: none;\n }\n\n :deep(.t-upload) {\n &__flow-table {\n margin-top: 0;\n }\n }\n\n &--disabled {\n :deep(.t-upload) {\n &__flow-table {\n th:last-child,\n td:last-child {\n display: none;\n }\n }\n }\n }\n }\n\n &--only-view:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) {\n :deep(.t-upload) {\n &__flow-op,\n &__trigger,\n &__flow-bottom {\n display: none;\n }\n\n &__flow-table,\n &__flow-card-area {\n margin-top: 0;\n }\n\n .t-image-viewer__trigger {\n display: none;\n }\n\n &__card {\n .t-upload__card-item.t-is-background:last-child {\n display: none;\n }\n }\n }\n }\n\n &--hide-manual-upload {\n :deep(.t-upload) {\n &__flow-bottom {\n display: none;\n margin-top: 0;\n }\n }\n }\n\n &--hide-progress {\n :deep(.t-upload) {\n &__flow-table {\n th:last-child,\n td:last-child {\n display: none;\n }\n }\n }\n }\n }\n</style>\n"],"names":["modelValue","t","_openBlock","_createBlock","_unref","_mergeProps","_createSlots","TSpace","TButton","_createVNode","_toDisplayString","TPopup","TUpload","_normalizeClass","_createElementVNode","TBadge","_createTextVNode","$slots","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/upload/index.vue"],"sourcesContent":["<template>\n <t-upload\n ref=\"upload\"\n :class=\"[\n 'qd-upload',\n `qd-upload--${reProps.theme}`,\n reProps.onlyView ? 'qd-upload--only-view' : '',\n !reProps.uploadOptions.showUploadProgress && reProps.onlyView\n ? 'qd-upload--hide-progress'\n : '',\n !reProps.uploadOptions.autoUpload && reProps.showManualButton\n ? ''\n : 'qd-upload--hide-manual-upload',\n reProps.uploadOptions.disabled ? 'qd-upload--disabled' : ''\n ]\"\n v-model:files=\"fileList\"\n :tabindex=\"reProps.onlyView || reProps.uploadOptions.disabled ? '' : '0'\"\n v-bind=\"reProps.uploadOptions\"\n >\n <template v-if=\"['btn-file-popup', 'btn-image-popup'].includes(theme)\">\n <t-space align=\"center\" size=\"small\">\n <t-button\n v-if=\"!reProps.onlyView\"\n variant=\"outline\"\n :disabled=\"reProps.uploadOptions.disabled\"\n >\n <template #icon><upload-icon /></template>\n {{\n !fileList.length\n ? t('triggerUploadText').fileInput\n : reProps.uploadOptions.max === 1 || !reProps.uploadOptions.multiple\n ? t('triggerUploadText').reupload\n : t('triggerUploadText').continueUpload\n }}\n </t-button>\n\n <t-popup v-if=\"fileList.length\" show-arrow trigger=\"click\">\n <t-badge :count=\"fileList.length\" size=\"small\" :offset=\"[2, 2]\" @click.stop>\n <t-button variant=\"outline\">\n <template #icon><browse-icon /></template>\n {{ t('viewFileText') }}\n </t-button>\n </t-badge>\n\n <template #content>\n <t-upload\n :class=\"[\n 'qd-upload__popup-upload',\n reProps.uploadOptions.disabled ? 'qd-upload__popup-upload--disabled' : ''\n ]\"\n v-model:files=\"popupFileList\"\n :theme=\"popupUploadTheme\"\n :disabled=\"reProps.uploadOptions.disabled\"\n :on-remove=\"reProps.handlePopupRemove\"\n :show-thumbnail=\"reProps.uploadOptions.showThumbnail\"\n :show-image-file-name=\"reProps.uploadOptions.showImageFileName\"\n :show-upload-progress=\"reProps.uploadOptions.showUploadProgress\"\n >\n <template #trigger><span style=\"display: none\"></span></template>\n </t-upload>\n </template>\n </t-popup>\n </t-space>\n </template>\n\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-upload>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n F extends UploadFile = UploadFile,\n OR = unknown,\n OP extends string | number | (string | number)[] = string | number | (string | number)[],\n TOP = OP,\n UR = unknown,\n UP extends string | string[] = string | string[],\n TUP = UP,\n DR = unknown,\n DP extends string | number | (string | number)[] = string | number | (string | number)[],\n TDP = DP\n \"\n>\n import type {\n SizeLimitObj,\n TdUploadProps,\n UploadFile,\n UploadInstanceFunctions\n } from 'tdesign-vue-next'\n import type {\n QdUploadDeleteResult,\n QdUploadInstanceFunctions,\n QdUploadListOssByIdsResult,\n QdUploadProps\n } from './types'\n import { qdUploadProps, qdUploadSizeLimit } from './props'\n import { useVModels } from '@vueuse/core'\n import { computed, inject, onMounted, useTemplateRef, ref, watch } from 'vue'\n import {\n Upload as TUpload,\n Button as TButton,\n Popup as TPopup,\n Space as TSpace,\n Badge as TBadge\n } from 'tdesign-vue-next'\n import { UploadIcon, BrowseIcon } from 'tdesign-icons-vue-next'\n import {\n checkSameObject,\n easyCopy,\n isEmpty,\n isTypeByName,\n suspectedWrapperPromise,\n to,\n useTimer\n } from 'qidian-shared'\n import dayjs from 'dayjs'\n import { PROVIDE_UPLOAD } from '../config-provider/config'\n import { useConfig } from '../config-provider/useConfig'\n import { useModal, useDisabled, useReadonly } from '../../hooks'\n import { PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE } from '../form'\n import { qdUploadAcceptMap } from './config'\n import { qdDictConvStrSeparator } from '../dict/tag/props'\n\n defineOptions({\n name: 'QdUpload'\n })\n\n type Props = QdUploadProps<F, OR, OP, TOP, UR, UP, TUP, DR, DP, TDP>\n\n const props = withDefaults(defineProps<Props>(), qdUploadProps)\n const emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']]\n 'update:files': [Props['files']]\n }>()\n const { modelValue, files: fileList } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const reModelValue = computed({\n get: () => {\n const { convStr } = reProps.value\n const value = modelValue.value\n if (isEmpty(value)) return []\n if (typeof value === 'string') {\n return value.split((typeof convStr === 'string' ? convStr : '') || qdDictConvStrSeparator)\n }\n\n return value\n },\n set: (val) => {\n const { convStr } = reProps.value\n if (convStr) {\n modelValue.value = val.join(\n (typeof convStr === 'string' ? convStr : '') || qdDictConvStrSeparator\n )\n return\n }\n\n modelValue.value = val\n }\n })\n\n const formAddBeforeSubmitQueue = inject(PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE, undefined)\n const { t } = useConfig('upload')\n const tdReadonly = useReadonly()\n const tdDisabled = useDisabled()\n const { msgError, msgWarning } = useModal()\n const uploadRef = useTemplateRef<UploadInstanceFunctions>('upload')\n const { timer: uploadTimer, clearTimer: clearUploadTimer } = useTimer('interval')\n\n const delList = ref<(string | number)[]>([])\n\n const popupFileList = computed(() => [...fileList.value])\n\n const globalUploadProps = inject(\n PROVIDE_UPLOAD,\n computed(() => undefined)\n )\n const reProps = computed(() => {\n const {\n modelValue,\n files,\n convStr,\n valueMode,\n theme,\n sizeLimit,\n accept,\n multiple,\n disabled,\n beforeUpload,\n onValidate,\n formatResponse,\n onSuccess,\n onRemove,\n\n onlyView,\n listOssByIds,\n listOssByUrls,\n del,\n\n action,\n bucketConfigKey,\n showImageFileName,\n showUploadProgress,\n showThumbnail,\n draggable,\n\n showManualButton,\n ...uploadOptions\n } = props\n const globalUploadPropsV = globalUploadProps.value\n\n const reAction = action || globalUploadPropsV?.action\n const actionUrl = typeof reAction === 'string' ? reAction : reAction?.(bucketConfigKey)\n\n const reSizeLimit = easyCopy(qdUploadSizeLimit) as SizeLimitObj | undefined\n if (reSizeLimit) {\n if (typeof sizeLimit === 'number') {\n reSizeLimit.size = sizeLimit\n reSizeLimit.message = t('sizeLimitMessage')\n } else {\n Object.assign(reSizeLimit, { message: t('sizeLimitMessage') }, sizeLimit)\n }\n }\n\n const reAccept = accept\n ? accept\n : theme.includes('image')\n ? qdUploadAcceptMap.image\n : qdUploadAcceptMap.default\n const acceptStr = reAccept.join(',')\n\n const reBeforeUpload: typeof beforeUpload = (file) => {\n if (beforeUpload) return beforeUpload(file)\n\n if (reAccept && !isTypeByName(file.name, reAccept)) {\n msgError(\n `${t('fileFormatNotSupportedMessage')[0]} ${reAccept} ${t('fileFormatNotSupportedMessage')[1]}`\n )\n return false\n }\n\n return true\n }\n\n const reOnValidate: typeof onValidate = (context) => {\n if (onValidate) {\n onValidate(context)\n return\n }\n\n switch (context.type) {\n case 'FILES_OVER_LENGTH_LIMIT':\n msgWarning(`${t('maxUploadMessage')[0]}${props.max}${t('maxUploadMessage')[1]}`)\n break\n case 'FILTER_FILE_SAME_NAME':\n msgWarning(t('sameNameMessage'))\n break\n case 'FILE_OVER_SIZE_LIMIT':\n msgWarning(`${context.files.map((t) => t.name).join(',')} ${t('fileSizeExceedsLimit')}`)\n break\n }\n }\n\n const reFormatResponse: typeof formatResponse = (res, context) => {\n if (formatResponse) return formatResponse(res, context)\n\n if (res.code === 200) {\n const { url, ossId, fileName, uploadTime } = res.data || {}\n return {\n success: true,\n url,\n name: fileName,\n ossId,\n uploadTime: uploadTime || dayjs().format('YYYY-MM-DD HH:mm:ss')\n }\n }\n\n return { status: 'fail', error: res.message || res.msg || t('fileUploadFailed') }\n }\n\n const reOnSuccess: typeof onSuccess = (context) => {\n onSuccess?.(context)\n updateModelValue(fileList.value)\n }\n\n const reOnRemove: typeof onRemove = (context) => {\n onRemove?.(context)\n const { ossId } = context.file?.response || {}\n\n if (ossId) {\n if (props.autoUpload) to(handleDel(ossId))\n else addDel(ossId)\n }\n\n updateModelValue(fileList.value)\n }\n\n const handlePopupRemove: typeof onRemove = (context) => {\n reOnRemove(context)\n if (isEmpty(context.index)) return\n\n fileList.value.splice(context.index, 1)\n }\n\n const reUploadOptions = {\n action: actionUrl,\n theme: ['custom', 'file', 'file-input', 'file-flow', 'image', 'image-flow'].includes(theme)\n ? theme\n : 'custom',\n sizeLimit: reSizeLimit,\n accept: acceptStr,\n multiple: multiple ?? props.max !== 1,\n disabled: onlyView ? true : (disabled ?? (tdDisabled.value || tdReadonly.value)),\n beforeUpload: reBeforeUpload,\n onValidate: reOnValidate,\n formatResponse: reFormatResponse,\n onSuccess: reOnSuccess,\n onRemove: reOnRemove,\n showImageFileName: onlyView ? false : showImageFileName,\n showUploadProgress: onlyView ? false : showUploadProgress,\n showThumbnail: onlyView ? true : showThumbnail,\n draggable: onlyView ? false : draggable,\n ...uploadOptions\n } as TdUploadProps\n\n if (globalUploadPropsV) {\n Object.entries(globalUploadPropsV).forEach(([key, value]) => {\n if (['action'].includes(key) || isEmpty(value)) return\n ;(reUploadOptions as Record<string, unknown>)[key] = value\n })\n }\n\n return {\n theme,\n convStr,\n valueMode,\n accept,\n handlePopupRemove,\n onlyView,\n listOssByIds: {\n ...globalUploadPropsV?.listOssByIds,\n ...listOssByIds\n } as Props['listOssByIds'],\n listOssByUrls: {\n ...globalUploadPropsV?.listOssByUrls,\n ...listOssByUrls\n } as Props['listOssByUrls'],\n del: { ...globalUploadPropsV?.del, ...del } as Props['del'],\n showManualButton,\n uploadOptions: reUploadOptions,\n models: {\n modelValue,\n files\n }\n }\n })\n\n const popupUploadTheme = computed(() => {\n switch (props.theme) {\n case 'btn-image-popup':\n return 'image'\n default:\n return 'file-flow'\n }\n })\n\n const expose = {} as QdUploadInstanceFunctions\n\n const uploadFiles: QdUploadInstanceFunctions['uploadFiles'] = (options) => {\n uploadRef.value?.uploadFiles(options?.files)\n\n return new Promise((resolve, reject) => {\n uploadTimer.value = setInterval(() => {\n const isFinished = fileList.value.every((item) => item.status !== 'progress')\n if (!isFinished) return\n\n clearUploadTimer()\n updateModelValue(fileList.value)\n\n const errorList = fileList.value.filter((item) => item.status === 'fail')\n if (errorList.length) {\n const msg = `${errorList.map((item) => item.name).join(',')} ${t('fileUploadFailed')}`\n if (options?.showErrorMessage !== false) {\n msgError(msg)\n }\n reject(new Error(msg))\n return\n }\n\n resolve(fileList.value)\n }, 100)\n })\n }\n\n function updateModelValue(files: UploadFile[]) {\n const tempModelValue: typeof reModelValue.value = []\n files.forEach((item) => {\n if (item.status !== 'success') return\n tempModelValue.push(item.response![reProps.value.valueMode])\n })\n reModelValue.value = tempModelValue\n }\n\n async function handleDel(\n ossId: string | number | (string | number)[],\n showErrorMessage?: boolean\n ) {\n const { del } = reProps.value\n if (!del) return\n\n const { service, transformParams, transformRes } = del\n\n const currentParams = ossId\n let tParams: TDP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as DP))\n if (trErr) throw trErr\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as unknown as TDP)))\n if (serviceErr) throw serviceErr\n\n let res: QdUploadDeleteResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as QdUploadDeleteResult\n }\n\n if (typeof res === 'boolean') {\n res = { success: res, message: '' }\n }\n\n if (!res) {\n res = { success: true, message: '' }\n }\n\n const message = res.message\n if (res.success === false) {\n if (message && showErrorMessage !== false) msgError(message)\n throw new Error(message)\n }\n }\n\n async function addDel(ossId: string | number) {\n delList.value.push(ossId)\n }\n\n async function getOssByIds(ossId: string | number | (string | number)[]) {\n const { listOssByIds } = reProps.value\n if (!listOssByIds) return []\n\n const { service, transformParams, transformRes } = listOssByIds\n\n const currentParams = ossId\n let tParams: TOP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as OP))\n if (trErr) throw trErr\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as unknown as TOP)))\n if (serviceErr) throw serviceErr\n\n let res: QdUploadListOssByIdsResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as QdUploadListOssByIdsResult\n }\n\n return res\n }\n\n async function getOssByUrls(ossId: string | string[]) {\n const { listOssByUrls } = reProps.value\n if (!listOssByUrls) return []\n\n const { service, transformParams, transformRes } = listOssByUrls\n\n const currentParams = ossId\n let tParams: TUP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as UP))\n if (trErr) throw trErr\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as unknown as TUP)))\n if (serviceErr) throw serviceErr\n\n let res: QdUploadListOssByIdsResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as QdUploadListOssByIdsResult\n }\n\n return res\n }\n\n async function uploadBeforeFormSubmit() {\n const [err] = await to(uploadFiles({ showErrorMessage: false }))\n if (err) return { success: false, message: err.message }\n return true\n }\n\n async function delBeforeFormSubmit() {\n if (!delList.value.length) return true\n\n const [err] = await to(handleDel(delList.value, false))\n if (err) return true\n return true\n }\n\n formAddBeforeSubmitQueue?.(uploadBeforeFormSubmit)\n formAddBeforeSubmitQueue?.(delBeforeFormSubmit)\n\n watch(\n reModelValue,\n async (newVal, oldVal) => {\n if (!newVal.length) {\n fileList.value = []\n return\n }\n if (checkSameObject(newVal, oldVal) || fileList.value.length) return\n\n const { valueMode } = reProps.value\n const apiFn = valueMode === 'url' ? getOssByUrls : getOssByIds\n const [err, res] = await to(apiFn(newVal))\n if (err) return\n\n fileList.value = res.map((item) => {\n const { url, ossId, originalName, fileSize, contentType, createTime } = item\n\n return {\n url,\n uid: ossId,\n name: originalName,\n size: fileSize,\n type: contentType,\n uploadTime: createTime,\n response: { status: 'success', url, ossId, name: originalName, uploadTime: createTime },\n status: 'success'\n }\n }) as unknown as F[]\n },\n { deep: true, immediate: true }\n )\n\n onMounted(() => {\n Object.assign(expose, uploadRef.value, { uploadFiles })\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-upload {\n width: 100%;\n outline: none;\n\n :deep(.t-image-viewer__trigger) {\n display: none;\n }\n\n :deep(.t-upload) {\n &__dragger {\n min-width: auto;\n min-height: 144px;\n width: 100%;\n height: 100%;\n }\n\n &__flow {\n width: 100%;\n min-width: auto;\n max-width: 100%;\n\n &-empty {\n height: auto;\n min-height: 144px;\n }\n\n &-card-area,\n &-table {\n margin-top: var(--td-comp-margin-s);\n }\n }\n }\n\n &__popup-upload {\n :deep(.t-image-viewer__trigger) {\n display: none;\n }\n\n :deep(.t-upload) {\n &__flow-table {\n margin-top: 0;\n }\n }\n\n &--disabled {\n :deep(.t-upload) {\n &__flow-table {\n th:last-child,\n td:last-child {\n display: none;\n }\n }\n }\n }\n }\n\n &:focus {\n :deep(.t-upload__flow-card-area),\n :deep(.t-upload__flow-table) {\n border-color: var(--td-brand-color);\n }\n }\n\n &--only-view {\n :deep(.t-upload) {\n &__flow-empty,\n &__card-mask-item-divider {\n display: none;\n }\n\n &__flow-card-area {\n border-color: var(--td-component-border);\n }\n }\n\n &:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) {\n :deep(.t-upload) {\n &__flow-op,\n &__trigger,\n &__flow-bottom {\n display: none;\n }\n\n &__flow-table,\n &__flow-card-area {\n margin-top: 0;\n }\n\n &__card {\n .t-upload__card-item.t-is-background:last-child {\n display: none;\n }\n }\n }\n }\n }\n\n &--hide-manual-upload {\n :deep(.t-upload) {\n &__flow-bottom {\n display: none;\n margin-top: 0;\n }\n }\n }\n\n &--hide-progress {\n :deep(.t-upload) {\n &__flow-table {\n th:last-child,\n td:last-child {\n display: none;\n }\n }\n }\n }\n\n &--disabled {\n :deep(.t-upload__flow-card-area) {\n border-color: var(--td-component-border);\n }\n }\n }\n</style>\n"],"names":["modelValue","t","_openBlock","_createBlock","_unref","_mergeProps","_createSlots","TSpace","TButton","_createVNode","_toDisplayString","TPopup","TUpload","_normalizeClass","_createElementVNode","TBadge","_createTextVNode","$slots","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqIE,UAAM,QAAQ;AACd,UAAM,OAAO;AAIb,UAAM,EAAE,YAAY,OAAO,aAAa,WAA4C,OAAO,MAAM;AAAA,MAC/F,SAAS;AAAA,IAAA,CACV;AAED,UAAM,eAAe,SAAS;AAAA,MAC5B,KAAK,MAAM;AACT,cAAM,EAAE,YAAY,QAAQ;AAC5B,cAAM,QAAQ,WAAW;AACzB,YAAI,QAAQ,KAAK,EAAG,QAAO,CAAA;AAC3B,YAAI,OAAO,UAAU,UAAU;AAC7B,iBAAO,MAAM,OAAO,OAAO,YAAY,WAAW,UAAU,OAAO,sBAAsB;AAAA,QAC3F;AAEA,eAAO;AAAA,MACT;AAAA,MACA,KAAK,CAAC,QAAQ;AACZ,cAAM,EAAE,YAAY,QAAQ;AAC5B,YAAI,SAAS;AACX,qBAAW,QAAQ,IAAI;AAAA,aACpB,OAAO,YAAY,WAAW,UAAU,OAAO;AAAA,UAAA;AAElD;AAAA,QACF;AAEA,mBAAW,QAAQ;AAAA,MACrB;AAAA,IAAA,CACD;AAED,UAAM,2BAA2B,OAAO,sCAAsC,MAAS;AACvF,UAAM,EAAE,EAAA,IAAM,UAAU,QAAQ;AAChC,UAAM,aAAa,YAAA;AACnB,UAAM,aAAa,YAAA;AACnB,UAAM,EAAE,UAAU,WAAA,IAAe,SAAA;AACjC,UAAM,YAAY,eAAwC,QAAQ;AAClE,UAAM,EAAE,OAAO,aAAa,YAAY,iBAAA,IAAqB,SAAS,UAAU;AAEhF,UAAM,UAAU,IAAyB,EAAE;AAE3C,UAAM,gBAAgB,SAAS,MAAM,CAAC,GAAG,SAAS,KAAK,CAAC;AAExD,UAAM,oBAAoB;AAAA,MACxB;AAAA,MACA,SAAS,MAAM,MAAS;AAAA,IAAA;AAE1B,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM;AAAA,QACJ,YAAAA;AAAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QAEA;AAAA,QACA,GAAG;AAAA,MAAA,IACD;AACJ,YAAM,qBAAqB,kBAAkB;AAE7C,YAAM,WAAW,UAAU,oBAAoB;AAC/C,YAAM,YAAY,OAAO,aAAa,WAAW,WAAW,WAAW,eAAe;AAEtF,YAAM,cAAc,SAAS,iBAAiB;AAC9C,UAAI,aAAa;AACf,YAAI,OAAO,cAAc,UAAU;AACjC,sBAAY,OAAO;AACnB,sBAAY,UAAU,EAAE,kBAAkB;AAAA,QAC5C,OAAO;AACL,iBAAO,OAAO,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAA,GAAK,SAAS;AAAA,QAC1E;AAAA,MACF;AAEA,YAAM,WAAW,SACb,SACA,MAAM,SAAS,OAAO,IACpB,kBAAkB,QAClB,kBAAkB;AACxB,YAAM,YAAY,SAAS,KAAK,GAAG;AAEnC,YAAM,iBAAsC,CAAC,SAAS;AACpD,YAAI,aAAc,QAAO,aAAa,IAAI;AAE1C,YAAI,YAAY,CAAC,aAAa,KAAK,MAAM,QAAQ,GAAG;AAClD;AAAA,YACE,GAAG,EAAE,+BAA+B,EAAE,CAAC,CAAC,IAAI,QAAQ,IAAI,EAAE,+BAA+B,EAAE,CAAC,CAAC;AAAA,UAAA;AAE/F,iBAAO;AAAA,QACT;AAEA,eAAO;AAAA,MACT;AAEA,YAAM,eAAkC,CAAC,YAAY;AACnD,YAAI,YAAY;AACd,qBAAW,OAAO;AAClB;AAAA,QACF;AAEA,gBAAQ,QAAQ,MAAA;AAAA,UACd,KAAK;AACH,uBAAW,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE;AAC/E;AAAA,UACF,KAAK;AACH,uBAAW,EAAE,iBAAiB,CAAC;AAC/B;AAAA,UACF,KAAK;AACH,uBAAW,GAAG,QAAQ,MAAM,IAAI,CAACC,OAAMA,GAAE,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,sBAAsB,CAAC,EAAE;AACvF;AAAA,QAAA;AAAA,MAEN;AAEA,YAAM,mBAA0C,CAAC,KAAK,YAAY;AAChE,YAAI,eAAgB,QAAO,eAAe,KAAK,OAAO;AAEtD,YAAI,IAAI,SAAS,KAAK;AACpB,gBAAM,EAAE,KAAK,OAAO,UAAU,eAAe,IAAI,QAAQ,CAAA;AACzD,iBAAO;AAAA,YACL,SAAS;AAAA,YACT;AAAA,YACA,MAAM;AAAA,YACN;AAAA,YACA,YAAY,cAAc,MAAA,EAAQ,OAAO,qBAAqB;AAAA,UAAA;AAAA,QAElE;AAEA,eAAO,EAAE,QAAQ,QAAQ,OAAO,IAAI,WAAW,IAAI,OAAO,EAAE,kBAAkB,EAAA;AAAA,MAChF;AAEA,YAAM,cAAgC,CAAC,YAAY;AACjD,oBAAY,OAAO;AACnB,yBAAiB,SAAS,KAAK;AAAA,MACjC;AAEA,YAAM,aAA8B,CAAC,YAAY;AAC/C,mBAAW,OAAO;AAClB,cAAM,EAAE,MAAA,IAAU,QAAQ,MAAM,YAAY,CAAA;AAE5C,YAAI,OAAO;AACT,cAAI,MAAM,WAAY,IAAG,UAAU,KAAK,CAAC;AAAA,sBAC7B,KAAK;AAAA,QACnB;AAEA,yBAAiB,SAAS,KAAK;AAAA,MACjC;AAEA,YAAM,oBAAqC,CAAC,YAAY;AACtD,mBAAW,OAAO;AAClB,YAAI,QAAQ,QAAQ,KAAK,EAAG;AAE5B,iBAAS,MAAM,OAAO,QAAQ,OAAO,CAAC;AAAA,MACxC;AAEA,YAAM,kBAAkB;AAAA,QACtB,QAAQ;AAAA,QACR,OAAO,CAAC,UAAU,QAAQ,cAAc,aAAa,SAAS,YAAY,EAAE,SAAS,KAAK,IACtF,QACA;AAAA,QACJ,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,UAAU,YAAY,MAAM,QAAQ;AAAA,QACpC,UAAU,WAAW,OAAQ,aAAa,WAAW,SAAS,WAAW;AAAA,QACzE,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,WAAW;AAAA,QACX,UAAU;AAAA,QACV,mBAAmB,WAAW,QAAQ;AAAA,QACtC,oBAAoB,WAAW,QAAQ;AAAA,QACvC,eAAe,WAAW,OAAO;AAAA,QACjC,WAAW,WAAW,QAAQ;AAAA,QAC9B,GAAG;AAAA,MAAA;AAGL,UAAI,oBAAoB;AACtB,eAAO,QAAQ,kBAAkB,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC3D,cAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,KAAK,QAAQ,KAAK,EAAG;AAC9C,0BAA4C,GAAG,IAAI;AAAA,QACvD,CAAC;AAAA,MACH;AAEA,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAc;AAAA,UACZ,GAAG,oBAAoB;AAAA,UACvB,GAAG;AAAA,QAAA;AAAA,QAEL,eAAe;AAAA,UACb,GAAG,oBAAoB;AAAA,UACvB,GAAG;AAAA,QAAA;AAAA,QAEL,KAAK,EAAE,GAAG,oBAAoB,KAAK,GAAG,IAAA;AAAA,QACtC;AAAA,QACA,eAAe;AAAA,QACf,QAAQ;AAAA,UACN,YAAAD;AAAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,IAEJ,CAAC;AAED,UAAM,mBAAmB,SAAS,MAAM;AACtC,cAAQ,MAAM,OAAA;AAAA,QACZ,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MAAA;AAAA,IAEb,CAAC;AAED,UAAM,SAAS,CAAA;AAEf,UAAM,cAAwD,CAAC,YAAY;AACzE,gBAAU,OAAO,YAAY,SAAS,KAAK;AAE3C,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,oBAAY,QAAQ,YAAY,MAAM;AACpC,gBAAM,aAAa,SAAS,MAAM,MAAM,CAAC,SAAS,KAAK,WAAW,UAAU;AAC5E,cAAI,CAAC,WAAY;AAEjB,2BAAA;AACA,2BAAiB,SAAS,KAAK;AAE/B,gBAAM,YAAY,SAAS,MAAM,OAAO,CAAC,SAAS,KAAK,WAAW,MAAM;AACxE,cAAI,UAAU,QAAQ;AACpB,kBAAM,MAAM,GAAG,UAAU,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAAC;AACpF,gBAAI,SAAS,qBAAqB,OAAO;AACvC,uBAAS,GAAG;AAAA,YACd;AACA,mBAAO,IAAI,MAAM,GAAG,CAAC;AACrB;AAAA,UACF;AAEA,kBAAQ,SAAS,KAAK;AAAA,QACxB,GAAG,GAAG;AAAA,MACR,CAAC;AAAA,IACH;AAEA,aAAS,iBAAiB,OAAqB;AAC7C,YAAM,iBAA4C,CAAA;AAClD,YAAM,QAAQ,CAAC,SAAS;AACtB,YAAI,KAAK,WAAW,UAAW;AAC/B,uBAAe,KAAK,KAAK,SAAU,QAAQ,MAAM,SAAS,CAAC;AAAA,MAC7D,CAAC;AACD,mBAAa,QAAQ;AAAA,IACvB;AAEA,mBAAe,UACb,OACA,kBACA;AACA,YAAM,EAAE,QAAQ,QAAQ;AACxB,UAAI,CAAC,IAAK;AAEV,YAAM,EAAE,SAAS,iBAAiB,aAAA,IAAiB;AAEnD,YAAM,gBAAgB;AACtB,UAAI;AAEJ,UAAI,iBAAiB;AACnB,cAAM,CAAC,OAAO,KAAK,IAAI,MAAM,wBAAwB,gBAAgB,aAAmB,CAAC;AACzF,YAAI,MAAO,OAAM;AAEjB,kBAAU;AAAA,MACZ;AAEA,YAAM,CAAC,YAAY,UAAU,IAAI,MAAM,GAAG,QAAQ,WAAY,aAAgC,CAAC;AAC/F,UAAI,WAAY,OAAM;AAEtB,UAAI;AACJ,UAAI,cAAc;AAChB,cAAM,CAAC,OAAO,KAAK,IAAI,MAAM,wBAAwB,aAAa,UAAU,CAAC;AAC7E,YAAI,MAAO,OAAM;AAEjB,cAAM;AAAA,MACR,OAAO;AACL,cAAM;AAAA,MACR;AAEA,UAAI,OAAO,QAAQ,WAAW;AAC5B,cAAM,EAAE,SAAS,KAAK,SAAS,GAAA;AAAA,MACjC;AAEA,UAAI,CAAC,KAAK;AACR,cAAM,EAAE,SAAS,MAAM,SAAS,GAAA;AAAA,MAClC;AAEA,YAAM,UAAU,IAAI;AACpB,UAAI,IAAI,YAAY,OAAO;AACzB,YAAI,WAAW,qBAAqB,MAAO,UAAS,OAAO;AAC3D,cAAM,IAAI,MAAM,OAAO;AAAA,MACzB;AAAA,IACF;AAEA,mBAAe,OAAO,OAAwB;AAC5C,cAAQ,MAAM,KAAK,KAAK;AAAA,IAC1B;AAEA,mBAAe,YAAY,OAA8C;AACvE,YAAM,EAAE,iBAAiB,QAAQ;AACjC,UAAI,CAAC,aAAc,QAAO,CAAA;AAE1B,YAAM,EAAE,SAAS,iBAAiB,aAAA,IAAiB;AAEnD,YAAM,gBAAgB;AACtB,UAAI;AAEJ,UAAI,iBAAiB;AACnB,cAAM,CAAC,OAAO,KAAK,IAAI,MAAM,wBAAwB,gBAAgB,aAAmB,CAAC;AACzF,YAAI,MAAO,OAAM;AAEjB,kBAAU;AAAA,MACZ;AAEA,YAAM,CAAC,YAAY,UAAU,IAAI,MAAM,GAAG,QAAQ,WAAY,aAAgC,CAAC;AAC/F,UAAI,WAAY,OAAM;AAEtB,UAAI;AACJ,UAAI,cAAc;AAChB,cAAM,CAAC,OAAO,KAAK,IAAI,MAAM,wBAAwB,aAAa,UAAU,CAAC;AAC7E,YAAI,MAAO,OAAM;AAEjB,cAAM;AAAA,MACR,OAAO;AACL,cAAM;AAAA,MACR;AAEA,aAAO;AAAA,IACT;AAEA,mBAAe,aAAa,OAA0B;AACpD,YAAM,EAAE,kBAAkB,QAAQ;AAClC,UAAI,CAAC,cAAe,QAAO,CAAA;AAE3B,YAAM,EAAE,SAAS,iBAAiB,aAAA,IAAiB;AAEnD,YAAM,gBAAgB;AACtB,UAAI;AAEJ,UAAI,iBAAiB;AACnB,cAAM,CAAC,OAAO,KAAK,IAAI,MAAM,wBAAwB,gBAAgB,aAAmB,CAAC;AACzF,YAAI,MAAO,OAAM;AAEjB,kBAAU;AAAA,MACZ;AAEA,YAAM,CAAC,YAAY,UAAU,IAAI,MAAM,GAAG,QAAQ,WAAY,aAAgC,CAAC;AAC/F,UAAI,WAAY,OAAM;AAEtB,UAAI;AACJ,UAAI,cAAc;AAChB,cAAM,CAAC,OAAO,KAAK,IAAI,MAAM,wBAAwB,aAAa,UAAU,CAAC;AAC7E,YAAI,MAAO,OAAM;AAEjB,cAAM;AAAA,MACR,OAAO;AACL,cAAM;AAAA,MACR;AAEA,aAAO;AAAA,IACT;AAEA,mBAAe,yBAAyB;AACtC,YAAM,CAAC,GAAG,IAAI,MAAM,GAAG,YAAY,EAAE,kBAAkB,MAAA,CAAO,CAAC;AAC/D,UAAI,IAAK,QAAO,EAAE,SAAS,OAAO,SAAS,IAAI,QAAA;AAC/C,aAAO;AAAA,IACT;AAEA,mBAAe,sBAAsB;AACnC,UAAI,CAAC,QAAQ,MAAM,OAAQ,QAAO;AAElC,YAAM,CAAC,GAAG,IAAI,MAAM,GAAG,UAAU,QAAQ,OAAO,KAAK,CAAC;AACtD,UAAI,IAAK,QAAO;AAChB,aAAO;AAAA,IACT;AAEA,+BAA2B,sBAAsB;AACjD,+BAA2B,mBAAmB;AAE9C;AAAA,MACE;AAAA,MACA,OAAO,QAAQ,WAAW;AACxB,YAAI,CAAC,OAAO,QAAQ;AAClB,mBAAS,QAAQ,CAAA;AACjB;AAAA,QACF;AACA,YAAI,gBAAgB,QAAQ,MAAM,KAAK,SAAS,MAAM,OAAQ;AAE9D,cAAM,EAAE,cAAc,QAAQ;AAC9B,cAAM,QAAQ,cAAc,QAAQ,eAAe;AACnD,cAAM,CAAC,KAAK,GAAG,IAAI,MAAM,GAAG,MAAM,MAAM,CAAC;AACzC,YAAI,IAAK;AAET,iBAAS,QAAQ,IAAI,IAAI,CAAC,SAAS;AACjC,gBAAM,EAAE,KAAK,OAAO,cAAc,UAAU,aAAa,eAAe;AAExE,iBAAO;AAAA,YACL;AAAA,YACA,KAAK;AAAA,YACL,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,YAAY;AAAA,YACZ,UAAU,EAAE,QAAQ,WAAW,KAAK,OAAO,MAAM,cAAc,YAAY,WAAA;AAAA,YAC3E,QAAQ;AAAA,UAAA;AAAA,QAEZ,CAAC;AAAA,MACH;AAAA,MACA,EAAE,MAAM,MAAM,WAAW,KAAA;AAAA,IAAK;AAGhC,cAAU,MAAM;AACd,aAAO,OAAO,QAAQ,UAAU,OAAO,EAAE,aAAa;AAAA,IACxD,CAAC;AAED,aAAa,MAAM;;AA/jBnB,aAAAE,aAAAC,YAmEWC,eAnEXC,WAmEW;AAAA,QAlET,KAAI;AAAA,QACH,OAAK;AAAA;UAA2C,cAAA,QAAA,MAAQ,KAAK;AAAA,UAAU,QAAA,MAAQ,WAAQ,yBAAA;AAAA,UAAuC,CAAA,QAAA,MAAQ,cAAc,sBAAsB,QAAA,MAAQ;UAAmE,CAAA,QAAA,MAAQ,cAAc,cAAc,QAAA,MAAQ;UAA+E,QAAA,MAAQ,cAAc,WAAQ,wBAAA;AAAA,QAAA;AAAA,QAYvY,OAAOD,MAAA,QAAA;AAAA,kFAAA,SAAQ,QAAA,SAAA;AAAA,QACtB,UAAU,cAAQ,YAAY,QAAA,MAAQ,cAAc,WAAQ,KAAA;AAAA,MAAA,GACrD,QAAA,MAAQ,aAAa,GAAAE,YAAA;AAAA,yBAE7B,MA4CW;AAAA,UA5C2C,CAAA,kBAAA,iBAAA,EAAA,SAAS,QAAA,KAAK,kBAClEH,YA0CUC,MAAAG,KAAA,GAAA;AAAA;YA1CD,OAAM;AAAA,YAAS,MAAK;AAAA,UAAA;6BAC3B,MAaW;AAAA,cAZF,CAAA,QAAA,MAAQ,yBADjBJ,YAaWC,MAAAI,MAAA,GAAA;AAAA;gBAXT,SAAQ;AAAA,gBACP,UAAU,QAAA,MAAQ,cAAc;AAAA,cAAA;gBAEtB,cAAK,MAAe;AAAA,kBAAfC,YAAeL,MAAA,UAAA,CAAA;AAAA,gBAAA;iCAAW,MAC1C;AAAA,kCAD0C,MAC1CM,gBAAA,CACGN,MAAA,QAAA,EAAS,SAAuBA,MAAA,CAAA,uBAAuB,YAA0B,QAAA,MAAQ,cAAc,cAAc,QAAA,MAAQ,cAAc,WAA2BA,MAAA,CAAA,uBAAuB,WAA2BA,MAAA,CAAA,uBAAuB,cAAc,GAAA,CAAA;AAAA,gBAAA;;;cAQnPA,MAAA,QAAA,EAAS,uBAAxBD,YAyBUC,MAAAO,KAAA,GAAA;AAAA;gBAzBsB,cAAA;AAAA,gBAAW,SAAQ;AAAA,cAAA;gBAQtC,iBACT,MAcW;AAAA,kBAdXF,YAcWL,MAAAQ,MAAA,GAAA;AAAA,oBAbR,OAAKC,eAAA;AAAA;sBAA+D,QAAA,MAAQ,cAAc,WAAQ,sCAAA;AAAA,oBAAA;oBAI3F,OAAO,cAAA;AAAA,4EAAA,cAAa,QAAA;AAAA,oBAC3B,OAAO,iBAAA;AAAA,oBACP,UAAU,QAAA,MAAQ,cAAc;AAAA,oBAChC,aAAW,QAAA,MAAQ;AAAA,oBACnB,kBAAgB,QAAA,MAAQ,cAAc;AAAA,oBACtC,wBAAsB,QAAA,MAAQ,cAAc;AAAA,oBAC5C,wBAAsB,QAAA,MAAQ,cAAc;AAAA,kBAAA;oBAElC,iBAAQ,MAAmC,CAAA,GAAA,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA;AAAA,sBAAnCC,mBAAmC,QAAA,EAA7B,OAAA,EAAA,WAAA,OAAA,EAAA,GAAqB,MAAA,EAAA;AAAA,oBAAA;;;;iCArBlD,MAKU;AAAA,kBALVL,YAKUL,MAAAW,KAAA,GAAA;AAAA,oBALA,OAAOX,MAAA,QAAA,EAAS;AAAA,oBAAQ,MAAK;AAAA,oBAAS,QAAQ,CAAA,GAAA,CAAA;AAAA,oBAAS,iDAAD,MAAA;AAAA,oBAAA,GAAW,CAAA,MAAA,CAAA;AAAA,kBAAA;qCACzE,MAGW;AAAA,sBAHXK,YAGWL,MAAAI,MAAA,GAAA,EAHD,SAAQ,aAAS;AAAA,wBACd,cAAK,MAAe;AAAA,0BAAfC,YAAeL,MAAA,UAAA,CAAA;AAAA,wBAAA;yCAAW,MAC1C;AAAA,0BAD0CY,gBAAA,sBACvCZ,MAAA,CAAA,EAAC,cAAA,CAAA,GAAA,CAAA;AAAA,wBAAA;;;;;;;;;;;;;;;mBAyBgBa,KAAAA,QAAM,CAAlB,GAAG,SAAI;;;YACvB,IAAAC,QAAA,CAD6C,cAAS;AAAA,cACtDC,WAAwC,KAAA,QAA3B,MAAIC,eAAAC,mBAAU,SAAS,CAAA,GAAA,QAAA,IAAA;AAAA,YAAA;;;;;;;"}
|
package/dist/index.mjs
CHANGED
|
@@ -31,7 +31,9 @@ import { default as default21 } from "./components/image/index.vue.mjs";
|
|
|
31
31
|
import { default as default22 } from "./components/service/list/index.vue.mjs";
|
|
32
32
|
import { default as default23 } from "./components/service/table/index.vue.mjs";
|
|
33
33
|
import { default as default24 } from "./components/service-dialog-table-select/index.vue.mjs";
|
|
34
|
+
import { defineQdServiceDialogTableSelect } from "./components/service-dialog-table-select/define.mjs";
|
|
34
35
|
import { default as default25 } from "./components/service-popup-table-select/index.vue.mjs";
|
|
36
|
+
import { defineQdServicePopupTableSelect } from "./components/service-popup-table-select/define.mjs";
|
|
35
37
|
import { default as default26 } from "./components/service-select/index.vue.mjs";
|
|
36
38
|
import { default as default27 } from "./components/upload/index.vue.mjs";
|
|
37
39
|
import { qdUploadAcceptMap } from "./components/upload/config.mjs";
|
|
@@ -79,6 +81,8 @@ export {
|
|
|
79
81
|
auth,
|
|
80
82
|
defineQdCrudList,
|
|
81
83
|
defineQdCrudTable,
|
|
84
|
+
defineQdServiceDialogTableSelect,
|
|
85
|
+
defineQdServicePopupTableSelect,
|
|
82
86
|
formatDuration,
|
|
83
87
|
getValueByPath,
|
|
84
88
|
hasPermi,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/qidian-vue-ui.css
CHANGED
|
@@ -6073,24 +6073,30 @@ p {
|
|
|
6073
6073
|
.qd-service-select__desc {
|
|
6074
6074
|
color: var(--td-text-color-placeholder);
|
|
6075
6075
|
}
|
|
6076
|
-
.qd-dialog-table-select[data-v-
|
|
6076
|
+
.qd-dialog-table-select[data-v-22654679] {
|
|
6077
|
+
width: 100%;
|
|
6078
|
+
}
|
|
6079
|
+
.qd-dialog-table-select__trigger[data-v-22654679] {
|
|
6080
|
+
width: 100%;
|
|
6081
|
+
}
|
|
6082
|
+
.qd-dialog-table-select__trigger[data-v-22654679]:not(.qd-dialog-table-select__trigger--readonly):not(.qd-dialog-table-select__trigger--disabled) {
|
|
6077
6083
|
cursor: pointer;
|
|
6078
6084
|
}
|
|
6079
|
-
.qd-dialog-table-select__table[data-v-
|
|
6080
|
-
.qd-dialog-table-select__table[data-v-
|
|
6085
|
+
.qd-dialog-table-select__table[data-v-22654679] .qd-crud-search > .t-card__body,
|
|
6086
|
+
.qd-dialog-table-select__table[data-v-22654679] .qd-crud-table__body > .t-card__body {
|
|
6081
6087
|
padding: 0 !important;
|
|
6082
6088
|
}
|
|
6083
|
-
.qd-dialog-table-select__table[data-v-
|
|
6089
|
+
.qd-dialog-table-select__table[data-v-22654679] .qd-crud-table__toolbar {
|
|
6084
6090
|
display: none;
|
|
6085
6091
|
}
|
|
6086
|
-
.qd-dialog-table-select__table[data-v-
|
|
6092
|
+
.qd-dialog-table-select__table[data-v-22654679] .qd-service-table {
|
|
6087
6093
|
margin-top: 0;
|
|
6088
6094
|
}
|
|
6089
|
-
.qd-dialog-table-select__table-add[data-v-
|
|
6095
|
+
.qd-dialog-table-select__table-add[data-v-22654679] {
|
|
6090
6096
|
margin-top: var(--td-comp-margin-m);
|
|
6091
6097
|
display: flex;
|
|
6092
6098
|
}
|
|
6093
|
-
.qd-dialog-table-select__table-add .t-input__wrap[data-v-
|
|
6099
|
+
.qd-dialog-table-select__table-add .t-input__wrap[data-v-22654679] {
|
|
6094
6100
|
flex: 1 1 0;
|
|
6095
6101
|
overflow: hidden;
|
|
6096
6102
|
margin-right: var(--td-comp-margin-m);
|
|
@@ -6098,65 +6104,92 @@ p {
|
|
|
6098
6104
|
.qd-popup-table-select__overlay {
|
|
6099
6105
|
width: min(960px, 100%);
|
|
6100
6106
|
}
|
|
6101
|
-
.qd-popup-table-select__table[data-v-
|
|
6102
|
-
.qd-popup-table-select__table[data-v-
|
|
6107
|
+
.qd-popup-table-select__table[data-v-e27012b0] .qd-crud-search > .t-card__body,
|
|
6108
|
+
.qd-popup-table-select__table[data-v-e27012b0] .qd-crud-table__body > .t-card__body {
|
|
6103
6109
|
padding: 0 !important;
|
|
6104
6110
|
}
|
|
6105
|
-
.qd-popup-table-select__table[data-v-
|
|
6111
|
+
.qd-popup-table-select__table[data-v-e27012b0] .qd-crud-table__toolbar {
|
|
6106
6112
|
display: none;
|
|
6107
6113
|
}
|
|
6108
|
-
.qd-popup-table-select__table[data-v-
|
|
6114
|
+
.qd-popup-table-select__table[data-v-e27012b0] .qd-service-table {
|
|
6109
6115
|
margin-top: 0;
|
|
6110
6116
|
}
|
|
6111
|
-
.qd-popup-table-select__table-add[data-v-
|
|
6117
|
+
.qd-popup-table-select__table-add[data-v-e27012b0] {
|
|
6112
6118
|
margin-top: var(--td-comp-margin-m);
|
|
6113
6119
|
display: flex;
|
|
6114
6120
|
}
|
|
6115
|
-
.qd-popup-table-select__table-add .t-input__wrap[data-v-
|
|
6121
|
+
.qd-popup-table-select__table-add .t-input__wrap[data-v-e27012b0] {
|
|
6116
6122
|
flex: 1 1 0;
|
|
6117
6123
|
overflow: hidden;
|
|
6118
6124
|
margin-right: var(--td-comp-margin-m);
|
|
6119
6125
|
}
|
|
6120
|
-
.qd-upload[data-v-
|
|
6121
|
-
|
|
6126
|
+
.qd-upload[data-v-e86a1393] {
|
|
6127
|
+
width: 100%;
|
|
6128
|
+
outline: none;
|
|
6129
|
+
}
|
|
6130
|
+
.qd-upload[data-v-e86a1393] .t-image-viewer__trigger {
|
|
6131
|
+
display: none;
|
|
6132
|
+
}
|
|
6133
|
+
.qd-upload[data-v-e86a1393] .t-upload__dragger {
|
|
6134
|
+
min-width: auto;
|
|
6122
6135
|
min-height: 144px;
|
|
6123
6136
|
width: 100%;
|
|
6124
6137
|
height: 100%;
|
|
6125
6138
|
}
|
|
6126
|
-
.qd-upload[data-v-
|
|
6139
|
+
.qd-upload[data-v-e86a1393] .t-upload__flow {
|
|
6127
6140
|
width: 100%;
|
|
6141
|
+
min-width: auto;
|
|
6128
6142
|
max-width: 100%;
|
|
6129
6143
|
}
|
|
6130
|
-
.qd-
|
|
6144
|
+
.qd-upload[data-v-e86a1393] .t-upload__flow-empty {
|
|
6145
|
+
height: auto;
|
|
6146
|
+
min-height: 144px;
|
|
6147
|
+
}
|
|
6148
|
+
.qd-upload[data-v-e86a1393] .t-upload__flow-card-area,
|
|
6149
|
+
.qd-upload[data-v-e86a1393] .t-upload__flow-table {
|
|
6150
|
+
margin-top: var(--td-comp-margin-s);
|
|
6151
|
+
}
|
|
6152
|
+
.qd-upload__popup-upload[data-v-e86a1393] .t-image-viewer__trigger {
|
|
6131
6153
|
display: none;
|
|
6132
6154
|
}
|
|
6133
|
-
.qd-upload__popup-upload[data-v-
|
|
6155
|
+
.qd-upload__popup-upload[data-v-e86a1393] .t-upload__flow-table {
|
|
6134
6156
|
margin-top: 0;
|
|
6135
6157
|
}
|
|
6136
|
-
.qd-upload__popup-upload--disabled[data-v-
|
|
6137
|
-
.qd-upload__popup-upload--disabled[data-v-
|
|
6158
|
+
.qd-upload__popup-upload--disabled[data-v-e86a1393] .t-upload__flow-table th:last-child,
|
|
6159
|
+
.qd-upload__popup-upload--disabled[data-v-e86a1393] .t-upload__flow-table td:last-child {
|
|
6138
6160
|
display: none;
|
|
6139
6161
|
}
|
|
6140
|
-
.qd-upload
|
|
6141
|
-
.qd-upload
|
|
6142
|
-
|
|
6162
|
+
.qd-upload[data-v-e86a1393]:focus .t-upload__flow-card-area,
|
|
6163
|
+
.qd-upload[data-v-e86a1393]:focus .t-upload__flow-table {
|
|
6164
|
+
border-color: var(--td-brand-color);
|
|
6165
|
+
}
|
|
6166
|
+
.qd-upload--only-view[data-v-e86a1393] .t-upload__flow-empty,
|
|
6167
|
+
.qd-upload--only-view[data-v-e86a1393] .t-upload__card-mask-item-divider {
|
|
6143
6168
|
display: none;
|
|
6144
6169
|
}
|
|
6145
|
-
.qd-upload--only-view[data-v-
|
|
6146
|
-
|
|
6147
|
-
margin-top: 0;
|
|
6170
|
+
.qd-upload--only-view[data-v-e86a1393] .t-upload__flow-card-area {
|
|
6171
|
+
border-color: var(--td-component-border);
|
|
6148
6172
|
}
|
|
6149
|
-
.qd-upload--only-view[data-v-
|
|
6173
|
+
.qd-upload--only-view[data-v-e86a1393]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__flow-op,
|
|
6174
|
+
.qd-upload--only-view[data-v-e86a1393]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__trigger,
|
|
6175
|
+
.qd-upload--only-view[data-v-e86a1393]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__flow-bottom {
|
|
6150
6176
|
display: none;
|
|
6151
6177
|
}
|
|
6152
|
-
.qd-upload--only-view[data-v-
|
|
6178
|
+
.qd-upload--only-view[data-v-e86a1393]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__flow-table,
|
|
6179
|
+
.qd-upload--only-view[data-v-e86a1393]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__flow-card-area {
|
|
6180
|
+
margin-top: 0;
|
|
6181
|
+
}
|
|
6182
|
+
.qd-upload--only-view[data-v-e86a1393]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__card .t-upload__card-item.t-is-background:last-child {
|
|
6153
6183
|
display: none;
|
|
6154
6184
|
}
|
|
6155
|
-
.qd-upload--hide-manual-upload[data-v-
|
|
6185
|
+
.qd-upload--hide-manual-upload[data-v-e86a1393] .t-upload__flow-bottom {
|
|
6156
6186
|
display: none;
|
|
6157
6187
|
margin-top: 0;
|
|
6158
6188
|
}
|
|
6159
|
-
.qd-upload--hide-progress[data-v-
|
|
6160
|
-
.qd-upload--hide-progress[data-v-
|
|
6189
|
+
.qd-upload--hide-progress[data-v-e86a1393] .t-upload__flow-table th:last-child,
|
|
6190
|
+
.qd-upload--hide-progress[data-v-e86a1393] .t-upload__flow-table td:last-child {
|
|
6161
6191
|
display: none;
|
|
6162
6192
|
}
|
|
6193
|
+
.qd-upload--disabled[data-v-e86a1393] .t-upload__flow-card-area {
|
|
6194
|
+
border-color: var(--td-component-border);
|
|
6195
|
+
}
|