@kmkf-fe-packages/basic-components 2.2.31-beta.12 → 2.2.31-beta.16

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/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import React, { useRef, useState, useEffect, forwardRef, useImperativeHandle, useMemo, useCallback } from 'react';
1
+ import React, { useState, useEffect, useMemo, useRef, forwardRef, useImperativeHandle, useCallback } from 'react';
2
2
  import { Cascader, DatePicker, Image, InputNumber, Input, Select, Upload, message, Radio, Space, Spin, Modal, Button, Checkbox, Row, Col, Slider, Rate as Rate$1, Form, Popover, Tooltip, Table, Tabs, ConfigProvider, Pagination, Typography, Skeleton, Empty, Tag } from 'antd';
3
3
  import { EyeOutlined, DeleteOutlined, CloseOutlined, PlusSquareOutlined, MinusCircleFilled, PlusCircleFilled, CopyOutlined, CloseCircleOutlined, CaretUpOutlined, UpOutlined, DownOutlined, PlusOutlined, VideoCameraTwoTone } from '@ant-design/icons';
4
4
  import request, { extend as extend$1 } from 'umi-request';
@@ -568,12 +568,53 @@ var ApaasDate = function ApaasDate(props) {
568
568
 
569
569
  var noFallbackUrlList = ['https://kefu.kuaimai.com', 'https://kefuab.kuaimai.com/'];
570
570
  function ApaasImage(props) {
571
- return /*#__PURE__*/React.createElement(Image, _objectSpread2({
572
- fallback: props.src && props.src.startsWith('http') && !noFallbackUrlList.some(function (url) {
573
- var _props$src;
574
- return (_props$src = props.src) === null || _props$src === void 0 ? void 0 : _props$src.startsWith(url);
575
- }) ? "http://kmgdimages.ycy-inc.cn/?url=".concat(props.src) : undefined
576
- }, props));
571
+ var _useState = useState(false),
572
+ _useState2 = _slicedToArray(_useState, 2),
573
+ isImageError = _useState2[0],
574
+ setIsImageError = _useState2[1];
575
+ // src 改变时,重置错误状态
576
+ useEffect(function () {
577
+ setIsImageError(false);
578
+ }, [props.src]);
579
+ var fallbackUrl = props.src && props.src.startsWith('http') && !noFallbackUrlList.some(function (url) {
580
+ var _props$src;
581
+ return (_props$src = props.src) === null || _props$src === void 0 ? void 0 : _props$src.startsWith(url);
582
+ }) ? "http://kmgdimages.ycy-inc.cn/?url=".concat(props.src) : undefined;
583
+ // 配置预览功能:
584
+ // - 如果图片加载失败(使用了 fallback),预览使用 fallbackUrl
585
+ // - 如果图片正常显示,预览使用原始 src
586
+ var previewConfig = useMemo(function () {
587
+ // 如果用户明确禁用预览,直接返回 false
588
+ if (props.preview === false) {
589
+ return false;
590
+ }
591
+ // 如果图片加载失败且存在 fallbackUrl,预览使用 fallbackUrl
592
+ if (isImageError && fallbackUrl) {
593
+ if (_typeof(props.preview) === 'object') {
594
+ return _objectSpread2(_objectSpread2({}, props.preview), {}, {
595
+ src: props.preview.src || fallbackUrl
596
+ });
597
+ }
598
+ return {
599
+ src: fallbackUrl
600
+ };
601
+ }
602
+ // 如果图片正常显示,使用用户传入的 preview 配置或默认 true(会使用原始 src)
603
+ return props.preview !== undefined ? props.preview : true;
604
+ }, [props.preview, fallbackUrl, isImageError]);
605
+ // 处理图片加载错误
606
+ var handleError = function handleError(e) {
607
+ var _props$onError;
608
+ setIsImageError(true);
609
+ // 如果用户传入了 onError,也要调用
610
+ (_props$onError = props.onError) === null || _props$onError === void 0 ? void 0 : _props$onError.call(props, e);
611
+ };
612
+ return /*#__PURE__*/React.createElement(Image, _objectSpread2(_objectSpread2({
613
+ fallback: fallbackUrl,
614
+ preview: previewConfig
615
+ }, props), {}, {
616
+ onError: handleError
617
+ }));
577
618
  }
578
619
 
579
620
  var _excluded$1 = ["isNumber", "replaceWarn", "precision"];
package/dist/index.js CHANGED
@@ -583,12 +583,53 @@ var ApaasDate = function ApaasDate(props) {
583
583
 
584
584
  var noFallbackUrlList = ['https://kefu.kuaimai.com', 'https://kefuab.kuaimai.com/'];
585
585
  function ApaasImage(props) {
586
- return /*#__PURE__*/React__default['default'].createElement(antd.Image, _objectSpread2({
587
- fallback: props.src && props.src.startsWith('http') && !noFallbackUrlList.some(function (url) {
588
- var _props$src;
589
- return (_props$src = props.src) === null || _props$src === void 0 ? void 0 : _props$src.startsWith(url);
590
- }) ? "http://kmgdimages.ycy-inc.cn/?url=".concat(props.src) : undefined
591
- }, props));
586
+ var _useState = React.useState(false),
587
+ _useState2 = _slicedToArray(_useState, 2),
588
+ isImageError = _useState2[0],
589
+ setIsImageError = _useState2[1];
590
+ // src 改变时,重置错误状态
591
+ React.useEffect(function () {
592
+ setIsImageError(false);
593
+ }, [props.src]);
594
+ var fallbackUrl = props.src && props.src.startsWith('http') && !noFallbackUrlList.some(function (url) {
595
+ var _props$src;
596
+ return (_props$src = props.src) === null || _props$src === void 0 ? void 0 : _props$src.startsWith(url);
597
+ }) ? "http://kmgdimages.ycy-inc.cn/?url=".concat(props.src) : undefined;
598
+ // 配置预览功能:
599
+ // - 如果图片加载失败(使用了 fallback),预览使用 fallbackUrl
600
+ // - 如果图片正常显示,预览使用原始 src
601
+ var previewConfig = React.useMemo(function () {
602
+ // 如果用户明确禁用预览,直接返回 false
603
+ if (props.preview === false) {
604
+ return false;
605
+ }
606
+ // 如果图片加载失败且存在 fallbackUrl,预览使用 fallbackUrl
607
+ if (isImageError && fallbackUrl) {
608
+ if (_typeof(props.preview) === 'object') {
609
+ return _objectSpread2(_objectSpread2({}, props.preview), {}, {
610
+ src: props.preview.src || fallbackUrl
611
+ });
612
+ }
613
+ return {
614
+ src: fallbackUrl
615
+ };
616
+ }
617
+ // 如果图片正常显示,使用用户传入的 preview 配置或默认 true(会使用原始 src)
618
+ return props.preview !== undefined ? props.preview : true;
619
+ }, [props.preview, fallbackUrl, isImageError]);
620
+ // 处理图片加载错误
621
+ var handleError = function handleError(e) {
622
+ var _props$onError;
623
+ setIsImageError(true);
624
+ // 如果用户传入了 onError,也要调用
625
+ (_props$onError = props.onError) === null || _props$onError === void 0 ? void 0 : _props$onError.call(props, e);
626
+ };
627
+ return /*#__PURE__*/React__default['default'].createElement(antd.Image, _objectSpread2(_objectSpread2({
628
+ fallback: fallbackUrl,
629
+ preview: previewConfig
630
+ }, props), {}, {
631
+ onError: handleError
632
+ }));
592
633
  }
593
634
 
594
635
  var _excluded$1 = ["isNumber", "replaceWarn", "precision"];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kmkf-fe-packages/basic-components",
3
- "version": "2.2.31-beta.12",
3
+ "version": "2.2.31-beta.16",
4
4
  "description": "> TODO: description",
5
5
  "homepage": "",
6
6
  "license": "ISC",
@@ -66,5 +66,5 @@
66
66
  "publishConfig": {
67
67
  "access": "public"
68
68
  },
69
- "gitHead": "05ed7536b1523525ff25fcf62e7180aa79bf69d0"
69
+ "gitHead": "aaeb1c77158e812c6a2ace8a39515379a941cedc"
70
70
  }