|
@@ -42,9 +42,9 @@
|
|
|
</template>
|
|
|
<template #person>
|
|
|
<div style="width: 100%">
|
|
|
- <el-button type="primary" @click="clickAddPerson">添 加</el-button>
|
|
|
- <el-table :data="formData.data.customerUserList" style="width: 100%; margin-top: 16px">
|
|
|
- <el-table-column label="姓名" width="160">
|
|
|
+ <el-button type="primary" @click="clickAddPerson" v-if="!formOption.disabled">添 加</el-button>
|
|
|
+ <el-table :data="formData.data.customerUserList" style="width: 100%; ">
|
|
|
+ <el-table-column label="姓名" width="150" fixed="left">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
<el-form-item :prop="'customerUserList.' + $index + '.name'" class="margin-b-0 wid100" :rules="rules.name2" :inline-message="true">
|
|
@@ -53,75 +53,84 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="性别" width="100">
|
|
|
+ <el-table-column label="性别" width="100" fixed="left">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item :prop="'customerUserList.' + $index + '.name'" class="margin-b-0 wid100" :rules="rules.name2" :inline-message="true">
|
|
|
- <el-input v-model="row.name" placeholder="请输入" />
|
|
|
+ <el-form-item :prop="'customerUserList.' + $index + '.sex'" class="margin-b-0 wid100" :rules="rules.sex" :inline-message="true">
|
|
|
+ <el-select v-model="row.sex" placeholder="请选择" style="width: 100%">
|
|
|
+ <el-option :label="'男'" :value="'1'" />
|
|
|
+ <el-option :label="'女'" :value="'2'" />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="职位" width="150">
|
|
|
+ <el-table-column label="职位" width="150" fixed="left">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item :prop="'customerUserList.' + $index + '.name'" class="margin-b-0 wid100" :rules="rules.name2" :inline-message="true">
|
|
|
- <el-input v-model="row.name" placeholder="请输入" />
|
|
|
+ <el-form-item :prop="'customerUserList.' + $index + '.position'" class="margin-b-0 wid100" :rules="rules.position"
|
|
|
+ :inline-message="true">
|
|
|
+ <el-input v-model="row.position" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="是否企业关键KP" width="150">
|
|
|
+ <el-table-column label="是否企业关键KP" width="150" fixed="left">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item :prop="'customerUserList.' + $index + '.name'" class="margin-b-0 wid100" :rules="rules.name2" :inline-message="true">
|
|
|
- <el-input v-model="row.name" placeholder="请输入" />
|
|
|
+ <el-form-item :prop="'customerUserList.' + $index + '.isKp'" class="margin-b-0 wid100" :rules="rules.isKp" :inline-message="true">
|
|
|
+ <el-select v-model="row.isKp" placeholder="请选择" style="width: 100%">
|
|
|
+ <el-option :label="'是'" :value="1" />
|
|
|
+ <el-option :label="'否'" :value="0" />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="微信" width="150">
|
|
|
+ <el-table-column label="手机号" width="150" fixed="left">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item :prop="'customerUserList.' + $index + '.name'" class="margin-b-0 wid100" :rules="rules.name2" :inline-message="true">
|
|
|
- <el-input v-model="row.name" placeholder="请输入" />
|
|
|
+ <el-form-item :prop="'customerUserList.' + $index + '.phone'" class="margin-b-0 wid100" :rules="rules.phone" :inline-message="true">
|
|
|
+ <el-input v-model="row.phone" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="旺旺" width="150">
|
|
|
+ <el-table-column label="微信" width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item :prop="'customerUserList.' + $index + '.name'" class="margin-b-0 wid100" :rules="rules.name2" :inline-message="true">
|
|
|
- <el-input v-model="row.name" placeholder="请输入" />
|
|
|
+ <el-form-item :prop="'customerUserList.' + $index + '.weChat'" class="margin-b-0 wid100" :rules="rules.weChat"
|
|
|
+ :inline-message="true">
|
|
|
+ <el-input v-model="row.weChat" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="联系电话" width="150">
|
|
|
+ <el-table-column label="旺旺" width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item :prop="'customerUserList.' + $index + '.email'" class="margin-b-0 wid100" :rules="rules.email" :inline-message="true">
|
|
|
- <el-input v-model="row.email" placeholder="请输入" />
|
|
|
+ <el-form-item :prop="'customerUserList.' + $index + '.wangWang'" class="margin-b-0 wid100" :rules="rules.wangWang"
|
|
|
+ :inline-message="true">
|
|
|
+ <el-input v-model="row.wangWang" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="手机号" width="150">
|
|
|
+ <el-table-column label="联系电话" width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item :prop="'customerUserList.' + $index + '.name'" class="margin-b-0 wid100" :rules="rules.name2" :inline-message="true">
|
|
|
- <el-input v-model="row.name" placeholder="请输入" />
|
|
|
+ <el-form-item :prop="'customerUserList.' + $index + '.tel'" class="margin-b-0 wid100" :rules="rules.tel" :inline-message="true">
|
|
|
+ <el-input v-model="row.tel" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
-
|
|
|
<el-table-column label="WhatsApp" width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item :prop="'customerUserList.' + $index + '.name'" class="margin-b-0 wid100" :rules="rules.name2" :inline-message="true">
|
|
|
- <el-input v-model="row.name" placeholder="请输入" />
|
|
|
+ <el-form-item :prop="'customerUserList.' + $index + '.whatsApp'" class="margin-b-0 wid100" :rules="rules.whatsApp"
|
|
|
+ :inline-message="true">
|
|
|
+ <el-input v-model="row.whatsApp" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -130,8 +139,8 @@
|
|
|
<el-table-column label="QQ" width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item :prop="'customerUserList.' + $index + '.name'" class="margin-b-0 wid100" :rules="rules.name2" :inline-message="true">
|
|
|
- <el-input v-model="row.name" placeholder="请输入" />
|
|
|
+ <el-form-item :prop="'customerUserList.' + $index + '.qq'" class="margin-b-0 wid100" :rules="rules.qq" :inline-message="true">
|
|
|
+ <el-input v-model="row.qq" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -139,8 +148,8 @@
|
|
|
<el-table-column label="Skype" width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item :prop="'customerUserList.' + $index + '.name'" class="margin-b-0 wid100" :rules="rules.name2" :inline-message="true">
|
|
|
- <el-input v-model="row.name" placeholder="请输入" />
|
|
|
+ <el-form-item :prop="'customerUserList.' + $index + '.skype'" class="margin-b-0 wid100" :rules="rules.skype" :inline-message="true">
|
|
|
+ <el-input v-model="row.skype" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -148,8 +157,9 @@
|
|
|
<el-table-column label="LinkedIn" width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item :prop="'customerUserList.' + $index + '.name'" class="margin-b-0 wid100" :rules="rules.name2" :inline-message="true">
|
|
|
- <el-input v-model="row.name" placeholder="请输入" />
|
|
|
+ <el-form-item :prop="'customerUserList.' + $index + '.linkedIn'" class="margin-b-0 wid100" :rules="rules.linkedIn"
|
|
|
+ :inline-message="true">
|
|
|
+ <el-input v-model="row.linkedIn" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -157,8 +167,9 @@
|
|
|
<el-table-column label="Facebook" width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item :prop="'customerUserList.' + $index + '.name'" class="margin-b-0 wid100" :rules="rules.name2" :inline-message="true">
|
|
|
- <el-input v-model="row.name" placeholder="请输入" />
|
|
|
+ <el-form-item :prop="'customerUserList.' + $index + '.facebook'" class="margin-b-0 wid100" :rules="rules.facebook"
|
|
|
+ :inline-message="true">
|
|
|
+ <el-input v-model="row.facebook" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -166,8 +177,9 @@
|
|
|
<el-table-column label="Dirrect Line" width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item :prop="'customerUserList.' + $index + '.email'" class="margin-b-0 wid100" :rules="rules.email" :inline-message="true">
|
|
|
- <el-input v-model="row.email" placeholder="请输入" />
|
|
|
+ <el-form-item :prop="'customerUserList.' + $index + '.directLine'" class="margin-b-0 wid100" :rules="rules.directLine"
|
|
|
+ :inline-message="true">
|
|
|
+ <el-input v-model="row.directLine" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -181,7 +193,7 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" label="操作" width="80" fixed="right">
|
|
|
+ <el-table-column align="center" label="操作" width="80" fixed="right" v-if="!formOption.disabled">
|
|
|
<template #default="{ row, $index }">
|
|
|
<!-- <el-button type="primary" link @click="clickInformationMore(row, $index)">更多</el-button> -->
|
|
|
<el-button type="primary" link @click="clickDelete($index)">删除</el-button>
|
|
@@ -298,6 +310,12 @@ const customerState = computed(
|
|
|
const newoldCustomer = computed(
|
|
|
() => proxy.useUserStore().allDict["newold_customer"]
|
|
|
);
|
|
|
+const invoiceType = computed(
|
|
|
+ () => proxy.useUserStore().allDict["invoice_type"]
|
|
|
+);
|
|
|
+const cooperationStatus = computed(
|
|
|
+ () => proxy.useUserStore().allDict["cooperation_status"]
|
|
|
+);
|
|
|
|
|
|
const submit = ref(null);
|
|
|
const formData = reactive({
|
|
@@ -360,6 +378,13 @@ const getCityData = (id, type, isChange = false) => {
|
|
|
});
|
|
|
};
|
|
|
getCityData("0");
|
|
|
+const formOption = reactive({
|
|
|
+ disabled: false,
|
|
|
+ inline: true,
|
|
|
+ labelWidth: 120,
|
|
|
+ itemWidth: 100,
|
|
|
+ rules: [],
|
|
|
+});
|
|
|
const getDtl = () => {
|
|
|
loading.value = true;
|
|
|
proxy.post("/customer/detail", { id: customerId.value }).then((res) => {
|
|
@@ -373,6 +398,40 @@ const getDtl = () => {
|
|
|
if (formData.data.provinceId) {
|
|
|
getCityData(formData.data.provinceId, "30");
|
|
|
}
|
|
|
+ proxy
|
|
|
+ .post("/fileInfo/getList", { businessIdList: [customerId.value] })
|
|
|
+ .then((fileObj) => {
|
|
|
+ if (fileObj[customerId.value] && fileObj[customerId.value].length > 0) {
|
|
|
+ formData.data.fileList = fileObj[customerId.value]
|
|
|
+ .filter((x) => x.businessType == "10")
|
|
|
+ .map((item) => {
|
|
|
+ return {
|
|
|
+ ...item,
|
|
|
+ name: item.fileName,
|
|
|
+ url: item.fileUrl,
|
|
|
+ };
|
|
|
+ });
|
|
|
+
|
|
|
+ formData.data.imgFileList = fileObj[customerId.value]
|
|
|
+ .filter((x) => x.businessType == "20")
|
|
|
+ .map((item) => {
|
|
|
+ return {
|
|
|
+ ...item,
|
|
|
+ name: item.fileName,
|
|
|
+ url: item.fileUrl,
|
|
|
+ };
|
|
|
+ });
|
|
|
+ if (
|
|
|
+ formData.data.imgFileList &&
|
|
|
+ formData.data.imgFileList.length > 0
|
|
|
+ ) {
|
|
|
+ formData.data.imageUrl = formData.data.imgFileList[0].fileUrl;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ formData.data.fileList = [];
|
|
|
+ formData.data.imgFileList = [];
|
|
|
+ }
|
|
|
+ });
|
|
|
loading.value = false;
|
|
|
});
|
|
|
};
|
|
@@ -382,6 +441,8 @@ if (props && props.modalType) {
|
|
|
formData.data = {
|
|
|
countryId: "44",
|
|
|
tags: [],
|
|
|
+ fileList: [],
|
|
|
+ imgFileList: [],
|
|
|
customerUserList: [
|
|
|
{
|
|
|
name: "",
|
|
@@ -393,18 +454,19 @@ if (props && props.modalType) {
|
|
|
formData.data.customerUserList[0].email = props.customerMail;
|
|
|
}
|
|
|
getCityData(formData.data.countryId, "20");
|
|
|
- } else if (modalType.value == "edit" && props.customerId) {
|
|
|
+ } else if (
|
|
|
+ (modalType.value == "edit" || modalType.value == "detail") &&
|
|
|
+ props.customerId
|
|
|
+ ) {
|
|
|
customerId.value = props.customerId;
|
|
|
getDtl();
|
|
|
+ // 详情禁用
|
|
|
+ if (modalType.value == "detail") {
|
|
|
+ formOption.disabled = true;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-const formOption = reactive({
|
|
|
- inline: true,
|
|
|
- labelWidth: 190,
|
|
|
- itemWidth: 100,
|
|
|
- rules: [],
|
|
|
-});
|
|
|
const formConfig = computed(() => {
|
|
|
return [
|
|
|
// {
|
|
@@ -423,32 +485,39 @@ const formConfig = computed(() => {
|
|
|
type: "slot",
|
|
|
slotName: "name",
|
|
|
prop: "name",
|
|
|
- label: "客户名称",
|
|
|
- },
|
|
|
- {
|
|
|
- type: "slot",
|
|
|
- slotName: "allAddress",
|
|
|
- label: "详细地址",
|
|
|
+ label: "公司/客户主体",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- prop: "fax",
|
|
|
- label: "公司/客户主体",
|
|
|
- itemWidth: 50,
|
|
|
+ prop: "customerCode",
|
|
|
+ label: "客户编号",
|
|
|
+ itemWidth: 100,
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
- type: "input",
|
|
|
- prop: "fax",
|
|
|
- label: "公司/客户客体",
|
|
|
- itemWidth: 50,
|
|
|
- itemType: "text",
|
|
|
+ type: "slot",
|
|
|
+ slotName: "allAddress",
|
|
|
+ label: "详细地址",
|
|
|
},
|
|
|
+ // {
|
|
|
+ // type: "input",
|
|
|
+ // prop: "mainPart",
|
|
|
+ // label: "公司/客户主体",
|
|
|
+ // itemWidth: 50,
|
|
|
+ // itemType: "text",
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // type: "input",
|
|
|
+ // prop: "minorPart",
|
|
|
+ // label: "公司/客户客体",
|
|
|
+ // itemWidth: 50,
|
|
|
+ // itemType: "text",
|
|
|
+ // },
|
|
|
{
|
|
|
type: "select",
|
|
|
label: "业务员",
|
|
|
prop: "userId",
|
|
|
- itemWidth: 50,
|
|
|
+ itemWidth: 25,
|
|
|
data: userList.value,
|
|
|
clearable: true,
|
|
|
disabled: isHighseas.value,
|
|
@@ -460,106 +529,105 @@ const formConfig = computed(() => {
|
|
|
data: deptData.value,
|
|
|
propsTreeLabel: "deptName",
|
|
|
propsTreeValue: "deptId",
|
|
|
- itemWidth: 50,
|
|
|
+ itemWidth: 25,
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- prop: "fax",
|
|
|
+ prop: "mainCategories",
|
|
|
label: "主营品类",
|
|
|
- itemWidth: 50,
|
|
|
+ itemWidth: 25,
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "select",
|
|
|
label: "公司规模",
|
|
|
- prop: "wwaa",
|
|
|
- itemWidth: 50,
|
|
|
+ prop: "companySize",
|
|
|
+ itemWidth: 25,
|
|
|
data: customerScale.value,
|
|
|
},
|
|
|
{
|
|
|
type: "select",
|
|
|
label: "客户结算方式",
|
|
|
- prop: "wwaa",
|
|
|
- itemWidth: 50,
|
|
|
+ prop: "settlementMode",
|
|
|
+ itemWidth: 25,
|
|
|
data: settlementWay.value,
|
|
|
},
|
|
|
{
|
|
|
type: "select",
|
|
|
label: "客户类型",
|
|
|
prop: "status",
|
|
|
- itemWidth: 50,
|
|
|
+ itemWidth: 25,
|
|
|
data: customerStatus.value,
|
|
|
},
|
|
|
{
|
|
|
type: "select",
|
|
|
label: "客户分级",
|
|
|
- prop: "wwaa",
|
|
|
- itemWidth: 50,
|
|
|
+ prop: "level",
|
|
|
+ itemWidth: 25,
|
|
|
data: customerSlevel.value,
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- prop: "fax",
|
|
|
+ prop: "maintainLevel",
|
|
|
label: "维系级别",
|
|
|
- itemWidth: 50,
|
|
|
+ itemWidth: 25,
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "select",
|
|
|
label: "新老客户",
|
|
|
- prop: "wwaa",
|
|
|
- itemWidth: 50,
|
|
|
+ prop: "newOld",
|
|
|
+ itemWidth: 25,
|
|
|
data: newoldCustomer.value,
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- prop: "fax",
|
|
|
+ prop: "annualQuantity",
|
|
|
label: "要求年订单量",
|
|
|
- itemWidth: 50,
|
|
|
+ itemWidth: 25,
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- prop: "fax",
|
|
|
+ prop: "followUpAsk",
|
|
|
label: "回访要求",
|
|
|
- itemWidth: 50,
|
|
|
+ itemWidth: 25,
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- prop: "fax",
|
|
|
+ prop: "remind",
|
|
|
label: "提醒设定",
|
|
|
- itemWidth: 50,
|
|
|
+ itemWidth: 25,
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "date",
|
|
|
itemType: "date",
|
|
|
- prop: "fax",
|
|
|
+ prop: "createGroupTime",
|
|
|
label: "建群时间",
|
|
|
- itemWidth: 50,
|
|
|
+ itemWidth: 25,
|
|
|
},
|
|
|
{
|
|
|
type: "select",
|
|
|
label: "客户状态",
|
|
|
- prop: "source",
|
|
|
- itemWidth: 50,
|
|
|
+ prop: "state",
|
|
|
+ itemWidth: 25,
|
|
|
data: customerState.value,
|
|
|
},
|
|
|
{
|
|
|
type: "select",
|
|
|
label: "客户来源",
|
|
|
prop: "source",
|
|
|
- itemWidth: 50,
|
|
|
+ itemWidth: 25,
|
|
|
data: customerSource.value,
|
|
|
},
|
|
|
-
|
|
|
{
|
|
|
type: "input",
|
|
|
prop: "fax",
|
|
|
label: "传真",
|
|
|
required: true,
|
|
|
- itemWidth: 50,
|
|
|
+ itemWidth: 25,
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
@@ -573,73 +641,276 @@ const formConfig = computed(() => {
|
|
|
width: "100%",
|
|
|
},
|
|
|
},
|
|
|
+ // {
|
|
|
+ // type: "input",
|
|
|
+ // prop: "beneficiaryName",
|
|
|
+ // label: "Beneficiary Name",
|
|
|
+ // required: true,
|
|
|
+ // itemWidth: 50,
|
|
|
+ // itemType: "text",
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // type: "input",
|
|
|
+ // prop: "beneficiaryAccountNumber",
|
|
|
+ // label: "Beneficiary Account Number",
|
|
|
+ // required: true,
|
|
|
+ // itemWidth: 50,
|
|
|
+ // itemType: "text",
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // type: "input",
|
|
|
+ // prop: "beneficiaryBank",
|
|
|
+ // label: "Beneficiary Bank",
|
|
|
+ // required: true,
|
|
|
+ // itemWidth: 50,
|
|
|
+ // itemType: "text",
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // type: "input",
|
|
|
+ // prop: "swiftCode",
|
|
|
+ // label: "Swift Code",
|
|
|
+ // required: true,
|
|
|
+ // itemWidth: 50,
|
|
|
+ // itemType: "text",
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // type: "input",
|
|
|
+ // prop: "beneficiaryBankAddress",
|
|
|
+ // label: "Beneficiary Bank Address",
|
|
|
+ // required: true,
|
|
|
+ // itemWidth: 50,
|
|
|
+ // itemType: "text",
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // type: "input",
|
|
|
+ // prop: "beneficiaryAddress",
|
|
|
+ // label: "Beneficiary Address",
|
|
|
+ // required: true,
|
|
|
+ // itemWidth: 50,
|
|
|
+ // itemType: "text",
|
|
|
+ // },
|
|
|
+ {
|
|
|
+ type: "title1",
|
|
|
+ title: "联系人",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "slot",
|
|
|
+ slotName: "person",
|
|
|
+ label: "客户联系人",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "title1",
|
|
|
+ title: "客户对公财务信息",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "select",
|
|
|
+ label: "发票信息",
|
|
|
+ prop: "invoiceType",
|
|
|
+ itemWidth: 25,
|
|
|
+ data: invoiceType.value,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "select",
|
|
|
+ label: "合作状态",
|
|
|
+ prop: "cooperateStatus",
|
|
|
+ itemWidth: 25,
|
|
|
+ data: cooperationStatus.value,
|
|
|
+ },
|
|
|
{
|
|
|
type: "input",
|
|
|
- prop: "beneficiaryName",
|
|
|
- label: "Beneficiary Name",
|
|
|
- required: true,
|
|
|
- itemWidth: 50,
|
|
|
+ prop: "accountName",
|
|
|
+ label: "公司名称",
|
|
|
+ itemWidth: 25,
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- prop: "beneficiaryAccountNumber",
|
|
|
- label: "Beneficiary Account Number",
|
|
|
- required: true,
|
|
|
- itemWidth: 50,
|
|
|
+ prop: "dutyParagraph",
|
|
|
+ label: "税号",
|
|
|
+ itemWidth: 25,
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- prop: "beneficiaryBank",
|
|
|
- label: "Beneficiary Bank",
|
|
|
- required: true,
|
|
|
- itemWidth: 50,
|
|
|
+ prop: "accountAddress",
|
|
|
+ label: "地址",
|
|
|
+ itemWidth: 25,
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- prop: "swiftCode",
|
|
|
- label: "Swift Code",
|
|
|
- required: true,
|
|
|
- itemWidth: 50,
|
|
|
+ prop: "accountTel",
|
|
|
+ label: "电话",
|
|
|
+ itemWidth: 25,
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- prop: "beneficiaryBankAddress",
|
|
|
- label: "Beneficiary Bank Address",
|
|
|
- required: true,
|
|
|
- itemWidth: 50,
|
|
|
+ prop: "accountBank",
|
|
|
+ label: "开户行(对公)",
|
|
|
+ itemWidth: 25,
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- prop: "beneficiaryAddress",
|
|
|
- label: "Beneficiary Address",
|
|
|
- required: true,
|
|
|
- itemWidth: 50,
|
|
|
+ prop: "accountNumber",
|
|
|
+ label: "开户账号(对公)",
|
|
|
+ itemWidth: 25,
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "title1",
|
|
|
- title: "联系人",
|
|
|
+ title: "客户对私财务信息",
|
|
|
},
|
|
|
{
|
|
|
- type: "slot",
|
|
|
- slotName: "person",
|
|
|
- label: "客户联系人",
|
|
|
+ type: "input",
|
|
|
+ prop: "privAccountName",
|
|
|
+ label: "账户名称",
|
|
|
+ itemWidth: 25,
|
|
|
+ itemType: "text",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "input",
|
|
|
+ prop: "privAccountBank",
|
|
|
+ label: "开户行(对私)",
|
|
|
+ itemWidth: 25,
|
|
|
+ itemType: "text",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "input",
|
|
|
+ prop: "privAccountNumber",
|
|
|
+ label: "开户账号(对私)",
|
|
|
+ itemWidth: 25,
|
|
|
+ itemType: "text",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "upload",
|
|
|
+ listType: "text",
|
|
|
+ accept: "",
|
|
|
+ prop: "fileList",
|
|
|
+ label: "客户附件信息",
|
|
|
+ itemWidth: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "uploadImg",
|
|
|
+ // listType: "picture-card",
|
|
|
+ // limit: 1,
|
|
|
+ // accept: ".gif, .jpeg, .jpg, .png",
|
|
|
+ prop: "imgFileList",
|
|
|
+ imgProp: "imageUrl",
|
|
|
+ label: "客户图片信息",
|
|
|
+ itemWidth: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "title1",
|
|
|
+ title: "跟进下单数据",
|
|
|
+ isShow: modalType.value == "detail",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "date",
|
|
|
+ itemType: "date",
|
|
|
+ prop: "lastFollowTime",
|
|
|
+ label: "客情时间",
|
|
|
+ itemWidth: 25,
|
|
|
+ disabled: true,
|
|
|
+ isShow: modalType.value == "detail",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "input",
|
|
|
+ prop: "followCount",
|
|
|
+ label: "跟进次数",
|
|
|
+ itemWidth: 25,
|
|
|
+ itemType: "text",
|
|
|
+ disabled: true,
|
|
|
+ isShow: modalType.value == "detail",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "date",
|
|
|
+ itemType: "date",
|
|
|
+ prop: "lastSaleDate",
|
|
|
+ label: "最近下单时间",
|
|
|
+ itemWidth: 25,
|
|
|
+ disabled: true,
|
|
|
+ isShow: modalType.value == "detail",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "input",
|
|
|
+ prop: "lastSaleDay",
|
|
|
+ label: "下单距离天数",
|
|
|
+ itemWidth: 25,
|
|
|
+ itemType: "text",
|
|
|
+ disabled: true,
|
|
|
+ isShow: modalType.value == "detail",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "input",
|
|
|
+ prop: "orderCount",
|
|
|
+ label: "下单次数",
|
|
|
+ itemWidth: 25,
|
|
|
+ itemType: "text",
|
|
|
+ disabled: true,
|
|
|
+ isShow: modalType.value == "detail",
|
|
|
+ },
|
|
|
+ // {
|
|
|
+ // type: "number",
|
|
|
+ // prop: "flatPrice",
|
|
|
+ // label: "每年成交金额",
|
|
|
+ // precision: 2,
|
|
|
+ // min: 0,
|
|
|
+ // controls: false,
|
|
|
+ // itemWidth: 25,
|
|
|
+ // disabled: false,
|
|
|
+ // },
|
|
|
+ {
|
|
|
+ type: "number",
|
|
|
+ prop: "orderAmountSum",
|
|
|
+ label: "成交总金额",
|
|
|
+ precision: 2,
|
|
|
+ min: 0,
|
|
|
+ controls: false,
|
|
|
+ itemWidth: 25,
|
|
|
+ disabled: true,
|
|
|
+ isShow: modalType.value == "detail",
|
|
|
},
|
|
|
];
|
|
|
});
|
|
|
|
|
|
const rules = ref({
|
|
|
- name: [{ required: true, message: "请输入客户名称", trigger: "blur" }],
|
|
|
+ name: [{ required: true, message: "请输入公司/客户主体", trigger: "blur" }],
|
|
|
+ customerCode: [
|
|
|
+ { required: true, message: "请输入客户编号", trigger: "blur" },
|
|
|
+ ],
|
|
|
name2: [{ required: true, message: "请输入", trigger: "blur" }],
|
|
|
- email: [{ required: true, message: "请输入电子邮箱", trigger: "blur" }],
|
|
|
+ // email: [{ required: true, message: "请输入电子邮箱", trigger: "blur" }],
|
|
|
+ sex: [{ required: true, message: "请选择性别", trigger: "change" }],
|
|
|
+ position: [{ required: true, message: "请输入职位", trigger: "blur" }],
|
|
|
+ phone: [{ required: true, message: "请输入手机", trigger: "blur" }],
|
|
|
+
|
|
|
countryId: [{ required: true, message: "请选择国家", trigger: "change" }],
|
|
|
source: [{ required: true, message: "请选择客户来源", trigger: "change" }],
|
|
|
status: [{ required: true, message: "请选择类型", trigger: "change" }],
|
|
|
+
|
|
|
+ mainPart: [
|
|
|
+ { required: true, message: "请选择公司/客户主体", trigger: "change" },
|
|
|
+ ],
|
|
|
+ minorPart: [
|
|
|
+ { required: true, message: "请选择公司/客户客体", trigger: "change" },
|
|
|
+ ],
|
|
|
+ // userId: [{ required: true, message: "请选择业务员", trigger: "change" }],
|
|
|
+ deptId: [{ required: true, message: "请选择业务部门", trigger: "change" }],
|
|
|
+ level: [{ required: true, message: "请选择客户分级", trigger: "change" }],
|
|
|
+ maintainLevel: [
|
|
|
+ { required: true, message: "请输入维系级别", trigger: "blur" },
|
|
|
+ ],
|
|
|
+ newOld: [{ required: true, message: "请选择新老客户", trigger: "change" }],
|
|
|
+ annualQuantity: [
|
|
|
+ { required: true, message: "请输入要求年订单量", trigger: "blur" },
|
|
|
+ ],
|
|
|
+ followUpAsk: [{ required: true, message: "请输入回访要求", trigger: "blur" }],
|
|
|
+ remind: [{ required: true, message: "请输入提醒设定", trigger: "blur" }],
|
|
|
+ createGroupTime: [
|
|
|
+ { required: true, message: "请选择建群时间", trigger: "change" },
|
|
|
+ ],
|
|
|
});
|
|
|
if (props.isPrivate) {
|
|
|
rules.value.userId = [
|
|
@@ -654,12 +925,38 @@ const clickAddPerson = () => {
|
|
|
formData.data.customerUserList.push({
|
|
|
name: "",
|
|
|
email: "",
|
|
|
+ sex: "",
|
|
|
+ position: "",
|
|
|
+ tel: "",
|
|
|
+ phone: "",
|
|
|
+ qq: "",
|
|
|
+ skype: "",
|
|
|
+ facebook: "",
|
|
|
+ isKp: "",
|
|
|
+ weChat: "",
|
|
|
+ wangWang: "",
|
|
|
+ whatsApp: "",
|
|
|
+ linkedIn: "",
|
|
|
+ directLine: "",
|
|
|
});
|
|
|
} else {
|
|
|
formData.data.customerUserList = [
|
|
|
{
|
|
|
name: "",
|
|
|
email: "",
|
|
|
+ sex: "",
|
|
|
+ position: "",
|
|
|
+ tel: "",
|
|
|
+ phone: "",
|
|
|
+ qq: "",
|
|
|
+ skype: "",
|
|
|
+ facebook: "",
|
|
|
+ isKp: "",
|
|
|
+ weChat: "",
|
|
|
+ wangWang: "",
|
|
|
+ whatsApp: "",
|
|
|
+ linkedIn: "",
|
|
|
+ directLine: "",
|
|
|
},
|
|
|
];
|
|
|
}
|