客户-联系人
parent
36589b2910
commit
3480d6604c
|
|
@ -6,8 +6,8 @@ VITE_DEV=true
|
||||||
# 请求路径
|
# 请求路径
|
||||||
# VITE_BASE_URL='http://8.130.12.151:48080'
|
# VITE_BASE_URL='http://8.130.12.151:48080'
|
||||||
# VITE_BASE_URL='http://lhy.free.idcfengye.com'
|
# VITE_BASE_URL='http://lhy.free.idcfengye.com'
|
||||||
# VITE_BASE_URL='http://m94844f6.natappfree.cc'
|
VITE_BASE_URL='http://m94844f6.natappfree.cc'
|
||||||
VITE_BASE_URL='http://172.22.3.168:48080'
|
# VITE_BASE_URL='http://172.22.3.168:48080'
|
||||||
# VITE_BASE_URL='http://172.22.3.203:48080'
|
# VITE_BASE_URL='http://172.22.3.203:48080'
|
||||||
|
|
||||||
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持 S3 服务
|
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持 S3 服务
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,7 @@
|
||||||
"vue-router": "4.4.5",
|
"vue-router": "4.4.5",
|
||||||
"vue-signature-pad": "^3.0.2",
|
"vue-signature-pad": "^3.0.2",
|
||||||
"vue-types": "^5.1.1",
|
"vue-types": "^5.1.1",
|
||||||
|
"vue3-print-nb": "^0.1.4",
|
||||||
"vue3-signature": "^0.2.4",
|
"vue3-signature": "^0.2.4",
|
||||||
"vuedraggable": "^4.1.0",
|
"vuedraggable": "^4.1.0",
|
||||||
"web-storage-cache": "^1.1.1",
|
"web-storage-cache": "^1.1.1",
|
||||||
|
|
@ -17105,6 +17106,14 @@
|
||||||
"integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==",
|
"integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/vue3-print-nb": {
|
||||||
|
"version": "0.1.4",
|
||||||
|
"resolved": "https://registry.npmmirror.com/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz",
|
||||||
|
"integrity": "sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==",
|
||||||
|
"dependencies": {
|
||||||
|
"vue": "^3.0.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/vue3-signature": {
|
"node_modules/vue3-signature": {
|
||||||
"version": "0.2.4",
|
"version": "0.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/vue3-signature/-/vue3-signature-0.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/vue3-signature/-/vue3-signature-0.2.4.tgz",
|
||||||
|
|
|
||||||
|
|
@ -78,6 +78,7 @@
|
||||||
"vue-router": "4.4.5",
|
"vue-router": "4.4.5",
|
||||||
"vue-signature-pad": "^3.0.2",
|
"vue-signature-pad": "^3.0.2",
|
||||||
"vue-types": "^5.1.1",
|
"vue-types": "^5.1.1",
|
||||||
|
"vue3-print-nb": "^0.1.4",
|
||||||
"vue3-signature": "^0.2.4",
|
"vue3-signature": "^0.2.4",
|
||||||
"vuedraggable": "^4.1.0",
|
"vuedraggable": "^4.1.0",
|
||||||
"web-storage-cache": "^1.1.1",
|
"web-storage-cache": "^1.1.1",
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ watch(() => props.modelValue, (val) => {
|
||||||
let selectItem = props.customerList.filter(v => v.id === val)
|
let selectItem = props.customerList.filter(v => v.id === val)
|
||||||
options.value = [...options.value, ...selectItem]
|
options.value = [...options.value, ...selectItem]
|
||||||
}
|
}
|
||||||
},)
|
}, { immediate: true })
|
||||||
|
|
||||||
watch(() => props.customerList, (val) => {
|
watch(() => props.customerList, (val) => {
|
||||||
options.value = val.slice(0, 10)
|
options.value = val.slice(0, 10)
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,7 @@ import VueDOMPurifyHTML from 'vue-dompurify-html' // 解决v-html 的安全隐
|
||||||
|
|
||||||
import VueSignaturePad from "vue-signature-pad";
|
import VueSignaturePad from "vue-signature-pad";
|
||||||
|
|
||||||
|
import print from 'vue3-print-nb'
|
||||||
// 创建实例
|
// 创建实例
|
||||||
const setupAll = async () => {
|
const setupAll = async () => {
|
||||||
const app = createApp(App)
|
const app = createApp(App)
|
||||||
|
|
@ -68,7 +69,7 @@ const setupAll = async () => {
|
||||||
|
|
||||||
app.use(VueDOMPurifyHTML)
|
app.use(VueDOMPurifyHTML)
|
||||||
app.use(VueSignaturePad);
|
app.use(VueSignaturePad);
|
||||||
|
app.use(print)
|
||||||
app.mount('#app')
|
app.mount('#app')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -221,6 +221,7 @@ export enum DICT_TYPE {
|
||||||
TIME_TYPE='time_type',// 时间类型
|
TIME_TYPE='time_type',// 时间类型
|
||||||
CRM_PARTNER_TYPE = 'crm_partner_type',//合作类型
|
CRM_PARTNER_TYPE = 'crm_partner_type',//合作类型
|
||||||
CRM_SERVICE_FEE_COLLECTION_METHOD = 'crm_service_fee_collection_method',//服务费收取方式
|
CRM_SERVICE_FEE_COLLECTION_METHOD = 'crm_service_fee_collection_method',//服务费收取方式
|
||||||
|
CRM_CONTACT_ROLE_TYPE = 'crm_contact_role_type',//角色
|
||||||
|
|
||||||
CRM_PRODUCT_CATEGORY = "crm_product_category", //CRM 产品类型
|
CRM_PRODUCT_CATEGORY = "crm_product_category", //CRM 产品类型
|
||||||
CRM_PRODUCT_DETAIL_TYPE = "crm_product_detail_type", //CRM 产品明细类型
|
CRM_PRODUCT_DETAIL_TYPE = "crm_product_detail_type", //CRM 产品明细类型
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,11 @@
|
||||||
v-loading="formLoading"
|
v-loading="formLoading"
|
||||||
>
|
>
|
||||||
<el-row>
|
<el-row>
|
||||||
<!-- <el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="商机名称" prop="name">
|
<el-form-item label="商机名称" prop="name">
|
||||||
<el-input v-model="formData.name" :disabled="type" clearable placeholder="请输入商机名称" />
|
<el-input v-model="formData.name" :disabled="type" clearable placeholder="请输入商机名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="客户名称" prop="customerId">
|
<el-form-item label="客户名称" prop="customerId">
|
||||||
<SelectComponent :customerList="customerList" :disabled="formData.customerDefault || type" v-model="formData.customerId" />
|
<SelectComponent :customerList="customerList" :disabled="formData.customerDefault || type" v-model="formData.customerId" />
|
||||||
|
|
@ -104,7 +104,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
<!-- <el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="商机状态组" prop="statusTypeId">
|
<el-form-item label="商机状态组" prop="statusTypeId">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formData.statusTypeId"
|
v-model="formData.statusTypeId"
|
||||||
|
|
@ -121,7 +121,7 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="预计成交日期" prop="dealTime">
|
<el-form-item label="预计成交日期" prop="dealTime">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
|
|
|
||||||
|
|
@ -113,6 +113,7 @@ const getList = async () => {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
defineExpose({ getList })
|
||||||
|
|
||||||
const getData = (val,data) => {
|
const getData = (val,data) => {
|
||||||
list.value = data
|
list.value = data
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<Dialog v-model="dialogVisible" :title="dialogTitle">
|
<Dialog v-model="dialogVisible" :title="dialogTitle" style="width: 50%">
|
||||||
<el-form
|
<el-form
|
||||||
ref="formRef"
|
ref="formRef"
|
||||||
v-loading="formLoading"
|
v-loading="formLoading"
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="客户名称" prop="customerId">
|
<el-form-item label="客户名称" prop="customerId">
|
||||||
<SelectComponent :customerList="customerList" :disabled="formData.customerDefault" v-model="formData.customerId" />
|
<SelectComponent :customerList="customerList" :disabled="formData.customerDefault" v-model="formData.customerId" @change="changeCustomerId" />
|
||||||
<!-- <el-select
|
<!-- <el-select
|
||||||
:disabled="formData.customerDefault"
|
:disabled="formData.customerDefault"
|
||||||
v-model="formData.customerId"
|
v-model="formData.customerId"
|
||||||
|
|
@ -74,14 +74,24 @@
|
||||||
<el-form-item label="邮箱" prop="email">
|
<el-form-item label="邮箱" prop="email">
|
||||||
<el-input v-model="formData.email" placeholder="请输入邮箱" />
|
<el-input v-model="formData.email" placeholder="请输入邮箱" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="角色" prop="sex">
|
||||||
|
<el-select v-model="formData.sex" placeholder="请选择角色" class="w-1/1">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_CONTACT_ROLE_TYPE)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="微信" prop="wechat">
|
<el-form-item label="微信" prop="wechat">
|
||||||
<el-input v-model="formData.wechat" placeholder="请输入微信" />
|
<el-input v-model="formData.wechat" placeholder="请输入微信" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="职位" prop="post">
|
<el-form-item label="职位" prop="post">
|
||||||
|
|
@ -113,6 +123,16 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="生日" prop="birthday">
|
||||||
|
<el-input v-model="formData.birthday" placeholder="请输入生日" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="爱好" prop="hobby">
|
||||||
|
<el-input v-model="formData.hobby" placeholder="请输入爱好" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<!-- <el-col :span="12">
|
<!-- <el-col :span="12">
|
||||||
<el-form-item label="直属上级" prop="parentId">
|
<el-form-item label="直属上级" prop="parentId">
|
||||||
<el-select v-model="formData.parentId" filterable placeholder="请选择直属上级" class="w-1/1">
|
<el-select v-model="formData.parentId" filterable placeholder="请选择直属上级" class="w-1/1">
|
||||||
|
|
@ -141,6 +161,11 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>-->
|
</el-col>-->
|
||||||
|
<el-col >
|
||||||
|
<el-form-item label="注册地址" prop="registeredAddress">
|
||||||
|
<el-input v-model="formData.registeredAddress" disabled placeholder="请输入注册地址" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col >
|
<el-col >
|
||||||
<el-form-item label="家庭地址" prop="detailAddress">
|
<el-form-item label="家庭地址" prop="detailAddress">
|
||||||
<el-input v-model="formData.detailAddress" placeholder="请输入家庭地址" />
|
<el-input v-model="formData.detailAddress" placeholder="请输入家庭地址" />
|
||||||
|
|
@ -249,7 +274,7 @@ const open = async (type: string, id?: number, customerId?: number, businessId?:
|
||||||
formLoading.value = false
|
formLoading.value = false
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// console.log('%csrc/views/crm/contact/ContactForm.vue:229 customerId', 'color: #007acc;', customerId);
|
console.log('%csrc/views/crm/contact/ContactForm.vue:229 customerId', 'color: #007acc;', customerId);
|
||||||
if (customerId) {
|
if (customerId) {
|
||||||
formData.value.customerId = customerId
|
formData.value.customerId = customerId
|
||||||
formData.value.customerDefault = true // 默认客户的选择,不允许变
|
formData.value.customerDefault = true // 默认客户的选择,不允许变
|
||||||
|
|
@ -258,6 +283,7 @@ const open = async (type: string, id?: number, customerId?: number, businessId?:
|
||||||
if (businessId) {
|
if (businessId) {
|
||||||
formData.value.businessId = businessId
|
formData.value.businessId = businessId
|
||||||
}
|
}
|
||||||
|
console.log('%csrc/views/crm/contact/ContactForm.vue:273 formData.customerId', 'color: #007acc;', formData.value);
|
||||||
}
|
}
|
||||||
// 获得联系人列表
|
// 获得联系人列表
|
||||||
contactList.value = await ContactApi.getSimpleContactList()
|
contactList.value = await ContactApi.getSimpleContactList()
|
||||||
|
|
@ -300,6 +326,11 @@ const submitForm = async () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const changeCustomerId = (val) => {
|
||||||
|
let arr = customerList.value.filter(v => v.id === val)
|
||||||
|
if(arr.length) formData.value.registeredAddress = arr[0]['registeredAddress']
|
||||||
|
}
|
||||||
|
|
||||||
/** 重置表单 */
|
/** 重置表单 */
|
||||||
const resetForm = () => {
|
const resetForm = () => {
|
||||||
formData.value = {
|
formData.value = {
|
||||||
|
|
|
||||||
|
|
@ -120,6 +120,7 @@ const getList = async () => {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
defineExpose({ getList })
|
||||||
|
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
const handleQuery = () => {
|
const handleQuery = () => {
|
||||||
|
|
|
||||||
|
|
@ -442,6 +442,7 @@
|
||||||
<ContentWrap>
|
<ContentWrap>
|
||||||
<ContractProductForm
|
<ContractProductForm
|
||||||
ref="productFormRef"
|
ref="productFormRef"
|
||||||
|
:formFields="formFields"
|
||||||
:products="formData.products"
|
:products="formData.products"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:type="1"
|
:type="1"
|
||||||
|
|
@ -451,19 +452,19 @@
|
||||||
合同甲方关联单位
|
合同甲方关联单位
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
<ContentWrap>
|
<ContentWrap>
|
||||||
<ContractAAuthorizedCompanyForm ref="contractAAuthorizedCompanyFormRef" :data="formData.contractAAuthorizedCompanys" :contract-id="formData.id" />
|
<ContractAAuthorizedCompanyForm :formFields="formFields" ref="contractAAuthorizedCompanyFormRef" :data="formData.contractAAuthorizedCompanys" :contract-id="formData.id" />
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
<ContentWrap style="border: none;font-weight:700">
|
<ContentWrap style="border: none;font-weight:700">
|
||||||
合同甲方授权人信息
|
合同甲方授权人信息
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
<ContentWrap>
|
<ContentWrap>
|
||||||
<ContractAAuthorizedPersonForm ref="contractAAuthorizedPersonFormRef" :contract-id="formData.id" :customerId="formData.customerId" />
|
<ContractAAuthorizedPersonForm :formFields="formFields" ref="contractAAuthorizedPersonFormRef" :contract-id="formData.id" :customerId="formData.customerId" />
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
<ContentWrap style="border: none;font-weight:700">
|
<ContentWrap style="border: none;font-weight:700">
|
||||||
合同乙方授权人信息
|
合同乙方授权人信息
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
<ContentWrap>
|
<ContentWrap>
|
||||||
<ContractBAuthorizedPersonForm ref="contractBAuthorizedPersonFormRef" :userOptions="userOptions" :contract-id="formData.id" />
|
<ContractBAuthorizedPersonForm :formFields="formFields" ref="contractBAuthorizedPersonFormRef" :userOptions="userOptions" :contract-id="formData.id" />
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
</el-form>
|
</el-form>
|
||||||
<!-- 显示在其他页面时的判断type -->
|
<!-- 显示在其他页面时的判断type -->
|
||||||
|
|
@ -506,6 +507,49 @@ const dialogTitle = ref('') // 弹窗的标题
|
||||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
||||||
const deptTree = ref() // 部门树形结构
|
const deptTree = ref() // 部门树形结构
|
||||||
|
const formFields = ref({
|
||||||
|
productsother: 1,
|
||||||
|
productsproductName: 1,
|
||||||
|
productscategory: 1,
|
||||||
|
productsdetailType: 1,
|
||||||
|
productsproductUnit: 1,
|
||||||
|
productsbasicServiceFee: 1,
|
||||||
|
productsadvancePaymentServiceFee: 1,
|
||||||
|
productsbookingPaymentServiceFee: 1,
|
||||||
|
productsbillSortingServiceFee: 1,
|
||||||
|
productstotalServiceFee: 1,
|
||||||
|
productsproductInvoice: 1,
|
||||||
|
productsproductInvoiceItem: 1,
|
||||||
|
productsserviceInvoice: 1,
|
||||||
|
productsserviceInvoiceItem: 1,
|
||||||
|
productsother1: 1,
|
||||||
|
contractAAuthorizedCompanysother: 1,
|
||||||
|
contractAAuthorizedCompanysunifiedCreditCode: 1,
|
||||||
|
contractAAuthorizedCompanysinvoicingAddress: 1,
|
||||||
|
contractAAuthorizedCompanysinvoicingTelephone: 1,
|
||||||
|
contractAAuthorizedCompanyscompanyBank: 1,
|
||||||
|
contractAAuthorizedCompanyscompanyAccount: 1,
|
||||||
|
contractAAuthorizedCompanyscompanyAddress: 1,
|
||||||
|
contractAAuthorizedCompanysother2: 1,
|
||||||
|
contractAAuthorizedPersonsother: 1,
|
||||||
|
contractAAuthorizedPersonscustomerName: 1,
|
||||||
|
contractAAuthorizedPersonsauthPersonType: 1,
|
||||||
|
contractAAuthorizedPersonsphoneNumber: 1,
|
||||||
|
contractAAuthorizedPersonswechat: 1,
|
||||||
|
contractAAuthorizedPersonsidNumber: 1,
|
||||||
|
contractAAuthorizedPersonsemail: 1,
|
||||||
|
contractAAuthorizedPersonsother2: 1,
|
||||||
|
contractBAuthorizedPersonsother: 1,
|
||||||
|
contractBAuthorizedPersonsauthType: 1,
|
||||||
|
contractBAuthorizedPersonsuserId: 1,
|
||||||
|
contractBAuthorizedPersonspostName: 1,
|
||||||
|
contractBAuthorizedPersonsuserRank: 1,
|
||||||
|
contractBAuthorizedPersonsauthDesc: 1,
|
||||||
|
contractBAuthorizedPersonsphoneNumber: 1,
|
||||||
|
contractBAuthorizedPersonswechat: 1,
|
||||||
|
contractBAuthorizedPersonsemail: 1,
|
||||||
|
contractBAuthorizedPersonsother2: 1,
|
||||||
|
})
|
||||||
const formData = ref({
|
const formData = ref({
|
||||||
id: undefined,
|
id: undefined,
|
||||||
name: undefined,
|
name: undefined,
|
||||||
|
|
|
||||||
|
|
@ -7,84 +7,102 @@
|
||||||
label-width="0px"
|
label-width="0px"
|
||||||
:inline-message="true"
|
:inline-message="true"
|
||||||
>
|
>
|
||||||
<el-table :data="formData" class="-mt-10px">
|
<AuthTable v-loading="loading" :fields="formFields" :data="formData" class="-mt-10px">
|
||||||
<el-table-column label="序号" type="index" width="100" />
|
<template #contractAAuthorizedCompanysother>
|
||||||
<el-table-column label="单位名称" min-width="150">
|
<el-table-column label="序号" type="index" width="100" />
|
||||||
<template #default="{ row, $index }">
|
</template>
|
||||||
<el-form-item :prop="`${$index}.customerName`" :rules="formRules.customerName" class="mb-0px!" v-if="!type">
|
<template #contractAAuthorizedCompanyscustomerName>
|
||||||
<el-input v-model="row.customerName" placeholder="请输入单位名称" />
|
<el-table-column label="单位名称" min-width="150">
|
||||||
</el-form-item>
|
<template #default="{ row, $index }">
|
||||||
<div v-else>
|
<el-form-item :prop="`${$index}.customerName`" :rules="formRules.customerName" class="mb-0px!" v-if="!type">
|
||||||
{{row.customerName}}
|
<el-input v-model="row.customerName" placeholder="请输入单位名称" />
|
||||||
</div>
|
</el-form-item>
|
||||||
</template>
|
<div v-else>
|
||||||
</el-table-column>
|
{{row.customerName}}
|
||||||
<el-table-column label="统一社会信用代码" min-width="150">
|
</div>
|
||||||
<template #default="{ row, $index }">
|
</template>
|
||||||
<el-form-item :prop="`${$index}.unifiedCreditCode`" :rules="formRules.unifiedCreditCode" class="mb-0px!" v-if="!type">
|
</el-table-column>
|
||||||
<el-input v-model="row.unifiedCreditCode" placeholder="请输入统一社会信用代码" />
|
</template>
|
||||||
</el-form-item>
|
<template #contractAAuthorizedCompanysunifiedCreditCode>
|
||||||
<div v-else>
|
<el-table-column label="统一社会信用代码" min-width="150">
|
||||||
{{row.unifiedCreditCode}}
|
<template #default="{ row, $index }">
|
||||||
</div>
|
<el-form-item :prop="`${$index}.unifiedCreditCode`" :rules="formRules.unifiedCreditCode" class="mb-0px!" v-if="!type">
|
||||||
</template>
|
<el-input v-model="row.unifiedCreditCode" placeholder="请输入统一社会信用代码" />
|
||||||
</el-table-column>
|
</el-form-item>
|
||||||
<el-table-column label="开票地址" min-width="150">
|
<div v-else>
|
||||||
<template #default="{ row, $index }">
|
{{row.unifiedCreditCode}}
|
||||||
<el-form-item :prop="`${$index}.invoicingAddress`" :rules="formRules.invoicingAddress" class="mb-0px!" v-if="!type">
|
</div>
|
||||||
<el-input v-model="row.invoicingAddress" placeholder="请输入开票地址" />
|
</template>
|
||||||
</el-form-item>
|
</el-table-column>
|
||||||
<div v-else>
|
</template>
|
||||||
{{row.invoicingAddress}}
|
<template #contractAAuthorizedCompanysinvoicingAddress>
|
||||||
</div>
|
<el-table-column label="开票地址" min-width="150">
|
||||||
</template>
|
<template #default="{ row, $index }">
|
||||||
</el-table-column>
|
<el-form-item :prop="`${$index}.invoicingAddress`" :rules="formRules.invoicingAddress" class="mb-0px!" v-if="!type">
|
||||||
<el-table-column label="开票电话" min-width="150">
|
<el-input v-model="row.invoicingAddress" placeholder="请输入开票地址" />
|
||||||
<template #default="{ row, $index }">
|
</el-form-item>
|
||||||
<el-form-item :prop="`${$index}.invoicingTelephone`" :rules="formRules.invoicingTelephone" class="mb-0px!" v-if="!type">
|
<div v-else>
|
||||||
<el-input v-model="row.invoicingTelephone" placeholder="请输入开票电话" />
|
{{row.invoicingAddress}}
|
||||||
</el-form-item>
|
</div>
|
||||||
<div v-else>
|
</template>
|
||||||
{{row.invoicingTelephone}}
|
</el-table-column>
|
||||||
</div>
|
</template>
|
||||||
</template>
|
<template #contractAAuthorizedCompanysinvoicingTelephone>
|
||||||
</el-table-column>
|
<el-table-column label="开票电话" min-width="150">
|
||||||
<el-table-column label="开户行" min-width="150">
|
<template #default="{ row, $index }">
|
||||||
<template #default="{ row, $index }">
|
<el-form-item :prop="`${$index}.invoicingTelephone`" :rules="formRules.invoicingTelephone" class="mb-0px!" v-if="!type">
|
||||||
<el-form-item :prop="`${$index}.companyBank`" :rules="formRules.companyBank" class="mb-0px!" v-if="!type">
|
<el-input v-model="row.invoicingTelephone" placeholder="请输入开票电话" />
|
||||||
<el-input v-model="row.companyBank" placeholder="请输入开户行" />
|
</el-form-item>
|
||||||
</el-form-item>
|
<div v-else>
|
||||||
<div v-else>
|
{{row.invoicingTelephone}}
|
||||||
{{row.companyBank}}
|
</div>
|
||||||
</div>
|
</template>
|
||||||
</template>
|
</el-table-column>
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column label="开户账号" min-width="150">
|
<template #contractAAuthorizedCompanyscompanyBank>
|
||||||
<template #default="{ row, $index }">
|
<el-table-column label="开户行" min-width="150">
|
||||||
<el-form-item :prop="`${$index}.companyAccount`" :rules="formRules.companyAccount" class="mb-0px!" v-if="!type">
|
<template #default="{ row, $index }">
|
||||||
<el-input v-model="row.companyAccount" placeholder="请输入开户账号" />
|
<el-form-item :prop="`${$index}.companyBank`" :rules="formRules.companyBank" class="mb-0px!" v-if="!type">
|
||||||
</el-form-item>
|
<el-input v-model="row.companyBank" placeholder="请输入开户行" />
|
||||||
<div v-else>
|
</el-form-item>
|
||||||
{{row.companyAccount}}
|
<div v-else>
|
||||||
</div>
|
{{row.companyBank}}
|
||||||
</template>
|
</div>
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column label="通讯地址" min-width="150">
|
</el-table-column>
|
||||||
<template #default="{ row, $index }">
|
</template>
|
||||||
<el-form-item :prop="`${$index}.companyAddress`" :rules="formRules.companyAddress" class="mb-0px!" v-if="!type">
|
<template #contractAAuthorizedCompanyscompanyAccount>
|
||||||
<el-input v-model="row.companyAddress" placeholder="请输入通讯地址" />
|
<el-table-column label="开户账号" min-width="150">
|
||||||
</el-form-item>
|
<template #default="{ row, $index }">
|
||||||
<div v-else>
|
<el-form-item :prop="`${$index}.companyAccount`" :rules="formRules.companyAccount" class="mb-0px!" v-if="!type">
|
||||||
{{row.companyAddress}}
|
<el-input v-model="row.companyAccount" placeholder="请输入开户账号" />
|
||||||
</div>
|
</el-form-item>
|
||||||
</template>
|
<div v-else>
|
||||||
</el-table-column>
|
{{row.companyAccount}}
|
||||||
<el-table-column align="center" fixed="right" label="操作" width="60" v-if="!type">
|
</div>
|
||||||
<template #default="{ $index }">
|
</template>
|
||||||
<el-button @click="handleDelete($index)" link>—</el-button>
|
</el-table-column>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
<template #contractAAuthorizedCompanyscompanyAddress>
|
||||||
</el-table>
|
<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>
|
||||||
|
</template>
|
||||||
|
<template #contractAAuthorizedCompanysother2>
|
||||||
|
<el-table-column align="center" fixed="right" label="操作" width="60" v-if="!type">
|
||||||
|
<template #default="{ $index }">
|
||||||
|
<el-button @click="handleDelete($index)" link>—</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</template>
|
||||||
|
</AuthTable>
|
||||||
</el-form>
|
</el-form>
|
||||||
<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>
|
||||||
|
|
@ -127,7 +145,8 @@ const handleAdd = () => {
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
data: undefined,
|
data: undefined,
|
||||||
type: undefined
|
type: undefined,
|
||||||
|
formFields: {}
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
/** 监听主表的关联字段的变化,加载对应的子表数据 */
|
/** 监听主表的关联字段的变化,加载对应的子表数据 */
|
||||||
|
|
|
||||||
|
|
@ -7,88 +7,104 @@
|
||||||
label-width="0px"
|
label-width="0px"
|
||||||
:inline-message="true"
|
:inline-message="true"
|
||||||
>
|
>
|
||||||
<el-table :data="formData" class="-mt-10px">
|
<AuthTable v-loading="loading" :fields="formFields" :data="formData" class="-mt-10px">
|
||||||
<el-table-column label="序号" type="index" width="100" />
|
<template #contractAAuthorizedPersonsother>
|
||||||
<el-table-column label="授权人姓名" min-width="150">
|
<el-table-column label="序号" type="index" width="100" />
|
||||||
<template #default="{ row, $index }">
|
</template>
|
||||||
<el-form-item :prop="`${$index}.customerName`" :rules="formRules.customerName" class="mb-0px!" v-if="!type">
|
<template #contractAAuthorizedPersonscustomerName>
|
||||||
<el-input v-model="row.customerName" placeholder="请输入授权人姓名" />
|
<el-table-column label="授权人姓名" min-width="150">
|
||||||
</el-form-item>
|
<template #default="{ row, $index }">
|
||||||
<div v-else>
|
<el-form-item :prop="`${$index}.customerName`" :rules="formRules.customerName" class="mb-0px!" v-if="!type">
|
||||||
{{row.customerName}}
|
<el-input v-model="row.customerName" placeholder="请输入授权人姓名" />
|
||||||
</div>
|
</el-form-item>
|
||||||
</template>
|
<div v-else>
|
||||||
</el-table-column>
|
{{row.customerName}}
|
||||||
<!-- <el-table-column label="姓名" min-width="150">
|
</div>
|
||||||
<template #default="{ row, $index }">
|
</template>
|
||||||
<el-form-item :prop="`${$index}.customerName`" :rules="formRules.customerName" class="mb-0px!">
|
</el-table-column>
|
||||||
<el-input v-model="row.customerName" placeholder="请输入姓名" />
|
<!-- <el-table-column label="姓名" min-width="150">
|
||||||
</el-form-item>
|
<template #default="{ row, $index }">
|
||||||
</template>
|
<el-form-item :prop="`${$index}.customerName`" :rules="formRules.customerName" class="mb-0px!">
|
||||||
</el-table-column> -->
|
<el-input v-model="row.customerName" placeholder="请输入姓名" />
|
||||||
<el-table-column label="授权人类型" min-width="150">
|
</el-form-item>
|
||||||
<template #default="{ row, $index }">
|
</template>
|
||||||
<el-form-item :prop="`${$index}.authPersonType`" :rules="formRules.authPersonType" class="mb-0px!" v-if="!type">
|
</el-table-column> -->
|
||||||
<el-select v-model="row.authPersonType" placeholder="请选择授权人类型">
|
</template>
|
||||||
<el-option
|
<template #contractAAuthorizedPersonsauthPersonType>
|
||||||
v-for="dict in getIntDictOptions('auth_person_type')"
|
<el-table-column label="授权人类型" min-width="150">
|
||||||
:key="dict.value"
|
<template #default="{ row, $index }">
|
||||||
:label="dict.label"
|
<el-form-item :prop="`${$index}.authPersonType`" :rules="formRules.authPersonType" class="mb-0px!" v-if="!type">
|
||||||
:value="dict.value"
|
<el-select v-model="row.authPersonType" placeholder="请选择授权人类型">
|
||||||
/>
|
<el-option
|
||||||
</el-select>
|
v-for="dict in getIntDictOptions('auth_person_type')"
|
||||||
</el-form-item>
|
:key="dict.value"
|
||||||
<div v-else>
|
:label="dict.label"
|
||||||
{{getName(getIntDictOptions('auth_person_type'), row.authPersonType)}}
|
:value="dict.value"
|
||||||
</div>
|
/>
|
||||||
</template>
|
</el-select>
|
||||||
</el-table-column>
|
</el-form-item>
|
||||||
<el-table-column label="授权人手机号" min-width="150">
|
<div v-else>
|
||||||
<template #default="{ row, $index }">
|
{{getName(getIntDictOptions('auth_person_type'), row.authPersonType)}}
|
||||||
<el-form-item :prop="`${$index}.phoneNumber`" :rules="formRules.phoneNumber" class="mb-0px!" v-if="!type">
|
</div>
|
||||||
<el-input v-model="row.phoneNumber" placeholder="请输入手机号" />
|
</template>
|
||||||
</el-form-item>
|
</el-table-column>
|
||||||
<div v-else>
|
</template>
|
||||||
{{row.phoneNumber}}
|
<template #contractAAuthorizedPersonsphoneNumber>
|
||||||
</div>
|
<el-table-column label="授权人手机号" min-width="150">
|
||||||
</template>
|
<template #default="{ row, $index }">
|
||||||
</el-table-column>
|
<el-form-item :prop="`${$index}.phoneNumber`" :rules="formRules.phoneNumber" class="mb-0px!" v-if="!type">
|
||||||
<el-table-column label="微信号" min-width="150">
|
<el-input v-model="row.phoneNumber" placeholder="请输入手机号" />
|
||||||
<template #default="{ row, $index }">
|
</el-form-item>
|
||||||
<el-form-item :prop="`${$index}.wechat`" :rules="formRules.wechat" class="mb-0px!" v-if="!type">
|
<div v-else>
|
||||||
<el-input v-model="row.wechat" placeholder="请输入微信号" />
|
{{row.phoneNumber}}
|
||||||
</el-form-item>
|
</div>
|
||||||
<div v-else>
|
</template>
|
||||||
{{row.wechat}}
|
</el-table-column>
|
||||||
</div>
|
</template>
|
||||||
</template>
|
<template #contractAAuthorizedPersonswechat>
|
||||||
</el-table-column>
|
<el-table-column label="微信号" min-width="150">
|
||||||
<el-table-column label="身份证号" min-width="150">
|
<template #default="{ row, $index }">
|
||||||
<template #default="{ row, $index }">
|
<el-form-item :prop="`${$index}.wechat`" :rules="formRules.wechat" class="mb-0px!" v-if="!type">
|
||||||
<el-form-item :prop="`${$index}.idNumber`" :rules="formRules.idNumber" class="mb-0px!" v-if="!type">
|
<el-input v-model="row.wechat" placeholder="请输入微信号" />
|
||||||
<el-input v-model="row.idNumber" placeholder="请输入身份证号" />
|
</el-form-item>
|
||||||
</el-form-item>
|
<div v-else>
|
||||||
<div v-else>
|
{{row.wechat}}
|
||||||
{{row.idNumber}}
|
</div>
|
||||||
</div>
|
</template>
|
||||||
</template>
|
</el-table-column>
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column label="电子邮箱" min-width="150">
|
<template #contractAAuthorizedPersonsidNumber>
|
||||||
<template #default="{ row, $index }">
|
<el-table-column label="身份证号" min-width="150">
|
||||||
<el-form-item :prop="`${$index}.email`" :rules="formRules.email" class="mb-0px!" v-if="!type">
|
<template #default="{ row, $index }">
|
||||||
<el-input v-model="row.email" placeholder="请输入电子邮箱" />
|
<el-form-item :prop="`${$index}.idNumber`" :rules="formRules.idNumber" class="mb-0px!" v-if="!type">
|
||||||
</el-form-item>
|
<el-input v-model="row.idNumber" placeholder="请输入身份证号" />
|
||||||
<div v-else>
|
</el-form-item>
|
||||||
{{row.email}}
|
<div v-else>
|
||||||
</div>
|
{{row.idNumber}}
|
||||||
</template>
|
</div>
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column align="center" fixed="right" label="操作" width="60" v-if="!type">
|
</el-table-column>
|
||||||
<template #default="{ $index }">
|
</template>
|
||||||
<el-button @click="handleDelete($index)" link>—</el-button>
|
<template #contractAAuthorizedPersonsemail>
|
||||||
</template>
|
<el-table-column label="电子邮箱" min-width="150">
|
||||||
</el-table-column>
|
<template #default="{ row, $index }">
|
||||||
</el-table>
|
<el-form-item :prop="`${$index}.email`" :rules="formRules.email" class="mb-0px!" v-if="!type">
|
||||||
|
<el-input v-model="row.email" placeholder="请输入电子邮箱" />
|
||||||
|
</el-form-item>
|
||||||
|
<div v-else>
|
||||||
|
{{row.email}}
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</template>
|
||||||
|
<template #contractAAuthorizedPersonsother2>
|
||||||
|
<el-table-column align="center" fixed="right" label="操作" width="60" v-if="!type">
|
||||||
|
<template #default="{ $index }">
|
||||||
|
<el-button @click="handleDelete($index)" link>—</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</template>
|
||||||
|
</AuthTable>
|
||||||
</el-form>
|
</el-form>
|
||||||
<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>
|
||||||
|
|
@ -104,7 +120,8 @@ import ContactForm from '@/components/contact/index.vue'
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
contractId: undefined, // 合同ID(主表的关联字段)
|
contractId: undefined, // 合同ID(主表的关联字段)
|
||||||
type: undefined,
|
type: undefined,
|
||||||
customerId: undefined
|
customerId: undefined,
|
||||||
|
formFields: {}
|
||||||
}>()
|
}>()
|
||||||
const formLoading = ref(false) // 表单的加载中
|
const formLoading = ref(false) // 表单的加载中
|
||||||
const formData = ref([])
|
const formData = ref([])
|
||||||
|
|
|
||||||
|
|
@ -7,115 +7,135 @@
|
||||||
label-width="0px"
|
label-width="0px"
|
||||||
:inline-message="true"
|
:inline-message="true"
|
||||||
>
|
>
|
||||||
<el-table :data="formData" class="-mt-10px">
|
<AuthTable v-loading="loading" :fields="formFields" :data="formData" class="-mt-10px">
|
||||||
<el-table-column label="序号" type="index" width="100" />
|
<template #contractBAuthorizedPersonsother>
|
||||||
<!-- <el-table-column label="用户" min-width="150">
|
<el-table-column label="序号" type="index" width="100" />
|
||||||
<template #default="{ row, $index }">
|
<!-- <el-table-column label="用户" min-width="150">
|
||||||
<el-form-item :prop="`${$index}.userId`" :rules="formRules.userId" class="mb-0px!">
|
<template #default="{ row, $index }">
|
||||||
<el-input v-model="row.userId" placeholder="请输入用户" />
|
<el-form-item :prop="`${$index}.userId`" :rules="formRules.userId" class="mb-0px!">
|
||||||
</el-form-item>
|
<el-input v-model="row.userId" placeholder="请输入用户" />
|
||||||
</template>
|
</el-form-item>
|
||||||
</el-table-column> -->
|
</template>
|
||||||
<el-table-column label="类别" min-width="150">
|
</el-table-column> -->
|
||||||
<template #default="{ row, $index }">
|
</template>
|
||||||
<el-form-item :prop="`${$index}.authType`" :rules="formRules.authType" class="mb-0px!" v-if="!type">
|
<template #contractBAuthorizedPersonsauthType>
|
||||||
<el-select v-model="row.authType" placeholder="请选择类别">
|
<el-table-column label="类别" min-width="150">
|
||||||
|
<template #default="{ row, $index }">
|
||||||
|
<el-form-item :prop="`${$index}.authType`" :rules="formRules.authType" class="mb-0px!" v-if="!type">
|
||||||
|
<el-select v-model="row.authType" placeholder="请选择类别">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getIntDictOptions('auth_type')"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<div v-else>
|
||||||
|
{{getName(getIntDictOptions('auth_type'), row.authType, 'value', 'label')}}
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</template>
|
||||||
|
<template #contractBAuthorizedPersonsuserId>
|
||||||
|
<el-table-column label="姓名" min-width="150">
|
||||||
|
<template #default="{ row, $index }">
|
||||||
|
<el-form-item :prop="`${$index}.userId`" :rules="formRules.name" class="mb-0px!" v-if="!type">
|
||||||
|
<el-select v-model="row.userId" placeholder="请选择售后维护人" @change="changeUser($index, row.userId)">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in getIntDictOptions('auth_type')"
|
v-for="dict in userOptions"
|
||||||
:key="dict.value"
|
:key="dict.id"
|
||||||
:label="dict.label"
|
:label="dict.nickname"
|
||||||
:value="dict.value"
|
:value="dict.id"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
{{getName(getIntDictOptions('auth_type'), row.authType, 'value', 'label')}}
|
{{getName(userOptions, row.userId, 'id', 'nickname')}}
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="姓名" min-width="150">
|
</template>
|
||||||
<template #default="{ row, $index }">
|
<template #contractBAuthorizedPersonspostName>
|
||||||
<el-form-item :prop="`${$index}.userId`" :rules="formRules.name" class="mb-0px!" v-if="!type">
|
<el-table-column label="岗位" min-width="150">
|
||||||
<el-select v-model="row.userId" placeholder="请选择售后维护人" @change="changeUser($index, row.userId)">
|
<template #default="{ row, $index }">
|
||||||
<el-option
|
<el-form-item :prop="`${$index}.postName`" :rules="formRules.postName" class="mb-0px!" v-if="!type">
|
||||||
v-for="dict in userOptions"
|
<el-input v-model="row.postName" placeholder="请输入岗位" />
|
||||||
:key="dict.id"
|
</el-form-item>
|
||||||
:label="dict.nickname"
|
<div v-else>
|
||||||
:value="dict.id"
|
{{row.postName}}
|
||||||
/>
|
</div>
|
||||||
</el-select>
|
</template>
|
||||||
</el-form-item>
|
</el-table-column>
|
||||||
<div v-else>
|
</template>
|
||||||
{{getName(userOptions, row.userId, 'id', 'nickname')}}
|
<template #contractBAuthorizedPersonsuserRank>
|
||||||
</div>
|
<el-table-column label="职级" min-width="150">
|
||||||
</template>
|
<template #default="{ row, $index }">
|
||||||
</el-table-column>
|
<el-form-item :prop="`${$index}.userRank`" :rules="formRules.userRank" class="mb-0px!" v-if="!type">
|
||||||
<el-table-column label="岗位" min-width="150">
|
<el-input v-model="row.userRank" placeholder="请输入职级" />
|
||||||
<template #default="{ row, $index }">
|
</el-form-item>
|
||||||
<el-form-item :prop="`${$index}.postName`" :rules="formRules.postName" class="mb-0px!" v-if="!type">
|
<div v-else>
|
||||||
<el-input v-model="row.postName" placeholder="请输入岗位" />
|
{{row.userRank}}
|
||||||
</el-form-item>
|
</div>
|
||||||
<div v-else>
|
</template>
|
||||||
{{row.postName}}
|
</el-table-column>
|
||||||
</div>
|
</template>
|
||||||
</template>
|
<template #contractBAuthorizedPersonsauthDesc>
|
||||||
</el-table-column>
|
<el-table-column label="权限说明" min-width="150">
|
||||||
<el-table-column label="职级" min-width="150">
|
<template #default="{ row, $index }">
|
||||||
<template #default="{ row, $index }">
|
<el-form-item :prop="`${$index}.authDesc`" :rules="formRules.authDesc" class="mb-0px!" v-if="!type">
|
||||||
<el-form-item :prop="`${$index}.userRank`" :rules="formRules.userRank" class="mb-0px!" v-if="!type">
|
<el-input v-model="row.authDesc" placeholder="请输入权限说明" />
|
||||||
<el-input v-model="row.userRank" placeholder="请输入职级" />
|
</el-form-item>
|
||||||
</el-form-item>
|
<div v-else>
|
||||||
<div v-else>
|
{{row.authDesc}}
|
||||||
{{row.userRank}}
|
</div>
|
||||||
</div>
|
</template>
|
||||||
</template>
|
</el-table-column>
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column label="权限说明" min-width="150">
|
<template #contractBAuthorizedPersonsphoneNumber>
|
||||||
<template #default="{ row, $index }">
|
<el-table-column label="手机号" min-width="150">
|
||||||
<el-form-item :prop="`${$index}.authDesc`" :rules="formRules.authDesc" class="mb-0px!" v-if="!type">
|
<template #default="{ row, $index }">
|
||||||
<el-input v-model="row.authDesc" placeholder="请输入权限说明" />
|
<el-form-item :prop="`${$index}.phoneNumber`" :rules="formRules.phoneNumber" class="mb-0px!" v-if="!type">
|
||||||
</el-form-item>
|
<el-input v-model="row.phoneNumber" placeholder="请输入手机号" />
|
||||||
<div v-else>
|
</el-form-item>
|
||||||
{{row.authDesc}}
|
<div v-else>
|
||||||
</div>
|
{{row.phoneNumber}}
|
||||||
</template>
|
</div>
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column label="手机号" min-width="150">
|
</el-table-column>
|
||||||
<template #default="{ row, $index }">
|
</template>
|
||||||
<el-form-item :prop="`${$index}.phoneNumber`" :rules="formRules.phoneNumber" class="mb-0px!" v-if="!type">
|
<template #contractBAuthorizedPersonswechat>
|
||||||
<el-input v-model="row.phoneNumber" placeholder="请输入手机号" />
|
<el-table-column label="微信号" min-width="150">
|
||||||
</el-form-item>
|
<template #default="{ row, $index }">
|
||||||
<div v-else>
|
<el-form-item :prop="`${$index}.wechat`" :rules="formRules.wechat" class="mb-0px!" v-if="!type">
|
||||||
{{row.phoneNumber}}
|
<el-input v-model="row.wechat" placeholder="请输入微信号" />
|
||||||
</div>
|
</el-form-item>
|
||||||
</template>
|
<div v-else>
|
||||||
</el-table-column>
|
{{row.wechat}}
|
||||||
<el-table-column label="微信号" min-width="150">
|
</div>
|
||||||
<template #default="{ row, $index }">
|
</template>
|
||||||
<el-form-item :prop="`${$index}.wechat`" :rules="formRules.wechat" class="mb-0px!" v-if="!type">
|
</el-table-column>
|
||||||
<el-input v-model="row.wechat" placeholder="请输入微信号" />
|
</template>
|
||||||
</el-form-item>
|
<template #contractBAuthorizedPersonsemail>
|
||||||
<div v-else>
|
<el-table-column label="电子邮箱" min-width="150">
|
||||||
{{row.wechat}}
|
<template #default="{ row, $index }">
|
||||||
</div>
|
<el-form-item :prop="`${$index}.email`" :rules="formRules.email" class="mb-0px!" v-if="!type">
|
||||||
</template>
|
<el-input v-model="row.email" placeholder="请输入电子邮箱" />
|
||||||
</el-table-column>
|
</el-form-item>
|
||||||
<el-table-column label="电子邮箱" min-width="150">
|
<div v-else>
|
||||||
<template #default="{ row, $index }">
|
{{row.email}}
|
||||||
<el-form-item :prop="`${$index}.email`" :rules="formRules.email" class="mb-0px!" v-if="!type">
|
</div>
|
||||||
<el-input v-model="row.email" placeholder="请输入电子邮箱" />
|
</template>
|
||||||
</el-form-item>
|
</el-table-column>
|
||||||
<div v-else>
|
</template>
|
||||||
{{row.email}}
|
<template #contractBAuthorizedPersonsother2>
|
||||||
</div>
|
<el-table-column align="center" fixed="right" label="操作" width="60" v-if="!type">
|
||||||
</template>
|
<template #default="{ $index }">
|
||||||
</el-table-column>
|
<el-button @click="handleDelete($index)" link>—</el-button>
|
||||||
<el-table-column align="center" fixed="right" label="操作" width="60" v-if="!type">
|
</template>
|
||||||
<template #default="{ $index }">
|
</el-table-column>
|
||||||
<el-button @click="handleDelete($index)" link>—</el-button>
|
</template>
|
||||||
</template>
|
</AuthTable>
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
</el-form>
|
</el-form>
|
||||||
<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>
|
||||||
|
|
@ -131,7 +151,8 @@ import ContactForm from '@/components/user/index.vue'
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
contractId: undefined, // 合同ID(主表的关联字段)
|
contractId: undefined, // 合同ID(主表的关联字段)
|
||||||
type: undefined,
|
type: undefined,
|
||||||
userOptions: undefined
|
userOptions: undefined,
|
||||||
|
formFields: {},
|
||||||
}>()
|
}>()
|
||||||
const formLoading = ref(false) // 表单的加载中
|
const formLoading = ref(false) // 表单的加载中
|
||||||
const formData = ref([])
|
const formData = ref([])
|
||||||
|
|
|
||||||
|
|
@ -162,7 +162,7 @@
|
||||||
<template #changeAmount>
|
<template #changeAmount>
|
||||||
<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" oninput="value=value.match(/^\d+(?:\.\d{0,2})?/)" placeholder="请输入调整金额(元)" @input="onChangeAmount" />
|
<el-input v-model="formData.changeAmount" :disabled="formFields.contractBody !== 2 || isTrue" oninput="value=value.match(/^\d+(?:\.\d{0,2})?/)" placeholder="请输入调整金额(元)" @input="onChangeAmount" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
v-model="formData.changeAmountDeadline"
|
v-model="formData.changeAmountDeadline"
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD"
|
||||||
type="date"
|
type="date"
|
||||||
:disabled="type"
|
:disabled="formFields.contractBody !== 2 || isTrue"
|
||||||
placeholder="请选择调整金额截止日期"
|
placeholder="请选择调整金额截止日期"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
|
|
@ -212,6 +212,7 @@ import { propTypes } from '@/utils/propTypes'
|
||||||
/** CRM 方案报价 表单 */
|
/** CRM 方案报价 表单 */
|
||||||
defineOptions({ name: 'ContractChangeLimit' })
|
defineOptions({ name: 'ContractChangeLimit' })
|
||||||
|
|
||||||
|
const isTrue = ref(false)
|
||||||
const { t } = useI18n() // 国际化
|
const { t } = useI18n() // 国际化
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
const customerList = ref([]) // 客户列表的数据
|
const customerList = ref([]) // 客户列表的数据
|
||||||
|
|
@ -434,8 +435,9 @@ const resetForm = () => {
|
||||||
formRef.value?.resetFields()
|
formRef.value?.resetFields()
|
||||||
}
|
}
|
||||||
|
|
||||||
// const route = useRoute();
|
const route = useRoute();
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
|
isTrue.value = !!route.query.isDetail
|
||||||
console.log('%csrc/views/crm/quotation/QuotationForm.vue:596 route', 'color: #007acc;', props.formFields);
|
console.log('%csrc/views/crm/quotation/QuotationForm.vue:596 route', 'color: #007acc;', props.formFields);
|
||||||
// formType.value = route.query.id;
|
// formType.value = route.query.id;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -103,6 +103,7 @@ const getList = async () => {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
defineExpose({ getList })
|
||||||
|
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
const handleQuery = () => {
|
const handleQuery = () => {
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,9 @@
|
||||||
:inline-message="true"
|
:inline-message="true"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
>
|
>
|
||||||
<el-table :data="formData" class="-mt-10px">
|
<AuthTable v-loading="loading" :fields="formFields" :data="formData" class="-mt-10px">
|
||||||
<el-table-column label="序号" type="index" width="100" />
|
<template #productsother>
|
||||||
|
<el-table-column label="序号" type="index" width="100" />
|
||||||
<!-- <el-table-column label="产品编号" min-width="150">
|
<!-- <el-table-column label="产品编号" min-width="150">
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-form-item :prop="`${$index}.productId`" :rules="formRules.productId" class="mb-0px!">
|
<el-form-item :prop="`${$index}.productId`" :rules="formRules.productId" class="mb-0px!">
|
||||||
|
|
@ -17,176 +18,204 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column> -->
|
</el-table-column> -->
|
||||||
<el-table-column label="产品名称" min-width="150">
|
</template>
|
||||||
<template #default="{ row, $index }">
|
<template #productsproductName>
|
||||||
<el-form-item :prop="`${$index}.productName`" :rules="formRules.productName" class="mb-0px!" v-if="!type">
|
<el-table-column label="产品名称" min-width="150">
|
||||||
<el-input v-model="row.productName" placeholder="请输入产品名称" disabled />
|
<template #default="{ row, $index }">
|
||||||
</el-form-item>
|
<el-form-item :prop="`${$index}.productName`" :rules="formRules.productName" class="mb-0px!" v-if="!type">
|
||||||
<div v-else>
|
<el-input v-model="row.productName" placeholder="请输入产品名称" disabled />
|
||||||
{{row.productName}}
|
</el-form-item>
|
||||||
</div>
|
<div v-else>
|
||||||
</template>
|
{{row.productName}}
|
||||||
</el-table-column>
|
</div>
|
||||||
<el-table-column label="产品类别" align="center" min-width="150">
|
</template>
|
||||||
<template #default="{ row, $index }">
|
</el-table-column>
|
||||||
<el-form-item :prop="`${$index}.category`" :rules="formRules.category" class="mb-0px!">
|
</template>
|
||||||
<dict-tag :type="DICT_TYPE.CRM_PRODUCT_CATEGORY" :value="row.category" />
|
<template #productscategory>
|
||||||
</el-form-item>
|
<el-table-column label="产品类别" align="center" min-width="150">
|
||||||
</template>
|
<template #default="{ row, $index }">
|
||||||
</el-table-column>
|
<el-form-item :prop="`${$index}.category`" :rules="formRules.category" class="mb-0px!">
|
||||||
<el-table-column label="产品明细" align="center" min-width="150">
|
<dict-tag :type="DICT_TYPE.CRM_PRODUCT_CATEGORY" :value="row.category" />
|
||||||
<template #default="{ row, $index }">
|
</el-form-item>
|
||||||
<el-form-item :prop="`${$index}.detailType`" :rules="formRules.detailType" class="mb-0px!">
|
</template>
|
||||||
<dict-tag :type="DICT_TYPE.CRM_PRODUCT_DETAIL_TYPE" :value="row.detailType" />
|
</el-table-column>
|
||||||
</el-form-item>
|
</template>
|
||||||
</template>
|
<template #productsdetailType>
|
||||||
</el-table-column>
|
<el-table-column label="产品明细" align="center" min-width="150">
|
||||||
<el-table-column label="产品单位" align="center" min-width="150">
|
<template #default="{ row, $index }">
|
||||||
<template #default="{ row, $index }">
|
<el-form-item :prop="`${$index}.detailType`" :rules="formRules.detailType" class="mb-0px!">
|
||||||
<el-form-item :prop="`${$index}.productUnit`" :rules="formRules.productUnit" class="mb-0px!" v-if="!type">
|
<dict-tag :type="DICT_TYPE.CRM_PRODUCT_DETAIL_TYPE" :value="row.detailType" />
|
||||||
<el-select v-model="row.productUnit" placeholder="产品单位" disabled>
|
</el-form-item>
|
||||||
<el-option
|
</template>
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_PRODUCT_UNIT)"
|
</el-table-column>
|
||||||
:key="dict.value"
|
</template>
|
||||||
:label="dict.label"
|
<template #productsproductUnit>
|
||||||
:value="dict.value"
|
<el-table-column label="产品单位" align="center" min-width="150">
|
||||||
/>
|
<template #default="{ row, $index }">
|
||||||
</el-select>
|
<el-form-item :prop="`${$index}.productUnit`" :rules="formRules.productUnit" class="mb-0px!" v-if="!type">
|
||||||
</el-form-item>
|
<el-select v-model="row.productUnit" placeholder="产品单位" disabled>
|
||||||
<dict-tag v-else :type="DICT_TYPE.CRM_PRODUCT_UNIT" :value="row.productUnit" />
|
<el-option
|
||||||
</template>
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_PRODUCT_UNIT)"
|
||||||
</el-table-column>
|
:key="dict.value"
|
||||||
<el-table-column label="基础服务费(元)" min-width="130">
|
:label="dict.label"
|
||||||
<template #default="{ row, $index }">
|
:value="dict.value"
|
||||||
<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="" /> -->
|
</el-select>
|
||||||
{{row.basicServiceFee}}
|
</el-form-item>
|
||||||
</el-form-item>
|
<dict-tag v-else :type="DICT_TYPE.CRM_PRODUCT_UNIT" :value="row.productUnit" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
</template>
|
||||||
<el-table-column label="垫资服务费(元)" min-width="140">
|
<template #productsbasicServiceFee>
|
||||||
<template #default="{ row, $index }">
|
<el-table-column label="基础服务费(元)" min-width="130">
|
||||||
<el-form-item :prop="`${$index}.offlinePrice`" :rules="formRules.offlinePrice" class="mb-0px!">
|
<template #default="{ row, $index }">
|
||||||
<!-- <el-input v-model="row.offlinePrice" oninput="value=value.match(/^\d+(?:\.\d{0,2})?/)" placeholder="" /> -->
|
<el-form-item :prop="`${$index}.basicServiceFee`" :rules="formRules.basicServiceFee" class="mb-0px!">
|
||||||
{{row.advancePaymentServiceFee}}
|
<!-- <el-input v-model="row.basicServiceFee" oninput="value=value.match(/^\d+(?:\.\d{0,2})?/)" placeholder="" /> -->
|
||||||
</el-form-item>
|
{{row.basicServiceFee}}
|
||||||
</template>
|
</el-form-item>
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column label="代订服务费(元)" min-width="130">
|
</el-table-column>
|
||||||
<template #default="{ row, $index }">
|
</template>
|
||||||
<el-form-item :prop="`${$index}.advancePaymentServiceFee`" :rules="formRules.advancePaymentServiceFee" class="mb-0px!">
|
<template #productsadvancePaymentServiceFee>
|
||||||
{{row.bookingPaymentServiceFee}}
|
<el-table-column label="垫资服务费(元)" min-width="140">
|
||||||
</el-form-item>
|
<template #default="{ row, $index }">
|
||||||
</template>
|
<el-form-item :prop="`${$index}.offlinePrice`" :rules="formRules.offlinePrice" class="mb-0px!">
|
||||||
</el-table-column>
|
<!-- <el-input v-model="row.offlinePrice" oninput="value=value.match(/^\d+(?:\.\d{0,2})?/)" placeholder="" /> -->
|
||||||
<el-table-column label="票据分拣服务费(元)" min-width="130">
|
{{row.advancePaymentServiceFee}}
|
||||||
<template #default="{ row, $index }">
|
</el-form-item>
|
||||||
<el-form-item :prop="`${$index}.billSortingServiceFee`" :rules="formRules.billSortingServiceFee" class="mb-0px!">
|
</template>
|
||||||
{{row.billSortingServiceFee}}
|
</el-table-column>
|
||||||
</el-form-item>
|
</template>
|
||||||
</template>
|
<template #productsbookingPaymentServiceFee>
|
||||||
</el-table-column>
|
<el-table-column label="代订服务费(元)" min-width="130">
|
||||||
<el-table-column label="服务费收入合计(元)" min-width="130">
|
<template #default="{ row, $index }">
|
||||||
<template #default="{ row, $index }">
|
<el-form-item :prop="`${$index}.advancePaymentServiceFee`" :rules="formRules.advancePaymentServiceFee" class="mb-0px!">
|
||||||
<el-form-item :prop="`${$index}.totalServiceFee`" :rules="formRules.totalServiceFee" class="mb-0px!">
|
{{row.bookingPaymentServiceFee}}
|
||||||
{{row.totalServiceFee}}
|
</el-form-item>
|
||||||
</el-form-item>
|
</template>
|
||||||
</template>
|
</el-table-column>
|
||||||
</el-table-column>
|
</template>
|
||||||
<!-- <el-table-column label="线上价格" align="center" min-width="150">
|
<template #productsbillSortingServiceFee>
|
||||||
<template #default="{ row, $index }">
|
<el-table-column label="票据分拣服务费(元)" min-width="130">
|
||||||
<el-form-item :prop="`${$index}.onlinePrice`" :rules="formRules.onlinePrice" class="mb-0px!" v-if="!type">
|
<template #default="{ row, $index }">
|
||||||
<el-input v-model="row.onlinePrice" placeholder="请输入线上价格" disabled />
|
<el-form-item :prop="`${$index}.billSortingServiceFee`" :rules="formRules.billSortingServiceFee" class="mb-0px!">
|
||||||
</el-form-item>
|
{{row.billSortingServiceFee}}
|
||||||
<div v-else>
|
</el-form-item>
|
||||||
{{row.onlinePrice}}
|
</template>
|
||||||
</div>
|
</el-table-column>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
<template #productstotalServiceFee>
|
||||||
<el-table-column label="线下价格" align="center" min-width="150">
|
<el-table-column label="服务费收入合计(元)" min-width="130">
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-form-item :prop="`${$index}.offlinePrice`" :rules="formRules.offlinePrice" class="mb-0px!" v-if="!type">
|
<el-form-item :prop="`${$index}.totalServiceFee`" :rules="formRules.totalServiceFee" class="mb-0px!">
|
||||||
<el-input v-model="row.offlinePrice" placeholder="请输入线下价格" disabled />
|
{{row.totalServiceFee}}
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div v-else>
|
</template>
|
||||||
{{row.onlinePrice}}
|
</el-table-column>
|
||||||
</div>
|
<!-- <el-table-column label="线上价格" align="center" min-width="150">
|
||||||
</template>
|
<template #default="{ row, $index }">
|
||||||
</el-table-column>
|
<el-form-item :prop="`${$index}.onlinePrice`" :rules="formRules.onlinePrice" class="mb-0px!" v-if="!type">
|
||||||
<el-table-column label="总计价格" align="center" min-width="150">
|
<el-input v-model="row.onlinePrice" placeholder="请输入线上价格" disabled />
|
||||||
<template #default="{ row }">
|
</el-form-item>
|
||||||
<div>
|
<div v-else>
|
||||||
{{row.onlinePrice}}
|
{{row.onlinePrice}}
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column> -->
|
</el-table-column>
|
||||||
<el-table-column label="产品票据" align="center" min-width="140">
|
<el-table-column label="线下价格" align="center" min-width="150">
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-form-item :prop="`${$index}.productInvoice`" :rules="formRules.productInvoice" class="mb-0px!" v-if="!type">
|
<el-form-item :prop="`${$index}.offlinePrice`" :rules="formRules.offlinePrice" class="mb-0px!" v-if="!type">
|
||||||
<el-select v-model="row.productInvoice" placeholder="请选择状态" disabled>
|
<el-input v-model="row.offlinePrice" placeholder="请输入线下价格" disabled />
|
||||||
<el-option
|
</el-form-item>
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_PRODUCT_INVOICE)"
|
<div v-else>
|
||||||
:key="dict.value"
|
{{row.onlinePrice}}
|
||||||
:label="dict.label"
|
</div>
|
||||||
:value="dict.value"
|
</template>
|
||||||
/>
|
</el-table-column>
|
||||||
</el-select>
|
<el-table-column label="总计价格" align="center" min-width="150">
|
||||||
</el-form-item>
|
<template #default="{ row }">
|
||||||
<dict-tag v-else :type="DICT_TYPE.CRM_PRODUCT_INVOICE" :value="row.productInvoice" />
|
<div>
|
||||||
</template>
|
{{row.onlinePrice}}
|
||||||
</el-table-column>
|
</div>
|
||||||
<el-table-column label="产品开具项目" align="center" min-width="160">
|
</template>
|
||||||
<template #default="{ row, $index }">
|
</el-table-column> -->
|
||||||
<el-form-item :prop="`${$index}.productInvoiceItem`" :rules="formRules.productInvoiceItem" class="mb-0px!" v-if="!type">
|
</template>
|
||||||
<el-select v-model="row.productInvoiceItem" placeholder="请选择状态" disabled>
|
<template #productsproductInvoice>
|
||||||
<el-option
|
<el-table-column label="产品票据" align="center" min-width="140">
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_PRODUCT_INVOICE_ITEMS)"
|
<template #default="{ row, $index }">
|
||||||
:key="dict.value"
|
<el-form-item :prop="`${$index}.productInvoice`" :rules="formRules.productInvoice" class="mb-0px!" v-if="!type">
|
||||||
:label="dict.label"
|
<el-select v-model="row.productInvoice" placeholder="请选择状态" disabled>
|
||||||
:value="dict.value"
|
<el-option
|
||||||
/>
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_PRODUCT_INVOICE)"
|
||||||
</el-select>
|
:key="dict.value"
|
||||||
</el-form-item>
|
:label="dict.label"
|
||||||
<dict-tag v-else :type="DICT_TYPE.CRM_PRODUCT_INVOICE_ITEMS" :value="row.productInvoiceItem" />
|
:value="dict.value"
|
||||||
</template>
|
/>
|
||||||
</el-table-column>
|
</el-select>
|
||||||
<el-table-column label="服务费票据" align="center" min-width="140">
|
</el-form-item>
|
||||||
<template #default="{ row, $index }">
|
<dict-tag v-else :type="DICT_TYPE.CRM_PRODUCT_INVOICE" :value="row.productInvoice" />
|
||||||
<el-form-item :prop="`${$index}.serviceInvoice`" :rules="formRules.serviceInvoice" class="mb-0px!" v-if="!type">
|
</template>
|
||||||
<el-select v-model="row.serviceInvoice" placeholder="服务费票据" disabled>
|
</el-table-column>
|
||||||
<el-option
|
</template>
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_SERVICE_FEE_INVOICE)"
|
<template #productsproductInvoiceItem>
|
||||||
:key="dict.value"
|
<el-table-column label="产品开具项目" align="center" min-width="160">
|
||||||
:label="dict.label"
|
<template #default="{ row, $index }">
|
||||||
:value="dict.value"
|
<el-form-item :prop="`${$index}.productInvoiceItem`" :rules="formRules.productInvoiceItem" class="mb-0px!" v-if="!type">
|
||||||
/>
|
<el-select v-model="row.productInvoiceItem" placeholder="请选择状态" disabled>
|
||||||
</el-select>
|
<el-option
|
||||||
</el-form-item>
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_PRODUCT_INVOICE_ITEMS)"
|
||||||
<dict-tag v-else :type="DICT_TYPE.CRM_SERVICE_FEE_INVOICE" :value="row.serviceInvoice" />
|
:key="dict.value"
|
||||||
</template>
|
:label="dict.label"
|
||||||
</el-table-column>
|
:value="dict.value"
|
||||||
<el-table-column label="服务开具项目" align="center" min-width="160">
|
/>
|
||||||
<template #default="{ row, $index }">
|
</el-select>
|
||||||
<el-form-item :prop="`${$index}.serviceInvoiceItem`" :rules="formRules.serviceInvoiceItem" class="mb-0px!" v-if="!type">
|
</el-form-item>
|
||||||
<el-select v-model="row.serviceInvoiceItem" placeholder="服务开具项目" disabled>
|
<dict-tag v-else :type="DICT_TYPE.CRM_PRODUCT_INVOICE_ITEMS" :value="row.productInvoiceItem" />
|
||||||
<el-option
|
</template>
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_SERVICE_FEE_INVOICE_ITEMS)"
|
</el-table-column>
|
||||||
:key="dict.value"
|
</template>
|
||||||
:label="dict.label"
|
<template #productsserviceInvoice>
|
||||||
:value="dict.value"
|
<el-table-column label="服务费票据" align="center" min-width="140">
|
||||||
/>
|
<template #default="{ row, $index }">
|
||||||
</el-select>
|
<el-form-item :prop="`${$index}.serviceInvoice`" :rules="formRules.serviceInvoice" class="mb-0px!" v-if="!type">
|
||||||
</el-form-item>
|
<el-select v-model="row.serviceInvoice" placeholder="服务费票据" disabled>
|
||||||
<dict-tag v-else :type="DICT_TYPE.CRM_SERVICE_FEE_INVOICE_ITEMS" :value="row.serviceInvoiceItem" />
|
<el-option
|
||||||
</template>
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_SERVICE_FEE_INVOICE)"
|
||||||
</el-table-column>
|
:key="dict.value"
|
||||||
<el-table-column align="center" fixed="right" label="操作" width="60" v-if="!type">
|
:label="dict.label"
|
||||||
<template #default="{ $index }">
|
:value="dict.value"
|
||||||
<el-button @click="handleDelete($index)" link>—</el-button>
|
/>
|
||||||
</template>
|
</el-select>
|
||||||
</el-table-column>
|
</el-form-item>
|
||||||
</el-table>
|
<dict-tag v-else :type="DICT_TYPE.CRM_SERVICE_FEE_INVOICE" :value="row.serviceInvoice" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</template>
|
||||||
|
<template #productsserviceInvoiceItem>
|
||||||
|
<el-table-column label="服务开具项目" align="center" min-width="160">
|
||||||
|
<template #default="{ row, $index }">
|
||||||
|
<el-form-item :prop="`${$index}.serviceInvoiceItem`" :rules="formRules.serviceInvoiceItem" class="mb-0px!" v-if="!type">
|
||||||
|
<el-select v-model="row.serviceInvoiceItem" placeholder="服务开具项目" disabled>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_SERVICE_FEE_INVOICE_ITEMS)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<dict-tag v-else :type="DICT_TYPE.CRM_SERVICE_FEE_INVOICE_ITEMS" :value="row.serviceInvoiceItem" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</template>
|
||||||
|
<template #productsother1>
|
||||||
|
<el-table-column align="center" fixed="right" label="操作" width="60" v-if="!type">
|
||||||
|
<template #default="{ $index }">
|
||||||
|
<el-button @click="handleDelete($index)" link>—</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</template>
|
||||||
|
</AuthTable>
|
||||||
</el-form>
|
</el-form>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|
|
||||||
|
|
@ -120,6 +120,7 @@ const getList = async () => {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
defineExpose({ getList })
|
||||||
|
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
const handleQuery = () => {
|
const handleQuery = () => {
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
<template>
|
<template>
|
||||||
<ContentWrap class="mt-10px">
|
<ContentWrap class="mt-10px">
|
||||||
<el-form
|
<processForm
|
||||||
ref="formRef"
|
ref="formRef"
|
||||||
v-loading="formLoading"
|
v-loading="formLoading"
|
||||||
:model="formData"
|
:model="formData"
|
||||||
|
:fields="formFields"
|
||||||
:rules="formRules"
|
:rules="formRules"
|
||||||
label-width="120px"
|
label-width="120px"
|
||||||
>
|
>
|
||||||
<el-row>
|
|
||||||
<!-- <el-col :span="8">
|
<!-- <el-col :span="8">
|
||||||
<el-form-item label="合同查询" prop="quotationId">
|
<el-form-item label="合同查询" prop="quotationId">
|
||||||
<el-select
|
<el-select
|
||||||
|
|
@ -24,18 +24,23 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
|
<template #customerId>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="客户名称" prop="customerId">
|
<el-form-item label="客户名称" prop="customerId">
|
||||||
<SelectComponent :customerList="customerList" :disabled="true" v-model="formData.customerId" />
|
<SelectComponent :customerList="customerList" :disabled="true" v-model="formData.customerId" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #processInstanceId>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="协议编码" prop="name">
|
<el-form-item label="协议编码" prop="processInstanceId">
|
||||||
<el-input v-model="formData.processInstanceId" disabled placeholder="协议编码" />
|
<el-input v-model="formData.processInstanceId" disabled placeholder="协议编码" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #auditStatus>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="合同状态" prop="quotationId">
|
<el-form-item label="合同状态" prop="auditStatus">
|
||||||
<el-select v-model="formData.auditStatus" disabled clearable placeholder="请选择合同状态">
|
<el-select v-model="formData.auditStatus" disabled clearable placeholder="请选择合同状态">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_AUDIT_STATUS)"
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_AUDIT_STATUS)"
|
||||||
|
|
@ -46,6 +51,8 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #endTime>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="协议截止日期" prop="endTime">
|
<el-form-item label="协议截止日期" prop="endTime">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
|
|
@ -58,9 +65,11 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #changeItem>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="变更项目" prop="endTime">
|
<el-form-item label="变更项目" prop="changeItem">
|
||||||
<el-radio-group v-model="formData.changeItem" disabled >
|
<el-radio-group v-model="formData.changeItem" :disabled="formFields.contractAgreement !== 2 || isTrue" >
|
||||||
<el-radio :value="1">额度</el-radio>
|
<el-radio :value="1">额度</el-radio>
|
||||||
<el-radio :value="2">授权人</el-radio>
|
<el-radio :value="2">授权人</el-radio>
|
||||||
<el-radio :value="3">延期</el-radio>
|
<el-radio :value="3">延期</el-radio>
|
||||||
|
|
@ -70,8 +79,8 @@
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</template>
|
||||||
|
<template #other>
|
||||||
<!-- 子表的表单 -->
|
<!-- 子表的表单 -->
|
||||||
<ContentWrap>
|
<ContentWrap>
|
||||||
<ContractChangeLimit
|
<ContractChangeLimit
|
||||||
|
|
@ -101,7 +110,8 @@
|
||||||
<ContractAAuthorizedCompanyForm ref="contractAAuthorizedCompanyFormRef1" :type="true" v-if="formData.changeItem == 5" :data="formData.contractAAuthorizedCompanys" />
|
<ContractAAuthorizedCompanyForm ref="contractAAuthorizedCompanyFormRef1" :type="true" v-if="formData.changeItem == 5" :data="formData.contractAAuthorizedCompanys" />
|
||||||
<ContractForm ref="contractFormRef" :type="1" :id="formData.id" v-if="formData.changeItem == 6" />
|
<ContractForm ref="contractFormRef" :type="1" :id="formData.id" v-if="formData.changeItem == 6" />
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
</el-form>
|
</template>
|
||||||
|
</processForm>
|
||||||
|
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -123,8 +133,10 @@ import ContractAAuthorizedCompanyForm from '../components/ContractAAuthorizedCom
|
||||||
import ContractBAuthorizedPersonForm from '../components/ContractAAuthorizedPersonForm.vue'
|
import ContractBAuthorizedPersonForm from '../components/ContractAAuthorizedPersonForm.vue'
|
||||||
import ContractForm from './ContractDetail.vue'
|
import ContractForm from './ContractDetail.vue'
|
||||||
import { propTypes } from '@/utils/propTypes'
|
import { propTypes } from '@/utils/propTypes'
|
||||||
|
import { getLimitForm } from '@/api/bpm/form'
|
||||||
|
|
||||||
|
|
||||||
|
const isTrue = ref(false)
|
||||||
const { t } = useI18n() // 国际化
|
const { t } = useI18n() // 国际化
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
const { proxy }: any = getCurrentInstance();
|
const { proxy }: any = getCurrentInstance();
|
||||||
|
|
@ -136,6 +148,12 @@ const dialogTitle = ref('') // 弹窗的标题
|
||||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
||||||
const formFields = ref({
|
const formFields = ref({
|
||||||
|
customerId: 1,
|
||||||
|
processInstanceId: 1,
|
||||||
|
auditStatus: 1,
|
||||||
|
endTime: 1,
|
||||||
|
changeItem: 1,
|
||||||
|
other: 1,
|
||||||
cooperationType: 1,
|
cooperationType: 1,
|
||||||
regType: 1,
|
regType: 1,
|
||||||
actualCapital: 1,
|
actualCapital: 1,
|
||||||
|
|
@ -149,6 +167,20 @@ const formFields = ref({
|
||||||
creditAmount: 1,
|
creditAmount: 1,
|
||||||
creditLimit: 1,
|
creditLimit: 1,
|
||||||
partnerCompanyId: 1,
|
partnerCompanyId: 1,
|
||||||
|
|
||||||
|
contractDetailcooperationType: 1,
|
||||||
|
contractDetailregType: 1,
|
||||||
|
contractDetailactualCapital: 1,
|
||||||
|
contractDetailsocialEmployeeNum: 1,
|
||||||
|
contractDetaildefendantRecord: 1,
|
||||||
|
contractDetailabnormalService: 1,
|
||||||
|
contractDetailequityPledge: 1,
|
||||||
|
contractDetaildishonestyRecord: 1,
|
||||||
|
contractDetailfinanceRecord: 1,
|
||||||
|
contractDetailjudgmentRecord: 1,
|
||||||
|
contractDetailcreditAmount: 1,
|
||||||
|
contractDetailcreditLimit: 1,
|
||||||
|
contractDetailpartnerCompanyId: 1,
|
||||||
changeAmount: 1,
|
changeAmount: 1,
|
||||||
afterAmount: 1,
|
afterAmount: 1,
|
||||||
changeAmountDeadline: 1,
|
changeAmountDeadline: 1,
|
||||||
|
|
@ -485,11 +517,36 @@ const getContactOptions = computed(() =>
|
||||||
)
|
)
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
|
||||||
|
//获取字段权限
|
||||||
|
const getLimit = async () => {
|
||||||
|
let data = {
|
||||||
|
modelNodeId: route.query.taskDefinitionKey,
|
||||||
|
processDefinitionId: route.query.processDefinitionId
|
||||||
|
}
|
||||||
|
let field = await getLimitForm(data)
|
||||||
|
for(let key in formFields.value) {
|
||||||
|
|
||||||
|
if(formFields.value.hasOwnProperty(key)) {
|
||||||
|
field.fields.map( v => {
|
||||||
|
let newKey = v.field
|
||||||
|
if(v.field.indexOf('.') > -1) {
|
||||||
|
newKey = v.field.split('.')[0] + v.field.split('.')[1]
|
||||||
|
}
|
||||||
|
|
||||||
|
if(newKey === key) formFields.value[key] = v.permission
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
|
isTrue.value = !!route.query.isDetail
|
||||||
formType.value = props.id || route.query.id;
|
formType.value = props.id || route.query.id;
|
||||||
|
|
||||||
if (formType.value) open(formType.value)
|
if (formType.value) open(formType.value)
|
||||||
|
|
||||||
|
if(route.query.processDefinitionId) getLimit()
|
||||||
// 获得客户列表
|
// 获得客户列表
|
||||||
customerList.value = await CustomerApi.getCustomerSimpleList()
|
customerList.value = await CustomerApi.getCustomerSimpleList()
|
||||||
// 获得用户列表
|
// 获得用户列表
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
<el-form-item label="客户名称" prop="customerId">
|
<el-form-item label="客户名称" prop="customerId">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formData.customerId"
|
v-model="formData.customerId"
|
||||||
disabled=""
|
:disabled="formFields.customerId !== 2 || isTrue"
|
||||||
placeholder=""
|
placeholder=""
|
||||||
class="w-1/1"
|
class="w-1/1"
|
||||||
>
|
>
|
||||||
|
|
@ -73,7 +73,7 @@
|
||||||
<el-select
|
<el-select
|
||||||
@change="handleQuotationChange"
|
@change="handleQuotationChange"
|
||||||
v-model="formData.pricingUserId"
|
v-model="formData.pricingUserId"
|
||||||
disabled
|
:disabled="formFields.pricingUserId !== 2 || isTrue"
|
||||||
placeholder=""
|
placeholder=""
|
||||||
class="w-1/1"
|
class="w-1/1"
|
||||||
>
|
>
|
||||||
|
|
@ -377,7 +377,7 @@
|
||||||
<template #contractType>
|
<template #contractType>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="合同类型" prop="contractType">
|
<el-form-item label="合同类型" prop="contractType">
|
||||||
<el-radio-group v-model="formData.contractType" disabled>
|
<el-radio-group v-model="formData.contractType" :disabled="formFields.contractType !== 2 || isTrue">
|
||||||
<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-group>
|
</el-radio-group>
|
||||||
|
|
@ -389,7 +389,7 @@
|
||||||
<el-form-item label="合同签订日期" prop="startTime">
|
<el-form-item label="合同签订日期" prop="startTime">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="formData.startTime"
|
v-model="formData.startTime"
|
||||||
disabled
|
:disabled="formFields.startTime !== 2 || isTrue"
|
||||||
type="date"
|
type="date"
|
||||||
value-format="x"
|
value-format="x"
|
||||||
placeholder=""
|
placeholder=""
|
||||||
|
|
@ -404,7 +404,7 @@
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="formData.endTime"
|
v-model="formData.endTime"
|
||||||
type="date"
|
type="date"
|
||||||
disabled
|
:disabled="formFields.endTime !== 2 || isTrue"
|
||||||
value-format="x"
|
value-format="x"
|
||||||
placeholder=""
|
placeholder=""
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
|
|
@ -415,14 +415,14 @@
|
||||||
<template #contractTerm>
|
<template #contractTerm>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="合同期限(月)" prop="contractTerm">
|
<el-form-item label="合同期限(月)" prop="contractTerm">
|
||||||
<el-input v-model="formData.contractTerm" disabled oninput = "value=value.replace(/[^\d]/g,'')" placeholder="" />
|
<el-input v-model="formData.contractTerm" :disabled="formFields.contractTerm !== 2 || isTrue" oninput = "value=value.replace(/[^\d]/g,'')" placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</template>
|
</template>
|
||||||
<template #statementDate>
|
<template #statementDate>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="账单日" prop="statementDate">
|
<el-form-item label="账单日" prop="statementDate">
|
||||||
<el-select v-model="formData.statementDate" disabled placeholder="" >
|
<el-select v-model="formData.statementDate" :disabled="formFields.statementDate !== 2 || isTrue" placeholder="" >
|
||||||
<el-option
|
<el-option
|
||||||
v-for="(dict, index) in statement"
|
v-for="(dict, index) in statement"
|
||||||
:key="index"
|
:key="index"
|
||||||
|
|
@ -436,7 +436,7 @@
|
||||||
<template #lastPayDate>
|
<template #lastPayDate>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="最晚付款日" prop="lastPayDate">
|
<el-form-item label="最晚付款日" prop="lastPayDate">
|
||||||
<el-select v-model="formData.lastPayDate" disabled placeholder="" >
|
<el-select v-model="formData.lastPayDate" :disabled="formFields.lastPayDate !== 2 || isTrue" placeholder="" >
|
||||||
<el-option
|
<el-option
|
||||||
v-for="(dict, index) in statement"
|
v-for="(dict, index) in statement"
|
||||||
:key="index"
|
:key="index"
|
||||||
|
|
@ -450,14 +450,14 @@
|
||||||
<template #penaltyRate>
|
<template #penaltyRate>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="违约金比例" prop="penaltyRate">
|
<el-form-item label="违约金比例" prop="penaltyRate">
|
||||||
<el-input v-model="formData.penaltyRate" disabled placeholder="" />
|
<el-input v-model="formData.penaltyRate" :disabled="formFields.penaltyRate !== 2 || isTrue" placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</template>
|
</template>
|
||||||
<template #latePaymentRate>
|
<template #latePaymentRate>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="延期付款利率" prop="latePaymentRate">
|
<el-form-item label="延期付款利率" prop="latePaymentRate">
|
||||||
<el-input v-model="formData.latePaymentRate" disabled placeholder="" />
|
<el-input v-model="formData.latePaymentRate" :disabled="formFields.latePaymentRate !== 2 || isTrue" placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- <el-col :span="8">
|
<!-- <el-col :span="8">
|
||||||
|
|
@ -479,7 +479,7 @@
|
||||||
<template #settleMethod>
|
<template #settleMethod>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="财务结算方式" prop="settleMethod">
|
<el-form-item label="财务结算方式" prop="settleMethod">
|
||||||
<el-radio-group v-model="formData.settleMethod" disabled>
|
<el-radio-group v-model="formData.settleMethod" :disabled="formFields.settleMethod !== 2 || isTrue">
|
||||||
<el-radio :label="1">按月结算</el-radio>
|
<el-radio :label="1">按月结算</el-radio>
|
||||||
<el-radio :label="0">按项目结算</el-radio>
|
<el-radio :label="0">按项目结算</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
|
|
@ -489,7 +489,7 @@
|
||||||
<template #afterSaleUserId>
|
<template #afterSaleUserId>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="售后维护人" prop="afterSaleUserId">
|
<el-form-item label="售后维护人" prop="afterSaleUserId">
|
||||||
<el-select v-model="formData.afterSaleUserId" disabled placeholder="">
|
<el-select v-model="formData.afterSaleUserId" :disabled="formFields.afterSaleUserId !== 2 || isTrue" placeholder="">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in userOptions"
|
v-for="dict in userOptions"
|
||||||
:key="dict.id"
|
:key="dict.id"
|
||||||
|
|
@ -503,7 +503,7 @@
|
||||||
<template #collUserId>
|
<template #collUserId>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="协作人" prop="collUserId">
|
<el-form-item label="协作人" prop="collUserId">
|
||||||
<el-select v-model="formData.collUserId" disabled placeholder="">
|
<el-select v-model="formData.collUserId" :disabled="formFields.collUserId !== 2 || isTrue" placeholder="">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in userOptions"
|
v-for="dict in userOptions"
|
||||||
:key="dict.id"
|
:key="dict.id"
|
||||||
|
|
@ -517,14 +517,14 @@
|
||||||
<template #contractBody>
|
<template #contractBody>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="合同正文" prop="contractBody">
|
<el-form-item label="合同正文" prop="contractBody">
|
||||||
<el-input v-model="formData.contractBody" disabled type="textarea" rows="5" placeholder="" />
|
<el-input v-model="formData.contractBody" :disabled="formFields.contractBody !== 2 || isTrue" type="textarea" rows="5" placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</template>
|
</template>
|
||||||
<template #contractAgreement>
|
<template #contractAgreement>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="合同补充协议" prop="contractAgreement">
|
<el-form-item label="合同补充协议" prop="contractAgreement">
|
||||||
<el-input v-model="formData.contractAgreement" disabled type="textarea" rows="5" placeholder="" />
|
<el-input v-model="formData.contractAgreement" :disabled="formFields.contractAgreement !== 2 || isTrue" type="textarea" rows="5" placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -651,6 +651,47 @@ const formFields = ref({
|
||||||
contractBody: 1,
|
contractBody: 1,
|
||||||
contractAgreement: 1,
|
contractAgreement: 1,
|
||||||
other5: 1,
|
other5: 1,
|
||||||
|
productsother: 1,
|
||||||
|
productsproductName: 1,
|
||||||
|
productscategory: 1,
|
||||||
|
productsdetailType: 1,
|
||||||
|
productsproductUnit: 1,
|
||||||
|
productsbasicServiceFee: 1,
|
||||||
|
productsadvancePaymentServiceFee: 1,
|
||||||
|
productsbookingPaymentServiceFee: 1,
|
||||||
|
productsbillSortingServiceFee: 1,
|
||||||
|
productstotalServiceFee: 1,
|
||||||
|
productsproductInvoice: 1,
|
||||||
|
productsproductInvoiceItem: 1,
|
||||||
|
productsserviceInvoice: 1,
|
||||||
|
productsserviceInvoiceItem: 1,
|
||||||
|
productsother1: 1,
|
||||||
|
contractAAuthorizedCompanysother: 1,
|
||||||
|
contractAAuthorizedCompanysunifiedCreditCode: 1,
|
||||||
|
contractAAuthorizedCompanysinvoicingAddress: 1,
|
||||||
|
contractAAuthorizedCompanysinvoicingTelephone: 1,
|
||||||
|
contractAAuthorizedCompanyscompanyBank: 1,
|
||||||
|
contractAAuthorizedCompanyscompanyAccount: 1,
|
||||||
|
contractAAuthorizedCompanyscompanyAddress: 1,
|
||||||
|
contractAAuthorizedCompanysother2: 1,
|
||||||
|
contractAAuthorizedPersonsother: 1,
|
||||||
|
contractAAuthorizedPersonscustomerName: 1,
|
||||||
|
contractAAuthorizedPersonsauthPersonType: 1,
|
||||||
|
contractAAuthorizedPersonsphoneNumber: 1,
|
||||||
|
contractAAuthorizedPersonswechat: 1,
|
||||||
|
contractAAuthorizedPersonsidNumber: 1,
|
||||||
|
contractAAuthorizedPersonsemail: 1,
|
||||||
|
contractAAuthorizedPersonsother2: 1,
|
||||||
|
contractBAuthorizedPersonsother: 1,
|
||||||
|
contractBAuthorizedPersonsauthType: 1,
|
||||||
|
contractBAuthorizedPersonsuserId: 1,
|
||||||
|
contractBAuthorizedPersonspostName: 1,
|
||||||
|
contractBAuthorizedPersonsuserRank: 1,
|
||||||
|
contractBAuthorizedPersonsauthDesc: 1,
|
||||||
|
contractBAuthorizedPersonsphoneNumber: 1,
|
||||||
|
contractBAuthorizedPersonswechat: 1,
|
||||||
|
contractBAuthorizedPersonsemail: 1,
|
||||||
|
contractBAuthorizedPersonsother2: 1,
|
||||||
})
|
})
|
||||||
const formData = ref({
|
const formData = ref({
|
||||||
id: undefined,
|
id: undefined,
|
||||||
|
|
|
||||||
|
|
@ -63,51 +63,51 @@
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
|
|
||||||
<el-collapse-item name="systemInfo">
|
<el-collapse-item name="systemInfo">
|
||||||
<el-descriptions :column="4">
|
<el-descriptions :column="4" v-if="PartnerDataIstrue">
|
||||||
<el-descriptions-item label="股东信息">
|
<el-descriptions-item label="股东信息">
|
||||||
<PartnerData />
|
<PartnerData @success="getIstrue" />
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
|
||||||
<el-descriptions :column="4">
|
<el-descriptions :column="4" v-if="ChangeRecordDataFormIstrue">
|
||||||
<el-descriptions-item label="工商变更数据">
|
<el-descriptions-item label="工商变更数据">
|
||||||
<ChangeRecordDataForm />
|
<ChangeRecordDataForm @success="getIstrue" />
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions :column="4">
|
<el-descriptions :column="4" v-if="EmployeeDataIstrue">
|
||||||
<el-descriptions-item label="董事会成员">
|
<el-descriptions-item label="董事会成员">
|
||||||
<EmployeeData />
|
<EmployeeData @success="getIstrue" />
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
|
||||||
<el-descriptions :column="4">
|
<el-descriptions :column="4" v-if="CompanyBranchInfoIstrue">
|
||||||
<el-descriptions-item label="企业分支机构">
|
<el-descriptions-item label="企业分支机构">
|
||||||
<CompanyBranchInfo />
|
<CompanyBranchInfo @success="getIstrue" />
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
<el-descriptions :column="4">
|
<el-descriptions :column="4" v-if="CompanyaBnormalInfoIstrue">
|
||||||
<el-descriptions-item label="企业经营异常信息">
|
<el-descriptions-item label="企业经营异常信息">
|
||||||
<CompanyaBnormalInfo />
|
<CompanyaBnormalInfo @success="getIstrue" />
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
|
||||||
<el-descriptions :column="4">
|
<el-descriptions :column="4" v-if="CompanyJudgmentDebtorInfoIstrue">
|
||||||
<el-descriptions-item label="企业被执行人">
|
<el-descriptions-item label="企业被执行人">
|
||||||
<CompanyJudgmentDebtorInfo />
|
<CompanyJudgmentDebtorInfo @success="getIstrue" />
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
|
||||||
<el-descriptions :column="4">
|
<el-descriptions :column="4" v-if="CompanyCourtInfoIstrue">
|
||||||
<el-descriptions-item label="企业法院公告信息">
|
<el-descriptions-item label="企业法院公告信息">
|
||||||
<CompanyCourtInfo />
|
<CompanyCourtInfo @success="getIstrue" />
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
|
||||||
<el-descriptions :column="4">
|
<el-descriptions :column="4" v-if="CompanyLawsuitInfoIstrue">
|
||||||
<el-descriptions-item label="企业法律诉讼信息">
|
<el-descriptions-item label="企业法律诉讼信息">
|
||||||
<CompanyLawsuitInfo />
|
<CompanyLawsuitInfo @success="getIstrue" />
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
|
||||||
|
|
@ -133,7 +133,45 @@ defineOptions({ name: 'CrmCustomerDetailsInfo' })
|
||||||
const { customer } = defineProps<{
|
const { customer } = defineProps<{
|
||||||
customer: CustomerApi.CustomerVO // 客户明细
|
customer: CustomerApi.CustomerVO // 客户明细
|
||||||
}>()
|
}>()
|
||||||
|
const { proxy } = getCurrentInstance() as any
|
||||||
|
|
||||||
|
const PartnerDataIstrue = ref(true)
|
||||||
|
const ChangeRecordDataFormIstrue = ref(true)
|
||||||
|
const EmployeeDataIstrue = ref(true)
|
||||||
|
const CompanyBranchInfoIstrue = ref(true)
|
||||||
|
const CompanyaBnormalInfoIstrue = ref(true)
|
||||||
|
const CompanyJudgmentDebtorInfoIstrue = ref(true)
|
||||||
|
const CompanyCourtInfoIstrue = ref(true)
|
||||||
|
const CompanyLawsuitInfoIstrue = ref(true)
|
||||||
const activeNames = ref(['basicInfo', 'systemInfo']) // 展示的折叠面板
|
const activeNames = ref(['basicInfo', 'systemInfo']) // 展示的折叠面板
|
||||||
|
|
||||||
|
const getIstrue = (name, val) => {
|
||||||
|
if(name === 'PartnerDataIstrue') {
|
||||||
|
PartnerDataIstrue.value = !!val.length
|
||||||
|
}
|
||||||
|
if(name === 'ChangeRecordDataFormIstrue') {
|
||||||
|
ChangeRecordDataFormIstrue.value = !!val.length
|
||||||
|
}
|
||||||
|
if(name === 'EmployeeDataIstrue') {
|
||||||
|
EmployeeDataIstrue.value = !!val.length
|
||||||
|
}
|
||||||
|
if(name === 'CompanyBranchInfoIstrue') {
|
||||||
|
CompanyBranchInfoIstrue.value = !!val.length
|
||||||
|
}
|
||||||
|
if(name === 'CompanyaBnormalInfoIstrue') {
|
||||||
|
CompanyaBnormalInfoIstrue.value = !!val.length
|
||||||
|
}
|
||||||
|
if(name === 'CompanyJudgmentDebtorInfoIstrue') {
|
||||||
|
CompanyJudgmentDebtorInfoIstrue.value = !!val.length
|
||||||
|
}
|
||||||
|
if(name === 'CompanyCourtInfoIstrue') {
|
||||||
|
CompanyCourtInfoIstrue.value = !!val.length
|
||||||
|
}
|
||||||
|
if(name === 'CompanyLawsuitInfoIstrue') {
|
||||||
|
console.log('%csrc/views/crm/customer/detail/companyDetailsInfo.vue:171 val.length', 'color: #007acc;', !!val.length);
|
||||||
|
CompanyLawsuitInfoIstrue.value = !!val.length
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped></style>
|
<style lang="scss" scoped></style>
|
||||||
|
|
|
||||||
|
|
@ -32,12 +32,14 @@ const queryFormRef = ref() // 搜索的表单
|
||||||
const exportLoading = ref(false) // 导出的加载中
|
const exportLoading = ref(false) // 导出的加载中
|
||||||
|
|
||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
|
const emit = defineEmits(['success'])
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
const data = await ChangeRecordDataApi.getChangeRecordDataPage(queryParams)
|
const data = await ChangeRecordDataApi.getChangeRecordDataPage(queryParams)
|
||||||
list.value = data.list
|
list.value = data.list
|
||||||
total.value = data.total
|
total.value = data.total
|
||||||
|
emit('success','ChangeRecordDataFormIstrue', list.value)
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,12 +35,14 @@ const queryFormRef = ref() // 搜索的表单
|
||||||
const exportLoading = ref(false) // 导出的加载中
|
const exportLoading = ref(false) // 导出的加载中
|
||||||
|
|
||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
|
const emit = defineEmits(['success'])
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
const data = await CompanyAbnormalInfoApi.getCompanyAbnormalInfoPage(queryParams)
|
const data = await CompanyAbnormalInfoApi.getCompanyAbnormalInfoPage(queryParams)
|
||||||
list.value = data.list
|
list.value = data.list
|
||||||
total.value = data.total
|
total.value = data.total
|
||||||
|
emit('success','CompanyaBnormalInfoIstrue', list.value)
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,12 +30,14 @@ const queryFormRef = ref() // 搜索的表单
|
||||||
const exportLoading = ref(false) // 导出的加载中
|
const exportLoading = ref(false) // 导出的加载中
|
||||||
|
|
||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
|
const emit = defineEmits(['success'])
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
const data = await CompanyBranchInfoApi.getCompanyBranchInfoPage(queryParams)
|
const data = await CompanyBranchInfoApi.getCompanyBranchInfoPage(queryParams)
|
||||||
list.value = data.list
|
list.value = data.list
|
||||||
total.value = data.total
|
total.value = data.total
|
||||||
|
emit('success','CompanyBranchInfoIstrue', list.value)
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,12 +33,14 @@ const queryFormRef = ref() // 搜索的表单
|
||||||
const exportLoading = ref(false) // 导出的加载中
|
const exportLoading = ref(false) // 导出的加载中
|
||||||
|
|
||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
|
const emit = defineEmits(['success'])
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
const data = await CompanyCourtInfoApi.getCompanyCourtInfoPage(queryParams)
|
const data = await CompanyCourtInfoApi.getCompanyCourtInfoPage(queryParams)
|
||||||
list.value = data.list
|
list.value = data.list
|
||||||
total.value = data.total
|
total.value = data.total
|
||||||
|
emit('success','CompanyCourtInfoIstrue', list.value)
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,12 +33,14 @@ const queryFormRef = ref() // 搜索的表单
|
||||||
const exportLoading = ref(false) // 导出的加载中
|
const exportLoading = ref(false) // 导出的加载中
|
||||||
|
|
||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
|
const emit = defineEmits(['success'])
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
const data = await CompanyJudgmentDebtorInfoApi.getCompanyJudgmentDebtorInfoPage(queryParams)
|
const data = await CompanyJudgmentDebtorInfoApi.getCompanyJudgmentDebtorInfoPage(queryParams)
|
||||||
list.value = data.list
|
list.value = data.list
|
||||||
total.value = data.total
|
total.value = data.total
|
||||||
|
emit('success','CompanyJudgmentDebtorInfoIstrue', list.value)
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,12 +34,14 @@ const queryFormRef = ref() // 搜索的表单
|
||||||
const exportLoading = ref(false) // 导出的加载中
|
const exportLoading = ref(false) // 导出的加载中
|
||||||
|
|
||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
|
const emit = defineEmits(['success'])
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
const data = await CompanyLawsuitInfoApi.getCompanyLawsuitInfoPage(queryParams)
|
const data = await CompanyLawsuitInfoApi.getCompanyLawsuitInfoPage(queryParams)
|
||||||
list.value = data.list
|
list.value = data.list
|
||||||
total.value = data.total
|
total.value = data.total
|
||||||
|
emit('success','CompanyLawsuitInfoIstrue', list.value)
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,12 +32,14 @@ const queryFormRef = ref() // 搜索的表单
|
||||||
const exportLoading = ref(false) // 导出的加载中
|
const exportLoading = ref(false) // 导出的加载中
|
||||||
|
|
||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
|
const emit = defineEmits(['success'])
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
const data = await EmployeeDataApi.getEmployeeDataPage(queryParams)
|
const data = await EmployeeDataApi.getEmployeeDataPage(queryParams)
|
||||||
list.value = data.list
|
list.value = data.list
|
||||||
total.value = data.total
|
total.value = data.total
|
||||||
|
emit('success','EmployeeDataIstrue', list.value)
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,12 +34,14 @@ const queryFormRef = ref() // 搜索的表单
|
||||||
const exportLoading = ref(false) // 导出的加载中
|
const exportLoading = ref(false) // 导出的加载中
|
||||||
|
|
||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
|
const emit = defineEmits(['success'])
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
const data = await PartnerDataApi.getPartnerDataPage(queryParams)
|
const data = await PartnerDataApi.getPartnerDataPage(queryParams)
|
||||||
list.value = data.list
|
list.value = data.list
|
||||||
total.value = data.total
|
total.value = data.total
|
||||||
|
emit('success', 'PartnerDataIstrue', list.value)
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,20 +38,20 @@
|
||||||
</el-button>
|
</el-button>
|
||||||
</CustomerDetailsHeader>
|
</CustomerDetailsHeader>
|
||||||
<el-col>
|
<el-col>
|
||||||
<el-tabs>
|
<el-tabs v-model="subTabsName" @tab-Click="handleClick">
|
||||||
<el-tab-pane label="跟进记录">
|
<el-tab-pane label="跟进记录" name="FollowUpListRef">
|
||||||
<FollowUpList :biz-id="customerId" :biz-type="BizTypeEnum.CRM_CUSTOMER" />
|
<FollowUpList ref="FollowUpListRef" :biz-id="customerId" :biz-type="BizTypeEnum.CRM_CUSTOMER" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<!-- <el-tab-pane label="基本信息">
|
<!-- <el-tab-pane label="基本信息">
|
||||||
<CustomerDetailsInfo :customer="customer" />
|
<CustomerDetailsInfo :customer="customer" />
|
||||||
</el-tab-pane> -->
|
</el-tab-pane> -->
|
||||||
<el-tab-pane label="工商信息">
|
<el-tab-pane label="工商信息" name="CompanyDetailsInfoRef">
|
||||||
<CompanyDetailsInfo :customer="customer" />
|
<CompanyDetailsInfo ref="CompanyDetailsInfoRef" :customer="customer" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="联系人" lazy>
|
<el-tab-pane label="联系人" lazy name="ContactListRef">
|
||||||
<ContactList :biz-id="customer.id!" :biz-type="BizTypeEnum.CRM_CUSTOMER" />
|
<ContactList ref="ContactListRef" :biz-id="customer.id!" :biz-type="BizTypeEnum.CRM_CUSTOMER" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="团队成员">
|
<el-tab-pane label="团队成员" name="permissionListRef">
|
||||||
<PermissionList
|
<PermissionList
|
||||||
ref="permissionListRef"
|
ref="permissionListRef"
|
||||||
:biz-id="customer.id!"
|
:biz-id="customer.id!"
|
||||||
|
|
@ -60,14 +60,14 @@
|
||||||
@quit-team="close"
|
@quit-team="close"
|
||||||
/>
|
/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="商机" lazy>
|
<el-tab-pane label="商机" lazy name="BusinessListRef">
|
||||||
<BusinessList :biz-id="customer.id!" :biz-type="BizTypeEnum.CRM_CUSTOMER" />
|
<BusinessList ref="BusinessListRef" :biz-id="customer.id!" :biz-type="BizTypeEnum.CRM_CUSTOMER" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="方案报价" lazy>
|
<el-tab-pane label="方案报价" lazy name="QuotationListRef">
|
||||||
<QuotationList :biz-id="customer.id!" :biz-type="BizTypeEnum.CRM_CUSTOMER" />
|
<QuotationList ref="QuotationListRef" :biz-id="customer.id!" :biz-type="BizTypeEnum.CRM_CUSTOMER" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="合同" lazy>
|
<el-tab-pane label="合同" lazy name="ContractListRef">
|
||||||
<ContractList :biz-id="customer.id!" :biz-type="BizTypeEnum.CRM_CUSTOMER" />
|
<ContractList ref="ContractListRef" :biz-id="customer.id!" :biz-type="BizTypeEnum.CRM_CUSTOMER" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<!-- <el-tab-pane label="回访" lazy>
|
<!-- <el-tab-pane label="回访" lazy>
|
||||||
<ReturnVisitrecord :biz-id="customerId" :biz-type="BizTypeEnum.CRM_CUSTOMER" />
|
<ReturnVisitrecord :biz-id="customerId" :biz-type="BizTypeEnum.CRM_CUSTOMER" />
|
||||||
|
|
@ -111,6 +111,7 @@ import CustomerDistributeForm from '@/views/crm/customer/pool/CustomerDistribute
|
||||||
|
|
||||||
defineOptions({ name: 'CrmCustomerDetail' })
|
defineOptions({ name: 'CrmCustomerDetail' })
|
||||||
|
|
||||||
|
const subTabsName = ref('FollowUpListRef')
|
||||||
const customerId = ref(0) // 客户编号
|
const customerId = ref(0) // 客户编号
|
||||||
const loading = ref(true) // 加载中
|
const loading = ref(true) // 加载中
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
|
|
@ -220,6 +221,33 @@ const close = () => {
|
||||||
push({ name: 'CrmCustomer' })
|
push({ name: 'CrmCustomer' })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const FollowUpListRef = ref('')
|
||||||
|
const CompanyDetailsInfoRef = ref('')
|
||||||
|
const ContactListRef = ref('')
|
||||||
|
const BusinessListRef = ref('')
|
||||||
|
const QuotationListRef = ref('')
|
||||||
|
const ContractListRef = ref('')
|
||||||
|
|
||||||
|
const handleClick = async (val) => {
|
||||||
|
let name = val.props.name
|
||||||
|
|
||||||
|
if(!name) return
|
||||||
|
|
||||||
|
if (val.props.name) {
|
||||||
|
let objRef = {
|
||||||
|
FollowUpListRef: FollowUpListRef.value,
|
||||||
|
CompanyDetailsInfoRef: getCustomer,
|
||||||
|
ContactListRef: ContactListRef.value,
|
||||||
|
BusinessListRef: BusinessListRef.value,
|
||||||
|
QuotationListRef: QuotationListRef.value,
|
||||||
|
ContractListRef: ContractListRef.value,
|
||||||
|
}
|
||||||
|
objRef[name].getList()
|
||||||
|
} else {
|
||||||
|
getCustomer()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** 初始化 */
|
/** 初始化 */
|
||||||
const { params } = useRoute()
|
const { params } = useRoute()
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
|
|
||||||
|
|
@ -42,15 +42,30 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="客户级别" prop="level">
|
<el-form-item label="创建时间" prop="timeType">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="queryParams.level"
|
v-model="queryParams.timeType"
|
||||||
class="!w-240px"
|
class="!w-240px"
|
||||||
clearable
|
clearable
|
||||||
placeholder="请选择客户级别"
|
placeholder="请选择时间类型"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_CUSTOMER_LEVEL)"
|
v-for="dict in getIntDictOptions(DICT_TYPE.TIME_TYPE)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="合作状态" prop="customerStatus">
|
||||||
|
<el-select
|
||||||
|
v-model="queryParams.customerStatus"
|
||||||
|
class="!w-240px"
|
||||||
|
clearable
|
||||||
|
placeholder="请选择合作状态"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_CUSTOMER_STSTUS)"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
:label="dict.label"
|
:label="dict.label"
|
||||||
:value="dict.value"
|
:value="dict.value"
|
||||||
|
|
@ -81,7 +96,7 @@
|
||||||
<Icon class="mr-5px" icon="ep:refresh" />
|
<Icon class="mr-5px" icon="ep:refresh" />
|
||||||
重置
|
重置
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<!-- <el-button
|
||||||
v-hasPermi="['crm:customer:export']"
|
v-hasPermi="['crm:customer:export']"
|
||||||
:loading="exportLoading"
|
:loading="exportLoading"
|
||||||
plain
|
plain
|
||||||
|
|
@ -90,7 +105,7 @@
|
||||||
>
|
>
|
||||||
<Icon class="mr-5px" icon="ep:download" />
|
<Icon class="mr-5px" icon="ep:download" />
|
||||||
导出
|
导出
|
||||||
</el-button>
|
</el-button> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
|
|
@ -105,27 +120,32 @@
|
||||||
</el-link>
|
</el-link>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center" label="客户来源" prop="source" width="100">
|
<el-table-column align="center" label="来源" prop="source" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :type="DICT_TYPE.CRM_CUSTOMER_SOURCE" :value="scope.row.source" />
|
<dict-tag :type="DICT_TYPE.CRM_CUSTOMER_SOURCE" :value="scope.row.source" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合作类型" align="center" prop="mobile" width="120">
|
<el-table-column align="center" label="行业" prop="industryId" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :type="DICT_TYPE.CRM_COOPERATION_TYPE" :value="scope.row.cooperationType" />
|
<dict-tag :type="DICT_TYPE.CRM_CUSTOMER_INDUSTRY" :value="scope.row.industryId" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合作地区" align="center" prop="telephone" width="130">
|
<el-table-column label="合作状态" align="center" prop="mobile" width="120">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :type="DICT_TYPE.CRM_CUSTOMER_STSTUS" :value="scope.row.cooperationType" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- <el-table-column label="合作地区" align="center" prop="telephone" width="130">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :type="DICT_TYPE.CRM_COOPERATION_AREA" :value="scope.row.cooperationArea" />
|
<dict-tag :type="DICT_TYPE.CRM_COOPERATION_AREA" :value="scope.row.cooperationArea" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column> -->
|
||||||
<el-table-column align="center" label="客户级别" prop="level" width="135">
|
<!-- <el-table-column align="center" label="客户级别" prop="level" width="135">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :type="DICT_TYPE.CRM_CUSTOMER_LEVEL" :value="scope.row.level" />
|
<dict-tag :type="DICT_TYPE.CRM_CUSTOMER_LEVEL" :value="scope.row.level" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column> -->
|
||||||
<el-table-column align="center" label="所属行业" prop="industryId" width="100">
|
<!-- <el-table-column align="center" label="所属行业" prop="industryId" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :type="DICT_TYPE.CRM_CUSTOMER_INDUSTRY" :value="scope.row.industryId" />
|
<dict-tag :type="DICT_TYPE.CRM_CUSTOMER_INDUSTRY" :value="scope.row.industryId" />
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -137,13 +157,15 @@
|
||||||
label="下次联系时间"
|
label="下次联系时间"
|
||||||
prop="contactNextTime"
|
prop="contactNextTime"
|
||||||
width="180px"
|
width="180px"
|
||||||
/>
|
/> -->
|
||||||
|
<el-table-column align="center" label="通讯地址" prop="contactAddress" width="200" />
|
||||||
|
|
||||||
<el-table-column align="center" label="备注" prop="remark" width="200" />
|
<el-table-column align="center" label="备注" prop="remark" width="200" />
|
||||||
<el-table-column align="center" label="成交状态" prop="dealStatus">
|
<!-- <el-table-column align="center" label="成交状态" prop="dealStatus">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.dealStatus" />
|
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.dealStatus" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column> -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
:formatter="dateFormatter"
|
:formatter="dateFormatter"
|
||||||
align="center"
|
align="center"
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@
|
||||||
</el-link>
|
</el-link>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<!-- <el-table-column
|
||||||
align="center"
|
align="center"
|
||||||
label="关联商机"
|
label="关联商机"
|
||||||
prop="businessIds"
|
prop="businessIds"
|
||||||
|
|
@ -94,7 +94,7 @@
|
||||||
{{ business.name }}
|
{{ business.name }}
|
||||||
</el-link>
|
</el-link>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column> -->
|
||||||
<el-table-column align="center" label="操作" v-if="!type">
|
<el-table-column align="center" label="操作" v-if="!type">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button link type="danger" @click="handleDelete(scope.row.id)"> 删除 </el-button>
|
<el-button link type="danger" @click="handleDelete(scope.row.id)"> 删除 </el-button>
|
||||||
|
|
@ -161,6 +161,8 @@ const getList = async () => {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
defineExpose({ getList })
|
||||||
|
|
||||||
|
|
||||||
const previewPic = (val) => {
|
const previewPic = (val) => {
|
||||||
show.value = true
|
show.value = true
|
||||||
|
|
|
||||||
|
|
@ -171,7 +171,7 @@ watch(
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
defineExpose({ openForm, validateOwnerUser, validateWrite, isPool })
|
defineExpose({ openForm, validateOwnerUser, validateWrite, isPool, getList })
|
||||||
const emits = defineEmits<{
|
const emits = defineEmits<{
|
||||||
(e: 'quitTeam'): void
|
(e: 'quitTeam'): void
|
||||||
}>()
|
}>()
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,17 @@
|
||||||
<template>
|
<template>
|
||||||
<ContentWrap class="mt-10px">
|
<ContentWrap class="mt-10px print-container" id="printBox">
|
||||||
<el-form
|
<!-- <button v-print="print">打印</button> -->
|
||||||
|
|
||||||
|
<processForm
|
||||||
ref="formRef"
|
ref="formRef"
|
||||||
|
v-bind="$attrs"
|
||||||
:model="formData"
|
:model="formData"
|
||||||
:rules="formRules"
|
:rules="formRules"
|
||||||
|
:fields="formFields"
|
||||||
label-width="110px"
|
label-width="110px"
|
||||||
v-loading="formLoading"
|
v-loading="formLoading"
|
||||||
>
|
>
|
||||||
<el-row>
|
<template #businessId>
|
||||||
|
|
||||||
|
|
||||||
<el-col :span="8" v-if="!route.query.taskId">
|
<el-col :span="8" v-if="!route.query.taskId">
|
||||||
<el-form-item label="选择商机" prop="businessId">
|
<el-form-item label="选择商机" prop="businessId">
|
||||||
<el-select v-model="formData.businessId" disabled clearable @change="onBusinessChange">
|
<el-select v-model="formData.businessId" disabled clearable @change="onBusinessChange">
|
||||||
|
|
@ -22,29 +24,41 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #no>
|
||||||
<el-col :span="8" v-if="formType">
|
<el-col :span="8" v-if="formType">
|
||||||
<el-form-item label="报价单编号" prop="">
|
<el-form-item label="报价单编号" prop="">
|
||||||
<el-input v-model="formData.no" disabled />
|
<el-input v-model="formData.no" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</template>
|
||||||
<ContentWrap style="border: none; font-weight: 700">风控信息</ContentWrap>
|
<template #other>
|
||||||
<el-row>
|
<el-col :span="24">
|
||||||
|
<ContentWrap style="border: none; font-weight: 700">风控信息</ContentWrap>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #creditAmount>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="系统授信额度" prop="customerId">
|
<el-form-item label="系统授信额度" prop="customerId">
|
||||||
<el-input v-model="formData.creditAmount" disabled />
|
<el-input v-model="formData.creditAmount" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #creditLimitNum>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="授信额度调整" prop="creditLimitNum">
|
<el-form-item label="授信额度调整" prop="creditLimitNum">
|
||||||
<el-input v-model="formData.creditLimitNum" disabled @input="changeNum" clearable />
|
<el-input v-model="formData.creditLimitNum" disabled @input="changeNum" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #creditLimit>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="最终授信额度" prop="creditLimit">
|
<el-form-item label="最终授信额度" prop="creditLimit">
|
||||||
<el-input v-model="formData.creditLimit" disabled />
|
<el-input v-model="formData.creditLimit" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #customerId>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="客户" prop="customerId">
|
<el-form-item label="客户" prop="customerId">
|
||||||
<SelectComponent :customerList="customerList" :disabled="true" v-model="formData.customerId" />
|
<SelectComponent :customerList="customerList" :disabled="true" v-model="formData.customerId" />
|
||||||
|
|
@ -58,6 +72,8 @@
|
||||||
</el-select> -->
|
</el-select> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #cooperationType>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="合作类型" prop="cooperationType">
|
<el-form-item label="合作类型" prop="cooperationType">
|
||||||
<el-select v-model="formData.cooperationType" disabled placeholder="" filterable clearable class="w-1/1">
|
<el-select v-model="formData.cooperationType" disabled placeholder="" filterable clearable class="w-1/1">
|
||||||
|
|
@ -70,6 +86,8 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #regType>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="公司类型" prop="regType">
|
<el-form-item label="公司类型" prop="regType">
|
||||||
<el-input v-model="formData.regType" disabled clearable />
|
<el-input v-model="formData.regType" disabled clearable />
|
||||||
|
|
@ -80,21 +98,29 @@
|
||||||
<el-input v-model="formData.listingStatus" disabled clearable />
|
<el-input v-model="formData.listingStatus" disabled clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
|
</template>
|
||||||
|
<template #financingInfo>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="融资信息" prop="financingInfo">
|
<el-form-item label="融资信息" prop="financingInfo">
|
||||||
<el-input v-model="formData.financingInfo" disabled clearable />
|
<el-input v-model="formData.financingInfo" disabled clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #actualCapital>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="实缴资金" prop="actualCapital">
|
<el-form-item label="实缴资金" prop="actualCapital">
|
||||||
<el-input v-model="formData.actualCapital" disabled clearable />
|
<el-input v-model="formData.actualCapital" disabled clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #socialEmployeeNum>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="参保人数" prop="socialEmployeeNum">
|
<el-form-item label="参保人数" prop="socialEmployeeNum">
|
||||||
<el-input v-model="formData.socialEmployeeNum" disabled clearable />
|
<el-input v-model="formData.socialEmployeeNum" disabled clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #startDate>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="成立日期" prop="startDate">
|
<el-form-item label="成立日期" prop="startDate">
|
||||||
<el-input v-model="formData.startDate" disabled clearable />
|
<el-input v-model="formData.startDate" disabled clearable />
|
||||||
|
|
@ -110,8 +136,8 @@
|
||||||
<el-input v-model="formData.serviceStatus" disabled clearable />
|
<el-input v-model="formData.serviceStatus" disabled clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
</el-row>
|
</template>
|
||||||
<el-row>
|
<template #defendantRecord>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="被告记录" prop="defendantRecord">
|
<el-form-item label="被告记录" prop="defendantRecord">
|
||||||
<el-radio-group v-model="formData.defendantRecord" disabled>
|
<el-radio-group v-model="formData.defendantRecord" disabled>
|
||||||
|
|
@ -120,6 +146,8 @@
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #abnormalService>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="经营异常" prop="abnormalService">
|
<el-form-item label="经营异常" prop="abnormalService">
|
||||||
<el-radio-group v-model="formData.abnormalService" disabled>
|
<el-radio-group v-model="formData.abnormalService" disabled>
|
||||||
|
|
@ -128,6 +156,8 @@
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #equityPledge>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="股权出质" prop="equityPledge">
|
<el-form-item label="股权出质" prop="equityPledge">
|
||||||
<el-radio-group v-model="formData.equityPledge" disabled>
|
<el-radio-group v-model="formData.equityPledge" disabled>
|
||||||
|
|
@ -136,6 +166,8 @@
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #dishonestyRecord>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="失信记录" prop="dishonestyRecord">
|
<el-form-item label="失信记录" prop="dishonestyRecord">
|
||||||
<el-radio-group v-model="formData.dishonestyRecord" disabled>
|
<el-radio-group v-model="formData.dishonestyRecord" disabled>
|
||||||
|
|
@ -144,6 +176,8 @@
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #financeRecord>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="融资记录" prop="financeRecord">
|
<el-form-item label="融资记录" prop="financeRecord">
|
||||||
<el-radio-group v-model="formData.financeRecord" disabled>
|
<el-radio-group v-model="formData.financeRecord" disabled>
|
||||||
|
|
@ -152,6 +186,8 @@
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #judgmentRecord>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="被执行记录" prop="judgmentRecord">
|
<el-form-item label="被执行记录" prop="judgmentRecord">
|
||||||
<el-radio-group v-model="formData.judgmentRecord" disabled>
|
<el-radio-group v-model="formData.judgmentRecord" disabled>
|
||||||
|
|
@ -160,10 +196,27 @@
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</template>
|
||||||
<ContentWrap style="border: none; font-weight: 700">需求信息</ContentWrap>
|
<div class="page-break"></div>
|
||||||
|
<template #other1>
|
||||||
|
<el-col :span="24">
|
||||||
|
<ContentWrap style="border: none; font-weight: 700">需求信息</ContentWrap>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
<el-row>
|
</template>
|
||||||
|
<template #partnerCompanyId>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="合作类型" prop="partnerType">
|
||||||
|
<el-select v-model="formData.partnerType" clearable disabled placeholder="请选择合作类型">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_PARTNER_TYPE)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="合作主体" prop="partnerCompanyId">
|
<el-form-item label="合作主体" prop="partnerCompanyId">
|
||||||
<el-select v-model="formData.partnerCompanyId" clearable disabled @change="onPartnerChange">
|
<el-select v-model="formData.partnerCompanyId" clearable disabled @change="onPartnerChange">
|
||||||
|
|
@ -176,21 +229,29 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #creditCode>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="统一信用代码" prop="creditNo">
|
<el-form-item label="统一信用代码" prop="creditNo">
|
||||||
<el-input v-model="formData.creditCode" placeholder="" disabled />
|
<el-input v-model="formData.creditCode" placeholder="" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #bankName>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="开户行" prop="bankName">
|
<el-form-item label="开户行" prop="bankName">
|
||||||
<el-input v-model="formData.bankName" disabled />
|
<el-input v-model="formData.bankName" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #bankAccount>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="银行账号" prop="bankAccount">
|
<el-form-item label="银行账号" prop="bankAccount">
|
||||||
<el-input v-model="formData.bankAccount" disabled />
|
<el-input v-model="formData.bankAccount" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #legalRepresentative>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="法人代表" prop="legalRepresentative">
|
<el-form-item label="法人代表" prop="legalRepresentative">
|
||||||
<el-input v-model="formData.legalRepresentative" disabled />
|
<el-input v-model="formData.legalRepresentative" disabled />
|
||||||
|
|
@ -207,37 +268,38 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row>
|
</template>
|
||||||
|
<template #deptId>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="归属部门" prop="deptId">
|
||||||
|
<el-tree-select
|
||||||
|
v-model="formData.deptId"
|
||||||
|
disabled
|
||||||
|
:data="deptTree"
|
||||||
|
:props="defaultProps"
|
||||||
|
filterable
|
||||||
|
check-strictly
|
||||||
|
placeholder=""
|
||||||
|
node-key="id"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #ownerUserId>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="归属部门" prop="deptId">
|
<el-form-item label="商机负责人" prop="ownerUserId">
|
||||||
<el-tree-select
|
<el-select v-model="formData.ownerUserId" placeholder="" disabled>
|
||||||
v-model="formData.deptId"
|
<el-option
|
||||||
disabled
|
v-for="dict in userOptions"
|
||||||
:data="deptTree"
|
:key="dict.id"
|
||||||
:props="defaultProps"
|
:label="dict.nickname"
|
||||||
filterable
|
:value="dict.id"
|
||||||
check-strictly
|
/>
|
||||||
placeholder=""
|
</el-select>
|
||||||
node-key="id"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="商机负责人" prop="ownerUserId">
|
|
||||||
<el-select v-model="formData.ownerUserId" placeholder="" disabled>
|
|
||||||
<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-col :span="8">
|
||||||
<el-form-item label="拓展人" prop="expanderUserId">
|
<el-form-item label="拓展人" prop="expanderUserId">
|
||||||
<el-select v-model="formData.expanderUserId" placeholder="" disabled>
|
<el-select v-model="formData.expanderUserId" placeholder="" disabled>
|
||||||
|
|
@ -250,18 +312,20 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
<el-col :span="8">
|
</template>
|
||||||
<el-form-item label="方案报价人" prop="pricingUserId">
|
<template #pricingUserId>
|
||||||
<el-select v-model="formData.pricingUserId" placeholder="" disabled>
|
<el-col :span="8">
|
||||||
<el-option
|
<el-form-item label="方案报价人" prop="pricingUserId">
|
||||||
v-for="dict in userOptions"
|
<el-select v-model="formData.pricingUserId" placeholder="" disabled>
|
||||||
:key="dict.id"
|
<el-option
|
||||||
:label="dict.nickname"
|
v-for="dict in userOptions"
|
||||||
:value="dict.id"
|
:key="dict.id"
|
||||||
/>
|
:label="dict.nickname"
|
||||||
</el-select>
|
:value="dict.id"
|
||||||
</el-form-item>
|
/>
|
||||||
</el-col>
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<!-- <el-col :span="8">
|
<!-- <el-col :span="8">
|
||||||
<el-form-item label="报价签约人" prop="signUserId">
|
<el-form-item label="报价签约人" prop="signUserId">
|
||||||
<el-select v-model="formData.signUserId" placeholder="" disabled>
|
<el-select v-model="formData.signUserId" placeholder="" disabled>
|
||||||
|
|
@ -289,68 +353,79 @@
|
||||||
<el-input v-model="formData.signWechat" placeholder="请输入签约人微信" />
|
<el-input v-model="formData.signWechat" placeholder="请输入签约人微信" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
|
</template>
|
||||||
|
<template #paymentTerm>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="账期" prop="paymentTerm">
|
||||||
|
<el-select v-model="formData.paymentTerm" placeholder="" disabled>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getStrDictOptions('payment_term')"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #creditMethod>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="授信方式" prop="creditMethod">
|
||||||
|
<el-select v-model="formData.creditMethod" placeholder="" disabled >
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getIntDictOptions('credit_method')"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #creditCalcCycle>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="授信计算周期" prop="creditCalcCycle">
|
||||||
|
<el-select v-model="formData.creditCalcCycle" placeholder="" disabled >
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getIntDictOptions('credit_calc_cycle')"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #invoiceTemplateId>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="票据模板" prop="invoiceTemplateId">
|
||||||
|
<el-select v-model="formData.invoiceTemplateId" placeholder="" disabled >
|
||||||
|
<el-option
|
||||||
|
v-for="dict in templateOptions"
|
||||||
|
:key="dict.id"
|
||||||
|
:label="dict.name"
|
||||||
|
:value="dict.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #quotationTimes>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="第几次报价" prop="quotationTimes">
|
||||||
|
<el-input v-model="formData.quotationTimes" disabled placeholder="" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #creditLimit1>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="授信额度" prop="creditLimit">
|
||||||
|
<el-input v-model="formData.creditLimit" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="8">
|
</template>
|
||||||
<el-form-item label="账期" prop="paymentTerm">
|
<template #serviceFeeCollectionMethodId>
|
||||||
<el-select v-model="formData.paymentTerm" placeholder="" disabled>
|
|
||||||
<el-option
|
|
||||||
v-for="dict in getStrDictOptions('payment_term')"
|
|
||||||
: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="creditMethod">
|
|
||||||
<el-select v-model="formData.creditMethod" placeholder="" disabled >
|
|
||||||
<el-option
|
|
||||||
v-for="dict in getIntDictOptions('credit_method')"
|
|
||||||
: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="creditCalcCycle">
|
|
||||||
<el-select v-model="formData.creditCalcCycle" placeholder="" disabled >
|
|
||||||
<el-option
|
|
||||||
v-for="dict in getIntDictOptions('credit_calc_cycle')"
|
|
||||||
: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="invoiceTemplateId">
|
|
||||||
<el-select v-model="formData.invoiceTemplateId" placeholder="" disabled >
|
|
||||||
<el-option
|
|
||||||
v-for="dict in templateOptions"
|
|
||||||
:key="dict.id"
|
|
||||||
:label="dict.name"
|
|
||||||
:value="dict.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="第几次报价" prop="quotationTimes">
|
|
||||||
<el-input v-model="formData.quotationTimes" disabled placeholder="" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="授信额度" prop="creditLimit">
|
|
||||||
<el-input v-model="formData.creditLimit" disabled />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="服务费收取方式" prop="serviceFeeCollectionMethodId">
|
<el-form-item label="服务费收取方式" prop="serviceFeeCollectionMethodId">
|
||||||
<el-select v-model="formData.serviceFeeCollectionMethodId" disabled placeholder="">
|
<el-select v-model="formData.serviceFeeCollectionMethodId" disabled placeholder="">
|
||||||
|
|
@ -363,6 +438,8 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #onlinePrice>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="基础服务费合计" prop="onlinePrice">
|
<el-form-item label="基础服务费合计" prop="onlinePrice">
|
||||||
<el-input
|
<el-input
|
||||||
|
|
@ -381,6 +458,8 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
|
</template>
|
||||||
|
<template #totalPrice>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="服务费收入合计" prop="totalPrice">
|
<el-form-item label="服务费收入合计" prop="totalPrice">
|
||||||
<el-input
|
<el-input
|
||||||
|
|
@ -390,14 +469,27 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</template>
|
||||||
</el-form>
|
</processForm>
|
||||||
<!-- 子表的表单 -->
|
<!-- 子表的表单 -->
|
||||||
<el-tabs v-model="subTabsName">
|
<!-- <template #other> -->
|
||||||
<el-tab-pane label="报价产品关联" name="quotationProduct">
|
<!-- <el-tabs v-model="subTabsName" @tab-Click="handleClick">
|
||||||
<QuotationProductForm ref="quotationProductFormRef" :products="formData.products" :quotation-id="formData.id" :business-id="formData.businessId" :billTemplateId="formData.invoiceTemplateId" />
|
<el-tab-pane label="报价产品关联" name="quotationProduct"> -->
|
||||||
</el-tab-pane>
|
<el-col :span="24">
|
||||||
</el-tabs>
|
<ContentWrap style="border: none; font-weight: 700">报价产品关联</ContentWrap>
|
||||||
|
</el-col>
|
||||||
|
<ContentWrap>
|
||||||
|
<QuotationProductForm ref="quotationProductFormRef" :formFields="formFields" :products="formData.products" :quotation-id="formData.id" :business-id="formData.businessId" :billTemplateId="formData.invoiceTemplateId" />
|
||||||
|
</ContentWrap>
|
||||||
|
<!-- </el-tab-pane> -->
|
||||||
|
<!-- <el-tab-pane label="营收分析" name="RevenueAnalysis"> -->
|
||||||
|
<ContentWrap style="border: none; font-weight: 700">营收分析</ContentWrap>
|
||||||
|
<ContentWrap>
|
||||||
|
<RevenueAnalysis ref="RevenueAnalysisFormRef" :formFields="formFields" :quotation-id="formData.id" :products="formData.products" />
|
||||||
|
</ContentWrap>
|
||||||
|
<!-- </el-tab-pane>
|
||||||
|
</el-tabs> -->
|
||||||
|
<!-- </template> -->
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|
@ -412,6 +504,8 @@ import * as UserApi from '@/api/system/user'
|
||||||
import * as DeptApi from '@/api/system/dept'
|
import * as DeptApi from '@/api/system/dept'
|
||||||
import * as BusinessApi from '@/api/crm/business'
|
import * as BusinessApi from '@/api/crm/business'
|
||||||
import { propTypes } from '@/utils/propTypes'
|
import { propTypes } from '@/utils/propTypes'
|
||||||
|
import { getLimitForm } from '@/api/bpm/form'
|
||||||
|
import RevenueAnalysis from './components/RevenueAnalysis.vue'
|
||||||
|
|
||||||
|
|
||||||
/** CRM 方案报价 表单 */
|
/** CRM 方案报价 表单 */
|
||||||
|
|
@ -432,11 +526,92 @@ const props = defineProps({
|
||||||
})
|
})
|
||||||
const invoiceTemplateList = ref([])
|
const invoiceTemplateList = ref([])
|
||||||
const { proxy }: any = getCurrentInstance();
|
const { proxy }: any = getCurrentInstance();
|
||||||
|
//这里是打印的配置项
|
||||||
|
const print=ref({
|
||||||
|
id: 'printBox',//这里的id就是上面我们的打印区域id,实现指哪打哪
|
||||||
|
popTitle: '报价', // 打印配置页上方的标题
|
||||||
|
extraHead: '', // 最上方的头部文字,附加在head标签上的额外标签,使用逗号分割
|
||||||
|
preview: false, // 是否启动预览模式,默认是false
|
||||||
|
previewTitle: '预览的标题', // 打印预览的标题
|
||||||
|
pageBreak: 'auto', // 自动分页
|
||||||
|
previewPrintBtnLabel: '预览结束,开始打印', // 打印预览的标题下方的按钮文本,点击可进入打印
|
||||||
|
zIndex: 20002, // 预览窗口的z-index,默认是20002,最好比默认值更高
|
||||||
|
previewBeforeOpenCallback() { console.log('正在加载预览窗口!'); }, // 预览窗口打开之前的callback
|
||||||
|
previewOpenCallback() { console.log('已经加载完预览窗口,预览打开了!') }, // 预览窗口打开时的callback
|
||||||
|
beforeOpenCallback() { console.log('开始打印之前!') }, // 开始打印之前的callback
|
||||||
|
openCallback() { console.log('执行打印了!') }, // 调用打印时的callback
|
||||||
|
closeCallback() { console.log('关闭了打印工具!') }, // 关闭打印的callback(无法区分确认or取消)
|
||||||
|
clickMounted() { console.log('点击v-print绑定的按钮了!') },
|
||||||
|
|
||||||
|
})
|
||||||
|
const isTrue = ref(false)
|
||||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||||
const dialogTitle = ref('') // 弹窗的标题
|
const dialogTitle = ref('') // 弹窗的标题
|
||||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
||||||
|
const formFields = ref({ //字段显示隐藏权限控制,字段顺序就是显示的顺序
|
||||||
|
businessId: 1,
|
||||||
|
no: 1,
|
||||||
|
other: 1,
|
||||||
|
creditAmount: 1,
|
||||||
|
creditLimitNum: 1,
|
||||||
|
creditLimit: 1,
|
||||||
|
customerId: 1,
|
||||||
|
cooperationType: 1,
|
||||||
|
regType: 1,
|
||||||
|
financingInfo: 1,
|
||||||
|
actualCapital: 1,
|
||||||
|
socialEmployeeNum: 1,
|
||||||
|
startDate: 1,
|
||||||
|
defendantRecord: 1,
|
||||||
|
abnormalService: 1,
|
||||||
|
equityPledge: 1,
|
||||||
|
dishonestyRecord: 1,
|
||||||
|
financeRecord: 1,
|
||||||
|
judgmentRecord: 1,
|
||||||
|
other1: 1,
|
||||||
|
partnerCompanyId: 1,
|
||||||
|
creditCode: 1,
|
||||||
|
bankName: 1,
|
||||||
|
bankAccount: 1,
|
||||||
|
legalRepresentative: 1,
|
||||||
|
deptId: 1,
|
||||||
|
ownerUserId: 1,
|
||||||
|
pricingUserId: 1,
|
||||||
|
paymentTerm: 1,
|
||||||
|
creditMethod: 1,
|
||||||
|
creditCalcCycle: 1,
|
||||||
|
invoiceTemplateId: 1,
|
||||||
|
quotationTimes: 1,
|
||||||
|
creditLimit1: 1,
|
||||||
|
serviceFeeCollectionMethodId: 1,
|
||||||
|
onlinePrice: 1,
|
||||||
|
totalPrice: 1,
|
||||||
|
productsother: 1,
|
||||||
|
productscategory: 1,
|
||||||
|
productsdetailType: 1,
|
||||||
|
productsproductUnit: 1,
|
||||||
|
productsbasicServiceFee: 1,
|
||||||
|
productsadvancePaymentServiceFee: 1,
|
||||||
|
productsbookingPaymentServiceFee: 1,
|
||||||
|
productsbillSortingServiceFee: 1,
|
||||||
|
productstotalServiceFee: 1,
|
||||||
|
productsproductInvoice: 1,
|
||||||
|
productsproductInvoiceItem: 1,
|
||||||
|
productsserviceInvoice: 1,
|
||||||
|
productsserviceInvoiceItem: 1,
|
||||||
|
quotationProductscategory: 1,
|
||||||
|
quotationProductsdetailType: 1,
|
||||||
|
quotationProductsrevenueAnalysisVOsalesVolume: 1,
|
||||||
|
quotationProductsrevenueAnalysisVOtotalOrderVolume: 1,
|
||||||
|
quotationProductsrevenueAnalysisVOtotalIncome: 1,
|
||||||
|
quotationProductsrevenueAnalysisVOincomeInterestRate: 1,
|
||||||
|
quotationProductsrevenueAnalysisVOdeductibleCost: 1,
|
||||||
|
quotationProductsrevenueAnalysisVOprofit: 1,
|
||||||
|
quotationProductsrevenueAnalysisVOprofitRate: 1,
|
||||||
|
quotationProductsrevenueAnalysisVOprofitSharingRatio: 1,
|
||||||
|
quotationProductsrevenueAnalysisVOprofitSharingIncome: 1,
|
||||||
|
})
|
||||||
const formData = ref({
|
const formData = ref({
|
||||||
no: undefined,
|
no: undefined,
|
||||||
customerId: undefined,
|
customerId: undefined,
|
||||||
|
|
@ -504,32 +679,6 @@ const formRules = reactive({
|
||||||
// creditMethod: [{ required: true, message: '授信方式不能为空', trigger: 'change' }],
|
// creditMethod: [{ required: true, message: '授信方式不能为空', trigger: 'change' }],
|
||||||
// creditCalcCycle: [{ required: true, message: '授信计算周期不能为空', trigger: 'change' }],
|
// creditCalcCycle: [{ required: true, message: '授信计算周期不能为空', trigger: 'change' }],
|
||||||
})
|
})
|
||||||
watch(
|
|
||||||
() => formData.value.products,
|
|
||||||
(newProducts) => {
|
|
||||||
if (!Array.isArray(newProducts)) {
|
|
||||||
console.warn('formData.value.products is not an array');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let totalOnlinePrice = 0;
|
|
||||||
let totalOfflinePrice = 0;
|
|
||||||
|
|
||||||
for (const product of newProducts) {
|
|
||||||
if (typeof product.basicServiceFee) {
|
|
||||||
totalOnlinePrice += Number(product.basicServiceFee);
|
|
||||||
}
|
|
||||||
if (typeof product.totalServiceFee) {
|
|
||||||
totalOfflinePrice += Number(product.totalServiceFee);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
formData.value.onlinePrice = totalOnlinePrice.toFixed(2)
|
|
||||||
// formData.value.offlinePrice = (totalOfflinePrice + totalOnlinePrice).toFixed(2)
|
|
||||||
// let all = totalOnlinePrice + totalOfflinePrice + totalOnlinePrice
|
|
||||||
formData.value.totalPrice = totalOfflinePrice.toFixed(2)
|
|
||||||
},
|
|
||||||
{ deep: true }
|
|
||||||
);
|
|
||||||
const formRef = ref() // 表单 Ref
|
const formRef = ref() // 表单 Ref
|
||||||
|
|
||||||
/** 子表的表单 */
|
/** 子表的表单 */
|
||||||
|
|
@ -611,6 +760,36 @@ const onPartnerChange = async (id: string) => {
|
||||||
const changeNum = (val) => {
|
const changeNum = (val) => {
|
||||||
formData.value.creditLimit = (Number(val) + (formData.value.creditAmount || 0)).toFixed(2)
|
formData.value.creditLimit = (Number(val) + (formData.value.creditAmount || 0)).toFixed(2)
|
||||||
}
|
}
|
||||||
|
//获取营收分析
|
||||||
|
const RevenueAnalysisFormRef = ref('')
|
||||||
|
const newProducts = ref([])
|
||||||
|
const handleClick = (val) => {
|
||||||
|
// if (subTabsName.value == 'RevenueAnalysis') return
|
||||||
|
|
||||||
|
if(!formData.value.serviceFeeCollectionMethodId) return message.warning('请选择服务费收取方式')
|
||||||
|
|
||||||
|
newProducts.value = []
|
||||||
|
formData.value.products.forEach( item => {
|
||||||
|
newProducts.value.push({
|
||||||
|
id: item.productId,
|
||||||
|
onlinePrice: item.onlinePrice,
|
||||||
|
offlinePrice: item.offlinePrice,
|
||||||
|
productUnit: item.productUnit,
|
||||||
|
productName: item.productName,
|
||||||
|
detailType: item.detailType,
|
||||||
|
category: item.category
|
||||||
|
})
|
||||||
|
})
|
||||||
|
let data = {
|
||||||
|
businessId: formData.value.businessId,
|
||||||
|
creditMethod: formData.value.creditMethod,
|
||||||
|
serviceFeeCollectionMethodId: formData.value.serviceFeeCollectionMethodId,
|
||||||
|
paymentTerm: formData.value.paymentTerm,
|
||||||
|
quotationProducts: newProducts.value
|
||||||
|
}
|
||||||
|
|
||||||
|
RevenueAnalysisFormRef.value.getData(data)
|
||||||
|
}
|
||||||
/** 打开弹窗 */
|
/** 打开弹窗 */
|
||||||
const open = async (type: string) => {
|
const open = async (type: string) => {
|
||||||
formType.value = type
|
formType.value = type
|
||||||
|
|
@ -631,11 +810,12 @@ const open = async (type: string) => {
|
||||||
totalOfflinePrice += Number(product.offlinePrice);
|
totalOfflinePrice += Number(product.offlinePrice);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
handleClick()
|
||||||
formData.value.serviceFeeCollectionMethodId = Number(formData.value.serviceFeeCollectionMethodId)
|
formData.value.serviceFeeCollectionMethodId = Number(formData.value.serviceFeeCollectionMethodId)
|
||||||
formData.value.onlinePrice = totalOnlinePrice.toFixed(2)
|
// formData.value.onlinePrice = totalOnlinePrice.toFixed(2)
|
||||||
formData.value.offlinePrice = (totalOfflinePrice + totalOnlinePrice).toFixed(2)
|
formData.value.offlinePrice = (totalOfflinePrice + totalOnlinePrice).toFixed(2)
|
||||||
let all = totalOnlinePrice + totalOfflinePrice + totalOnlinePrice
|
// let all = totalOnlinePrice + totalOfflinePrice + totalOnlinePrice
|
||||||
formData.value.totalPrice = all.toFixed(2)
|
// formData.value.totalPrice = all.toFixed(2)
|
||||||
formData.value.creditLimit = ((formData.value.creditAmount || 0) + (formData.value.creditLimitNum || 0)).toFixed(2)
|
formData.value.creditLimit = ((formData.value.creditAmount || 0) + (formData.value.creditLimitNum || 0)).toFixed(2)
|
||||||
} finally {
|
} finally {
|
||||||
formLoading.value = false
|
formLoading.value = false
|
||||||
|
|
@ -648,6 +828,11 @@ const open = async (type: string) => {
|
||||||
}
|
}
|
||||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
||||||
|
|
||||||
|
const printContent = () => {
|
||||||
|
// 使用 window.print() 来触发打印
|
||||||
|
window.print();
|
||||||
|
}
|
||||||
|
|
||||||
/** 提交表单 */
|
/** 提交表单 */
|
||||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
||||||
const submitForm = async () => {
|
const submitForm = async () => {
|
||||||
|
|
@ -719,11 +904,36 @@ const resetForm = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
//获取字段权限
|
||||||
|
const getLimit = async () => {
|
||||||
|
let data = {
|
||||||
|
modelNodeId: route.query.taskDefinitionKey,
|
||||||
|
processDefinitionId: route.query.processDefinitionId
|
||||||
|
}
|
||||||
|
let field = await getLimitForm(data)
|
||||||
|
for(let key in formFields.value) {
|
||||||
|
|
||||||
|
if(formFields.value.hasOwnProperty(key)) {
|
||||||
|
field.fields.map( v => {
|
||||||
|
let newKey = v.field
|
||||||
|
if(v.field.indexOf('.') > -1) {
|
||||||
|
newKey = v.field.split('.').join('')
|
||||||
|
}
|
||||||
|
|
||||||
|
if(newKey === key) formFields.value[key] = v.permission
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
|
isTrue.value = !!route.query.isDetail
|
||||||
formType.value = props.id || route.query.id;
|
formType.value = props.id || route.query.id;
|
||||||
|
|
||||||
if (formType.value) open(formType.value)
|
if (formType.value) open(formType.value)
|
||||||
|
|
||||||
|
if(route.query.processDefinitionId) getLimit()
|
||||||
|
|
||||||
// 获得客户列表
|
// 获得客户列表
|
||||||
customerList.value = await CustomerApi.getCustomerSimpleList()
|
customerList.value = await CustomerApi.getCustomerSimpleList()
|
||||||
// 获得用户列表
|
// 获得用户列表
|
||||||
|
|
@ -746,4 +956,74 @@ onMounted(async () => {
|
||||||
})
|
})
|
||||||
orgList.value = org.list
|
orgList.value = org.list
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
@media print {
|
||||||
|
body, html {
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
table {
|
||||||
|
font-size: 12px; /* 缩小字体大小 */
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
/* transform: scale(0.8); */
|
||||||
|
width: 100%; /* 让表格宽度自适应页面宽度 */
|
||||||
|
/* table-layout: fixed; 固定表格布局 */
|
||||||
|
word-wrap: break-word; /* 自动换行 */
|
||||||
|
page-break-inside: auto; /* 允许表格在页面内分页 */
|
||||||
|
/* transform: rotate(270deg); */
|
||||||
|
|
||||||
|
}
|
||||||
|
::v-deep .el-table {
|
||||||
|
table-layout: auto !important; /* 动态调整表格布局 */
|
||||||
|
width: 100% !important; /* 确保表格宽度自适应 */
|
||||||
|
/* transform: rotate(90deg); */
|
||||||
|
}
|
||||||
|
::v-deep .el-table__header-wrapper .el-table__header,
|
||||||
|
::v-deep .el-table__body-wrapper .el-table__body {
|
||||||
|
width: 100% !important; /* 确保表头和表体宽度一致 */
|
||||||
|
}
|
||||||
|
::v-deep .el-table .cell.el-tooltip {
|
||||||
|
text-overflow: clip;
|
||||||
|
white-space: normal;
|
||||||
|
min-width: none;
|
||||||
|
width: auto !important;
|
||||||
|
border: none !important;
|
||||||
|
}
|
||||||
|
th, td {
|
||||||
|
padding: 2px; /* 减小单元格内边距 */
|
||||||
|
word-wrap: break-word; /* 自动换行 */
|
||||||
|
white-space: normal; /* 允许内容换行 */
|
||||||
|
}
|
||||||
|
tr {
|
||||||
|
page-break-inside: avoid; /* 避免表格行被分割 */
|
||||||
|
}
|
||||||
|
@page {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
#app {
|
||||||
|
display: none; /* 隐藏不需要打印的内容 */
|
||||||
|
}
|
||||||
|
#print-section {
|
||||||
|
display: block; /* 显示需要打印的内容 */
|
||||||
|
}
|
||||||
|
.page-break {
|
||||||
|
page-break-after: always;
|
||||||
|
}
|
||||||
|
.print-container {
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
page-break-inside: avoid;
|
||||||
|
}
|
||||||
|
.time-in-top-left {
|
||||||
|
display: none; /* 或者 position: absolute; left: -1000px; */
|
||||||
|
}
|
||||||
|
.bottom-left-corner {
|
||||||
|
display: none; /* 或者 position: absolute; left: -1000px; */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -60,7 +60,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="合作类型" prop="cooperationType">
|
<el-form-item label="合作类型" prop="cooperationType">
|
||||||
<el-select v-model="formData.cooperationType" filterable clearable placeholder="请选择合作类型" class="w-1/1">
|
<el-select v-model="formData.cooperationType" disabled filterable clearable placeholder="" class="w-1/1">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_COOPERATION_TYPE)"
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_COOPERATION_TYPE)"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
|
|
@ -72,7 +72,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="公司类型" prop="regType">
|
<el-form-item label="公司类型" prop="regType">
|
||||||
<el-input v-model="formData.regType" placeholder="请输入公司类型" clearable />
|
<el-input v-model="formData.regType" disabled placeholder="" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- <el-col :span="8">
|
<!-- <el-col :span="8">
|
||||||
|
|
@ -82,22 +82,22 @@
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="融资信息" prop="financingInfo">
|
<el-form-item label="融资信息" prop="financingInfo">
|
||||||
<el-input v-model="formData.financingInfo" placeholder="请输入融资信息" clearable />
|
<el-input v-model="formData.financingInfo" disabled placeholder="" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="实缴资金" prop="actualCapital">
|
<el-form-item label="实缴资金" prop="actualCapital">
|
||||||
<el-input v-model="formData.actualCapital" placeholder="请输入实缴资金" clearable />
|
<el-input v-model="formData.actualCapital" disabled placeholder="" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="参保人数" prop="socialEmployeeNum">
|
<el-form-item label="参保人数" prop="socialEmployeeNum">
|
||||||
<el-input v-model="formData.socialEmployeeNum" placeholder="请输入参保人数" clearable />
|
<el-input v-model="formData.socialEmployeeNum" disabled placeholder="" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="成立日期" prop="startDate">
|
<el-form-item label="成立日期" prop="startDate">
|
||||||
<el-input v-model="formData.startDate" placeholder="请输入成立日期" clearable />
|
<el-input v-model="formData.startDate" disabled placeholder="" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
@ -165,13 +165,13 @@
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="合作类型" prop="partnerCompanyId">
|
<el-form-item label="合作类型" prop="partnerType">
|
||||||
<el-select v-model="formData.partnerCompanyId" clearable placeholder="请选择合作主体" @change="onPartnerChange">
|
<el-select v-model="formData.partnerType" clearable placeholder="请选择合作类型">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in orgList"
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_PARTNER_TYPE)"
|
||||||
:key="dict.id"
|
:key="dict.value"
|
||||||
:label="dict.orgName"
|
:label="dict.label"
|
||||||
:value="dict.id"
|
:value="dict.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
@ -326,7 +326,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="授信计算周期" prop="creditCalcCycle">
|
<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-select v-model="formData.creditCalcCycle" placeholder="请选择授信计算周期">
|
||||||
<el-option
|
<el-option
|
||||||
|
|
@ -353,24 +353,24 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="第几次报价" prop="quotationTimes">
|
<el-form-item label="第几次报价" prop="quotationTimes">
|
||||||
<el-input v-model="formData.quotationTimes" placeholder="请输入报价次数" />
|
<el-input v-model="formData.quotationTimes" 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="creditLimit">
|
<el-form-item label="授信额度" prop="creditLimit">
|
||||||
<el-input v-model="formData.creditLimit" placeholder="请输入授信额度" />
|
<el-input v-model="formData.creditLimit" placeholder="请输入授信额度" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="服务费收取方式" prop="serviceFeeCollectionMethodId">
|
<el-form-item label="服务费收取方式" prop="serviceFeeCollectionMethodId">
|
||||||
<el-select v-model="formData.serviceFeeCollectionMethodId" @change="changeQuotationTimes" placeholder="请选择服务费收取方式">
|
<el-select v-model="formData.serviceFeeCollectionMethodId" @change="changeQuotationTimes" placeholder="请选择服务费收取方式">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in serverMethodList"
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_SERVICE_FEE_COLLECTION_METHOD)"
|
||||||
:key="dict.id"
|
:key="dict.value"
|
||||||
:label="dict.productDetail"
|
:label="dict.label"
|
||||||
:value="dict.id"
|
:value="dict.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
@ -515,14 +515,14 @@ const formRules = reactive({
|
||||||
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' }],
|
||||||
actualCapital: [{ required: true, message: '实缴资金不能为空', trigger: 'blur' }],
|
// actualCapital: [{ required: true, message: '实缴资金不能为空', trigger: 'blur' }],
|
||||||
socialEmployeeNum: [{ required: true, message: '参保人数不能为空', trigger: 'blur' }],
|
// socialEmployeeNum: [{ required: true, message: '参保人数不能为空', trigger: 'blur' }],
|
||||||
defendantRecord: [{ required: true, message: '被告记录不能为空', trigger: 'blur' }],
|
// defendantRecord: [{ required: true, message: '被告记录不能为空', trigger: 'blur' }],
|
||||||
abnormalService: [{ required: true, message: '经营异常不能为空', trigger: 'blur' }],
|
// abnormalService: [{ required: true, message: '经营异常不能为空', trigger: 'blur' }],
|
||||||
equityPledge: [{ required: true, message: '股权出质不能为空', trigger: 'blur' }],
|
// equityPledge: [{ required: true, message: '股权出质不能为空', trigger: 'blur' }],
|
||||||
dishonestyRecord: [{ required: true, message: '失信记录不能为空', trigger: 'blur' }],
|
// dishonestyRecord: [{ required: true, message: '失信记录不能为空', trigger: 'blur' }],
|
||||||
financeRecord: [{ required: true, message: '融资记录不能为空', trigger: 'blur' }],
|
// financeRecord: [{ required: true, message: '融资记录不能为空', trigger: 'blur' }],
|
||||||
judgmentRecord: [{ required: true, message: '被执行记录不能为空', trigger: 'blur' }],
|
// judgmentRecord: [{ required: true, message: '被执行记录不能为空', trigger: 'blur' }],
|
||||||
paymentTerm: [{ required: true, message: '账期不能为空', trigger: 'change' }],
|
paymentTerm: [{ required: true, message: '账期不能为空', trigger: 'change' }],
|
||||||
partnerCompanyId: [{ required: true, message: '合作主体不能为空', trigger: 'change' }],
|
partnerCompanyId: [{ required: true, message: '合作主体不能为空', trigger: 'change' }],
|
||||||
creditMethod: [{ required: true, message: '授信方式不能为空', trigger: 'change' }],
|
creditMethod: [{ required: true, message: '授信方式不能为空', trigger: 'change' }],
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@
|
||||||
:inline-message="true"
|
:inline-message="true"
|
||||||
>
|
>
|
||||||
<AuthTable :data="formData" :fields="formFields" class="-mt-10px">
|
<AuthTable :data="formData" :fields="formFields" class="-mt-10px">
|
||||||
<template #productsother>
|
<!-- <template #productsother> -->
|
||||||
<el-table-column label="序号" type="index" width="100" />
|
<!-- <el-table-column label="序号" type="index" width="100" /> -->
|
||||||
<!-- <el-table-column label="产品名称" min-width="150">
|
<!-- <el-table-column label="产品名称" min-width="150">
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-form-item :prop="`${$index}.productName`" :rules="formRules.productName" class="mb-0px!">
|
<el-form-item :prop="`${$index}.productName`" :rules="formRules.productName" class="mb-0px!">
|
||||||
|
|
@ -17,9 +17,9 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column> -->
|
</el-table-column> -->
|
||||||
</template>
|
<!-- </template> -->
|
||||||
<template #productscategory>
|
<template #productscategory>
|
||||||
<el-table-column label="产品类型" align="center" min-width="150">
|
<el-table-column label="产品类型" align="center" min-width="100">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<dict-tag :type="DICT_TYPE.CRM_PRODUCT_CATEGORY" :value="row.category" />
|
<dict-tag :type="DICT_TYPE.CRM_PRODUCT_CATEGORY" :value="row.category" />
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -1,64 +1,85 @@
|
||||||
<template>
|
<template>
|
||||||
<el-table :data="formData" class="-mt-10px" v-loading="loading" :summary-method="getSummaries"
|
<AuthTable :data="formData" :fields="formFields" class="-mt-10px" v-loading="loading" :summary-method="getSummaries"
|
||||||
show-summary :span-method="arraySpanMethod">
|
show-summary :span-method="arraySpanMethod">
|
||||||
<el-table-column label="产品类型" align="center" min-width="150">
|
<template #quotationProductscategory>
|
||||||
<template #default="{ row }">
|
<el-table-column label="产品类型" align="center" min-width="150">
|
||||||
<dict-tag :type="DICT_TYPE.CRM_PRODUCT_CATEGORY" :value="row.category" />
|
<template #default="{ row }">
|
||||||
</template>
|
<dict-tag :type="DICT_TYPE.CRM_PRODUCT_CATEGORY" :value="row.category" />
|
||||||
</el-table-column>
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="产品明细类型" align="center" min-width="190">
|
</template>
|
||||||
<template #default="{ row }">
|
<template #quotationProductsdetailType>
|
||||||
<dict-tag :type="DICT_TYPE.CRM_PRODUCT_DETAIL_TYPE" :value="row.detailType" />
|
<el-table-column label="产品明细类型" align="center" min-width="190">
|
||||||
</template>
|
<template #default="{ row }">
|
||||||
</el-table-column>
|
<dict-tag :type="DICT_TYPE.CRM_PRODUCT_DETAIL_TYPE" :value="row.detailType" />
|
||||||
<el-table-column label="销售额" align="center" prop="revenueAnalysisVO.salesVolume" min-width="150">
|
</template>
|
||||||
<template #default="{ row }">
|
</el-table-column>
|
||||||
{{row.revenueAnalysisVO.salesVolume}}
|
</template>
|
||||||
</template>
|
<template #quotationProductsrevenueAnalysisVOsalesVolume>
|
||||||
</el-table-column>
|
<el-table-column label="销售额" align="center" prop="revenueAnalysisVO.salesVolume" min-width="150">
|
||||||
<el-table-column label="订单量" align="center" prop="revenueAnalysisVO.totalOrderVolume" min-width="150">
|
<template #default="{ row }">
|
||||||
<template #default="{ row }">
|
{{row.revenueAnalysisVO.salesVolume}}
|
||||||
{{row.revenueAnalysisVO.totalOrderVolume}}
|
</template>
|
||||||
</template>
|
</el-table-column>
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column label="营业收入" align="center" prop="revenueAnalysisVO.totalIncome" min-width="150">
|
<template #quotationProductsrevenueAnalysisVOtotalOrderVolume>
|
||||||
<template #default="{ row }">
|
<el-table-column label="订单量" align="center" prop="revenueAnalysisVO.totalOrderVolume" min-width="150">
|
||||||
{{row.revenueAnalysisVO.totalIncome}}
|
<template #default="{ row }">
|
||||||
</template>
|
{{row.revenueAnalysisVO.totalOrderVolume}}
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column label="收入利率(%)" align="center" prop="revenueAnalysisVO.incomeInterestRate" min-width="130">
|
</el-table-column>
|
||||||
<template #default="{ row }">
|
</template>
|
||||||
{{(row.revenueAnalysisVO.incomeInterestRate * 100).toFixed(2) + '%'}}
|
<template #quotationProductsrevenueAnalysisVOtotalIncome>
|
||||||
</template>
|
<el-table-column label="营业收入" align="center" prop="revenueAnalysisVO.totalIncome" min-width="150">
|
||||||
</el-table-column>
|
<template #default="{ row }">
|
||||||
<el-table-column label="应扣成本" align="center" prop="revenueAnalysisVO.deductibleCost" min-width="150">
|
{{row.revenueAnalysisVO.totalIncome}}
|
||||||
<template #default="{ row }">
|
</template>
|
||||||
{{row.revenueAnalysisVO.deductibleCost}}
|
</el-table-column>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
<template #quotationProductsrevenueAnalysisVOincomeInterestRate>
|
||||||
<el-table-column label="利润" align="center" prop="revenueAnalysisVO.profit" min-width="150">
|
<el-table-column label="收入利率(%)" align="center" prop="revenueAnalysisVO.incomeInterestRate" min-width="130">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
{{row.revenueAnalysisVO.profit}}
|
{{(row.revenueAnalysisVO.incomeInterestRate * 100).toFixed(2) + '%'}}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="利润率(%)" align="center" prop="revenueAnalysisVO.profitRate" min-width="250">
|
</template>
|
||||||
<template #default="{ row }">
|
<template #quotationProductsrevenueAnalysisVOdeductibleCost>
|
||||||
{{(row.revenueAnalysisVO.profitRate * 100).toFixed(2) + '%'}}
|
<el-table-column label="应扣成本" align="center" prop="revenueAnalysisVO.deductibleCost" min-width="150">
|
||||||
</template>
|
<template #default="{ row }">
|
||||||
</el-table-column>
|
{{row.revenueAnalysisVO.deductibleCost}}
|
||||||
<el-table-column label="您的分润比例(%)" align="center" prop="revenueAnalysisVO.profitSharingRatio" min-width="150">
|
</template>
|
||||||
<template #default="{ row }">
|
</el-table-column>
|
||||||
<!-- <dict-tag :type="DICT_TYPE.CRM_SERVICE_FEE_INVOICE" :value="row.serviceInvoice" /> -->
|
</template>
|
||||||
{{(row.revenueAnalysisVO.profitSharingRatio * 100).toFixed(2) + '%'}}
|
<template #quotationProductsrevenueAnalysisVOprofit>
|
||||||
</template>
|
<el-table-column label="利润" align="center" prop="revenueAnalysisVO.profit" min-width="150">
|
||||||
</el-table-column>
|
<template #default="{ row }">
|
||||||
<el-table-column label="您的分润收入" align="center" prop="revenueAnalysisVO.profitSharingIncome" min-width="250">
|
{{row.revenueAnalysisVO.profit}}
|
||||||
<template #default="{ row }">
|
</template>
|
||||||
{{row.revenueAnalysisVO.profitSharingIncome}}
|
</el-table-column>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
<template #quotationProductsrevenueAnalysisVOprofitRate>
|
||||||
</el-table>
|
<el-table-column label="利润率(%)" align="center" prop="revenueAnalysisVO.profitRate" min-width="250">
|
||||||
|
<template #default="{ row }">
|
||||||
|
{{(row.revenueAnalysisVO.profitRate * 100).toFixed(2) + '%'}}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</template>
|
||||||
|
<template #quotationProductsrevenueAnalysisVOprofitSharingRatio>
|
||||||
|
<el-table-column label="您的分润比例(%)" align="center" prop="revenueAnalysisVO.profitSharingRatio" min-width="150">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<!-- <dict-tag :type="DICT_TYPE.CRM_SERVICE_FEE_INVOICE" :value="row.serviceInvoice" /> -->
|
||||||
|
{{(row.revenueAnalysisVO.profitSharingRatio * 100).toFixed(2) + '%'}}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</template>
|
||||||
|
<template #quotationProductsrevenueAnalysisVOprofitSharingIncome>
|
||||||
|
<el-table-column label="您的分润收入" align="center" prop="revenueAnalysisVO.profitSharingIncome" min-width="250">
|
||||||
|
<template #default="{ row }">
|
||||||
|
{{row.revenueAnalysisVO.profitSharingIncome}}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</template>
|
||||||
|
</AuthTable>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|
@ -69,7 +90,7 @@ import * as BusinessApi from '@/api/crm/business'
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
quotationId: undefined, // 报价编号(主表的关联字段)
|
quotationId: undefined, // 报价编号(主表的关联字段)
|
||||||
products: undefined
|
products: undefined
|
||||||
|
formFields: {}
|
||||||
}>()
|
}>()
|
||||||
const loading = ref(false) // 列表的加载中
|
const loading = ref(false) // 列表的加载中
|
||||||
const formLoading = ref(false) // 表单的加载中
|
const formLoading = ref(false) // 表单的加载中
|
||||||
|
|
|
||||||
|
|
@ -194,7 +194,7 @@
|
||||||
>
|
>
|
||||||
进度
|
进度
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<!-- <el-button
|
||||||
link
|
link
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="handleEnter(scope.row)"
|
@click="handleEnter(scope.row)"
|
||||||
|
|
@ -202,14 +202,24 @@
|
||||||
v-if="scope.row.auditStatus == 2 && scope.row.confirmStatus == 0"
|
v-if="scope.row.auditStatus == 2 && scope.row.confirmStatus == 0"
|
||||||
>
|
>
|
||||||
客户确认
|
客户确认
|
||||||
|
</el-button> -->
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
@click="handleEnter(scope.row)"
|
||||||
|
v-hasPermi="['crm:quotation:customerConfirm']"
|
||||||
|
v-if="scope.row.auditStatus != 0 && scope.row.auditStatus != 2"
|
||||||
|
>
|
||||||
|
打印
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-dropdown
|
<el-dropdown
|
||||||
v-if="scope.row.auditStatus == 0"
|
v-if="(scope.row.auditStatus == 0 || scope.row.auditStatus == 2) && scope.row.confirmStatus == 0"
|
||||||
@command="(command) => handleCommand(command, scope.row)"
|
@command="(command) => handleCommand(command, scope.row)"
|
||||||
v-hasPermi="[
|
v-hasPermi="[
|
||||||
'crm:quotation:delete',
|
'crm:quotation:delete',
|
||||||
'crm:customer-suggestion:query',
|
'crm:customer-suggestion:query',
|
||||||
'system:permission:assign-user-role'
|
'system:permission:assign-user-role',
|
||||||
|
'crm:quotation:customerConfirm'
|
||||||
]"
|
]"
|
||||||
>
|
>
|
||||||
<el-button type="primary" link>更多<Icon icon="ep:d-arrow-right" /> </el-button>
|
<el-button type="primary" link>更多<Icon icon="ep:d-arrow-right" /> </el-button>
|
||||||
|
|
@ -227,9 +237,15 @@
|
||||||
>
|
>
|
||||||
客户确认
|
客户确认
|
||||||
</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"
|
command="handleProcessDetail"
|
||||||
v-if="checkPermi(['crm:customer-suggestion:query']) && scope.row.auditStatus != 0"
|
v-if="checkPermi(['crm:customer-suggestion:query']) && scope.row.auditStatus == 1"
|
||||||
>
|
>
|
||||||
进度
|
进度
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
|
|
@ -247,6 +263,7 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<!-- 分页 -->
|
<!-- 分页 -->
|
||||||
<Pagination
|
<Pagination
|
||||||
:total="total"
|
:total="total"
|
||||||
|
|
@ -445,3 +462,4 @@ onActivated(()=>{
|
||||||
getList()
|
getList()
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@
|
||||||
:label="dict.label"
|
:label="dict.label"
|
||||||
:value="dict.value"
|
:value="dict.value"
|
||||||
/>
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="工作流编号" prop="processInstanceId">
|
<el-form-item label="工作流编号" prop="processInstanceId">
|
||||||
<el-input v-model="formData.processInstanceId" placeholder="请输入工作流编号" />
|
<el-input v-model="formData.processInstanceId" placeholder="请输入工作流编号" />
|
||||||
|
|
@ -40,8 +41,8 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="岗位id" prop="postId">
|
<el-form-item label="岗位id" prop="postId">
|
||||||
<el-input v-model="formData.postId" placeholder="请输入岗位id" />
|
<!-- <el-input v-model="formData.postId" placeholder="请输入岗位id" /> -->
|
||||||
<el-form-item label="岗位" prop="postIds">
|
<!-- <el-form-item label="岗位" prop="postIds"> -->
|
||||||
<el-select v-model="formData.postIds" multiple placeholder="请选择">
|
<el-select v-model="formData.postIds" multiple placeholder="请选择">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in postList"
|
v-for="item in postList"
|
||||||
|
|
@ -50,7 +51,7 @@
|
||||||
:value="item.id!"
|
:value="item.id!"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
<!-- </el-form-item> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="期望到岗日期" prop="expectedOnboard">
|
<el-form-item label="期望到岗日期" prop="expectedOnboard">
|
||||||
<el-input v-model="formData.expectedOnboard" placeholder="请输入期望到岗日期" />
|
<el-input v-model="formData.expectedOnboard" placeholder="请输入期望到岗日期" />
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue