Manage.js.vm 5.1 KB

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