crud.tsx 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. import * as api from './api'
  2. import { dict, UserPageQuery, AddReq, DelReq, EditReq, compute, CreateCrudOptionsProps, CreateCrudOptionsRet } from '@fast-crud/fast-crud'
  3. import { inject } from 'vue'
  4. import { BaseColumn } from '/@/views/adManage/utils/commonTabColumn.js'
  5. import { dynBidStrategyEnum } from '/@/views/adManage/utils/enum.js'
  6. export const createCrudOptions = function ({ crudExpose, context }: CreateCrudOptionsProps): CreateCrudOptionsRet {
  7. const pageRequest = async (query: UserPageQuery) => {
  8. query["profileId"] = context.profile.value.profile_id
  9. query["startDate"] = context.dateRange.value[0]
  10. query["endDate"] = context.dateRange.value[1]
  11. return await api.GetList(query);
  12. };
  13. const editRequest = async ({ form, row }: EditReq) => {
  14. form.id = row.id;
  15. return await api.UpdateObj(form);
  16. };
  17. const delRequest = async ({ row }: DelReq) => {
  18. return await api.DelObj(row.id);
  19. };
  20. const addRequest = async ({ form }: AddReq) => {
  21. return await api.AddObj(form);
  22. };
  23. //权限判定
  24. const hasPermissions = inject('$hasPermissions');
  25. return {
  26. crudOptions: {
  27. table: {
  28. height: 800
  29. },
  30. container: {
  31. fixedHeight: false
  32. },
  33. actionbar: {
  34. show: true,
  35. buttons: {
  36. add: {
  37. show: false
  38. },
  39. create: {
  40. text: '新建广告活动',
  41. type: "primary",
  42. show: true,
  43. click() {
  44. }
  45. }
  46. }
  47. },
  48. search: {
  49. show: false
  50. },
  51. toolbar: {
  52. buttons: {
  53. search: {
  54. show: true
  55. },
  56. compact: {
  57. show: false
  58. }
  59. }
  60. },
  61. request: {
  62. pageRequest,
  63. addRequest,
  64. editRequest,
  65. delRequest,
  66. },
  67. rowHandle: {
  68. fixed: 'right',
  69. width: 80,
  70. buttons: {
  71. view: {
  72. show: false,
  73. },
  74. edit: {
  75. iconRight: 'Edit',
  76. type: 'text',
  77. text: null
  78. // show: hasPermissions('dictionary:Update'),
  79. },
  80. remove: {
  81. show: false
  82. // iconRight: 'Delete',
  83. // type: 'text',
  84. // text: null
  85. // show: hasPermissions('dictionary:Delete'),
  86. },
  87. },
  88. },
  89. columns: {
  90. id: {
  91. title: 'ID',
  92. column: {
  93. show: false
  94. },
  95. form: {
  96. show: false
  97. }
  98. },
  99. campaignName: {
  100. title: '广告活动',
  101. column: {
  102. width: '200px',
  103. fixed: 'left'
  104. },
  105. search: {
  106. show: true,
  107. component: {
  108. props: {
  109. clearable: true
  110. }
  111. }
  112. },
  113. form: {
  114. rules: [{required: true, message:'必填项'}]
  115. }
  116. },
  117. targetingType: {
  118. title: '投放类型',
  119. type: 'dict-select',
  120. search: {
  121. show: true
  122. },
  123. dict: dict({
  124. data: [
  125. { value: 'AUTO', label: '自动' },
  126. { value: 'MANUAL', label: '手动' },
  127. ]
  128. })
  129. },
  130. state: {
  131. title: '状态'
  132. },
  133. dynBidStrategy: {
  134. title: '竞价策略',
  135. form: {
  136. show: false,
  137. },
  138. column: {
  139. width: '160px'
  140. },
  141. type: 'dict-select',
  142. dict: dict({
  143. data: dynBidStrategyEnum
  144. })
  145. },
  146. startDate: {
  147. title: '开始日期',
  148. column: {
  149. width: '100px'
  150. },
  151. },
  152. endDate: {
  153. title: '结束日期',
  154. column: {
  155. width: '100px'
  156. },
  157. },
  158. budget: {
  159. title: '预算'
  160. },
  161. portfolioName: {
  162. title: '广告组合'
  163. },
  164. suggestedBudget: {
  165. title: '建议竞价',
  166. form: {
  167. show: false
  168. }
  169. },
  170. percentTimeInBudget: {
  171. title: '预算活跃均值',
  172. column:{
  173. minWidth: 150
  174. },
  175. form: {
  176. show: false
  177. }
  178. },
  179. MissedImpressions: {
  180. title: '预计错过的曝光',
  181. form: {
  182. show: false
  183. },
  184. column:{
  185. width: 180
  186. },
  187. },
  188. MissedClicks: {
  189. title: '预计错过的点击',
  190. form: {
  191. show: false
  192. },
  193. column:{
  194. width: 180
  195. },
  196. },
  197. MissedSales: {
  198. title: '预计错过的销售',
  199. form: {
  200. show: false
  201. },
  202. column:{
  203. width: 180
  204. },
  205. },
  206. ...BaseColumn
  207. }
  208. }
  209. }
  210. }