crm 收款

pull/853/head
wersd 2025-06-07 16:49:18 +08:00
parent c9d68e6a1c
commit 584d6978ae
18 changed files with 127 additions and 106 deletions

View File

@ -4,7 +4,7 @@ NODE_ENV=production
VITE_DEV=true
# 请求路径
VITE_BASE_URL='http://192.168.6.136:48080'
VITE_BASE_URL='http://192.168.6.122:48080'
# 文件上传类型server - 后端上传, client - 前端直连上传仅支持S3服务
VITE_UPLOAD_TYPE=client

View File

@ -7,6 +7,7 @@
"scripts": {
"i": "pnpm install",
"dev": "vite --mode env.local",
"test": "vite --mode env.test",
"dev-server": "vite --mode dev",
"ts:check": "vue-tsc --noEmit",
"build:local": "node --max_old_space_size=4096 ./node_modules/vite/bin/vite.js build",

View File

@ -49,17 +49,6 @@
</el-link>
</template>
</el-table-column>
<el-table-column align="center" label="商机名称" prop="businessName" width="130">
<template #default="scope">
<el-link
:underline="false"
type="primary"
@click="openBusinessDetail(scope.row.businessId)"
>
{{ scope.row.businessName }}
</el-link>
</template>
</el-table-column>
<el-table-column
align="center"
label="合同金额(元)"
@ -103,14 +92,14 @@
<el-table-column align="center" label="备注" prop="remark" width="200" />
<el-table-column
align="center"
label="已款金额(元)"
label="已款金额(元)"
prop="totalReceivablePrice"
width="140"
:formatter="erpPriceTableColumnFormatter"
/>
<el-table-column
align="center"
label="未款金额(元)"
label="未款金额(元)"
prop="totalReceivablePrice"
width="140"
:formatter="erpPriceTableColumnFormatter"

View File

@ -1,7 +1,7 @@
<!-- 待审核-->
<!-- 待审核-->
<template>
<ContentWrap>
<div class="pb-5 text-xl"> 待审核</div>
<div class="pb-5 text-xl"> 待审核</div>
<!-- 搜索工作栏 -->
<el-form
class="-mb-15px"
@ -30,7 +30,7 @@
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column align="center" fixed="left" label="款编号" prop="no" width="180">
<el-table-column align="center" fixed="left" label="款编号" prop="no" width="180">
<template #default="scope">
<el-link :underline="false" type="primary" @click="openDetail(scope.row.id)">
{{ scope.row.no }}
@ -62,18 +62,18 @@
<el-table-column
:formatter="dateFormatter2"
align="center"
label="款日期"
label="款日期"
prop="returnTime"
width="150px"
/>
<el-table-column
align="center"
label="款金额(元)"
label="款金额(元)"
prop="price"
width="140"
:formatter="erpPriceTableColumnFormatter"
/>
<el-table-column align="center" label="款方式" prop="returnType" width="130px">
<el-table-column align="center" label="款方式" prop="returnType" width="130px">
<template #default="scope">
<dict-tag :type="DICT_TYPE.CRM_RECEIVABLE_RETURN_TYPE" :value="scope.row.returnType" />
</template>
@ -103,7 +103,7 @@
width="180px"
/>
<el-table-column align="center" label="创建人" prop="creatorName" width="120" />
<el-table-column align="center" fixed="right" label="款状态" prop="auditStatus" width="120">
<el-table-column align="center" fixed="right" label="款状态" prop="auditStatus" width="120">
<template #default="scope">
<dict-tag :type="DICT_TYPE.CRM_AUDIT_STATUS" :value="scope.row.auditStatus" />
</template>
@ -173,7 +173,7 @@ const handleProcessDetail = (row: ReceivableApi.ReceivableVO) => {
push({ name: 'BpmProcessInstanceDetail', query: { id: row.processInstanceId } })
}
/** 打开款详情 */
/** 打开款详情 */
const { push } = useRouter()
const openDetail = (id: number) => {
push({ name: 'CrmReceivableDetail', params: { id } })

View File

@ -1,7 +1,7 @@
<!-- 款提醒 -->
<!-- 款提醒 -->
<template>
<ContentWrap>
<div class="pb-5 text-xl">款提醒</div>
<div class="pb-5 text-xl">款提醒</div>
<!-- 搜索工作栏 -->
<el-form
ref="queryFormRef"
@ -51,7 +51,7 @@
</el-table-column>
<el-table-column
align="center"
label="计划款金额(元)"
label="计划款金额(元)"
prop="price"
width="160"
:formatter="erpPriceTableColumnFormatter"
@ -59,7 +59,7 @@
<el-table-column
:formatter="dateFormatter2"
align="center"
label="计划款日期"
label="计划款日期"
prop="returnTime"
width="180px"
/>
@ -71,7 +71,7 @@
width="180px"
:formatter="dateFormatter2"
/>
<el-table-column align="center" label="款方式" prop="returnType" width="130px">
<el-table-column align="center" label="款方式" prop="returnType" width="130px">
<template #default="scope">
<dict-tag :type="DICT_TYPE.CRM_RECEIVABLE_RETURN_TYPE" :value="scope.row.returnType" />
</template>
@ -80,7 +80,7 @@
<el-table-column label="负责人" prop="ownerUserName" width="120" />
<el-table-column
align="center"
label="实际款金额(元)"
label="实际款金额(元)"
prop="receivable.price"
width="160"
>
@ -93,14 +93,14 @@
</el-table-column>
<el-table-column
align="center"
label="实际款日期"
label="实际款日期"
prop="receivable.returnTime"
width="180px"
:formatter="dateFormatter2"
/>
<el-table-column
align="center"
label="实际款金额(元)"
label="实际款金额(元)"
prop="receivable.price"
width="160"
>
@ -135,7 +135,7 @@
@click="openReceivableForm(scope.row)"
:disabled="scope.row.receivableId"
>
创建
创建
</el-button>
</template>
</el-table-column>
@ -191,7 +191,7 @@ const handleQuery = () => {
getList()
}
/** 创建款操作 */
/** 创建款操作 */
const receivableFormRef = ref()
const openReceivableForm = (row: ReceivablePlanApi.ReceivablePlanVO) => {
receivableFormRef.value.open('create', undefined, row)

View File

@ -36,6 +36,26 @@
<dict-tag :type="DICT_TYPE.CRM_AUDIT_STATUS" :value="scope.row.auditStatus" />
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="200">
<template #default="scope">
<el-button
v-hasPermi="['crm:contract:update']"
link
type="primary"
@click="openForm('update', scope.row.id)"
>
编辑
</el-button>
<el-button
v-hasPermi="['crm:contract:delete']"
link
type="danger"
@click="handleDelete(scope.row.id)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
@ -107,8 +127,9 @@ const handleQuery = () => {
/** 添加 */
const formRef = ref()
const openForm = () => {
formRef.value.open('create')
//
const openForm = (type = 'create', id?: number) => {
formRef.value.open(type, id)
}
/** 打开合同详情 */
@ -117,6 +138,16 @@ const openDetail = (id: number) => {
push({ name: 'CrmContractDetail', params: { id } })
}
/** 删除 */
const handleDelete = async (id: number) => {
try {
await ElMessageBox.confirm('确定要删除该合同吗?', '提示', { type: 'warning' })
await ContractApi.deleteContract(id)
ElMessage.success('删除成功')
getList()
} catch {}
}
/** 监听打开的 bizId + bizType从而加载最新的列表 */
watch(
() => [props.bizId, props.bizType],

View File

@ -26,7 +26,7 @@
<el-descriptions-item label="下单时间">
{{ formatDate(contract.orderDate) }}
</el-descriptions-item>
<el-descriptions-item label="款金额(元)">
<el-descriptions-item label="款金额(元)">
{{ erpPriceInputFormatter(contract.totalReceivablePrice) }}
</el-descriptions-item>
<el-descriptions-item label="负责人">

View File

@ -19,7 +19,7 @@
<el-tab-pane label="产品">
<ContractProductList :contract="contract" />
</el-tab-pane>
<el-tab-pane label="款">
<el-tab-pane label="款">
<ReceivablePlanList
:contract-id="contract.id!"
:customer-id="contract.customerId"
@ -106,8 +106,8 @@ const getOperateLog = async (contractId: number) => {
logList.value = data.list
}
/** 从回款计划创建回款 */
const receivableListRef = ref<InstanceType<typeof ReceivableList>>() // Ref
/** 从付款计划创建付款 */
const receivableListRef = ref<InstanceType<typeof ReceivableList>>() // Ref
const createReceivable = (planData: any) => {
receivableListRef.value?.createReceivable(planData)
}

View File

@ -155,14 +155,14 @@
<el-table-column align="center" label="备注" prop="remark" width="200" />
<el-table-column
align="center"
label="已款金额(元)"
label="已款金额(元)"
prop="totalReceivablePrice"
width="140"
:formatter="erpPriceTableColumnFormatter"
/>
<el-table-column
align="center"
label="未款金额(元)"
label="未款金额(元)"
prop="totalReceivablePrice"
width="140"
:formatter="erpPriceTableColumnFormatter"

View File

@ -9,7 +9,7 @@
>
<el-row>
<el-col :span="12">
<el-form-item label="款编号" prop="no">
<el-form-item label="款编号" prop="no">
<el-input v-model="formData.no" disabled placeholder="保存时自动生成" />
</el-form-item>
</el-col>
@ -73,12 +73,12 @@
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="款期数" prop="planId">
<el-form-item label="款期数" prop="planId">
<el-select
v-model="formData.planId"
:disabled="formType !== 'create' || !formData.contractId"
class="!w-1/1"
placeholder="请选择款期数"
placeholder="请选择款期数"
@change="handleReceivablePlanChange"
>
<el-option
@ -92,8 +92,8 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="款方式" prop="returnType">
<el-select v-model="formData.returnType" class="w-1/1" placeholder="请选择款方式">
<el-form-item label="款方式" prop="returnType">
<el-select v-model="formData.returnType" class="w-1/1" placeholder="请选择款方式">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_RECEIVABLE_RETURN_TYPE)"
:key="dict.value"
@ -106,22 +106,22 @@
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="款金额" prop="price">
<el-form-item label="款金额" prop="price">
<el-input-number
v-model="formData.price"
:min="0.01"
:precision="2"
class="!w-100%"
controls-position="right"
placeholder="请输入款金额"
placeholder="请输入款金额"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="款日期" prop="returnTime">
<el-form-item label="款日期" prop="returnTime">
<el-date-picker
v-model="formData.returnTime"
placeholder="选择款日期"
placeholder="选择款日期"
type="date"
value-format="x"
class="!w-100%"
@ -164,13 +164,13 @@ const formData = ref<ReceivableApi.ReceivableVO>({} as ReceivableApi.ReceivableV
const formRules = reactive({
customerId: [{ required: true, message: '客户不能为空', trigger: 'blur' }],
contractId: [{ required: true, message: '合同不能为空', trigger: 'blur' }],
returnTime: [{ required: true, message: '款日期不能为空', trigger: 'blur' }],
price: [{ required: true, message: '款金额不能为空', trigger: 'blur' }]
returnTime: [{ required: true, message: '款日期不能为空', trigger: 'blur' }],
price: [{ required: true, message: '款金额不能为空', trigger: 'blur' }]
})
const formRef = ref() // Ref
const customerList = ref<CustomerApi.CustomerVO[]>([]) //
const contractList = ref<ContractApi.ContractVO[]>([]) //
const receivablePlanList = ref<ReceivablePlanApi.ReceivablePlanVO[]>([]) //
const receivablePlanList = ref<ReceivablePlanApi.ReceivablePlanVO[]>([]) //
/** 打开弹窗 */
const open = async (
@ -202,7 +202,7 @@ const open = async (
if (formType.value === 'create') {
formData.value.ownerUserId = useUserStore().getUser.id
}
//
//
if (receivablePlan) {
formData.value.customerId = receivablePlan.customerId
await handleCustomerChange(receivablePlan.customerId)
@ -262,10 +262,10 @@ const handleCustomerChange = async (customerId: number) => {
/** 处理切换合同 */
const handleContractChange = async (contractId: number) => {
//
//
formData.value.planId = undefined
if (contractId) {
//
//
receivablePlanList.value = []
receivablePlanList.value = await ReceivablePlanApi.getReceivablePlanSimpleList(
formData.value.customerId!,
@ -279,7 +279,7 @@ const handleContractChange = async (contractId: number) => {
}
}
/** 处理切换款计划 */
/** 处理切换款计划 */
const handleReceivablePlanChange = (planId: number) => {
if (!planId) {
return

View File

@ -3,31 +3,31 @@
<el-row justify="end">
<el-button @click="openForm('create')">
<Icon class="mr-5px" icon="icon-park:income-one" />
创建
创建
</el-button>
</el-row>
<!-- 列表 -->
<ContentWrap class="mt-10px">
<el-table v-loading="loading" :data="list" :show-overflow-tooltip="true" :stripe="true">
<el-table-column align="center" label="款编号" prop="no" />
<el-table-column align="center" label="款编号" prop="no" />
<el-table-column align="center" label="客户" prop="customerName" />
<el-table-column align="center" label="合同" prop="contract.no" />
<el-table-column
:formatter="dateFormatter2"
align="center"
label="款日期"
label="款日期"
prop="returnTime"
width="150px"
/>
<el-table-column align="center" label="款方式" prop="returnType" width="130px">
<el-table-column align="center" label="款方式" prop="returnType" width="130px">
<template #default="scope">
<dict-tag :type="DICT_TYPE.CRM_RECEIVABLE_RETURN_TYPE" :value="scope.row.returnType" />
</template>
</el-table-column>
<el-table-column
align="center"
label="款金额(元)"
label="款金额(元)"
prop="price"
:formatter="erpPriceTableColumnFormatter"
/>
@ -142,7 +142,7 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 从回款计划创建回款 */
/** 从付款计划创建付款 */
const createReceivable = (planData: any) => {
const data = planData as unknown as ReceivablePlanApi.ReceivablePlanVO
formRef.value.open('create', undefined, data)

View File

@ -11,12 +11,12 @@
class="-mb-15px"
label-width="68px"
>
<el-form-item label="款编号" prop="no">
<el-form-item label="款编号" prop="no">
<el-input
v-model="queryParams.no"
class="!w-240px"
clearable
placeholder="请输入款编号"
placeholder="请输入款编号"
@keyup.enter="handleQuery"
/>
</el-form-item>
@ -75,7 +75,7 @@
<el-tab-pane label="下属负责的" name="3" />
</el-tabs>
<el-table v-loading="loading" :data="list" :show-overflow-tooltip="true" :stripe="true">
<el-table-column align="center" fixed="left" label="款编号" prop="no" width="180">
<el-table-column align="center" fixed="left" label="款编号" prop="no" width="180">
<template #default="scope">
<el-link :underline="false" type="primary" @click="openDetail(scope.row.id)">
{{ scope.row.no }}
@ -107,18 +107,18 @@
<el-table-column
:formatter="dateFormatter2"
align="center"
label="款日期"
label="款日期"
prop="returnTime"
width="150px"
/>
<el-table-column
align="center"
label="款金额(元)"
label="款金额(元)"
prop="price"
width="140"
:formatter="erpPriceTableColumnFormatter"
/>
<el-table-column align="center" label="款方式" prop="returnType" width="130px">
<el-table-column align="center" label="款方式" prop="returnType" width="130px">
<template #default="scope">
<dict-tag :type="DICT_TYPE.CRM_RECEIVABLE_RETURN_TYPE" :value="scope.row.returnType" />
</template>
@ -148,7 +148,7 @@
width="180px"
/>
<el-table-column align="center" label="创建人" prop="creatorName" width="120" />
<el-table-column align="center" fixed="right" label="款状态" prop="auditStatus" width="120">
<el-table-column align="center" fixed="right" label="款状态" prop="auditStatus" width="120">
<template #default="scope">
<dict-tag :type="DICT_TYPE.CRM_AUDIT_STATUS" :value="scope.row.auditStatus" />
</template>
@ -284,7 +284,7 @@ const handleDelete = async (id: number) => {
/** 提交审核 **/
const handleSubmit = async (row: ReceivableApi.ReceivableVO) => {
await message.confirm(`您确定提交编号为【${row.no}】的款审核吗?`)
await message.confirm(`您确定提交编号为【${row.no}】的款审核吗?`)
await ReceivableApi.submitReceivable(row.id)
message.success('提交审核成功!')
await getList()
@ -295,7 +295,7 @@ const handleProcessDetail = (row: ReceivableApi.ReceivableVO) => {
push({ name: 'BpmProcessInstanceDetail', query: { id: row.processInstanceId } })
}
/** 打开款详情 */
/** 打开款详情 */
const { push } = useRouter()
const openDetail = (id: number) => {
push({ name: 'CrmReceivableDetail', params: { id } })
@ -319,7 +319,7 @@ const handleExport = async () => {
//
exportLoading.value = true
const data = await ReceivableApi.exportReceivable(queryParams)
download.excel(data, '款.xls')
download.excel(data, '款.xls')
} catch {
} finally {
exportLoading.value = false

View File

@ -71,22 +71,22 @@
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="计划款金额" prop="price">
<el-form-item label="计划款金额" prop="price">
<el-input-number
v-model="formData.price"
:min="0.01"
:precision="2"
class="!w-100%"
controls-position="right"
placeholder="请输入计划款金额"
placeholder="请输入计划款金额"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="计划款日期" prop="returnTime">
<el-form-item label="计划款日期" prop="returnTime">
<el-date-picker
v-model="formData.returnTime"
placeholder="选择计划款日期"
placeholder="选择计划款日期"
type="date"
value-format="x"
class="!w-100%"
@ -106,8 +106,8 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="款方式" prop="returnType">
<el-select v-model="formData.returnType" class="w-1/1" placeholder="请选择款方式">
<el-form-item label="款方式" prop="returnType">
<el-select v-model="formData.returnType" class="w-1/1" placeholder="请选择款方式">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_RECEIVABLE_RETURN_TYPE)"
:key="dict.value"
@ -148,8 +148,8 @@ const formLoading = ref(false) // 表单的加载中1修改时的数据加
const formType = ref('') // create - update -
const formData = ref<ReceivablePlanApi.ReceivablePlanVO>({} as ReceivablePlanApi.ReceivablePlanVO)
const formRules = reactive({
price: [{ required: true, message: '计划款金额不能为空', trigger: 'blur' }],
returnTime: [{ required: true, message: '计划款日期不能为空', trigger: 'blur' }],
price: [{ required: true, message: '计划款金额不能为空', trigger: 'blur' }],
returnTime: [{ required: true, message: '计划款日期不能为空', trigger: 'blur' }],
customerId: [{ required: true, message: '客户编号不能为空', trigger: 'blur' }],
contractId: [{ required: true, message: '合同编号不能为空', trigger: 'blur' }],
ownerUserId: [{ required: true, message: '负责人不能为空', trigger: 'blur' }]

View File

@ -3,7 +3,7 @@
<el-row justify="end">
<el-button @click="openForm('create', undefined)">
<Icon class="mr-5px" icon="icon-park:income" />
创建款计划
创建款计划
</el-button>
</el-row>
@ -15,7 +15,7 @@
<el-table-column align="center" label="期数" prop="period" />
<el-table-column
align="center"
label="计划款(元)"
label="计划款(元)"
prop="price"
width="120"
:formatter="erpPriceTableColumnFormatter"
@ -23,7 +23,7 @@
<el-table-column
:formatter="dateFormatter2"
align="center"
label="计划款日期"
label="计划款日期"
prop="returnTime"
width="180px"
/>
@ -46,7 +46,7 @@
@click="createReceivable(scope.row)"
:disabled="scope.row.receivableId"
>
创建
创建
</el-button>
<el-button
v-hasPermi="['crm:receivable-plan:update']"
@ -137,7 +137,7 @@ const openForm = (type: string, id?: number) => {
formRef.value.open(type, id, props.customerId, props.contractId)
}
/** 创建款 */
/** 创建款 */
const emits = defineEmits<{
(e: 'createReceivable', v: ReceivablePlanApi.ReceivablePlanVO)
}>()

View File

@ -20,13 +20,13 @@
{{ receivablePlan.customerName }}
</el-descriptions-item>
<el-descriptions-item label="合同编号">{{ receivablePlan.contractNo }}</el-descriptions-item>
<el-descriptions-item label="计划款金额">
<el-descriptions-item label="计划款金额">
{{ erpPriceInputFormatter(receivablePlan.price) }}
</el-descriptions-item>
<el-descriptions-item label="计划款日期">
<el-descriptions-item label="计划款日期">
{{ formatDate(receivablePlan.returnTime) }}
</el-descriptions-item>
<el-descriptions-item label="实际款金额">
<el-descriptions-item label="实际款金额">
<el-text v-if="receivablePlan.receivable">
{{ erpPriceInputFormatter(receivablePlan.receivable.price) }}
</el-text>

View File

@ -13,13 +13,13 @@
<el-descriptions-item label="合同编号">
{{ receivablePlan.contractNo }}
</el-descriptions-item>
<el-descriptions-item label="计划款金额">
<el-descriptions-item label="计划款金额">
{{ erpPriceInputFormatter(receivablePlan.price) }}
</el-descriptions-item>
<el-descriptions-item label="计划款日期">
<el-descriptions-item label="计划款日期">
{{ formatDate(receivablePlan.returnTime, 'YYYY-MM-DD') }}
</el-descriptions-item>
<el-descriptions-item label="计划款方式">
<el-descriptions-item label="计划款方式">
<dict-tag
:type="DICT_TYPE.CRM_RECEIVABLE_RETURN_TYPE"
:value="receivablePlan.returnType"
@ -29,19 +29,19 @@
{{ receivablePlan.remindDays }}
</el-descriptions-item>
<el-descriptions-item label="备注">{{ receivablePlan.remark }}</el-descriptions-item>
<el-descriptions-item label="实际款金额">
<el-descriptions-item label="实际款金额">
<el-text v-if="receivablePlan.receivable">
{{ erpPriceInputFormatter(receivablePlan.receivable.price) }}
</el-text>
<el-text v-else>{{ erpPriceInputFormatter(0) }}</el-text>
</el-descriptions-item>
<el-descriptions-item label="未款金额">
<el-descriptions-item label="未款金额">
<el-text v-if="receivablePlan.receivable">
{{ erpPriceInputFormatter(receivablePlan.price - receivablePlan.receivable.price) }}
</el-text>
<el-text v-else>{{ erpPriceInputFormatter(receivablePlan.price) }}</el-text>
</el-descriptions-item>
<el-descriptions-item label="实际款日期">
<el-descriptions-item label="实际款日期">
{{ formatDate(receivablePlan.receivable?.returnTime, 'YYYY-MM-DD') }}
</el-descriptions-item>
</el-descriptions>

View File

@ -45,11 +45,11 @@ defineOptions({ name: 'CrmReceivablePlanDetail' })
const message = useMessage()
const receivablePlanId = ref(0) //
const receivablePlanId = ref(0) //
const loading = ref(true) //
const receivablePlan = ref<ReceivablePlanApi.ReceivablePlanVO>(
{} as ReceivablePlanApi.ReceivablePlanVO
) //
) //
const permissionListRef = ref<InstanceType<typeof PermissionList>>() // Ref
/** 获取详情 */
@ -93,7 +93,7 @@ const close = () => {
const { params } = useRoute()
onMounted(async () => {
if (!params.id) {
message.warning('参数错误,款计划不能为空!')
message.warning('参数错误,款计划不能为空!')
close()
return
}

View File

@ -95,7 +95,7 @@
</el-table-column>
<el-table-column
align="center"
label="计划款金额(元)"
label="计划款金额(元)"
prop="price"
width="160"
:formatter="erpPriceTableColumnFormatter"
@ -103,7 +103,7 @@
<el-table-column
:formatter="dateFormatter2"
align="center"
label="计划款日期"
label="计划款日期"
prop="returnTime"
width="180px"
/>
@ -115,7 +115,7 @@
width="180px"
:formatter="dateFormatter2"
/>
<el-table-column align="center" label="款方式" prop="returnType" width="130px">
<el-table-column align="center" label="款方式" prop="returnType" width="130px">
<template #default="scope">
<dict-tag :type="DICT_TYPE.CRM_RECEIVABLE_RETURN_TYPE" :value="scope.row.returnType" />
</template>
@ -124,7 +124,7 @@
<el-table-column label="负责人" prop="ownerUserName" width="120" />
<el-table-column
align="center"
label="实际款金额(元)"
label="实际款金额(元)"
prop="receivable.price"
width="160"
>
@ -137,14 +137,14 @@
</el-table-column>
<el-table-column
align="center"
label="实际款日期"
label="实际款日期"
prop="receivable.returnTime"
width="180px"
:formatter="dateFormatter2"
/>
<el-table-column
align="center"
label="实际款金额(元)"
label="实际款金额(元)"
prop="receivable.price"
width="160"
>
@ -179,7 +179,7 @@
@click="openReceivableForm(scope.row)"
:disabled="scope.row.receivableId"
>
创建
创建
</el-button>
<el-button
v-hasPermi="['crm:receivable-plan:update']"
@ -281,7 +281,7 @@ const openForm = (type: string, id?: number) => {
formRef.value.open(type, id)
}
/** 创建款操作 */
/** 创建款操作 */
const receivableFormRef = ref()
const openReceivableForm = (row: ReceivablePlanApi.ReceivablePlanVO) => {
receivableFormRef.value.open('create', undefined, row)
@ -308,7 +308,7 @@ const handleExport = async () => {
//
exportLoading.value = true
const data = await ReceivablePlanApi.exportReceivablePlan(queryParams)
download.excel(data, '款计划.xls')
download.excel(data, '款计划.xls')
} catch {
} finally {
exportLoading.value = false