Commit 1176053a authored by Kimber's avatar Kimber

'update'

parent 026b8f52
...@@ -135,3 +135,12 @@ export function technicalDirector() { ...@@ -135,3 +135,12 @@ export function technicalDirector() {
} }
// 导出Excel
export function exportExcel(params) {
return request({
url: '/api/customer/exportExcel',
method: 'get',
//responseType:'blob',
params
})
}
\ No newline at end of file
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<el-input <el-input
type="number" type="number"
v-model="tel" v-model="tel"
style="width: 180px; margin-left: 20px" style="width:130px; margin-left: 10px"
placeholder="请输入电话" placeholder="请输入电话"
clearable clearable
/> />
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
filterable filterable
clearable clearable
allow-create allow-create
style="margin-left: 30px;" style="width:180px; margin-left: 15px;"
> >
<el-option <el-option
v-for="item in typeManage.dropData" v-for="item in typeManage.dropData"
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<el-input <el-input
v-model="salesName" v-model="salesName"
type="text" type="text"
style="width: 180px; margin-left: 20px" style="width:150px; margin-left: 15px"
placeholder="请输入销售人员" placeholder="请输入销售人员"
clearable clearable
/> />
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
filterable filterable
clearable clearable
allow-create allow-create
style="margin-left: 30px;" style="width:160px;margin-left: 15px;"
> >
<el-option <el-option
v-for="item in validornotData" v-for="item in validornotData"
...@@ -45,9 +45,19 @@ ...@@ -45,9 +45,19 @@
:value="item.value" :value="item.value"
/> />
</el-select> </el-select>
<el-select
v-model="dealStatus"
placeholder="是否成交"
filterable
clearable
allow-create
style="width:120px;margin-left: 15px;"
>
<el-option v-for="item in Dict.dealStatus" :label="item.name" :value="item.value"/>
</el-select>
<el-date-picker <el-date-picker
:default-time="['00:00:00', '23:59:59']" :default-time="['00:00:00', '23:59:59']"
style="width: 380px !important;margin-left: 30px;" style="width: 200px !important;margin-left: 15px;"
v-model="searchTime" v-model="searchTime"
type="datetimerange" type="datetimerange"
range-separator="至" range-separator="至"
...@@ -57,16 +67,22 @@ ...@@ -57,16 +67,22 @@
/> />
<el-button <el-button
type="success" type="success"
style="margin-left: 30px" style="margin-left: 15px"
icon="el-icon-search" icon="el-icon-search"
@click="toSearch" @click="toSearch"
>搜索</el-button >搜索</el-button
> >
<el-button type="primary" <el-button type="primary"
style="margin-left: 30px" style="margin-left: 15px"
icon="el-icon-circle-plus" icon="el-icon-circle-plus"
@click="newlyAdd('add')"> @click="newlyAdd('add')">
新增</el-button> 新增</el-button>
<el-button type="warning"
style="margin-left: 15px"
icon="el-icon-circle-plus"
@click="reqExportExcel()">
导出</el-button>
</div> </div>
<!-- 获取全部 --> <!-- 获取全部 -->
<div class="table-wrapper"> <div class="table-wrapper">
...@@ -76,7 +92,6 @@ ...@@ -76,7 +92,6 @@
> >
<el-table-column type="index" label="序号" width="60" /> <el-table-column type="index" label="序号" width="60" />
<el-table-column prop="name" label="姓名" width="120" /> <el-table-column prop="name" label="姓名" width="120" />
<el-table-column prop="tel" label="电话" width="140" />
<el-table-column prop="giveUp" label="是否废弃" width="130"> <el-table-column prop="giveUp" label="是否废弃" width="130">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.giveUp === 0" style="color: #67c23a;">有效</span> <span v-if="scope.row.giveUp === 0" style="color: #67c23a;">有效</span>
...@@ -92,11 +107,17 @@ ...@@ -92,11 +107,17 @@
<span v-else style="color: #67c23a;">已成交</span> <span v-else style="color: #67c23a;">已成交</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="itemCompletedQuantity" label="成交数量"/>
<el-table-column prop="classidStr" label="信息分类" width="150" /> <el-table-column prop="classidStr" label="信息分类" width="150" />
<el-table-column prop="inforSourceVo" label="客户来源" width="150" /> <el-table-column prop="inforSourceVo" label="客户来源" width="150" />
<el-table-column prop="custLevel" label="客户级别" width="150" /> <el-table-column prop="custLevel" label="客户级别" width="150" />
<el-table-column prop="custType" label="客户类型" width="150" /> <el-table-column prop="custType" label="客户类型" width="150" />
<el-table-column label="操作" fixed="right" width="220"> <el-table-column prop="tel" label="电话" width="140" />
<el-table-column prop="custAddr" label="地址" width="140" />
<el-table-column prop="qqnub" label="QQ" width="140" />
<el-table-column prop="weixin" label="微信" width="140" />
<el-table-column prop="priorSaleidStr" label="原销售" width="100" />
<el-table-column label="操作" fixed="right" width="280">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
...@@ -112,6 +133,14 @@ ...@@ -112,6 +133,14 @@
@click="newlyAdd('edit', $event, scope.$index, scope.row)" @click="newlyAdd('edit', $event, scope.$index, scope.row)"
>编辑</el-button >编辑</el-button
> >
<el-button
size="mini"
type="warning"
icon="el-icon-edit"
:disabled="!scope.row.giveUp"
@click="restartConfig(scope.row)"
>重分配</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -275,6 +304,9 @@ ...@@ -275,6 +304,9 @@
<el-input v-model="addEntry.entryName" type="text" clearable <el-input v-model="addEntry.entryName" type="text" clearable
style="width: 200px !important;"/> style="width: 200px !important;"/>
</el-form-item> </el-form-item>
<el-form-item prop="erpOrderNo" label="ERP单号" style="margin-left: 30px;">
<el-input v-model="addEntry.erpOrderNo" type="text" clearable style="width:200px !important;" placeholder="请输入ERP单号"/>
</el-form-item>
<el-form-item label="需求描述:" autosize prop="specific" <el-form-item label="需求描述:" autosize prop="specific"
style="margin-left: 30px;margin-top:10px;"> style="margin-left: 30px;margin-top:10px;">
<el-input type="textarea" <el-input type="textarea"
...@@ -296,16 +328,14 @@ ...@@ -296,16 +328,14 @@
:rules="renewrules" :rules="renewrules"
> >
<el-form-item prop="entryName" label="项目名称" style="margin-left: 30px;"> <el-form-item prop="entryName" label="项目名称" style="margin-left: 30px;">
<el-input v-model="renewEntry.entryName" type="text" clearable <el-input v-model="renewEntry.entryName" type="text" clearable style="width: 200px !important;"/>
style="width: 200px !important;"/> </el-form-item>
<el-form-item prop="erpOrderNo" label="ERP单号" style="margin-left: 30px;">
<el-input v-model="renewEntry.erpOrderNo" type="text" clearable style="width:200px !important;" placeholder="请输入ERP单号"/>
</el-form-item> </el-form-item>
<el-form-item label="需求描述:" autosize prop="specific" <el-form-item label="需求描述:" autosize prop="specific"
style="margin-left: 30px;margin-top:10px;"> style="margin-left: 30px;margin-top:10px;">
<el-input type="textarea" <el-input type="textarea" v-model="renewEntry.specific" :rows="5" style="width:50%!important;" />
v-model="renewEntry.specific"
:rows="5"
style="width:50%!important;">
</el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer"> <div slot="footer">
...@@ -731,7 +761,7 @@ ...@@ -731,7 +761,7 @@
:rules="releaserules" :rules="releaserules"
> >
<el-form-item prop="followStatus" label="跟进状态:" style="margin-left: 30px;"> <el-form-item prop="followStatus" label="跟进状态:" style="margin-left: 30px;">
<el-select v-model="flowup.from.followStatus" clearable placeholder="请选择跟进状态"> <el-select v-model="flowup.from.followStatus" clearable placeholder="请选择跟进状态" @change="isErpOnchange">
<el-option <el-option
v-for="item in Dict.followUpList" v-for="item in Dict.followUpList"
:key="item.value" :key="item.value"
...@@ -742,6 +772,9 @@ ...@@ -742,6 +772,9 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="erpOrderNo" label="ERP单号" style="margin-left:30px;" v-if="flowup.isErpOrderNo">
<el-input v-model="flowup.from.erpOrderNo" style="width:200px;" type="text" placeholder="请输入ERP单号"/>
</el-form-item>
<el-form-item prop="remindTime" label="下次提醒时间:" style="margin-left: 30px;"> <el-form-item prop="remindTime" label="下次提醒时间:" style="margin-left: 30px;">
<el-date-picker <el-date-picker
v-model="flowup.from.remindTime" v-model="flowup.from.remindTime"
...@@ -750,8 +783,7 @@ ...@@ -750,8 +783,7 @@
placeholder="选择日期"> placeholder="选择日期">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="跟进结果:" autosize prop="followResult" <el-form-item label="跟进结果:" autosize prop="followResult" style="margin-left: 30px;margin-top:10px;">
style="margin-left: 30px;margin-top:10px;">
<el-input type="textarea" <el-input type="textarea"
v-model="flowup.from.followResult" v-model="flowup.from.followResult"
:rows="5" :rows="5"
...@@ -759,11 +791,7 @@ ...@@ -759,11 +791,7 @@
style="width: 80%!important;"> style="width: 80%!important;">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item prop="followFiles" label="文件名称" :label-width="'120px'">
prop="followFiles"
label="文件名称"
:label-width="'120px'"
>
<div v-if="showPrise">{{this.flowup.from.followFiles}}</div> <div v-if="showPrise">{{this.flowup.from.followFiles}}</div>
<el-upload <el-upload
class="upload" class="upload"
...@@ -829,7 +857,7 @@ ...@@ -829,7 +857,7 @@
import axios from "axios"; import axios from "axios";
import { import {
getAllCategory,getAllcustomer,addcustomer,getAllProvince,allData,addPop,toUpdate, getAllCategory,getAllcustomer,addcustomer,getAllProvince,allData,addPop,toUpdate,
editcustomer,getCode,releaseFollowuprecord,followupData,searchContent,deleteFollowuprecord,modifyFollowuprecord,selectvalue,read,technicalDirector editcustomer,getCode,releaseFollowuprecord,followupData,searchContent,deleteFollowuprecord,modifyFollowuprecord,selectvalue,read,technicalDirector, exportExcel
} from "@/api/customer.js"; } from "@/api/customer.js";
import {getAllsupport,deliverList,changeMan,assignPresales,findWhereDeal,bandonmentRequest} from "@/api/newCustomer.js"; import {getAllsupport,deliverList,changeMan,assignPresales,findWhereDeal,bandonmentRequest} from "@/api/newCustomer.js";
import { parseTime } from "../../utils"; import { parseTime } from "../../utils";
...@@ -863,6 +891,7 @@ export default { ...@@ -863,6 +891,7 @@ export default {
//新增项目新增 //新增项目新增
addEntry:{ addEntry:{
entryName:'',//项目名称 entryName:'',//项目名称
erpOrderNo:'',//erp单号
specific:'',//需求描述 specific:'',//需求描述
clientId:'',//客户id clientId:'',//客户id
flag:1 flag:1
...@@ -870,6 +899,7 @@ export default { ...@@ -870,6 +899,7 @@ export default {
renewEntry:{ renewEntry:{
entryName:'',//项目名称 entryName:'',//项目名称
erpOrderNo:'',//erp单号
specific:'',//需求描述 specific:'',//需求描述
clientId:''//客户id clientId:''//客户id
}, },
...@@ -901,6 +931,7 @@ export default { ...@@ -901,6 +931,7 @@ export default {
giveUp:"", giveUp:"",
// 是否有效 // 是否有效
giveorValid:"", giveorValid:"",
dealStatus:"", // 是否成交
// 新增 // 新增
addFormInfo:{ addFormInfo:{
title:'新增客户', title:'新增客户',
...@@ -1038,6 +1069,7 @@ export default { ...@@ -1038,6 +1069,7 @@ export default {
record:'', record:'',
formItem:{}, formItem:{},
timeDifference:{}, timeDifference:{},
isErpOrderNo:false,
}, },
// 跟进状态全部表格返显 // 跟进状态全部表格返显
flowupManage:{ flowupManage:{
...@@ -1118,6 +1150,7 @@ export default { ...@@ -1118,6 +1150,7 @@ export default {
releaserules:{ releaserules:{
followStatus: [{ required: true, message: "请选择跟进状态", trigger: "blur"}], followStatus: [{ required: true, message: "请选择跟进状态", trigger: "blur"}],
//erpOrderNo: [{ required: true, message: "请选择ERP单号", trigger: "blur"}],
// followFiles: [{ required: true, message: "请上传文件", trigger: "blur"}], // followFiles: [{ required: true, message: "请上传文件", trigger: "blur"}],
remindTime: [{ required: true, message: "请选择时间", trigger: "blur"}], remindTime: [{ required: true, message: "请选择时间", trigger: "blur"}],
followResult: [{ required: true, message: "请输入跟进结果", trigger: "blur"}], followResult: [{ required: true, message: "请输入跟进结果", trigger: "blur"}],
...@@ -1130,8 +1163,7 @@ export default { ...@@ -1130,8 +1163,7 @@ export default {
}, },
bandonmentrules:{ bandonmentrules:{
reason: [{ required: true, message: "请输入废弃原因", trigger: "change"}], reason: [{ required: true, message: "请输入废弃原因", trigger: "change"}],
} },
}; };
}, },
// 售前技术支持下拉框设置默认选项 // 售前技术支持下拉框设置默认选项
...@@ -1199,7 +1231,7 @@ export default { ...@@ -1199,7 +1231,7 @@ export default {
page:typeM.page, page:typeM.page,
pageSize:typeM.size, pageSize:typeM.size,
}; };
getAllcustomer(params).then((res) => { searchContent(params).then((res) => {
var records = res.object.records || []; var records = res.object.records || [];
typeM.tableData = records; typeM.tableData = records;
typeM.total = res.object.total; typeM.total = res.object.total;
...@@ -1209,19 +1241,21 @@ export default { ...@@ -1209,19 +1241,21 @@ export default {
// 每页多少条 // 每页多少条
this.typeManage.size =val ; this.typeManage.size =val ;
// this.allcustomer() // this.allcustomer()
this.toSearch(); this.loadData(this.typeManage.page);
}, },
handleCurrentChange(val) { handleCurrentChange(val) {
// 当前是多少页 // 当前是多少页
this.typeManage.page = val;
// this.allcustomer() // this.allcustomer()
this.toSearch(); this.loadData(val);
}, },
//2.根据名称获取信息分类 //2.根据名称获取信息分类
toSearch() { toSearch(page) {
this.loadData();
},
loadData(page){
var typeM = this.typeManage; var typeM = this.typeManage;
var param = { var param = {
page: this.typeManage.page, page: page || 0,
pageSize: this.typeManage.size, pageSize: this.typeManage.size,
// giveUp:this.giveorValid, // giveUp:this.giveorValid,
}; };
...@@ -1229,13 +1263,14 @@ export default { ...@@ -1229,13 +1263,14 @@ export default {
this.tel && (param.tel = this.tel); this.tel && (param.tel = this.tel);
this.salesName && (param.salesName = this.salesName); this.salesName && (param.salesName = this.salesName);
this.className && (param.className = this.className); this.className && (param.className = this.className);
console.log(param,"________") this.dealStatus && (param.dealStatus = this.dealStatus);
// 时间 // 时间
if (this.searchTime instanceof Array) { if (this.searchTime instanceof Array) {
param.startTime = parseTime(new Date(this.searchTime[0])); param.startTime = parseTime(new Date(this.searchTime[0]));
param.endTime = parseTime(new Date(this.searchTime[1])); param.endTime = parseTime(new Date(this.searchTime[1]));
} }
searchContent(param).then((res) => { searchContent(param).then((res) => {
//getAllcustomer(param).then((res) => {
var selectlist = res.object.records || []; var selectlist = res.object.records || [];
typeM.tableData = selectlist; typeM.tableData = selectlist;
typeM.total = res.object.total; typeM.total = res.object.total;
...@@ -1410,6 +1445,7 @@ export default { ...@@ -1410,6 +1445,7 @@ export default {
if (valid) { if (valid) {
var params = { var params = {
project_name:this.addEntry.entryName, project_name:this.addEntry.entryName,
erpOrderNo:this.addEntry.erpOrderNo,
project_remarks:this.addEntry.specific, project_remarks:this.addEntry.specific,
customerid:this.addEntry.clientId+'' customerid:this.addEntry.clientId+''
}; };
...@@ -1436,6 +1472,7 @@ export default { ...@@ -1436,6 +1472,7 @@ export default {
this.renewDialog = true; this.renewDialog = true;
this.renewEntry.clientId=item.id//客户id this.renewEntry.clientId=item.id//客户id
this.renewEntry.entryName=item.projectName//项目名称 this.renewEntry.entryName=item.projectName//项目名称
this.renewEntry.erpOrderNo=item.erpOrderNo//erp
this.renewEntry.specific=item.projectRemarks//需求描述 this.renewEntry.specific=item.projectRemarks//需求描述
}, },
renewUpate(){ renewUpate(){
...@@ -1443,6 +1480,7 @@ export default { ...@@ -1443,6 +1480,7 @@ export default {
if (valid) { if (valid) {
var params = { var params = {
project_name:this.renewEntry.entryName, project_name:this.renewEntry.entryName,
erpOrderNo:this.renewEntry.erpOrderNo,
project_remarks:this.renewEntry.specific, project_remarks:this.renewEntry.specific,
id:this.renewEntry.clientId id:this.renewEntry.clientId
}; };
...@@ -1549,7 +1587,6 @@ export default { ...@@ -1549,7 +1587,6 @@ export default {
// 编辑跟踪记录 // 编辑跟踪记录
modifyRelease(type, item){ modifyRelease(type, item){
console.log("dianle",this.flowup)
if(this.flowup.from.projectId){ if(this.flowup.from.projectId){
this.flowup.reqType = type; this.flowup.reqType = type;
for(var i=0; i<this.Dict.followUpList.length;i++){ for(var i=0; i<this.Dict.followUpList.length;i++){
...@@ -1572,14 +1609,15 @@ export default { ...@@ -1572,14 +1609,15 @@ export default {
// 清空文件 // 清空文件
this.$refs.fileRef.clearFiles() this.$refs.fileRef.clearFiles()
}); });
this.flowup.isErpOrderNo = false;
}else{ }else{
this.flowup.title = '编辑客户信息'; this.flowup.title = '编辑客户信息';
this.modifyreleaseDialog=true; this.modifyreleaseDialog=true;
this.flowup.from = Object.assign({}, item); this.flowup.from = Object.assign({}, item);
this.showPrise=true this.showPrise=true
this.flowup.from.ifFileExist = 0; this.flowup.from.ifFileExist = 0;
console.log(this.flowup.from,"编辑跟踪记录-----") this.flowup.isErpOrderNo = (this.flowup.from.followStatus === 3);
console.log(this.flowup.from, "编辑跟踪记录-----");
} }
} }
else{ else{
...@@ -1598,6 +1636,7 @@ export default { ...@@ -1598,6 +1636,7 @@ export default {
if (valid) { if (valid) {
var params = new FormData(); var params = new FormData();
params.append('projectId', this.flowup.from.projectId+'');//项目id params.append('projectId', this.flowup.from.projectId+'');//项目id
this.flowup.from.erpOrderNo && params.append('erpOrderNo', this.flowup.from.erpOrderNo);
if(!this.flowup.from.followFiles){ if(!this.flowup.from.followFiles){
delete params.followFiles delete params.followFiles
}else{ }else{
...@@ -1611,6 +1650,8 @@ export default { ...@@ -1611,6 +1650,8 @@ export default {
new Date(this.flowup.from.remindTime) new Date(this.flowup.from.remindTime)
); );
params.append('remindTime', this.flowup.from.remindTime);//时间 params.append('remindTime', this.flowup.from.remindTime);//时间
releaseFollowuprecord(params).then((res) => { releaseFollowuprecord(params).then((res) => {
this.modifyreleaseDialog= false; this.modifyreleaseDialog= false;
this.followDisplay(); this.followDisplay();
...@@ -1626,6 +1667,7 @@ export default { ...@@ -1626,6 +1667,7 @@ export default {
}else{ }else{
var params = new FormData(); var params = new FormData();
params.append('id', this.flowup.from.id+'');//项目id params.append('id', this.flowup.from.id+'');//项目id
this.flowup.from.erpOrderNo && params.append('erpOrderNo', this.flowup.from.erpOrderNo);
if(this.flowup.from.ifFileExist===0){ if(this.flowup.from.ifFileExist===0){
delete params.followFiles delete params.followFiles
}else{ }else{
...@@ -1743,6 +1785,7 @@ export default { ...@@ -1743,6 +1785,7 @@ export default {
deliverUpate(){ deliverUpate(){
this.$refs.handpeopleRef.validate((valid) => { this.$refs.handpeopleRef.validate((valid) => {
if (valid) { if (valid) {
console.log('validate ________________ ', this.addEntry);
var params = { var params = {
id:this.addEntry.clientId, id:this.addEntry.clientId,
newUserId:this.salesPersonnelfrom.changesalesman, newUserId:this.salesPersonnelfrom.changesalesman,
...@@ -1859,9 +1902,69 @@ export default { ...@@ -1859,9 +1902,69 @@ export default {
duration: 3500 duration: 3500
}); });
} }
}
}, },
reqExportExcel(){
var param = {
tel:this.tel,
className:this.className,
salesName:this.salesName,
dealStatus:this.dealStatus,
giveUp:this.giveUp,
page:this.typeManage.page,
pageSize:this.typeManage.size,
};
// 时间
if (this.searchTime instanceof Array) {
param.startTime = parseTime(new Date(this.searchTime[0]));
param.endTime = parseTime(new Date(this.searchTime[1]));
}
exportExcel(param).then((res) => {
if(res.code === 200){
window.open('oa.gemho.cn:8004/customer_follow_form/'+res.object);
}else{
this.$message.error("导出异常!");
}; };
/* var downloadFile = function(obj, name, suffix){
var url = window.URL.createObjectURL(new Blob([obj]));
var link = document.createElement('a');
link.style.display = 'none';
link.href = url;
var fileName = name + '.' + suffix;
link.setAttribute('download', fileName);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
};
var name = '客户信息管理' + new Date().getTime();
downloadFile(res, name, 'xlsx') */
});
},
// 重新分配
restartConfig(row){
this.addEntry.clientId = row.id;
/* var params = {
id:this.addEntry.clientId,
newUserId:this.salesPersonnelfrom.changesalesman,
}; */
console.log('row ________________ ', row, this.addEntry);
this.handoverDialog=true
},
isErpOnchange(e){
this.flowup.isErpOrderNo = (e === 3)
console.log('isErpOnchange ________________ ', e);
},
},
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.search-wrapper { .search-wrapper {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment