Commit c6dd9192 authored by zhengke's avatar zhengke

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

parents a4a52c8e 12c434eb
...@@ -5,19 +5,38 @@ ...@@ -5,19 +5,38 @@
<el-card class="rank-card" shadow="never"> <el-card class="rank-card" shadow="never">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="4">
<span>排行榜</span> <span>排行榜</span>
</el-col> </el-col>
<el-col :span="12" class="option-item" style="display:flex;align-items:center;flex-direction: row-reverse;"> <el-col :span="20" class="option-item" style="display:flex;align-items:center;flex-direction: row-reverse;">
<el-select v-model="rankMsg.RankType" size="mini" style="width:120px;" placeholder="请选择" <el-select v-model="rankMsg.RankType" size="mini" style="width:120px;" placeholder="请选择"
@change="GetRankingList"> @change="GetRankingList">
<el-option v-for="(x,i) in rankTypeList" :key="i" :label="x.name" :value="x.id"></el-option> <el-option v-for="(x,i) in rankTypeList" :key="i" :label="x.name" :value="x.id"></el-option>
</el-select> </el-select>
<div style="width:235px;margin-right:25px;"> <div v-if="diyDateRange==''">
<el-button plain size="mini" class="hide_input_time" style="margin:0 25px;">自定义日期
<el-date-picker
v-model="diyDateRange"
type="daterange"
align="right"
unlink-panels
ref="diydateRef"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
@change="setDiyDateRange"
value-format="yyyy-MM-dd"
:picker-options="pickerOptions">
</el-date-picker>
</el-button>
</div>
<div style="width:235px;" v-if="diyDateRange==''">
<el-tabs v-model="currentRankRange" @tab-click="changeRankTypeHandler" class="hide-tabs-content"> <el-tabs v-model="currentRankRange" @tab-click="changeRankTypeHandler" class="hide-tabs-content">
<el-tab-pane v-for="(x,i) in dataRangeList" :key="i" :label="x.name" :name="x.id.toString()"></el-tab-pane> <el-tab-pane v-for="(x,i) in dataRangeList" :key="i" :label="x.name" :name="x.id.toString()"></el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
<el-tag class="f12" size="medium" @close="clearDiyDateRange" closable v-if="diyDateRange!=''" style="margin-right:25px;">自定义日期:{{diyDateRange[0]}}{{diyDateRange[1]}}</el-tag>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
...@@ -390,6 +409,37 @@ export default { ...@@ -390,6 +409,37 @@ export default {
}, },
data() { data() {
return { return {
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
rankType: 1, rankType: 1,
rankType2: "1", rankType2: "1",
RankingList: [], RankingList: [],
...@@ -443,6 +493,7 @@ export default { ...@@ -443,6 +493,7 @@ export default {
type: "3", type: "3",
}, },
], ],
diyDateRange: "",
currentRankType: {}, currentRankType: {},
currentRankRange: "2", currentRankRange: "2",
rankMsg: { rankMsg: {
...@@ -514,6 +565,18 @@ export default { ...@@ -514,6 +565,18 @@ export default {
this.dataRangeList[3].startTime = this.formatDate(date, "YYYY", 0); this.dataRangeList[3].startTime = this.formatDate(date, "YYYY", 0);
this.dataRangeList[3].endTime = this.dataRangeList[3].startTime; this.dataRangeList[3].endTime = this.dataRangeList[3].startTime;
}, },
clearDiyDateRange() {
this.diyDateRange = "";
this.changeRankTypeHandler();
},
setDiyDateRange() {
if (this.diyDateRange != "") {
this.rankMsg.QueryType = 1;
this.rankMsg.StartDay = this.diyDateRange[0];
this.rankMsg.EndDay = this.diyDateRange[1];
this.GetRankingList();
}
},
changeRankTypeHandler() { changeRankTypeHandler() {
this.clearRankMsgHandler(); this.clearRankMsgHandler();
let temp = this.dataRangeList.find( let temp = this.dataRangeList.find(
...@@ -1050,4 +1113,13 @@ export default { ...@@ -1050,4 +1113,13 @@ export default {
.hide-tabs-content .el-tabs__nav-wrap::after { .hide-tabs-content .el-tabs__nav-wrap::after {
background: none !important; background: none !important;
} }
.hide_input_time {
position: relative !important;
}
.hide_input_time .el-date-editor {
position: absolute;
top: 0;
left: 0;
opacity: 0;
}
</style> </style>
...@@ -293,8 +293,9 @@ ...@@ -293,8 +293,9 @@
VisaStatus:"0",//出签状态 VisaStatus:"0",//出签状态
OrderStatus:"0",//订单状态 OrderStatus:"0",//订单状态
Q_IsCollect:"0",//收款状态 Q_IsCollect:"0",//收款状态
StartTime:"", StartTime:"",//订单开始时间
EndTime:"" EndTime:"",//订单结束时间
OrderType:"",//订单类型
}, },
ticketingStatusList:[],// 出票状态 ticketingStatusList:[],// 出票状态
OrderStatusList:[], OrderStatusList:[],
......
...@@ -275,8 +275,9 @@ ...@@ -275,8 +275,9 @@
VisaStatus:"0",//出签状态 VisaStatus:"0",//出签状态
OrderStatus:"0",//订单状态 OrderStatus:"0",//订单状态
Q_IsCollect:"0",//收款状态 Q_IsCollect:"0",//收款状态
StartTime:"2022-04-28", StartTime:"",//订单开始时间
EndTime:"" EndTime:"",//订单结束时间
OrderType:"",//订单类型
}, },
ticketingStatusList:[],// 出票状态 ticketingStatusList:[],// 出票状态
OrderStatusList:[], OrderStatusList:[],
......
...@@ -3,126 +3,139 @@ ...@@ -3,126 +3,139 @@
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
.add-Enclosure-left { .add-Enclosure-left {
display: flex; display: flex;
} }
.item-but-box { .item-but-box {
display: flex; display: flex;
} }
.item-but { .item-but {
margin-right: 10px; margin-right: 10px;
} }
.numIcon { .numIcon {
font-size: 12px; font-size: 12px;
padding: 5px; padding: 5px;
color: #409eff; color: #409eff;
} }
.numIcon:hover{
.numIcon:hover {
cursor: pointer; cursor: pointer;
} }
.tatusText.grey { .tatusText.grey {
color: grey; color: grey;
} }
.tatusText.success { .tatusText.success {
color: #21BA45; color: #21BA45;
} }
.tatusText.error { .tatusText.error {
color: #F2C037; color: #F2C037;
} }
.tatusText.Black { .tatusText.Black {
color: Black; color: Black;
} }
.ToBeReceived.red { .ToBeReceived.red {
color: #fd397a; color: #fd397a;
} }
.ToBeReceived.blue { .ToBeReceived.blue {
color: #409eff; color: #409eff;
} }
.income_1 { .income_1 {
color: #2961FE; color: #2961FE;
cursor: pointer; cursor: pointer;
} }
.income_2 { .income_2 {
color: #3FC4FF; color: #3FC4FF;
cursor: pointer; cursor: pointer;
} }
.enedit-box { .enedit-box {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.select-right { .select-right {
margin-left: 5px; margin-left: 5px;
} }
.Credentials { .Credentials {
color: #2961FE; color: #2961FE;
cursor: pointer; cursor: pointer;
} }
.agreement-IncomeMoney-box{
.agreement-IncomeMoney-box {
/* position: relative; */ /* position: relative; */
} }
.agreement-IncomeMoney-box .numIcon{
.agreement-IncomeMoney-box .numIcon {
position: relative; position: relative;
} }
.agreement-IncomeMoney-pop{
.agreement-IncomeMoney-pop {
position: absolute; position: absolute;
top: -15px; top: -15px;
left: 30px; left: 30px;
z-index: 1; z-index: 1;
background: #fff; background: #fff;
padding: 10px 19px 10px 19px; padding: 10px 19px 10px 19px;
Box-shadow:5px 5px 10px 5px #ccc; Box-shadow: 5px 5px 10px 5px #ccc;
} }
/deep/.Agreement-Business .el-table .cell{
/deep/.Agreement-Business .el-table .cell {
overflow: initial !important; overflow: initial !important;
} }
.agreement-Cancel{
.agreement-Cancel {
text-align: right; text-align: right;
color: #409eff; color: #409eff;
} }
.agreement-Cancel span:first-child{
.agreement-Cancel span:first-child {
color: #999999; color: #999999;
margin-right: 20px; margin-right: 20px;
} }
.agreement-Cancel span:hover{
.agreement-Cancel span:hover {
cursor: pointer; cursor: pointer;
} }
.float-flag-shape{
position: absolute; .float-flag-shape {
top:20px; position: absolute;
top: 20px;
border: 1px solid #fff; border: 1px solid #fff;
height: 0; height: 0;
width: 0; width: 0;
border-left: 4px solid rgba(0,0,0,0); border-left: 4px solid rgba(0, 0, 0, 0);
border-right: 4px solid #fff; border-right: 4px solid #fff;
border-top: 3px solid rgba(0,0,0,0); border-top: 3px solid rgba(0, 0, 0, 0);
border-bottom: 3px solid #fff; border-bottom: 3px solid #fff;
left:-8px; left: -8px;
} }
/deep/.el-table .cell.el-tooltip{
/deep/.el-table .cell.el-tooltip {
overflow: hidden !important; overflow: hidden !important;
} }
/deep/.classorder .Agreement-Business table th{
text-indent:0 !important; /deep/.classorder .Agreement-Business table th {
text-indent: 0 !important;
} }
/deep/.el-table th>.cell{
/deep/.el-table th>.cell {
text-align: left !important; text-align: left !important;
} }
.OrderType-text-box{
.OrderType-text-box {
word-break: break-word; word-break: break-word;
word-wrap: break-word; word-wrap: break-word;
white-space: -moz-pre-wrap; white-space: -moz-pre-wrap;
...@@ -131,19 +144,22 @@ ...@@ -131,19 +144,22 @@
white-space: -pre-wrap; white-space: -pre-wrap;
white-space: pre; white-space: pre;
white-space: pre-wrap; white-space: pre-wrap;
white-space: pre-line; white-space: pre-line;
} }
.text-underline{
.text-underline {
font-size: 16px; font-size: 16px;
color: rgb(41, 97, 254); color: rgb(41, 97, 254);
margin-right: 10px; margin-right: 10px;
font-weight: bold; font-weight: bold;
cursor: pointer; cursor: pointer;
} }
.OrderType-text-box .text-underline:hover{
.OrderType-text-box .text-underline:hover {
text-decoration: underline; text-decoration: underline;
} }
.OrderType-text{
.OrderType-text {
font-size: 10px; font-size: 10px;
font-weight: 100; font-weight: 100;
margin-left: 5px; margin-left: 5px;
...@@ -152,302 +168,287 @@ ...@@ -152,302 +168,287 @@
padding: 0 1px; padding: 0 1px;
margin-bottom: 2px; margin-bottom: 2px;
} }
.OrderType-text-box .OrderType-text:nth-child(2){
.OrderType-text-box .OrderType-text:nth-child(2) {
margin-left: 0; margin-left: 0;
} }
.OrderType-text.one{
.OrderType-text.one {
color: rgb(41, 97, 254); color: rgb(41, 97, 254);
background-color: rgba(41, 97, 254,.2); background-color: rgba(41, 97, 254, .2);
} }
.OrderType-text.two{
.OrderType-text.two {
color: rgb(242, 140, 29); color: rgb(242, 140, 29);
background-color: rgba(242, 140, 29,.2); background-color: rgba(242, 140, 29, .2);
} }
.OrderType-text.three{
.OrderType-text.three {
color: rgb(63, 196, 255); color: rgb(63, 196, 255);
background-color: rgba(63, 196, 255,.2); background-color: rgba(63, 196, 255, .2);
} }
.OrderType-text.four{
color: rgb(255,111,0); .OrderType-text.four {
background-color: rgba(255,111,0,.2); color: rgb(255, 111, 0);
background-color: rgba(255, 111, 0, .2);
} }
.OrderType-text.five{
color: rgb(33,186,69); .OrderType-text.five {
background-color: rgba(33,186,69,.2); color: rgb(33, 186, 69);
background-color: rgba(33, 186, 69, .2);
} }
.Order-list-Status.six{
color: rgb(102,187,106); .Order-list-Status.six {
background-color: rgba(102,187,106,.2); color: rgb(102, 187, 106);
background-color: rgba(102, 187, 106, .2);
} }
</style> </style>
<template> <template>
<div class="Agreement-Business"> <div class="Agreement-Business">
<div class="add-Enclosure"> <div class="add-Enclosure">
<el-row :gutter="22"> <el-row :gutter="22">
<el-col :span="5"> <el-col :span="5">
<el-input size="mini" placeholder="输入订单ID" v-model="msg.OrderId" label="订单ID" <el-input size="mini" placeholder="输入订单ID" v-model="msg.OrderId" label="订单ID"
@keyup.enter.native="getList"></el-input> @keyup.enter.native="getList"></el-input>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<div style="display: flex;flex-direction: row;align-items: center;"> <div style="display: flex;flex-direction: row;align-items: center;">
<span class="font-size-12" style="padding-right: 10px;flex-shrink: 0;">出票状态:</span> <span class="font-size-12" style="padding-right: 10px;flex-shrink: 0;">出票状态:</span>
<el-select size="mini" width="200" v-model="msg.TicketStatus" placeholder="请选择" <el-select size="mini" width="200" v-model="msg.TicketStatus" placeholder="请选择"
@change="getList"> @change="getList">
<el-option <el-option v-for="item in ticketingStatusList" :key="item.Id" :label="item.Name"
v-for="item in ticketingStatusList" :value="item.Id"></el-option>
:key="item.Id" :label="item.Name" :value="item.Id"></el-option> </el-select>
</el-select> </div>
</div> </el-col>
</el-col> <el-col :span="5">
<el-col :span="5"> <div style="display: flex;flex-direction: row;align-items: center;">
<div style="display: flex;flex-direction: row;align-items: center;"> <span class="font-size-12" style="padding-right: 10px;flex-shrink: 0;">出签状态:</span>
<span class="font-size-12" style="padding-right: 10px;flex-shrink: 0;">出签状态:</span> <el-select size="mini" width="200" v-model="msg.VisaStatus" placeholder="请选择" @change="getList">
<el-select size="mini" width="200" v-model="msg.VisaStatus" placeholder="请选择" <el-option v-for="item in VisaList" :key="item.Id" :label="item.Name" :value="item.Id">
@change="getList"> </el-option>
<el-option </el-select>
v-for="item in VisaList" </div>
:key="item.Id" :label="item.Name" :value="item.Id"></el-option> </el-col>
</el-select> <el-col :span="5">
</div> <div style="display: flex;flex-direction: row;align-items: center;">
</el-col> <span class="font-size-12" style="padding-right: 10px;flex-shrink: 0;">订单状态:</span>
<el-col :span="5"> <el-select size="mini" width="200" v-model="msg.OrderStatus" placeholder="请选择"
<div style="display: flex;flex-direction: row;align-items: center;"> @change="getList">
<span class="font-size-12" style="padding-right: 10px;flex-shrink: 0;">订单状态:</span> <el-option v-for="item in OrderStatusList" :key="item.Id" :label="item.Name"
<el-select size="mini" width="200" v-model="msg.OrderStatus" placeholder="请选择" :value="item.Id"></el-option>
@change="getList"> </el-select>
<el-option </div>
v-for="item in OrderStatusList" </el-col>
:key="item.Id" :label="item.Name" :value="item.Id"></el-option> </el-row>
</el-select> <el-button plain icon="el-icon-plus" type="primary" size="mini" class="margin-right0" @click="addBusiness">
</div> 创建订单</el-button>
</el-col> </div>
</el-row> <div class="page-content">
<el-button plain icon="el-icon-plus" type="primary" size="mini" class="margin-right0" @click="addBusiness">创建订单</el-button> <el-table v-loading="loading" stripe ref="multipleTable" :data="dataList" tooltip-effect="dark"
</div> style="width: 100%" :height="dataList.length > 0 ? '600' : '660'" row-class-name="font-size-12">
<div class="page-content"> <el-table-column fixed label="订单号" :width="110">
<el-table <template slot-scope="scope">
v-loading="loading" <div class="OrderType-text-box" @click="clickSingleNumber(scope.row)">
stripe <p class="text-underline">{{scope.row.OrderId}}</p>
ref="multipleTable" <span class="OrderType-text" :class="[items.Id==1?'one':
:data="dataList"
tooltip-effect="dark"
style="width: 100%"
:height="dataList.length > 0 ? '600' : '660'"
row-class-name="font-size-12">
<el-table-column
fixed
label="订单号" :width="110">
<template slot-scope="scope">
<div class="OrderType-text-box" @click="clickSingleNumber(scope.row)">
<p class="text-underline">{{scope.row.OrderId}}</p>
<span class="OrderType-text"
:class="[items.Id==1?'one':
(items.Id==2?'two': (items.Id==2?'two':
(items.Id==3?'three': (items.Id==3?'three':
(items.Id==4?'four': (items.Id==4?'four':
(items.Id==5?'five':'')))),{'line-through':items.show}]" (items.Id==5?'five':'')))),{'line-through':items.show}]"
v-for="(items,index) in scope.row.MultipleChoiceList">{{items.Name}}</span> v-for="(items,index) in scope.row.MultipleChoiceList">{{items.Name}}</span>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed label="业务员" show-overflow-tooltip :width="120"> <el-table-column fixed label="业务员" show-overflow-tooltip :width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<p>{{scope.row.EnterName}}</p> <p>{{scope.row.EnterName}}</p>
<p>{{scope.row.CreateTime}}</p> <p>{{scope.row.CreateTime}}</p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="出行概述" show-overflow-tooltip :width="120"> <el-table-column label="出行概述" show-overflow-tooltip :width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<p>人数:{{scope.row.GuestCount}}</p> <p>人数:{{scope.row.GuestCount}}</p>
<p>{{scope.row.StartCityName}}</p> <p>{{scope.row.StartCityName}}</p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="应收" show-overflow-tooltip> <el-table-column label="应收" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<p @click="scope.row.TicketStatus==1&&scope.row.OrderStatus==1?editOrderAmount(scope.row):''" class="cp" <p @click="scope.row.TicketStatus==1&&scope.row.OrderStatus==1?editOrderAmount(scope.row):''"
:class="scope.row.TicketStatus==1&&scope.row.OrderStatus==1?'font-color-link':''">{{scope.row.Money}}</p> class="cp"
</template> :class="scope.row.TicketStatus==1&&scope.row.OrderStatus==1?'font-color-link':''">
</el-table-column> {{scope.row.Money}}</p>
<el-table-column label="实收" :width="120"> </template>
<template slot-scope="scope"> </el-table-column>
<el-table-column label="实收" :width="120">
<template slot-scope="scope">
<div class="agreement-IncomeMoney-box"> <div class="agreement-IncomeMoney-box">
{{scope.row.IncomeMoney}} {{scope.row.IncomeMoney}}
<i v-if="scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5" <i v-if="scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5"
@click="makeAdocument(scope.row,scope.$index,1)" @click="makeAdocument(scope.row,scope.$index,1)" class="iconfont iconjia- numIcon">
class="iconfont iconjia- numIcon"> <div v-show="scope.row.actuallyReceived" class="agreement-IncomeMoney-pop">
<div v-show="scope.row.actuallyReceived" class="agreement-IncomeMoney-pop"> <div class="float-flag-shape"></div>
<div class="float-flag-shape"></div> <el-checkbox-group v-model="scope.row.checkList"
<el-checkbox-group v-model="scope.row.checkList" @change="clickMultipleChoice(scope.row,scope.$index,1)">
@change="clickMultipleChoice(scope.row,scope.$index,1)"> <el-checkbox v-for="(item,index) in scope.row.MultipleChoiceList" :key="index"
<el-checkbox v-for="(item,index) in scope.row.MultipleChoiceList" :key="index" :label="item.Id">{{item.Name}}</el-checkbox>
:label="item.Id">{{item.Name}}</el-checkbox> </el-checkbox-group>
</el-checkbox-group> <div class="agreement-Cancel">
<div class="agreement-Cancel"> <span @click.stop="popCancelClick(scope.row,scope.$index,1)">取消</span>
<span @click.stop="popCancelClick(scope.row,scope.$index,1)">取消</span> <span @click.stop="popClick(scope.row,scope.$index,1)">确定</span>
<span @click.stop="popClick(scope.row,scope.$index,1)">确定</span> </div>
</div> </div>
</i>
</div>
</i>
</div> </div>
</template>
</el-table-column> </template>
<el-table-column label="退款" :width="120"> </el-table-column>
<template slot-scope="scope"> <el-table-column label="退款" :width="120">
<template slot-scope="scope">
{{scope.row.BackMoney}}<i v-if="scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5" {{scope.row.BackMoney}}<i v-if="scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5"
@click="makeAdocument(scope.row,scope.$index,2)" class="iconfont iconjia- numIcon"></i> @click="makeAdocument(scope.row,scope.$index,2)" class="iconfont iconjia- numIcon"></i>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="成本" :width="120"> <el-table-column label="成本" :width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="agreement-IncomeMoney-box"> <div class="agreement-IncomeMoney-box">
{{scope.row.PayMoney}}<i v-if="scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5" {{scope.row.PayMoney}}<i v-if="scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5"
@click="makeAdocument(scope.row,scope.$index,3)" class="iconfont iconjia- numIcon"> @click="makeAdocument(scope.row,scope.$index,3)" class="iconfont iconjia- numIcon">
<div v-show="scope.row.cost" class="agreement-IncomeMoney-pop"> <div v-show="scope.row.cost" class="agreement-IncomeMoney-pop">
<div class="float-flag-shape"></div> <div class="float-flag-shape"></div>
<el-radio-group v-model="scope.row.selectedType" @change="clickMultipleChoice(scope.row,scope.$index,3)"> <el-radio-group v-model="scope.row.selectedType"
<el-radio v-for="(item,index) in scope.row.MultipleChoiceList" :key="index" @change="clickMultipleChoice(scope.row,scope.$index,3)">
:label="item.Id">{{item.Name}}</el-radio> <el-radio v-for="(item,index) in scope.row.MultipleChoiceList" :key="index"
</el-radio-group> :label="item.Id">{{item.Name}}</el-radio>
<div class="agreement-Cancel"> </el-radio-group>
<span @click.stop="popCancelClick(scope.row,scope.$index,3)">取消</span> <div class="agreement-Cancel">
<span @click.stop="popClick(scope.row,scope.$index,3)">确定</span> <span @click.stop="popCancelClick(scope.row,scope.$index,3)">取消</span>
<span @click.stop="popClick(scope.row,scope.$index,3)">确定</span>
</div>
</div>
</i>
</div> </div>
</div> </template>
</el-table-column>
</i> <el-table-column prop="TaxMoney" label="手续费" show-overflow-tooltip>
</el-table-column>
<el-table-column label="待收" show-overflow-tooltip>
<template slot-scope="scope">
</div> <p class="ToBeReceived" :class="scope.row.DueinMoney==0?'blue':'red'">
</template> {{scope.row.DueinMoney}}
</el-table-column> </p>
<el-table-column prop="TaxMoney" label="手续费" show-overflow-tooltip> </template>
</el-table-column> </el-table-column>
<el-table-column label="待收" show-overflow-tooltip> <el-table-column label="出票状态" :width="90">
<template slot-scope="scope"> <template slot-scope="scope">
<p class="ToBeReceived" :class="scope.row.DueinMoney==0?'blue':'red'"> <span @click="modifyStatus(scope.row)" class="cp tatusText" :class="scope.row.TicketStatus==1?'grey':
{{scope.row.DueinMoney}}
</p>
</template>
</el-table-column>
<el-table-column label="出票状态" :width="90">
<template slot-scope="scope">
<span @click="modifyStatus(scope.row)"
class="cp tatusText"
:class="scope.row.TicketStatus==1?'grey':
(scope.row.TicketStatus==2?'success': (scope.row.TicketStatus==2?'success':
(scope.row.TicketStatus==3?'error': (scope.row.TicketStatus==3?'error':
(scope.row.TicketStatus==4?'Black':'')))"> (scope.row.TicketStatus==4?'Black':'')))">
{{scope.row.TicketStatusName}} {{scope.row.TicketStatusName}}
</span> </span>
<i v-if="scope.row.TicketStatus!=1&& <i v-if="scope.row.TicketStatus!=1&&
scope.row.TicketVoucherList!=[]&& scope.row.TicketVoucherList!=[]&&
scope.row.CancelVoucherList!=[]&& scope.row.CancelVoucherList!=[]&&
scope.row.TicketStatusName!='无需机票'" class="iconfont iconpingzhengchaxun Credentials" @click="viewCredentials(scope.row)"></i> scope.row.TicketStatusName!='无需机票'" class="iconfont iconpingzhengchaxun Credentials"
</template> @click="viewCredentials(scope.row)"></i>
</el-table-column> </template>
<el-table-column label="出签状态" :width="90"> </el-table-column>
<template slot-scope="scope"> <el-table-column label="出签状态" :width="90">
<span @click="scope.row.VisaStatus=='1'?AmendVisa(scope.row):''" <template slot-scope="scope">
class="tatusText" <span @click="scope.row.VisaStatus=='1'?AmendVisa(scope.row):''" class="tatusText" :class="scope.row.VisaStatus==1?'grey'+' cp':
:class="scope.row.VisaStatus==1?'grey'+' cp':
(scope.row.VisaStatus==2?'success': (scope.row.VisaStatus==2?'success':
(scope.row.VisaStatus==0?'Black':''))"> (scope.row.VisaStatus==0?'Black':''))">
{{scope.row.VisaStatus==1?'未出签':(scope.row.VisaStatus==2?'已出签':'无需签证')}} {{scope.row.VisaStatus==1?'未出签':(scope.row.VisaStatus==2?'已出签':'无需签证')}}
</span> </span>
<i v-if="scope.row.VisaStatus==2" class="cp iconfont iconpingzhengchaxun Credentials" <i v-if="scope.row.VisaStatus==2" class="cp iconfont iconpingzhengchaxun Credentials"
@click="CheckOutDetails(scope.row)"></i> @click="CheckOutDetails(scope.row)"></i>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="订单状态" show-overflow-tooltip> <el-table-column label="订单状态" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<div class="Order-list-Status" :class="scope.row.OrderStatus=='1'?'one': <div class="Order-list-Status" :class="scope.row.OrderStatus=='1'?'one':
(scope.row.OrderStatus=='2'?'two': (scope.row.OrderStatus=='2'?'two':
(scope.row.OrderStatus=='3'?'three': (scope.row.OrderStatus=='3'?'three':
(scope.row.OrderStatus=='4'?'four': (scope.row.OrderStatus=='4'?'four':
(scope.row.OrderStatus=='5'?'five': (scope.row.OrderStatus=='5'?'five':
(scope.row.OrderStatus=='6'?'six':'')))))"> (scope.row.OrderStatus=='6'?'six':'')))))">
<span>{{scope.row.OrderStatusName}}</span> <span>{{scope.row.OrderStatusName}}</span>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="Remark" label="客户需求" show-overflow-tooltip> <el-table-column prop="Remark" label="客户需求" show-overflow-tooltip>
</el-table-column> </el-table-column>
<el-table-column label="收入单据" show-overflow-tooltip> <el-table-column label="收入单据" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<p v-for="(item,index) in scope.row.IncomeFinance" :key="index" <p v-for="(item,index) in scope.row.IncomeFinance" :key="index"
:class="item.Status==1?'income_1':'income_2'" :class="item.Status==1?'income_1':'income_2'" @click="openDetails(item.FrID)">
@click="openDetails(item.FrID)"> {{item.FrID}}
{{item.FrID}}
</p> </p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="退款单据" show-overflow-tooltip> <el-table-column label="退款单据" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<p v-for="(item,index) in scope.row.BackFinance" :key="index" <p v-for="(item,index) in scope.row.BackFinance" :key="index"
:class="item.Status==1?'income_1':'income_2'" :class="item.Status==1?'income_1':'income_2'" @click="openDetails(item.FrID)">
@click="openDetails(item.FrID)"> {{item.FrID}}
{{item.FrID}}
</p> </p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="成本单据" show-overflow-tooltip> <el-table-column label="成本单据" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<p v-for="(item,index) in scope.row.PayFinance" :key="index" <p v-for="(item,index) in scope.row.PayFinance" :key="index"
:class="item.Status==1?'income_1':'income_2'" :class="item.Status==1?'income_1':'income_2'" @click="openDetails(item.FrID)">
@click="openDetails(item.FrID)"> {{item.FrID}}
{{item.FrID}}
</p> </p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="CreateByName" label="创建人" show-overflow-tooltip> <el-table-column prop="CreateByName" label="创建人" show-overflow-tooltip>
</el-table-column> </el-table-column>
<el-table-column fixed="right" label="操作" :width="120"> <el-table-column fixed="right" label="操作" :width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="item-but-box"> <div class="item-but-box">
<div class="enedit-box"> <div class="enedit-box">
<el-tooltip <el-tooltip v-if="scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5" class="item-but"
v-if="scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5" effect="dark" content="编辑订单" placement="top">
class="item-but" effect="dark" content="编辑订单" placement="top"> <i class="iconfont iconwenbenbianji cp" @click="editOrder(scope.row)"></i>
<i class="iconfont iconwenbenbianji cp" @click="editOrder(scope.row)"></i> </el-tooltip>
</el-tooltip> <div>
<div> <el-select style="width:70px" class="select-right" clearable size="mini"
<el-select style="width:70px" class="select-right" v-model="scope.row.More" placeholder="更多" @change="chooseMore(scope.row)">
clearable <el-option v-for="items in scope.row.MoreList" v-show="items.show"
size="mini" :key="items.Id" :label="items.Name" :value="items.Id">
v-model="scope.row.More" placeholder="更多" </el-option>
@change="chooseMore(scope.row)"> </el-select>
<el-option </div>
v-for="items in scope.row.MoreList"
v-show="items.show" </div>
:key="items.Id"
:label="items.Name" </div>
:value="items.Id"> </template>
</el-option> </el-table-column>
</el-select> </el-table>
</div> </div>
<div v-if="total>0">
</div> <el-pagination class="Mypagination" background @current-change="handleCurrentChange"
:page-sizes="[10, 30, 60, 90, 100]" :page-size="msg.pageSize" layout="total, sizes, prev, pager, next"
</div> @size-change="handleSizeChange" :total="total">
</template> </el-pagination>
</el-table-column> </div>
</el-table> <!-- 单号抽屉 -->
</div> <el-drawer @closed="closeOrderDrawerHandler" :with-header="false" size='70%' :append-to-body="true"
<div v-if="total>0"> :visible.sync="orderDrawer" direction="rtl" :before-close="handleClose">
<el-pagination class="Mypagination" background @current-change="handleCurrentChange" :page-sizes="[10, 30, 60, 90, 100]" :page-size="msg.pageSize" layout="total, sizes, prev, pager, next" @size-change="handleSizeChange" :total="total"> <orderDetailsDrawer v-if="currentOrder" :orderId="currentOrder.OrderId" />
</el-pagination> </el-drawer>
</div>
<!-- 单号抽屉 -->
<el-drawer @closed="closeOrderDrawerHandler" :with-header="false" size='70%' :append-to-body="true" :visible.sync="orderDrawer" direction="rtl" :before-close="handleClose">
<orderDetailsDrawer v-if="currentOrder" :orderId="currentOrder.OrderId" />
</el-drawer>
</div> </div>
</template> </template>
<script> <script>
...@@ -459,10 +460,18 @@ ...@@ -459,10 +460,18 @@
props: ["ID", "BusinessType"], props: ["ID", "BusinessType"],
data() { data() {
return { return {
VisaList:[ VisaList: [{
{ Name: "不限", Id: "0" }, Name: "不限",
{ Name: "未出签", Id: "1" }, Id: "0"
{ Name: "已出签", Id: "2" }, },
{
Name: "未出签",
Id: "1"
},
{
Name: "已出签",
Id: "2"
},
], ],
MultipleChoiceList: [ //多选项目 MultipleChoiceList: [ //多选项目
{ {
...@@ -487,24 +496,25 @@ ...@@ -487,24 +496,25 @@
show: false show: false
} }
], ],
checkList:[], checkList: [],
MoreList: [{ MoreList: [{
Name: '取消订单', Name: '取消订单',
Id: '1' Id: '1'
}, { }, {
Name: '订单转交', Name: '订单转交',
Id: '2' Id: '2'
}, },
{ {
Name: "修改出票状态", Name: "修改出票状态",
Id: "4", Id: "4",
},{ }, {
Name: '完结', Name: '完结',
Id: '5' Id: '5'
}, { }, {
Name: '操作日志', Name: '操作日志',
Id: '3' Id: '3'
}, ], },
],
OrderStatusList: [], //订单状态 OrderStatusList: [], //订单状态
ticketingStatusList: [], // 出票状态 ticketingStatusList: [], // 出票状态
dataList: [], dataList: [],
...@@ -515,7 +525,7 @@ ...@@ -515,7 +525,7 @@
OrderId: "", OrderId: "",
GuestId: "", GuestId: "",
TicketStatus: '0', TicketStatus: '0',
VisaStatus:"0",//出签状态 VisaStatus: "0", //出签状态
OrderStatus: "0", OrderStatus: "0",
StartCityName: "", StartCityName: "",
EndCityName: "", EndCityName: "",
...@@ -524,7 +534,7 @@ ...@@ -524,7 +534,7 @@
}, },
total: 0, total: 0,
currentOrder: null, currentOrder: null,
orderDrawer:false, orderDrawer: false,
}; };
}, },
watch: { watch: {
...@@ -541,11 +551,11 @@ ...@@ -541,11 +551,11 @@
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++) {
$this.dataList[i].checkList = [] $this.dataList[i].checkList = []
$this.dataList[i].selectedType = "" $this.dataList[i].selectedType = ""
$this.dataList[i].actuallyReceived = false $this.dataList[i].actuallyReceived = false
...@@ -567,25 +577,25 @@ ...@@ -567,25 +577,25 @@
done(); done();
}, },
// 取消 // 取消
popCancelClick(row, index, num){ popCancelClick(row, index, num) {
this.dataList.forEach(item=>{ this.dataList.forEach(item => {
item.checkList = [] item.checkList = []
item.selectedType = '' item.selectedType = ''
item.actuallyReceived =false item.actuallyReceived = false
item.cost =false item.cost = false
}) })
}, },
// 确定弹窗 // 确定弹窗
popClick(row, index, num){ popClick(row, index, num) {
if(!row.selectedType){ if (!row.selectedType) {
this.$message.warning('请选择类型!'); this.$message.warning('请选择类型!');
return return
} }
this.makeAdocumentFun(row, index, num) this.makeAdocumentFun(row, index, num)
this.dataList[index].actuallyReceived =false this.dataList[index].actuallyReceived = false
this.dataList[index].cost =false this.dataList[index].cost = false
}, },
// 查看出票凭据 // 查看出票凭据
viewCredentials(row) { viewCredentials(row) {
let $this = this; let $this = this;
...@@ -636,15 +646,15 @@ ...@@ -636,15 +646,15 @@
} }
}, },
// 订单收损完结 // 订单收损完结
endOfLoss(row){ endOfLoss(row) {
if (this.userInfo.EmName != row.EnterName) { if (this.userInfo.EmName != row.EnterName) {
this.ValidateOperator(); this.ValidateOperator();
} else { } else {
this.endOfLossfun(row) this.endOfLossfun(row)
} }
}, },
endOfLossfun(row){ endOfLossfun(row) {
let tips = '一旦确认订单收损完结,你将无法对订单执行任何操作,包括订单相关的财务单据。' let tips = '一旦确认订单收损完结,你将无法对订单执行任何操作,包括订单相关的财务单据。'
this.$confirm(tips, '提示', { this.$confirm(tips, '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
...@@ -657,7 +667,7 @@ ...@@ -657,7 +667,7 @@
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.$message.success(res.data.message); this.$message.success(res.data.message);
this.MsgBus.$emit("closeGetList"); this.MsgBus.$emit("closeGetList");
}else{ } else {
this.$message.warning(res.data.message); this.$message.warning(res.data.message);
} }
}) })
...@@ -670,14 +680,14 @@ ...@@ -670,14 +680,14 @@
}); });
}, },
// 收损 // 收损
lossOperation(row){ lossOperation(row) {
if (this.userInfo.EmName != row.EnterName) { if (this.userInfo.EmName != row.EnterName) {
this.ValidateOperator(); this.ValidateOperator();
} else { } else {
this.lossOperationfun(row) this.lossOperationfun(row)
} }
}, },
lossOperationfun(row){ lossOperationfun(row) {
this.MsgBus.$emit( this.MsgBus.$emit(
"lossOrderBoxOpen", "lossOrderBoxOpen",
row.GuestId, row.GuestId,
...@@ -686,14 +696,14 @@ ...@@ -686,14 +696,14 @@
); );
}, },
// 订单完结 // 订单完结
orderCompleted(row){ orderCompleted(row) {
if (this.userInfo.EmName != row.EnterName) { if (this.userInfo.EmName != row.EnterName) {
this.ValidateOperator(); this.ValidateOperator();
} else { } else {
this.orderCompletedfun(row) this.orderCompletedfun(row)
} }
}, },
orderCompletedfun(row){ orderCompletedfun(row) {
let tips = '一旦确认订单完结,你将无法对订单执行任何操作,包括订单相关的财务单据。' let tips = '一旦确认订单完结,你将无法对订单执行任何操作,包括订单相关的财务单据。'
this.$confirm(tips, '提示', { this.$confirm(tips, '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
...@@ -706,7 +716,7 @@ ...@@ -706,7 +716,7 @@
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()
}else{ } else {
this.$message.warning(res.data.message); this.$message.warning(res.data.message);
} }
}) })
...@@ -722,27 +732,27 @@ ...@@ -722,27 +732,27 @@
convertOrder(row) { convertOrder(row) {
if (this.userInfo.EmName != row.EnterName) { if (this.userInfo.EmName != row.EnterName) {
this.ValidateOperator(); this.ValidateOperator();
}else{ } else {
this.convertOrderfun(row) this.convertOrderfun(row)
} }
}, },
convertOrderfun(row){ convertOrderfun(row) {
if (row.OrderStatus != '2') { if (row.OrderStatus != '2') {
this.MsgBus.$emit( this.MsgBus.$emit(
"convertOrderTicketOrderBoxOpen", "convertOrderTicketOrderBoxOpen",
row.GuestId, row.GuestId,
row, row,
true true
); );
}else{ } else {
this.$confirm('抱歉,该订单已取消,不能转交', '提示', { this.$confirm('抱歉,该订单已取消,不能转交', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
this.emptyMore() this.emptyMore()
}).catch(() => { }).catch(() => {
this.emptyMore() this.emptyMore()
}); });
} }
}, },
...@@ -756,12 +766,12 @@ ...@@ -756,12 +766,12 @@
}, },
// 多选发生变化 // 多选发生变化
clickMultipleChoice(row, index, num) { clickMultipleChoice(row, index, num) {
if(num == 1){ if (num == 1) {
row.selectedType = row.checkList.join(',') row.selectedType = row.checkList.join(',')
} }
}, },
// 删除套餐值 // 删除套餐值
delType(row,item) { delType(row, item) {
for (let i = 0; i < row.checkList.length; i++) { for (let i = 0; i < row.checkList.length; i++) {
if (row.checkList[i] == item) { if (row.checkList[i] == item) {
row.checkList.splice(i, 1) row.checkList.splice(i, 1)
...@@ -770,47 +780,47 @@ ...@@ -770,47 +780,47 @@
}, },
// 制作单据 // 制作单据
makeAdocument(row, index, num) { makeAdocument(row, index, num) {
let list = row.OrderType&&row.OrderType.split(',') let list = row.OrderType && row.OrderType.split(',')
if(list!=null&&list.length>1&&num==1){ if (list != null && list.length > 1 && num == 1) {
this.dataList.forEach(item=>{ this.dataList.forEach(item => {
return item.cost = false return item.cost = false
}) })
this.dataList.forEach(item=>{ this.dataList.forEach(item => {
return item.actuallyReceived = false return item.actuallyReceived = false
}) })
this.dataList[index].actuallyReceived = true this.dataList[index].actuallyReceived = true
} } else if (list != null && list.length > 1 && num == 3) {
else if(list!=null&&list.length>1&&num==3){ this.dataList.forEach(item => {
this.dataList.forEach(item=>{
return item.actuallyReceived = false return item.actuallyReceived = false
}) })
this.dataList.forEach(item=>{ this.dataList.forEach(item => {
return item.cost = false return item.cost = false
}) })
this.dataList[index].cost = true this.dataList[index].cost = true
}else{ } else {
this.makeAdocumentFun(row, index, num) this.makeAdocumentFun(row, index, num)
} }
}, },
makeAdocumentFun(row, index, num){ makeAdocumentFun(row, index, num) {
let type let type
type = num == 1 ? 1 : 2 // 1收款 2退款 3成本 type = num == 1 ? 1 : 2 // 1收款 2退款 3成本
let href let href
let url = this.domainManager().erpRoutingUrl let url = this.domainManager().erpRoutingUrl
let data let data
let list = row.OrderType&&row.OrderType.split(',') let list = row.OrderType && row.OrderType.split(',')
if (this.userInfo.EmName != row.EnterName) { if (this.userInfo.EmName != row.EnterName) {
this.ValidateOperator() this.ValidateOperator()
} else { } else {
if (row.OrderStatus != '2') { if (row.OrderStatus != '2') {
if(list&&list.length>1){ if (list && list.length > 1) {
let typeList = row.selectedType.split(',') let typeList = row.selectedType.split(',')
if(num=='1'&&typeList.length>=2){ if (num == '1' && typeList.length >= 2) {
let $this = this; let $this = this;
row.ReFinanceId2 = num row.ReFinanceId2 = num
this.MsgBus.$emit("BillMakingOrderBoxOpen", $this.ID, row, true); this.MsgBus.$emit("BillMakingOrderBoxOpen", $this.ID, row, true);
}if(typeList.length==1&&num=='1'||num=='3'){ }
if (typeList.length == 1 && num == '1' || num == '3') {
data = [{ data = [{
path: 'ChoiceAddFinancialDocuments', path: 'ChoiceAddFinancialDocuments',
type: type, type: type,
...@@ -820,15 +830,17 @@ ...@@ -820,15 +830,17 @@
GuestId: row.GuestId, GuestId: row.GuestId,
RelevanceFrId: row.selectedType, // 单据类型 RelevanceFrId: row.selectedType, // 单据类型
}] }]
href = url + 'automaticLogin?token=' + this.getLocalStorage().token + '&data=' + JSON.stringify(data) href = url + 'automaticLogin?token=' + this.getLocalStorage().token + '&data=' + JSON
.stringify(data)
window.open(href); window.open(href);
for(let i=0;i<this.dataList.length;i++){ for (let i = 0; i < this.dataList.length; i++) {
this.dataList[i].checkList = [] this.dataList[i].checkList = []
this.dataList[i].selectedType = "" this.dataList[i].selectedType = ""
this.dataList[i].actuallyReceived = false this.dataList[i].actuallyReceived = false
this.dataList[i].cost = false this.dataList[i].cost = false
} }
}if(num=='2'){ }
if (num == '2') {
data = [{ data = [{
path: 'ChoiceAddFinancialDocuments', path: 'ChoiceAddFinancialDocuments',
type: type, type: type,
...@@ -837,18 +849,19 @@ ...@@ -837,18 +849,19 @@
ReFinanceId2: num, ReFinanceId2: num,
GuestId: row.GuestId, GuestId: row.GuestId,
}] }]
href = url + 'automaticLogin?token=' + this.getLocalStorage().token + '&data=' + JSON.stringify(data) href = url + 'automaticLogin?token=' + this.getLocalStorage().token + '&data=' + JSON
.stringify(data)
window.open(href); window.open(href);
for(let i=0;i<this.dataList.length;i++){ for (let i = 0; i < this.dataList.length; i++) {
this.dataList[i].checkList = [] this.dataList[i].checkList = []
this.dataList[i].selectedType = "" this.dataList[i].selectedType = ""
this.dataList[i].actuallyReceived = false this.dataList[i].actuallyReceived = false
this.dataList[i].cost = false this.dataList[i].cost = false
} }
} }
}else{ } else {
if(num==1||num==2){ if (num == 1 || num == 2) {
data = [{ data = [{
path: 'ChoiceAddFinancialDocuments', path: 'ChoiceAddFinancialDocuments',
type: type, type: type,
...@@ -857,9 +870,9 @@ ...@@ -857,9 +870,9 @@
ReFinanceId2: num, ReFinanceId2: num,
GuestId: row.GuestId, GuestId: row.GuestId,
RelevanceFrId: row.OrderType, // 单据类型 RelevanceFrId: row.OrderType, // 单据类型
}] }]
} }
if(num==3){ if (num == 3) {
data = [{ data = [{
path: 'ChoiceAddFinancialDocuments', path: 'ChoiceAddFinancialDocuments',
type: type, type: type,
...@@ -869,16 +882,17 @@ ...@@ -869,16 +882,17 @@
GuestId: row.GuestId, GuestId: row.GuestId,
}] }]
} }
href = url + 'automaticLogin?token=' + this.getLocalStorage().token + '&data=' + JSON.stringify(data) href = url + 'automaticLogin?token=' + this.getLocalStorage().token + '&data=' + JSON
.stringify(data)
window.open(href); window.open(href);
for(let i=0;i<this.dataList.length;i++){ for (let i = 0; i < this.dataList.length; i++) {
this.dataList[i].checkList = [] this.dataList[i].checkList = []
this.dataList[i].selectedType = "" this.dataList[i].selectedType = ""
this.dataList[i].actuallyReceived = false this.dataList[i].actuallyReceived = false
this.dataList[i].cost = false this.dataList[i].cost = false
} }
} }
} }
} }
...@@ -890,18 +904,18 @@ ...@@ -890,18 +904,18 @@
this.MsgBus.$emit("logTicketOrderBoxOpen", $this.ID, row, true); this.MsgBus.$emit("logTicketOrderBoxOpen", $this.ID, row, true);
}, },
// 修改签证状态 // 修改签证状态
AmendVisa(row){ AmendVisa(row) {
if (this.userInfo.EmName != row.EnterName) { if (this.userInfo.EmName != row.EnterName) {
this.ValidateOperator() this.ValidateOperator()
} else { } else {
this.AmendVisafun(row); this.AmendVisafun(row);
} }
}, },
AmendVisafun(row){ AmendVisafun(row) {
this.MsgBus.$emit("AmendVisaOrderBoxOpen", row.GuestId, row, true); this.MsgBus.$emit("AmendVisaOrderBoxOpen", row.GuestId, row, true);
}, },
// 出签凭证详情 // 出签凭证详情
CheckOutDetails(row){ CheckOutDetails(row) {
let $this = this; let $this = this;
this.MsgBus.$emit( this.MsgBus.$emit(
"CheckOutDetailsOrderBoxOpen", "CheckOutDetailsOrderBoxOpen",
...@@ -934,7 +948,8 @@ ...@@ -934,7 +948,8 @@
if (this.userInfo.EmName != row.EnterName) { if (this.userInfo.EmName != row.EnterName) {
this.ValidateOperator() this.ValidateOperator()
} else { } else {
if (row.OrderStatus != '2' && row.IncomeFinance.length == 0 && row.BackFinance.length == 0 && row.PayFinance.length == 0) { if (row.OrderStatus != '2' && row.IncomeFinance.length == 0 && row.BackFinance.length == 0 && row
.PayFinance.length == 0) {
let tips = '此操作将取消该订单,是否继续取消?' let tips = '此操作将取消该订单,是否继续取消?'
this.$confirm(tips, '提示', { this.$confirm(tips, '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
...@@ -1009,14 +1024,14 @@ ...@@ -1009,14 +1024,14 @@
GetOrderStatusEnumList() { GetOrderStatusEnumList() {
this.apipost("/api/Order/GetOrderStatusEnumList", {}, (res) => { this.apipost("/api/Order/GetOrderStatusEnumList", {}, (res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.OrderStatusList = res.data.data; this.OrderStatusList = res.data.data;
let data = { let data = {
Name: "不限", Name: "不限",
Id: "0", Id: "0",
}; };
this.OrderStatusList.unshift(data); this.OrderStatusList.unshift(data);
} else { } else {
this.$message.error(res.data.message); this.$message.error(res.data.message);
} }
}); });
}, },
...@@ -1043,13 +1058,14 @@ ...@@ -1043,13 +1058,14 @@
// 获取订单列表 // 获取订单列表
getList() { getList() {
this.loading = true; this.loading = true;
this.msg.GuestId = this.ID;
this.apipost( this.apipost(
"/api/Order/GetGuestOrderPageList", "/api/Order/GetGuestOrderPageList",
this.msg, this.msg,
(res) => { (res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
let data = res.data.data.pageData; let data = res.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
...@@ -1057,79 +1073,91 @@ ...@@ -1057,79 +1073,91 @@
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 &&
show: item.OrderStatus!=2&&item.OrderStatus!=5&&item.OrderStatus!=6?true:false, item.OrderStatus != 6 ? true : false,
}, },
{ {
Name: "订单转交", Name: "订单转交",
Id: "2", Id: "2",
show: true, show: true,
}, },
{ {
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 == 3 || item.OrderStatus ==
4) && item.DueinMoney == 0 && item.OrderStatus !=
2 && item.OrderStatus != 5 && item.OrderStatus !=
6 ? 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) {
let LossList = item.LossList let LossList = item.LossList
for(let h=0;h<LossList.length;h++){ for (let h = 0; h < LossList.length; h++) {
for(let i=0;i<item.MultipleChoiceList.length;i++){ for (let i = 0; i < item.MultipleChoiceList.length; i++) {
if(LossList[h].OrderType==this.MultipleChoiceList[i].Id){ if (LossList[h].OrderType == this.MultipleChoiceList[i].Id) {
item.MultipleChoiceList[i].show=true item.MultipleChoiceList[i].show = true
} }
} }
} }
} }
}) })
this.dataList = data; this.dataList = data;
this.total = res.data.data.count; this.total = res.data.data.count;
this.loading = false this.loading = false
......
...@@ -197,6 +197,13 @@ ...@@ -197,6 +197,13 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed prop="EnterName" label="引流人员">
<template slot-scope="scope">
<div>
{{scope.row.CreateByName}}
</div>
</template>
</el-table-column>
<el-table-column fixed prop="OrderId" label="订单号"> <el-table-column fixed prop="OrderId" label="订单号">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.OrderId === 0"> <div v-if="scope.row.OrderId === 0">
...@@ -661,7 +668,7 @@ export default { ...@@ -661,7 +668,7 @@ export default {
}, },
//改变状态背景颜色 //改变状态背景颜色
columenStyle({columnIndex}){ columenStyle({columnIndex}){
if(columnIndex == 6 ){ if(columnIndex == 7 ){
return "background:#f0f5fb" return "background:#f0f5fb"
} }
}, },
......
<template> <template>
<div class="customerManage"> <div class="customerManage" style="height:100%;">
<div class="tools"> <div class="tools">
<div class="tools-item"> <div class="tools-item">
<h1>每日引流统计</h1> <h1>每日引流统计</h1>
...@@ -20,8 +20,8 @@ ...@@ -20,8 +20,8 @@
</el-dropdown> </el-dropdown>
</div> </div>
</div> </div>
<div class="page-content" style="padding-bottom:20px;"> <div class="page-content" style="padding-bottom:20px;height:calc(100% - 61px);box-sizing:border-box;">
<el-table :data="tableData" tooltip-effect="dark" v-loading="loading" style="width: 100%;height:100%;" border <el-table :data="tableData" tooltip-effect="dark" v-loading="loading" style="width: 100%;" height="100%" border
:cell-class-name="tableCellClassName" :row-class-name="tableRowClassName"> :cell-class-name="tableCellClassName" :row-class-name="tableRowClassName">
<el-table-column> <el-table-column>
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -74,151 +74,147 @@ ...@@ -74,151 +74,147 @@
</template> </template>
<script> <script>
import clueComponent from "@/components/clueManagement/clueComponent"; import clueComponent from "@/components/clueManagement/clueComponent";
export default { export default {
components: { components: {
clueComponent clueComponent,
},
data() {
return {
queryTime: {
StartTime: "",
EndTime: "",
},
drawer: false,
isDrawer: true,
msg: {
month: "",
YearStr: "",
MonthStr: "",
},
total: 0,
tableData: [],
loading: false,
};
},
created() {
let d = new Date();
this.msg.month = d;
this.msg.YearStr = d.getFullYear();
this.msg.MonthStr = d.getMonth() + 1;
},
mounted() {
this.init();
},
methods: {
handleClose(done) {
done();
}, },
data() { // 查看详情
return { seeDetails(row) {
queryTime: { var d = new Date();
StartTime: '', var currentY = this.msg.YearStr;
EndTime: '' var currentM = this.msg.MonthStr;
}, var MonthDayNum = new Date(currentY, currentM, 0).getDate(); //计算当月的天数
drawer: false, this.queryTime.StartTime = this.msg.YearStr + "-" + row.DateStr;
isDrawer: true, this.queryTime.EndTime = this.msg.YearStr + "-" + row.DateStr;
msg: { this.drawer = true;
month: "", },
YearStr: "", init() {
MonthStr: "", if (this.loading) return;
this.loading = true;
this.apipost(
"/api/ClueStatic/GetClueDay",
this.msg,
(res) => {
this.loading = false;
this.tableData = res.data.data;
}, },
total: 0, (e) => {
tableData: [], this.loading = false;
loading: false, }
}; );
}, },
created() { tableRowClassName({ row }) {
let d = new Date(); let cname = "font-size-12";
this.msg.month = d; if (
this.msg.YearStr = d.getFullYear(); row.DateStr == "总数" ||
this.msg.MonthStr = d.getMonth() + 1; row.DateStr == "上期总数" ||
row.DateStr == "环比成长"
) {
cname += " xiaoji-row";
} else if (row.DateStr == "月总数") {
cname += " sum-row";
}
return cname;
}, },
mounted() { tableCellClassName({ row, column }) {
this.init(); if (
}, row[column.property] &&
methods: { row[column.property].toString().indexOf("-") != -1 &&
handleClose(done) { column.property != "DateStr"
done(); ) {
}, return "warning-col";
// 查看详情 } else if (column.property == "InvalidCount") {
seeDetails(row) {
var d = new Date();
var currentY = this.msg.YearStr;
var currentM = this.msg.MonthStr;
var MonthDayNum = new Date(currentY, currentM, 0).getDate(); //计算当月的天数
this.queryTime.StartTime = this.msg.YearStr + '-' + row.DateStr
this.queryTime.EndTime = this.msg.YearStr + '-' + row.DateStr
this.drawer = true
},
init() {
if (this.loading) return;
this.loading = true;
this.apipost(
"/api/ClueStatic/GetClueDay",
this.msg,
(res) => {
this.loading = false;
this.tableData = res.data.data;
},
(e) => {
this.loading = false;
}
);
},
tableRowClassName({
row
}) {
let cname = "font-size-12";
if (
row.DateStr == "总数" ||
row.DateStr == "上期总数" ||
row.DateStr == "环比成长"
) {
cname += " xiaoji-row";
} else if (row.DateStr == "月总数") {
cname += " sum-row";
}
return cname;
},
tableCellClassName({
row,
column
}) {
if ( if (
row[column.property] && row[column.property].toString().indexOf("-") != -1 && parseFloat(row[column.property]) / parseFloat(row.PushCount) >=
column.property != "DateStr" 0.2
) { ) {
return "warning-col"; return "warning-col";
} else if (column.property == "InvalidCount") {
if (
parseFloat(row[column.property]) / parseFloat(row.PushCount) >=
0.2
) {
return "warning-col";
}
} }
}, }
changeMonthHandler(val) { },
this.msg.YearStr = val.getFullYear(); changeMonthHandler(val) {
this.msg.MonthStr = val.getMonth() + 1; this.msg.YearStr = val.getFullYear();
this.init(); this.msg.MonthStr = val.getMonth() + 1;
}, this.init();
handleCommand(command) { },
if (command == "1") { handleCommand(command) {
this.downloadHandler(); if (command == "1") {
this.downloadHandler();
}
},
downloadHandler() {
this.GetLocalFile(
"/api/ClueStatic/DownLoadClueDay",
this.msg,
"每日引流数据统计.xls",
(res) => {
this.$message({
message: "导出成功",
type: "success",
});
} }
}, );
downloadHandler() {
this.GetLocalFile(
"/api/ClueStatic/DownLoadClueDay",
this.msg,
"每日引流数据统计.xls",
(res) => {
this.$message({
message: "导出成功",
type: "success",
});
}
);
},
}, },
}; },
};
</script> </script>
<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;
} }
.el-table .xiaoji-row { .el-table .xiaoji-row {
background: #ffff00; background: #ffff00;
} }
.el-table .sum-row { .el-table .sum-row {
background: #00b0f0; background: #00b0f0;
} }
.el-table .warning-col { .el-table .warning-col {
background: red; background: red;
} }
.pointer { .pointer {
cursor: pointer; cursor: pointer;
} }
.pointer:hover { .pointer:hover {
color: #00b0f0; color: #00b0f0;
} }
</style> </style>
\ No newline at end of file
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