<template>
|
<div class="add-followup-records">
|
<el-dialog
|
:title="editContactsConfig.title + '跟进记录'"
|
:visible.sync="editConfig.visible"
|
:width="dialogWidth"
|
:before-close="handleClose"
|
append-to-body
|
custom-class="iframe-dialog"
|
>
|
<el-form
|
v-if="refreshFlag"
|
ref="form"
|
:model="editConfig.infomation"
|
:rules="rules"
|
label-position="right"
|
label-width="168px"
|
size="mini"
|
>
|
<!-- 信息 -->
|
<div class="basic-info">
|
<!-- 基本信息 -->
|
<div v-if="isUnflod" class="basic-info-title">基本信息</div>
|
<div class="basic-info-view">
|
<el-row>
|
<el-col :span="12" v-if="isUnflod">
|
<el-form-item label="跟进记录编号" prop="number">
|
<el-input
|
v-if="
|
editConfig.title == '编辑' ||
|
(editConfig.title == '新建' && codenumer && (explain != '' || isIdDisabled))
|
"
|
:disabled="editConfig.title == '编辑'"
|
v-model="editConfig.infomation.number"
|
placeholder="请输入编码"
|
>
|
</el-input>
|
<span v-else-if="editConfig.title == '新建'" style="color: #f56c6c"
|
>请优先配置编码规范 <el-button type="text" @click="numberClick"> 配置规范 </el-button></span
|
>
|
<!-- <WordInput
|
v-if="codenumer && (explain != '' || isIdDisabled) && method == 0"
|
:codenumer="codenumer"
|
:sum="sum"
|
:disabled="this.editConfig.title !== '新建' || isIdDisabled"
|
:inputValue="inputValue"
|
@codeList="codeList"
|
/>
|
<span v-else-if="method == 0" style="color: #f56c6c"
|
>请优先配置编码规范 <el-button type="text" @click="numberClick"> 配置规范 </el-button></span
|
>
|
<span v-else>自动生成</span> -->
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="客户名称" prop="client_name">
|
<div class="custom-name">
|
<el-autocomplete
|
v-model="editConfig.infomation.client_name"
|
:fetch-suggestions="
|
(queryString, callback) => {
|
querySearchAsync(queryString, callback, 'client')
|
}
|
"
|
value-key="name"
|
@select="handleSelectClient('client', $event)"
|
style="width: 100%"
|
></el-autocomplete>
|
<div class="common-select-btn" @click="selClientClick('client')">
|
<i class="el-icon-circle-plus-outline" title="选择"></i>
|
</div>
|
<div
|
v-if="editConfig.infomation.client_name && editConfig.infomation.client_name.length > 0"
|
class="common-select-btn"
|
@click="clearupClient('client')"
|
>
|
<i class="el-icon-remove-outline" title="清除"></i>
|
</div>
|
</div>
|
</el-form-item>
|
</el-col>
|
<el-col v-if="isUnflod && !isDetail" :span="12">
|
<el-form-item label="客户状态" prop="client_status_id">
|
<div class="common-select">
|
<el-select
|
v-model="editConfig.infomation.client_status_id"
|
placeholder="请选择"
|
class="common-select-sel"
|
size="mini"
|
style="width: 100%"
|
>
|
<el-option v-for="item in clientStatusOptions" :key="item.id" :label="item.name" :value="item.id">
|
</el-option>
|
</el-select>
|
<!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
|
</div>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="联系人姓名" prop="contact_name">
|
<div class="custom-name">
|
<el-autocomplete
|
v-model="editConfig.infomation.contact_name"
|
:fetch-suggestions="
|
(queryString, callback) => {
|
querySearchAsync(queryString, callback, 'contact')
|
}
|
"
|
value-key="name"
|
@select="handleSelectClient('contact', $event)"
|
style="width: 100%"
|
>
|
// 解决匹配不到提示无匹配数据
|
<template v-if="noData" slot-scope="{ item }">
|
<div class="default" @click.stop="stopClick">{{ item.name }}</div>
|
</template>
|
</el-autocomplete>
|
<div class="common-select-btn" @click="selClientClick('contact')">
|
<i class="el-icon-circle-plus-outline" title="选择"></i>
|
</div>
|
<div
|
v-if="editConfig.infomation.contact_name && editConfig.infomation.contact_name.length > 0"
|
class="common-select-btn"
|
@click="clearupClient('contact')"
|
>
|
<i class="el-icon-remove-outline" title="清除"></i>
|
</div>
|
</div>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item v-if="isUnflod" label="负责人" prop="member_id">
|
<el-select
|
v-model="editConfig.infomation.member_id"
|
placeholder="请选择"
|
size="mini"
|
style="width: 100%"
|
>
|
<el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="主题" prop="topic">
|
<el-input v-model="editConfig.infomation.topic"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="联系方式" prop="contact_information_id">
|
<!-- <el-input
|
v-model="editConfig.infomation.phoneNumber"
|
maxlength="11"
|
show-word-limit
|
oninput="value=value.replace(/[^\d]/g,'')"
|
></el-input> -->
|
<el-select
|
v-model="editConfig.infomation.contact_information_id"
|
placeholder="请选择"
|
size="mini"
|
style="width: 100%"
|
>
|
<el-option v-for="item in contactInfoOptions" :key="item.id" :label="item.name" :value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col v-if="isUnflod" :span="12">
|
<el-form-item label="销售机会" prop="sale_chance_name">
|
<div class="custom-name">
|
<!-- :disabled="isChance" -->
|
<el-autocomplete
|
v-model="editConfig.infomation.sale_chance_name"
|
:fetch-suggestions="
|
(queryString, callback) => {
|
querySearchAsync(queryString, callback, 'chance')
|
}
|
"
|
value-key="name"
|
@select="handleSelectClient('chance', $event)"
|
style="width: 100%"
|
placeholder="请选择销售机会"
|
></el-autocomplete>
|
<!-- v-if="!isChance" -->
|
<div class="common-select-btn" @click="selClientClick('chance')">
|
<i class="el-icon-circle-plus-outline"></i>
|
</div>
|
<!-- &&!isChance -->
|
<div
|
v-if="
|
editConfig.infomation.sale_chance_name &&
|
editConfig.infomation.sale_chance_name.length > 0
|
"
|
class="common-select-btn"
|
@click="clearupClient('chance')"
|
>
|
<i class="el-icon-remove-outline"></i>
|
</div>
|
</div>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12" v-if="!isDetail">
|
<el-form-item label="销售线索" prop="sales_leads_name">
|
<div class="custom-name">
|
<!-- <el-input v-model="editConfig.infomation.sales_leads_id"></el-input> -->
|
<el-autocomplete
|
v-model="editConfig.infomation.sales_leads_name"
|
:fetch-suggestions="
|
(queryString, callback) => {
|
querySearchAsync(queryString, callback, 'lead')
|
}
|
"
|
value-key="name"
|
@select="handleSelectClient('lead', $event)"
|
style="width: 100%"
|
></el-autocomplete>
|
<div class="common-select-btn" @click="selClientClick('lead')">
|
<i class="el-icon-circle-plus-outline"></i>
|
</div>
|
<div
|
v-if="editConfig.infomation.sales_leads_name && editConfig.infomation.sales_leads_name.length > 0"
|
class="common-select-btn"
|
@click="clearupClient('lead')"
|
>
|
<i class="el-icon-remove-outline"></i>
|
</div>
|
</div>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="联系日期" prop="follow_time">
|
<el-date-picker
|
v-model="editConfig.infomation.follow_time"
|
value-format="yyyy-MM-dd"
|
type="date"
|
placeholder="选择日期"
|
:picker-options="pickerOptions"
|
style="width: 100%"
|
>
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="下次回访日期" prop="next_follow_time">
|
<el-date-picker
|
v-model="editConfig.infomation.next_follow_time"
|
value-format="yyyy-MM-dd"
|
type="date"
|
placeholder="选择日期"
|
style="width: 100%"
|
>
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :span="isUnflod ? 24 : 12">
|
<el-form-item label="跟进记录" prop="record">
|
<el-input
|
type="textarea"
|
:autosize="{ minRows: 2, maxRows: 4 }"
|
v-model="editConfig.infomation.record"
|
></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</div>
|
<!-- 备注信息 -->
|
<div v-if="isUnflod" class="basic-info-title">备注信息</div>
|
<div class="basic-info-view">
|
<el-row>
|
<el-col :span="24">
|
<el-form-item label="拜访目的" prop="purpose">
|
<el-input
|
type="textarea"
|
:autosize="{ minRows: 2, maxRows: 4 }"
|
v-model="editConfig.infomation.purpose"
|
></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="24">
|
<el-form-item label="内容" prop="content">
|
<el-input
|
type="textarea"
|
:autosize="{ minRows: 2, maxRows: 4 }"
|
v-model="editConfig.infomation.content"
|
></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</div>
|
<!-- 附件信息 -->
|
<!-- <div v-if="isUnflod" class="basic-info-title">附件信息</div>
|
<div v-if="isUnflod" class="basic-info-view">
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="附件" prop="">
|
<template slot="label">
|
<div style="display: flex; float: right">
|
<div style="font-size: 16px">
|
<i class="el-icon-warning-outline" title="最多上传20个附件,最大限制5MB"></i>
|
</div>
|
<span style="margin-left: 5px">附件</span>
|
</div>
|
</template>
|
<div class="annex-view">
|
<div @click="addAnnexClick">
|
<div style="display: flex; float: right">
|
<div style="font-size: 16px"><i class="el-icon-paperclip"></i></div>
|
<span>添加</span>
|
</div>
|
</div>
|
<div class="setFormat" @click="setFormatClick">设置允许上传的文件格式</div>
|
</div>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</div> -->
|
</div>
|
<!-- 展开收起 -->
|
<div v-if="editConfig.title === '新建'" class="unflod-collapse" @click="unflodCollapseClick">
|
<div>{{ unflodCollapseStr }}</div>
|
<div v-if="isUnflod"><i class="el-icon-arrow-up"></i></div>
|
<div v-else><i class="el-icon-arrow-down"></i></div>
|
</div>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button type="primary" size="small" @click="saveClick('form')">保 存</el-button>
|
<el-button size="small" @click="editConfig.visible = false">取 消</el-button>
|
</div>
|
<!-- 选择客户 -->
|
<SelectClientDialog
|
v-if="editSelectClientConfig.editVisible"
|
:edit-common-config="editSelectClientConfig"
|
@selClient="selClient"
|
/>
|
<!-- 选择联系人 -->
|
<SelectContactDialog
|
v-if="editSelectContactConfig.editVisible"
|
:edit-common-config="editSelectContactConfig"
|
@selClient="selClient"
|
/>
|
<!-- 选择销售机会 -->
|
<SelectChanceDialog
|
v-if="editSelectChanceConfig.editVisible"
|
:edit-common-config="editSelectChanceConfig"
|
@selClient="selClient"
|
/>
|
<!-- 选择销售线索 -->
|
<SelectLeadDialog
|
v-if="editSelectLeadConfig.editVisible"
|
:edit-common-config="editSelectLeadConfig"
|
@selClient="selClient"
|
/>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import { getAllData } from "@/api/client/client"
|
import { getAddFollowRecord, getUpdateFollowRecord, getContactInfoList } from "@/api/client/followupRecords"
|
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
|
import SelectContactDialog from "@/views/other/commonDialog/SelectContactDialog"
|
import SelectChanceDialog from "@/views/other/commonDialog/SelectChanceDialog"
|
import SelectLeadDialog from "@/views/other/commonDialog/SelectLeadDialog"
|
import codeMixin from "@/components/makepager/mixin/codeMixin"
|
import { getContactList } from "@/api/client/contacts"
|
import { mapActions } from "vuex"
|
import { getSaleChanceList } from "@/api/sales/salesOpportunity"
|
import { getSalesLeadsList } from "@/api/client/salesLead"
|
|
export default {
|
name: "AddFollowupRecordsDialog",
|
mixins: [codeMixin],
|
props: {
|
editContactsConfig: {
|
type: Object,
|
default: () => {
|
return {
|
visible: false,
|
title: "新建",
|
infomation: {}
|
}
|
}
|
},
|
isDetail: {
|
type: Boolean,
|
default: false
|
}
|
},
|
components: {
|
SelectClientDialog,
|
SelectContactDialog,
|
SelectChanceDialog,
|
SelectLeadDialog
|
},
|
computed: {
|
searchCommonHeight() {
|
return this.$refs.searchCommonView.offsetHeight
|
},
|
clientList() {
|
return this.$store.state.getClientName.clientList
|
}
|
},
|
data() {
|
return {
|
refreshFlag: true,
|
dialogWidth: "50%",
|
editConfig: this.editContactsConfig,
|
rules: {
|
number: [{ required: true, validator: this.validateCheckCode, trigger: ["blur", "change"] }],
|
member_id: [{ required: true, validator: this.validateMemberId, trigger: "change" }],
|
record: [{ required: true, message: "请输入跟进记录", trigger: "blur" }],
|
client_name: [{ required: true, validator: this.checkClient, trigger: "change" }],
|
contact_name: [{ required: true, message: "请选择联系人姓名", trigger: "change" }],
|
topic: [{ required: true, message: "请输入主题", trigger: "blur" }],
|
// content: [{ required: true, message: "请输入内容", trigger: "blur" }],
|
phoneNumber: [
|
{ required: false, message: "", trigger: "blur" },
|
{ len: 11, message: "长度在11个字符", trigger: "blur" },
|
{
|
pattern: /^1(3\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\d|9[0-35-9])\d{8}$/,
|
message: "请输入正确的手机号",
|
trigger: "blur"
|
}
|
]
|
},
|
pickerOptions: {
|
disabledDate: (time) => {
|
return time.getTime() > Date.now()
|
}
|
},
|
clientStatusOptions: [], // 客户状态
|
contactInfoOptions: [], // 联系方式
|
memberOptions: [],
|
unflodCollapseStr: "收起",
|
isUnflod: true,
|
editSelectClientConfig: {
|
editVisible: false,
|
title: "",
|
infomation: {}
|
},
|
editSelectContactConfig: {
|
editVisible: false,
|
title: "",
|
infomation: {},
|
search_map: {}
|
},
|
editSelectChanceConfig: {
|
editVisible: false,
|
title: "",
|
infomation: {},
|
search_map: {}
|
},
|
editSelectLeadConfig: {
|
editVisible: false,
|
title: "",
|
infomation: {},
|
search_map: {}
|
},
|
clientId: this.editContactsConfig.infomation.client_id,
|
contactId: this.editContactsConfig.infomation.contact_id,
|
saleChanceId: this.editContactsConfig.infomation.sale_chance_id,
|
saleLeadId: this.editContactsConfig.infomation.sales_leads_id,
|
saleChancelist: [],
|
isChance: true,
|
noData: false // 是否匹配到数据了
|
}
|
},
|
created() {
|
this.getChanceList(this.editConfig.infomation.client_id)
|
if(this.editContactsConfig.title==="编辑"){
|
this.isChance=false
|
}
|
this.$store.dispatch("geClient")
|
this.getCommonData()
|
this.getContactInfoList()
|
this.formInfo()
|
if (this.editContactsConfig.title === "新建" && this.editContactsConfig.infomation?.client_name?.length > 0) {
|
this.getContactList(this.editContactsConfig.infomation)
|
}
|
},
|
watch: {
|
"editContactsConfig.visible"(val) {
|
if (val) {
|
this.formInfo()
|
}
|
}
|
},
|
methods: {
|
...mapActions(["getContactFilter", "getLeadFilter"]),
|
formInfo() {
|
this.objCode.type = "跟进记录编码"
|
this.objCode.codeStandID = ""
|
if (this.editConfig.infomation.codeStandID) {
|
this.objCode.codeStandID = this.editConfig.infomation.codeStandID
|
}
|
this.getRCodeStandardList()
|
},
|
/**
|
* 强制刷新form组件
|
* 外部更改表单值不会触发表单校验,导致即使有值夜被表单校验阻塞住
|
*/
|
refresh() {
|
this.refreshFlag = false
|
requestAnimationFrame(() => {
|
this.refreshFlag = true
|
})
|
},
|
getCommonData() {
|
getAllData().then((res) => {
|
console.log(res)
|
this.clientStatusOptions = res.data.client_status
|
this.memberOptions = res.data.member
|
if (this.editConfig.title === "新建") {
|
let username = document.cookie.replace(/(?:(?:^|.*;\s*)username\s*=\s*([^;]*).*$)|^.*$/, "$1")
|
this.memberOptions.map((item) => {
|
if (item.username == username) {
|
this.$set(this.editConfig.infomation, "member_id", item.id)
|
}
|
})
|
}
|
|
// this.dataProcess()
|
})
|
},
|
async getContactInfoList() {
|
await getContactInfoList().then((res) => {
|
if (res.code === 200) {
|
this.contactInfoOptions = res.data.list
|
}
|
})
|
},
|
dataProcess() {
|
this.saleChancelist.map((item) => {
|
if (this.saleChanceId === item.id) {
|
this.editConfig.infomation.sale_chance_name = item.name
|
}
|
})
|
this.saleLeadlist.map((item) => {
|
if (this.saleLeadId === item.id) {
|
this.editConfig.infomation.sales_leads_name = item.name
|
}
|
})
|
},
|
handleClose() {
|
this.editConfig.visible = false
|
},
|
// 保存
|
saveClick(formName) {
|
this.$refs[formName].validate((valid) => {
|
if (valid) {
|
const params = this.saveParams()
|
if (this.editConfig.title === "新建") {
|
getAddFollowRecord(params).then((res) => {
|
this.editConfig.visible = false
|
if (res.code === 200) {
|
this.$message.success("添加成功")
|
this.$parent.getData()
|
}
|
})
|
} else {
|
getUpdateFollowRecord(params).then((res) => {
|
this.editConfig.visible = false
|
if (res.code === 200) {
|
this.$message.success("编辑成功")
|
this.$parent.getData()
|
}
|
})
|
}
|
} else {
|
console.log("error submit")
|
return false
|
}
|
})
|
},
|
saveParams() {
|
let data = this.editConfig.infomation
|
let follow_record = {
|
follow_record: {
|
client_id: this.clientId || 0,
|
client_status_id: data.client_status_id || null,
|
contact_id: this.contactId || 0,
|
contact_information_id: data.contact_information_id || null,
|
content: data.content || "",
|
follow_time: data.follow_time || "",
|
member_id: data.member_id || 0,
|
next_follow_time: data.next_follow_time || "",
|
number: data.number || "",
|
purpose: data.purpose || "",
|
record: data.record || "",
|
sale_chance_id: this.saleChanceId || 0,
|
sales_leads_id: this.saleLeadId || 0,
|
topic: data.topic || "",
|
codeStandID: data.ID
|
}
|
}
|
let params = {}
|
if (this.editConfig.title === "新建") {
|
params = { ...follow_record }
|
} else {
|
params = { ...follow_record, id: data.id || 0 }
|
}
|
return params
|
},
|
// 获取销售机会
|
getChanceList(id) {
|
let params={}
|
if(id){
|
params={
|
page: 0,
|
pageSize: 0,
|
}
|
params.search_map={
|
client_id: id
|
}
|
}else{
|
params={
|
page: 0,
|
pageSize: 0,
|
}
|
}
|
getSaleChanceList(params).then((res) => {
|
if (res.code == 200) {
|
this.saleChancelist = res.data.list
|
}
|
})
|
},
|
// 选择客户相关方法
|
querySearchAsync(queryString, cb, value) {
|
var restaurants = []
|
if (value === "client") {
|
restaurants = this.clientList
|
} else if (value === "contact") {
|
restaurants = this.contactNamelist
|
} else if (value === "chance") {
|
restaurants = this.saleChancelist
|
} else {
|
restaurants = this.saleLeadlist
|
}
|
var results = queryString ? restaurants?.filter(this.createStateFilter(queryString)) : restaurants
|
console.log(results)
|
this.noData = false
|
if (results == undefined || results?.length <= 0) {
|
results = [{ name: "无匹配数据" }]
|
this.noData = true
|
}
|
cb(results)
|
},
|
createStateFilter(queryString) {
|
return (state) => {
|
return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
|
}
|
},
|
// 联系人列表
|
async getContactList(item) {
|
await getContactList({
|
search_map: {
|
client_id: item.id
|
},
|
page: 1,
|
pageSize: 15
|
}).then((res) => {
|
if (res.code === 200) {
|
console.log(res, "联系人")
|
this.contactNamelist = res.data.list
|
}
|
})
|
},
|
// 销售线索
|
async getSalesLeadsList(item) {
|
await getSalesLeadsList({
|
search_map: {
|
name: item.name
|
}
|
}).then((res) => {
|
if (res.code === 200) {
|
this.saleLeadlist = res.data.list
|
}
|
})
|
},
|
async handleSelectClient(value, item) {
|
if (value === "client") {
|
this.editConfig.infomation.contact_name = ""
|
this.editConfig.infomation.sales_leads_name = ""
|
this.editConfig.infomation.sale_chance_name = ""
|
this.editSelectContactConfig.search_map.client_id = item.id
|
this.editSelectChanceConfig.search_map.client_id = item.id
|
this.editSelectLeadConfig.search_map.name = item.name
|
this.getContactList(item)
|
this.getSalesLeadsList(item)
|
this.clientId = item.id
|
this.editConfig.infomation.client_name = item.name
|
this.isChance = false
|
this.getChanceList(item.id)
|
} else if (value === "contact") {
|
this.contactId = item.id
|
this.editConfig.infomation.contact_name = item.name
|
} else if (value === "chance") {
|
this.saleChanceId = item.id
|
this.editConfig.infomation.sale_chance_name = item.name
|
this.editConfig.infomation.client_name = item.client.name
|
this.clientId = item.client.id
|
this.getChanceList(this.clientId)
|
} else {
|
this.saleLeadId = item.id
|
this.editConfig.infomation.sales_leads_name = item.name
|
}
|
},
|
selClientClick(value) {
|
if (value === "client") {
|
this.editSelectClientConfig.editVisible = true
|
} else if (value === "contact") {
|
this.editSelectContactConfig.clientId = this.clientId || 0
|
this.editSelectContactConfig.editVisible = true
|
} else if (value === "chance") {
|
this.editSelectChanceConfig.clientId = this.clientId
|
this.editSelectChanceConfig.editVisible = true
|
} else {
|
this.editSelectLeadConfig.editVisible = true
|
}
|
},
|
selClient(row, value) {
|
if (value === "contact") {
|
this.editConfig.infomation.contact_name = row.name
|
this.contactId = row.id
|
} else if (value === "client") {
|
this.editConfig.infomation.contact_name = ""
|
this.editConfig.infomation.sales_leads_name = ""
|
this.editConfig.infomation.sale_chance_name = ""
|
this.editSelectContactConfig.search_map.client_id = row.id
|
this.editSelectChanceConfig.search_map.client_id = row.id
|
this.editSelectLeadConfig.search_map.name = row.name
|
this.clientId = row.id
|
this.editConfig.infomation.client_name = row.name
|
this.isChance = false
|
this.getContactList(row)
|
this.getSalesLeadsList(row)
|
this.getChanceList(this.clientId)
|
} else if (value === "chance") {
|
this.editConfig.infomation.sale_chance_name = row.name
|
this.saleChanceId = row.id
|
this.editConfig.infomation.client_name = row.client.name
|
this.clientId = row.client.id
|
this.getChanceList(this.clientId)
|
} else {
|
this.editConfig.infomation.sales_leads_name = row.name
|
this.saleLeadId = row.id
|
}
|
},
|
// 清除已选择用户
|
clearupClient(value) {
|
if (value === "client") {
|
this.editConfig.infomation.contact_name = ""
|
this.editConfig.infomation.sales_leads_name = ""
|
this.editConfig.infomation.sale_chance_name = ""
|
this.editConfig.infomation.client_name = ""
|
this.clientId = 0
|
this.isChance = true
|
this.editConfig.infomation.sale_chance_name = ""
|
this.saleChanceId = 0
|
} else if (value === "contact") {
|
this.editConfig.infomation.contact_name = ""
|
this.contactId = 0
|
} else if (value === "chance") {
|
this.editConfig.infomation.sale_chance_name = ""
|
this.saleChanceId = 0
|
} else {
|
this.editConfig.infomation.sales_leads_name = ""
|
this.saleLeadId = 0
|
}
|
this.refresh()
|
},
|
// 添加附件
|
addAnnexClick() {},
|
// 设置允许上传文件格式
|
setFormatClick() {},
|
// 展开收起
|
unflodCollapseClick() {
|
if (this.unflodCollapseStr === "收起") {
|
this.unflodCollapseStr = "展开更多栏目"
|
this.isUnflod = false
|
} else {
|
this.unflodCollapseStr = "收起"
|
this.isUnflod = true
|
}
|
},
|
// 客户名称单独校验
|
checkClient(rule, value, callback) {
|
if (this.editConfig.infomation.client_name && this.editConfig.infomation.client_name.length > 0) {
|
callback()
|
} else {
|
callback(new Error("请选择客户名称"))
|
}
|
},
|
// 阻止可点击事件
|
stopClick() {},
|
// 销售负责人自定义校验规则
|
validateMemberId(rule, value, callback) {
|
if (this.editConfig.infomation?.member_id > 0) {
|
callback()
|
} else {
|
callback(new Error("请输入负责人"))
|
}
|
}
|
}
|
}
|
</script>
|
|
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
<style lang="scss" scoped>
|
::v-deep {
|
.iframe-dialog .el-dialog__body {
|
.basic-info {
|
.basic-info-title {
|
background-color: #f4f8fe;
|
padding-left: 10px;
|
font-size: 15px;
|
font-weight: bold;
|
color: #666;
|
height: 42px;
|
line-height: 42px;
|
}
|
.basic-info-view {
|
margin-top: 10px;
|
padding-right: 40px;
|
.custom-name,
|
.common-select {
|
display: flex;
|
.common-select-btn {
|
margin-left: 5px;
|
font-size: 18px;
|
cursor: pointer;
|
}
|
}
|
.common-select {
|
.common-select-sel {
|
width: 270px;
|
}
|
}
|
}
|
.annex-view {
|
display: flex;
|
color: #6166d3;
|
.setFormat {
|
margin-left: 10px;
|
}
|
}
|
}
|
.unflod-collapse {
|
display: flex;
|
height: 30px;
|
justify-content: center;
|
align-items: center;
|
color: #6166d3;
|
}
|
.dialog-footer {
|
background-color: #f5f5f5;
|
height: 55px;
|
line-height: 55px;
|
}
|
}
|
}
|
</style>
|