This commit is contained in:
qsh
2024-07-31 18:35:36 +08:00
parent 1e40357e51
commit 48689642d8
9 changed files with 287 additions and 129 deletions

View File

@@ -25,98 +25,18 @@
import { getPaymentDetail } from '@/api/clue/payment'
import { getFollowUserList } from '@/api/clue'
import { useAppStore } from '@/store/modules/app'
import { schoolApplySchema, mallApplySchema, auditSchema, cancelSchema } from './feedbackSchema.js'
import { dateFormatter } from '@/utils/formatTime'
const appStore = useAppStore()
const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') // 弹窗的标题
const applySchema = [
{
field: 'name',
label: '线索名称',
span: 1
},
{
field: 'phone',
label: '联系方式',
span: 1
},
{
field: 'signUserName',
label: '登记人',
span: 1
},
{
field: 'dealDate',
label: '成交日期',
dateFormat: 'YYYY-MM-DD',
span: 1
},
{
field: 'money',
label: '回款金额',
span: 1
},
{
field: 'isPayoff',
label: '是否结清',
span: 1
},
{
field: 'applyUserName',
label: '申请人',
span: 1
},
{
field: 'applyTime',
label: '申请时间',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
span: 1
},
{
field: 'remark',
label: '备注',
span: 2,
isEditor: true
}
]
const auditSchema = [
{
field: 'stateName',
label: '审核状态',
span: 1
},
{
field: 'checkUser',
label: '审核人',
span: 1
},
{
field: 'checkTime',
label: '审核时间',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
span: 1
},
{
field: 'checkRemark',
label: '备注',
span: 3,
isEditor: true
}
]
const cancelSchema = [
{
field: 'stateName',
label: '审核状态',
span: 1
},
{
field: 'revokeTime',
label: '撤销时间',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
span: 1
}
]
const applySchema = computed(() => {
return appStore.getAppInfo?.instanceType == 1 ? schoolApplySchema : mallApplySchema
})
const orderInfo = ref({})
/** 打开弹窗 */

View File

@@ -94,9 +94,58 @@
>
<el-table-column type="selection" width="60" :selectable="(row) => row.state == 1" />
<el-table-column prop="signId" label="成交单号" min-width="180px" />
<el-table-column prop="name" label="线索名称" min-width="150px" />
<el-table-column prop="phone" label="联系方式" min-width="150px" />
<el-table-column prop="money" label="回款金额" min-width="150px" />
<el-table-column prop="name" label="线索名称" width="150px" />
<el-table-column prop="phone" label="联系方式" width="120px" />companyProfit
<el-table-column prop="money" label="回款金额" min-width="120px">
<template #default="{ row }">
<el-input-number
v-if="row.edit"
v-model="row.money"
size="small"
:min="0"
:controls="false"
style="width: 100%"
/>
<div v-else>{{ row.money }}</div>
</template>
</el-table-column>
<el-table-column
v-if="appStore.getAppInfo?.instanceType == 2"
prop="companyProfit"
label="公司利润"
min-width="120px"
>
<template #default="{ row }">
<el-input-number
v-if="row.edit"
v-model="row.companyProfit"
size="small"
:min="0"
:controls="false"
style="width: 100%"
/>
<div v-else>{{ row.companyProfit }}</div>
</template>
</el-table-column>
<el-table-column
v-if="appStore.getAppInfo?.instanceType == 2"
prop="personProfit"
label="员工利润"
min-width="120px"
>
<template #default="{ row }">
<el-input-number
v-if="row.edit"
v-model="row.personProfit"
size="small"
:min="0"
:controls="false"
style="width: 100%"
/>
<div v-else>{{ row.personProfit }}</div>
</template>
</el-table-column>
<el-table-column prop="signPrice" label="成交价" min-width="90" />
<el-table-column prop="isPayoff" label="是否结清" min-width="90" />
<el-table-column
v-if="appStore.getAppInfo?.instanceType == 1"
@@ -125,7 +174,7 @@
:formatter="dateFormatter"
/>
<el-table-column prop="stateName" label="审核状态" fixed="right" min-width="90" />
<el-table-column label="操作" width="150px" fixed="right">
<el-table-column label="操作" width="220px" fixed="right">
<template #default="{ row }">
<el-button type="primary" style="padding: 0" text @click="handleDetail(row)">
详情
@@ -140,6 +189,15 @@
>
撤销
</el-button>
<el-button
type="primary"
style="padding: 0"
text
v-if="row.state == 1"
@click="handleUpdate(row)"
>
<span>{{ row.edit ? '保存' : '修改金额' }}</span>
</el-button>
<el-button
type="primary"
style="padding: 0"
@@ -226,7 +284,7 @@ function handleReset() {
}
}
const totalMoney = ref(0)
const totalInfo = ref({})
const loading = ref(false)
async function getList() {
loading.value = true
@@ -234,7 +292,7 @@ async function getList() {
const data = await FeebackApi.getPaymentPage(removeNullField(searchForm.value))
tableList.value = data.list
total.value = data.total
totalMoney.value = data.totalAmount
totalInfo.value = data.totalData
} finally {
loading.value = false
}
@@ -291,7 +349,13 @@ function getSummaries(param) {
if (index === 0) {
sums[index] = '合计'
} else if (column.property == 'money') {
sums[index] = totalMoney.value
sums[index] = totalInfo.value.totalMoney
} else if (column.property == 'personProfit') {
sums[index] = totalInfo.value.totalPersonProfit
} else if (column.property == 'companyProfit') {
sums[index] = totalInfo.value.totalPersonProfit
} else if (column.property == 'signPrice') {
sums[index] = totalInfo.value.totalSignPrice
} else {
sums[index] = ''
}
@@ -300,6 +364,23 @@ function getSummaries(param) {
return sums
}
async function handleUpdate(row) {
if (row.edit) {
// 删除的二次确认
await message.confirm('是否确认修改回款金额?')
// 保存
FeebackApi.updateApplyPayment({ id: row.id, money: row.money })
.then(() => {
message.success('修改成功')
})
.finally(() => {
row.edit = false
})
} else {
row.edit = true
}
}
onMounted(() => {
getOptions()
handleSearch()

View File

@@ -239,16 +239,14 @@ const loading = ref(false)
const tableList = ref([])
const total = ref(0)
const totalNum = ref(0)
const totalAmount = ref(0)
const totalInfo = ref({})
async function getList() {
loading.value = true
try {
const data = await SettleApi.getSchoolSettlePage(removeNullField(searchForm.value))
tableList.value = data.list
total.value = data.total
totalNum.value = data.totalNum
totalAmount.value = data.totalAmount
totalInfo.value = data.totalData
} finally {
loading.value = false
}
@@ -261,9 +259,9 @@ function getSummaries(param) {
if (index === 0) {
sums[index] = '合计'
} else if (column.property == 'settlementNum') {
sums[index] = totalNum.value
sums[index] = totalInfo.value.totalNum
} else if (column.property == 'settlementMoney') {
sums[index] = totalAmount.value
sums[index] = totalInfo.value.totalAmount
} else {
sums[index] = ''
}

View File

@@ -0,0 +1,150 @@
export const schoolApplySchema = [
{
field: 'name',
label: '线索名称',
span: 1
},
{
field: 'phone',
label: '联系方式',
span: 1
},
{
field: 'signUserName',
label: '登记人',
span: 1
},
{
field: 'dealDate',
label: '成交日期',
dateFormat: 'YYYY-MM-DD',
span: 1
},
{
field: 'money',
label: '回款金额',
span: 1
},
{
field: 'signPrice',
label: '成交价',
span: 1
},
{
field: 'companyProfit',
label: '公司利润',
span: 1
},
{
field: 'personProfit',
label: '员工利润',
span: 1
},
{
field: 'applyUserName',
label: '申请人',
span: 1
},
{
field: 'applyTime',
label: '申请时间',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
span: 1
},
{
field: 'remark',
label: '备注',
span: 2,
isEditor: true
}
]
export const mallApplySchema = [
{
field: 'name',
label: '线索名称',
span: 1
},
{
field: 'phone',
label: '联系方式',
span: 1
},
{
field: 'signUserName',
label: '登记人',
span: 1
},
{
field: 'dealDate',
label: '成交日期',
dateFormat: 'YYYY-MM-DD',
span: 1
},
{
field: 'money',
label: '回款金额',
span: 1
},
{
field: 'signPrice',
label: '成交价',
span: 1
},
{
field: 'applyUserName',
label: '申请人',
span: 1
},
{
field: 'applyTime',
label: '申请时间',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
span: 1
},
{
field: 'remark',
label: '备注',
span: 2,
isEditor: true
}
]
export const auditSchema = [
{
field: 'stateName',
label: '审核状态',
span: 1
},
{
field: 'checkUser',
label: '审核人',
span: 1
},
{
field: 'checkTime',
label: '审核时间',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
span: 1
},
{
field: 'checkRemark',
label: '备注',
span: 3,
isEditor: true
}
]
export const cancelSchema = [
{
field: 'stateName',
label: '审核状态',
span: 1
},
{
field: 'revokeTime',
label: '撤销时间',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
span: 1
}
]