crm 收款
parent
c9d68e6a1c
commit
584d6978ae
2
.env.dev
2
.env.dev
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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 } })
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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],
|
||||
|
|
|
|||
|
|
@ -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="负责人">
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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' }]
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}>()
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue