crm 报价 商机 合同 三块整改

pull/781/head
quu 2025-04-27 12:12:50 +09:00
parent eb3eaeff01
commit 10d3e06927
13 changed files with 30 additions and 37 deletions

View File

@ -21,7 +21,6 @@ export interface BusinessVO {
dealTime: Date
totalProductPrice: number
totalPrice: number
discountPercent: number
remark: string
creator: string // 创建人
creatorName?: string // 创建人名称

View File

@ -11,7 +11,7 @@ export interface ContractAAuthorizedCompanyVO {
companyBank: string // 开户行
companyAccount: string // 开户账号
companyAddress: string // 通讯地址
deletedFlag: number // 删除标记1-正常,-1-已删除
deleted: number // 删除标记1-正常,-1-已删除
}
// 合同甲方关联单位 API

View File

@ -11,7 +11,7 @@ export interface ContractAAuthorizedPersonVO {
wechat: string // 微信号
idNumber: string // 身份证号
email: string // 电子邮箱
deletedFlag: number // 删除标记1-正常,-1-已删除
deleted: number // 删除标记1-正常,-1-已删除
}
// 合同甲方授权人信息 API

View File

@ -13,7 +13,7 @@ export interface ContractBAuthorizedPersonVO {
phoneNumber: string // 手机号
wechat: string // 微信号
email: string // 电子邮箱
deletedFlag: number // 删除标记1-正常,-1-已删除
deleted: number // 删除标记1-正常,-1-已删除
}
// 合同乙方授权人信息 API

View File

@ -8,6 +8,9 @@ export interface ProductVO {
price: number
status: number
categoryId: number
offlinePrice: number
onlinePrice: number
totalPrice: number
categoryName?: string
description: string
ownerUserId: number

View File

@ -217,11 +217,10 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="折扣后金额" prop="price">
<el-form-item label="总金额" prop="totalPrice">
<el-input
disabled
v-model="formData.totalPrice"
placeholder="请输入商机金额"
:formatter="erpPriceInputFormatter"
/>
</el-form-item>
@ -271,7 +270,6 @@ const formData = ref({
onlinePrice: undefined,
offlinePrice: undefined,
totalProductPrice: undefined,
discountPercent: undefined,
totalPrice: undefined,
saleStage: undefined,
paymentTerm: undefined,

View File

@ -130,10 +130,10 @@ watch(
}
//
val.forEach((item) => {
if (item.businessPrice != null && item.count != null) {
if (item.offlinePrice != null && item.onlinePrice != null) {
item.totalPrice = item.offlinePrice + item.onlinePrice
} else {
item.totalPrice = undefined
item.totalPrice = 0
}
})
},

View File

@ -48,9 +48,8 @@
/>
</el-table>
<el-row class="mt-10px" justify="end">
<el-col :span="3"> 整单折扣{{ erpPriceInputFormatter(business.discountPercent) }}% </el-col>
<el-col :span="4">
产品总金额{{ erpPriceInputFormatter(business.totalProductPrice) }}
总金额{{ erpPriceInputFormatter(business.totalPrice) }}
</el-col>
</el-row>
</ContentWrap>

View File

@ -58,13 +58,6 @@
</el-form-item>
</template>
</el-table-column>
<el-table-column label="删除标记1-正常,-1-已删除" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.deletedFlag`" :rules="formRules.deletedFlag" class="mb-0px!">
<el-input v-model="row.deletedFlag" placeholder="请输入删除标记1-正常,-1-已删除" />
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="60">
<template #default="{ $index }">
<el-button @click="handleDelete($index)" link></el-button>

View File

@ -27,7 +27,12 @@
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.authPersonType`" :rules="formRules.authPersonType" class="mb-0px!">
<el-select v-model="row.authPersonType" placeholder="请选择授权人类型">
<el-option label="请选择字典生成" value="" />
<el-option
v-for="dict in getIntDictOptions('auth_person_type')"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</template>
@ -60,13 +65,6 @@
</el-form-item>
</template>
</el-table-column>
<el-table-column label="删除标记1-正常,-1-已删除" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.deletedFlag`" :rules="formRules.deletedFlag" class="mb-0px!">
<el-input v-model="row.deletedFlag" placeholder="请输入删除标记1-正常,-1-已删除" />
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="60">
<template #default="{ $index }">
<el-button @click="handleDelete($index)" link></el-button>
@ -80,6 +78,7 @@
</template>
<script setup lang="ts">
import * as ContractApi from '@/api/crm/contract'
import { getIntDictOptions, getStrDictOptions, DICT_TYPE, getBoolDictOptions } from '@/utils/dict'
const props = defineProps<{
contractId: undefined // ID

View File

@ -27,7 +27,12 @@
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.authType`" :rules="formRules.authType" class="mb-0px!">
<el-select v-model="row.authType" placeholder="请选择类别">
<el-option label="请选择字典生成" value="" />
<el-option
v-for="dict in getIntDictOptions('auth_type')"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</template>
@ -74,13 +79,6 @@
</el-form-item>
</template>
</el-table-column>
<el-table-column label="删除标记1-正常,-1-已删除" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.deletedFlag`" :rules="formRules.deletedFlag" class="mb-0px!">
<el-input v-model="row.deletedFlag" placeholder="请输入删除标记1-正常,-1-已删除" />
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="60">
<template #default="{ $index }">
<el-button @click="handleDelete($index)" link></el-button>
@ -94,6 +92,7 @@
</template>
<script setup lang="ts">
import * as ContractApi from '@/api/crm/contract'
import { getIntDictOptions, getStrDictOptions, DICT_TYPE, getBoolDictOptions } from '@/utils/dict'
const props = defineProps<{
contractId: undefined // ID

View File

@ -48,9 +48,8 @@
/>
</el-table>
<el-row class="mt-10px" justify="end">
<el-col :span="3"> 整单折扣{{ erpPriceInputFormatter(contract.discountPercent) }}% </el-col>
<el-col :span="4">
产品总金额{{ erpPriceInputFormatter(contract.totalProductPrice) }}
总金额{{ erpPriceInputFormatter(contract.totalPrice) }}
</el-col>
</el-row>
</ContentWrap>

View File

@ -330,7 +330,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="总金额" prop="price">
<el-form-item label="总金额" prop="totalPrice">
<el-input
disabled
v-model="formData.totalPrice"
@ -403,6 +403,8 @@ const formData = ref({
creator: undefined,
createTime: undefined,
updater: undefined,
onlinePrice: undefined,
offlinePrice: undefined,
totalPrice: undefined,
cooperationType: undefined, //
companyType: undefined, //
@ -449,6 +451,8 @@ const onBusinessChange = async (businessId: string) => {
formData.value.creditMethod = res.creditMethod;
formData.value.creditCalcCycle = res.creditCalcCycle;
formData.value.deptId = res.deptId;
formData.value.offlinePrice = res.offlinePrice;
formData.value.onlinePrice = res.onlinePrice;
formData.value.totalPrice = res.totalPrice;
// 🔁
await onCustomerChange(res.customerId);