crud.tsx 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  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['profile'] = context['profileId']
  9. query['start'] = context['start']
  10. query['end'] = context['end']
  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. iconRight: 'Delete',
  82. type: 'text',
  83. text: null
  84. // show: hasPermissions('dictionary:Delete'),
  85. },
  86. },
  87. },
  88. columns: {
  89. id: {
  90. title: 'ID',
  91. column: {
  92. show: false
  93. },
  94. form: {
  95. show: false
  96. }
  97. },
  98. keywordText: {
  99. title: '关键词',
  100. column: {
  101. width: '200px',
  102. fixed: 'left'
  103. },
  104. search: {
  105. show: true,
  106. component: {
  107. props: {
  108. clearable: true
  109. }
  110. }
  111. },
  112. },
  113. state: {
  114. title: '状态'
  115. },
  116. campaignName: {
  117. title: '广告活动名称',
  118. column: {
  119. width: '200px',
  120. fixed: 'left'
  121. },
  122. search: {
  123. show: true,
  124. component: {
  125. props: {
  126. clearable: true
  127. }
  128. }
  129. },
  130. form: {
  131. rules: [{required: true, message: '必填项'}]
  132. }
  133. },
  134. adGroupName: {
  135. title: '广告组名称',
  136. },
  137. suggestedBudget: {
  138. title: '建议竞价',
  139. form: {
  140. show: false
  141. }
  142. },
  143. bid: {title: '出价'},
  144. '标签': {},
  145. Impression: {
  146. title: '曝光量'
  147. },
  148. '搜索结果顶部展示份额': {},
  149. Click: {
  150. title: '点击量'
  151. },
  152. CTR: {
  153. title: '点击率'
  154. },
  155. Spend: {
  156. title: '花费'
  157. },
  158. CPC: {title: '点击成本'},
  159. TotalPurchases: {title: '订单数'},
  160. TotalSales: {title: '销售额'},
  161. TotalUnitOrdered: {title: '销量'},
  162. PurchasesRate: {title: '转化率'},
  163. ACOS: {title: 'ACOS'},
  164. ROAS: {title: 'ROAS'},
  165. CPA: {title: '订单成本'},
  166. ...BaseColumn
  167. }
  168. }
  169. }
  170. }