import * as api from './api'
import {AddReq, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, EditReq, UserPageQuery} from '@fast-crud/fast-crud'
import {inject} from 'vue'
import {BaseColumn} from '/@/views/adManage/utils/commonTabColumn.js'
import {parseQueryParams} from '/@/views/adManage/utils/tools.js'
import XEUtils from 'xe-utils'

export const createCrudOptions = function ({crudExpose, context}: CreateCrudOptionsProps): CreateCrudOptionsRet {
  const pageRequest = async (query: UserPageQuery) => {
    const params = parseQueryParams(context.value)
    XEUtils.assign(query, params)
    return await api.GetList(query)
  }
  const editRequest = async ({form, row}: EditReq) => {
    form.id = row.id
    return await api.UpdateObj(form)
  }
  const delRequest = async ({row}: DelReq) => {
    return await api.DelObj(row.id)
  }
  const addRequest = async ({form}: AddReq) => {
    return await api.AddObj(form)
  }

  //权限判定
  const hasPermissions = inject('$hasPermissions')

  return {
    crudOptions: {
      table: {
        height: 800,
      },
      container: {
        fixedHeight: false
      },
      actionbar: {
        show: true,
        buttons: {
          add: {
            show: false
          },
          // create: {
          //   text: '新建广告活动',
          //   type: 'primary',
          //   show: true,
          //   click() {
          //
          //   }
          // }
        }
      },
      search: {
        show: false
      },
      toolbar: {
        buttons: {
          search: {
            show: true
          },
          compact: {
            show: false
          }
        }
      },
      request: {
        pageRequest,
        addRequest,
        editRequest,
        delRequest,
      },
      rowHandle: {
        fixed: 'right',
        width: 80,
        buttons: {
          view: {
            show: false,
          },
          edit: {
            iconRight: 'Edit',
            type: 'text',
            text: null
            // show: hasPermissions('dictionary:Update'),
          },
          remove: {
            show: false
            // iconRight: 'Delete',
            // type: 'text',
            // text: null
            // show: hasPermissions('dictionary:Delete'),
          },
        },
      },
      columns: {
        id: {
          title: 'ID',
          column: {
            show: false
          },
          form: {
            show: false
          }
        },
        Name: {
          title: '日期',
          column: {
            width: 100,
            align: 'left'
          }
        },
        Spend: {
          title: '花费',
          column: {
            width: 100,
            align: 'left'
          },
        },
        TotalSales: {
          title: '销售额',
        },
        ACOS: {
          title: 'ACOS',
        },
        CPC: {
          title: '点击成本',
        },
        CPA: {
          title: '订单成本',
        },
        Click: {
          title: '点击量',
        },
        CTR: {
          title: '点击率',
        },
        TotalPurchases: {
          title: '订单数'
        },
        TotalUnitOrdered: {
          title: '销量',
        },
        ...BaseColumn
      }
    }
  }
}
