import * as api from './api'
import { dict, UserPageQuery, compute, CreateCrudOptionsProps, CreateCrudOptionsRet } from '@fast-crud/fast-crud'
import { inject } from 'vue'
import {BaseColumn, SbBaseColumn} 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 hasPermissions = inject('$hasPermissions')

	return {
		crudOptions: {
			table: {
				height: 800,
				rowKey: (row: any) => row.keywordId + row.searchTerm,
				headerCellStyle: {
					backgroundColor: '#f6f7fa', // 直接设置背景颜色
					height: '20px',
					borderRight: 'none',
				},
				cellStyle: {
					border: 'none',
					borderBottom: '0.5px solid #ddd',
				},
				showSummary: true,
				stripe: false
			},
			container: {
				fixedHeight: false,
			},
			actionbar: {
				show: false,
			},
			search: {
				show: false,
			},
			toolbar: {
				buttons: {
					search: {
						show: true,
					},
					compact: {
						show: false,
					},
				},
			},
			request: {
				pageRequest,
			},
			rowHandle: {
				show: false,
			},
			columns: {
				query: {
					title: '搜索词',
					column: {
						fixed: 'left',
						width: 180,
					}
				},
				matchType: {
					title: '定向',
					column: {
						width: 180,
						sortable: true,
						formatter: (row) => {
							console.log(row.value)
							if (row.value != null) {
								return row.value
							} else {
								return '--'
							}
						}
					}
				},
				campaignName: {
					title: '广告活动名称',
					column: {
						width: 180,
					}
				},
				adGroupName: {
					title: '广告组名称',
					column: {
						width: 180,
					}
				},
				ACOS: {
					title: 'ACOS',
					column: {
						align: 'right',
						width: '120px',
						sortable: true,
						renderHeader() {
							return (
									<span>
                <el-tooltip placement="top" content="广告投入产出比，系统计算，广告花费/广告带来的销售额。">
            <span>
                <el-icon size="14" style="display:inline-block; padding-top:2px; margin-right:3px;"><InfoFilled/></el-icon>
            </span>
            </el-tooltip>
            <span>ACOS</span>
            </span>
							)
						}
					}
				},
				ROAS: {
					title: 'ROAS',
					column: {
						align: 'right',
						sortable: true,
						width: '120px',
						renderHeader() {
							return (
									<span>
                <el-tooltip placement="top" content="广告支出回报，系统计算，广告带来的销售额/广告花费。">
            <span>
                <el-icon size="14" style="display:inline-block; padding-top:2px; margin-right:3px;"><InfoFilled/></el-icon>
            </span>
            </el-tooltip>
            <span>ROAS</span>
            </span>
							)
						}
					}
				},
				Spend: {
					title: '花费',
					column: {
						align: 'right',
						sortable: true,
						width: '120px',
						border: '0.5px solid #ddd',
						renderHeader() {
							return (
									<span>
                <el-tooltip placement="top"
														content="来自亚马逊广告API，亚马逊系统会在3天内将无效点击从统计数据中删除，因此过去3天内的花费可能会有所变化">
            <span>
                <el-icon size="14" style="display:inline-block; padding-top:2px; margin-right:3px;"><InfoFilled/></el-icon>
            </span>
            </el-tooltip>
            <span>花费</span>
            </span>
							)
						}
					}
				},
				TotalSales: {
					title: '销售额',
					column: {
						align: 'right',
						sortable: true,
						width: '120px',
						renderHeader() {
							return (
									<span>
                <el-tooltip placement="top" content="
        Seller类型店铺：<br />
        销售额，来自亚马逊广告API。<br />
        在点击广告后的7天内（商品推广）、14天内（品牌推广）、浏览或点击广告后的14天内（展示型推广）售<br/>出的广告商品及库存中其他商品的销售额；<br />
        亚马逊系统此项数据最多可能延迟12小时更新。因此，“今天”日期范围内的销售数据可能会延迟。<br />
        付款失败的订单数量和72小时内取消的订单产生的销售额将从总销售额中删除。<br />
        <br />
        Vendor类型店铺：<br />
        销售额，来自亚马逊广告API。<br />
        在点击广告后的14天内（商品推广）、14天内（品牌推广）、浏览或点击广告后的14天内（展示型推广）售<br />出的广告商品及库存中其他商品的销售额；<br />
        亚马逊系统此项数据最多可能延迟12小时更新。因此，“今天”日期范围内的销售数据可能会延迟。<br />
        付款失败的订单数量和72小时内取消的订单产生的销售额将从总销售额中删除。" raw-content>
        <span>
        <el-icon size="14" style="display:inline-block; padding-top:2px; margin-right:3px;"><InfoFilled/></el-icon>
            </span>
            </el-tooltip>
            <span>销售额</span>
            </span>
							)
						}
					}
				},
				TotalPurchases: {
					title: '订单数',
					column: {
						align: 'right',
						sortable: true,
						width: '120px',
						renderHeader() {
							return (
									<span>
                <el-tooltip placement="top" content="
        Seller类型店铺：<br />
        订单数，来自亚马逊广告API。<br />
        在点击广告后的7天内（商品推广）、14天内（品牌推广）、浏览或点击广告后的14天内（展示型推广）售<br />出的广告商品及库存中其他商品的订单数量；<br />
        亚马逊系统此项数据最多可能延迟12小时更新。因此，“今天”日期范围内的销售数据可能会延迟。<br />
        付款失败的订单数量和72小时内取消的订单数量将从订单总数中删除。<br />
        <br />
        Vendor类型店铺：<br />
        订单数，来自亚马逊广告API。<br />
        在点击广告后的14天内（商品推广）、14天内（品牌推广）、浏览或点击广告后的14天内（展示型推广）售<br />出的广告商品及库存中其他商品的订单数量；<br />
        亚马逊系统此项数据最多可能延迟12小时更新。因此，“今天”日期范围内的销售数据可能会延迟。<br />
        付款失败的订单数量和72小时内取消的订单数量将从订单总数中删除" raw-content>
        <span>
        <el-icon size="14" style="display:inline-block; padding-top:2px; margin-right:3px;"><InfoFilled/></el-icon>
            </span>
            </el-tooltip>
            <span>订单数</span>
            </span>
							)
						}
					}
				},
				CPC: {
					title: '点击成本',
					column: {
						align: 'right',
						sortable: true,
						width: '130px',
						renderHeader() {
							return (
									<span>
                <el-tooltip placement="top" content="单次点击成本，系统计算，花费/点击量">
            <span>
                <el-icon size="14" style="display:inline-block; padding-top:2px; margin-right:3px;"><InfoFilled/></el-icon>
            </span>
            </el-tooltip>
            <span>点击成本</span>
            </span>
							)
						}
					}
				},
				CPA: {
					title: '订单成本',
					column: {
						align: 'right',
						sortable: true,
						width: '130px',
						renderHeader() {
							return (
									<span>
                <el-tooltip placement="top" content="平均每笔订单的花费，系统计算，花费/广告订单量">
            <span>
                <el-icon size="14" style="display:inline-block; padding-top:2px; margin-right:3px;"><InfoFilled/></el-icon>
            </span>
            </el-tooltip>
            <span>订单成本</span>
            </span>
							)
						}
					}
				},
				Impression: {
					title: '曝光量',
					column: {
						align: 'right',
						sortable: true,
						width: '120px',
						renderHeader() {
							return (
									<span>
                <el-tooltip placement="top" content="来自亚马逊广告API，广告被展示的次数。">
            <span>
                <el-icon size="14" style="display:inline-block; padding-top:2px; margin-right:3px;"><InfoFilled/></el-icon>
            </span>
            </el-tooltip>
            <span>曝光量</span>
            </span>
							)
						},
						formatter: (row) => {
							console.log(row.value)
							if (row.value != null) {
								return row.value
							} else {
								return '--'
							}
						}
					}
				},
				Click: {
					title: '点击量',
					column: {
						align: 'right',
						sortable: true,
						width: '120px',
						renderHeader() {
							return (
									<span>
                <el-tooltip placement="top" content="来自亚马逊广告API，广告被点击的次数。亚马逊系统会在3天内将无效点击去除。">
            <span>
                <el-icon size="14" style="display:inline-block; padding-top:2px; margin-right:3px;"><InfoFilled/></el-icon>
            </span>
            </el-tooltip>
            <span>点击量</span>
            </span>
							)
						}
					}
				},
				CTR: {
					title: '点击率',
					column: {
						align: 'right',
						sortable: true,
						width: '120px',
						renderHeader() {
							return (
									<span>
                <el-tooltip placement="top" content="点击率，系统计算，点击量/曝光量。">
            <span>
                <el-icon size="14" style="display:inline-block; padding-top:2px; margin-right:3px;"><InfoFilled/></el-icon>
            </span>
            </el-tooltip>
            <span>点击率</span>
            </span>
							)
						}
					}
				},
				PurchasesRate: {
					title: '转化率',
					column: {
						align: 'right',
						sortable: true,
						width: '120px',
						border: '0.5px solid #ddd',
						renderHeader() {
							return (
									<span>
                <el-tooltip placement="top"
														content="广告转化率，系统计算，广告订单量/点击量*100%，展示型推广vCPM成本类型的广告活动不予计算。">
            <span>
                <el-icon size="14" style="display:inline-block; padding-top:2px; margin-right:3px;"><InfoFilled/></el-icon>
            </span>
            </el-tooltip>
            <span>转化率</span>
            </span>
							)
						}
					}
				},
				ViewableImpression: {
					title: '可见曝光量',
					column: {
						align: 'right',
						sortable: true,
						width: '140px',
						border: '0.5px solid #ddd',
						renderHeader() {
							return (
									<span>
                <el-tooltip placement="top"
														content="来自亚马逊广告API，符合媒体评级委员会(Media Ratings Council)可见标准的曝光量">
            <span>
                <el-icon size="14" style="display:inline-block; padding-top:2px; margin-right:3px;"><InfoFilled/></el-icon>
            </span>
            </el-tooltip>
            <span>可见曝光量</span>
            </span>
							)
						},
						formatter: (row) => {
							console.log(row.value)
							if (row.value != null) {
								return row.value
							} else {
								return '--'
							}
						}
					}
				},
			},
		},
	}
}
