结算逻辑完善
This commit is contained in:
parent
c665c32553
commit
421445f924
|
|
@ -31,4 +31,11 @@ export const setAddLeaseRepairApi = (data: any) => {
|
|||
*/
|
||||
export const getOverhaulApi = (orderId: any) => {
|
||||
return get(`/material-mall/lease-repair/getById`, { orderId })
|
||||
}
|
||||
/**
|
||||
* @param data 结算关联改价 data 参数
|
||||
* @returns
|
||||
*/
|
||||
export const setChangePriceApi = (data: any) => {
|
||||
return post(`/material-mall/lease-repair/changePrice`, data)
|
||||
}
|
||||
|
|
@ -106,6 +106,11 @@ div
|
|||
<el-table-column align="center" prop="phoneNumber" label="联系电话" />
|
||||
<el-table-column align="center" prop="orderTime" label="下单时间" />
|
||||
<el-table-column align="center" prop="orderStatusName" label="订单状态" />
|
||||
<el-table-column align="center" prop="orderStatusName" label="是否改价 ">
|
||||
<template #default="{ row }">
|
||||
{{ row.isChangePrice == 0 ? '否' : '是' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="rentPrice" label="租赁金额" />
|
||||
<el-table-column align="center" prop="totalCost" label="总金额" />
|
||||
<el-table-column align="center" label="操作" :width="220">
|
||||
|
|
@ -123,9 +128,9 @@ div
|
|||
size="small"
|
||||
class="primary-lease"
|
||||
type="primary"
|
||||
@click="onRepublish(row.orderStatus, row.orderId)"
|
||||
@click="onRepublish(row.orderStatus, row.orderId, row.isChangePrice)"
|
||||
>
|
||||
{{ row.orderStatus == 6 ? '费用详情' : '费用结算' }}
|
||||
{{ row.orderStatus == 6 || row.isChangePrice == 1 ? '费用详情' : '费用结算' }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
|
@ -614,7 +619,42 @@ div
|
|||
{{ `${row.rentBeginTime}至${row.rentEndTime} ` }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="costs" align="center" label="租赁费用(元)" width="160" />
|
||||
<el-table-column prop="costs" align="center" label="租赁费用(元)" width="160">
|
||||
<template #default="{ row }">
|
||||
<template v-if="row.isCheck == 0">
|
||||
{{ row.costs }}
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-input
|
||||
v-model="row.costs"
|
||||
style="width: 100%"
|
||||
placeholder="请输入改价费用"
|
||||
clearable
|
||||
/>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="changeCost" align="center" label="改价后费用(元)" />
|
||||
<el-table-column
|
||||
align="center"
|
||||
label="操作"
|
||||
width="160"
|
||||
v-if="dialogTitle === '费用结算'"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="
|
||||
() => {
|
||||
row.isCheck == 0 ? (row.isCheck = 1) : (row.isCheck = 0)
|
||||
}
|
||||
"
|
||||
>
|
||||
{{ row.isCheck == 0 ? '改价' : '取消改价' }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<TitleTip :titleText="`维修费用明细`" />
|
||||
|
|
@ -630,7 +670,22 @@ div
|
|||
<el-table-column prop="deviceName" align="center" label="装备名称" />
|
||||
<el-table-column prop="typeName" align="center" label="型号" />
|
||||
<el-table-column prop="repairNum" align="center" label="维修数量" />
|
||||
<el-table-column prop="repairPrice" align="center" label="维修费用(元)" />
|
||||
<el-table-column align="center" label="维修费用(元)">
|
||||
<template #default="{ row }">
|
||||
<template v-if="row.isCheck == 0">
|
||||
{{ row.repairPrice }}
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-input
|
||||
v-model="row.repairPrice"
|
||||
style="width: 100%"
|
||||
placeholder="请输入改价费用"
|
||||
clearable
|
||||
/>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="repairChangePrice" align="center" label="改价后费用(元)" />
|
||||
<el-table-column align="center" label="附件" width="160">
|
||||
<template #default="{ row }">
|
||||
<el-button type="primary" size="small" @click="onViewFileImg(row, 0)"
|
||||
|
|
@ -638,6 +693,26 @@ div
|
|||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center"
|
||||
label="操作"
|
||||
width="160"
|
||||
v-if="dialogTitle === '费用结算'"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="
|
||||
() => {
|
||||
row.isCheck == 0 ? (row.isCheck = 1) : (row.isCheck = 0)
|
||||
}
|
||||
"
|
||||
>
|
||||
{{ row.isCheck == 0 ? '改价' : '取消改价' }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<TitleTip :titleText="`报废费用明细`" />
|
||||
<el-table
|
||||
|
|
@ -653,7 +728,22 @@ div
|
|||
<el-table-column prop="typeName" align="center" label="型号" />
|
||||
<el-table-column prop="scrapNum" align="center" label="报废数量" />
|
||||
<el-table-column prop="scrapReason" align="center" label="报废原因" />
|
||||
<el-table-column prop="scrapPrice" align="center" label="报废费用(元)" />
|
||||
<el-table-column prop="scrapPrice" align="center" label="报废费用(元)">
|
||||
<template #default="{ row }">
|
||||
<template v-if="row.isCheck == 0">
|
||||
{{ row.scrapPrice }}
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-input
|
||||
v-model="row.scrapPrice"
|
||||
style="width: 100%"
|
||||
placeholder="请输入改价费用"
|
||||
clearable
|
||||
/>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="scrapChangePrice" align="center" label="改价后费用(元)" />
|
||||
<el-table-column align="center" label="附件" width="160">
|
||||
<template #default="{ row }">
|
||||
<el-button type="primary" size="small" @click="onViewFileImg(row, 1)"
|
||||
|
|
@ -661,6 +751,26 @@ div
|
|||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center"
|
||||
label="操作"
|
||||
width="160"
|
||||
v-if="dialogTitle === '费用结算'"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="
|
||||
() => {
|
||||
row.isCheck == 0 ? (row.isCheck = 1) : (row.isCheck = 0)
|
||||
}
|
||||
"
|
||||
>
|
||||
{{ row.isCheck == 0 ? '改价' : '取消改价' }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<TitleTip :titleText="`丢失费用明细`" />
|
||||
<el-table
|
||||
|
|
@ -675,7 +785,22 @@ div
|
|||
<el-table-column prop="deviceName" align="center" label="装备名称" />
|
||||
<el-table-column prop="typeName" align="center" label="型号" />
|
||||
<el-table-column prop="lossNum" align="center" label="丢失数量" />
|
||||
<el-table-column prop="lossPrice" align="center" label="丢失费用(元)" />
|
||||
<el-table-column prop="lossPrice" align="center" label="丢失费用(元)">
|
||||
<template #default="{ row }">
|
||||
<template v-if="row.isCheck == 0">
|
||||
{{ row.lossPrice }}
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-input
|
||||
v-model="row.lossPrice"
|
||||
style="width: 100%"
|
||||
placeholder="请输入改价费用"
|
||||
clearable
|
||||
/>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="lossChangePrice" align="center" label="改价后费用(元)" />
|
||||
<el-table-column align="center" label="附件" width="160">
|
||||
<template #default="{ row }">
|
||||
<el-button type="primary" size="small" @click="onViewFileImg(row, 2)"
|
||||
|
|
@ -683,7 +808,34 @@ div
|
|||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
align="center"
|
||||
label="操作"
|
||||
width="160"
|
||||
v-if="dialogTitle === '费用结算'"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="
|
||||
() => {
|
||||
row.isCheck == 0 ? (row.isCheck = 1) : (row.isCheck = 0)
|
||||
}
|
||||
"
|
||||
>
|
||||
{{ row.isCheck == 0 ? '改价' : '取消改价' }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<div style="text-align: right; margin-top: 20px" v-if="dialogTitle === '费用结算'">
|
||||
<el-button type="primary" class="primary-lease" @click="onCancel">取消</el-button>
|
||||
<el-button type="primary" class="primary-lease" @click="onSubmitChangePrice()"
|
||||
>确认改价</el-button
|
||||
>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<el-dialog v-model="innerVisible" width="500" title="附件详情" append-to-body>
|
||||
|
|
@ -724,12 +876,12 @@ import PagingComponent from 'components/PagingComponent/index.vue'
|
|||
import TitleTip from 'components/TitleTip/index.vue'
|
||||
import {
|
||||
getRentTerminationListApi,
|
||||
getOrderDetailsByIdApi,
|
||||
setAddLeaseRepairApi,
|
||||
getOverhaulApi,
|
||||
setChangePriceApi,
|
||||
} from 'http/api/rent-termination/index'
|
||||
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { Plus } from '@element-plus/icons-vue'
|
||||
const uploadUrl = import.meta.env.VITE_API_URL + '/file/upload'
|
||||
const addOrEditDialogVisible = ref(false)
|
||||
|
|
@ -754,6 +906,7 @@ const viewFileInfoList = ref<any>([])
|
|||
const fileListAll = ref<any>([])
|
||||
const overhaulDetails = ref<any>({})
|
||||
const innerVisible = ref(false)
|
||||
const currentOrderId = ref<any>('')
|
||||
const props2 = {
|
||||
multiple: true,
|
||||
checkStrictly: true,
|
||||
|
|
@ -1025,9 +1178,12 @@ const onReset = () => {
|
|||
}
|
||||
|
||||
// 重新发布
|
||||
const onRepublish = async (type: any, orderId: any) => {
|
||||
type == 6 ? (dialogTitle.value = '费用详情') : (dialogTitle.value = '费用结算')
|
||||
const onRepublish = async (type: any, orderId: any, isChangePrice: any) => {
|
||||
type == 6 || isChangePrice == 1
|
||||
? (dialogTitle.value = '费用详情')
|
||||
: (dialogTitle.value = '费用结算')
|
||||
const { data: res }: any = await getOverhaulApi(orderId)
|
||||
currentOrderId.value = orderId
|
||||
orderDetailDtoList.value = res.orderDetailDtoList
|
||||
repairRecordList.value = res.repairRecordList
|
||||
scrapRecordList.value = res.scrapRecordList
|
||||
|
|
@ -1165,6 +1321,66 @@ const onViewFileImg = (row: any, index: number) => {
|
|||
innerVisible.value = true
|
||||
}
|
||||
|
||||
const onSubmitChangePrice = () => {
|
||||
ElMessageBox.confirm(`改价只能申请一次,是否确认提交本次改价申请?`, '温馨提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'success',
|
||||
})
|
||||
.then(async () => {
|
||||
// 组装参数
|
||||
|
||||
const rentPriceList = orderDetailDtoList.value?.map((e: any) => {
|
||||
return {
|
||||
orderId: currentOrderId.value,
|
||||
maId: e.maId,
|
||||
changeCost: e.costs,
|
||||
}
|
||||
})
|
||||
const repairPriceList = repairRecordList.value?.map((e: any) => {
|
||||
return {
|
||||
orderId: currentOrderId.value,
|
||||
maId: e.maId,
|
||||
repairChangePrice: e.repairPrice,
|
||||
}
|
||||
})
|
||||
const scrapPriceList = scrapRecordList.value?.map((e: any) => {
|
||||
return {
|
||||
orderId: currentOrderId.value,
|
||||
maId: e.maId,
|
||||
scrapChangePrice: e.scrapPrice,
|
||||
}
|
||||
})
|
||||
const lossPriceList = lossRecordList.value?.map((e: any) => {
|
||||
return {
|
||||
orderId: currentOrderId.value,
|
||||
maId: e.maId,
|
||||
lossChangePrice: e.lossPrice,
|
||||
}
|
||||
})
|
||||
const changePriceParams = {
|
||||
rentPriceList,
|
||||
repairPriceList,
|
||||
scrapPriceList,
|
||||
lossPriceList,
|
||||
}
|
||||
|
||||
console.log(changePriceParams, 'changePriceParams参数')
|
||||
|
||||
const res: any = await setChangePriceApi(changePriceParams)
|
||||
if (res.code === 200) {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: '改价成功',
|
||||
})
|
||||
|
||||
addOrEditDialogVisible.value = false
|
||||
getLeaseListData()
|
||||
}
|
||||
})
|
||||
.catch(async () => {})
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
getLeaseListData()
|
||||
})
|
||||
|
|
|
|||
Loading…
Reference in New Issue