createDataSelectAction.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. var echarts = require("../echarts");
  2. var zrUtil = require("zrender/lib/core/util");
  3. function _default(seriesType, actionInfos) {
  4. zrUtil.each(actionInfos, function (actionInfo) {
  5. actionInfo.update = 'updateView';
  6. /**
  7. * @payload
  8. * @property {string} seriesName
  9. * @property {string} name
  10. */
  11. echarts.registerAction(actionInfo, function (payload, ecModel) {
  12. var selected = {};
  13. ecModel.eachComponent({
  14. mainType: 'series',
  15. subType: seriesType,
  16. query: payload
  17. }, function (seriesModel) {
  18. if (seriesModel[actionInfo.method]) {
  19. seriesModel[actionInfo.method](payload.name, payload.dataIndex);
  20. }
  21. var data = seriesModel.getData(); // Create selected map
  22. data.each(function (idx) {
  23. var name = data.getName(idx);
  24. selected[name] = seriesModel.isSelected(name) || false;
  25. });
  26. });
  27. return {
  28. name: payload.name,
  29. selected: selected
  30. };
  31. });
  32. });
  33. }
  34. module.exports = _default;