crm 报价 商机 合同 三块整改
parent
eb3eaeff01
commit
10d3e06927
|
|
@ -21,7 +21,6 @@ export interface BusinessVO {
|
||||||
dealTime: Date
|
dealTime: Date
|
||||||
totalProductPrice: number
|
totalProductPrice: number
|
||||||
totalPrice: number
|
totalPrice: number
|
||||||
discountPercent: number
|
|
||||||
remark: string
|
remark: string
|
||||||
creator: string // 创建人
|
creator: string // 创建人
|
||||||
creatorName?: string // 创建人名称
|
creatorName?: string // 创建人名称
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ export interface ContractAAuthorizedCompanyVO {
|
||||||
companyBank: string // 开户行
|
companyBank: string // 开户行
|
||||||
companyAccount: string // 开户账号
|
companyAccount: string // 开户账号
|
||||||
companyAddress: string // 通讯地址
|
companyAddress: string // 通讯地址
|
||||||
deletedFlag: number // 删除标记:1-正常,-1-已删除
|
deleted: number // 删除标记:1-正常,-1-已删除
|
||||||
}
|
}
|
||||||
|
|
||||||
// 合同甲方关联单位 API
|
// 合同甲方关联单位 API
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ export interface ContractAAuthorizedPersonVO {
|
||||||
wechat: string // 微信号
|
wechat: string // 微信号
|
||||||
idNumber: string // 身份证号
|
idNumber: string // 身份证号
|
||||||
email: string // 电子邮箱
|
email: string // 电子邮箱
|
||||||
deletedFlag: number // 删除标记:1-正常,-1-已删除
|
deleted: number // 删除标记:1-正常,-1-已删除
|
||||||
}
|
}
|
||||||
|
|
||||||
// 合同甲方授权人信息 API
|
// 合同甲方授权人信息 API
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ export interface ContractBAuthorizedPersonVO {
|
||||||
phoneNumber: string // 手机号
|
phoneNumber: string // 手机号
|
||||||
wechat: string // 微信号
|
wechat: string // 微信号
|
||||||
email: string // 电子邮箱
|
email: string // 电子邮箱
|
||||||
deletedFlag: number // 删除标记:1-正常,-1-已删除
|
deleted: number // 删除标记:1-正常,-1-已删除
|
||||||
}
|
}
|
||||||
|
|
||||||
// 合同乙方授权人信息 API
|
// 合同乙方授权人信息 API
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,9 @@ export interface ProductVO {
|
||||||
price: number
|
price: number
|
||||||
status: number
|
status: number
|
||||||
categoryId: number
|
categoryId: number
|
||||||
|
offlinePrice: number
|
||||||
|
onlinePrice: number
|
||||||
|
totalPrice: number
|
||||||
categoryName?: string
|
categoryName?: string
|
||||||
description: string
|
description: string
|
||||||
ownerUserId: number
|
ownerUserId: number
|
||||||
|
|
|
||||||
|
|
@ -217,11 +217,10 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="折扣后金额" prop="price">
|
<el-form-item label="总金额" prop="totalPrice">
|
||||||
<el-input
|
<el-input
|
||||||
disabled
|
disabled
|
||||||
v-model="formData.totalPrice"
|
v-model="formData.totalPrice"
|
||||||
placeholder="请输入商机金额"
|
|
||||||
:formatter="erpPriceInputFormatter"
|
:formatter="erpPriceInputFormatter"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
@ -271,7 +270,6 @@ const formData = ref({
|
||||||
onlinePrice: undefined,
|
onlinePrice: undefined,
|
||||||
offlinePrice: undefined,
|
offlinePrice: undefined,
|
||||||
totalProductPrice: undefined,
|
totalProductPrice: undefined,
|
||||||
discountPercent: undefined,
|
|
||||||
totalPrice: undefined,
|
totalPrice: undefined,
|
||||||
saleStage: undefined,
|
saleStage: undefined,
|
||||||
paymentTerm: undefined,
|
paymentTerm: undefined,
|
||||||
|
|
|
||||||
|
|
@ -130,10 +130,10 @@ watch(
|
||||||
}
|
}
|
||||||
// 循环处理
|
// 循环处理
|
||||||
val.forEach((item) => {
|
val.forEach((item) => {
|
||||||
if (item.businessPrice != null && item.count != null) {
|
if (item.offlinePrice != null && item.onlinePrice != null) {
|
||||||
item.totalPrice = item.offlinePrice + item.onlinePrice
|
item.totalPrice = item.offlinePrice + item.onlinePrice
|
||||||
} else {
|
} else {
|
||||||
item.totalPrice = undefined
|
item.totalPrice = 0
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -48,9 +48,8 @@
|
||||||
/>
|
/>
|
||||||
</el-table>
|
</el-table>
|
||||||
<el-row class="mt-10px" justify="end">
|
<el-row class="mt-10px" justify="end">
|
||||||
<el-col :span="3"> 整单折扣:{{ erpPriceInputFormatter(business.discountPercent) }}% </el-col>
|
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
产品总金额:{{ erpPriceInputFormatter(business.totalProductPrice) }} 元
|
总金额:{{ erpPriceInputFormatter(business.totalPrice) }} 元
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
|
|
|
||||||
|
|
@ -58,13 +58,6 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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">
|
<el-table-column align="center" fixed="right" label="操作" width="60">
|
||||||
<template #default="{ $index }">
|
<template #default="{ $index }">
|
||||||
<el-button @click="handleDelete($index)" link>—</el-button>
|
<el-button @click="handleDelete($index)" link>—</el-button>
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,12 @@
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-form-item :prop="`${$index}.authPersonType`" :rules="formRules.authPersonType" class="mb-0px!">
|
<el-form-item :prop="`${$index}.authPersonType`" :rules="formRules.authPersonType" class="mb-0px!">
|
||||||
<el-select v-model="row.authPersonType" placeholder="请选择授权人类型">
|
<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-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -60,13 +65,6 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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">
|
<el-table-column align="center" fixed="right" label="操作" width="60">
|
||||||
<template #default="{ $index }">
|
<template #default="{ $index }">
|
||||||
<el-button @click="handleDelete($index)" link>—</el-button>
|
<el-button @click="handleDelete($index)" link>—</el-button>
|
||||||
|
|
@ -80,6 +78,7 @@
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import * as ContractApi from '@/api/crm/contract'
|
import * as ContractApi from '@/api/crm/contract'
|
||||||
|
import { getIntDictOptions, getStrDictOptions, DICT_TYPE, getBoolDictOptions } from '@/utils/dict'
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
contractId: undefined // 合同ID(主表的关联字段)
|
contractId: undefined // 合同ID(主表的关联字段)
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,12 @@
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-form-item :prop="`${$index}.authType`" :rules="formRules.authType" class="mb-0px!">
|
<el-form-item :prop="`${$index}.authType`" :rules="formRules.authType" class="mb-0px!">
|
||||||
<el-select v-model="row.authType" placeholder="请选择类别">
|
<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-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -74,13 +79,6 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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">
|
<el-table-column align="center" fixed="right" label="操作" width="60">
|
||||||
<template #default="{ $index }">
|
<template #default="{ $index }">
|
||||||
<el-button @click="handleDelete($index)" link>—</el-button>
|
<el-button @click="handleDelete($index)" link>—</el-button>
|
||||||
|
|
@ -94,6 +92,7 @@
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import * as ContractApi from '@/api/crm/contract'
|
import * as ContractApi from '@/api/crm/contract'
|
||||||
|
import { getIntDictOptions, getStrDictOptions, DICT_TYPE, getBoolDictOptions } from '@/utils/dict'
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
contractId: undefined // 合同ID(主表的关联字段)
|
contractId: undefined // 合同ID(主表的关联字段)
|
||||||
|
|
|
||||||
|
|
@ -48,9 +48,8 @@
|
||||||
/>
|
/>
|
||||||
</el-table>
|
</el-table>
|
||||||
<el-row class="mt-10px" justify="end">
|
<el-row class="mt-10px" justify="end">
|
||||||
<el-col :span="3"> 整单折扣:{{ erpPriceInputFormatter(contract.discountPercent) }}% </el-col>
|
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
产品总金额:{{ erpPriceInputFormatter(contract.totalProductPrice) }} 元
|
总金额:{{ erpPriceInputFormatter(contract.totalPrice) }} 元
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
|
|
|
||||||
|
|
@ -330,7 +330,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="总金额" prop="price">
|
<el-form-item label="总金额" prop="totalPrice">
|
||||||
<el-input
|
<el-input
|
||||||
disabled
|
disabled
|
||||||
v-model="formData.totalPrice"
|
v-model="formData.totalPrice"
|
||||||
|
|
@ -403,6 +403,8 @@ const formData = ref({
|
||||||
creator: undefined,
|
creator: undefined,
|
||||||
createTime: undefined,
|
createTime: undefined,
|
||||||
updater: undefined,
|
updater: undefined,
|
||||||
|
onlinePrice: undefined,
|
||||||
|
offlinePrice: undefined,
|
||||||
totalPrice: undefined,
|
totalPrice: undefined,
|
||||||
cooperationType: undefined, // 合作类型
|
cooperationType: undefined, // 合作类型
|
||||||
companyType: undefined, // 公司类型
|
companyType: undefined, // 公司类型
|
||||||
|
|
@ -449,6 +451,8 @@ const onBusinessChange = async (businessId: string) => {
|
||||||
formData.value.creditMethod = res.creditMethod;
|
formData.value.creditMethod = res.creditMethod;
|
||||||
formData.value.creditCalcCycle = res.creditCalcCycle;
|
formData.value.creditCalcCycle = res.creditCalcCycle;
|
||||||
formData.value.deptId = res.deptId;
|
formData.value.deptId = res.deptId;
|
||||||
|
formData.value.offlinePrice = res.offlinePrice;
|
||||||
|
formData.value.onlinePrice = res.onlinePrice;
|
||||||
formData.value.totalPrice = res.totalPrice;
|
formData.value.totalPrice = res.totalPrice;
|
||||||
// 🔁 自动加载客户详情
|
// 🔁 自动加载客户详情
|
||||||
await onCustomerChange(res.customerId);
|
await onCustomerChange(res.customerId);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue