Commit 985684aa authored by liudong1993's avatar liudong1993

Merge branch 'master' of http://gitlab.oytour.com/huaguohao/crm

parents 7c6628d4 578ffd59
...@@ -70,10 +70,13 @@ export default { ...@@ -70,10 +70,13 @@ export default {
@import url("//at.alicdn.com/t/font_1627123_grz80mbm3sv.css"); @import url("//at.alicdn.com/t/font_1627123_grz80mbm3sv.css");
/* @import './assets/css/common.css'; */ /* @import './assets/css/common.css'; */
@font-face { @font-face {
font-family: 'iconfont'; /* Project id 1627123 */ font-family: "iconfont"; /* Project id 1627123 */
src: url('//at.alicdn.com/t/font_1627123_zynqp2as0d.woff2?t=1652257333900') format('woff2'), src: url("//at.alicdn.com/t/font_1627123_zynqp2as0d.woff2?t=1652257333900")
url('//at.alicdn.com/t/font_1627123_zynqp2as0d.woff?t=1652257333900') format('woff'), format("woff2"),
url('//at.alicdn.com/t/font_1627123_zynqp2as0d.ttf?t=1652257333900') format('truetype'); url("//at.alicdn.com/t/font_1627123_zynqp2as0d.woff?t=1652257333900")
format("woff"),
url("//at.alicdn.com/t/font_1627123_zynqp2as0d.ttf?t=1652257333900")
format("truetype");
} }
@import "./assets/css/init.css"; @import "./assets/css/init.css";
body, body,
...@@ -92,7 +95,15 @@ html { ...@@ -92,7 +95,15 @@ html {
.el-scrollbar { .el-scrollbar {
height: 100%; height: 100%;
} }
.hide-tabs-content .el-tabs__header {
margin: 0 !important;
}
.hide-tabs-content .el-tabs__content {
display: none !important;
}
.hide-tabs-content .el-tabs__nav-wrap::after {
background: none !important;
}
.el-scrollbar__wrap { .el-scrollbar__wrap {
overflow: auto !important; overflow: auto !important;
width: 100%; width: 100%;
......
...@@ -1104,15 +1104,7 @@ export default { ...@@ -1104,15 +1104,7 @@ export default {
.loudou-card .el-card__header { .loudou-card .el-card__header {
border: none; border: none;
} }
.hide-tabs-content .el-tabs__header {
margin: 0 !important;
}
.hide-tabs-content .el-tabs__content {
display: none !important;
}
.hide-tabs-content .el-tabs__nav-wrap::after {
background: none !important;
}
.hide_input_time { .hide_input_time {
position: relative !important; position: relative !important;
} }
......
<style> <style>
@import '../../assets/css/customerManage.css'; @import "../../assets/css/customerManage.css";
.el-table__fixed-body-wrapper table { .el-table__fixed-body-wrapper table {
padding-bottom: 8px !important; padding-bottom: 8px !important;
} }
.clueTitle { .clueTitle {
padding: 20px 20px 0 20px; padding: 20px 20px 0 20px;
} }
</style> </style>
<template> <template>
<div class="customerManage"> <div class="customerManage" style="display:flex;flex-direction:column;height:100%;">
<div class="tools"> <div class="tools">
<div class="tools-item"> <div class="tools-item">
<h1 :class="isDrawer?'clueTitle':''">线索管理</h1> <h1 :class="isDrawer?'clueTitle':''" v-if="title==''">线索管理</h1>
<el-tag class="f12" size="medium" style="margin-top:10px;margin-left:10px;" v-else>{{title}}</el-tag>
</div> </div>
<template v-if="!isDrawer"> <template v-if="!isDrawer">
<div style="width: 340px;"> <div style="width: 340px;">
...@@ -113,13 +114,13 @@ ...@@ -113,13 +114,13 @@
</ul> </ul>
</div> </div>
</div> </div>
<div class="page-content"> <div class="page-content" style="flex:1;">
<el-table v-if="loading" v-loading="true" :data="[]"> <el-table v-if="loading" v-loading="true" :data="[]">
<el-table-column v-for="(item, index) in queryType2" :key="index" :label="item.label"> <el-table-column v-for="(item, index) in queryType2" :key="index" :label="item.label">
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-table v-if="!loading" ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%" <el-table v-if="!loading" ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%"
:height="sceneList.length > 0 ? '600' : '660'" border row-class-name="font-size-12" height="100%" border row-class-name="font-size-12"
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange">
<el-table-column v-if="!isDrawer" fixed type="selection" width="40"></el-table-column> <el-table-column v-if="!isDrawer" fixed type="selection" width="40"></el-table-column>
<el-table-column prop="ClueState" label="线索状态" show-overflow-tooltip width="80"> <el-table-column prop="ClueState" label="线索状态" show-overflow-tooltip width="80">
...@@ -254,13 +255,13 @@ ...@@ -254,13 +255,13 @@
</div> </div>
</template> </template>
<script> <script>
import mySelect from "../dialogModel/select"; import mySelect from "../dialogModel/select";
import customerInfoBox from "./customerInfoBox"; import customerInfoBox from "./customerInfoBox";
import customerDialogBox from "./customerDialogBox"; import customerDialogBox from "./customerDialogBox";
import guestDialogBox from "./guestDialogBox"; import guestDialogBox from "./guestDialogBox";
import guestInfoBox from "./guestInfoBox"; import guestInfoBox from "./guestInfoBox";
import importDialogBox from "./importDialogBox"; import importDialogBox from "./importDialogBox";
export default { export default {
props: { props: {
isDrawer: { isDrawer: {
type: Boolean, type: Boolean,
...@@ -268,17 +269,21 @@ ...@@ -268,17 +269,21 @@
}, },
queryTime: { queryTime: {
type: Object, type: Object,
default: null default: null,
} },
title: {
type: String,
default: "",
},
}, },
watch: { watch: {
queryTime: { queryTime: {
handler(val, oldVal) { handler(val, oldVal) {
this.queryTime = val; this.queryTime = val;
this.getList() this.getList();
}, },
deep: true, deep: true,
} },
}, },
components: { components: {
mySelect, mySelect,
...@@ -300,236 +305,272 @@ ...@@ -300,236 +305,272 @@
guestDialogBoxShow: false, guestDialogBoxShow: false,
isShowGuestInfo: false, //是否显示直客弹窗 isShowGuestInfo: false, //是否显示直客弹窗
activeMenu: 1, activeMenu: 1,
queryType2: [{ queryType2: [
label: '线索名称', {
label: "线索名称",
show: true, show: true,
}, { },
label: '线索来源', {
label: "线索来源",
show: true, show: true,
}, { },
label: '来源细分', {
label: "来源细分",
show: true, show: true,
}, { },
label: '需求', {
label: "需求",
show: true, show: true,
}, { },
label: '客户级别', {
label: "客户级别",
show: true, show: true,
}, { },
label: '联系人', {
label: "联系人",
show: true, show: true,
}, { },
label: '联系电话', {
label: "联系电话",
show: true, show: true,
}, { },
label: '微信', {
label: "微信",
show: true, show: true,
}, { },
label: '负责人', {
label: "负责人",
show: true, show: true,
}, { },
label: '创建人', {
label: "创建人",
show: true, show: true,
}, { },
label: '上次更新时间', {
label: "上次更新时间",
show: true, show: true,
}, { },
label: '创建时间', {
label: "创建时间",
show: true, show: true,
}], },
queryType: [{ ],
label: '线索名称', queryType: [
{
label: "线索名称",
show: true, show: true,
}, { },
label: '线索来源', {
label: "线索来源",
show: true, show: true,
}, { },
label: '来源细分', {
label: "来源细分",
show: true, show: true,
}, { },
label: '需求', {
label: "需求",
show: true, show: true,
}, { },
label: '客户级别', {
label: "客户级别",
show: true, show: true,
}, { },
label: '联系人', {
label: "联系人",
show: true, show: true,
}, { },
label: '联系电话', {
label: "联系电话",
show: true, show: true,
}, { },
label: '微信', {
label: "微信",
show: true, show: true,
}, { },
label: '负责人', {
label: "负责人",
show: true, show: true,
}, { },
label: '创建人', {
label: "创建人",
show: true, show: true,
}, { },
label: '上次更新时间', {
label: "上次更新时间",
show: true, show: true,
}, { },
label: '创建时间', {
label: "创建时间",
show: true, show: true,
}], },
],
CustomerId: 0, CustomerId: 0,
CustomerIdStr: '', CustomerIdStr: "",
transferVisible: false, transferVisible: false,
mySelectCtrl: false, mySelectCtrl: false,
isShowCustomerInfo: false, //是否显示客户弹窗 isShowCustomerInfo: false, //是否显示客户弹窗
loading: true, loading: true,
dialogTableVisible: false, dialogTableVisible: false,
dialogTableVisibleName: '新建线索', dialogTableVisibleName: "新建线索",
tableData: [], tableData: [],
multipleSelection: [], multipleSelection: [],
EmployeeList: [], EmployeeList: [],
value: '', value: "",
userInfo: {}, userInfo: {},
transferMsg: { transferMsg: {
CustomerIds: [], CustomerIds: [],
EmpId: '', EmpId: "",
}, },
CustomerTypeText: "", // 线索名称搜索 CustomerTypeText: "", // 线索名称搜索
msg: { msg: {
KeyWord: '', KeyWord: "",
CustomerName: '', CustomerName: "",
Contact: '', Contact: "",
pageIndex: 1, pageIndex: 1,
pageSize: 30, pageSize: 30,
ContactNumber: '', ContactNumber: "",
WhereType: -1, WhereType: -1,
OrderBy: '', OrderBy: "",
CustomerType: 1, CustomerType: 1,
ID: 33, ID: 33,
IsSelectAdmin: 0 IsSelectAdmin: 0,
}, },
total: 0, total: 0,
selectionList: [{ selectionList: [
name: '转移', {
class: 'iconfont iconplus-transfer', name: "转移",
class: "iconfont iconplus-transfer",
myFun: this.transfer, myFun: this.transfer,
show: true show: true,
}, { },
name: '转化为客户', {
class: 'iconfont iconplus-transfer', name: "转化为客户",
class: "iconfont iconplus-transfer",
myFun: this.waters, myFun: this.waters,
show: true show: true,
}, { },
name: '删除', {
class: 'iconfont icondelete', name: "删除",
class: "iconfont icondelete",
myFun: this.deleteClue, myFun: this.deleteClue,
show: true show: true,
}], },
],
sceneList: [], sceneList: [],
SceneEmployeeList: [], SceneEmployeeList: [],
sceneID: 33, sceneID: 33,
visible: false, visible: false,
isShowImport: false, //是否显示导入弹窗 isShowImport: false, //是否显示导入弹窗
importType: 1, //导入文件类型(1-客户导入,2-直客导入) importType: 1, //导入文件类型(1-客户导入,2-直客导入)
IsSelectAdminList:[],//是否是线索管理员 IsSelectAdminList: [], //是否是线索管理员
}; };
}, },
mounted() { mounted() {
this.userInfo = this.getLocalStorage(); this.userInfo = this.getLocalStorage();
let $this = this let $this = this;
this.MsgBus.$on('closeCustomerDialogBox', function () { this.MsgBus.$on("closeCustomerDialogBox", function() {
$this.dialogTableVisible = false; $this.dialogTableVisible = false;
$this.guestDialogBoxShow = false; $this.guestDialogBoxShow = false;
$this.isShowImport = false; $this.isShowImport = false;
})
this.MsgBus.$on('sceneSave', function (msg) {
$this.sceneList = [...msg]
$this.GetSceneEmployeeList()
let obj = {}
msg.forEach(element => {
obj[element.name] = element
}); });
$this.msg.Data = obj this.MsgBus.$on("sceneSave", function(msg) {
$this.getList() $this.sceneList = [...msg];
}) $this.GetSceneEmployeeList();
this.MsgBus.$on('editScene', function () { let obj = {};
$this.GetSceneEmployeeList() msg.forEach((element) => {
}) obj[element.name] = element;
this.GetConfigCuleAdmin() });
this.Employee() $this.msg.Data = obj;
this.GetSceneEmployeeList() $this.getList();
});
this.MsgBus.$on("editScene", function() {
$this.GetSceneEmployeeList();
});
this.GetConfigCuleAdmin();
this.Employee();
this.GetSceneEmployeeList();
}, },
beforeDestroy() { beforeDestroy() {
this.MsgBus.$off('sceneSave'); this.MsgBus.$off("sceneSave");
this.MsgBus.$off('editScene'); this.MsgBus.$off("editScene");
}, },
methods: { methods: {
// 获取线索管理详情 // 获取线索管理详情
GetConfigCuleAdmin() { GetConfigCuleAdmin() {
this.apipost('/api/Customer/GetConfigCuleAdmin', {}, res => { this.apipost("/api/Customer/GetConfigCuleAdmin", {}, (res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.IsSelectAdminList = res.data.data.Content.split(',') this.IsSelectAdminList = res.data.data.Content.split(",");
if(this.IsSelectAdminList.indexOf(this.userInfo.EmployeeId.toString())!=-1){ if (
this.msg.IsSelectAdmin = 1 this.IsSelectAdminList.indexOf(
this.selectionList.forEach(item=>{ this.userInfo.EmployeeId.toString()
if(item.name=='转移'){ ) != -1
item.show = false ) {
this.msg.IsSelectAdmin = 1;
this.selectionList.forEach((item) => {
if (item.name == "转移") {
item.show = false;
} }
}) });
this.getList() this.getList();
}else{ } else {
this.getList() this.getList();
} }
}else{ } else {
this.getList() this.getList();
this.$message.error(res.data.message) this.$message.error(res.data.message);
} }
}) });
}, },
handleClose(done) { handleClose(done) {
done(); done();
}, },
// 查看详情 // 查看详情
seeDetails(row) { seeDetails(row) {
this.drawer = true this.drawer = true;
this.queryTime = this.msg.YearStr + '-' + row.DateStr this.queryTime = this.msg.YearStr + "-" + row.DateStr;
}, },
changeWhere(item) { changeWhere(item) {
this.msg.ID = item.ID this.msg.ID = item.ID;
this.sceneID = item.ID this.sceneID = item.ID;
this.msg.Data = item.WhereData ? JSON.parse(item.WhereData) : {} this.msg.Data = item.WhereData ? JSON.parse(item.WhereData) : {};
this.msg.WhereType = item.WhereType this.msg.WhereType = item.WhereType;
this.visible = false this.visible = false;
this.getList() this.getList();
}, },
GetSceneEmployeeList() { GetSceneEmployeeList() {
this.apipost('/api/Scene/GetSceneEmployeeList', { this.apipost(
LableType: 4 "/api/Scene/GetSceneEmployeeList",
}, res => { {
LableType: 4,
},
(res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.SceneEmployeeList = res.data.data this.SceneEmployeeList = res.data.data;
} }
}) }
);
}, },
deleteScene(index) { deleteScene(index) {
this.sceneList.splice(index, 1) this.sceneList.splice(index, 1);
let obj = {} let obj = {};
this.sceneList.forEach(element => { this.sceneList.forEach((element) => {
obj[element.name] = element obj[element.name] = element;
}); });
this.msg.Data = obj this.msg.Data = obj;
this.getList() this.getList();
}, },
handleCommand(command) { handleCommand(command) {
this.CustomerId = 0 this.CustomerId = 0;
if (command === '1') { if (command === "1") {
this.dialogTableVisibleName = '新建线索' this.dialogTableVisibleName = "新建线索";
this.dialogTableVisible = true this.dialogTableVisible = true;
} else if (command === '2') { } else if (command === "2") {
this.guestDialogBoxShow = true this.guestDialogBoxShow = true;
} else if (command === '3') { } else if (command === "3") {
this.importType = 1; this.importType = 1;
this.isShowImport = true; this.isShowImport = true;
} else if (command === '4') { } else if (command === "4") {
this.importType = 2; this.importType = 2;
this.isShowImport = true; this.isShowImport = true;
} }
...@@ -541,209 +582,236 @@ ...@@ -541,209 +582,236 @@
DepartmentId: 0, DepartmentId: 0,
PostId: 0, PostId: 0,
IsLeave: 0, IsLeave: 0,
} };
this.apipost2( this.apipost2(
"admin_get_EmployeeGetList", "admin_get_EmployeeGetList",
this.msg, this.msg,
res => { (res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.EmployeeList = res.data.data; this.EmployeeList = res.data.data;
} else {} } else {
}
}, },
err => {} (err) => {}
); );
}, },
//删除 //删除
deleteClue(type) { deleteClue(type) {
let tips = '确定将这些线索删除?' let tips = "确定将这些线索删除?";
if (type === 1) { if (type === 1) {
tips = '是否把线索“' + this.CustomerName + '”删除?' tips = "是否把线索“" + this.CustomerName + "”删除?";
this.multipleSelection.push(this.CustomerId) this.multipleSelection.push(this.CustomerId);
} }
this.$confirm(tips, '提示', { this.$confirm(tips, "提示", {
confirmButtonText: '确定', confirmButtonText: "确定",
cancelButtonText: '取消', cancelButtonText: "取消",
type: 'warning' type: "warning",
}).then(() => {
let str = ''
this.multipleSelection.map((x, i) => {
str = str + x + ','
}) })
this.apipost('/api/Customer/DelCustomerClue', { .then(() => {
let str = "";
this.multipleSelection.map((x, i) => {
str = str + x + ",";
});
this.apipost(
"/api/Customer/DelCustomerClue",
{
CustomerIds: str.substring(0, str.length - 1), CustomerIds: str.substring(0, str.length - 1),
CustomerType: this.msg.CustomerType CustomerType: this.msg.CustomerType,
}, res => { },
(res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
if (type === 1) {} { if (type === 1) {
this.isShowCustomerInfo = false
this.isShowGuestInfo = false
} }
this.multipleSelection = [] {
this.isShowCustomerInfo = false;
this.isShowGuestInfo = false;
}
this.multipleSelection = [];
this.$message.success(res.data.message); this.$message.success(res.data.message);
this.getList() this.getList();
}
} }
);
}) })
}).catch(() => { .catch(() => {
this.$message({ this.$message({
type: 'info', type: "info",
message: '已取消' message: "已取消",
}); });
}); });
}, },
//导出 //导出
export () { export() {},
},
//转换为客户 //转换为客户
waters(type) { waters(type) {
let tips = '确定将这些线索转换为客户吗?' let tips = "确定将这些线索转换为客户吗?";
if (type === 1) { if (type === 1) {
tips = '是否把线索“' + this.CustomerName + '”转换为客户吗?' tips = "是否把线索“" + this.CustomerName + "”转换为客户吗?";
this.multipleSelection.push(this.CustomerId) this.multipleSelection.push(this.CustomerId);
} }
this.$confirm(tips, '提示', { this.$confirm(tips, "提示", {
confirmButtonText: '确定', confirmButtonText: "确定",
cancelButtonText: '取消', cancelButtonText: "取消",
type: 'warning' type: "warning",
}).then(() => {
let str = ''
this.multipleSelection.map((x, i) => {
str = str + x + ','
}) })
.then(() => {
let str = "";
this.multipleSelection.map((x, i) => {
str = str + x + ",";
});
let msg = { let msg = {
CustomerIds: str.substring(0, str.length - 1), CustomerIds: str.substring(0, str.length - 1),
CustomerType: this.msg.CustomerType CustomerType: this.msg.CustomerType,
} };
this.apipost('/api/Customer/UpdateCustomerClue', msg, res => { this.apipost("/api/Customer/UpdateCustomerClue", msg, (res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
if (type === 1) {} { if (type === 1) {
this.isShowCustomerInfo = false }
this.isShowGuestInfo = false {
this.isShowCustomerInfo = false;
this.isShowGuestInfo = false;
} }
this.multipleSelection = [] this.multipleSelection = [];
this.$message.success(res.data.message); this.$message.success(res.data.message);
this.getList() this.getList();
} }
});
}) })
}).catch(() => { .catch(() => {
this.$message({ this.$message({
type: 'info', type: "info",
message: '已取消' message: "已取消",
}); });
}); });
}, },
// 关注 // 关注
CareforCustomer(scope) { CareforCustomer(scope) {
this.apipost('/api/Customer/CareforCustomer', { this.apipost(
CustomerCreateId: scope.row.CustomerCreateId "/api/Customer/CareforCustomer",
}, res => { {
CustomerCreateId: scope.row.CustomerCreateId,
},
(res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.$message.success('操作成功'); this.$message.success("操作成功");
this.getList() this.getList();
} }
}) }
);
}, },
// 转移 // 转移
transfer(type) { transfer(type) {
if (type !== 2) { if (type !== 2) {
if (type === 3) { if (type === 3) {
this.multipleSelection.push(this.CustomerId) this.multipleSelection.push(this.CustomerId);
} }
if (this.ruleList.length == 0) { if (this.ruleList.length == 0) {
this.transferVisible = true this.transferVisible = true;
} else { } else {
let tips = '系统已开启自动分配,无法指定推送,是否继续推送?' let tips = "系统已开启自动分配,无法指定推送,是否继续推送?";
this.$confirm(tips, '提示', { this.$confirm(tips, "提示", {
confirmButtonText: '确定', confirmButtonText: "确定",
cancelButtonText: '取消', cancelButtonText: "取消",
type: 'warning' type: "warning",
}).then(() => { })
let ids .then(() => {
let ids;
if (this.CustomerId) { if (this.CustomerId) {
ids = this.CustomerId ids = this.CustomerId;
} else { } else {
ids = this.multipleSelection.join(',') ids = this.multipleSelection.join(",");
} }
this.apipost('/api/Customer/AutoTransferCustomer', { this.apipost(
IDs: ids "/api/Customer/AutoTransferCustomer",
}, res => { {
IDs: ids,
},
(res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.$message.success(res.data.message); this.$message.success(res.data.message);
this.getList() this.getList();
}
} }
);
}) })
}).catch(() => { .catch(() => {
this.$message({ this.$message({
type: 'info', type: "info",
message: '已取消' message: "已取消",
}); });
}); });
} }
} else { } else {
if (this.transferMsg.EmpId === '') { if (this.transferMsg.EmpId === "") {
return this.$message.error('请选择变更负责人!') return this.$message.error("请选择变更负责人!");
} }
let str = '' let str = "";
this.multipleSelection.map((x, i) => { this.multipleSelection.map((x, i) => {
str = str + x + ',' str = str + x + ",";
}) });
this.transferMsg.CustomerIds = str.substring(0, str.length - 1) this.transferMsg.CustomerIds = str.substring(0, str.length - 1);
this.apipost('/api/Customer/TransferCustomerClue', this.transferMsg, res => { this.apipost(
"/api/Customer/TransferCustomerClue",
this.transferMsg,
(res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.multipleSelection = [] this.multipleSelection = [];
this.transferVisible = false this.transferVisible = false;
if (type === 3) {} { if (type === 3) {
this.isShowCustomerInfo = false }
this.isShowGuestInfo = false {
this.isShowCustomerInfo = false;
this.isShowGuestInfo = false;
} }
this.$message.success(res.data.message); this.$message.success(res.data.message);
this.getList() this.getList();
this.transferMsg = { this.transferMsg = {
CustomerIds: [], CustomerIds: [],
EmpId: '', EmpId: "",
};
} }
} }
}) );
} }
}, },
showMessageFromChild(list) { showMessageFromChild(list) {
this.mySelectCtrl = !this.mySelectCtrl this.mySelectCtrl = !this.mySelectCtrl;
if (list) { if (list) {
this.queryType = list this.queryType = list;
this.getList() this.getList();
} }
}, },
editCust(type) { editCust(type) {
this.dialogTableVisibleName = '修改线索' this.dialogTableVisibleName = "修改线索";
if (type === 1) { if (type === 1) {
this.dialogTableVisible = true this.dialogTableVisible = true;
} else { } else {
this.guestDialogBoxShow = true this.guestDialogBoxShow = true;
} }
}, },
openDetails(scope) { openDetails(scope) {
this.CustomerId = scope.row.CustomerId this.CustomerId = scope.row.CustomerId;
if (this.msg.CustomerType == 0) { if (this.msg.CustomerType == 0) {
this.CustomerName = scope.row.CustomerName; this.CustomerName = scope.row.CustomerName;
} else if (this.msg.CustomerType == 1) { } else if (this.msg.CustomerType == 1) {
this.CustomerName = scope.row.ClueName; this.CustomerName = scope.row.ClueName;
} }
if (this.msg.CustomerType === 0) { if (this.msg.CustomerType === 0) {
this.isShowCustomerInfo = true this.isShowCustomerInfo = true;
} else { } else {
this.isShowGuestInfo = true this.isShowGuestInfo = true;
} }
}, },
// 获取是否开启规则 // 获取是否开启规则
GetCustomerAllotRule() { GetCustomerAllotRule() {
this.apipost('/api/Customer/GetCustomerAllotRule', {}, res => { this.apipost("/api/Customer/GetCustomerAllotRule", {}, (res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.ruleList = res.data.data.EmpList this.ruleList = res.data.data.EmpList;
} }
}) });
}, },
handleSizeChange(val) { handleSizeChange(val) {
this.msg.pageSize = val this.msg.pageSize = val;
this.getList(); this.getList();
}, },
handleCurrentChange(val) { handleCurrentChange(val) {
...@@ -753,45 +821,46 @@ ...@@ -753,45 +821,46 @@
handleClose(done) { handleClose(done) {
done(); done();
}, },
getList: function (isclose) { getList: function(isclose) {
if (isclose && isclose == 1) { if (isclose && isclose == 1) {
this.isShowGuestInfo = false; this.isShowGuestInfo = false;
} }
if (this.msg.CustomerType != 1) { if (this.msg.CustomerType != 1) {
this.msg.CustomerName = this.CustomerTypeText this.msg.CustomerName = this.CustomerTypeText;
this.msg.KeyWord = "" this.msg.KeyWord = "";
} else { } else {
this.msg.KeyWord = this.CustomerTypeText this.msg.KeyWord = this.CustomerTypeText;
this.msg.CustomerName = "" this.msg.CustomerName = "";
} }
this.tableData = [] this.tableData = [];
this.loading = true this.loading = true;
let url let url;
if (!this.isDrawer) { if (!this.isDrawer) {
url = '/api/Customer/GetCustomerCluePage' url = "/api/Customer/GetCustomerCluePage";
} else { } else {
this.msg.StartTime = this.queryTime && this.queryTime.StartTime // this.msg.StartTime = this.queryTime && this.queryTime.StartTime;
this.msg.EndTime = this.queryTime && this.queryTime.EndTime // this.msg.EndTime = this.queryTime && this.queryTime.EndTime;
url = '/api/Customer/GetCustomerClueAllPage' delete this.msg.ClueState;
} delete this.msg.CustomerSourceType;
this.apipost(url, this.msg, res => { delete this.msg.OrderType;
this.msg = this.queryTime && Object.assign(this.msg, this.queryTime);
url = "/api/Customer/GetCustomerClueAllPage";
}
this.apipost(url, this.msg, (res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.tableData = res.data.data.pageData; this.tableData = res.data.data.pageData;
this.total = res.data.data.count; this.total = res.data.data.count;
this.loading = false; this.loading = false;
} }
}) });
if (this.msg.CustomerType == 1) { if (this.msg.CustomerType == 1) {
// 获取是否开启规则 // 获取是否开启规则
this.GetCustomerAllotRule() this.GetCustomerAllotRule();
} }
}, },
handleSelectionChange(val) { handleSelectionChange(val) {
this.multipleSelection = val.map(x => this.multipleSelection = val.map((x) => x.CustomerId);
x.CustomerId },
) },
} };
}
};
</script> </script>
...@@ -6,9 +6,7 @@ ...@@ -6,9 +6,7 @@
} }
</style> </style>
<template> <template>
<div>
<clueComponent :isDrawer="isDrawer"></clueComponent> <clueComponent :isDrawer="isDrawer"></clueComponent>
</div>
</template> </template>
<script> <script>
import clueComponent from "./clueComponent"; import clueComponent from "./clueComponent";
......
<style> <style>
@import '../../assets/css/customerManage.css'; @import "../../assets/css/customerManage.css";
*{ * {
font-family: 'perfectFont'; font-family: "perfectFont";
} }
.query-box .el-row .el-col{ .query-box .el-row .el-col {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 15px; margin-bottom: 15px;
} }
.query-box .el-row .el-col span{ .query-box .el-row .el-col span {
flex-shrink: 0; flex-shrink: 0;
} }
.statistics{ .statistics {
background: #fff; background: #fff;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
.statistics-box{ .statistics-box {
flex: 1; flex: 1;
padding: 7px 16px; padding: 7px 16px;
background-color: #DDDEE0; background-color: #dddee0;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
border-radius: 5px; border-radius: 5px;
margin-right: 10px; margin-right: 10px;
} }
.statistics-box:last-child{ .statistics-box:last-child {
margin-right: 0; margin-right: 0;
} }
.statistics-box span:first-child{ .statistics-box span:first-child {
font-weight: bold; font-weight: bold;
margin-right: 5px; margin-right: 5px;
flex-shrink: 0; flex-shrink: 0;
} }
.red{ .red {
color: #F72E52; color: #f72e52;
} }
.blue{ .blue {
color: #3A7CF7; color: #3a7cf7;
} }
.status-box{ .status-box {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
justify-content: flex-end; justify-content: flex-end;
} }
.status-text{ .status-text {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
margin-left: 15px; margin-left: 15px;
font-size: 13px; font-size: 13px;
} }
.tis-k{ .tis-k {
width: 10px; width: 10px;
height: 10px; height: 10px;
margin-right: 10px; margin-right: 10px;
} }
</style> </style>
<template> <template>
<div class="customerManage"> <div class="customerManage">
...@@ -162,6 +162,7 @@ ...@@ -162,6 +162,7 @@
size="mini" size="mini"
style="width: 100%;" style="width: 100%;"
format="yyyy-MM-dd" format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
type="date" type="date"
placeholder="开始日期"> placeholder="开始日期">
</el-date-picker> </el-date-picker>
...@@ -174,6 +175,7 @@ ...@@ -174,6 +175,7 @@
size="mini" size="mini"
style="width: 100%;" style="width: 100%;"
format="yyyy-MM-dd" format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
type="date" type="date"
placeholder="结束日期"> placeholder="结束日期">
</el-date-picker> </el-date-picker>
...@@ -238,91 +240,96 @@ ...@@ -238,91 +240,96 @@
</div> </div>
</template> </template>
<script> <script>
import orderList from "./orderList"; import orderList from "./orderList";
export default { export default {
components: { components: {
orderList orderList,
}, },
data() { data() {
return { return {
VisaList:[ VisaList: [
{ Name: "不限", Id: "0" }, { Name: "不限", Id: "0" },
{ Name: "未出签", Id: "1" }, { Name: "未出签", Id: "1" },
{ Name: "已出签", Id: "2" }, { Name: "已出签", Id: "2" },
], ],
MultipleChoiceList: [ //多选项目 MultipleChoiceList: [
//多选项目
{ {
Name: '机票', Name: "机票",
Id: '1', Id: "1",
show: false show: false,
}, { },
Name: '签证', {
Id: '2', Name: "签证",
show: false Id: "2",
}, { show: false,
Name: '地接', },
Id: '3', {
show: false Name: "地接",
}, { Id: "3",
Name: '套餐', show: false,
Id: '4', },
show: false {
}, { Name: "套餐",
Name: '其他', Id: "4",
Id: '5', show: false,
show: false },
} {
Name: "其他",
Id: "5",
show: false,
},
], ],
superManage:"订单统计", superManage: "订单统计",
StatModel:{},// 合计 StatModel: {}, // 合计
loading:false, loading: false,
total:0, total: 0,
dataList:[], dataList: [],
timeList:[],//时间 timeList: [], //时间
msg: { msg: {
pageIndex: 1, pageIndex: 1,
pageSize: 15, pageSize: 15,
OrderId:"",//订单id OrderId: "", //订单id
GuestName:"",//客人姓名 GuestName: "", //客人姓名
GuestId:"",//客人id GuestId: "", //客人id
StartCityName:"",//出发城市 StartCityName: "", //出发城市
EndCityName:"",//到达城市 EndCityName: "", //到达城市
EnterID:"",//业务员id EnterID: "", //业务员id
CreateBy:"",//引流员id CreateBy: "", //引流员id
TicketStatus:"0",//出票状态 TicketStatus: "0", //出票状态
VisaStatus:"0",//出签状态 VisaStatus: "0", //出签状态
OrderStatus:"0",//订单状态 OrderStatus: "0", //订单状态
Q_IsCollect:"0",//收款状态 Q_IsCollect: "0", //收款状态
StartTime:"",//订单开始时间 StartTime: "", //订单开始时间
EndTime:"",//订单结束时间 EndTime: "", //订单结束时间
OrderType:"",//订单类型 OrderType: "", //订单类型
}, },
ticketingStatusList:[],// 出票状态 ticketingStatusList: [], // 出票状态
OrderStatusList:[], OrderStatusList: [],
QIsCollectList:[ QIsCollectList: [
{Name:'不限',Id:'0'}, { Name: "不限", Id: "0" },
{Name:'已收齐',Id:'1'}, { Name: "已收齐", Id: "1" },
{Name:'未收齐',Id:'2'} { Name: "未收齐", Id: "2" },
], ],
EmployeeList:[] EmployeeList: [],
} };
}, },
mounted() { mounted() {
// erp自动登陆传过来的参数 // erp自动登陆传过来的参数
if(this.$route.query.erpOrderObj){ if (this.$route.query.erpOrderObj) {
let data = JSON.parse(this.$route.query.erpOrderObj) let data = JSON.parse(this.$route.query.erpOrderObj);
this.msg.OrderId = data.OrderId this.msg.OrderId = data.OrderId;
} }
//接收订单统计传过来的参数 //接收订单统计传过来的参数
if(this.$route.query.OrderId){ if (this.$route.query.OrderId) {
this.msg.OrderId = this.$route.query.OrderId this.msg.OrderId = this.$route.query.OrderId;
} }
this.Employee() //业务员 this.Employee(); //业务员
this.GetTicketStatusEnumList() //出票枚举 this.GetTicketStatusEnumList(); //出票枚举
this.GetOrderStatusEnumList() //订单状态枚举 this.GetOrderStatusEnumList(); //订单状态枚举
let $this = this let $this = this;
this.MsgBus.$on("closeGetList", function() { this.MsgBus.$on("closeGetList", function() {
$this.getList() $this.getList();
}); });
$this.MsgBus.$on("closeBillMaking", function() { $this.MsgBus.$on("closeBillMaking", function() {
for (let i = 0; i < $this.dataList.length; i++) { for (let i = 0; i < $this.dataList.length; i++) {
...@@ -332,7 +339,7 @@ ...@@ -332,7 +339,7 @@
$this.dataList[i].cost = false; $this.dataList[i].cost = false;
} }
}); });
this.getList() this.getList();
}, },
methods: { methods: {
// 获取业务员 // 获取业务员
...@@ -359,27 +366,28 @@ ...@@ -359,27 +366,28 @@
}, },
//点击下载 //点击下载
downLoadExcel() { downLoadExcel() {
if(!this.msg.StartTime||!this.msg.EndTime){ if (!this.msg.StartTime || !this.msg.EndTime) {
let tips = '请选择开始时间、结束时间!' let tips = "请选择开始时间、结束时间!";
this.$confirm(tips, '提示', { this.$confirm(tips, "提示", {
confirmButtonText: '确定', confirmButtonText: "确定",
cancelButtonText: '取消', cancelButtonText: "取消",
type: 'warning' type: "warning",
}).then(() => { })
.then(() => {})
}).catch(() => { }); .catch(() => {});
return return;
} }
this.GetLocalFile( this.GetLocalFile(
"/api/Order/GetGuestOrderStatisticsToExcel", "/api/Order/GetGuestOrderStatisticsToExcel",
this.msg,'订单表.xls' this.msg,
"订单表.xls"
); );
}, },
// 清空下拉 // 清空下拉
emptyMore(){ emptyMore() {
this.dataList.forEach(item=>{ this.dataList.forEach((item) => {
return item.More = '' return (item.More = "");
}) });
}, },
// 获取订单状态枚举 // 获取订单状态枚举
GetOrderStatusEnumList() { GetOrderStatusEnumList() {
...@@ -397,25 +405,21 @@ ...@@ -397,25 +405,21 @@
}); });
}, },
// 获取出票状态枚举 // 获取出票状态枚举
GetTicketStatusEnumList(){ GetTicketStatusEnumList() {
this.apipost( this.apipost("/api/Order/GetTicketStatusEnumList", {}, (res) => {
"/api/Order/GetTicketStatusEnumList",
{},
(res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.ticketingStatusList = res.data.data; this.ticketingStatusList = res.data.data;
let data = { let data = {
Name:'全部', Name: "全部",
Id:'0' Id: "0",
} };
this.ticketingStatusList.unshift(data) this.ticketingStatusList.unshift(data);
} else { } else {
this.$message.error(res.data.message); this.$message.error(res.data.message);
} }
} });
);
}, },
getList(){ getList() {
this.loading = true; this.loading = true;
this.apipost( this.apipost(
"/api/Order/GetGuestOrderStatisticsPageList", "/api/Order/GetGuestOrderStatisticsPageList",
...@@ -424,18 +428,23 @@ ...@@ -424,18 +428,23 @@
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
let data = res.data.data.Data.pageData; let data = res.data.data.Data.pageData;
let addList = function(arr) { let addList = function(arr) {
arr.forEach(item => { arr.forEach((item) => {
item.More = '' item.More = "";
item.actuallyReceived = false item.actuallyReceived = false;
item.cost = false item.cost = false;
item.selectedType = '' item.selectedType = "";
item.checkList = [] item.checkList = [];
item.MultipleChoiceList = [] item.MultipleChoiceList = [];
item.MoreList = [ item.MoreList = [
{ {
Name: "取消订单", Name: "取消订单",
Id: "1", Id: "1",
show: item.OrderStatus!=2&&item.OrderStatus!=5&&item.OrderStatus!=6?true:false, show:
item.OrderStatus != 2 &&
item.OrderStatus != 5 &&
item.OrderStatus != 6
? true
: false,
}, },
{ {
Name: "订单转交", Name: "订单转交",
...@@ -445,69 +454,100 @@ ...@@ -445,69 +454,100 @@
{ {
Name: "修改订单金额", Name: "修改订单金额",
Id: "3", Id: "3",
show: item.OrderStatus!=2&&item.OrderStatus!=5&&item.OrderStatus!=6&&(item.TicketStatus==1||item.VisaStatus==1)?true:false, show:
item.OrderStatus != 2 &&
item.OrderStatus != 5 &&
item.OrderStatus != 6 &&
(item.TicketStatus == 1 || item.VisaStatus == 1)
? true
: false,
}, },
{ {
Name: "修改出票状态", Name: "修改出票状态",
Id: "4", Id: "4",
show: item.OrderStatus!=2&&item.OrderStatus!=5&&item.OrderStatus!=6&&item.TicketStatus<3?true:false, show:
item.OrderStatus != 2 &&
item.OrderStatus != 5 &&
item.OrderStatus != 6 &&
item.TicketStatus < 3
? true
: false,
}, },
{ {
Name: "修改出签状态", Name: "修改出签状态",
Id: "5", Id: "5",
show: item.OrderStatus!=2&&item.OrderStatus!=5&&item.OrderStatus!=6&&item.VisaStatus==1?true:false, show:
item.OrderStatus != 2 &&
item.OrderStatus != 5 &&
item.OrderStatus != 6 &&
item.VisaStatus == 1
? true
: false,
}, },
{ {
Name: '订单收损', Name: "订单收损",
Id: '8', Id: "8",
show: item.OrderStatus!=2&&item.OrderStatus!=5&&item.OrderStatus!=6?true:false show:
item.OrderStatus != 2 &&
item.OrderStatus != 5 &&
item.OrderStatus != 6
? true
: false,
}, },
{ {
Name: '收损完结', Name: "收损完结",
Id: '9', Id: "9",
show: (item.OrderStatus==3||item.OrderStatus==4)&&item.DueinMoney==0&&item.OrderStatus!=2&&item.OrderStatus!=5&&item.OrderStatus!=6?true:false show:
(item.OrderStatus == 1 || item.OrderStatus == 3 || item.OrderStatus == 4 || item.OrderStatus == 5)&&
item.DueinMoney == 0
? true
: false,
}, },
{ {
Name: '订单完结', Name: '订单完结',
Id: '6', Id: '6',
show: item.OrderStatus==1&&item.DueinMoney==0?true:false show: item.OrderStatus == 1 && item.DueinMoney == 0 ?
true : false
}, },
{ {
Name: "操作日志", Name: "操作日志",
Id: "7", Id: "7",
show: true, show: true,
} },
] ];
}); });
}; };
addList(data); addList(data);
data.forEach(item=>{ data.forEach((item) => {
if(item.OrderType){ if (item.OrderType) {
let list = item.OrderType&&item.OrderType.split(',') let list = item.OrderType && item.OrderType.split(",");
for(let j=0;j<list.length;j++){ for (let j = 0; j < list.length; j++) {
for(let i=0;i<this.MultipleChoiceList.length;i++){ for (let i = 0; i < this.MultipleChoiceList.length; i++) {
if(list[j]==this.MultipleChoiceList[i].Id){ if (list[j] == this.MultipleChoiceList[i].Id) {
item.MultipleChoiceList.push(JSON.parse(JSON.stringify(this.MultipleChoiceList[i]))) item.MultipleChoiceList.push(
JSON.parse(JSON.stringify(this.MultipleChoiceList[i]))
);
} }
} }
} }
} }
if(item.LossList.length>0){ if (item.LossList.length > 0) {
for(let i=0;i<item.LossList.length;i++){ for (let i = 0; i < item.LossList.length; i++) {
for(let j=0;j<item.MultipleChoiceList.length;j++){ for (let j = 0; j < item.MultipleChoiceList.length; j++) {
if(item.LossList[i].OrderType==item.MultipleChoiceList[j].Id){ if (
item.MultipleChoiceList[j].show = true item.LossList[i].OrderType ==
item.MultipleChoiceList[j].Id
) {
item.MultipleChoiceList[j].show = true;
} }
} }
} }
} }
});
})
this.dataList = res.data.data.Data.pageData; this.dataList = res.data.data.Data.pageData;
this.total = res.data.data.Data.count; this.total = res.data.data.Data.count;
this.StatModel = res.data.data.StatModel this.StatModel = res.data.data.StatModel;
this.loading = false this.loading = false;
} else { } else {
this.$message.error(res.data.message); this.$message.error(res.data.message);
} }
...@@ -515,13 +555,13 @@ ...@@ -515,13 +555,13 @@
); );
}, },
handleSizeChange(val) { handleSizeChange(val) {
this.msg.pageSize = val this.msg.pageSize = val;
this.getList(); this.getList();
}, },
handleCurrentChange(val) { handleCurrentChange(val) {
this.msg.pageIndex = val; this.msg.pageIndex = val;
this.getList(); this.getList();
}, },
} },
} };
</script> </script>
<style> <style>
@import '../../assets/css/customerManage.css'; @import "../../assets/css/customerManage.css";
*{ * {
font-family: 'perfectFont'; font-family: "perfectFont";
} }
.query-box .el-row .el-col{ .query-box .el-row .el-col {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 15px; margin-bottom: 15px;
} }
.query-box .el-row .el-col span{ .query-box .el-row .el-col span {
flex-shrink: 0; flex-shrink: 0;
} }
.statistics{ .statistics {
background: #fff; background: #fff;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
.statistics-box{ .statistics-box {
flex: 1; flex: 1;
padding: 7px 16px; padding: 7px 16px;
background-color: #DDDEE0; background-color: #dddee0;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
border-radius: 5px; border-radius: 5px;
margin-right: 10px; margin-right: 10px;
} }
.statistics-box:last-child{ .statistics-box:last-child {
margin-right: 0; margin-right: 0;
} }
.statistics-box span:first-child{ .statistics-box span:first-child {
font-weight: bold; font-weight: bold;
margin-right: 5px; margin-right: 5px;
flex-shrink: 0; flex-shrink: 0;
} }
.red{ .red {
color: #F72E52; color: #f72e52;
} }
.blue{ .blue {
color: #3A7CF7; color: #3a7cf7;
} }
.status-box{ .status-box {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
justify-content: flex-end; justify-content: flex-end;
} }
.status-text{ .status-text {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
margin-left: 15px; margin-left: 15px;
font-size: 13px; font-size: 13px;
} }
.tis-k{ .tis-k {
width: 10px; width: 10px;
height: 10px; height: 10px;
margin-right: 10px; margin-right: 10px;
} }
</style> </style>
<template> <template>
<div class="customerManage"> <div class="customerManage">
...@@ -129,6 +129,7 @@ ...@@ -129,6 +129,7 @@
style="width: 100%;" style="width: 100%;"
format="yyyy-MM-dd" format="yyyy-MM-dd"
type="date" type="date"
value-format="yyyy-MM-dd"
placeholder="开始日期"> placeholder="开始日期">
</el-date-picker> </el-date-picker>
</el-col> </el-col>
...@@ -141,6 +142,7 @@ ...@@ -141,6 +142,7 @@
style="width: 100%;" style="width: 100%;"
format="yyyy-MM-dd" format="yyyy-MM-dd"
type="date" type="date"
value-format="yyyy-MM-dd"
placeholder="结束日期"> placeholder="结束日期">
</el-date-picker> </el-date-picker>
</el-col> </el-col>
...@@ -204,88 +206,93 @@ ...@@ -204,88 +206,93 @@
</div> </div>
</template> </template>
<script> <script>
import orderList from "./orderList"; import orderList from "./orderList";
export default { export default {
components: { components: {
orderList orderList,
}, },
data() { data() {
return { return {
VisaList:[ VisaList: [
{ Name: "不限", Id: "0" }, { Name: "不限", Id: "0" },
{ Name: "未出签", Id: "1" }, { Name: "未出签", Id: "1" },
{ Name: "已出签", Id: "2" }, { Name: "已出签", Id: "2" },
], ],
MultipleChoiceList: [ //多选项目 MultipleChoiceList: [
//多选项目
{ {
Name: '机票', Name: "机票",
Id: '1', Id: "1",
show: false show: false,
}, { },
Name: '签证', {
Id: '2', Name: "签证",
show: false Id: "2",
}, { show: false,
Name: '地接', },
Id: '3', {
show: false Name: "地接",
}, { Id: "3",
Name: '套餐', show: false,
Id: '4', },
show: false {
}, { Name: "套餐",
Name: '其他', Id: "4",
Id: '5', show: false,
show: false },
} {
Name: "其他",
Id: "5",
show: false,
},
], ],
StatModel:{},// 合计 StatModel: {}, // 合计
loading:false, loading: false,
total:0, total: 0,
dataList:[], dataList: [],
timeList:[],//时间 timeList: [], //时间
msg: { msg: {
pageIndex: 1, pageIndex: 1,
pageSize: 15, pageSize: 15,
OrderId:"",//订单id OrderId: "", //订单id
GuestName:"",//客人姓名 GuestName: "", //客人姓名
GuestId:"",//客人id GuestId: "", //客人id
StartCityName:"",//出发城市 StartCityName: "", //出发城市
EndCityName:"",//到达城市 EndCityName: "", //到达城市
EnterID:"",//业务员id EnterID: "", //业务员id
TicketStatus:"0",//出票状态 TicketStatus: "0", //出票状态
VisaStatus:"0",//出签状态 VisaStatus: "0", //出签状态
OrderStatus:"0",//订单状态 OrderStatus: "0", //订单状态
Q_IsCollect:"0",//收款状态 Q_IsCollect: "0", //收款状态
StartTime:"2022-04-28", StartTime: "2022-04-28",
EndTime:"", EndTime: "",
IsMyOrder:"1",//我的订单 IsMyOrder: "1", //我的订单
}, },
ticketingStatusList:[],// 出票状态 ticketingStatusList: [], // 出票状态
OrderStatusList:[], OrderStatusList: [],
QIsCollectList:[ QIsCollectList: [
{Name:'不限',Id:'0'}, { Name: "不限", Id: "0" },
{Name:'已收齐',Id:'1'}, { Name: "已收齐", Id: "1" },
{Name:'未收齐',Id:'2'} { Name: "未收齐", Id: "2" },
], ],
EmployeeList:[],// 业务员数据 EmployeeList: [], // 业务员数据
userInfo:{} userInfo: {},
} };
}, },
mounted() { mounted() {
this.userInfo = this.getLocalStorage() this.userInfo = this.getLocalStorage();
this.msg.EnterID = this.userInfo.EmployeeId this.msg.EnterID = this.userInfo.EmployeeId;
// erp自动登陆传过来的参数 // erp自动登陆传过来的参数
if(this.$route.query.erpOrderObj){ if (this.$route.query.erpOrderObj) {
let data = JSON.parse(this.$route.query.erpOrderObj) let data = JSON.parse(this.$route.query.erpOrderObj);
this.msg.OrderId = data.OrderId this.msg.OrderId = data.OrderId;
} }
this.Employee() //业务员 this.Employee(); //业务员
this.GetTicketStatusEnumList() //出票枚举 this.GetTicketStatusEnumList(); //出票枚举
this.GetOrderStatusEnumList() //订单状态枚举 this.GetOrderStatusEnumList(); //订单状态枚举
let $this = this let $this = this;
this.MsgBus.$on("closeGetList", function() { this.MsgBus.$on("closeGetList", function() {
$this.getList() $this.getList();
}); });
$this.MsgBus.$on("closeBillMaking", function() { $this.MsgBus.$on("closeBillMaking", function() {
for (let i = 0; i < $this.dataList.length; i++) { for (let i = 0; i < $this.dataList.length; i++) {
...@@ -295,7 +302,7 @@ ...@@ -295,7 +302,7 @@
$this.dataList[i].cost = false; $this.dataList[i].cost = false;
} }
}); });
this.getList() this.getList();
}, },
methods: { methods: {
// 获取业务员 // 获取业务员
...@@ -322,27 +329,28 @@ ...@@ -322,27 +329,28 @@
}, },
//点击下载 //点击下载
downLoadExcel() { downLoadExcel() {
if(!this.msg.StartTime||!this.msg.EndTime){ if (!this.msg.StartTime || !this.msg.EndTime) {
let tips = '请选择开始时间、结束时间!' let tips = "请选择开始时间、结束时间!";
this.$confirm(tips, '提示', { this.$confirm(tips, "提示", {
confirmButtonText: '确定', confirmButtonText: "确定",
cancelButtonText: '取消', cancelButtonText: "取消",
type: 'warning' type: "warning",
}).then(() => { })
.then(() => {})
}).catch(() => { }); .catch(() => {});
return return;
} }
this.GetLocalFile( this.GetLocalFile(
"/api/Order/GetGuestOrderStatisticsToExcel", "/api/Order/GetGuestOrderStatisticsToExcel",
this.msg,'订单表.xls' this.msg,
"订单表.xls"
); );
}, },
// 清空下拉 // 清空下拉
emptyMore(){ emptyMore() {
this.dataList.forEach(item=>{ this.dataList.forEach((item) => {
return item.More = '' return (item.More = "");
}) });
}, },
// 获取订单状态枚举 // 获取订单状态枚举
GetOrderStatusEnumList() { GetOrderStatusEnumList() {
...@@ -360,25 +368,21 @@ ...@@ -360,25 +368,21 @@
}); });
}, },
// 获取出票状态枚举 // 获取出票状态枚举
GetTicketStatusEnumList(){ GetTicketStatusEnumList() {
this.apipost( this.apipost("/api/Order/GetTicketStatusEnumList", {}, (res) => {
"/api/Order/GetTicketStatusEnumList",
{},
(res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.ticketingStatusList = res.data.data; this.ticketingStatusList = res.data.data;
let data = { let data = {
Name:'全部', Name: "全部",
Id:'0' Id: "0",
} };
this.ticketingStatusList.unshift(data) this.ticketingStatusList.unshift(data);
} else { } else {
this.$message.error(res.data.message); this.$message.error(res.data.message);
} }
} });
);
}, },
getList(){ getList() {
this.loading = true; this.loading = true;
this.apipost( this.apipost(
"/api/Order/GetGuestOrderStatisticsPageList", "/api/Order/GetGuestOrderStatisticsPageList",
...@@ -387,18 +391,23 @@ ...@@ -387,18 +391,23 @@
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
let data = res.data.data.Data.pageData; let data = res.data.data.Data.pageData;
let addList = function(arr) { let addList = function(arr) {
arr.forEach(item => { arr.forEach((item) => {
item.More = '' item.More = "";
item.actuallyReceived = false item.actuallyReceived = false;
item.cost = false item.cost = false;
item.selectedType = '' item.selectedType = "";
item.checkList = [] item.checkList = [];
item.MultipleChoiceList = [] item.MultipleChoiceList = [];
item.MoreList = [ item.MoreList = [
{ {
Name: "取消订单", Name: "取消订单",
Id: "1", Id: "1",
show: item.OrderStatus!=2&&item.OrderStatus!=5&&item.OrderStatus!=6?true:false, show:
item.OrderStatus != 2 &&
item.OrderStatus != 5 &&
item.OrderStatus != 6
? true
: false,
}, },
{ {
Name: "订单转交", Name: "订单转交",
...@@ -408,67 +417,100 @@ ...@@ -408,67 +417,100 @@
{ {
Name: "修改订单金额", Name: "修改订单金额",
Id: "3", Id: "3",
show: item.OrderStatus!=2&&item.OrderStatus!=5&&item.OrderStatus!=6&&(item.TicketStatus==1||item.VisaStatus==1)?true:false, show:
item.OrderStatus != 2 &&
item.OrderStatus != 5 &&
item.OrderStatus != 6 &&
(item.TicketStatus == 1 || item.VisaStatus == 1)
? true
: false,
}, },
{ {
Name: "修改出票状态", Name: "修改出票状态",
Id: "4", Id: "4",
show: item.OrderStatus!=2&&item.OrderStatus!=5&&item.OrderStatus!=6&&item.TicketStatus<3?true:false, show:
item.OrderStatus != 2 &&
item.OrderStatus != 5 &&
item.OrderStatus != 6 &&
item.TicketStatus < 3
? true
: false,
}, },
{ {
Name: "修改出签状态", Name: "修改出签状态",
Id: "5", Id: "5",
show: item.OrderStatus!=2&&item.OrderStatus!=5&&item.OrderStatus!=6&&item.VisaStatus==1?true:false, show:
item.OrderStatus != 2 &&
item.OrderStatus != 5 &&
item.OrderStatus != 6 &&
item.VisaStatus == 1
? true
: false,
}, },
{ {
Name: '订单收损', Name: "订单收损",
Id: '8', Id: "8",
show: item.OrderStatus!=2&&item.OrderStatus!=5&&item.OrderStatus!=6?true:false show:
item.OrderStatus != 2 &&
item.OrderStatus != 5 &&
item.OrderStatus != 6
? true
: false,
}, },
{ {
Name: '收损完结', Name: "收损完结",
Id: '9', Id: "9",
show: (item.OrderStatus==3||item.OrderStatus==4)&&item.DueinMoney==0&&item.OrderStatus!=2&&item.OrderStatus!=5&&item.OrderStatus!=6?true:false show:
(item.OrderStatus == 1 || item.OrderStatus == 3 || item.OrderStatus == 4|| item.OrderStatus == 5) &&
item.DueinMoney == 0
? true
: false,
}, },
{ {
Name: '订单完结', Name: '订单完结',
Id: '6', Id: '6',
show: item.OrderStatus==1&&item.DueinMoney==0?true:false show: item.OrderStatus == 1 && item.DueinMoney == 0 ?
true : false
}, },
{ {
Name: "操作日志", Name: "操作日志",
Id: "7", Id: "7",
show: true, show: true,
} },
] ];
}); });
}; };
addList(data); addList(data);
data.forEach(item=>{ data.forEach((item) => {
if(item.OrderType){ if (item.OrderType) {
let list = item.OrderType&&item.OrderType.split(',') let list = item.OrderType && item.OrderType.split(",");
for(let j=0;j<list.length;j++){ for (let j = 0; j < list.length; j++) {
for(let i=0;i<this.MultipleChoiceList.length;i++){ for (let i = 0; i < this.MultipleChoiceList.length; i++) {
if(list[j]==this.MultipleChoiceList[i].Id){ if (list[j] == this.MultipleChoiceList[i].Id) {
item.MultipleChoiceList.push(JSON.parse(JSON.stringify(this.MultipleChoiceList[i]))) item.MultipleChoiceList.push(
JSON.parse(JSON.stringify(this.MultipleChoiceList[i]))
);
} }
} }
} }
} }
if(item.LossList.length>0){ if (item.LossList.length > 0) {
for(let i=0;i<item.LossList.length;i++){ for (let i = 0; i < item.LossList.length; i++) {
for(let j=0;j<item.MultipleChoiceList.length;j++){ for (let j = 0; j < item.MultipleChoiceList.length; j++) {
if(item.LossList[i].OrderType==item.MultipleChoiceList[j].Id){ if (
item.MultipleChoiceList[j].show = true item.LossList[i].OrderType ==
item.MultipleChoiceList[j].Id
) {
item.MultipleChoiceList[j].show = true;
} }
} }
} }
} }
}) });
this.dataList = res.data.data.Data.pageData; this.dataList = res.data.data.Data.pageData;
this.total = res.data.data.Data.count; this.total = res.data.data.Data.count;
this.StatModel = res.data.data.StatModel this.StatModel = res.data.data.StatModel;
this.loading = false this.loading = false;
} else { } else {
this.$message.error(res.data.message); this.$message.error(res.data.message);
} }
...@@ -476,13 +518,13 @@ ...@@ -476,13 +518,13 @@
); );
}, },
handleSizeChange(val) { handleSizeChange(val) {
this.msg.pageSize = val this.msg.pageSize = val;
this.getList(); this.getList();
}, },
handleCurrentChange(val) { handleCurrentChange(val) {
this.msg.pageIndex = val; this.msg.pageIndex = val;
this.getList(); this.getList();
}, },
} },
} };
</script> </script>
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
</td> </td>
<td style="border:none" min-width="6.5%"> <td style="border:none" min-width="6.5%">
<p class="colorblue font-color-link" <p class="colorblue font-color-link"
@click="openNameDetails(item)">{{item.GuestName}}</p> @click="openNameDetails(item)">{{item.GuestName?item.GuestName:'-'}}</p>
<p>{{item.MobilePhone}}</p> <p>{{item.MobilePhone}}</p>
</td> </td>
<td style="border:none">{{item.GuestCount}}</td> <td style="border:none">{{item.GuestCount}}</td>
......
...@@ -1114,10 +1114,8 @@ ...@@ -1114,10 +1114,8 @@
{ {
Name: '收损完结', Name: '收损完结',
Id: '9', Id: '9',
show: (item.OrderStatus == 3 || item.OrderStatus == show: (item.OrderStatus == 1 || item.OrderStatus == 3 || item.OrderStatus ==
4) && item.DueinMoney == 0 && item.OrderStatus != 4 || item.OrderStatus == 5) && item.DueinMoney == 0 ? true : false
2 && item.OrderStatus != 5 && item.OrderStatus !=
6 ? true : false
}, },
{ {
Name: '订单完结', Name: '订单完结',
......
<template>
<div style="display:flex;flex-direction:column;height:100vh">
<el-tabs v-model="activeName" class="hide-tabs-content" @tab-click="changeTypeHandler" style="margin-left:10px;padding-bottom:10px;" v-if="queryTime.queryType==0">
<el-tab-pane label="引流数据" name="xiansuo"></el-tab-pane>
<el-tab-pane label="订单数据" name="order"></el-tab-pane>
</el-tabs>
<div v-if="queryTime.queryType!=3" v-show="activeName=='xiansuo'" style="flex:1">
<clueComponent :isDrawer="true" :title="formatDrawTitle" :queryTime="queryTime"></clueComponent>
</div>
<div class="tools" v-if="queryTime.queryType==3||queryTime.queryType==0" v-show="activeName=='order'">
<div class="tools-item">
<el-tag class="f12" size="medium" style="margin-top:10px;margin-left:10px;">{{formatDrawTitle}}</el-tag>
</div>
</div>
<div style="flex:1;overflow-y:auto;" v-if="queryTime.queryType==3||queryTime.queryType==0" v-show="activeName=='order'">
<orderList :dataList="dataList" :loading="loading"></orderList>
</div>
<div v-show="activeName=='order'" v-if="queryTime.queryType==3||queryTime.queryType==0">
<el-pagination class="Mypagination" background @current-change="handleCurrentChange"
:page-sizes="[15, 30, 60, 90, 100]" :page-size="msg.pageSize" layout="total, sizes, prev, pager, next"
@size-change="handleSizeChange" :total="total">
</el-pagination>
</div>
</div>
</template>
<script>
import clueComponent from "@/components/clueManagement/clueComponent";
import orderList from "../customerManage/orderList.vue";
export default {
inject: ["selfParams"],
data() {
return {
msg: {
pageIndex: 1,
pageSize: 15,
OrderId: "", //订单id
GuestName: "", //客人姓名
GuestId: "", //客人id
StartCityName: "", //出发城市
EndCityName: "", //到达城市
EnterID: "", //业务员id
CreateBy: "", //引流员id
TicketStatus: "0", //出票状态
VisaStatus: "0", //出签状态
OrderStatus: "0", //订单状态
Q_IsCollect: "0", //收款状态
StartTime: "", //订单开始时间
EndTime: "", //订单结束时间
OrderType: "", //订单类型
},
dataList: [],
MultipleChoiceList: [
//多选项目
{
Name: "机票",
Id: "1",
show: false,
},
{
Name: "签证",
Id: "2",
show: false,
},
{
Name: "地接",
Id: "3",
show: false,
},
{
Name: "套餐",
Id: "4",
show: false,
},
{
Name: "其他",
Id: "5",
show: false,
},
],
loading: true,
total: 0,
activeName: "xiansuo",
formatDrawTitle: "",
};
},
computed: {
queryTime() {
return this.selfParams.queryTime;
},
},
components: {
clueComponent,
orderList,
},
created() {
this.formatDrawTitle = this.formatTitleHandler(
this.queryTime.queryType,
this.queryTime.queryVal
);
if (this.queryTime.queryType == 3 || this.queryTime.queryType == 0) {
this.msg.StartTime = this.queryTime.StartTime;
this.msg.EndTime = this.queryTime.EndTime;
this.msg.OrderType = this.queryTime.OrderType;
this.getList();
this.activeName = this.queryTime.queryType == 3 ? "order" : "xiansuo";
}
},
mounted() {},
methods: {
changeTypeHandler() {
this.formatDrawTitle = this.formatTitleHandler(
this.activeName == "xiansuo" ? 0 : 3,
""
);
},
getList() {
this.loading = true;
this.apipost(
"/api/Order/GetGuestOrderStatisticsPageList",
this.msg,
(res) => {
if (res.data.resultCode == 1) {
let data = res.data.data.Data.pageData;
let addList = function(arr) {
arr.forEach((item) => {
item.More = "";
item.actuallyReceived = false;
item.cost = false;
item.selectedType = "";
item.checkList = [];
item.MultipleChoiceList = [];
item.MoreList = [
{
Name: "取消订单",
Id: "1",
show:
item.OrderStatus != 2 &&
item.OrderStatus != 5 &&
item.OrderStatus != 6
? true
: false,
},
{
Name: "订单转交",
Id: "2",
show: true,
},
{
Name: "修改订单金额",
Id: "3",
show:
item.OrderStatus != 2 &&
item.OrderStatus != 5 &&
item.OrderStatus != 6 &&
(item.TicketStatus == 1 || item.VisaStatus == 1)
? true
: false,
},
{
Name: "修改出票状态",
Id: "4",
show:
item.OrderStatus != 2 &&
item.OrderStatus != 5 &&
item.OrderStatus != 6 &&
item.TicketStatus < 3
? true
: false,
},
{
Name: "修改出签状态",
Id: "5",
show:
item.OrderStatus != 2 &&
item.OrderStatus != 5 &&
item.OrderStatus != 6 &&
item.VisaStatus == 1
? true
: false,
},
{
Name: "订单收损",
Id: "8",
show:
item.OrderStatus != 2 &&
item.OrderStatus != 5 &&
item.OrderStatus != 6
? true
: false,
},
{
Name: "收损完结",
Id: "9",
show:
(item.OrderStatus == 3 || item.OrderStatus == 4) &&
item.DueinMoney == 0 &&
item.OrderStatus != 2 &&
item.OrderStatus != 5 &&
item.OrderStatus != 6
? true
: false,
},
{
Name: "订单完结",
Id: "6",
show:
item.OrderStatus == 1 && item.DueinMoney == 0
? true
: false,
},
{
Name: "操作日志",
Id: "7",
show: true,
},
];
});
};
addList(data);
data.forEach((item) => {
if (item.OrderType) {
let list = item.OrderType && item.OrderType.split(",");
for (let j = 0; j < list.length; j++) {
for (let i = 0; i < this.MultipleChoiceList.length; i++) {
if (list[j] == this.MultipleChoiceList[i].Id) {
item.MultipleChoiceList.push(
JSON.parse(JSON.stringify(this.MultipleChoiceList[i]))
);
}
}
}
}
if (item.LossList.length > 0) {
for (let i = 0; i < item.LossList.length; i++) {
for (let j = 0; j < item.MultipleChoiceList.length; j++) {
if (
item.LossList[i].OrderType ==
item.MultipleChoiceList[j].Id
) {
item.MultipleChoiceList[j].show = true;
}
}
}
}
});
this.dataList = res.data.data.Data.pageData;
this.total = res.data.data.Data.count;
this.loading = false;
} else {
this.$message.error(res.data.message);
this.loading = false;
}
}
);
},
formatTitleHandler(type, val) {
let dateStr =
this.queryTime.StartTime != this.queryTime.EndTime
? this.queryTime.StartTime + " 至 " + this.queryTime.EndTime
: this.queryTime.StartTime;
if (type == 0) {
return `${dateStr} 全部引流信息`;
} else if (type == 1) {
return `${dateStr} ${
val == "0" ? "全部" : val == "1" ? "有效" : "无效"
}引流信息`;
} else if (type == 2) {
let typeStr = "";
switch (val) {
case "1":
typeStr = "社群聊天";
break;
case "2":
typeStr = "线下拜访";
break;
case "3":
typeStr = "直客介绍";
break;
case "4":
typeStr = "同行介绍";
break;
case "6":
typeStr = "其它";
break;
case "7":
typeStr = "小红书";
break;
case "8":
typeStr = "飞猪";
break;
case "9":
typeStr = "抖音";
break;
}
return `${dateStr} 来源于:${typeStr}引流信息`;
} else if (type == 3) {
let typeStr = "";
switch (val) {
case "1":
typeStr = "机票";
break;
case "2":
typeStr = "签证";
break;
case "3":
typeStr = "地接";
break;
case "4":
typeStr = "套餐";
break;
case "":
typeStr = "全部";
break;
}
return `${dateStr} 转化的${typeStr}类型订单`;
}
},
handleSizeChange(val) {
this.msg.pageSize = val;
this.getList();
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
},
};
</script>
<style>
</style>
...@@ -33,58 +33,118 @@ ...@@ -33,58 +33,118 @@
</template> </template>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="PushCount" label="引流总数"> <el-table-column label="引流总数">
<template slot-scope="scope">
<span v-if="scope.row.YearStr>0&&scope.row.MonthStr>0" class="pointer" @click="seeDetails(scope.row,1,'0')">{{scope.row.PushCount}}</span>
<span v-else>{{scope.row.PushCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="EffectiveCount" label="有效总数"> <el-table-column label="有效总数">
<template slot-scope="scope">
<span v-if="scope.row.YearStr>0&&scope.row.MonthStr>0" class="pointer" @click="seeDetails(scope.row,1,'1')">{{scope.row.EffectiveCount}}</span>
<span v-else>{{scope.row.EffectiveCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="InvalidCount" label="无效总数"> <el-table-column label="无效总数">
<template slot-scope="scope">
<span v-if="scope.row.YearStr>0&&scope.row.MonthStr>0" class="pointer" @click="seeDetails(scope.row,1,'2')">{{scope.row.InvalidCount}}</span>
<span v-else>{{scope.row.InvalidCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="RedBookCount" label="小红书总数"> <el-table-column label="小红书总数">
<template slot-scope="scope">
<span v-if="scope.row.YearStr>0&&scope.row.MonthStr>0" class="pointer" @click="seeDetails(scope.row,2,'7')">{{scope.row.RedBookCount}}</span>
<span v-else>{{scope.row.RedBookCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="DouYinCount" label="抖音总数"> <el-table-column prop="DouYinCount" label="抖音总数">
<template slot-scope="scope">
<span v-if="scope.row.YearStr>0&&scope.row.MonthStr>0" class="pointer" @click="seeDetails(scope.row,2,'9')">{{scope.row.DouYinCount}}</span>
<span v-else>{{scope.row.DouYinCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="FlyingPigCount" label="飞猪总数"> <el-table-column label="飞猪总数">
<template slot-scope="scope">
<span v-if="scope.row.YearStr>0&&scope.row.MonthStr>0" class="pointer" @click="seeDetails(scope.row,2,'8')">{{scope.row.FlyingPigCount}}</span>
<span v-else>{{scope.row.FlyingPigCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="GroupChatCount" label="社群聊天总数"> <el-table-column label="社群聊天总数">
<template slot-scope="scope">
<span v-if="scope.row.YearStr>0&&scope.row.MonthStr>0" class="pointer" @click="seeDetails(scope.row,2,'1')">{{scope.row.GroupChatCount}}</span>
<span v-else>{{scope.row.GroupChatCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="OfflineVisitCount" label="线下拜访总数"> <el-table-column label="线下拜访总数">
<template slot-scope="scope">
<span v-if="scope.row.YearStr>0&&scope.row.MonthStr>0" class="pointer" @click="seeDetails(scope.row,2,'2')">{{scope.row.OfflineVisitCount}}</span>
<span v-else>{{scope.row.OfflineVisitCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="StraightCustomerCount" label="直客介绍总数"> <el-table-column label="直客介绍总数">
<template slot-scope="scope">
<span v-if="scope.row.YearStr>0&&scope.row.MonthStr>0" class="pointer" @click="seeDetails(scope.row,2,'3')">{{scope.row.StraightCustomerCount}}</span>
<span v-else>{{scope.row.StraightCustomerCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="PeerCount" label="同业介绍总数"> <el-table-column label="同业介绍总数">
<template slot-scope="scope">
<span v-if="scope.row.YearStr>0&&scope.row.MonthStr>0" class="pointer" @click="seeDetails(scope.row,2,'4')">{{scope.row.PeerCount}}</span>
<span v-else>{{scope.row.PeerCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="OtherCount" label="其他介绍总数"> <el-table-column label="其他介绍总数">
<template slot-scope="scope">
<span v-if="scope.row.YearStr>0&&scope.row.MonthStr>0" class="pointer" @click="seeDetails(scope.row,2,'6')">{{scope.row.OtherCount}}</span>
<span v-else>{{scope.row.OtherCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="OrderCount" label="订单总数"> <el-table-column label="订单总数">
<template slot-scope="scope">
<span v-if="scope.row.YearStr>0&&scope.row.MonthStr>0" class="pointer" @click="seeDetails(scope.row,3,'')">{{scope.row.OrderCount}}</span>
<span v-else>{{scope.row.OrderCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="TicketOrderCount" label="机票订单总数"> <el-table-column label="机票订单总数">
<template slot-scope="scope">
<span v-if="scope.row.YearStr>0&&scope.row.MonthStr>0" class="pointer" @click="seeDetails(scope.row,3,'1')">{{scope.row.TicketOrderCount}}</span>
<span v-else>{{scope.row.TicketOrderCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="VisaOrderCount" label="签证订单总数"> <el-table-column label="签证订单总数">
<template slot-scope="scope">
<span v-if="scope.row.YearStr>0&&scope.row.MonthStr>0" class="pointer" @click="seeDetails(scope.row,3,'2')">{{scope.row.VisaOrderCount}}</span>
<span v-else>{{scope.row.VisaOrderCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="GroundOrderCount" label="地接订单总数"> <el-table-column label="地接订单总数">
<template slot-scope="scope">
<span v-if="scope.row.YearStr>0&&scope.row.MonthStr>0" class="pointer" @click="seeDetails(scope.row,3,'3')">{{scope.row.GroundOrderCount}}</span>
<span v-else>{{scope.row.GroundOrderCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="ComboOrderCount" label="套餐订单总数"> <el-table-column label="套餐订单总数">
<template slot-scope="scope">
<span v-if="scope.row.YearStr>0&&scope.row.MonthStr>0" class="pointer" @click="seeDetails(scope.row,3,'4')">{{scope.row.ComboOrderCount}}</span>
<span v-else>{{scope.row.ComboOrderCount}} </span>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<el-drawer :with-header="false" size='70%' :visible.sync="drawer" direction="rtl" :before-close="handleClose"> <el-drawer :with-header="false" size='80%' :visible.sync="drawer" direction="rtl" :before-close="handleClose">
<clueComponent :isDrawer="isDrawer" :queryTime="queryTime"></clueComponent> <rightDrawer v-if="drawer"></rightDrawer>
</el-drawer> </el-drawer>
</div> </div>
</template> </template>
<script> <script>
import clueComponent from "@/components/clueManagement/clueComponent"; import rightDrawer from "../../components/workStatistics/rightDrawer.vue";
export default { export default {
components: { components: {
clueComponent, rightDrawer,
}, },
data() { data() {
return { return {
queryTime: {
StartTime: "",
EndTime: "",
},
drawer: false, drawer: false,
isDrawer: true, isDrawer: true,
msg: { msg: {
...@@ -95,6 +155,14 @@ export default { ...@@ -95,6 +155,14 @@ export default {
total: 0, total: 0,
tableData: [], tableData: [],
loading: false, loading: false,
selfParams: {
queryTime: {},
},
};
},
provide() {
return {
selfParams: this.selfParams,
}; };
}, },
created() { created() {
...@@ -111,15 +179,30 @@ export default { ...@@ -111,15 +179,30 @@ export default {
done(); done();
}, },
// 查看详情 // 查看详情
seeDetails(row) { seeDetails(row, type = 0, val = "0") {
var d = new Date(); var d = new Date();
var currentY = this.msg.YearStr; var currentY = this.msg.YearStr;
var currentM = this.msg.MonthStr; var currentM = this.msg.MonthStr;
var MonthDayNum = new Date(currentY, currentM, 0).getDate(); //计算当月的天数 var MonthDayNum = new Date(currentY, currentM, 0).getDate(); //计算当月的天数
this.queryTime.StartTime = this.msg.YearStr + "-" + row.DateStr; this.selfParams.queryTime.StartTime =
this.queryTime.EndTime = this.msg.YearStr + "-" + row.DateStr; this.msg.YearStr + "-" + row.DateStr;
this.selfParams.queryTime.EndTime = this.msg.YearStr + "-" + row.DateStr;
delete this.selfParams.queryTime.ClueState;
delete this.selfParams.queryTime.CustomerSourceType;
this.selfParams.queryTime.OrderType = "";
this.selfParams.queryTime.queryType = type;
this.selfParams.queryTime.queryVal = val;
if (type == 1) {
this.selfParams.queryTime.ClueState = val;
} else if (type == 2) {
this.selfParams.queryTime.CustomerSourceType = val;
} else if (type == 3) {
this.selfParams.queryTime.OrderType = val;
}
this.drawer = true; this.drawer = true;
}, },
init() { init() {
if (this.loading) return; if (this.loading) return;
this.loading = true; this.loading = true;
......
...@@ -36,37 +36,122 @@ ...@@ -36,37 +36,122 @@
</template> </template>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="PushCount" label="引流总数"> <el-table-column label="引流总数">
<template slot-scope="scope">
<span v-if="scope.row.MonthStr>0" class="pointer"
@click="seeDetails(scope.row,1,'0')">{{scope.row.PushCount}}</span>
<span v-else>{{scope.row.PushCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="EffectiveCount" label="有效总数"> <el-table-column label="有效总数">
<template slot-scope="scope">
<span v-if="scope.row.MonthStr>0" class="pointer"
@click="seeDetails(scope.row,1,'1')">{{scope.row.EffectiveCount}}</span>
<span v-else>{{scope.row.EffectiveCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="InvalidCount" label="无效总数"> <el-table-column label="无效总数">
<template slot-scope="scope">
<span v-if="scope.row.MonthStr>0" class="pointer"
@click="seeDetails(scope.row,1,'2')">{{scope.row.InvalidCount}}</span>
<span v-else>{{scope.row.InvalidCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="RedBookCount" label="小红书总数"> <el-table-column label="小红书总数">
<template slot-scope="scope">
<span v-if="scope.row.MonthStr>0" class="pointer"
@click="seeDetails(scope.row,2,'7')">{{scope.row.RedBookCount}}</span>
<span v-else>{{scope.row.RedBookCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="DouYinCount" label="抖音总数"> <el-table-column prop="DouYinCount" label="抖音总数">
<template slot-scope="scope">
<span v-if="scope.row.MonthStr>0" class="pointer"
@click="seeDetails(scope.row,2,'9')">{{scope.row.DouYinCount}}</span>
<span v-else>{{scope.row.DouYinCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="FlyingPigCount" label="飞猪总数"> <el-table-column label="飞猪总数">
<template slot-scope="scope">
<span v-if="scope.row.MonthStr>0" class="pointer"
@click="seeDetails(scope.row,2,'8')">{{scope.row.FlyingPigCount}}</span>
<span v-else>{{scope.row.FlyingPigCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="GroupChatCount" label="社群聊天总数"> <el-table-column label="社群聊天总数">
<template slot-scope="scope">
<span v-if="scope.row.MonthStr>0" class="pointer"
@click="seeDetails(scope.row,2,'1')">{{scope.row.GroupChatCount}}</span>
<span v-else>{{scope.row.GroupChatCount}} </span>
</template>
</el-table-column>
<el-table-column label="线下拜访总数">
<template slot-scope="scope">
<span v-if="scope.row.MonthStr>0" class="pointer"
@click="seeDetails(scope.row,2,'2')">{{scope.row.OfflineVisitCount}}</span>
<span v-else>{{scope.row.OfflineVisitCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="OfflineVisitCount" label="线下拜访总数"> <el-table-column label="直客介绍总数">
<template slot-scope="scope">
<span v-if="scope.row.MonthStr>0" class="pointer"
@click="seeDetails(scope.row,2,'3')">{{scope.row.StraightCustomerCount}}</span>
<span v-else>{{scope.row.StraightCustomerCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="StraightCustomerCount" label="直客介绍总数"> <el-table-column label="同业介绍总数">
<template slot-scope="scope">
<span v-if="scope.row.MonthStr>0" class="pointer"
@click="seeDetails(scope.row,2,'4')">{{scope.row.PeerCount}}</span>
<span v-else>{{scope.row.PeerCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="PeerCount" label="同业介绍总数"> <el-table-column label="其他介绍总数">
<template slot-scope="scope">
<span v-if="scope.row.MonthStr>0" class="pointer"
@click="seeDetails(scope.row,2,'6')">{{scope.row.OtherCount}}</span>
<span v-else>{{scope.row.OtherCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="OtherCount" label="其他介绍总数"> <el-table-column label="订单总数">
<template slot-scope="scope">
<span v-if="scope.row.MonthStr>0" class="pointer"
@click="seeDetails(scope.row,3,'')">{{scope.row.OrderCount}}</span>
<span v-else>{{scope.row.OrderCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="OrderCount" label="订单总数"> <el-table-column label="成交率">
<template slot-scope="scope">
<span>{{scope.row.TransRate}}% </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="TicketOrderCount" label="机票订单总数"> <el-table-column label="机票订单总数">
<template slot-scope="scope">
<span v-if="scope.row.MonthStr>0" class="pointer"
@click="seeDetails(scope.row,3,'1')">{{scope.row.TicketOrderCount}}</span>
<span v-else>{{scope.row.TicketOrderCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="VisaOrderCount" label="签证订单总数"> <el-table-column label="签证订单总数">
<template slot-scope="scope">
<span v-if="scope.row.MonthStr>0" class="pointer"
@click="seeDetails(scope.row,3,'2')">{{scope.row.VisaOrderCount}}</span>
<span v-else>{{scope.row.VisaOrderCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="GroundOrderCount" label="地接订单总数"> <el-table-column label="地接订单总数">
<template slot-scope="scope">
<span v-if="scope.row.MonthStr>0" class="pointer"
@click="seeDetails(scope.row,3,'3')">{{scope.row.GroundOrderCount}}</span>
<span v-else>{{scope.row.GroundOrderCount}} </span>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="ComboOrderCount" label="套餐订单总数"> <el-table-column label="套餐订单总数">
<template slot-scope="scope">
<span v-if="scope.row.MonthStr>0" class="pointer"
@click="seeDetails(scope.row,3,'4')">{{scope.row.ComboOrderCount}}</span>
<span v-else>{{scope.row.ComboOrderCount}} </span>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
...@@ -108,24 +193,20 @@ ...@@ -108,24 +193,20 @@
</div> </div>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<el-drawer :with-header="false" size='70%' :visible.sync="drawer" direction="rtl" :before-close="handleClose"> <el-drawer :with-header="false" size='80%' :visible.sync="drawer" direction="rtl" :before-close="handleClose">
<clueComponent :isDrawer="isDrawer" :queryTime="queryTime"></clueComponent> <rightDrawer v-if="drawer"></rightDrawer>
</el-drawer> </el-drawer>
</div> </div>
</template> </template>
<script> <script>
import clueComponent from "@/components/clueManagement/clueComponent"; import rightDrawer from "../../components/workStatistics/rightDrawer.vue";
export default { export default {
components: { components: {
clueComponent rightDrawer,
}, },
data() { data() {
return { return {
queryTime: {
StartTime: '',
EndTime: ''
},
drawer: false, drawer: false,
isDrawer: true, isDrawer: true,
msg: { msg: {
...@@ -138,6 +219,14 @@ ...@@ -138,6 +219,14 @@
rateLoading: false, rateLoading: false,
activeName: "monthdata", activeName: "monthdata",
rateData: [], rateData: [],
selfParams: {
queryTime: {},
},
};
},
provide() {
return {
selfParams: this.selfParams,
}; };
}, },
created() { created() {
...@@ -154,19 +243,34 @@ ...@@ -154,19 +243,34 @@
done(); done();
}, },
// 查看详情 // 查看详情
seeDetails(row) { seeDetails(row, type = 0, val = "0") {
var d = new Date(); var d = new Date();
var currentY = this.msg.YearStr; var currentY = this.msg.YearStr;
var currentM = this.msg.month; var currentM = this.msg.month;
if (row.DateStr.length == 2) { if (row.DateStr.length == 2) {
currentM = '0' + row.DateStr.slice(0, 1) currentM = "0" + row.DateStr.slice(0, 1);
} else { } else {
currentM = row.DateStr.slice(0, 2) currentM = row.DateStr.slice(0, 2);
} }
var MonthDayNum = new Date(currentY, currentM, 0).getDate(); //计算当月的天数 var MonthDayNum = new Date(currentY, currentM, 0).getDate(); //计算当月的天数
this.queryTime.StartTime = this.msg.YearStr + '-' + currentM + '-01' this.selfParams.queryTime.StartTime =
this.queryTime.EndTime = currentY + '-' + currentM + '-' + MonthDayNum this.msg.YearStr + "-" + currentM + "-01";
this.drawer = true this.selfParams.queryTime.EndTime =
currentY + "-" + currentM + "-" + MonthDayNum;
delete this.selfParams.queryTime.ClueState;
delete this.selfParams.queryTime.CustomerSourceType;
this.selfParams.queryTime.OrderType = "";
this.selfParams.queryTime.queryType = type;
this.selfParams.queryTime.queryVal = val;
if (type == 1) {
this.selfParams.queryTime.ClueState = val;
} else if (type == 2) {
this.selfParams.queryTime.CustomerSourceType = val;
} else if (type == 3) {
this.selfParams.queryTime.OrderType = val;
}
this.drawer = true;
}, },
init() { init() {
if (this.loading) return; if (this.loading) return;
...@@ -214,7 +318,8 @@ ...@@ -214,7 +318,8 @@
column column
}) { }) {
if ( if (
row[column.property] && row[column.property].toString().indexOf("-") != -1 && row[column.property] &&
row[column.property].toString().indexOf("-") != -1 &&
column.property != "DateStr" column.property != "DateStr"
) { ) {
return "warning-col"; return "warning-col";
......
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