buttonAvailabilityConfig.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. // 按钮可用性配置
  2. export interface ButtonAvailabilityConfig {
  3. action: string;
  4. multiGridDisabled?: boolean;
  5. singleGridDisabled?: boolean;
  6. tooltip?: string;
  7. }
  8. // 多分格时不可用的按钮列表
  9. export const MULTI_GRID_DISABLED_BUTTONS = [
  10. 'Add L Mark',
  11. 'Add R Mark',
  12. 'AddMark',
  13. 'Delete Selected Mark',
  14. 'Add Mask',
  15. 'Delete Mask',
  16. 'Rotate Any Angle',
  17. 'Crop Selected Area',
  18. 'Delete Digital Mask',
  19. 'Magnifier',
  20. 'Invert Image',
  21. 'Reset Image',
  22. 'Snapshot',
  23. 'Advanced Processing',
  24. 'Image Measurement',
  25. 'Rectangle Crop',
  26. 'More'
  27. ];
  28. // 单分格时不可用的按钮列表(如果有的话)
  29. export const SINGLE_GRID_DISABLED_BUTTONS :string[]= [];
  30. // 获取按钮可用性配置
  31. export const getButtonAvailabilityConfig = (action: string): ButtonAvailabilityConfig => {
  32. // 默认配置
  33. const config: ButtonAvailabilityConfig = {
  34. action,
  35. multiGridDisabled: MULTI_GRID_DISABLED_BUTTONS.includes(action),
  36. singleGridDisabled: SINGLE_GRID_DISABLED_BUTTONS.includes(action),
  37. };
  38. // 特殊按钮的额外配置
  39. switch (action) {
  40. case 'Send':
  41. config.multiGridDisabled = false;
  42. config.singleGridDisabled = false;
  43. break;
  44. case '拒绝':
  45. config.multiGridDisabled = true;
  46. config.singleGridDisabled = false;
  47. break;
  48. case '恢复':
  49. config.multiGridDisabled = true;
  50. config.singleGridDisabled = false;
  51. break;
  52. case '另存为':
  53. config.multiGridDisabled = true;
  54. config.singleGridDisabled = false;
  55. break;
  56. default:
  57. break;
  58. }
  59. return config;
  60. };
  61. // 判断按钮是否应该在多分格模式下禁用
  62. export const isButtonDisabledInMultiGrid = (action: string): boolean => {
  63. return MULTI_GRID_DISABLED_BUTTONS.includes(action);
  64. };
  65. // 判断按钮是否应该在单分格模式下禁用
  66. export const isButtonDisabledInSingleGrid = (action: string): boolean => {
  67. return SINGLE_GRID_DISABLED_BUTTONS.includes(action);
  68. };