|
1 |
| -import { ChevronDownIcon, ChevronLeftIcon, CloseIcon } from 'tdesign-icons-vue-next'; |
| 1 | +import { BrowseIcon, ChevronDownIcon, ChevronLeftIcon, CloseIcon } from 'tdesign-icons-vue-next'; |
2 | 2 | import { Teleport, Transition, computed, defineComponent, nextTick, ref, toRefs, watch } from 'vue';
|
3 | 3 |
|
4 | 4 | import {
|
@@ -226,11 +226,38 @@ export default defineComponent({
|
226 | 226 | );
|
227 | 227 | };
|
228 | 228 |
|
| 229 | + // 渲染默认trigger |
| 230 | + // 原本需要手动配置 需要添加完template插槽之后设置DOM元素,现在添加默认DOM |
| 231 | + const renderDefaultTrigger = () => { |
| 232 | + if (props.trigger) { |
| 233 | + return renderTNodeJSX('trigger', { params: { open: openHandler } }); |
| 234 | + } |
| 235 | + |
| 236 | + // 如果没有提供trigger,则渲染默认的图片预览按钮 |
| 237 | + const firstImage = images.value[0]; |
| 238 | + if (!firstImage) return null; |
| 239 | + |
| 240 | + const imageSrc = |
| 241 | + typeof firstImage === 'string' ? firstImage : (firstImage as any).mainImage || (firstImage as any).thumbnail; |
| 242 | + |
| 243 | + return ( |
| 244 | + <div class={`${COMPONENT_NAME.value}__trigger`}> |
| 245 | + <img src={imageSrc} alt="preview" class={`${COMPONENT_NAME.value}__trigger--img`} /> |
| 246 | + <div class={`${COMPONENT_NAME.value}__trigger--hover`} onClick={openHandler}> |
| 247 | + <span> |
| 248 | + <BrowseIcon size="1.4em" class={`${COMPONENT_NAME.value}__trigger--icon`} /> |
| 249 | + 预览 |
| 250 | + </span> |
| 251 | + </div> |
| 252 | + </div> |
| 253 | + ); |
| 254 | + }; |
| 255 | + |
229 | 256 | return () => {
|
230 | 257 | if (props.mode === 'modeless') {
|
231 | 258 | return (
|
232 | 259 | <>
|
233 |
| - {renderTNodeJSX('trigger', { params: { open: openHandler } })} |
| 260 | + {renderDefaultTrigger()} |
234 | 261 | <TImageViewerModal
|
235 | 262 | zIndex={zIndexValue.value}
|
236 | 263 | visible={visibleValue.value}
|
@@ -258,7 +285,7 @@ export default defineComponent({
|
258 | 285 |
|
259 | 286 | return (
|
260 | 287 | <>
|
261 |
| - {renderTNodeJSX('trigger', { params: { open: openHandler } })} |
| 288 | + {renderDefaultTrigger()} |
262 | 289 | <Teleport disabled={!props.attach || !teleportElement.value} to={teleportElement.value}>
|
263 | 290 | <Transition>
|
264 | 291 | {(visibleValue.value || !animationEnd.value) && (
|
|
0 commit comments