round-model-convert.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. export default {
  2. methods: {
  3. fromApiModel(apiModel, clone = true) {
  4. const model = clone ? this.deepClone(apiModel) : apiModel
  5. model.dateRange = [model.beginTime, model.endTime]
  6. model.state = model.state == '1'
  7. model.importWeight = model.importWeight || []
  8. model.groupModels = model.groupModels || []
  9. model.groupModels.forEach(gm => {
  10. gm.groupIds = gm.groupIds && gm.groupIds.split(',').map(id => id * 1) || []
  11. gm.roundGroups = gm.roundGroups || []
  12. gm.roundGroups.forEach(rg => {
  13. rg.limitPerson = rg.limitPerson == 1
  14. rg.rankOut = rg.rankOut == 1
  15. })
  16. })
  17. return model
  18. },
  19. toApiModel(localModel, clone = true) {
  20. const round = clone ? this.deepClone(localModel) : localModel
  21. round.beginTime = round.dateRange?.first()
  22. round.endTime = round.dateRange?.last()
  23. round.state = round.state ? '1' : '0'
  24. delete round.dateRange
  25. round.groupModels.forEach(gm => {
  26. gm.groupIds = gm.groupIds.toString()
  27. gm.roundGroups.forEach(rg => {
  28. rg.limitPerson = rg.limitPerson ? 1 : 0
  29. rg.rankOut = rg.rankOut ? 1 : 0
  30. })
  31. })
  32. return round
  33. }
  34. }
  35. }