Manage.js.vm 5.2 KB

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