action.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. /**
  2. * Created by jacky on 2016/6/12.
  3. */
  4. import {ajaxSave} from '../Utils.js';
  5. export const LOAD_MASTER_COMPLETED='load_master_completed';
  6. export const LOAD_SLAVE_COMPLETE='load_slave_completed';
  7. export const ADD_MASTER='add_master';
  8. export const DEL_MASTER='del_master';
  9. export const ADD_SLAVE='add_slave';
  10. export const DEL_SLAVE='del_slave';
  11. export const SAVE='save';
  12. export function save(newVersion,file){
  13. return {newVersion,file,type:SAVE};
  14. }
  15. export function saveData(data,newVersion,file) {
  16. let xml='<?xml version="1.0" encoding="utf-8"?>';
  17. xml+='<constant-library>';
  18. let errorInfo='';
  19. data.forEach((item,index)=>{
  20. if(!item.name || item.name.length<1){
  21. errorInfo='常量分类名称不能为空.';
  22. return false;
  23. }
  24. if(!item.label || item.label.length<1){
  25. errorInfo='常量分类标题不能为空.';
  26. return false;
  27. }
  28. xml+="<category name='"+item.name+"' label='"+item.label+"'>";
  29. var constants=item.constants;
  30. if(!constants){
  31. errorInfo="常量分类["+item.label+"]下未定义具体的常量信息";
  32. return false;
  33. }
  34. constants.forEach((constant,i)=>{
  35. if(!constant.name || constant.name.length<1){
  36. errorInfo='常量名不能为空.';
  37. return false;
  38. }
  39. if(!constant.label || constant.label.length<1){
  40. errorInfo='常量标题不能为空.';
  41. return false;
  42. }
  43. if(!constant.type || constant.type.length<1){
  44. errorInfo='常量数据类型不能为空.';
  45. return false;
  46. }
  47. xml+="<constant name='"+constant.name+"' label='"+constant.label+"' type='"+constant.type+"'/>";
  48. });
  49. if(errorInfo.length>1){
  50. return false;
  51. }
  52. xml+='</category>';
  53. });
  54. if(errorInfo.length>1){
  55. bootbox.alert(errorInfo+',不能保存!');
  56. return;
  57. }
  58. xml+='</constant-library>';
  59. let postData={content:xml,file,newVersion};
  60. const url=window._server+'/common/saveFile';
  61. if(newVersion){
  62. bootbox.prompt("请输入新版本描述.",function (versionComment) {
  63. if(!versionComment){
  64. return;
  65. }
  66. postData.versionComment=versionComment;
  67. ajaxSave(url,postData,function () {
  68. bootbox.alert('保存成功!');
  69. })
  70. });
  71. }else{
  72. ajaxSave(url,postData,function () {
  73. bootbox.alert('保存成功!');
  74. })
  75. }
  76. };
  77. export function addMaster() {
  78. return {type:ADD_MASTER};
  79. };
  80. export function deleteMaster(rowIndex) {
  81. return {rowIndex,type:DEL_MASTER};
  82. }
  83. export function deleteSlave(rowIndex) {
  84. return {rowIndex,type:DEL_SLAVE};
  85. };
  86. export function addSlave() {
  87. return {type:ADD_SLAVE};
  88. };
  89. export function loadMasterData(files) {
  90. return function (dispatch) {
  91. var url=window._server+"/xml";
  92. $.ajax({
  93. url,
  94. type:'POST',
  95. data:{files},
  96. success:function (data) {
  97. dispatch({type:LOAD_MASTER_COMPLETED,masterData:data[0].categories});
  98. },
  99. error:function () {
  100. alert("加载数据失败.");
  101. }
  102. });
  103. }
  104. };
  105. export function loadSlaveData(masterData) {
  106. return {type:LOAD_SLAVE_COMPLETE,masterRowData:masterData};
  107. };