actions.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // 组件配置转化
  2. import _ from 'lodash'
  3. import { setModules } from 'packages/js/utils/configImport'
  4. import { getScreenInfo } from '../api/bigScreenApi'
  5. import { stringToFunction } from '../utils/evalFunctions'
  6. import plotList from 'packages/G2Plots/plotList'
  7. export default {
  8. // 初始化页面数据
  9. initLayout ({ commit, dispatch }, code) {
  10. return new Promise(resolve => {
  11. getScreenInfo(code).then(data => {
  12. const pageInfo = handleResData(data)
  13. // 改变页面数据
  14. commit('changePageInfo', pageInfo)
  15. commit('changeZIndex', pageInfo.chartList)
  16. // 页面加载成功
  17. resolve(true)
  18. commit('saveTimeLine', '初始化')
  19. })
  20. })
  21. }
  22. }
  23. // 处理后端返回的数据
  24. export function handleResData (data) {
  25. let pageInfo = {}
  26. if (data.pageConfig) {
  27. pageInfo = data
  28. } else {
  29. pageInfo = {
  30. ...data,
  31. pageConfig: {
  32. w: 1920,
  33. h: 1080,
  34. bgColor: '#151a26', // 背景色
  35. bg: '', // 背景图
  36. customTheme: 'auto',
  37. opacity: 100
  38. }
  39. }
  40. }
  41. pageInfo.pageConfig.refreshConfig = pageInfo.pageConfig.refreshConfig || []
  42. pageInfo.chartList.forEach((chart) => {
  43. if (!['customComponent', 'remoteComponent'].includes(chart.type)) {
  44. chart.option = _.cloneDeep(setModules[chart.type])
  45. } else {
  46. chart.option = stringToFunction(chart.option)
  47. // 如果是自定义组件,且没配数据集,就给前端的模拟数据
  48. if (!chart?.dataSource?.businessKey) {
  49. chart.option.data = plotList?.find(plot => plot.name === chart.name)?.option?.data
  50. }
  51. }
  52. chart.key = chart.code
  53. })
  54. return pageInfo
  55. }