method.js 880 B

123456789101112131415161718192021222324252627282930313233343536
  1. export class Encode {
  2. constructor (bindProps) {
  3. this.map = new Map()
  4. this.addEncodeType(bindProps)
  5. }
  6. addEncodeType (bindProps) {
  7. const { name, value } = bindProps
  8. this.map.set(['line', 'bar'], { x: name, y: value })
  9. this.map.set(['pie'], { itemName: name, value })
  10. }
  11. getEncode (series) {
  12. const { type } = series
  13. const entries = [...this.map.entries()]
  14. const encode = entries.reduce((obj, array) => {
  15. const [ keys, value ] = array
  16. if (keys.includes(type)) obj = value
  17. return obj
  18. }, {})
  19. return encode
  20. }
  21. checkEncode (series = {}) {
  22. try {
  23. if (Array.isArray(series)) {
  24. series[0]['encode'] = series.length > 1 ? {} : this.getEncode(series[0])
  25. } else {
  26. series['encode'] = this.getEncode(series)
  27. }
  28. } catch (error) {
  29. console.log(error)
  30. }
  31. return series
  32. }
  33. }