pull/781/head
parent
c6aeacc4f3
commit
d5190812ad
|
|
@ -6,9 +6,10 @@ VITE_DEV=true
|
|||
# 请求路径
|
||||
# VITE_BASE_URL='http://8.130.12.151:48080'
|
||||
# VITE_BASE_URL='http://lhy.free.idcfengye.com'
|
||||
# VITE_BASE_URL='http://m94844f6.natappfree.cc'
|
||||
VITE_BASE_URL='http://172.22.3.49:48080'
|
||||
# VITE_BASE_URL='http://172.22.3.203:48080'
|
||||
# VITE_BASE_URL='http://u82ba6cf.natappfree.cc'
|
||||
# VITE_BASE_URL='http://172.22.3.49:48080'
|
||||
VITE_BASE_URL='http://172.22.3.203:48080'
|
||||
# VITE_BASE_URL='http://172.22.3.168:48080'
|
||||
|
||||
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持 S3 服务
|
||||
VITE_UPLOAD_TYPE=server
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
import request from '@/config/axios'
|
||||
|
||||
// 行业 VO
|
||||
export interface IndustryVO {
|
||||
id: number // 主键
|
||||
industryId: string // 门类ID
|
||||
name: string // 门类名称
|
||||
parentId: string // 父门类ID
|
||||
levelType: number // 门类级别
|
||||
description: string // 描述
|
||||
}
|
||||
|
||||
// 行业 API
|
||||
export const IndustryApi = {
|
||||
// 查询行业树
|
||||
getIndustryPage: async (params: any) => {
|
||||
return await request.get({ url: `/crm/industry/getTree`, params })
|
||||
},
|
||||
|
||||
// 查询选中的树
|
||||
getIndustry: async () => {
|
||||
return await request.get({ url: `/crm/industry/getChooseTree` })
|
||||
},
|
||||
|
||||
// 新增行业
|
||||
createIndustry: async (data: IndustryVO) => {
|
||||
return await request.post({ url: `/crm/industry/create`, data })
|
||||
},
|
||||
|
||||
// 修改行业
|
||||
updateIndustry: async (data: IndustryVO) => {
|
||||
return await request.put({ url: `/crm/industry/update`, data })
|
||||
},
|
||||
|
||||
// 删除行业
|
||||
deleteIndustry: async (id: number) => {
|
||||
return await request.delete({ url: `/crm/industry/delete?id=` + id })
|
||||
},
|
||||
|
||||
// 导出行业 Excel
|
||||
exportIndustry: async (params) => {
|
||||
return await request.download({ url: `/crm/industry/export-excel`, params })
|
||||
}
|
||||
}
|
||||
|
|
@ -687,7 +687,6 @@ watch(
|
|||
/** 弹出气泡卡 */
|
||||
const openPopover = async (type: string) => {
|
||||
if (type === 'approve') {
|
||||
emit('updataData')
|
||||
// 校验流程表单
|
||||
const valid = await validateNormalForm()
|
||||
if (!valid) {
|
||||
|
|
|
|||
|
|
@ -483,8 +483,8 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="维护人" prop="afterSaleUserId">
|
||||
<el-select v-model="formData.afterSaleUserId" disabled placeholder="请选择售后维护人">
|
||||
<el-form-item label="维护人" prop="maintainer">
|
||||
<el-select v-model="formData.maintainer" disabled placeholder="请选择售后维护人">
|
||||
<el-option
|
||||
v-for="dict in userOptions"
|
||||
:key="dict.id"
|
||||
|
|
@ -696,7 +696,7 @@ const formData = ref({
|
|||
ownerUserId: undefined,
|
||||
clueDeveloper: undefined,
|
||||
contractor: undefined,
|
||||
afterSaleUserId: undefined,
|
||||
maintainer: undefined,
|
||||
collUserId: undefined,
|
||||
totalPrice: undefined,
|
||||
contractBody: undefined,
|
||||
|
|
@ -764,11 +764,11 @@ const open = async (type: string) => {
|
|||
// formLoading.value = true
|
||||
try {
|
||||
let data = await ContractApi.getContract(type)
|
||||
data.legalPersonName = data.customerDO.legalPersonName
|
||||
data.creditNo = data.customerDO.creditNo
|
||||
data.registeredAddress = data.customerDO.registeredAddress
|
||||
data.actualCapital = data.customerDO.actualCapital
|
||||
data.socialEmployeeNum = data.customerDO.socialEmployeeNum
|
||||
// data.legalPersonName = data.customerDO.legalPersonName
|
||||
// data.creditNo = data.customerDO.creditNo
|
||||
// data.registeredAddress = data.customerDO.registeredAddress
|
||||
// data.actualCapital = data.customerDO.actualCapital
|
||||
// data.socialEmployeeNum = data.customerDO.socialEmployeeNum
|
||||
handleQuotationChange(formData.value.quotationId)
|
||||
formData.value = data
|
||||
} finally {
|
||||
|
|
@ -870,7 +870,7 @@ const resetForm = () => {
|
|||
ownerUserId: undefined,
|
||||
clueDeveloper: undefined,
|
||||
contractor: undefined,
|
||||
afterSaleUserId: undefined,
|
||||
maintainer: undefined,
|
||||
collUserId: undefined,
|
||||
totalPrice: undefined,
|
||||
contractBody: undefined,
|
||||
|
|
@ -966,7 +966,7 @@ const onCustomerChange = async (customerId: string) => {
|
|||
formData.value.financingInfo = customerRes.financingInfo;
|
||||
formData.value.socialEmployeeNum = customerRes.socialEmployeeNum;
|
||||
formData.value.registeredAddress = customerRes.registeredAddress;
|
||||
formData.value.afterSaleUserId = customerRes.maintainer;
|
||||
formData.value.maintainer = customerRes.maintainer;
|
||||
formData.value.clueDeveloper = customerRes.clueDeveloper;
|
||||
|
||||
await handleQuotationChange(customerRes.quotationId);
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@ const getList = async (val) => {
|
|||
companyBank: v.companyBank,
|
||||
companyAccount: v.companyAccount,
|
||||
companyAddress: v.companyAddress,
|
||||
id: v.id
|
||||
})
|
||||
})
|
||||
formData.value = newList
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
<template>
|
||||
|
||||
<el-table :data="formData" class="-mt-10px">
|
||||
<el-table-column label="序号" type="index" width="100" />
|
||||
<el-table-column label="是否授权人" prop="authPersonType" min-width="150" />
|
||||
|
|
|
|||
|
|
@ -131,6 +131,26 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
<template #seriousIllegal>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="严重违法" prop="seriousIllegal">
|
||||
<el-radio-group v-model="formData.seriousIllegal" disabled>
|
||||
<el-radio :label="1">是</el-radio>
|
||||
<el-radio :label="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
<template #liquidation>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="清算信息" prop="liquidation">
|
||||
<el-radio-group v-model="formData.liquidation" disabled>
|
||||
<el-radio :label="1">是</el-radio>
|
||||
<el-radio :label="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
<template #creditAmount>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="初始额度" prop="creditLimit">
|
||||
|
|
|
|||
|
|
@ -132,6 +132,26 @@
|
|||
</el-col>
|
||||
|
||||
</template>
|
||||
<template #seriousIllegal>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="严重违法" prop="seriousIllegal">
|
||||
<el-radio-group v-model="formData.seriousIllegal" disabled>
|
||||
<el-radio :label="1">是</el-radio>
|
||||
<el-radio :label="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
<template #liquidation>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="清算信息" prop="liquidation">
|
||||
<el-radio-group v-model="formData.liquidation" disabled>
|
||||
<el-radio :label="1">是</el-radio>
|
||||
<el-radio :label="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
<template #agreementDeadline>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="协议截止日" prop="agreementDeadline">
|
||||
|
|
|
|||
|
|
@ -163,6 +163,8 @@ const formFields = ref({
|
|||
dishonestyRecord: 1,
|
||||
financeRecord: 1,
|
||||
judgmentRecord: 1,
|
||||
seriousIllegal: 1,
|
||||
liquidation: 1,
|
||||
creditAmount: 1,
|
||||
creditLimit: 1,
|
||||
partnerCompanyId: 1,
|
||||
|
|
@ -184,6 +186,7 @@ const formFields = ref({
|
|||
afterAmount: 1,
|
||||
changeAmountDeadline: 1,
|
||||
contractAAuthorizedCompanysother: 1,
|
||||
contractAAuthorizedCompanyscustomerName: 1,
|
||||
contractAAuthorizedCompanysunifiedCreditCode: 1,
|
||||
contractAAuthorizedCompanysinvoicingAddress: 1,
|
||||
contractAAuthorizedCompanysinvoicingTelephone: 1,
|
||||
|
|
@ -309,7 +312,8 @@ const open = async (type: string) => {
|
|||
formData.value.extensionDate = data.extensionDate
|
||||
formData.value.note = data.note
|
||||
formData.value.id = data.id
|
||||
// formData.value.creditAmount = data.creditAmount
|
||||
formData.value.contractAAuthorizedCompanys = data.contractAAuthorizedCompanys
|
||||
formData.value.creditAmount = data.creditAmount
|
||||
formData.value.creditLimit = data.beforeAmount
|
||||
} finally {
|
||||
formLoading.value = false
|
||||
|
|
@ -408,6 +412,7 @@ if(contractFormRef.value) {
|
|||
dataFormList.map(item => {
|
||||
ids.push(item.id)
|
||||
})
|
||||
console.log('%csrc/views/crm/contract/detail/ContractChangeDetail.vue:415 ids', 'color: #007acc;', ids);
|
||||
data.afterAuthorizerId = ids.join(',')
|
||||
} else if(formData.value.changeItem == 3) {
|
||||
data.agreementDeadline = dataFormList.agreementDeadline
|
||||
|
|
@ -427,10 +432,11 @@ if(contractFormRef.value) {
|
|||
} else if(formData.value.changeItem == 6) {
|
||||
data.newContract = data
|
||||
}
|
||||
dialogVisible.value = false
|
||||
return
|
||||
await ContractApi.changeContractUpdate(data)
|
||||
message.success(t('common.updateSuccess'))
|
||||
|
||||
dialogVisible.value = false
|
||||
// 发送操作成功的事件
|
||||
} finally {
|
||||
formLoading.value = false
|
||||
|
|
|
|||
|
|
@ -220,10 +220,10 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
<template #creditNo>
|
||||
<template #creditCode>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="统一信用代码" prop="creditNo">
|
||||
<el-input v-model="formData.creditNo" placeholder="" disabled />
|
||||
<el-form-item label="统一信用代码" prop="creditCode">
|
||||
<el-input v-model="formData.creditCode" placeholder="" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
|
|
@ -576,10 +576,10 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
<template #afterSaleUserId>
|
||||
<template #maintainer>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="维护人" prop="afterSaleUserId">
|
||||
<el-select v-model="formData.afterSaleUserId" :disabled="formFields.afterSaleUserId !== 2 || isTrue" placeholder="">
|
||||
<el-form-item label="维护人" prop="maintainer">
|
||||
<el-select v-model="formData.maintainer" :disabled="formFields.maintainer !== 2 || isTrue" placeholder="">
|
||||
<el-option
|
||||
v-for="dict in userOptions"
|
||||
:key="dict.id"
|
||||
|
|
@ -590,14 +590,14 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
<template #expanderUserId>
|
||||
<template #clueDeveloper>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="拓展人" prop="expanderUserId">
|
||||
<el-form-item label="拓展人" prop="clueDeveloper">
|
||||
<el-select
|
||||
class="w-1/1"
|
||||
placeholder="请选择拓展人"
|
||||
v-model="formData.expanderUserId"
|
||||
:disabled="formFields.expanderUserId !== 2 || isTrue"
|
||||
v-model="formData.clueDeveloper"
|
||||
:disabled="formFields.clueDeveloper !== 2 || isTrue"
|
||||
filterable
|
||||
>
|
||||
<el-option
|
||||
|
|
@ -735,7 +735,7 @@ const formFields = ref({
|
|||
other1: 1,
|
||||
customerId1: 1,
|
||||
legalPersonName: 1,
|
||||
creditNo: 1,
|
||||
creditCode: 1,
|
||||
regType: 1,
|
||||
actualCapital: 1,
|
||||
socialEmployeeNum: 1,
|
||||
|
|
@ -762,8 +762,8 @@ const formFields = ref({
|
|||
servicor: 1,
|
||||
technicalLead: 1,
|
||||
settlementLead: 1,
|
||||
afterSaleUserId: 1,
|
||||
expanderUserId: 1,
|
||||
maintainer: 1,
|
||||
clueDeveloper: 1,
|
||||
// collUserId: 1,
|
||||
// contractBody: 1,
|
||||
// contractAgreement: 1,
|
||||
|
|
@ -830,6 +830,7 @@ const formData = ref({
|
|||
latePaymentRate: undefined,
|
||||
settleMethod: undefined,
|
||||
lastPayDate: undefined,
|
||||
creditCode: undefined,
|
||||
contractTerm: undefined,
|
||||
signUserId: undefined,
|
||||
signPhoneNumber: undefined,
|
||||
|
|
@ -838,9 +839,9 @@ const formData = ref({
|
|||
offlinePrice: undefined,
|
||||
onlinePrice: undefined,
|
||||
ownerUserId: undefined,
|
||||
expanderUserId: undefined,
|
||||
clueDeveloper: undefined,
|
||||
contractor: undefined,
|
||||
afterSaleUserId: undefined,
|
||||
maintainer: undefined,
|
||||
collUserId: undefined,
|
||||
totalPrice: undefined,
|
||||
contractBody: undefined,
|
||||
|
|
@ -1002,9 +1003,9 @@ const resetForm = () => {
|
|||
offlinePrice: undefined,
|
||||
onlinePrice: undefined,
|
||||
ownerUserId: undefined,
|
||||
expanderUserId: undefined,
|
||||
clueDeveloper: undefined,
|
||||
contractor: undefined,
|
||||
afterSaleUserId: undefined,
|
||||
maintainer: undefined,
|
||||
collUserId: undefined,
|
||||
totalPrice: undefined,
|
||||
contractBody: undefined,
|
||||
|
|
@ -1033,10 +1034,10 @@ const handleQuotationChange = async (quotationId: number) => {
|
|||
formData.value.invoiceTemplateId = quotation.invoiceTemplateId;
|
||||
|
||||
formData.value.ownerUserId = quotation.ownerUserId;
|
||||
// formData.value.clueDeveloper = quotation.clueDeveloper;
|
||||
formData.value.ownerUserMobile = quotation.ownerUserMobile;
|
||||
formData.value.ownerUserWechat = quotation.ownerUserWechat;
|
||||
formData.value.ownerUserEmail = quotation.ownerUserEmail;
|
||||
formData.value.expanderUserId = quotation.expanderUserId;
|
||||
formData.value.signUserId = quotation.signUserId;
|
||||
formData.value.signPhoneNumber = quotation.signPhoneNumber;
|
||||
formData.value.signEmail = quotation.signEmail;
|
||||
|
|
@ -1070,22 +1071,24 @@ const onCustomerChange = async (customerId: string) => {
|
|||
try {
|
||||
formLoading.value = true;
|
||||
const customerRes = await CustomerApi.getCustomer(customerId);
|
||||
formData.value.cooperationType = customerRes.cooperationType;
|
||||
formData.value.companyType = customerRes.companyType;
|
||||
formData.value.listingStatus = customerRes.listingStatus;
|
||||
formData.value.financingInfo = customerRes.financingInfo;
|
||||
formData.value.paidInCapital = customerRes.paidInCapital;
|
||||
formData.value.insuredCount = customerRes.insuredCount;
|
||||
formData.value.establishmentDate = customerRes.establishmentDate;
|
||||
formData.value.enterpriseType = customerRes.enterpriseType;
|
||||
formData.value.actualCapital = customerRes.actualCapital;
|
||||
// formData.value.cooperationType = customerRes.cooperationType;
|
||||
// formData.value.companyType = customerRes.companyType;
|
||||
// formData.value.listingStatus = customerRes.listingStatus;
|
||||
// formData.value.financingInfo = customerRes.financingInfo;
|
||||
// formData.value.paidInCapital = customerRes.paidInCapital;
|
||||
// formData.value.insuredCount = customerRes.insuredCount;
|
||||
// formData.value.establishmentDate = customerRes.establishmentDate;
|
||||
// formData.value.enterpriseType = customerRes.enterpriseType;
|
||||
|
||||
formData.value.partAddress = customerRes.partAddress;
|
||||
formData.value.listingStatus = customerRes.listingStatus;
|
||||
// formData.value.partAddress = customerRes.partAddress;
|
||||
// formData.value.listingStatus = customerRes.listingStatus;
|
||||
|
||||
|
||||
formData.value.legalPersonName = customerRes.legalPersonName;
|
||||
formData.value.creditCode = customerRes.creditCode;
|
||||
formData.value.regType = customerRes.regType;
|
||||
formData.value.financingInfo = customerRes.financingInfo;
|
||||
// formData.value.financingInfo = customerRes.financingInfo;//融资薪资
|
||||
formData.value.actualCapital = customerRes.actualCapital;
|
||||
formData.value.socialEmployeeNum = customerRes.socialEmployeeNum;
|
||||
formData.value.registeredAddress = customerRes.registeredAddress;
|
||||
} catch (err) {
|
||||
|
|
@ -1102,6 +1105,7 @@ const onPartnerChange = async (id: string) => {
|
|||
const res = await ContractApi.getOrgInfo(id);
|
||||
formData.value.bankName = res.bankName;
|
||||
formData.value.bankAccount = res.bankAccount;
|
||||
formData.value.creditCode = res.creditCode;
|
||||
formData.value.legalRepresentative = res.legalRepresentative;
|
||||
formData.value.businessLicenseNumber = res.businessLicenseNumber;
|
||||
formData.value.businessLicense = res.businessLicense;
|
||||
|
|
|
|||
|
|
@ -44,9 +44,9 @@
|
|||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<!-- <el-col :span="12">
|
||||
<el-form-item label="公司类型" prop="cooperationType">
|
||||
<el-select v-model="formData.cooperationType" filterable placeholder="请选择合作类型" class="w-1/1">
|
||||
<el-select v-model="formData.cooperationType" filterable placeholder="请选择公司类型" class="w-1/1">
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_COOPERATION_TYPE)"
|
||||
:key="dict.value"
|
||||
|
|
@ -55,6 +55,18 @@
|
|||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
<el-col :span="12">
|
||||
<el-form-item label="客户来源" prop="source">
|
||||
<el-select v-model="formData.source" filterable placeholder="请选择客户来源" class="w-1/1">
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_CUSTOMER_SOURCE)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="维护人" prop="maintainer">
|
||||
|
|
@ -73,19 +85,19 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="客户来源" prop="source">
|
||||
<el-select v-model="formData.source" filterable placeholder="请选择客户来源" class="w-1/1">
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_CUSTOMER_SOURCE)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
<!-- <el-col :span="12">
|
||||
<el-form-item label="所属行业" prop="industryId">
|
||||
<el-select v-model="formData.industryId" placeholder="请选择所属行业" >
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_CUSTOMER_INDUSTRY)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
</el-col> -->
|
||||
<el-col :span="12">
|
||||
<el-form-item label="签约人" prop="contractor">
|
||||
<el-select
|
||||
class="w-1/1"
|
||||
|
|
@ -102,18 +114,7 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所属行业" prop="industryId">
|
||||
<el-select v-model="formData.industryId" placeholder="请选择所属行业" >
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_CUSTOMER_INDUSTRY)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!-- <el-col :span="12">
|
||||
<el-form-item label="合作地区" prop="cooperationArea">
|
||||
<el-select v-model="formData.cooperationArea" filterable placeholder="请选择合作地区" class="w-1/1">
|
||||
|
|
@ -144,8 +145,20 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="法人代表" prop="legalPersonName">
|
||||
<el-input v-model="formData.legalPersonName" disabled placeholder="" />
|
||||
<el-form-item label="结算对接人" prop="settlementLead">
|
||||
<el-select
|
||||
class="w-1/1"
|
||||
placeholder="请选择结算对接人"
|
||||
v-model="formData.settlementLead"
|
||||
filterable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in userOptions"
|
||||
:key="item.id"
|
||||
:label="item.nickname"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
|
|
@ -274,21 +287,10 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="结算对接人" prop="settlementLead">
|
||||
<el-select
|
||||
class="w-1/1"
|
||||
placeholder="请选择结算对接人"
|
||||
v-model="formData.settlementLead"
|
||||
filterable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in userOptions"
|
||||
:key="item.id"
|
||||
:label="item.nickname"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="法人代表" prop="legalPersonName">
|
||||
<el-input v-model="formData.legalPersonName" disabled placeholder="" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
<!-- <el-descriptions-item label="客户名称">
|
||||
{{ customer.name }}
|
||||
</el-descriptions-item> -->
|
||||
<el-descriptions-item label="成交状态">{{ customer.dealStatus ? '已成交' : '未成交' }}</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="成交状态">{{ customer.dealStatus ? '已成交' : '未成交' }}</el-descriptions-item> -->
|
||||
<el-descriptions-item label="客户来源">
|
||||
<dict-tag :type="DICT_TYPE.CRM_CUSTOMER_SOURCE" :value="customer.source" />
|
||||
</el-descriptions-item>
|
||||
|
|
@ -47,7 +47,8 @@
|
|||
<!-- <el-descriptions-item label="合作地区">{{ getName(getIntDictOptions(DICT_TYPE.CRM_COOPERATION_AREA),customer.cooperationArea) }}</el-descriptions-item> -->
|
||||
<!-- <el-descriptions-item label="行业">{{ getName(getIntDictOptions(DICT_TYPE.CRM_CUSTOMER_INDUSTRY),customer.industryId) }}</el-descriptions-item> -->
|
||||
<el-descriptions-item label="所属行业">
|
||||
<dict-tag :type="DICT_TYPE.CRM_CUSTOMER_INDUSTRY" :value="customer.industryId" />
|
||||
<!-- <dict-tag :type="DICT_TYPE.CRM_CUSTOMER_INDUSTRY" :value="customer.industryId" /> -->
|
||||
{{customer.industry}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="合作状态">
|
||||
<dict-tag :type="DICT_TYPE.CRM_CUSTOMER_STSTUS" :value="customer.customerStatus" />
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
分配
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="customer.clueDeveloper && !customer.dealStatus"
|
||||
v-if="customer.clueDeveloper && customer.customerStatus != 4"
|
||||
@click="handlePutPool"
|
||||
>
|
||||
放入公海
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="所属行业" prop="industryId">
|
||||
<!-- <el-form-item label="所属行业" prop="industryId">
|
||||
<el-select
|
||||
v-model="queryParams.industryId"
|
||||
class="!w-240px"
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="合作状态" prop="customerStatus">
|
||||
<el-select
|
||||
v-model="queryParams.customerStatus"
|
||||
|
|
@ -145,11 +145,11 @@
|
|||
<dict-tag :type="DICT_TYPE.CRM_CUSTOMER_SOURCE" :value="scope.row.source" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="所属行业" prop="industryId" width="100">
|
||||
<template #default="scope">
|
||||
<el-table-column align="center" label="所属行业" prop="industry" width="100" />
|
||||
<!-- <template #default="scope">
|
||||
<dict-tag :type="DICT_TYPE.CRM_CUSTOMER_INDUSTRY" :value="scope.row.industryId" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template> -->
|
||||
<!-- </el-table-column> -->
|
||||
<!-- <el-table-column align="center" label="线索人" prop="clueDeveloperName" width="120">
|
||||
<template #default="scope">
|
||||
{{scope.row.clueDeveloperName || '暂无'}}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,162 @@
|
|||
<template>
|
||||
<ContentWrap>
|
||||
<el-form
|
||||
ref="formRef"
|
||||
:model="formData"
|
||||
:rules="formRules"
|
||||
label-width="160px"
|
||||
v-loading="formLoading"
|
||||
>
|
||||
<el-card shadow="never">
|
||||
<!-- 操作 -->
|
||||
<template #header>
|
||||
<div class="flex items-center justify-between">
|
||||
<CardTitle title="行业设置" />
|
||||
<el-button type="primary" @click="onSubmit" v-hasPermi="['crm:contract-config:update']">
|
||||
保存
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
<!-- 表单 -->
|
||||
<el-form-item label="提前提醒设置" prop="notifyEnabled">
|
||||
<el-tree
|
||||
ref="treeRef"
|
||||
v-model="formData.deptId"
|
||||
:data="list"
|
||||
|
||||
:props="props"
|
||||
filterable
|
||||
@check="nodeClick"
|
||||
:cache-data="cacheData"
|
||||
node-key="id"
|
||||
multiple
|
||||
:render-after-expand="false"
|
||||
show-checkbox
|
||||
placeholder="请选择归属部门"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-card>
|
||||
</el-form>
|
||||
</ContentWrap>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import download from '@/utils/download'
|
||||
import { IndustryApi, IndustryVO } from '@/api/crm/industry'
|
||||
import IndustryForm from './IndustryForm.vue'
|
||||
import { defaultProps, handleTree } from '@/utils/tree'
|
||||
|
||||
/** 行业 列表 */
|
||||
defineOptions({ name: 'Industry' })
|
||||
|
||||
const message = useMessage() // 消息弹窗
|
||||
const { t } = useI18n() // 国际化
|
||||
|
||||
const formData = reactive({
|
||||
deptId: undefined
|
||||
})
|
||||
const loading = ref(true) // 列表的加载中
|
||||
const list = ref<IndustryVO[]>([]) // 列表的数据
|
||||
const total = ref(0) // 列表的总页数
|
||||
const props = ref({
|
||||
label: 'name',
|
||||
children: 'children',
|
||||
isLeaf: 'isLeaf'
|
||||
})
|
||||
const queryParams = reactive({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
industryId: undefined,
|
||||
name: undefined,
|
||||
parentId: undefined,
|
||||
levelType: undefined
|
||||
})
|
||||
const queryFormRef = ref() // 搜索的表单
|
||||
const exportLoading = ref(false) // 导出的加载中
|
||||
const treeRef = ref('')
|
||||
const cacheDataList = ref([])
|
||||
const formLoading = ref(false)
|
||||
|
||||
|
||||
const load = (node, resolve) => {
|
||||
if (!!node.data && !node.data.children) return resolve([])
|
||||
|
||||
let arr = []
|
||||
node.data.children.map(item => {
|
||||
if (!item.children.length) item.isLeaf = true
|
||||
|
||||
arr.push(item)
|
||||
})
|
||||
setTimeout(() => {
|
||||
resolve(node.data.children)
|
||||
}, 400)
|
||||
}
|
||||
|
||||
const nodeClick = (checkedNodes,checkedKeys,halfCheckedNodes,halfCheckedKeys) => {
|
||||
// console.log('%csrc/views/crm/industry/index.vue:96 node', 'color: #007acc;', checkedKeys);
|
||||
cacheDataList.value = [...checkedKeys.checkedKeys, ...checkedKeys.halfCheckedKeys]
|
||||
}
|
||||
|
||||
/** 查询列表 */
|
||||
const getList = async () => {
|
||||
formLoading.value = true
|
||||
try {
|
||||
list.value = await IndustryApi.getIndustryPage()
|
||||
// getIds(list.value)
|
||||
} finally {
|
||||
formLoading.value = false
|
||||
}
|
||||
}
|
||||
// 查询选中的树
|
||||
const getCheckNodes = async () => {
|
||||
let data = await IndustryApi.getIndustry()
|
||||
setCheckedKeys(data.chooseIds)
|
||||
|
||||
}
|
||||
|
||||
const onSubmit = async () => {
|
||||
try {
|
||||
await IndustryApi.updateIndustry({
|
||||
ids: cacheDataList.value
|
||||
})
|
||||
message.success(t('common.updateSuccess'))
|
||||
} finally {
|
||||
}
|
||||
}
|
||||
|
||||
// const getIds = (data) => {
|
||||
// let arr = []
|
||||
// if(data && data.length) {
|
||||
// for(let i = 0; i < data.length; i++) {
|
||||
// if(data[i]['flag'])
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
const setCheckedKeys = (data) => {
|
||||
treeRef.value!.setCheckedKeys(data, false)
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
const resetQuery = () => {
|
||||
queryFormRef.value.resetFields()
|
||||
handleQuery()
|
||||
}
|
||||
|
||||
/** 添加/修改操作 */
|
||||
const formRef = ref()
|
||||
const openForm = (type: string, id?: number) => {
|
||||
formRef.value.open(type, id)
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** 初始化 **/
|
||||
onMounted(async() => {
|
||||
await getList()
|
||||
await getCheckNodes()
|
||||
})
|
||||
// onActivated(()=>{
|
||||
// getList()
|
||||
// })
|
||||
</script>
|
||||
|
|
@ -198,6 +198,26 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
<template #seriousIllegal>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="严重违法" prop="seriousIllegal">
|
||||
<el-radio-group v-model="formData.seriousIllegal" disabled>
|
||||
<el-radio :label="1">是</el-radio>
|
||||
<el-radio :label="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
<template #liquidation>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="清算信息" prop="liquidation">
|
||||
<el-radio-group v-model="formData.liquidation" disabled>
|
||||
<el-radio :label="1">是</el-radio>
|
||||
<el-radio :label="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
<div class="page-break"></div>
|
||||
<template #other1>
|
||||
<el-col :span="24">
|
||||
|
|
@ -666,6 +686,8 @@ const formFields = ref({ //字段显示隐藏权限控制,字段顺序就是显
|
|||
dishonestyRecord: 1,
|
||||
financeRecord: 1,
|
||||
judgmentRecord: 1,
|
||||
seriousIllegal: 1,
|
||||
liquidation: 1,
|
||||
other1: 1,
|
||||
partnerCompanyId: 1,
|
||||
creditCode: 1,
|
||||
|
|
|
|||
|
|
@ -113,6 +113,7 @@
|
|||
<el-input v-model="formData.startDate" disabled placeholder="" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<!-- <el-col :span="8">
|
||||
|
|
@ -173,6 +174,22 @@
|
|||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="严重违法" prop="seriousIllegal">
|
||||
<el-radio-group v-model="formData.seriousIllegal" disabled>
|
||||
<el-radio :label="1">是</el-radio>
|
||||
<el-radio :label="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="清算信息" prop="liquidation">
|
||||
<el-radio-group v-model="formData.liquidation" disabled>
|
||||
<el-radio :label="1">是</el-radio>
|
||||
<el-radio :label="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<ContentWrap style="border: none; font-weight: 700">需求信息</ContentWrap>
|
||||
|
||||
|
|
@ -609,6 +626,8 @@ const formData = ref({
|
|||
signEmail: undefined,
|
||||
signWechat: undefined,
|
||||
paymentTerm: undefined,
|
||||
seriousIllegal: undefined,
|
||||
liquidation: undefined,
|
||||
creditMethod: undefined,
|
||||
creditCalcCycle: undefined,
|
||||
creditLimit: undefined,
|
||||
|
|
@ -841,6 +860,8 @@ const onCustomerChange = async (customerId: string) => {
|
|||
formData.value.dishonestyRecord = customerRes.dishonestyRecord;
|
||||
formData.value.financeRecord = customerRes.financeRecord;
|
||||
formData.value.judgmentRecord = customerRes.judgmentRecord;
|
||||
formData.value.seriousIllegal = customerRes.seriousIllegal;
|
||||
formData.value.liquidation = customerRes.liquidation;
|
||||
|
||||
formData.value.creditAmount = customerRes.creditAmount || 0;
|
||||
formData.value.creditLimit = ((formData.value.creditAmount || 0) + (formData.value.creditLimitNum || 0)).toFixed(2)
|
||||
|
|
|
|||
|
|
@ -291,12 +291,12 @@
|
|||
>
|
||||
客户确认
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
<!-- <el-dropdown-item
|
||||
command="handleEnter"
|
||||
v-if="scope.row.confirmStatus == 0"
|
||||
>
|
||||
打印
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-item> -->
|
||||
<el-dropdown-item
|
||||
command="handleProcessDetail"
|
||||
v-if="scope.row.auditStatus == 1 || scope.row.auditStatus == 3"
|
||||
|
|
|
|||
Loading…
Reference in New Issue