|
|
|
<template>
|
|
|
|
<Dialog title="成交详情" v-model="show" width="800px">
|
|
|
|
<el-tabs v-model="tabName">
|
|
|
|
<el-tab-pane label="线索信息" name="clueInfo">
|
|
|
|
<Descriptions :data="clueInfo" :schema="clueSchema" :columns="2" labelWidth="130px" />
|
|
|
|
</el-tab-pane>
|
|
|
|
<el-tab-pane label="成交信息" name="orderInfo">
|
|
|
|
<Descriptions :data="orderInfo" :schema="orderSchema" :columns="2" labelWidth="130px" />
|
|
|
|
<el-divider direction="horizontal" content-position="left">其他费用</el-divider>
|
|
|
|
<el-table :data="orderInfo.extraPay" border stripe>
|
|
|
|
<el-table-column type="index" width="50" />
|
|
|
|
<el-table-column prop="extraPayType" label="费用项" />
|
|
|
|
<el-table-column prop="extraPayMoney" label="金额" />
|
|
|
|
<el-table-column prop="remark" label="备注" />
|
|
|
|
</el-table>
|
|
|
|
</el-tab-pane>
|
|
|
|
<el-tab-pane label="回款记录" name="returnRecord">
|
|
|
|
<el-table :data="returnRecordList" border stripe>
|
|
|
|
<el-table-column type="index" width="50" />
|
|
|
|
<el-table-column prop="money" label="回款金额" />
|
|
|
|
<el-table-column prop="applyTime" label="申请日期" />
|
|
|
|
<el-table-column prop="isPayoff" label="是否结清" />
|
|
|
|
<el-table-column prop="stateName" label="审核状态" />
|
|
|
|
</el-table>
|
|
|
|
</el-tab-pane>
|
|
|
|
<el-tab-pane label="售后记录" name="afterSale">
|
|
|
|
<el-table :data="aftersaleList" border stripe>
|
|
|
|
<el-table-column type="index" width="50" />
|
|
|
|
<el-table-column prop="reason" label="售后原因" />
|
|
|
|
<el-table-column prop="refundAmount" label="退款金额" />
|
|
|
|
<el-table-column prop="isReturns" label="是否退货" />
|
|
|
|
<el-table-column prop="applyTime" label="申请日期" width="180px" />
|
|
|
|
<el-table-column prop="stateName" label="审核状态" />
|
|
|
|
</el-table>
|
|
|
|
</el-tab-pane>
|
|
|
|
</el-tabs>
|
|
|
|
<div class="mb-15px"></div>
|
|
|
|
</Dialog>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script setup name="DialogOrder">
|
|
|
|
import * as ClueApi from '@/api/clue'
|
|
|
|
import * as OrderApi from '@/api/clue/sign'
|
|
|
|
import { getSimpleFieldList as getClueFieldList } from '@/api/clue/clueField'
|
|
|
|
import { getSimpleFieldList as getOrderFieldList } from '@/api/clue/orderField'
|
|
|
|
import { getPaymentPage } from '@/api/clue/payment'
|
|
|
|
import { getAfterSalePage } from '@/api/clue/afterSale'
|
|
|
|
|
|
|
|
import { formatDate } from '@/utils/formatTime'
|
|
|
|
|
|
|
|
const tabName = ref('clueInfo')
|
|
|
|
const show = ref(false)
|
|
|
|
const clueInfo = ref({})
|
|
|
|
const orderInfo = ref({})
|
|
|
|
const returnRecordList = ref([])
|
|
|
|
const aftersaleList = ref([])
|
|
|
|
|
|
|
|
function open(clueId, orderId) {
|
|
|
|
try {
|
|
|
|
show.value = true
|
|
|
|
tabName.value = 'clueInfo'
|
|
|
|
getFields()
|
|
|
|
ClueApi.getClue(clueId).then((data) => {
|
|
|
|
clueInfo.value = { ...data, ...data.diyParams }
|
|
|
|
})
|
|
|
|
OrderApi.getSign(orderId).then((data) => {
|
|
|
|
orderInfo.value = { ...data, ...data.diyParams }
|
|
|
|
orderInfo.value.dealDate = formatDate(orderInfo.value.dealDate, 'YYYY-MM-DD HH:mm')
|
|
|
|
})
|
|
|
|
getPaymentPage({ signId: orderId, pageNo: 1, pageSize: 100 }).then((data) => {
|
|
|
|
returnRecordList.value = data.list
|
|
|
|
})
|
|
|
|
getAfterSalePage({ signId: orderId, pageNo: 1, pageSize: 100 }).then((data) => {
|
|
|
|
aftersaleList.value = data.list
|
|
|
|
})
|
|
|
|
} catch (error) {
|
|
|
|
console.log(error)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
const clueSchema = ref([])
|
|
|
|
const orderSchema = ref([])
|
|
|
|
function getFields() {
|
|
|
|
getClueFieldList().then((data) => {
|
|
|
|
const arr = useCrudSchemas(data).allSchemas.detailSchema
|
|
|
|
clueSchema.value = [
|
|
|
|
...arr,
|
|
|
|
{
|
|
|
|
field: 'requirement',
|
|
|
|
label: '诉求',
|
|
|
|
span: 2
|
|
|
|
},
|
|
|
|
{
|
|
|
|
field: 'remark',
|
|
|
|
label: '备注',
|
|
|
|
span: 2,
|
|
|
|
isEditor: true
|
|
|
|
}
|
|
|
|
]
|
|
|
|
})
|
|
|
|
|
|
|
|
getOrderFieldList().then((data) => {
|
|
|
|
const arr = useCrudSchemas(data).allSchemas.detailSchema
|
|
|
|
orderSchema.value = [
|
|
|
|
...arr,
|
|
|
|
{
|
|
|
|
field: 'remark',
|
|
|
|
label: '备注',
|
|
|
|
span: 2,
|
|
|
|
isEditor: true
|
|
|
|
}
|
|
|
|
]
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
defineExpose({
|
|
|
|
open
|
|
|
|
})
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss" scoped></style>
|