interface Iconfig {
  /** 请求列表的接口*/
  fetchFn: Function;

  /**用户可搜索的内容，select为下拉列表,select为数组时为自定义option,w为string时表示获取字典里的值 */
  serchList: Array<{
    label: String;
    value: String;
    select?: Array<{ name: string; value: string | Number }> | String;
  }>;

  /**需要的字典数据，以，隔开的string */
  dictData?: String;

  /**table配置 */
  tableList: Array<Object>;
}

import { apiSupervisionProjectLists } from "@/api/supervision_project";
import { apiSupervisionParticipatingUnitsLists } from "@/api/supervision_participating_units";
import { apiSupervisionCheckItemLists } from "@/api/supervision_check_item";
import { apiManageProjectLists } from "@/api/manage_project";
import { apiSupervisionDangerousEngineeringMonitoringLists } from "@/api/supervision_dangerous_engineering_monitoring";
import { apiSupervisionMaterialEntryLists } from "@/api/supervision_material_entry";
import { apiSupervisionParticipatingUnitsQualificationsLists } from "@/api/supervision_participating_units_qualifications";
import { apiCostApprovedProjectLists } from "@/api/cost_approved_project";
import { apiCostProjectLists } from "@/api/cost_project";
import { apiTaskTypeLists } from "@/api/task_type";
import { apiSupervisionMaterialEquipmentInfoLists } from "@/api/supervision_material_equipment_info";
import { apiConsultProjectLists } from "@/api/consult_project";
import { apiZjzxInvoiceLists } from "@/api/zjzx_invoice";
import { apiSubcontractingContractLists } from "@/api/subcontracting_contract";
import { apisupplierLists } from "@/api/suppler_list";

export const supervision_project: Iconfig = {
  fetchFn: apiSupervisionProjectLists,
  serchList: [
    {
      label: "项目名称",
      value: "project_name",
    },
    {
      label: "项目编号",
      value: "project_code",
    },
  ],
  tableList: [
    { project_name: "项目名称" },
    { project_code: "项目编号" },
    { industry_text: "性质" },
    { build_unit: "建设单位" },
    { build_area_text: "建设区域" },
    { address: "项目地址" },
    { project_level_text: "项目等级" },
    { total_investment: "总投资" },
    { initiation_date: "立项日期" },
    { contract: "关联合同" },
    { contract_amount: "合同金额" },
    { project_overview: "项目概况" },
    { contract_content: "合同服务内容" },
    { project_requirements: "项目要求" },
    { remark: "备注" },
    { supervision_department: "监管部门" },
    { implementation_department: "实施部门" },
    { project_department: "项目部" },
    { engineering_status_text: "工程状态" },
    { project_manager: "项目负责人员" },
    { part_a_unit: "甲方单位" },
  ],
};

export const supervision_participating_units: Iconfig = {
  fetchFn: apiSupervisionParticipatingUnitsLists,
  serchList: [
    {
      label: "单位名称",
      value: "unit_name",
    },
    {
      label: "资质等级",
      value: "qualification_grade",
    },
  ],
  tableList: [
    { unit_name: "单位名称" },
    { unit_type_text: "单位类别" },
    { qualification_grade: "资质等级" },
    { telephone: "联系电话" },
    { duty: "责任范围" },
  ],
};

export const supervision_check_item: Iconfig = {
  fetchFn: apiSupervisionCheckItemLists,
  dictData: "check_item_node_type",
  serchList: [
    {
      label: "节点名称",
      value: "node_name",
    },
    {
      label: "节点类型",
      value: "node_type",
      select: "check_item_node_type",
    },
  ],
  tableList: [
    { project_name: "项目名称" },
    { node_name: "节点名称" },
    { node_type_text: "节点类型" },
    { node_code: "节点编号" },
  ],
};

export const manage_project: Iconfig = {
  fetchFn: apiManageProjectLists,
  dictData: "cost_consultation_industry_nature,industry,engineering_status",
  serchList: [
    {
      label: "项目名称",
      value: "project_name",
    },
    {
      label: "项目编号",
      value: "project_code",
    },
    {
      label: "性质",
      value: "nature",
      select: "cost_consultation_industry_nature",
    },
    {
      label: "行业",
      value: "industry",
      select: "industry",
    },
    {
      label: "工程状态",
      value: "engineering_status",
      select: "engineering_status",
    },
  ],
  tableList: [
    { project_name: "项目名称" },
    { project_code: "项目编号" },
    { nature_text: "性质" },
    { industry_text: "行业" },
    { build_area_text: "建设区域" },
    { project_level_text: "项目级别" },
    { total_investment: "总投资" },
    { engineering_status_text: "工程状态" },
    { implementation_department: "实施部门" },
    { supervision_department: "监管部门" },
    { project_manager: "项目经理" },
  ],
};

export const supervision_dangerous_engineering_monitoring: Iconfig = {
  fetchFn: apiSupervisionDangerousEngineeringMonitoringLists,
  dictData: "partial_project",
  serchList: [
    {
      label: "危大工程类型",
      value: "type",
    },
    {
      label: "分部分项工程",
      value: "partial_project",
      select: "partial_project",
    },
    {
      label: "施工部位",
      value: "position",
    },
  ],
  tableList: [
    { project_name: "项目名称" },
    { type_text: "危大工程类型" },
    { partial_project_text: "分部分项工程" },
    { planned_construction_time: "计划施工时间" },
    { position: "施工部位" },
  ],
};

export const supervision_material_entry: Iconfig = {
  fetchFn: apiSupervisionMaterialEntryLists,
  serchList: [
    {
      label: "进场主题",
      value: "theme",
    },
    {
      label: "编号",
      value: "code",
    },
  ],
  tableList: [
    { project_name: "项目名称" },
    { company_name: "采购单位" },
    { theme: "进场主题" },
    { code: "编号" },
    { enter_time: "进场时间" },
    { enter_result_text: "进场结果" },
    { parallel_test_text: "是否平行检验" },
  ],
};

export const supervision_material_equipment_info: Iconfig = {
  fetchFn: apiSupervisionMaterialEquipmentInfoLists,
  serchList: [
    {
      label: "材料/设备名称",
      value: "name",
    },
    {
      label: "材料/设备品牌",
      value: "brand",
    },
    {
      label: "合同约定品牌",
      value: "contract_brand",
      select: [
        {
          name: "否",
          value: 0,
        },
        {
          name: "是",
          value: 1,
        },
      ],
    },
    {
      label: "类型",
      value: "type",
      select: [
        {
          name: "材料",
          value: 0,
        },
        {
          name: "设备",
          value: 1,
        },
      ],
    },
  ],
  tableList: [
    { project_name: "项目名称" },
    { name: "材料/设备名称" },
    { brand: "材料/设备品牌" },
    { model: "型号" },
    { unit: "计数单位" },
    { number: "计划数量" },
    { contract_brand_text: "合同约定品牌" },
    { type_text: "类型" },
    { remark: "备注" },
  ],
};

export const supervision_participating_units_qualifications: Iconfig = {
  fetchFn: apiSupervisionParticipatingUnitsQualificationsLists,
  serchList: [
    {
      label: "资质名称",
      value: "qualification_name",
    },
    {
      label: "资质编号",
      value: "qualification_number",
    },
  ],
  tableList: [
    { project_name: "项目名称" },
    { company_name: "所属单位" },
    { qualification_name: "资质名称" },
    { qualification_number: "资质编号" },
    { get_date: "发证日期" },
    { effective_date: "有效日期" },
    { qualification_status_text: "资质状态" },
    { remark: "备注" },
  ],
};

export const cost_approved_projects: Iconfig = {
  fetchFn: apiCostApprovedProjectLists,
  serchList: [
    {
      label: "合同名称",
      value: "contract_name",
    },
    {
      label: "合同编号",
      value: "contract_num",
    },
  ],
  tableList: [
    { contract_num: "合同编号" },
    { contract_name: "合同名称" },
    { part_a: "甲方签约单位" },
    { part_b: "乙方签约单位" },
    { start_date: "合同计划开始日期" },
    { end_date: "合同计划结束日期" },
    { project_money: "工程总投资" },
    { business_nature_text: "业务性质" },
    { dept: "签订部门" },
    { fund_sources_text: "资金来源" },
    { project_director: "项目总监" },
    { regulators: "监管部门" },
  ],
};

export const cost_project: Iconfig = {
  fetchFn: apiCostProjectLists,
  serchList: [
    {
      label: "项目编号",
      value: "project_num",
    },
    {
      label: "项目名称",
      value: "project_name",
    },
  ],
  tableList: [
    { project_name: "项目名称" },
    { address: "具体地址" },
    { starting: "计划开始日期" },
    { endtime: "计划结束日期" },
    { jhgq: "计划工期（天）" },
    { person_text: "项目相关人员" },
    { invest: "项目总投资（元）" },
    { budget: "预算造价（元）" },
    { cost: "送审造价（元）" },
    { approval: "审定造价（元）" },
    { aunit: "委托单位" },
    { acontactnum: "联系电话" },
    { date: "登记日期" },
    { generalize: "项目规模及概括" },
    { note: "注意事项" },
    { remark: "备注" },
  ],
};

export const task_type: Iconfig = {
  fetchFn: apiTaskTypeLists,
  dictData: "superior_category",
  serchList: [
    {
      label: "任务名称",
      value: "unit_name",
    },
    {
      label: "上级类别",
      value: "superior_sort",
      select: "superior_category",
    },
  ],
  tableList: [
    { dataid: "标识" },
    { num: "任务编号" },
    { name: "任务名称" },
    { level: "任务级次" },
    { remarks: "备注" },
  ],
};

export const consult_project: Iconfig = {
  fetchFn: apiConsultProjectLists,
  dictData: "",
  serchList: [
    {
      label: "项目名称",
      value: "project_name",
    },
    {
      label: "项目编号",
      value: "project_code",
    },
  ],
  tableList: [
    { project_name: "项目名称" },
    { project_code: "项目编号" },
    { company: "委托单位" },
    { total_investment: "总投资" },
    { contract: "关联合同" },
    { engineering_status_text: "工程状态" },
    { consult_type_text: "咨询类型" },
    { supervision_department: "监管部门" },
    { implementation_department: "实施部门" },
    { project_manager: "项目负责人员" },
  ],
};

export const zjzx_invoice: Iconfig = {
  fetchFn: apiZjzxInvoiceLists,
  dictData: "zjzx_invoice_type",
  serchList: [
    {
      label: "开票编号",
      value: "invoice_code",
    },
    {
      label: "发票类型",
      value: "invoice_type",
      select: "zjzx_invoice_type",
    },
    {
      label: "开票单位名称",
      value: "apply_company",
    },
  ],
  tableList: [
    { project_name: "项目名称" },
    { invoice_code: "开票编号" },
    { invoice_type_text: "发票类型" },
    { apply_amount: "开票申请金额" },
  ],
};

export const subcontracting_contract: Iconfig = {
  fetchFn: apiSubcontractingContractLists,
  //   dictData: "zjzx_invoice_type",
  serchList: [
    {
      label: "合同编号",
      value: "contract_no",
    },
  ],
  tableList: [
    { supplier_name: "供应商名称" },
    { project_name: "项目名称" },
    { contract_no: "合同编号" },
    { contract_name: "合同名称" },
    { signing_date: "签订日期" },
    { contract_type: "合同类型" },
    { contract_amount: "合同金额" },
    { negotiation_amount: "洽商金额" },
    { excluding_tax_amount: "不含税金额" },
    { reality_contract_amount: "实际合同金额" },
    { has_pay_amount: "已付款金额" },
    { not_pay_amount: "未付款金额" },
    { invoice_amount: "已开票金额" },
    { not_invoice_amount: "未开票金额" },
    { refund_amount: "已退款金额" },
    { settlement_difference: "结算差异" },
  ],
};

export const supplier_tab: Iconfig = {
  fetchFn: apisupplierLists,
  serchList: [
    {
      label: "联系人",
      value: "contacts",
    },
    {
      label: "建档人",
      value: "create_user_name",
    },
    {
      label: "供应商编码",
      value: "supplier_code",
    },
  ],
  tableList: [
    { create_user_name: "建档人" },
    { supplier_code: "供应商编码" },
    { supplier_name: "供应商名称" },
    { brand_category: "品牌类别" },
    { supplier_group: "供应商分组" },
    { supplier_category: "供应商分类" },
    { supplier_grade: "供应商等级" },
    { contacts: "联系人" },
    { contacts_sex: "性别" },
    { phone: "电话号码" },
  ],
};

import { apiProcurementContractLists } from "@/api/procurement_contract";
export const procurement_contract: Iconfig = {
  fetchFn: apiProcurementContractLists,
  serchList: [
    {
      label: "合同编号",
      value: "contract_no",
    },
  ],
  tableList: [
    { supplier_name: "供应商名称" },
    { project_name: "项目名称" },
    { contract_name: "合同名称" },
    { contract_type: "合同类型" },
    { signing_date: "签订日期" },
    { contract_amount: "合同金额" },
    { has_pay_amount: "已付款金额" },
    { has_invoice_amount: "已开票金额" },
    { not_pay_amount: "未付款金额" },
    { not_invoice_amount: "未开票金额" },
    { refund_amount: "退款金额" },
    { has_storage_num: "已入库数量" },
    { not_storage_num: "未入库数量" },
    { num: "数量" },
  ],
};

import { paymentplanLists } from "@/api/paymentplan";
export const finance_payment_plan: Iconfig = {
  fetchFn: paymentplanLists,
  dictData: "pay_status",
  serchList: [
    {
      label: "状态",
      value: "status",
      select: "pay_status",
    },
  ],
  tableList: [
    { supplier_name: "供应商名称" },
    { project_name: "项目名称" },
    { contract_name: "合同名称" },
    { contract_type_text: "合同类型" },
    { pay_date: "计划付款日期" },
    { amount: "金额" },
    { period_text: "期次" },
    { status_text: "状态" },
    { has_payment_amount: "已付款" },
    { not_payment_amount: "未付款" },
  ],
};

import { bankaccountLists } from "@/api/bank_account";
export const bank_account: Iconfig = {
  fetchFn: bankaccountLists,
  serchList: [
    {
      label: "账户编码",
      value: "account_sn",
    },
    {
      label: "账号",
      value: "account",
    },
    {
      label: "开户银行",
      value: "deposit_bank",
    },
    {
      label: "开户名称",
      value: "account_name",
    },
  ],
  tableList: [
    { account_sn: "账户编码" },
    { deposit_bank: "开户银行" },
    { account_name: "开户名称" },
    { account: "账号" },
    { account_opening_date: "开户日期" },
    { opening_amount: "期初金额" },
  ],
};

import { apiFinancialInvoiceLists } from "@/api/financial_invoice";

export const financial_invoice: Iconfig = {
  fetchFn: apiFinancialInvoiceLists,
  serchList: [
    {
      label: "开票编号",
      value: "invoice_type",
    },
  ],
  tableList: [
    { contract_name: "合同名称" },
    { invoice_code: "开票编号" },
    { apply_amount: "开票申请金额" },
    { apply_company: "开票单位名称" },
    { part_a: "甲方签约单位" },
    { part_b: "乙方签约单位" },
    { sign_money: "签订金额（元）" },
    { sign_time: "签约时间" },
    { invoice_type_text: "发票类型" },
    { is_refund: "到账状态" },
    { refund_amount: "到账金额" },
  ],
};

import { apiFinancialBudgetDocLists } from "@/api/financial_budget_doc";

export const financial_budget_doc: Iconfig = {
  fetchFn: apiFinancialBudgetDocLists,
  serchList: [
    {
      label: "预算书编号",
      value: "code",
    },
    {
      label: "预算书名称",
      value: "name",
    },
  ],
  tableList: [
    { contract_name: "合同名称" },
    { total_amount: "合同金额" },
    { code: "预算书编号" },
    { name: "预算书名称" },
    { issue_date: "下达日期" },
  ],
};

import { apiFinancialFeeApplicationLists } from "@/api/financial_fee_application";

export const financial_fee_application: Iconfig = {
  fetchFn: apiFinancialFeeApplicationLists,
  serchList: [
    {
      label: "单据主题",
      value: "theme",
    },
    {
      label: "单据编号",
      value: "code",
    },
    {
      label: "申请人",
      value: "create_user",
    },
  ],
  tableList: [
    { theme: "单据主题" },
    { code: "单据编号" },
    { days: "借款天数" },
    { create_user: "申请人" },
    { total_amount: "申请金额" },
    { create_time: "申请日期" },
    { total_bill_num: "票据总张数" },
    { remark: "备注" },
  ],
};

import { apiFinancialBorrowMoneyLists } from "@/api/financial_borrow_money";

export const financial_borrow_money: Iconfig = {
  fetchFn: apiFinancialBorrowMoneyLists,
  dictData: "cost_type,financial_pay_type",
  serchList: [
    {
      label: "单据编号",
      value: "code",
    },
    {
      label: "费用类别",
      value: "cost_type",
      select: "cost_type",
    },
    {
      label: "支付方式",
      value: "pay_type",
      select: "financial_pay_type",
    },
  ],
  tableList: [
    { code: "单据编号" },
    { dept_name: "所在部门" },
    { cost_type_text: "费用类别" },
    { pay_type_text: "支付方式" },
    { amount: "金额" },
    { content: "事由" },
    { create_user: "申请人" },
    { create_time: "申请日期" },
  ],
};

import { apiMarketingCustomReturnVisitTemplateLists } from "@/api/marketing_custom_return_visit_template";

export const marketing_custom_return_visit_template: Iconfig = {
  fetchFn: apiMarketingCustomReturnVisitTemplateLists,
  dictData: "cost_type,financial_pay_type",
  serchList: [
    {
      label: "模板名称",
      value: "name",
    },
    {
      label: "是否启用",
      value: "is_use",
      select: [
        {
          name: "启用",
          value: 0,
        },
        {
          name: "不启用",
          value: 1,
        },
      ],
    },
    {
      label: "模板名称",
      value: "name",
    },
    {
      label: "创建人",
      value: "create_user",
    },
  ],
  tableList: [
    { name: "模板名称" },
    { is_use_text: "是否启用" },
    { create_user: "创建人" },
    { create_time: "创建时间" },
  ],
};

import { apiMarketingCustomReturnVisitLists } from "@/api/marketing_custom_return_visit";

export const marketing_custom_return_visit: Iconfig = {
  fetchFn: apiMarketingCustomReturnVisitLists,
  dictData: "return_visit_type",
  serchList: [
    {
      label: "回访编号",
      value: "code",
    },
    {
      label: "回访方式",
      value: "return_visit_type",
      select: "return_visit_type",
    },
    {
      label: "回访人",
      value: "create_user",
    },
  ],
  tableList: [
    { contract_name: "合同名称" },
    { code: "回访编号" },
    { return_visit_type_text: "回访方式" },
    { template_name: "回访表模板" },
    { create_user: "回访人" },
    { create_time: "回访日期" },
  ],
};

import { apiMarketingCustomLists } from "@/api/marketing_custom";

export const marketing_custom: Iconfig = {
  fetchFn: apiMarketingCustomLists,
  // dictData: "return_visit_type",
  serchList: [
    {
      label: "客户名称",
      value: "name",
    },
    {
      label: "客户编号",
      value: "code",
    },
    {
      label: "重要等级",
      value: "important_level",
      select: "custom_important_level",
    },
  ],
  tableList: [
    { name: "客户名称" },
    { code: "客户编号" },
    { important_level_text: "重要等级" },
    { dept_name: "负责部门" },
    { category_text: "客户分类" },
    { province_name: "省份" },
    { city_name: "城市" },
    { create_user: "录入人" },
    { create_time: "录入日期" },
  ],
};

import { attendanceRecordLists } from "@/api/project_attendance_record";

export const project_attendance_record: Iconfig = {
  fetchFn: attendanceRecordLists,
  // dictData: "return_visit_type",
  serchList: [
    // {
    //   label: "客户名称",
    //   value: "name",
    // },
    // {
    //   label: "客户编号",
    //   value: "code",
    // },
    // {
    //   label: "重要等级",
    //   value: "important_level",
    //   select: "custom_important_level",
    // },
  ],
  tableList: [
    { attendance_code: "日记工单号" },
    { project_code: "项目编码" },
    { project_name: "项目名称" },
    { attendance_date: "日期" },
    { cqrs: "出勤人数" },
    { work_record_num_total: "记工数量" },
    { daily_salary_total: "日工资合计" },
    { daily_living_total: "日生活费合计" },
    { daily_subsidy_total: "日补贴合计" },
    { daily_other_total: "日其它合计" },
    { daily_income_total: "日收入合计" },
  ],
};

import { apimketingFrameworkAgreementLists } from "@/api/marketing_framework_agreement";

export const marketing_framework_agreement: Iconfig = {
  fetchFn: apimketingFrameworkAgreementLists,
  dictData: "custom_important_level,cost_consultation_business_nature",
  serchList: [
    {
      label: "合同名称",
      value: "contract_name",
    },
    {
      label: "协议性质",
      value: "important_level",
      select: "custom_important_level",
    },
    {
      label: "业务性质",
      value: "business_nature",
      select: "cost_consultation_business_nature",
    },
  ],
  tableList: [
    { contract_name: "协议名称" },
    { contract_code: "合同编号" },
    { part_a_contact: "甲方签约单位联系人" },
    { part_b: "乙方签约单位" },
    { business_nature_text: "业务性质" },
    { signed_dept_name: "签订部门" },
    { signed_head_name: "签订负责人" },
    { seal_user_name: "盖章人" },
    { agreement_nature_text: "协议性质" },
    { seal_name_text: "盖章名称" },
    { is_limit_text: "是否限制次数" },
    { file_type_text: "文件类型" },
  ],
};

import { apiMarketingContractLists } from "@/api/marketing_contract";

export const marketing_contract: Iconfig = {
  fetchFn: apiMarketingContractLists,
  dictData: "cost_consultation_business_nature",
  serchList: [
    {
      label: "合同类型",
      value: "contract_type",
      select: [
        {
          name: "主合同",
          value: 0,
        },
        {
          name: "框架协议",
          value: 1,
        },
        {
          name: "补充协议",
          value: 2,
        },
      ],
    },
    {
      label: "合同名称",
      value: "contract_name",
    },
    {
      label: "业务性质",
      value: "business_nature",
      select: "cost_consultation_business_nature",
    },
  ],
  tableList: [
    { contract_name: "合同名称" },
    { contract_code: "合同编号" },
    { part_a_name: "甲方签约单位" },
    { part_b: "乙方签约单位" },
    { part_b_signatory_name: "乙方签约人" },
    { business_nature_text: "业务性质" },
    { industry_nature_text: "行业性质" },
    { fund_sources_text: "资金来源" },
    { const_area_text: "建设区域" },
    { project_money: "工程总投资" },
    { project_scale: "工程规模及概况" },
    { signed_rate: "合同签订费率" },
    { service_duration: "合同服务工期" },
    { start_date: "计划开始日期" },
    { end_date: "计划结束日期" },
  ],
};

import { apiMarketingProjectFilingLists } from "@/api/marketing_project_filing";

export const marketing_project_filing: Iconfig = {
  fetchFn: apiMarketingProjectFilingLists,
  serchList: [
    {
      label: "录入人",
      value: "create_user",
    },
  ],
  tableList: [
    { contract_name: "合同名称" },
    { create_user: "录入人" },
    { create_time: "录入日期" },
    { remark: "备注" },
  ],
};
