Manage.js.vm 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. @{Dictionary<string, int> definedObjects = new Dictionary<string, int>();}
  2. import request from '/@@/utils/request';
  3. enum Api {
  4. Add@(@Model.ClassName) = '/api/@(@Model.LowerClassName)/add',
  5. Delete@(@Model.ClassName) = '/api/@(@Model.LowerClassName)/delete',
  6. Update@(@Model.ClassName) = '/api/@(@Model.LowerClassName)/update',
  7. Page@(@Model.ClassName) = '/api/@(@Model.LowerClassName)/page',
  8. Detail@(@Model.ClassName) = '/api/@(@Model.LowerClassName)/detail',
  9. @if (Model.TableField.Any(x => x.WhetherImport == "Y")) {
  10. @:Import@(@Model.ClassName)Data = '/api/@(@Model.LowerClassName)/import',
  11. @:Download@(@Model.ClassName)Template = '/api/@(@Model.LowerClassName)/import',
  12. }
  13. @foreach (var column in Model.TableField){
  14. if(@column.EffectType == "fk" && (@column.WhetherAddUpdate == "Y" || column.QueryWhether == "Y")){
  15. @:Get@(@column.FkEntityName)@(@column.PropertyName)Dropdown = '/api/@(@Model.LowerClassName)/@(@column.FkEntityName)@(@column.PropertyName)Dropdown',
  16. }else if(@column.EffectType == "ApiTreeSelect" && !definedObjects.ContainsKey("Get@(@column.FkEntityName)Tree")){
  17. @{definedObjects.Add("Get@(@column.FkEntityName)Tree", 1);}
  18. @:Get@(@column.FkEntityName)Tree = '/api/@(@Model.LowerClassName)/@(@column.FkEntityName)Tree',
  19. }else if(@column.EffectType == "Upload"){
  20. @:Upload@(@column.PropertyName) = '/api/@(@Model.LowerClassName)/Upload@(@column.PropertyName)',
  21. }
  22. }
  23. }
  24. // 增加@(@Model.BusName)
  25. export const add@(@Model.ClassName) = (params?: any) =>
  26. request({
  27. url: Api.Add@(@Model.ClassName),
  28. method: 'post',
  29. data: params,
  30. });
  31. // 删除@(@Model.BusName)
  32. export const delete@(@Model.ClassName) = (params?: any) =>
  33. request({
  34. url: Api.Delete@(@Model.ClassName),
  35. method: 'post',
  36. data: params,
  37. });
  38. // 编辑@(@Model.BusName)
  39. export const update@(@Model.ClassName) = (params?: any) =>
  40. request({
  41. url: Api.Update@(@Model.ClassName),
  42. method: 'post',
  43. data: params,
  44. });
  45. // 分页查询@(@Model.BusName)
  46. export const page@(@Model.ClassName) = (params?: any) =>
  47. request({
  48. url: Api.Page@(@Model.ClassName),
  49. method: 'post',
  50. data: params,
  51. });
  52. // 详情@(@Model.BusName)
  53. export const detail@(@Model.ClassName) = (id: any) =>
  54. request({
  55. url: Api.Detail@(@Model.ClassName),
  56. method: 'get',
  57. data: { id },
  58. });
  59. @if (Model.TableField.Any(x => x.WhetherImport == "Y")) {
  60. @:// 下载@(@Model.BusName)数据导入模板
  61. @:export const download@(@Model.ClassName)Template = () =>
  62. @:request({
  63. @:url: Api.Download@(@Model.ClassName)Template,
  64. @:responseType: 'arraybuffer',
  65. @:method: 'get',
  66. @:});
  67. @:
  68. @:// 导入@(@Model.BusName)记录
  69. @:export const import@(@Model.ClassName)Data = (file: any) => {
  70. @:const formData = new FormData();
  71. @:formData.append('file', file);
  72. @:return request({
  73. @:headers: { 'Content-Type': 'multipart/form-data' },
  74. @:url: Api.Import@(@Model.ClassName)Data,
  75. @:responseType: 'arraybuffer',
  76. @:method: 'post',
  77. @:data: formData,
  78. @:});
  79. @:}
  80. }
  81. @foreach (var column in Model.TableField){
  82. if(@column.EffectType == "fk" && (@column.WhetherAddUpdate == "Y" || column.QueryWhether == "Y")){
  83. @:export const get@(@column.FkEntityName)@(@column.PropertyName)Dropdown = () =>
  84. @:request({
  85. @:url: Api.Get@(@column.FkEntityName)@(@column.PropertyName)Dropdown,
  86. @:method: 'get'
  87. @:});
  88. }else if(@column.EffectType == "ApiTreeSelect" && !definedObjects.ContainsKey("get@(@column.FkEntityName)Tree")){
  89. @{definedObjects.Add("get@(@column.FkEntityName)Tree", 1);}
  90. @:export const get@(@column.FkEntityName)Tree = () =>
  91. @:request({
  92. @:url: Api.Get@(@column.FkEntityName)Tree,
  93. @:method: 'get'
  94. @:});
  95. }else if(@column.EffectType == "Upload"){
  96. @:/**
  97. @:* 上传@(@column.ColumnComment)
  98. @:*/
  99. @:export const upload@(@column.PropertyName) = (params: any) =>
  100. @:uploadFileHandle(params, Api.Upload@(@column.PropertyName))
  101. }
  102. }
  103. @foreach (var column in Model.TableField){
  104. if(@column.EffectType == "Upload"){
  105. @:export const uploadFileHandle = (params: any, url: string) => {
  106. @:const formData = new window.FormData();
  107. @:formData.append('file', params.file);
  108. @://自定义参数
  109. @:if (params.data) {
  110. @:Object.keys(params.data).forEach((key) => {
  111. @:const value = params.data![key];
  112. @:if (Array.isArray(value)) {
  113. @:value.forEach((item) => {
  114. @:formData.append(`${key}[]`, item);
  115. @:});
  116. @:return;
  117. @:}
  118. @:formData.append(key, params.data![key]);
  119. @:});
  120. @:}
  121. @:return request({
  122. @:url: url,
  123. @:method: 'POST',
  124. @:data: formData,
  125. @:headers: {
  126. @:'Content-type': 'multipart/form-data;charset=UTF-8',
  127. @:// ts-ignore
  128. @:ignoreCancelToken: true,
  129. @:},
  130. @:});
  131. @:};
  132. break;
  133. }
  134. }