crud.tsx 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  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. import {parseQueryParams} from '/@/views/adManage/utils/tools'
  7. import XEUtils from 'xe-utils'
  8. export const createCrudOptions = function ({crudExpose, context}: CreateCrudOptionsProps): CreateCrudOptionsRet {
  9. const pageRequest = async (query: UserPageQuery) => {
  10. const params = parseQueryParams(context.value)
  11. XEUtils.assign(query, params)
  12. return await api.GetList(query)
  13. }
  14. const editRequest = async ({form, row}: EditReq) => {
  15. form.id = row.id
  16. return await api.UpdateObj(form)
  17. }
  18. const delRequest = async ({row}: DelReq) => {
  19. return await api.DelObj(row.id)
  20. }
  21. const addRequest = async ({form}: AddReq) => {
  22. return await api.AddObj(form)
  23. }
  24. //权限判定
  25. const hasPermissions = inject('$hasPermissions')
  26. return {
  27. crudOptions: {
  28. table: {
  29. height: 800
  30. },
  31. container: {
  32. fixedHeight: false
  33. },
  34. actionbar: {
  35. show: true,
  36. buttons: {
  37. add: {
  38. show: false
  39. },
  40. }
  41. },
  42. search: {
  43. show: false
  44. },
  45. toolbar: {
  46. buttons: {
  47. search: {
  48. show: true
  49. },
  50. compact: {
  51. show: false
  52. }
  53. }
  54. },
  55. request: {
  56. pageRequest,
  57. addRequest,
  58. editRequest,
  59. delRequest,
  60. },
  61. rowHandle: {
  62. fixed: 'right',
  63. width: 80,
  64. buttons: {
  65. view: {
  66. show: false,
  67. },
  68. edit: {
  69. iconRight: 'Edit',
  70. type: 'text',
  71. text: null
  72. // show: hasPermissions('dictionary:Update'),
  73. },
  74. remove: {
  75. iconRight: 'Delete',
  76. type: 'text',
  77. text: null
  78. // show: hasPermissions('dictionary:Delete'),
  79. },
  80. },
  81. },
  82. columns: {
  83. id: {
  84. title: 'ID',
  85. column: {
  86. show: false
  87. },
  88. form: {
  89. show: false
  90. }
  91. },
  92. keywordText: {
  93. title: '关键词',
  94. column: {
  95. width: '200px',
  96. fixed: 'left',
  97. align: 'center'
  98. },
  99. search: {
  100. show: true,
  101. component: {
  102. props: {
  103. clearable: true
  104. }
  105. }
  106. },
  107. },
  108. state: {
  109. title: '状态',
  110. column: {
  111. width: '90px',
  112. align: 'center'
  113. },
  114. type: 'dict-select',
  115. search: {
  116. show: true
  117. },
  118. dict: dict({
  119. data: [
  120. {value: 'PAUSED', label: '已暂停', color: 'warning'},
  121. {value: 'ENABLED', label: '投放中', color: 'success'},
  122. ]
  123. })
  124. },
  125. campaignName: {
  126. title: '广告活动名称',
  127. column: {
  128. width: '200px',
  129. fixed: 'left',
  130. align: 'center'
  131. },
  132. search: {
  133. show: true,
  134. component: {
  135. props: {
  136. clearable: true
  137. }
  138. }
  139. },
  140. form: {
  141. rules: [{required: true, message: '必填项'}]
  142. }
  143. },
  144. adGroupName: {
  145. title: '广告组名称',
  146. },
  147. suggestedBudget: {
  148. title: '建议竞价',
  149. form: {
  150. show: false
  151. }
  152. },
  153. bid: {title: '出价'},
  154. '标签': {},
  155. Impression: {
  156. title: '曝光量'
  157. },
  158. '搜索结果顶部展示份额': {},
  159. Click: {
  160. title: '点击量'
  161. },
  162. CTR: {
  163. title: '点击率'
  164. },
  165. Spend: {
  166. title: '花费'
  167. },
  168. CPC: {title: '点击成本'},
  169. TotalPurchases: {title: '订单数'},
  170. TotalSales: {title: '销售额'},
  171. TotalUnitOrdered: {title: '销量'},
  172. PurchasesRate: {title: '转化率'},
  173. ACOS: {title: 'ACOS'},
  174. ROAS: {title: 'ROAS'},
  175. CPA: {title: '订单成本'},
  176. ...BaseColumn
  177. }
  178. }
  179. }
  180. }