import * as api from './api'
import {dict, UserPageQuery, AddReq, DelReq, EditReq, compute, CreateCrudOptionsProps, CreateCrudOptionsRet} from '@fast-crud/fast-crud'
import {inject, nextTick, ref} from 'vue'
import {BaseColumn} from '/@/views/adManage/utils/commonTabColumn.js'


export const createCrudOptions = function ({crudExpose, context}: CreateCrudOptionsProps): CreateCrudOptionsRet {
    const pageRequest = async (query: UserPageQuery) => {
        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: 600
            },
            container: {
                fixedHeight: false
            },
            actionbar: {
                show: true,
                buttons: {
                    add: {
                        show: false
                    }
                }
            },
            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: {
                        iconRight: 'Delete',
                        type: 'text',
                        text: null
                        // show: hasPermissions('dictionary:Delete'),
                    },
                },
            },
            columns: {
                keywordText: {
                    title: '关键词'
                },
                matchType: {
                    title: '匹配类型',
                    type: 'dict-select',
                    search: {
                        show: true
                    },
                    dict: dict({
                        data: [
                            {value: 'BROAD', label: '广泛匹配'},
                            {value: 'PHRASE', label: '词组匹配'},
                            {value: 'EXACT', label: '精准匹配'},
                        ]
                    })
                },
                state: {
                    title: '状态'
                },
                bid: {
                    title: '出价'
                },
                'campaign': {
                    title: '广告活动'
                },
                'adGroup': {
                    title: '广告组'
                }
            }
        }
    }
}
