crud.tsx 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. import * as api from './api'
  2. import { dict, UserPageQuery, AddReq, DelReq, EditReq, compute, CreateCrudOptionsProps, CreateCrudOptionsRet } from '@fast-crud/fast-crud'
  3. import { inject, nextTick, ref } from 'vue'
  4. import { BaseColumn } from '/@/views/adManage/utils/commonTabColumn.js'
  5. export const createCrudOptions = function ({ crudExpose, context }: CreateCrudOptionsProps): CreateCrudOptionsRet {
  6. const pageRequest = async (query: UserPageQuery) => {
  7. return await api.GetList(query);
  8. };
  9. const editRequest = async ({ form, row }: EditReq) => {
  10. form.id = row.id;
  11. return await api.UpdateObj(form);
  12. };
  13. const delRequest = async ({ row }: DelReq) => {
  14. return await api.DelObj(row.id);
  15. };
  16. const addRequest = async ({ form }: AddReq) => {
  17. return await api.AddObj(form);
  18. };
  19. //权限判定
  20. const hasPermissions = inject('$hasPermissions');
  21. return {
  22. crudOptions: {
  23. table: {
  24. height: 800
  25. },
  26. container: {
  27. fixedHeight: false
  28. },
  29. actionbar: {
  30. show: true,
  31. buttons: {
  32. add: {
  33. show: false
  34. },
  35. create: {
  36. text: '新建广告活动',
  37. type: "primary",
  38. show: true,
  39. click() {
  40. }
  41. }
  42. }
  43. },
  44. search: {
  45. show: false
  46. },
  47. toolbar: {
  48. buttons: {
  49. search: {
  50. show: true
  51. },
  52. compact: {
  53. show: false
  54. }
  55. }
  56. },
  57. request: {
  58. pageRequest,
  59. addRequest,
  60. editRequest,
  61. delRequest,
  62. },
  63. rowHandle: {
  64. fixed: 'right',
  65. width: 80,
  66. buttons: {
  67. view: {
  68. show: false,
  69. },
  70. edit: {
  71. iconRight: 'Edit',
  72. type: 'text',
  73. text: null
  74. // show: hasPermissions('dictionary:Update'),
  75. },
  76. remove: {
  77. iconRight: 'Delete',
  78. type: 'text',
  79. text: null
  80. // show: hasPermissions('dictionary:Delete'),
  81. },
  82. },
  83. },
  84. columns: {
  85. name: {
  86. title: '广告活动',
  87. column: {
  88. width: '150px'
  89. },
  90. search: {
  91. show: true,
  92. component: {
  93. props: {
  94. clearable: true
  95. }
  96. }
  97. },
  98. form: {
  99. rules: [{required: true, message:'必填项'}]
  100. }
  101. },
  102. targetingType: {
  103. title: '投放类型',
  104. type: 'dict-select',
  105. search: {
  106. show: true
  107. },
  108. dict: dict({
  109. data: [
  110. { value: 'AUTO', label: '自动' },
  111. { value: 'MANUAL', label: '手动' },
  112. ]
  113. })
  114. },
  115. state: {
  116. title: '状态'
  117. },
  118. startDate: {
  119. title: '开始日期'
  120. },
  121. endDate: {
  122. title: '结束日期'
  123. },
  124. budget: {
  125. title: '预算'
  126. },
  127. portfolio: {
  128. title: '广告组合'
  129. },
  130. ...BaseColumn
  131. }
  132. }
  133. }
  134. }