crud.tsx 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. import * as api from './api'
  2. import {AddReq, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, dict, EditReq, UserPageQuery} from '@fast-crud/fast-crud'
  3. import {inject} from 'vue'
  4. import {BaseColumn} from '/@/views/adManage/utils/commonTabColumn.js'
  5. import {parseQueryParams} from '/@/views/adManage/utils/tools.js'
  6. import XEUtils from 'xe-utils'
  7. export const createCrudOptions = function ({crudExpose, context}: CreateCrudOptionsProps): CreateCrudOptionsRet {
  8. const pageRequest = async (query: UserPageQuery) => {
  9. const params = parseQueryParams(context.value)
  10. XEUtils.assign(query, params)
  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. }
  40. },
  41. search: {
  42. show: false
  43. },
  44. toolbar: {
  45. buttons: {
  46. search: {
  47. show: true
  48. },
  49. compact: {
  50. show: false
  51. }
  52. }
  53. },
  54. request: {
  55. pageRequest,
  56. addRequest,
  57. editRequest,
  58. delRequest,
  59. },
  60. rowHandle: {
  61. fixed: 'right',
  62. width: 80,
  63. buttons: {
  64. view: {
  65. show: false,
  66. },
  67. edit: {
  68. iconRight: 'Edit',
  69. type: 'text',
  70. text: null
  71. // show: hasPermissions('dictionary:Update'),
  72. },
  73. remove: {
  74. iconRight: 'Delete',
  75. type: 'text',
  76. text: null
  77. // show: hasPermissions('dictionary:Delete'),
  78. },
  79. },
  80. },
  81. columns: {
  82. id: {
  83. title: 'ID',
  84. column: {
  85. show: false
  86. },
  87. form: {
  88. show: false
  89. }
  90. },
  91. resolvedExpression_value: {title: '商品和分类'},
  92. state: {
  93. title: '状态',
  94. column: {
  95. width: '90px',
  96. align: 'center'
  97. },
  98. type: 'dict-select',
  99. search: {
  100. show: true
  101. },
  102. dict: dict({
  103. data: [
  104. {value: 'PAUSED', label: '已暂停', color: 'warning'},
  105. {value: 'ENABLED', label: '投放中', color: 'success'},
  106. ]
  107. })
  108. },
  109. campaignName: {
  110. title: '广告活动名称',
  111. column: {
  112. width: '200px',
  113. align: 'center',
  114. fixed: 'left'
  115. },
  116. search: {
  117. show: true,
  118. component: {
  119. props: {
  120. clearable: true
  121. }
  122. }
  123. },
  124. form: {
  125. rules: [{required: true, message: '必填项'}]
  126. }
  127. },
  128. adGroupName: {
  129. title: '广告组名称',
  130. column: {
  131. align: 'center',
  132. },
  133. },
  134. suggestedBudget: {
  135. title: '建议竞价',
  136. column: {
  137. align: 'center',
  138. },
  139. },
  140. bid: {
  141. title: '出价',
  142. column: {
  143. align: 'center',
  144. },
  145. },
  146. '标签': {},
  147. Impression: {
  148. title: '曝光量',
  149. column: {
  150. align: 'center',
  151. },
  152. },
  153. '搜索结果顶部展示份额': {},
  154. Click: {
  155. title: '点击量',
  156. column: {
  157. align: 'center',
  158. },
  159. },
  160. CTR: {title: '点击率'},
  161. Spend: {title: '花费'},
  162. CPC: {title: '点击成本'},
  163. TotalPurchases: {title: '订单数'},
  164. TotalSales: {title: '销售额'},
  165. TotalUnitOrdered: {title: '销量'},
  166. PurchasesRate: {title: '转化率'},
  167. ACOS: {title: 'ACOS'},
  168. ROAS: {title: 'ROAS'},
  169. CPA: {title: '订单成本'},
  170. ...BaseColumn
  171. }
  172. }
  173. }
  174. }