// util.ts 完整修复后的 resetSize 函数
interface ResetSizeVm {
  imgSize?: { // 改为可选属性（避免传入的 vm 无 imgSize 时报错）
    width: string;
    height: string;
  };
  barSize?: { // 改为可选属性
    width: string;
    height: string;
  };
  $el: {
    parentNode: {
      offsetWidth: number;
      offsetHeight: number;
    };
  };
}

interface ResetSizeResult {
  imgWidth: string;
  imgHeight: string;
  barWidth: string;
  barHeight: string;
}

export function resetSize(vm: ResetSizeVm): ResetSizeResult {
  let img_width: string;
  let img_height: string;
  let bar_width: string;
  let bar_height: string;

  // 1. 父容器尺寸兜底（避免 parentNode 不存在）
  const parentWidth = vm.$el?.parentNode?.offsetWidth || window.innerWidth || 360;
  const parentHeight = vm.$el?.parentNode?.offsetHeight || window.innerHeight || 180;

  // 2. imgSize 空值兜底（核心修复：避免访问 undefined.width）
  const imgSize = vm.imgSize || { width: '360px', height: '180px' }; // 默认360*180
  // 处理图片宽度
  if (imgSize.width.indexOf('%') !== -1) {
    img_width = (parseInt(imgSize.width) / 100 * parentWidth) + 'px';
  } else {
    img_width = imgSize.width || '360px'; // 兜底
  }
  // 处理图片高度
  if (imgSize.height.indexOf('%') !== -1) {
    img_height = (parseInt(imgSize.height) / 100 * parentHeight) + 'px';
  } else {
    img_height = imgSize.height || '180px'; // 兜底
  }

  // 3. barSize 空值兜底
  const barSize = vm.barSize || { width: img_width, height: '40px' }; // 默认宽度和图片一致
  // 处理滑块条宽度
  if (barSize.width.indexOf('%') !== -1) {
    bar_width = (parseInt(barSize.width) / 100 * parentWidth) + 'px';
  } else {
    bar_width = barSize.width || img_width; // 兜底为图片宽度
  }
  // 处理滑块条高度
  if (barSize.height.indexOf('%') !== -1) {
    bar_height = (parseInt(barSize.height) / 100 * parentHeight) + 'px';
  } else {
    bar_height = barSize.height || '40px'; // 兜底
  }

  return {
    imgWidth: img_width,
    imgHeight: img_height,
    barWidth: bar_width,
    barHeight: bar_height
  };
}