crm 报价 商机 合同 三块整改
parent
57a3ac118f
commit
ae5519d9c4
|
|
@ -29,6 +29,57 @@ export interface CustomerVO {
|
||||||
creatorName?: string // 创建人名称
|
creatorName?: string // 创建人名称
|
||||||
createTime: Date // 创建时间
|
createTime: Date // 创建时间
|
||||||
updateTime: Date // 更新时间
|
updateTime: Date // 更新时间
|
||||||
|
|
||||||
|
|
||||||
|
cooperationType?: number // 合作类型
|
||||||
|
cooperationArea?: number // 合作地区
|
||||||
|
leadSource?: number // 线索来源
|
||||||
|
customerStatus?: number // 客户状态
|
||||||
|
dataType?: number // 是否为公海数据
|
||||||
|
serviceStatus?: string // 经营状态
|
||||||
|
developer?: number // 商务拓展人
|
||||||
|
contractor?: number // 商务签约人
|
||||||
|
clueDeveloper?: number // 线索拓展人
|
||||||
|
maintainer?: number // 售后维护人
|
||||||
|
assist?: number // 协助人
|
||||||
|
customerOwner?: number // 客户归属人
|
||||||
|
website?: string // 网站
|
||||||
|
contactAddress?: string // 通讯地址
|
||||||
|
customerDetails?: string // 客户详情
|
||||||
|
rejectionReason?: string // 客户退回原因
|
||||||
|
claim?: number // 是否领取
|
||||||
|
claimTime?: Date // 领取时间
|
||||||
|
startDate?: string // 成立日期
|
||||||
|
registerCapital?: string // 注册资本
|
||||||
|
legalPersonName?: string // 法定代表人
|
||||||
|
actualCapital?: string // 实缴注册资本
|
||||||
|
registerCapitalCurrency?: string // 注册资本币种
|
||||||
|
bankName?: string // 开户行名称
|
||||||
|
bankAccount?: string // 银行账号
|
||||||
|
taxQualification?: string // 纳税人资质
|
||||||
|
socialEmployeeNum?: string // 参保人数
|
||||||
|
creditNo?: string // 社会统一信用代码
|
||||||
|
businessTerm?: string // 营业期限
|
||||||
|
belongOrg?: string // 登记机关
|
||||||
|
regType?: string // 公司类型
|
||||||
|
actualCharacters?: string // 实缴字符数
|
||||||
|
registerNo?: string // 工商注册号
|
||||||
|
registeredAddress?: string // 注册地址
|
||||||
|
businessScope?: string // 经营范围
|
||||||
|
partnerTotal?: string // 股东数量
|
||||||
|
changeRecordDataTotal?: string // 变更数量
|
||||||
|
employeeDataTotal?: string // 董事会成员数量
|
||||||
|
attention?: number // 是否关注(1关注,0不关注)
|
||||||
|
creditAmount?: number // 授信额度
|
||||||
|
accountPeriod?: number // 账期(天)
|
||||||
|
creditGrantingMethod?: number // 授信方式
|
||||||
|
creditCalculationCycle?: number // 授信计算周期
|
||||||
|
equityPledge?: number // 股权出质
|
||||||
|
judgmentRecord?: number // 被执行记录
|
||||||
|
defendantRecord?: number // 被告记录
|
||||||
|
dishonestyRecord?: number // 失信记录
|
||||||
|
abnormalService?: number // 经营异常
|
||||||
|
financeRecord?: number // 融资记录
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询客户列表
|
// 查询客户列表
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@
|
||||||
<el-radio :value="2">授权人</el-radio>
|
<el-radio :value="2">授权人</el-radio>
|
||||||
<el-radio :value="3">延期</el-radio>
|
<el-radio :value="3">延期</el-radio>
|
||||||
<el-radio :value="4">终止</el-radio>
|
<el-radio :value="4">终止</el-radio>
|
||||||
<el-radio :value="5">甲方关联单位</el-radio>
|
<el-radio :value="5">关联</el-radio>
|
||||||
<el-radio :value="6">重签</el-radio>
|
<el-radio :value="6">重签</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
@ -304,14 +304,33 @@ if(contractFormRef.value) {
|
||||||
}
|
}
|
||||||
let dataFormList = proChangeObj[formData.value.changeItem].value.getData()
|
let dataFormList = proChangeObj[formData.value.changeItem].value.getData()
|
||||||
data[proChangeObj[formData.value.changeItem]] = dataFormList
|
data[proChangeObj[formData.value.changeItem]] = dataFormList
|
||||||
if(formData.value.changeItem == 2) {
|
if(formData.value.changeItem == 1) {
|
||||||
|
data.changeAmount = dataFormList.changeAmount
|
||||||
|
data.changeAmountDeadline = dataFormList.changeAmountDeadline
|
||||||
|
} else if(formData.value.changeItem == 2) {
|
||||||
let ids = []
|
let ids = []
|
||||||
dataFormList.map(item => {
|
dataFormList.map(item => {
|
||||||
ids.push(item.id)
|
ids.push(item.id)
|
||||||
})
|
})
|
||||||
data.afterAuthorizerId = ids.join(',')
|
data.afterAuthorizerId = ids.join(',')
|
||||||
|
} else if(formData.value.changeItem == 3) {
|
||||||
|
data.agreementDeadline = dataFormList.agreementDeadline
|
||||||
|
data.extensionYears = dataFormList.extensionYears
|
||||||
|
data.extensionDate = dataFormList.extensionDate
|
||||||
|
data.note = dataFormList.note
|
||||||
|
} else if(formData.value.changeItem == 4) {
|
||||||
|
data.terminationDate = dataFormList.terminationDate
|
||||||
|
data.terminationReason = dataFormList.terminationReason
|
||||||
|
data.note = dataFormList.note
|
||||||
|
} else if(formData.value.changeItem == 5) {
|
||||||
|
let ids = []
|
||||||
|
dataFormList.map(item => {
|
||||||
|
ids.push(item.id)
|
||||||
|
})
|
||||||
|
data.afterAffiliateCompanyId = ids.join(',')
|
||||||
|
} else if(formData.value.changeItem == 6) {
|
||||||
|
data.newContract = data
|
||||||
}
|
}
|
||||||
// data.contractAAuthorizedCompanys = limitFormRef.value.getData()
|
|
||||||
data.contractId = data.id
|
data.contractId = data.id
|
||||||
delete data.id
|
delete data.id
|
||||||
await ContractApi.changeContract(data)
|
await ContractApi.changeContract(data)
|
||||||
|
|
|
||||||
|
|
@ -187,13 +187,13 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="法人代表" prop="legalRepresentative">
|
<el-form-item label="法人代表" prop="legalPersonName">
|
||||||
<el-input v-model="formData.legalRepresentative" placeholder="法人代表" disabled />
|
<el-input v-model="formData.legalPersonName" placeholder="法人代表" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="统一信用代码" prop="creditCode">
|
<el-form-item label="统一信用代码" prop="creditNo">
|
||||||
<el-input v-model="formData.creditCode" placeholder="统一信用代码" disabled />
|
<el-input v-model="formData.creditNo" placeholder="统一信用代码" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
|
|
@ -222,8 +222,8 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="通讯地址" prop="listingStatus">
|
<el-form-item label="注册地址" prop="registeredAddress">
|
||||||
<el-input v-model="formData.partAddress" placeholder="通讯地址" disabled />
|
<el-input v-model="formData.registeredAddress" placeholder="注册地址" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
|
|
@ -254,19 +254,19 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="法人代表" prop="secPartyLegalRepresentative">
|
<el-form-item label="法人代表" prop="legalRepresentative">
|
||||||
<el-input v-model="formData.secPartyLegalRepresentative" placeholder="法人代表" disabled />
|
<el-input v-model="formData.legalRepresentative" placeholder="法人代表" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="商务负责人" prop="secPartyPerson">
|
<el-form-item label="商务负责人" prop="ownerUserId">
|
||||||
<el-input v-model="formData.secPartyPerson" placeholder="商务负责人" disabled />
|
<el-input v-model="formData.ownerUserId" placeholder="商务负责人" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="手机号" prop="mobile">
|
<el-form-item label="手机号" prop="mobile">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="formData.mobile"
|
v-model="formData.ownerUserMobile"
|
||||||
placeholder="手机号"
|
placeholder="手机号"
|
||||||
disabled
|
disabled
|
||||||
/>
|
/>
|
||||||
|
|
@ -275,7 +275,7 @@
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="E-mail" prop="email">
|
<el-form-item label="E-mail" prop="email">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="formData.email"
|
v-model="formData.ownerUserEmail"
|
||||||
placeholder="E-mail"
|
placeholder="E-mail"
|
||||||
disabled
|
disabled
|
||||||
/>
|
/>
|
||||||
|
|
@ -284,7 +284,7 @@
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="微信号" prop="wechat">
|
<el-form-item label="微信号" prop="wechat">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="formData.wechat"
|
v-model="formData.ownerUserWechat"
|
||||||
placeholder="微信号"
|
placeholder="微信号"
|
||||||
disabled
|
disabled
|
||||||
/>
|
/>
|
||||||
|
|
@ -545,7 +545,7 @@ const formRules = reactive({
|
||||||
customerId: [{ required: true, message: '客户不能为空', trigger: 'blur' }],
|
customerId: [{ required: true, message: '客户不能为空', trigger: 'blur' }],
|
||||||
quotationId: [{ required: true, message: '报价单编号不能为空', trigger: 'blur' }],
|
quotationId: [{ required: true, message: '报价单编号不能为空', trigger: 'blur' }],
|
||||||
orderDate: [{ required: true, message: '下单日期不能为空', trigger: 'blur' }],
|
orderDate: [{ required: true, message: '下单日期不能为空', trigger: 'blur' }],
|
||||||
ownerUserId: [{ required: true, message: '负责人不能为空', trigger: 'blur' }],
|
// ownerUserId: [{ required: true, message: '负责人不能为空', trigger: 'blur' }],
|
||||||
statementDate: [{ required: true, message: '账单日不能为空', trigger: 'change' }],
|
statementDate: [{ required: true, message: '账单日不能为空', trigger: 'change' }],
|
||||||
contractType: [{ required: true, message: '合同类型不能为空', trigger: 'change' }],
|
contractType: [{ required: true, message: '合同类型不能为空', trigger: 'change' }],
|
||||||
penaltyRate: [{ required: true, message: '违约金比例不能为空', trigger: 'blur' }],
|
penaltyRate: [{ required: true, message: '违约金比例不能为空', trigger: 'blur' }],
|
||||||
|
|
|
||||||
|
|
@ -10,18 +10,18 @@
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="终止日期" prop="terminationDate">
|
<el-form-item label="终止日期" prop="terminationDate">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="formData.lastPayDate"
|
v-model="formData.terminationDate"
|
||||||
type="date"
|
type="date"
|
||||||
:disabled="!!type"
|
:disabled="!!type"
|
||||||
value-format="x"
|
value-format="YYYY-MM-DD"
|
||||||
placeholder="请选择终止日期"
|
placeholder="请选择终止日期"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="终止原因" prop="">
|
<el-form-item label="终止原因" prop="terminationReason">
|
||||||
<el-radio-group v-model="formData.defendantRecord" :disabled="!!type">
|
<el-radio-group v-model="formData.terminationReason" :disabled="!!type">
|
||||||
<el-radio :label="1">合同到期</el-radio>
|
<el-radio :label="1">合同到期</el-radio>
|
||||||
<el-radio :label="2">甲方违反协议</el-radio>
|
<el-radio :label="2">甲方违反协议</el-radio>
|
||||||
<el-radio :label="3">乙方不可抗力</el-radio>
|
<el-radio :label="3">乙方不可抗力</el-radio>
|
||||||
|
|
@ -32,8 +32,8 @@
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="终止说明" prop="signEmail">
|
<el-form-item label="终止说明" prop="note">
|
||||||
<el-input v-model="formData.terminationReason" :disabled="!!type" type="textarea" :row="5" placeholder="必须确保账款已全部回收" />
|
<el-input v-model="formData.note" :disabled="!!type" type="textarea" :row="5" placeholder="必须确保账款已全部回收" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
@ -123,11 +123,11 @@ const formData = ref({
|
||||||
bBusinessLicense: undefined // 营业执照
|
bBusinessLicense: undefined // 营业执照
|
||||||
})
|
})
|
||||||
const formRules = reactive({
|
const formRules = reactive({
|
||||||
cooperationType: [{ required: true, message: '合作类型不能为空', trigger: 'change' }],
|
// cooperationType: [{ required: true, message: '合作类型不能为空', trigger: 'change' }],
|
||||||
no: [{ required: true, message: '报价单编号不能为空', trigger: 'blur' }],
|
// no: [{ required: true, message: '报价单编号不能为空', trigger: 'blur' }],
|
||||||
customerId: [{ required: true, message: '客户id不能为空', trigger: 'change' }],
|
// customerId: [{ required: true, message: '客户id不能为空', trigger: 'change' }],
|
||||||
businessId: [{ required: true, message: '商机编号不能为空', trigger: 'change' }],
|
// businessId: [{ required: true, message: '商机编号不能为空', trigger: 'change' }],
|
||||||
invoiceTemplateId: [{ required: true, message: '票据模板Id不能为空', trigger: 'change' }]
|
// invoiceTemplateId: [{ required: true, message: '票据模板Id不能为空', trigger: 'change' }]
|
||||||
})
|
})
|
||||||
const formRef = ref() // 表单 Ref
|
const formRef = ref() // 表单 Ref
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,10 +68,13 @@
|
||||||
<el-row justify="center" class="mt-3" v-if="!type">
|
<el-row justify="center" class="mt-3" v-if="!type">
|
||||||
<el-button @click="handleAdd" round>+ 添加</el-button>
|
<el-button @click="handleAdd" round>+ 添加</el-button>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
<ContactForm ref="contactRef" @success="getList" />
|
||||||
</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 { propTypes } from '@/utils/propTypes'
|
import { propTypes } from '@/utils/propTypes'
|
||||||
|
import ContactForm from '@/components/contact/index.vue'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
contractId: undefined, // 合同ID(主表的关联字段)
|
contractId: undefined, // 合同ID(主表的关联字段)
|
||||||
|
|
@ -81,16 +84,47 @@ const props = defineProps({
|
||||||
const formLoading = ref(false) // 表单的加载中
|
const formLoading = ref(false) // 表单的加载中
|
||||||
const formData = ref([])
|
const formData = ref([])
|
||||||
const formRules = reactive({
|
const formRules = reactive({
|
||||||
contractId: [{ required: true, message: '合同ID不能为空', trigger: 'blur' }],
|
// contractId: [{ required: true, message: '合同ID不能为空', trigger: 'blur' }],
|
||||||
customerName: [{ required: true, message: '单位名称不能为空', trigger: 'blur' }],
|
// customerName: [{ required: true, message: '单位名称不能为空', trigger: 'blur' }],
|
||||||
unifiedCreditCode: [{ required: true, message: '统一社会信用代码不能为空', trigger: 'blur' }],
|
// unifiedCreditCode: [{ required: true, message: '统一社会信用代码不能为空', trigger: 'blur' }],
|
||||||
invoicingAddress: [{ required: true, message: '开票地址不能为空', trigger: 'blur' }],
|
// invoicingAddress: [{ required: true, message: '开票地址不能为空', trigger: 'blur' }],
|
||||||
invoicingTelephone: [{ required: true, message: '开票电话不能为空', trigger: 'blur' }],
|
// invoicingTelephone: [{ required: true, message: '开票电话不能为空', trigger: 'blur' }],
|
||||||
companyBank: [{ required: true, message: '开户行不能为空', trigger: 'blur' }],
|
// companyBank: [{ required: true, message: '开户行不能为空', trigger: 'blur' }],
|
||||||
companyAccount: [{ required: true, message: '开户账号不能为空', trigger: 'blur' }]
|
// companyAccount: [{ required: true, message: '开户账号不能为空', trigger: 'blur' }]
|
||||||
})
|
})
|
||||||
const formRef = ref() // 表单 Ref
|
const formRef = ref() // 表单 Ref
|
||||||
|
|
||||||
|
const contactRef = ref() // 表单 Ref
|
||||||
|
const handleAdd = () => {
|
||||||
|
contactRef.value.open(formData.value, props.customerId)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const getList = (val: []) => {
|
||||||
|
for(let i = val.length - 1; i >= 0; i--) {
|
||||||
|
let obj = val[i]
|
||||||
|
if(formData.value.some(v => v.id === obj.id)) val.splice(i, 1)
|
||||||
|
}
|
||||||
|
val.forEach(item => {
|
||||||
|
if(!formData.value.some(v => v.id === item.id)) {
|
||||||
|
val.forEach(item => {
|
||||||
|
formData.value.push({
|
||||||
|
"name": item.name,
|
||||||
|
"postId": item.post,
|
||||||
|
"userRank": item.userRank,
|
||||||
|
"phoneNumber": item.mobile,
|
||||||
|
"authDesc": item.authDesc,
|
||||||
|
"wechat":item. wechat,
|
||||||
|
"email":item. email,
|
||||||
|
"id": item.id
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/** 监听主表的关联字段的变化,加载对应的子表数据 */
|
/** 监听主表的关联字段的变化,加载对应的子表数据 */
|
||||||
watch(
|
watch(
|
||||||
() => props.contractId,
|
() => props.contractId,
|
||||||
|
|
@ -111,24 +145,6 @@ watch(
|
||||||
{ immediate: true }
|
{ immediate: true }
|
||||||
)
|
)
|
||||||
|
|
||||||
/** 新增按钮操作 */
|
|
||||||
const handleAdd = () => {
|
|
||||||
const row = {
|
|
||||||
id: undefined,
|
|
||||||
contractId: undefined,
|
|
||||||
customerName: undefined,
|
|
||||||
unifiedCreditCode: undefined,
|
|
||||||
invoicingAddress: undefined,
|
|
||||||
invoicingTelephone: undefined,
|
|
||||||
companyBank: undefined,
|
|
||||||
companyAccount: undefined,
|
|
||||||
companyAddress: undefined,
|
|
||||||
deletedFlag: undefined
|
|
||||||
}
|
|
||||||
row.contractId = props.contractId
|
|
||||||
formData.value.push(row)
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
const handleDelete = (index) => {
|
const handleDelete = (index) => {
|
||||||
formData.value.splice(index, 1)
|
formData.value.splice(index, 1)
|
||||||
|
|
|
||||||
|
|
@ -117,13 +117,13 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="初始额度" prop="signPhoneNumber">
|
<el-form-item label="初始额度" prop="creditLimit">
|
||||||
<el-input v-model="formData.signPhoneNumber" placeholder="请输入初始额度" disabled />
|
<el-input v-model="formData.creditLimit" placeholder="请输入初始额度" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="目前额度" prop="beforeAmount">
|
<el-form-item label="目前额度" prop="creditLimit">
|
||||||
<el-input v-model="formData.beforeAmount" placeholder="请输入目前额度" disabled />
|
<el-input v-model="formData.creditLimit" placeholder="请输入目前额度" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
|
|
@ -140,21 +140,21 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="调整金额(元)" prop="changeAmount">
|
<el-form-item label="调整金额(元)" prop="changeAmount">
|
||||||
<el-input v-model="formData.changeAmount" :disabled="!!type" placeholder="请输入调整金额(元)" />
|
<el-input v-model="formData.changeAmount" type="number" :disabled="!!type" placeholder="请输入调整金额(元)" @input="onChangeAmount" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="最终额度" prop="afterAmount">
|
<el-form-item label="最终额度" prop="afterAmount">
|
||||||
<el-input v-model="formData.afterAmount" :disabled="!!type" placeholder="请输入最终额度" />
|
<el-input v-model="formData.afterAmount" type="number" disabled placeholder="请输入最终额度" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="调整金额截止日期" prop="establishmentDate">
|
<el-form-item label="调整金额截止日期" prop="changeAmountDeadline">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="formData.lastPayDate"
|
v-model="formData.changeAmountDeadline"
|
||||||
|
value-format="YYYY-MM-DD"
|
||||||
type="date"
|
type="date"
|
||||||
:disabled="!!type"
|
:disabled="!!type"
|
||||||
value-format="x"
|
|
||||||
placeholder="请选择调整金额截止日期"
|
placeholder="请选择调整金额截止日期"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
|
|
@ -172,7 +172,6 @@
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { getIntDictOptions, getStrDictOptions, DICT_TYPE } from '@/utils/dict'
|
import { getIntDictOptions, getStrDictOptions, DICT_TYPE } from '@/utils/dict'
|
||||||
import { QuotationApi, QuotationVO } from '@/api/crm/quotation'
|
|
||||||
import { defaultProps, handleTree } from '@/utils/tree'
|
import { defaultProps, handleTree } from '@/utils/tree'
|
||||||
import { BillTemplateApi, BillTemplateVO } from '@/api/crm/billtemplate'
|
import { BillTemplateApi, BillTemplateVO } from '@/api/crm/billtemplate'
|
||||||
import * as ContractApi from '@/api/crm/contract'
|
import * as ContractApi from '@/api/crm/contract'
|
||||||
|
|
@ -219,7 +218,7 @@ const formData = ref({
|
||||||
paymentTerm: undefined,
|
paymentTerm: undefined,
|
||||||
creditMethod: undefined,
|
creditMethod: undefined,
|
||||||
creditCalcCycle: undefined,
|
creditCalcCycle: undefined,
|
||||||
creditLimit: undefined,
|
creditLimit: 0,
|
||||||
partnerCompanyId: undefined,
|
partnerCompanyId: undefined,
|
||||||
deptId: undefined,
|
deptId: undefined,
|
||||||
creator: undefined,
|
creator: undefined,
|
||||||
|
|
@ -250,11 +249,11 @@ const formData = ref({
|
||||||
bBusinessLicense: undefined // 营业执照
|
bBusinessLicense: undefined // 营业执照
|
||||||
})
|
})
|
||||||
const formRules = reactive({
|
const formRules = reactive({
|
||||||
cooperationType: [{ required: true, message: '合作类型不能为空', trigger: 'change' }],
|
changeAmount: [{ required: true, message: '调整额度不能为空', trigger: 'change' }],
|
||||||
no: [{ required: true, message: '报价单编号不能为空', trigger: 'blur' }],
|
changeAmountDeadline: [{ required: true, message: '调整日期不能为空', trigger: 'blur' }],
|
||||||
customerId: [{ required: true, message: '客户id不能为空', trigger: 'change' }],
|
// customerId: [{ required: true, message: '客户id不能为空', trigger: 'change' }],
|
||||||
businessId: [{ required: true, message: '商机编号不能为空', trigger: 'change' }],
|
// businessId: [{ required: true, message: '商机编号不能为空', trigger: 'change' }],
|
||||||
invoiceTemplateId: [{ required: true, message: '票据模板Id不能为空', trigger: 'change' }]
|
// invoiceTemplateId: [{ required: true, message: '票据模板Id不能为空', trigger: 'change' }]
|
||||||
})
|
})
|
||||||
const formRef = ref() // 表单 Ref
|
const formRef = ref() // 表单 Ref
|
||||||
|
|
||||||
|
|
@ -265,27 +264,9 @@ const quotationProductFormRef = ref()
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
type: propTypes.string.def('')
|
type: propTypes.string.def('')
|
||||||
})
|
})
|
||||||
const onBusinessChange = async (businessId: string) => {
|
|
||||||
if (!businessId) return
|
const onChangeAmount = async (amount: number) => {
|
||||||
try {
|
formData.value.afterAmount = Number(formData.value.creditLimit) + Number(amount);
|
||||||
formLoading.value = true;
|
|
||||||
const res = await BusinessApi.getBusiness(businessId);
|
|
||||||
formData.value.customerId = res.customerId;
|
|
||||||
formData.value.creditLimit = res.creditLimit; // 保存详情信息
|
|
||||||
formData.value.ownerUserId = res.ownerUserId; // 保存详情信息
|
|
||||||
formData.value.paymentTerm = res.paymentTerm;
|
|
||||||
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);
|
|
||||||
} catch (err) {
|
|
||||||
} finally {
|
|
||||||
formLoading.value = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const onCustomerChange = async (customerId: string) => {
|
const onCustomerChange = async (customerId: string) => {
|
||||||
|
|
@ -339,7 +320,7 @@ const open = async (type: string) => {
|
||||||
if (type) {
|
if (type) {
|
||||||
formLoading.value = true
|
formLoading.value = true
|
||||||
try {
|
try {
|
||||||
formData.value = await QuotationApi.getQuotation(type)
|
formData.value = await ContractApi.getContract(type)
|
||||||
} finally {
|
} finally {
|
||||||
formLoading.value = false
|
formLoading.value = false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -123,9 +123,9 @@
|
||||||
<el-form-item label="协议截止日" prop="agreementDeadline">
|
<el-form-item label="协议截止日" prop="agreementDeadline">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
:disabled="!!type"
|
:disabled="!!type"
|
||||||
v-model="formData.lastPayDate"
|
v-model="formData.agreementDeadline"
|
||||||
type="date"
|
type="date"
|
||||||
value-format="x"
|
value-format="YYYY-MM-DD"
|
||||||
placeholder="请选择协议截止日"
|
placeholder="请选择协议截止日"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
|
|
@ -137,12 +137,12 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="调整金额截止日期" prop="establishmentDate">
|
<el-form-item label="调整金额截止日期" prop="extensionDate">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="formData.lastPayDate"
|
v-model="formData.extensionDate"
|
||||||
:disabled="!!type"
|
:disabled="!!type"
|
||||||
type="date"
|
type="date"
|
||||||
value-format="x"
|
value-format="YYYY-MM-DD"
|
||||||
placeholder="调整金额截止日期"
|
placeholder="调整金额截止日期"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
|
|
@ -240,11 +240,11 @@ const formData = ref({
|
||||||
bBusinessLicense: undefined // 营业执照
|
bBusinessLicense: undefined // 营业执照
|
||||||
})
|
})
|
||||||
const formRules = reactive({
|
const formRules = reactive({
|
||||||
cooperationType: [{ required: true, message: '合作类型不能为空', trigger: 'change' }],
|
// cooperationType: [{ required: true, message: '合作类型不能为空', trigger: 'change' }],
|
||||||
no: [{ required: true, message: '报价单编号不能为空', trigger: 'blur' }],
|
// no: [{ required: true, message: '报价单编号不能为空', trigger: 'blur' }],
|
||||||
customerId: [{ required: true, message: '客户id不能为空', trigger: 'change' }],
|
// customerId: [{ required: true, message: '客户id不能为空', trigger: 'change' }],
|
||||||
businessId: [{ required: true, message: '商机编号不能为空', trigger: 'change' }],
|
// businessId: [{ required: true, message: '商机编号不能为空', trigger: 'change' }],
|
||||||
invoiceTemplateId: [{ required: true, message: '票据模板Id不能为空', trigger: 'change' }]
|
// invoiceTemplateId: [{ required: true, message: '票据模板Id不能为空', trigger: 'change' }]
|
||||||
})
|
})
|
||||||
const formRef = ref() // 表单 Ref
|
const formRef = ref() // 表单 Ref
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue