<template>
  <ContentWrap>
    <!-- 搜索工作栏 -->
    <Search ref="seachRef"
      :schema="CustomerStatementMain.allSchemas.searchSchema"
      @search="searchClick" @reset="searchClick" @onChange="onSearchChange"
    />

  </ContentWrap>

  <!-- 列表头部 -->
  <TableHead
    :HeadButttondata="HeadButttondata"
    @button-base-click="buttonBaseClick"
    :routeName="routeName"
    @updataTableColumns="updataTableColumns"
    @searchFormClick="searchFormClick"
    :allSchemas="CustomerStatementMain.allSchemas"
  />

  <!-- 列表 -->
  <ContentWrap>
    <Table
      :columns="tableColumns"
      :data="tableObject.tableList"
      :loading="tableObject.loading"
      :pagination="{
        total: tableObject.total
      }"
      v-model:pageSize="tableObject.pageSize"
      v-model:currentPage="tableObject.currentPage"
      v-model:sort="tableObject.sort"
    >
      <template #number="{ row }">
        <el-button type="primary" link @click="openDetail(row, '单据号', row.number)">
          <span>{{ row.number }}</span>
        </el-button>
      </template>
      <template #action="{ row, $index }">
        <ButtonBaseMore
          :Butttondata="butttondata(row, $index)"
          @button-base-click="buttonTableClick($event, row)"
        />
      </template>
    </Table>
  </ContentWrap>

  <!-- 表单弹窗：添加/修改 -->
  <BasicForm
    ref="basicFormRef"
    @success="formsSuccess"
    :rules="CustomerStatementMainRules"
    :formAllSchemas="CustomerStatementMain.allSchemas"
    :apiUpdate="CustomerStatementMainApi.updateCustomerStatementMain"
    :apiCreate="CustomerStatementMainApi.createCustomerStatementMain"
    @searchTableSuccess="searchTableSuccess"
    :isBusiness="false"
  />

  <!-- 详情 -->
  <Detail
    ref="detailRef"
    :isBasic="false"
    :allSchemas="CustomerStatementMain.allSchemas"
    :detailAllSchemas="DetailAllSchemas"
    :detailAllSchemasRules="CustomerStatementDetailRules"
    :apiPage="apiPage"
    :tabsExtend="tabsExtend"
    :tabs="[
      {
        label: '明细',
        prop: 'Detail'
      },
      {
        label: '对账差异',
        prop: 'Reconciliation'
      },
      {
        label: '模具分摊对账单',
        prop: 'ShareReconciliation'
      }
    ]"
    :otherHeadButttonData="otherHeadButttonData"
    :detailButtonIsShowAdd="false"
    :detailButtonIsShowEdit="false"
    :detailButtonIsShowDelete="false"
    @changeTabs="changeTabs"
    :tableObjectExtend="tableObjectExtend"
    @buttonBaseClick="detailButtonBaseClick"
    @handleSubmitForm="handleDetailSubmitForm"
  >
    <template #quantityVariance="{ row }" v-if="tabCurrent.prop == 'Reconciliation'">
      <span
        :style="{
          color: row.quantityVariance > 0 ? '#409eff' : row.quantityVariance < 0 ? 'red' : '#000'
        }"
        >{{ row.quantityVariance }}</span
      >
    </template>
    <template #amountVariance="{ row }" v-if="tabCurrent.prop == 'Reconciliation'">
      <span
        :style="{
          color: row.amountVariance > 0 ? '#409eff' : row.amountVariance < 0 ? 'red' : '#000'
        }"
        >{{ row.amountVariance }}</span
      >
    </template>
    <template #priceVariance="{ row }" v-if="tabCurrent.prop == 'Reconciliation'">
      <span
        :style="{
          color: row.priceVariance > 0 ? '#409eff' : row.priceVariance < 0 ? 'red' : '#000'
        }"
        >{{ row.priceVariance }}</span
      >
    </template>

    <template #adjustmentAmount="{ row }" v-if="tabCurrent.prop == 'ShareReconciliation'">
      <div style="position: relative">
        <span>{{ row.adjustmentAmount }}</span>
        <Icon v-if="chooseRow.status==4"
          icon="ep:edit"
          color="#409eff"
          @click="openDetailForm(row)"
          style="position: absolute; right: 5px; top: 50%; transform: translateY(-50%)"
        />
      </div>
    </template>
  </Detail>
  <!-- 导入 -->
  <ImportCustomerStatementForm
    ref="importFormRef"
    url="/wms/customer-statement-main/import"
    :importTemplateData="importTemplateData"
    @success="importSuccess"
  />
  <ImportCustomerStatementShareForm
    ref="importShareFormRef"
    url="/wms/customer-tool-apport-statement-detail/import"
    :importTemplateData="importShareTemplateData"
    @success="importSuccess"
  />
  <!-- 表单弹窗：添加/修改 -->
  <CustomerSaleInvoiceBasicForm ref="saleFormRef" @getList="getList" @buttonBaseClick="buttonBaseClick"/>

</template>

<script setup lang="ts">
import download from '@/utils/download'
import CustomerSaleInvoiceBasicForm from '@/views/wms/deliversettlementManage/customerSaleInvoiceRequestMain/CustomerSaleInvoiceBasicForm.vue'
import {
  CustomerStatementMain,
  CustomerStatementMainRules,
  CustomerStatementDetail,
  CustomerStatementDetailRules,
  CustomerStatementReconciliation,
  CustomerStatementShareReconciliation
} from './customerStatementMain.data'
import * as CustomerStatementMainApi from '@/api/wms/customerStatementMain'
import * as CustomerStatementDetailApi from '@/api/wms/customerStatementDetail'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportCustomerStatementForm from '@/components/ImportForm/src/ImportCustomerStatementForm.vue'
import Detail from '@/components/Detail/src/Detail.vue'
import ImportCustomerStatementShareForm from '@/components/ImportForm/src/ImportCustomerStatementShareForm.vue'
import { formatDate } from '@/utils/formatTime'

defineOptions({ name: 'CustomerStatementMain' })

const message = useMessage() // 消息弹窗
const { t } = useI18n() // 国际化

const route = useRoute() // 路由信息
const routeName = ref()
routeName.value = route.name
const tableColumns = ref(CustomerStatementMain.allSchemas.tableColumns)

const apiPage = ref(CustomerStatementDetailApi.getCustomerStatementDetailPage)
const DetailAllSchemas = ref(CustomerStatementDetail.allSchemas)

const tabsExtend = ref(false)
const tableObjectExtend = ref()
const otherHeadButttonData = ref()

// 查询页面返回
const searchTableSuccess = (formField, searchField, val, formRef) => {
  nextTick(() => {
    const setV = {}
    setV[formField] = val[0][searchField]
    formRef.setValues(setV)
  })
}

// 字段设置 更新主列表字段
const updataTableColumns = (val) => {
  tableColumns.value = val
}

const { tableObject, tableMethods } = useTable({
  getListApi: CustomerStatementMainApi.getCustomerStatementMainPage // 分页接口
})

// 获得表格的各种操作
const { getList, setSearchParams } = tableMethods

// 列表头部按钮
const HeadButttondata = [
  //defaultButtons.defaultAddBtn({hasPermi:'wms:customerStatementMain:create'}), // 新增
  defaultButtons.defaultImportBtn({ hasPermi: 'wms:customer-statement-main:import' }), // 导入
  defaultButtons.defaultExportBtn({ hasPermi: 'wms:customer-statement-main:export' }), // 导出
  defaultButtons.defaultFreshBtn(null), // 刷新
  defaultButtons.defaultFilterBtn(null), // 筛选
  defaultButtons.defaultSetBtn(null) // 设置
  // {
  //   label: '自定义扩展按钮',
  //   name: 'zdy',
  //   hide: false,
  //   type: 'primary',
  //   icon: 'Select',
  //   color: ''
  // },
]

// 头部按钮事件
const buttonBaseClick = (val, item) => {
  if (val == 'add') {
    // 新增
    openForm('create')
  } else if (val == 'import') {
    // 导入
    handleImport()
  } else if (val == 'export') {
    // 导出
    handleExport()
  } else if (val == 'refresh') {
    // 刷新
    getList()
  } else if (val == 'filtrate') {
    // 筛选
  } else {
    // 其他按钮
    console.log('其他按钮', item)
  }
}

// 列表-操作按钮
const butttondata = (row, $index) => {
  const findIndex = row['masterId']
    ? tableObject.tableList.findIndex((item) => item['masterId'] == row['masterId'])
    : -1
  if (findIndex > -1 && findIndex < $index) {
    return []
  }
  return [
    // defaultButtons.mainListEditBtn({hasPermi:'wms:customerStatementMain:update'}), // 编辑
    // defaultButtons.mainListDeleteBtn({hasPermi:'wms:customerStatementMain:delete'}), // 删除
    {
      label: t('ts.重新对比'),
      name: 'rematch',
      hide: isShowMainButton(row, ['2']),
      type: 'primary',
      icon: '',
      color: '',
      hasPermi: 'wms:customer-statement-main:recontrast',
      link: true // 文本展现按钮
    },
    {
      label: t('ts.确认对比结果'),
      name: 'confirmationContrast',
      hide: row.isCompare!='1',
      type: 'primary',
      icon: '',
      color: '',
      hasPermi: 'wms:customer-statement-main:confirmationContrast',
      link: true // 文本展现按钮
    },
    {
      label: t('ts.导入模具分摊对账单'),
      name: 'importShareReconciliation',
      hide: isShowMainButton(row, ['3', '4']),
      type: 'primary',
      color: '',
      hasPermi: 'wms:customer-statement-main:import',
      link: true // 文本展现按钮
    },
    {
      label: t('ts.确认分摊金额'),
      name: 'confirmShareMoney',
      hide: row.isShare!='1',
      type: 'primary',
      color: '',
      hasPermi: 'wms:customer-statement-main:confirmationShare',
      link: true // 文本展现按钮
    },
    {
      label: t('ts.确认不分摊'),
      name: 'confirmationNoShare',
      hide: row.isNoShare!='1',
      type: 'primary',
      color: '',
      hasPermi: 'wms:customer-statement-main:confirmationShare',
      link: true // 文本展现按钮
    },
    {
      label: t('ts.创建开票申请'),
      name: 'createTicketApply',
      hide: isShowMainButton(row, ['5']),
      type: 'primary',
      color: '',
      hasPermi: '',
      link: true // 文本展现按钮
    },
    defaultButtons.mainSendBackBtn({
      hasPermi: 'wms:customer-statement-main:sendBack',
      hide: isShowMainButton(row, ['3', '4', '5'])
    }), // 退回
    defaultButtons.mainListCancelBtn({
      hasPermi: 'wms:customer-statement-main:nodeAbrogate',
      hide: isShowMainButton(row, ['2', '3', '4', '5'])
    }) // 作废
  ]
}


const saleFormRef = ref()
// 列表-操作按钮事件
const buttonTableClick = async (val, row) => {
  if (val == 'rematch') {
    //重新比对
    tapRematch(row.id)
  } else if (val == 'confirmationContrast') {
    // 确认对比结果
    tapConfirmationContrast(row.id)
  } else if (val == 'importShareReconciliation') {
    // 导入模具分摊对账单、
    handleShareImport(row.id)
  } else if (val == 'confirmShareMoney') {
    // 确认分摊金额
    handleConfirmShareMoney(row.id)
  } else if (val == 'confirmationNoShare') { 
      // 确认不分摊金额
    handleConfirmationNoShare(row.id)
  } else if (val == 'createTicketApply') {
    // 创建开票申请
    let mainRes = await CustomerStatementMainApi.getCustomerStatementMain(row.id)
    let detailRes = await CustomerStatementDetailApi.pageInvoice(row.id)
    console.log('创建开票申请',mainRes)
    console.log('创建开票申请11',detailRes)

    saleFormRef.value.openFormTable('create',mainRes,detailRes?.list)
    // handleConfirmShareMoney(row.id)
  } else if (val == 'sendBack') {
    // 退回
    tapSendBack(row.id)
  } else if (val == 'cancel') {
    // 作废
    tapCancel(row.id)
  }
}

/** 添加/修改操作 */
const basicFormRef = ref()
const openForm = (type: string, row?: any) => {
  basicFormRef.value.open(type, row)
}

// form表单提交
const formsSuccess = async (formType, data) => {
  var isHave = CustomerStatementMain.allSchemas.formSchema.some(function (item) {
    return item.field === 'activeTime' || item.field === 'expireTime'
  })
  if (isHave) {
    if (data.activeTime && data.expireTime && data.activeTime >= data.expireTime) {
      message.error('失效时间要大于生效时间')
      return
    }
  }
  if (data.activeTime == 0) data.activeTime = null
  if (data.expireTime == 0) data.expireTime = null
  if (formType === 'create') {
    await CustomerStatementMainApi.createCustomerStatementMain(data)
    message.success(t('common.createSuccess'))
  } else {
    await CustomerStatementMainApi.updateCustomerStatementMain(data)
    message.success(t('common.updateSuccess'))
  }
  basicFormRef.value.dialogVisible = false
  getList()
}

/** 详情操作 */
const detailRef = ref()
const chooseRow = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {
  chooseRow.value = row
  detailRef.value.openDetail(chooseRow.value, titleName, titleValue, 'basicCustomerStatementMain')
}

/** 删除按钮操作 */
const handleDelete = async (id: number) => {
  try {
    // 删除的二次确认
    await message.delConfirm()
    // 发起删除
    await CustomerStatementMainApi.deleteCustomerStatementMain(id)
    message.success(t('common.delSuccess'))
    // 刷新列表
    await getList()
  } catch {}
}

/** 导出按钮操作 */
const exportLoading = ref(false) // 导出的加载中
const handleExport = async () => {
  try {
    // 导出的二次确认
    await message.exportConfirm()
    // 发起导出
    exportLoading.value = true
    const excelTitle = ref(route.meta.title)
    const data = await CustomerStatementMainApi.exportCustomerStatementMain(tableObject.params)
    download.excel(data, `【${excelTitle.value}】【${formatDate(new Date())}】.xlsx`)
  } catch {
  } finally {
    exportLoading.value = false
  }
}

/** 导入 */
const importFormRef = ref()
//导入客户模具分摊对账单
const importShareFormRef = ref()
const handleImport = () => {
  importFormRef.value.open()
}
const handleShareImport = (id: number) => {
  importShareTemplateData.customerId = id
  importShareFormRef.value.open()
}
// 导入附件弹窗所需的参数
const importTemplateData = reactive({
  templateUrl: '',
  templateTitle: `【${route.meta.title}】导入模版.xlsx`
})
//导入客户模具对账单参数
const importShareTemplateData = reactive({
  templateUrl: '',
  templateTitle: '模具分摊对账单导入模版.xlsx',
  customerId: 0
})
// 导入成功之后
const importSuccess = () => {
  getList()
}

// 筛选提交
const searchFormClick = (searchData) => {
  tableObject.params = {
    isSearch: true,
    filters: searchData.filters
  }
  getList() // 刷新当前列表
}
const seachRef = ref()
const onSearchChange = (field, value)=>{
  if(field=='status'){
    // 状态
    if(value.length>0){
      if(value[value.length-1]==''){
        //全选
        seachRef.value.setFormValues({
          status:['']
        })
      }else{
        seachRef.value.setFormValues({
          status:value.filter(item=>item!='')
        })
      }
    }
  }
  if(field=='customerCode'){
    if(value.length>0){
      if(value[value.length-1]=='ALL'){
        //全选
        seachRef.value.setFormValues({
          customerCode:['ALL']
        })
      }else{
        seachRef.value.setFormValues({
          customerCode:value.filter(item=>item!='ALL')
        })
      }
    }
  }
}
const searchClick = async (data)=>{
  console.log('查询',data)
  setSearchParams({...data,customerCode:data.customerCode.filter(item=>item!='ALL'),status:data.status.filter(item=>item!='')})
}
/** 初始化 **/
onMounted(async () => {
  getList()
  //客户对账单
  importTemplateData.templateUrl = await CustomerStatementMainApi.importTemplate()
  //模具分摊对账单
  importShareTemplateData.templateUrl = await CustomerStatementMainApi.importShareTemplate()
})
//点击重新比对方法
const tapRematch = async (id: number) => {
  try {
    // 确认
    await message.confirm(t('ts.是否重新对比'))
    await CustomerStatementMainApi.recontrast(id)
    await message.success(t('ts.重新对比成功'))
    // 发起导出
    //exportLoading.value = true
  } catch {
  } finally {
    // 刷新列表
    await getList()
  }
}

//点击确认对比方法
const tapConfirmationContrast = async (id: number) => {
  try {
    await message.confirm(t('ts.是否确认对比结果'))
    await CustomerStatementMainApi.confirmationContrast(id)
    await message.success(t('ts.确认成功'))
    // 发起导出
    //exportLoading.value = true
  } catch {
  } finally {
    // 刷新列表
    await getList()
  }
}

//点击退回方法
const tapSendBack = async (id: number) => {
  try {
    await message.confirm(t('ts.是否退回所选中数据？'))
    await CustomerStatementMainApi.sendBack(id)
    await message.success(t('ts.退回成功'))
    // 发起导出
    //exportLoading.value = true
  } catch {
  } finally {
    // 刷新列表
    await getList()
  }
}

//点击作废方法
const tapCancel = async (id: number) => {
  try {
    await message.confirm(t('ts.是否作废所选中数据？'))
    await CustomerStatementMainApi.nodeAbrogate(id)
    await message.success(t('ts.作废成功'))
    // 发起导出
    //exportLoading.value = true
  } catch {
  } finally {
    // 刷新列表
    await getList()
  }
}
// 确认分摊金额
const handleConfirmShareMoney = async (id: number) => {
  try {
    await message.confirm(t('ts.是否确认分摊金额'))
    await CustomerStatementMainApi.confirmationShare(id)
    // chooseRow.value = 5
    let res = await CustomerStatementMainApi.getCustomerStatementMainPage({
      id:chooseRow.value.id,
      pageSize:20,
      pageNo:1
    })
    if(res&&res.list&&res.list.length>0){
      chooseRow.value = res.list[0]
    }
    await message.success(t('ts.确认成功'))
  } finally {
    // 刷新列表
    await getList()
  }
}
// 确认不分摊金额
const handleConfirmationNoShare = async (id: number) => {
  try {
    await message.confirm(t('ts.是否确认不分摊'))
    await CustomerStatementMainApi.confirmationNoShare(id)
    // chooseRow.value = 5
    let res = await CustomerStatementMainApi.getCustomerStatementMainPage({
      id:chooseRow.value.id,
      pageSize:20,
      pageNo:1
    })
    if(res&&res.list&&res.list.length>0){
      chooseRow.value = res.list[0]
    }
    await message.success(t('ts.确认不分摊成功'))
  } finally {
    // 刷新列表
    await getList()
  }
}
// 根据状态返回该按钮是否显示
const isShowMainButton = (row, val) => {
  if (val.indexOf(row.status) > -1) {
    return false
  } else {
    return true
  }
}
// 根据状态返回该按钮是否显示
const isShowMainButton1 = (row, val) => {
  if (val.indexOf(row.isNoShare) > -1) {
    return false
  } else {
    return true
  }
}
const tabCurrent = ref({})
const changeTabs = async (item) => {
  tabCurrent.value = item
  if (item.prop == 'Detail') {
    // 点击明细按钮
    tabsExtend.value = true
    // 当前品番作为条件
    tableObjectExtend.value = [
      {
        key: 'masterId',
        value: chooseRow.value.id
      }
    ]
    apiPage.value = CustomerStatementDetailApi.getCustomerStatementDetailPage
    DetailAllSchemas.value = CustomerStatementDetail.allSchemas
    otherHeadButttonData.value = [
      {
        label: t(`ts.导出`).replace('ts.', ''),
        name: 'export',
        hide: false,
        type: 'success',
        icon: 'ep:download',
        color: '',
        hasPermi: 'wms:customer-statement-main:export'
      }
    ]
  } else if (item.prop == 'Reconciliation') {
    // 点击对账差异按钮
    tabsExtend.value = true
    // 当前品番作为条件
    tableObjectExtend.value = [
      {
        key: 'masterId',
        value: chooseRow.value.id
      }
    ]
    DetailAllSchemas.value = CustomerStatementReconciliation.allSchemas
    apiPage.value = CustomerStatementDetailApi.getCustomerStatementReconciliationPage
    otherHeadButttonData.value = [
      {
        label: t(`ts.导出`).replace('ts.', ''),
        name: 'export',
        hide: false,
        type: 'success',
        icon: 'ep:download',
        color: '',
        hasPermi: 'wms:customer-statement-main:export'
      },
      {
        label: t('ts.重新对比'),
        name: 'againContrast',
        hide: isShowMainButton(chooseRow.value, ['2']),
        type: 'primary',
        color: '',
        float: 'left',
        hasPermi: 'wms:customer-statement-main:recontrast'
      },
      {
        label: t('ts.确认对比结果'),
        name: 'confirmResults',
        hide: isShowMainButton(chooseRow.value, ['2']),
        type: 'primary',
        color: '',
        float: 'left',
        disabled: chooseRow.value.isCompare  == 0 ? true : false,
        hasPermi: 'wms:customer-statement-main:confirmationContrast'
      }
    ]
  } else if (item.prop == 'ShareReconciliation') {
    // 点击模具分摊对账单按钮
    tabsExtend.value = true
    // 当前品番作为条件
    tableObjectExtend.value = [
      {
        key: 'masterId',
        value: chooseRow.value.id
      },
      {
        key: 'status',
        value: 0
      }
    ]
    apiPage.value = CustomerStatementDetailApi.getCustomerToolApportStatementPage
    DetailAllSchemas.value = CustomerStatementShareReconciliation.allSchemas
console.log(555,DetailAllSchemas.value)
    otherHeadButttonData.value = [
      {
        label: t(`ts.导出`).replace('ts.', ''),
        name: 'export',
        hide: false,
        type: 'success',
        icon: 'ep:download',
        color: '',
        hasPermi: 'wms:customer-statement-main:export'
      },
      {
        label: t('ts.确认分摊金额'),
        name: 'confirmShareMoney',
        hide: isShowMainButton(chooseRow.value, ['4']),
        type: 'primary',
        color: '',
        float: 'left',
        disabled: chooseRow.value.isShare  == 0 ? true : false,
        hasPermi: 'wms:customer-statement-main:confirmationShare'
      },
      {
        label: t('ts.确认不分摊'),
        name: 'confirmationNoShare',
        hide: isShowMainButton1(chooseRow.value, ['1']),
        type: 'primary',
        color: '',
        float: 'left',
        disabled: chooseRow.value.isNoShare  == 0 ? true : false,
        hasPermi: 'wms:customer-statement-main:confirmationShare'
      }
    ]
  } else {
    tableObjectExtend.value = []
    tabsExtend.value = false
    apiPage.value = ''
    otherHeadButttonData.value = []
  }
}
// 点击子表按钮事件
const detailButtonBaseClick = async (val, item, detailTableObject) => {
  console.log(val, item, detailTableObject)
  if (val == 'export') {
    // 子表导出明细
    if (tabCurrent.value.prop == 'Detail') {
      handleExportDetail(detailTableObject)
    } else if (tabCurrent.value.prop == 'Reconciliation') {
      // 子表导出对账差异
      handleExportReconciliation(detailTableObject)
    } else if (tabCurrent.value.prop == 'ShareReconciliation') {
      // 子表导出模具分摊对账单
      handleExportShareReconciliation(detailTableObject)
    }
  } else if (val == 'againContrast') {
    // 重新对比
    try {
      await tapRematch(chooseRow.value.id)
      detailRef.value.submitUpdateList()
    } catch {}
  } else if (val == 'confirmResults') {
    // 确认对比结果
    try {
      await tapConfirmationContrast(chooseRow.value.id)
      detailRef.value.submitUpdateList()
      otherHeadButttonData.value = [
        {
          label: t(`ts.导出`).replace('ts.', ''),
          name: 'export',
          hide: false,
          type: 'success',
          icon: 'ep:download',
          color: '',
          hasPermi: 'wms:customer-statement-main:export'
        }
      ]
    } catch {}
  } else if (val == 'confirmShareMoney') {
    // 确认分摊金额
    try {
      await handleConfirmShareMoney(chooseRow.value.id)
      detailRef.value.submitUpdateList()
       otherHeadButttonData.value = [
        {
          label: t(`ts.导出`).replace('ts.', ''),
          name: 'export',
          hide: false,
          type: 'success',
          icon: 'ep:download',
          color: '',
          hasPermi: 'wms:customer-statement-main:export'
        }
      ]
    } catch {}
  }else if (val == 'confirmationNoShare') {
    // 确认分摊金额
    try {
      await handleConfirmationNoShare(chooseRow.value.id)
      detailRef.value.submitUpdateList()
       otherHeadButttonData.value = [
        {
          label: t(`ts.导出`).replace('ts.', ''),
          name: 'export',
          hide: false,
          type: 'success',
          icon: 'ep:download',
          color: '',
          hasPermi: 'wms:customer-statement-main:export'
        }
      ]
    } catch {}
  }
}
// 子表导出明细
const handleExportDetail = async (detailTableObject) => {
  try {
    // 导出的二次确认
    await message.exportConfirm()
    // 发起导出
    exportLoading.value = true
    const data = await CustomerStatementDetailApi.exportCustomerStatementDetail(
      detailTableObject.params
    )
    download.excel(data, `客户对账单明细子【${formatDate(new Date())}】.xlsx`)
  } catch {
  } finally {
    exportLoading.value = false
  }
}

// 模具分摊对账单导出
const handleExportShareReconciliation = async (detailTableObject) => {
  try {
    // 导出的二次确认
    await message.exportConfirm()
    // 发起导出
    exportLoading.value = true
    const data = await CustomerStatementDetailApi.exportCustomerStatementShareReconciliatioDetail(
      detailTableObject.params
    )
    download.excel(data, `模具分摊对账单子${formatDate(new Date())}】.xlsx`)
  } catch {
  } finally {
    exportLoading.value = false
  }
}
// 子表导出对账差异
const handleExportReconciliation = async (detailTableObject) => {
  try {
    // 导出的二次确认
    await message.exportConfirm()
    // 发起导出
    exportLoading.value = true
    const data = await CustomerStatementDetailApi.exportCustomerStatementCompareDetail(
      detailTableObject.params
    )
    download.excel(data, `对账差异【${formatDate(new Date())}】.xlsx`)
  } catch {
  } finally {
    exportLoading.value = false
  }
}
// 模具分摊对账单修改进屋金额
const openDetailForm = (row) => {
  detailRef.value.openForm('update', row)
}
// 调整金额提交
const handleDetailSubmitForm = async (formType, data) => {
  await CustomerStatementDetailApi.updateAdjustmentAmount(data.id,data.masterId,data.adjustmentAmount)
  message.success(t('common.updateSuccess'))
  await detailRef.value.submitUpdateList()
  const amount = ref(0)
  detailRef.value.tableObjectRef.tableList.forEach(item => {
    amount.value  = amount.value + item.adjustmentAmount
  })
  console.log(22,amount.value)
  // 确认分摊金额
  if (amount.value != 0) {
    otherHeadButttonData.value = [
      {
        label: t(`ts.导出`).replace('ts.', ''),
        name: 'export',
        hide: false,
        type: 'success',
        icon: 'ep:download',
        color: '',
        hasPermi: 'wms:customer-statement-main:export'
      },
      {
        label: t('ts.确认分摊金额'),
        name: 'confirmShareMoney',
        hide: isShowMainButton(chooseRow.value, ['4']),
        type: 'primary',
        color: '',
        disabled:true,
        float: 'left',
        hasPermi: 'wms:customer-statement-main:confirmationShare'
      }, {
        label: t('ts.确认不分摊'),
        name: 'confirmationNoShare',
        hide: isShowMainButton1(chooseRow.value, ['1']),
        type: 'primary',
        color: '',
        float: 'left',
        disabled:true,
        hasPermi: 'wms:customer-statement-main:confirmationShare'
      }
    ]
  } else {
    otherHeadButttonData.value = [
      {
        label: t(`ts.导出`).replace('ts.', ''),
        name: 'export',
        hide: false,
        type: 'success',
        icon: 'ep:download',
        color: '',
        hasPermi: 'wms:customer-statement-main:export'
      },
      {
        label: t('ts.确认分摊金额'),
        name: 'confirmShareMoney',
        hide: isShowMainButton(chooseRow.value, ['4']),
        type: 'primary',
        color: '',
        disabled:false,
        float: 'left',
        hasPermi: 'wms:customer-statement-main:confirmationShare'
      } ,{
        label: t('ts.确认不分摊'),
        name: 'confirmationNoShare',
        hide: isShowMainButton1(chooseRow.value, ['1']),
        type: 'primary',
        color: '',
        float: 'left',
        disabled: false,
        hasPermi: 'wms:customer-statement-main:confirmationShare'
      }
    ]
  }
  getList()
}
</script>
