关联单位
parent
8481fdd215
commit
3ba9acbcf5
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<Dialog title="添加商品" v-model="dialogVisible" width="50%">
|
||||
<Dialog title="添加关联单位" v-model="dialogVisible" width="50%">
|
||||
<!-- 搜索工作栏 -->
|
||||
<el-form
|
||||
class="-mb-15px"
|
||||
|
|
@ -25,7 +25,10 @@
|
|||
<Icon class="mr-5px" icon="ep:refresh" />
|
||||
重置
|
||||
</el-button>
|
||||
|
||||
<el-button v-hasPermi="['crm:customer-company:create']" type="primary" @click="openForm('create')">
|
||||
<Icon class="mr-5px" icon="ep:plus" />
|
||||
新增关联单位
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
|
@ -52,6 +55,8 @@
|
|||
</template>
|
||||
</Dialog>
|
||||
|
||||
<CustomerCompanyForm ref="formRef" @success="getList" />
|
||||
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
|
|
@ -60,7 +65,8 @@ import * as ProductApi from '@/api/crm/product'
|
|||
import { dateFormatter } from '@/utils/formatTime'
|
||||
import download from '@/utils/download'
|
||||
import { BillTemplateApi, BillTemplateVO } from '@/api/crm/billtemplate'
|
||||
import CustomerCompanyForm from './CustomerCompanyForm.vue'
|
||||
import CustomerCompanyForm from '../../views/crm/customercompany/CustomerCompanyForm.vue'
|
||||
import { CustomerCompanyApi, CustomerCompanyVO } from '@/api/crm/customercompany'
|
||||
|
||||
/** 票据模版 列表 */
|
||||
defineOptions({ name: 'BillTemplate' })
|
||||
|
|
@ -84,6 +90,12 @@ const queryParams = reactive({
|
|||
const bizId = ref('')
|
||||
const queryFormRef = ref() // 搜索的表单
|
||||
const exportLoading = ref(false) // 导出的加载中
|
||||
|
||||
/** 添加/修改操作 */
|
||||
const formRef = ref()
|
||||
const openForm = (type: string, id?: number) => {
|
||||
formRef.value.open(type, '', bizId.value)
|
||||
}
|
||||
/** 打开弹窗 */
|
||||
const open = async (data: [], id?: number) => {
|
||||
dialogVisible.value = true
|
||||
|
|
@ -131,10 +143,12 @@ const resetQuery = () => {
|
|||
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
||||
const submitForm = async () => {
|
||||
// 提交请求
|
||||
dialogVisible.value = false
|
||||
|
||||
// 发送操作成功的事件
|
||||
console.log('%csrc/components/relateCompany/index.vue:149 object', 'color: #007acc;', multipleSelection.value);
|
||||
emit('success', multipleSelection.value)
|
||||
// 提交请求
|
||||
dialogVisible.value = false
|
||||
}
|
||||
const setSelections = async () => {
|
||||
const selections = multipleSelection.value.map(item => {
|
||||
|
|
|
|||
|
|
@ -223,7 +223,8 @@ export enum DICT_TYPE {
|
|||
CRM_PARTNER_TYPE1 = 'CRM_PARTNER_TYPE1',//合作类型
|
||||
CRM_SERVICE_FEE_COLLECTION_METHOD = 'crm_service_fee_collection_method',//服务费收取方式
|
||||
CRM_CONTACT_ROLE_TYPE = 'crm_contact_role_type',//角色
|
||||
|
||||
CRM_CONTRACT_PENALTY_RATE = 'crm_contract_penalty_rate',//违约金
|
||||
CRM_CONTRACT_LATE_PAYMENT_RATE = 'crm_contract_late_payment_rate',//延期付款率
|
||||
CRM_PRODUCT_CATEGORY = "crm_product_category", //CRM 产品类型
|
||||
CRM_PRODUCT_DETAIL_TYPE = "crm_product_detail_type", //CRM 产品明细类型
|
||||
CRM_COOPERATION_TYPE = "crm_cooperation_type", //CRM 合作类型
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@
|
|||
</div>
|
||||
<ContracExtension ref="contractExtensionFormRef" :formFields="formFields" v-if="formData.changeItem == 3" :data="formData" />
|
||||
<ContractStop ref="contractStopFormRef" :formData="formData" :formFields="formFields" v-if="formData.changeItem == 4" />
|
||||
<ContractAAuthorizedCompanyForm ref="contractAAuthorizedCompanyFormRef1" :formFields="formFields" v-if="formData.changeItem == 5" :data="formData.contractAAuthorizedCompanys" />
|
||||
<ContractAAuthorizedCompanyForm ref="contractAAuthorizedCompanyFormRef1" :formFields="formFields" v-if="formData.changeItem == 5" :data="formData.contractAAuthorizedCompanys" :customerId="formData.customerId" />
|
||||
<ContractForm ref="contractFormRef" :type="1" v-if="formData.changeItem == 6" />
|
||||
</ContentWrap>
|
||||
</el-form>
|
||||
|
|
@ -173,6 +173,7 @@ const formFields = ref({
|
|||
afterAmount: 1,
|
||||
changeAmountDeadline: 2,
|
||||
contractAAuthorizedCompanysother: 1,
|
||||
contractAAuthorizedCompanyscustomerName: 1,
|
||||
contractAAuthorizedCompanysunifiedCreditCode: 1,
|
||||
contractAAuthorizedCompanysinvoicingAddress: 1,
|
||||
contractAAuthorizedCompanysinvoicingTelephone: 1,
|
||||
|
|
|
|||
|
|
@ -31,11 +31,11 @@
|
|||
<el-col :span="8">
|
||||
<el-form-item label="报价单编号" prop="quotationId">
|
||||
<el-select
|
||||
disabled
|
||||
@change="handleQuotationChange"
|
||||
v-model="formData.quotationId"
|
||||
placeholder=""
|
||||
class="w-1/1"
|
||||
disabled
|
||||
>
|
||||
<el-option
|
||||
v-for="item in quotationList"
|
||||
|
|
@ -81,11 +81,11 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<!-- <el-col :span="8">
|
||||
<el-form-item label="授信计算周期" prop="creditCalcCycle" >
|
||||
<el-input v-model="formData.creditCalcCycle" placeholder="" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-col> -->
|
||||
<!-- <el-col :span="8">
|
||||
<el-form-item label="票据模板" prop="invoiceTemplateId">
|
||||
<el-select v-model="formData.invoiceTemplateId" disabled placeholder="">
|
||||
|
|
@ -222,10 +222,10 @@
|
|||
</ContentWrap>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合作类型" prop="cooperationType">
|
||||
<el-select v-model="formData.cooperationType" disabled filterable clearable placeholder="" class="w-1/1">
|
||||
<el-form-item label="合作类型" prop="partnerType">
|
||||
<el-select v-model="formData.partnerType" disabled clearable placeholder="请选择合作类型">
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_COOPERATION_TYPE)"
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_PARTNER_TYPE1)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
|
|
@ -276,7 +276,7 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
<el-col :span="8">
|
||||
<!-- <el-col :span="8">
|
||||
<el-form-item label="手机号" prop="mobile">
|
||||
<el-input
|
||||
v-model="formData.ownerUserMobile"
|
||||
|
|
@ -302,7 +302,7 @@
|
|||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-col> -->
|
||||
<el-col :span="8">
|
||||
<el-form-item label="归属部门" prop="deptId">
|
||||
<el-tree-select
|
||||
|
|
@ -342,6 +342,11 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合同期限(月)" prop="contractTerm">
|
||||
<el-input v-model="formData.contractTerm" @input="changeTime" oninput = "value=value.replace(/[^\d]/g,'')" placeholder="请输入合同期限(月)" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合同结束时间" prop="endTime">
|
||||
<el-date-picker
|
||||
|
|
@ -355,14 +360,34 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合同期限(月)" prop="contractTerm">
|
||||
<el-input v-model="formData.contractTerm" @input="changeTime" oninput = "value=value.replace(/[^\d]/g,'')" placeholder="请输入合同期限(月)" />
|
||||
<el-form-item label="违约金比例(%)" prop="penaltyRate">
|
||||
<el-select v-model="formData.penaltyRate" placeholder="请选择违约金比例">
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_CONTRACT_PENALTY_RATE)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="延期付款利率(%)" prop="latePaymentRate">
|
||||
<el-select v-model="formData.latePaymentRate" placeholder="请选择延期付款利率">
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_CONTRACT_LATE_PAYMENT_RATE)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="账单日" prop="statementDate">
|
||||
<el-select v-model="formData.statementDate" placeholder="请选择账单日" >
|
||||
<el-select v-model="formData.statementDate" disabled placeholder="请选择账单日" >
|
||||
<el-option
|
||||
v-for="(dict, index) in statement"
|
||||
:key="index"
|
||||
|
|
@ -374,7 +399,7 @@
|
|||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="最晚付款日" prop="lastPayDate">
|
||||
<el-select v-model="formData.lastPayDate" placeholder="请选择最晚付款日" >
|
||||
<el-select v-model="formData.lastPayDate" disabled placeholder="请选择最晚付款日" >
|
||||
<el-option
|
||||
v-for="(dict, index) in statement"
|
||||
:key="index"
|
||||
|
|
@ -384,16 +409,6 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="违约金比例(%)" prop="penaltyRate">
|
||||
<el-input v-model="formData.penaltyRate" oninput = "value=value.replace(/[^\d]/g,'')" placeholder="请输入违约金比例" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="延期付款利率(%)" prop="latePaymentRate">
|
||||
<el-input v-model="formData.latePaymentRate" oninput = "value=value.replace(/[^\d]/g,'')" placeholder="请输入延期付款利率" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :span="8">
|
||||
<el-form-item label="票据模板" prop="invoiceTemplateId">
|
||||
<el-input v-model="formData.invoiceTemplateId" placeholder="请输入票据模板" disabled />
|
||||
|
|
@ -525,11 +540,11 @@
|
|||
<el-input v-model="formData.contractBody" type="textarea" rows="5" placeholder="请输入合同正文" />
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
<!-- <el-col :span="24">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="合同补充协议" prop="contractAgreement">
|
||||
<el-input v-model="formData.contractAgreement" type="textarea" rows="5" placeholder="请输入合同补充协议" />
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<ContentWrap style="border: none;font-weight:700">
|
||||
|
|
@ -549,7 +564,7 @@
|
|||
合同甲方关联单位
|
||||
</ContentWrap>
|
||||
<ContentWrap>
|
||||
<ContractAAuthorizedCompanyForm :formFields="formFields" ref="contractAAuthorizedCompanyFormRef" :data="formData.contractAAuthorizedCompanys" :contract-id="formData.id" />
|
||||
<ContractAAuthorizedCompanyForm :formFields="formFields" ref="contractAAuthorizedCompanyFormRef" :data="formData.contractAAuthorizedCompanys" :contract-id="formData.id" :customerId="formData.customerId" />
|
||||
</ContentWrap>
|
||||
<ContentWrap style="border: none;font-weight:700">
|
||||
合同甲方授权人信息
|
||||
|
|
@ -599,6 +614,7 @@ const props = defineProps({
|
|||
type: propTypes.number.def(undefined),
|
||||
changeType: propTypes.number.def(undefined),//合同变更不回显数据
|
||||
})
|
||||
const statement = ref(new Array(31).fill(null))
|
||||
const templateOptions = ref([])
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||
const dialogTitle = ref('') // 弹窗的标题
|
||||
|
|
@ -622,6 +638,7 @@ const formFields = ref({
|
|||
productsserviceInvoiceItem: 1,
|
||||
productsother1: 1,
|
||||
contractAAuthorizedCompanysother: 1,
|
||||
contractAAuthorizedCompanyscustomerName: 1,
|
||||
contractAAuthorizedCompanysunifiedCreditCode: 1,
|
||||
contractAAuthorizedCompanysinvoicingAddress: 1,
|
||||
contractAAuthorizedCompanysinvoicingTelephone: 1,
|
||||
|
|
@ -690,6 +707,7 @@ const formData = ref({
|
|||
deptId: undefined,
|
||||
quotationTimes: undefined,
|
||||
statementDate: undefined,
|
||||
contractType: 2,
|
||||
contractAAuthorizedCompanys: [],
|
||||
products: []
|
||||
})
|
||||
|
|
@ -715,7 +733,6 @@ const customerList = ref([]) // 客户列表的数据
|
|||
const quotationList = ref<QuotationVO[]>([])
|
||||
const contactList = ref<ContactApi.ContactVO[]>([])
|
||||
const orgList = ref([])
|
||||
const statement = ref(new Array(31).fill(null))
|
||||
|
||||
/** 子表的表单 */
|
||||
const subTabsName = ref('product')
|
||||
|
|
@ -744,7 +761,6 @@ const open = async (type: string) => {
|
|||
// formLoading.value = true
|
||||
try {
|
||||
formData.value = await ContractApi.getContract(type)
|
||||
console.log('%csrc/views/crm/contract/ContractForm.vue:614 object', 'color: #007acc;', formData.value);
|
||||
} finally {
|
||||
formLoading.value = false
|
||||
}
|
||||
|
|
@ -771,8 +787,6 @@ const submitForm = async () => {
|
|||
if (!valid) return
|
||||
// 提交请求
|
||||
if(contractAAuthorizedCompanyFormRef.value.getData().length) {
|
||||
const contractAAuthorizedCompanyValid = await contractAAuthorizedCompanyFormRef.value.validate()
|
||||
if (!contractAAuthorizedCompanyValid) return message.warning('请完善合同甲方关联单位')
|
||||
} else {
|
||||
return message.warning('请完善合同甲方关联单位')
|
||||
}
|
||||
|
|
@ -870,7 +884,7 @@ const handleQuotationChange = async (quotationId: number) => {
|
|||
try {
|
||||
const quotation = await QuotationApi.getQuotation(quotationId)
|
||||
formData.value.products = quotation.products;
|
||||
formData.value.customerId = quotation.customerId;
|
||||
// formData.value.customerId = quotation.customerId;
|
||||
|
||||
formData.value.invoiceTemplateId = quotation.invoiceTemplateId;
|
||||
|
||||
|
|
@ -885,7 +899,10 @@ const handleQuotationChange = async (quotationId: number) => {
|
|||
formData.value.paymentTerm = quotation.paymentTerm;
|
||||
|
||||
formData.value.partnerCompanyId = quotation.partnerCompanyId;
|
||||
formData.value.statementDate = quotation.statementDate;
|
||||
formData.value.lastPayDate = quotation.lastPayDate;
|
||||
|
||||
formData.value.partnerType = quotation.partnerType;
|
||||
formData.value.creditLimit = quotation.creditLimit;
|
||||
formData.value.creditMethod = quotation.creditMethod;
|
||||
formData.value.creditCalcCycle = quotation.creditCalcCycle;
|
||||
|
|
@ -911,8 +928,13 @@ const onCustomerChange = async (customerId: string) => {
|
|||
|
||||
try {
|
||||
formLoading.value = true;
|
||||
const customerRes = await CustomerApi.getCustomerDetail(customerId);
|
||||
formData.value.cooperationType = customerRes.cooperationType;
|
||||
let customerRes
|
||||
if(formType.value) {
|
||||
customerRes = await CustomerApi.getCustomer(customerId);
|
||||
}else {
|
||||
customerRes = await CustomerApi.getCustomerDetail(customerId);
|
||||
formData.value.quotationId = customerRes.quotationId;
|
||||
}
|
||||
formData.value.companyType = customerRes.companyType;
|
||||
formData.value.listingStatus = customerRes.listingStatus;
|
||||
formData.value.financingInfo = customerRes.financingInfo;
|
||||
|
|
@ -930,12 +952,11 @@ const onCustomerChange = async (customerId: string) => {
|
|||
formData.value.financingInfo = customerRes.financingInfo;
|
||||
formData.value.socialEmployeeNum = customerRes.socialEmployeeNum;
|
||||
formData.value.registeredAddress = customerRes.registeredAddress;
|
||||
formData.value.quotationId = customerRes.quotationId;
|
||||
formData.value.afterSaleUserId = customerRes.maintainer;
|
||||
formData.value.servicor = customerRes.servicor;
|
||||
formData.value.clueDeveloper = customerRes.developer;
|
||||
formData.value.technicalLead = customerRes.technicalLead;
|
||||
formData.value.settlementLead = customerRes.settlementLead;
|
||||
formData.value.clueDeveloper = customerRes.clueDeveloper;
|
||||
formData.value.servicor = quotation.servicor;
|
||||
formData.value.technicalLead = quotation.technicalLead;
|
||||
formData.value.settlementLead = quotation.settlementLead;
|
||||
await handleQuotationChange(customerRes.quotationId);
|
||||
|
||||
} catch (err) {
|
||||
|
|
@ -990,22 +1011,33 @@ const getContactOptions = computed(() =>
|
|||
const route = useRoute();
|
||||
onMounted(async () => {
|
||||
formData.value.contractor = useUserStore().getUser.id;
|
||||
|
||||
let isId = props.id || route.query.id
|
||||
if(!props.changeType) {
|
||||
formType.value = props.id || route.query.id
|
||||
|
||||
if (formType.value) await open(formType.value)
|
||||
}
|
||||
|
||||
formData.value.customerId = Number(route.query.bizId) || ''
|
||||
route.query.bizId ? formData.value.customerId = Number(route.query.bizId) : ''
|
||||
|
||||
if(formData.value.customerId) onCustomerChange(formData.value.customerId)
|
||||
// 获得客户列表
|
||||
customerList.value = await CustomerApi.getCustomerSimpleList()
|
||||
customerList.value = await CustomerApi.getSelfCustomerSimpleList()
|
||||
// 获得用户列表
|
||||
userOptions.value = await UserApi.getSimpleUserList()
|
||||
// 获得报价列表
|
||||
quotationList.value = await QuotationApi.getSelfSimpleQuotationList()
|
||||
if(isId) {
|
||||
let data = await QuotationApi.getQuotationPage({
|
||||
pageNo: 1,
|
||||
pageSize: 999,
|
||||
no: undefined,
|
||||
sceneType: '1',
|
||||
})
|
||||
quotationList.value = data.list
|
||||
|
||||
} else {
|
||||
quotationList.value = await QuotationApi.getSelfSimpleQuotationList()
|
||||
}
|
||||
|
||||
// //票据
|
||||
// const tempData = await BillTemplateApi.getBillTemplatePage({
|
||||
|
|
|
|||
|
|
@ -12,88 +12,25 @@
|
|||
<el-table-column label="序号" type="index" width="100" />
|
||||
</template>
|
||||
<template #contractAAuthorizedCompanyscustomerName>
|
||||
<el-table-column label="单位名称" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.customerName`" :rules="formRules.customerName" class="mb-0px!" v-if="!type">
|
||||
<el-input v-model="row.customerName" placeholder="请输入单位名称" />
|
||||
</el-form-item>
|
||||
<div v-else>
|
||||
{{row.customerName}}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="单位名称" min-width="150" prop="customerName" />
|
||||
</template>
|
||||
<template #contractAAuthorizedCompanysunifiedCreditCode>
|
||||
<el-table-column label="统一社会信用代码" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.unifiedCreditCode`" :rules="formRules.unifiedCreditCode" class="mb-0px!" v-if="!type">
|
||||
<el-input v-model="row.unifiedCreditCode" placeholder="请输入统一社会信用代码" />
|
||||
</el-form-item>
|
||||
<div v-else>
|
||||
{{row.unifiedCreditCode}}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="统一社会信用代码" min-width="150" prop="unifiedCreditCode" />
|
||||
</template>
|
||||
<template #contractAAuthorizedCompanysinvoicingAddress>
|
||||
<el-table-column label="开票地址" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.invoicingAddress`" :rules="formRules.invoicingAddress" class="mb-0px!" v-if="!type">
|
||||
<el-input v-model="row.invoicingAddress" placeholder="请输入开票地址" />
|
||||
</el-form-item>
|
||||
<div v-else>
|
||||
{{row.invoicingAddress}}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="开票地址" min-width="150" prop="invoicingAddress" />
|
||||
</template>
|
||||
<template #contractAAuthorizedCompanysinvoicingTelephone>
|
||||
<el-table-column label="开票电话" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.invoicingTelephone`" :rules="formRules.invoicingTelephone" class="mb-0px!" v-if="!type">
|
||||
<el-input v-model="row.invoicingTelephone" placeholder="请输入开票电话" />
|
||||
</el-form-item>
|
||||
<div v-else>
|
||||
{{row.invoicingTelephone}}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="开票电话" min-width="150" prop="invoicingTelephone" />
|
||||
</template>
|
||||
<template #contractAAuthorizedCompanyscompanyBank>
|
||||
<el-table-column label="开户行" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.companyBank`" :rules="formRules.companyBank" class="mb-0px!" v-if="!type">
|
||||
<el-input v-model="row.companyBank" placeholder="请输入开户行" />
|
||||
</el-form-item>
|
||||
<div v-else>
|
||||
{{row.companyBank}}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="开户行" min-width="150" prop="companyBank" />
|
||||
</template>
|
||||
<template #contractAAuthorizedCompanyscompanyAccount>
|
||||
<el-table-column label="开户账号" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.companyAccount`" :rules="formRules.companyAccount" class="mb-0px!" v-if="!type">
|
||||
<el-input v-model="row.companyAccount" placeholder="请输入开户账号" />
|
||||
</el-form-item>
|
||||
<div v-else>
|
||||
{{row.companyAccount}}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="开户账号" min-width="150" prop="companyAccount" />
|
||||
</template>
|
||||
<template #contractAAuthorizedCompanyscompanyAddress>
|
||||
<el-table-column label="通讯地址" min-width="150">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.companyAddress`" :rules="formRules.companyAddress" class="mb-0px!" v-if="!type">
|
||||
<el-input v-model="row.companyAddress" placeholder="请输入通讯地址" />
|
||||
</el-form-item>
|
||||
<div v-else>
|
||||
{{row.companyAddress}}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="通讯地址" min-width="150" prop="companyAddress" />
|
||||
</template>
|
||||
<template #contractAAuthorizedCompanysother2>
|
||||
<el-table-column align="center" fixed="right" label="操作" width="60" v-if="!type">
|
||||
|
|
@ -108,11 +45,15 @@
|
|||
<el-button @click="handleAdd" round>+ 添加</el-button>
|
||||
</el-row>
|
||||
|
||||
<CustomerCompany ref="formRef" @success="getList" />
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import * as ContractApi from '@/api/crm/contract'
|
||||
import { propTypes } from '@/utils/propTypes'
|
||||
import CustomerCompany from '@/components/relateCompany/index.vue'
|
||||
|
||||
|
||||
const message = useMessage() // 消息弹窗
|
||||
const formLoading = ref(false) // 表单的加载中
|
||||
const formData = ref([])
|
||||
const formRules = reactive({
|
||||
|
|
@ -126,26 +67,37 @@ const formRules = reactive({
|
|||
})
|
||||
const formRef = ref() // 表单 Ref
|
||||
|
||||
/** 查询列表 */
|
||||
const getList = async (val) => {
|
||||
// formData.value = val
|
||||
let newList = []
|
||||
val.forEach(v => {
|
||||
newList.push({
|
||||
customerName: v.companyName,
|
||||
unifiedCreditCode: v.unifiedCreditCode,
|
||||
invoicingAddress: v.invoicingAddress,
|
||||
invoicingTelephone: v.invoicingTelephone,
|
||||
companyBank: v.companyBank,
|
||||
companyAccount: v.companyAccount,
|
||||
companyAddress: v.companyAddress,
|
||||
})
|
||||
})
|
||||
formData.value = newList
|
||||
}
|
||||
|
||||
const contactRef = ref() // 表单 Ref
|
||||
/** 新增按钮操作 */
|
||||
const handleAdd = () => {
|
||||
const row = {
|
||||
unifiedCreditCode: undefined,
|
||||
invoicingAddress: undefined,
|
||||
customerName: undefined,
|
||||
invoicingTelephone: undefined,
|
||||
companyBank: undefined,
|
||||
companyAddress: undefined,
|
||||
companyAccount: undefined
|
||||
}
|
||||
row.contractId = props.contractId
|
||||
formData.value.push(row)
|
||||
if(!props.customerId) return message.warning('请先选择客户')
|
||||
|
||||
formRef.value.open(formData.value, props.customerId)
|
||||
}
|
||||
|
||||
|
||||
const props = defineProps<{
|
||||
data: undefined,
|
||||
type: undefined,
|
||||
customerId: undefined,
|
||||
formFields: {}
|
||||
}>()
|
||||
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
</el-table-column>
|
||||
</template>
|
||||
<template #productsbasicServiceFee>
|
||||
<el-table-column label="基础服务费(元)" min-width="130">
|
||||
<el-table-column label="基础服务费" min-width="130">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.basicServiceFee`" :rules="formRules.basicServiceFee" class="mb-0px!">
|
||||
<!-- <el-input v-model="row.basicServiceFee" oninput="value=value.match(/^\d+(?:\.\d{0,2})?/)" placeholder="" /> -->
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
</el-table-column>
|
||||
</template>
|
||||
<template #productsadvancePaymentServiceFee>
|
||||
<el-table-column label="垫资服务费(元)" min-width="140">
|
||||
<el-table-column label="垫资服务费" min-width="140">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.offlinePrice`" :rules="formRules.offlinePrice" class="mb-0px!">
|
||||
<!-- <el-input v-model="row.offlinePrice" oninput="value=value.match(/^\d+(?:\.\d{0,2})?/)" placeholder="" /> -->
|
||||
|
|
@ -87,7 +87,7 @@
|
|||
</el-table-column>
|
||||
</template>
|
||||
<template #productsbookingPaymentServiceFee>
|
||||
<el-table-column label="代订服务费(元)" min-width="130">
|
||||
<el-table-column label="代订服务费" min-width="130">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.advancePaymentServiceFee`" :rules="formRules.advancePaymentServiceFee" class="mb-0px!">
|
||||
{{row.bookingPaymentServiceFee}}
|
||||
|
|
@ -96,7 +96,7 @@
|
|||
</el-table-column>
|
||||
</template>
|
||||
<template #productsbillSortingServiceFee>
|
||||
<el-table-column label="票据分拣服务费(元)" min-width="130">
|
||||
<el-table-column label="票据分拣服务费" min-width="130">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.billSortingServiceFee`" :rules="formRules.billSortingServiceFee" class="mb-0px!">
|
||||
{{row.billSortingServiceFee}}
|
||||
|
|
@ -105,7 +105,7 @@
|
|||
</el-table-column>
|
||||
</template>
|
||||
<template #productstotalServiceFee>
|
||||
<el-table-column label="服务费收入合计(元)" min-width="130">
|
||||
<el-table-column label="服务费收入合计" min-width="130">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.totalServiceFee`" :rules="formRules.totalServiceFee" class="mb-0px!">
|
||||
{{row.totalServiceFee}}
|
||||
|
|
|
|||
|
|
@ -272,6 +272,20 @@
|
|||
</ContentWrap>
|
||||
</el-col>
|
||||
</template>
|
||||
<template #partnerType>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合作类型" prop="partnerType">
|
||||
<el-select v-model="formData.partnerType" disabled clearable placeholder="请选择合作类型">
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_PARTNER_TYPE1)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
<template #partnerCompanyId>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合作主体" prop="partnerCompanyId">
|
||||
|
|
@ -397,6 +411,13 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
<template #contractTerm>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合同期限(月)" prop="contractTerm">
|
||||
<el-input v-model="formData.contractTerm" :disabled="formFields.contractTerm !== 2 || isTrue" oninput = "value=value.replace(/[^\d]/g,'')" placeholder="" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
<template #endTime>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合同结束时间" prop="endTime">
|
||||
|
|
@ -411,13 +432,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
<template #contractTerm>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合同期限(月)" prop="contractTerm">
|
||||
<el-input v-model="formData.contractTerm" :disabled="formFields.contractTerm !== 2 || isTrue" oninput = "value=value.replace(/[^\d]/g,'')" placeholder="" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
|
||||
<template #statementDate>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="账单日" prop="statementDate">
|
||||
|
|
@ -607,9 +622,11 @@
|
|||
|
||||
|
||||
<!-- 子表的表单 -->
|
||||
<el-col :span="24">
|
||||
<ContentWrap style="border: none;font-weight:700">
|
||||
产品清单
|
||||
</ContentWrap>
|
||||
</el-col>
|
||||
<ContentWrap>
|
||||
<ContractProductForm
|
||||
:type="1"
|
||||
|
|
@ -704,6 +721,7 @@ const formFields = ref({
|
|||
socialEmployeeNum: 1,
|
||||
registeredAddress: 1,
|
||||
other2: 1,
|
||||
partnerType: 1,
|
||||
partnerCompanyId: 1,
|
||||
bankName: 1,
|
||||
bankAccount: 1,
|
||||
|
|
@ -713,8 +731,8 @@ const formFields = ref({
|
|||
other3: 1,
|
||||
contractType: 1,
|
||||
startTime: 1,
|
||||
endTime: 1,
|
||||
contractTerm: 1,
|
||||
endTime: 1,
|
||||
statementDate: 1,
|
||||
lastPayDate: 1,
|
||||
penaltyRate: 1,
|
||||
|
|
|
|||
|
|
@ -29,6 +29,17 @@
|
|||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="合作类型" prop="partnerType">
|
||||
<el-select v-model="queryParams.partnerType" clearable placeholder="请选择合作类型">
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_PARTNER_TYPE1)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="handleQuery">
|
||||
|
|
@ -73,7 +84,7 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="合同编号" prop="no" width="180" />
|
||||
<el-table-column align="center" label="客户名称" prop="customerName" width="120">
|
||||
<el-table-column align="center" label="客户名称" prop="customerName" width="150">
|
||||
<!-- <template #default="scope">
|
||||
<el-link
|
||||
:underline="false"
|
||||
|
|
@ -84,6 +95,11 @@
|
|||
</el-link>
|
||||
</template> -->
|
||||
</el-table-column>
|
||||
<el-table-column label="合作类型" align="center" prop="partnerType" width="120">
|
||||
<template #default="scope">
|
||||
<dict-tag :type="DICT_TYPE.CRM_PARTNER_TYPE1" :value="scope.row.partnerType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column align="center" label="商机名称" prop="businessName" width="130">
|
||||
<template #default="scope">
|
||||
<el-link
|
||||
|
|
@ -161,7 +177,6 @@
|
|||
prop="contactLastTime"
|
||||
width="180px"
|
||||
/>-->
|
||||
<el-table-column align="center" label="负责人" prop="ownerUserName" width="120" />
|
||||
<el-table-column align="center" label="所属部门" prop="ownerUserDeptName" width="100px" />
|
||||
<el-table-column
|
||||
:formatter="dateFormatter"
|
||||
|
|
@ -224,7 +239,6 @@
|
|||
<el-button
|
||||
v-if="scope.row.auditStatus !== 0"
|
||||
link
|
||||
v-hasPermi="['crm:customer-suggestion:query']"
|
||||
type="primary"
|
||||
@click="handleProcessDetail(scope.row)"
|
||||
>
|
||||
|
|
@ -315,11 +329,11 @@ import download from '@/utils/download'
|
|||
import FileTemplateForm from './templateForm.vue'
|
||||
import ContractUpload from './contractUpload.vue'
|
||||
import * as ContractApi from '@/api/crm/contract'
|
||||
import { DICT_TYPE } from '@/utils/dict'
|
||||
import { erpPriceInputFormatter, erpPriceTableColumnFormatter } from '@/utils'
|
||||
import * as CustomerApi from '@/api/crm/customer'
|
||||
import { checkPermi } from '@/utils/permission'
|
||||
import { TabsPaneContext } from 'element-plus'
|
||||
import { getIntDictOptions, getStrDictOptions, DICT_TYPE } from '@/utils/dict'
|
||||
|
||||
|
||||
defineOptions({ name: 'CrmContract' })
|
||||
|
|
@ -334,6 +348,7 @@ const list = ref([]) // 列表的数据
|
|||
const queryParams = reactive({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
partnerType: null,
|
||||
sceneType: '1', // 默认和 activeName 相等
|
||||
name: null,
|
||||
customerId: null,
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="单位名称" prop="companyName">
|
||||
<el-form-item label="单位名称" prop="customerName">
|
||||
<el-input v-model="formData.companyName" placeholder="请输入单位名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
|
|||
|
|
@ -8,10 +8,10 @@
|
|||
label-width="120px"
|
||||
v-loading="formLoading"
|
||||
>
|
||||
<template #customerId>
|
||||
<template #customerName>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="客户名称" prop="customerId">
|
||||
<SelectComponent :customerList="customerList" :disabled="formFields.customerId !== 2 || isTrue" placeholder="请选择客户名称" v-model="formData.customerId" />
|
||||
<el-form-item label="客户名称" prop="customerName">
|
||||
<el-input v-model="formData.customerName" :disabled="formFields.mobile !== 2 || isTrue" placeholder="请输入联系电话" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
|
|
@ -215,7 +215,7 @@ const dialogTitle = ref('') // 弹窗的标题
|
|||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
||||
const formFields = ref({
|
||||
customerId: 1,
|
||||
customerName: 1,
|
||||
deptId: 1,
|
||||
contactId: 1,
|
||||
mobile: 1,
|
||||
|
|
@ -231,7 +231,7 @@ const formFields = ref({
|
|||
})
|
||||
const formData = ref({
|
||||
id: undefined,
|
||||
customerId: undefined,
|
||||
customerName: undefined,
|
||||
contactId: undefined,
|
||||
mobile: undefined,
|
||||
email: undefined,
|
||||
|
|
@ -319,7 +319,7 @@ const goBack = ()=> {
|
|||
const resetForm = () => {
|
||||
formData.value = {
|
||||
id: undefined,
|
||||
customerId: undefined,
|
||||
customerName: undefined,
|
||||
contactId: undefined,
|
||||
mobile: undefined,
|
||||
email: undefined,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<ContentWrap class="mt-10px print-container" id="printBox">
|
||||
<!-- <button v-print="print">打印</button> -->
|
||||
<button v-print="print">打印</button>
|
||||
|
||||
<processForm
|
||||
ref="formRef"
|
||||
|
|
@ -382,10 +382,10 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
<template #creditCalcCycle>
|
||||
<!-- <template #creditCalcCycle>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="授信计算周期" prop="creditCalcCycle">
|
||||
<el-input v-model="formData.creditCalcCycle" disabled placeholder="" />
|
||||
<el-input v-model="formData.creditCalcCycle" disabled placeholder="" /> -->
|
||||
<!-- <el-select v-model="formData.creditCalcCycle" placeholder="" disabled >
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions('credit_calc_cycle')"
|
||||
|
|
@ -394,9 +394,9 @@
|
|||
:value="dict.value"
|
||||
/>
|
||||
</el-select> -->
|
||||
</el-form-item>
|
||||
<!-- </el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
</template> -->
|
||||
<!-- <template #invoiceTemplateId>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="票据模板" prop="invoiceTemplateId">
|
||||
|
|
@ -588,6 +588,8 @@ const formFields = ref({ //字段显示隐藏权限控制,字段顺序就是显
|
|||
creditLimit1: 1,
|
||||
serviceFeeCollectionMethodId: 1,
|
||||
onlinePrice: 1,
|
||||
statementDate: 1,
|
||||
lastPayDate: 1,
|
||||
totalPrice: 1,
|
||||
productsother: 1,
|
||||
productscategory: 1,
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="系统授信额度" prop="customerId">
|
||||
<el-input v-model="formData.creditAmount" disabled placeholder="自动获取" />
|
||||
<el-input v-model="formData.creditAmount" maxlength="10" disabled placeholder="自动获取" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="合作类型" prop="cooperationType">
|
||||
<el-form-item label="公司类型" prop="cooperationType">
|
||||
<el-select v-model="formData.cooperationType" disabled filterable clearable placeholder="" class="w-1/1">
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_COOPERATION_TYPE)"
|
||||
|
|
@ -252,7 +252,19 @@
|
|||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="拓展人" prop="clueDeveloper">
|
||||
<el-select v-model="formData.clueDeveloper" disabled placeholder="请选择拓展人">
|
||||
<el-select v-model="formData.clueDeveloper" disabled placeholder="">
|
||||
<el-option
|
||||
v-for="dict in userOptions"
|
||||
:key="dict.id"
|
||||
:label="dict.nickname"
|
||||
:value="dict.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="维护人" prop="maintainer">
|
||||
<el-select v-model="formData.maintainer" disabled placeholder="">
|
||||
<el-option
|
||||
v-for="dict in userOptions"
|
||||
:key="dict.id"
|
||||
|
|
@ -326,9 +338,9 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<!-- <el-col :span="8">
|
||||
<el-form-item label="授信计算周期" prop="">
|
||||
<el-input v-model="formData.creditCalcCycle" disabled placeholder="" />
|
||||
<el-input v-model="formData.creditCalcCycle" disabled placeholder="" /> -->
|
||||
<!-- <el-select v-model="formData.creditCalcCycle" placeholder="请选择授信计算周期">
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions('credit_calc_cycle')"
|
||||
|
|
@ -337,8 +349,8 @@
|
|||
:value="dict.value"
|
||||
/>
|
||||
</el-select> -->
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- </el-form-item>
|
||||
</el-col> -->
|
||||
<el-col :span="8">
|
||||
<el-form-item label="基础服务费合计" prop="onlinePrice">
|
||||
<el-input
|
||||
|
|
@ -354,6 +366,30 @@
|
|||
<el-input v-model="formData.quotationTimes" disabled placeholder="请输入报价次数" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="账单日" prop="statementDate">
|
||||
<el-select v-model="formData.statementDate" placeholder="请选择账单日" >
|
||||
<el-option
|
||||
v-for="(dict, index) in statement"
|
||||
:key="index"
|
||||
:label="index + 1"
|
||||
:value="index + 1"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="最晚付款日" prop="lastPayDate">
|
||||
<el-select v-model="formData.lastPayDate" placeholder="请选择最晚付款日" >
|
||||
<el-option
|
||||
v-for="(dict, index) in statement"
|
||||
:key="index"
|
||||
:label="index + 1"
|
||||
:value="index + 1"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :span="8">
|
||||
<el-form-item label="票据模板" prop="invoiceTemplateId">
|
||||
<el-select v-model="formData.invoiceTemplateId" :disabled="!formData.businessId" @change="changeTemplate" placeholder="请选择票据模板">
|
||||
|
|
@ -367,7 +403,7 @@
|
|||
</el-form-item>
|
||||
</el-col> -->
|
||||
<el-col :span="24">
|
||||
<ContentWrap style="border: none; font-weight: 700">需求信息</ContentWrap>
|
||||
<ContentWrap style="border: none; font-weight: 700">服务费收取方式</ContentWrap>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
|
|
@ -460,6 +496,7 @@ const serviceDesc = ref({
|
|||
2: '按订单总金额乘以比例收取服务费用',
|
||||
3: ''
|
||||
})
|
||||
const statement = ref(new Array(31).fill(null))
|
||||
const { t } = useI18n() // 国际化
|
||||
const message = useMessage() // 消息弹窗
|
||||
const customerList = ref([]) // 客户列表的数据
|
||||
|
|
@ -592,6 +629,7 @@ const formData = ref({
|
|||
creditAmount: undefined,
|
||||
creditLimitNum: undefined,
|
||||
quotationTimes:undefined,
|
||||
maintainer: undefined
|
||||
})
|
||||
const formRules = reactive({
|
||||
no: [{ required: true, message: '报价单编号不能为空', trigger: 'blur' }],
|
||||
|
|
@ -633,7 +671,6 @@ watch(
|
|||
|
||||
for (const product of newProducts) {
|
||||
if (typeof product.basicServiceFee) {
|
||||
console.log('%csrc/views/crm/quotation/QuotationForm.vue:537 object', 'color: pink;', product.basicServiceFee);
|
||||
totalOnlinePrice += Number(product.basicServiceFee || null);
|
||||
}
|
||||
if (typeof product.totalServiceFee) {
|
||||
|
|
@ -669,7 +706,7 @@ const changeQuotation = (val) => {
|
|||
}
|
||||
|
||||
const changeQuotationTimes = async(val) => {
|
||||
|
||||
console.log('%csrc/views/crm/quotation/QuotationForm.vue:671 3333', 'color: #007acc;', 3333);
|
||||
if(formData.value.serviceFeeCollectionMethodId && formData.value.businessId) {
|
||||
newProducts.value = []
|
||||
formData.value.products.forEach( item => {
|
||||
|
|
@ -690,6 +727,10 @@ const changeQuotationTimes = async(val) => {
|
|||
}
|
||||
|
||||
let num = await QuotationApi.getServerFee(data)
|
||||
num.quotationProducts.forEach( v => {
|
||||
v.productUnit = v.serviceFeeVO.unit
|
||||
})
|
||||
console.log('%csrc/views/crm/quotation/QuotationForm.vue:695 num.', 'color: #007acc;', num.quotationProducts);
|
||||
formData.value.QuotationTimes = num.quotationProducts
|
||||
}
|
||||
}
|
||||
|
|
@ -744,6 +785,7 @@ const onBusinessChange = async (businessId: string) => {
|
|||
// formData.value.deptId = res.deptId;
|
||||
formData.value.offlinePrice = res.offlinePrice;
|
||||
formData.value.clueDeveloper = res.clueDeveloper
|
||||
formData.value.maintainer = res.maintainer
|
||||
// formData.value.onlinePrice = res.onlinePrice || '';
|
||||
// formData.value.totalPrice = res.totalPrice || '';
|
||||
formData.value.creditAmount = res.creditAmount;
|
||||
|
|
@ -832,6 +874,7 @@ const open = async (type: string) => {
|
|||
formData.value = await QuotationApi.getQuotation(type)
|
||||
formData.value.creditLimit = (formData.value.creditAmount || 0) + (formData.value.creditLimitNum || 0)
|
||||
formData.value.serviceFeeCollectionMethodId = Number(formData.value.serviceFeeCollectionMethodId)
|
||||
if(formData.value.partnerType) changePartnerType(formData.value.partnerType)
|
||||
|
||||
} finally {
|
||||
formLoading.value = false
|
||||
|
|
|
|||
|
|
@ -19,82 +19,72 @@
|
|||
</el-table-column> -->
|
||||
<!-- </template> -->
|
||||
<template #productscategory>
|
||||
<el-table-column label="产品类型" align="center" min-width="100">
|
||||
<el-table-column label="产品类型" align="center" min-width="96">
|
||||
<template #default="{ row }">
|
||||
<dict-tag :type="DICT_TYPE.CRM_PRODUCT_CATEGORY" :value="row.category" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
<template #productsdetailType>
|
||||
<el-table-column label="产品明细类型" align="center" min-width="190">
|
||||
<el-table-column label="产品明细类型" align="center" min-width="150">
|
||||
<template #default="{ row }">
|
||||
<dict-tag :type="DICT_TYPE.CRM_PRODUCT_DETAIL_TYPE" :value="row.detailType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
<template #productsproductUnit>
|
||||
<el-table-column label="产品单位" align="center" min-width="150">
|
||||
<el-table-column label="产品单位" align="center" min-width="100">
|
||||
<template #default="{ row }">
|
||||
<dict-tag :type="DICT_TYPE.CRM_PRODUCT_UNIT" :value="row.productUnit" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
<template #productsbasicServiceFee>
|
||||
<el-table-column label="基础服务费(元)" min-width="130">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.basicServiceFee`" :rules="formRules.basicServiceFee" class="mb-0px!">
|
||||
<el-table-column label="基础服务费" align="center" min-width="130">
|
||||
<template #default="{ row }">
|
||||
<!-- <el-input v-model="row.basicServiceFee" oninput="value=value.match(/^\d+(?:\.\d{0,2})?/)" placeholder="" /> -->
|
||||
{{row.basicServiceFee}}
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
<template #productsadvancePaymentServiceFee>
|
||||
<el-table-column label="垫资服务费(元)" min-width="140">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.advancePaymentServiceFee`" :rules="formRules.offlinePrice" class="mb-0px!">
|
||||
<el-table-column label="垫资服务费" align="center" min-width="140">
|
||||
<template #default="{ row }">
|
||||
<!-- <el-input v-model="row.offlinePrice" oninput="value=value.match(/^\d+(?:\.\d{0,2})?/)" placeholder="" /> -->
|
||||
{{row.advancePaymentServiceFee}}
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
<template #productsbookingPaymentServiceFee>
|
||||
<el-table-column label="代订服务费(元)" min-width="130">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.bookingPaymentServiceFee`" :rules="formRules.advancePaymentServiceFee" class="mb-0px!">
|
||||
<el-table-column label="代订服务费" align="center" min-width="130">
|
||||
<template #default="{ row }">
|
||||
{{row.bookingPaymentServiceFee}}
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
<template #productsbillSortingServiceFee>
|
||||
<el-table-column label="票据分拣服务费(元)" min-width="130">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.billSortingServiceFee`" :rules="formRules.billSortingServiceFee" class="mb-0px!">
|
||||
<el-table-column label="票据分拣服务费" align="center" min-width="130">
|
||||
<template #default="{ row }">
|
||||
{{row.billSortingServiceFee}}
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
<template #productstotalServiceFee>
|
||||
<el-table-column label="服务费收入合计(元)" min-width="130">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.totalServiceFee`" :rules="formRules.totalServiceFee" class="mb-0px!">
|
||||
<el-table-column label="服务费收入合计" align="center" min-width="130">
|
||||
<template #default="{ row }">
|
||||
{{row.totalServiceFee}}
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
<template #productsproductInvoice>
|
||||
<el-table-column label="产品票据" align="center" min-width="150">
|
||||
<el-table-column label="产品票据" align="center" min-width="110">
|
||||
<template #default="{ row }">
|
||||
<dict-tag :type="DICT_TYPE.CRM_PRODUCT_INVOICE" :value="row.productInvoice" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
<template #productsproductInvoiceItem>
|
||||
<el-table-column label="产品开具项目" align="center" min-width="250">
|
||||
<el-table-column label="产品开具项目" align="center" min-width="170">
|
||||
<template #default="{ row }">
|
||||
<dict-tag :type="DICT_TYPE.CRM_PRODUCT_INVOICE_ITEMS" :value="row.productInvoiceItem" />
|
||||
|
||||
|
|
@ -109,7 +99,7 @@
|
|||
</el-table-column>
|
||||
</template>
|
||||
<template #productsserviceInvoiceItem>
|
||||
<el-table-column label="服务开具项目" align="center" min-width="250">
|
||||
<el-table-column label="服务开具项目" align="center" min-width="170">
|
||||
<template #default="{ row }">
|
||||
<dict-tag :type="DICT_TYPE.CRM_SERVICE_FEE_INVOICE_ITEMS" :value="row.serviceInvoiceItem" />
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
<dict-tag :type="DICT_TYPE.CRM_PRODUCT_UNIT" :value="row.productUnit" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="基础服务费(元)" min-width="160">
|
||||
<el-table-column label="基础服务费" min-width="160">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.basicServiceFee`" :rules="formRules.basicServiceFee" class="mb-0px!">
|
||||
<!-- <el-input v-model="row.basicServiceFee" oninput="value=value.match(/^\d+(?:\.\d{0,2})?/)" placeholder="" /> -->
|
||||
|
|
@ -44,7 +44,7 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="垫资服务费(元)" min-width="160">
|
||||
<el-table-column label="垫资服务费" min-width="160">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.offlinePrice`" :rules="formRules.offlinePrice" class="mb-0px!">
|
||||
<!-- <el-input v-model="row.offlinePrice" oninput="value=value.match(/^\d+(?:\.\d{0,2})?/)" placeholder="" /> -->
|
||||
|
|
@ -52,21 +52,21 @@
|
|||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="代订服务费(元)" min-width="160">
|
||||
<el-table-column label="代订服务费" min-width="160">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.advancePaymentServiceFee`" :rules="formRules.advancePaymentServiceFee" class="mb-0px!">
|
||||
{{row.bookingPaymentServiceFee}}
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="票据分拣服务费(元)" min-width="172">
|
||||
<el-table-column label="票据分拣服务费" min-width="172">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.billSortingServiceFee`" :rules="formRules.billSortingServiceFee" class="mb-0px!">
|
||||
{{row.billSortingServiceFee}}
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="服务费收入合计(元)" min-width="172">
|
||||
<el-table-column label="服务费收入合计" min-width="172">
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.totalServiceFee`" :rules="formRules.totalServiceFee" class="mb-0px!">
|
||||
{{row.totalServiceFee}}
|
||||
|
|
@ -290,6 +290,7 @@ watch(
|
|||
foundItem.bookingPaymentServiceFee = data.serviceFeeVO.bookingPaymentServiceFee
|
||||
foundItem.billSortingServiceFee = data.serviceFeeVO.billSortingServiceFee
|
||||
foundItem.totalServiceFee = data.serviceFeeVO.totalServiceFee
|
||||
foundItem.productUnit = data.productUnit
|
||||
}
|
||||
}
|
||||
// formData.value = data
|
||||
|
|
|
|||
|
|
@ -150,12 +150,12 @@
|
|||
|
||||
</template> -->
|
||||
</el-table-column>
|
||||
<el-table-column label="拓展人" align="center" prop="clueDeveloperName">
|
||||
<el-table-column label="拓展人" align="center" prop="clueDeveloperName" width="120">
|
||||
<!-- <template #default="scope">
|
||||
{{getName(userOptions, scope.row.expandingUserId)}}
|
||||
</template> -->
|
||||
</el-table-column>
|
||||
<el-table-column label="维护人" align="center" prop="maintainerName">
|
||||
<el-table-column label="维护人" align="center" prop="maintainerName" width="120">
|
||||
<!-- <template #default="scope">
|
||||
{{getName(userOptions, scope.row.maintenanceUserId)}}
|
||||
|
||||
|
|
@ -242,7 +242,6 @@
|
|||
link
|
||||
type="primary"
|
||||
@click="handleProcessDetail(scope.row)"
|
||||
v-hasPermi="['crm:customer-suggestion:query']"
|
||||
v-if="scope.row.auditStatus != 0"
|
||||
>
|
||||
进度
|
||||
|
|
@ -298,7 +297,7 @@
|
|||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
command="handleProcessDetail"
|
||||
v-if="checkPermi(['crm:customer-suggestion:query']) && scope.row.auditStatus == 1"
|
||||
v-if="scope.row.auditStatus == 1"
|
||||
>
|
||||
进度
|
||||
</el-dropdown-item>
|
||||
|
|
|
|||
Loading…
Reference in New Issue