progress.wxs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. var utils = require('../common/utils.wxs');
  2. var STATUS = ['success', 'error', 'warning'];
  3. var STATUS_TEXT = ['success', 'error', 'warning', 'active'];
  4. var PRO_THEME = {
  5. LINE: 'line',
  6. PLUMP: 'plump',
  7. CIRCLE: 'circle',
  8. };
  9. var STATUS_COLOR = {
  10. success: '#00a870',
  11. error: '#e34d59',
  12. warning: '#ed7b2f',
  13. };
  14. var LINE_STATUS_ICON = {
  15. success: 'check-circle-filled',
  16. error: 'error-circle-filled',
  17. warning: 'error-circle-filled',
  18. };
  19. var CIRCLE_STATUS_ICON = {
  20. success: 'check',
  21. error: 'close',
  22. warning: 'error',
  23. };
  24. /**
  25. *
  26. * 1. getIOSAriaLabel, getAndroidAriaLabel 两个函数的初衷是处理progress异常情况的文案识别。
  27. * 2. iOS可以识别%,而安卓不会识别%,如 80, iOS可以识别成 80%, 而安卓只会80,因此android部分做了一个% 拼接,后续看是否有更好的方案去解决。
  28. * 3. 安卓 talkback 版本为 8.1.0.278818032 ,只会读一次 80, 最新版本talkback 会读 80.0, 80。(目前也是一个痛点,啰嗦了)
  29. *
  30. */
  31. function getIOSAriaLabel(status) {
  32. if (status === 'error') {
  33. return '进度失败';
  34. }
  35. if (status === 'warning') {
  36. return '进度异常';
  37. }
  38. return '';
  39. }
  40. function getAndroidAriaLabel(status) {
  41. if (status === 'error') {
  42. return '%' + ',进度失败';
  43. }
  44. if (status === 'warning') {
  45. return '%' + ',进度异常';
  46. }
  47. return '%';
  48. }
  49. function getCircleStyle(size, strokeWidth) {
  50. var styles = {
  51. '--td-progress-stroke-circle-width': utils.addUnit(strokeWidth),
  52. };
  53. if (!utils.includes(['default', 'micro'], size)) {
  54. styles['--td-progress-circle-width'] = utils.addUnit(size);
  55. }
  56. return utils._style(styles);
  57. }
  58. module.exports = {
  59. STATUS: STATUS,
  60. STATUS_TEXT: STATUS_TEXT,
  61. PRO_THEME: PRO_THEME,
  62. STATUS_COLOR: STATUS_COLOR,
  63. LINE_STATUS_ICON: LINE_STATUS_ICON,
  64. CIRCLE_STATUS_ICON: CIRCLE_STATUS_ICON,
  65. getAndroidAriaLabel: getAndroidAriaLabel,
  66. getIOSAriaLabel: getIOSAriaLabel,
  67. getCircleStyle: getCircleStyle,
  68. };