You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
852 lines
25 KiB
852 lines
25 KiB
<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 }">
|
|
<ButtonBase
|
|
: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: '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 == '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)
|
|
await message.success(t('ts.确认成功'))
|
|
} finally {
|
|
// 刷新列表
|
|
await getList()
|
|
}
|
|
}
|
|
// 根据状态返回该按钮是否显示
|
|
const isShowMainButton = (row, val) => {
|
|
if (val.indexOf(row.status) > -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'
|
|
}
|
|
]
|
|
} 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 {}
|
|
}
|
|
}
|
|
// 子表导出明细
|
|
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'))
|
|
detailRef.value.submitUpdateList()
|
|
const amount = ref(0)
|
|
detailRef.value.tableObjectRef.tableList.forEach(item => {
|
|
amount.value = amount.value + item.adjustmentAmount
|
|
})
|
|
// 确认分摊金额
|
|
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'
|
|
}
|
|
]
|
|
} 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'
|
|
}
|
|
]
|
|
}
|
|
}
|
|
</script>
|
|
|