Commit 3af492cd authored by youjie's avatar youjie

no message

parent 0965f427
.Black {
color: Black;
}
.red {
color: #fd397a;
}
.blue {
color: #409eff;
}
.gray {
color: gray;
}
.px-10px{
padding: 0 10px;
}
\ No newline at end of file
......@@ -29,6 +29,9 @@
font-size: 16px;
cursor: pointer;
font-family: perfectFont;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.nav-right .nav-right-menu ul li:first-child {
margin-left: 0px;
......@@ -46,10 +49,14 @@
flex: unset;
width: 240px;
justify-content: flex-end;
}
.nav-right .nav-right-info .right-item {
text-align: right;
padding-left: 20px;
display: flex;
flex-wrap: nowrap;
align-items: center;
}
/* .nav-right .nav-right-info .right-item:last-child{
margin: 0px;
......@@ -63,11 +70,13 @@
font-size: 12px;
color: #bbb;
margin-right: 5px;
white-space: nowrap;
}
.nav-right .nav-right-info .right-item .usr-name {
font-size: 16px;
font-weight: bold;
color: black;
white-space: nowrap;
}
.nav-right .nav-right-info .right-item i {
font-size: 20px;
......
......@@ -60,7 +60,7 @@
<template>
<div class="customerManage">
<div class="tools">
<h1>订单管理</h1>
<h1>机票订单统计管理</h1>
<div class="rightmenu">
<el-button size="mini" type="primary" @click="downLoadExcel">导出</el-button>
</div>
......
......@@ -60,7 +60,7 @@
<template>
<div class="customerManage">
<div class="tools">
<h1>订单管理</h1>
<h1>机票订单管理</h1>
<div class="rightmenu">
<el-button size="mini" type="primary" @click="downLoadExcel">导出</el-button>
</div>
......@@ -246,7 +246,7 @@
<span class="red">{{StatModel.CancelNum}}</span>
</div>
</div>
<div class="query-box status-box">
<div class="query-box status-box px-10px">
<div class="status-text">
<div class="tis-k" style="background: #2961FE"></div>
<span>已打单</span>
......@@ -355,6 +355,9 @@ export default {
let data = JSON.parse(this.$route.query.erpOrderObj);
this.msg.OrderId = data.OrderId;
}
if (this.$route.query.OrderId) {
this.msg.OrderId = this.$route.query.OrderId;
}
this.Employee(); //业务员
this.GetTicketStatusEnumList(); //出票枚举
this.GetOrderStatusEnumList(); //订单状态枚举
......
......@@ -327,7 +327,7 @@ export default {
Name: '套餐',
Id: '4'
}, {
Name: '套餐',
Name: '其他',
Id: '5'
}
],
......
<style scoped>
.add-Enclosure {
display: flex;
justify-content: space-between;
}
.add-Enclosure-left {
display: flex;
}
.item-but-box {
display: flex;
}
.item-but {
margin-right: 10px;
}
.numIcon {
font-size: 12px;
padding: 5px;
color: #409eff;
}
.numIcon:hover {
cursor: pointer;
}
.tatusText.grey {
color: grey;
}
.tatusText.success {
color: #21BA45;
}
.tatusText.error {
color: #F2C037;
}
.tatusText.cancel {
color: #c1c1c1;
}
.tatusText.Black {
color: Black;
}
.ToBeReceived.red {
color: #fd397a;
}
.ToBeReceived.blue {
color: #409eff;
}
.income_1 {
color: #2961FE;
cursor: pointer;
}
.income_2 {
color: #3FC4FF;
cursor: pointer;
}
.enedit-box {
display: flex;
align-items: center;
}
.select-right {
margin-left: 5px;
}
.Credentials {
color: #2961FE;
cursor: pointer;
}
.agreement-IncomeMoney-box {
/* position: relative; */
}
.agreement-IncomeMoney-box .numIcon {
position: relative;
}
.agreement-IncomeMoney-pop {
position: absolute;
top: -15px;
left: 30px;
z-index: 1;
background: #fff;
padding: 10px 19px 10px 19px;
Box-shadow: 5px 5px 10px 5px #ccc;
}
/deep/.Agreement-Business .el-table .cell {
overflow: initial !important;
}
.agreement-Cancel {
text-align: right;
color: #409eff;
}
.agreement-Cancel span:first-child {
color: #999999;
margin-right: 20px;
}
.agreement-Cancel span:hover {
cursor: pointer;
}
.float-flag-shape {
position: absolute;
top: 20px;
border: 1px solid #fff;
height: 0;
width: 0;
border-left: 4px solid rgba(0, 0, 0, 0);
border-right: 4px solid #fff;
border-top: 3px solid rgba(0, 0, 0, 0);
border-bottom: 3px solid #fff;
left: -8px;
}
/deep/.el-table .cell.el-tooltip {
overflow: hidden !important;
}
/deep/.classorder .Agreement-Business table th {
text-indent: 0 !important;
}
/deep/.el-table th>.cell {
text-align: left !important;
}
.OrderType-text-box {
word-break: break-word;
word-wrap: break-word;
white-space: -moz-pre-wrap;
white-space: -hp-pre-wrap;
white-space: -o-pre-wrap;
white-space: -pre-wrap;
white-space: pre;
white-space: pre-wrap;
white-space: pre-line;
}
.text-underline {
font-size: 16px;
color: rgb(41, 97, 254);
margin-right: 10px;
font-weight: bold;
cursor: pointer;
}
.OrderType-text-box .text-underline:hover {
text-decoration: underline;
}
.OrderType-text {
font-size: 10px;
font-weight: 100;
margin-left: 5px;
border-radius: 3px;
display: inline-block;
padding: 0 1px;
margin-bottom: 2px;
}
.OrderType-text-box .OrderType-text:nth-child(2) {
margin-left: 0;
}
.OrderType-text.one {
color: rgb(41, 97, 254);
background-color: rgba(41, 97, 254, .2);
}
.OrderType-text.two {
color: rgb(242, 140, 29);
background-color: rgba(242, 140, 29, .2);
}
.OrderType-text.three {
color: rgb(63, 196, 255);
background-color: rgba(63, 196, 255, .2);
}
.OrderType-text.four {
color: rgb(255, 111, 0);
background-color: rgba(255, 111, 0, .2);
}
.OrderType-text.five {
color: rgb(33, 186, 69);
background-color: rgba(33, 186, 69, .2);
}
.Order-list-Status.six {
color: rgb(102, 187, 106);
background-color: rgba(102, 187, 106, .2);
}
</style>
<template>
<div class="Agreement-Business">
<div class="add-Enclosure">
<el-row :gutter="22">
<el-col :span="5">
<el-input size="mini" placeholder="输入订单ID" v-model="msg.OrderId" label="订单ID"
@keyup.enter.native="getList"></el-input>
</el-col>
<el-col :span="5">
<div style="display: flex;flex-direction: row;align-items: center;">
<span class="font-size-12" style="padding-right: 10px;flex-shrink: 0;">出票状态:</span>
<el-select size="mini" width="200" v-model="msg.TicketStatus" placeholder="请选择"
@change="getList">
<el-option v-for="item in ticketingStatusList" :key="item.Id" :label="item.Name"
:value="item.Id"></el-option>
</el-select>
</div>
</el-col>
<el-col :span="5">
<div style="display: flex;flex-direction: row;align-items: center;">
<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-option v-for="item in VisaList" :key="item.Id" :label="item.Name" :value="item.Id">
</el-option>
</el-select>
</div>
</el-col>
<el-col :span="5">
<div style="display: flex;flex-direction: row;align-items: center;">
<span class="font-size-12" style="padding-right: 10px;flex-shrink: 0;">订单状态:</span>
<el-select size="mini" width="200" v-model="msg.OrderStatus" placeholder="请选择"
@change="getList">
<el-option v-for="item in OrderStatusList" :key="item.Id" :label="item.Name"
:value="item.Id"></el-option>
</el-select>
</div>
</el-col>
</el-row>
<el-dropdown @command="handleCommand" style="top: 1px;">
<el-button plain icon="el-icon-plus" type="primary" size="mini" class="margin-right0">
创建订单</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="1"> 机票订单</el-dropdown-item>
<el-dropdown-item command="2"> 签证订单</el-dropdown-item>
<el-dropdown-item command="3"> 跟团游订单</el-dropdown-item>
<el-dropdown-item command="4"> 当地游订单</el-dropdown-item>
<el-dropdown-item command="5"> 酒店订单</el-dropdown-item>
<el-dropdown-item command="6"> 门票订单</el-dropdown-item>
<el-dropdown-item command="7"> 包车订单</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<!-- <el-button plain icon="el-icon-plus" type="primary" size="mini" class="margin-right0" @click="addBusiness">
创建订单</el-button> -->
</div>
<div class="page-content">
<el-table v-loading="loading" stripe ref="multipleTable" :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==3?'three':
(items.Id==4?'four':
(items.Id==5?'five':'')))),{'line-through':items.show}]"
v-for="(items,index) in scope.row.MultipleChoiceList">{{items.Name}}</span>
</div>
</template>
</el-table-column>
<el-table-column fixed label="业务员" show-overflow-tooltip :width="120">
<template slot-scope="scope">
<p>{{scope.row.EnterName}}</p>
<p>{{scope.row.CreateTime}}</p>
</template>
</el-table-column>
<el-table-column label="出行概述" show-overflow-tooltip :width="120">
<template slot-scope="scope">
<p>人数:{{scope.row.GuestCount}}</p>
<p>{{scope.row.StartCityName}}</p>
</template>
</el-table-column>
<el-table-column label="应收" show-overflow-tooltip>
<template slot-scope="scope">
<p @click="scope.row.OrderStatus==1&&(scope.row.TicketStatus == 1||scope.row.TicketStatus == 5) || (scope.row.visaStatus == 0||scope.row.visaStatus == 1)?editOrderAmount(scope.row):''"
class="cp"
:class="scope.row.OrderStatus==1&&(scope.row.TicketStatus == 1||scope.row.TicketStatus == 5) || (scope.row.visaStatus == 0||scope.row.visaStatus == 1)?'font-color-link':''">
{{scope.row.Money}}</p>
</template>
</el-table-column>
<el-table-column label="实收" :width="120">
<template slot-scope="scope">
<div class="agreement-IncomeMoney-box">
{{scope.row.IncomeMoney}}
<i v-if="scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5&&scope.row.OrderStatus!=6"
@click="makeAdocument(scope.row,scope.$index,1)" class="iconfont iconjia- numIcon">
<div v-show="scope.row.actuallyReceived" class="agreement-IncomeMoney-pop">
<div class="float-flag-shape"></div>
<el-checkbox-group v-model="scope.row.checkList"
@change="clickMultipleChoice(scope.row,scope.$index,1)">
<el-checkbox v-for="(item,index) in scope.row.MultipleChoiceList" :key="index"
:label="item.Id">{{item.Name}}</el-checkbox>
</el-checkbox-group>
<div class="agreement-Cancel">
<span @click.stop="popCancelClick(scope.row,scope.$index,1)">取消</span>
<span @click.stop="popClick(scope.row,scope.$index,1)">确定</span>
</div>
</div>
</i>
</div>
</template>
</el-table-column>
<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.OrderStatus!=6"
@click="makeAdocument(scope.row,scope.$index,2)" class="iconfont iconjia- numIcon"></i>
</template>
</el-table-column>
<el-table-column label="成本" :width="120">
<template slot-scope="scope">
<div class="agreement-IncomeMoney-box">
{{scope.row.PayMoney}}<i v-if="scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5&&scope.row.OrderStatus!=6"
@click="makeAdocument(scope.row,scope.$index,3)" class="iconfont iconjia- numIcon">
<div v-show="scope.row.cost" class="agreement-IncomeMoney-pop">
<div class="float-flag-shape"></div>
<el-radio-group v-model="scope.row.selectedType"
@change="clickMultipleChoice(scope.row,scope.$index,3)">
<el-radio v-for="(item,index) in scope.row.MultipleChoiceList" :key="index"
:label="item.Id">{{item.Name}}</el-radio>
</el-radio-group>
<div class="agreement-Cancel">
<span @click.stop="popCancelClick(scope.row,scope.$index,3)">取消</span>
<span @click.stop="popClick(scope.row,scope.$index,3)">确定</span>
</div>
</div>
</i>
</div>
</template>
</el-table-column>
<el-table-column prop="TaxMoney" label="手续费" show-overflow-tooltip>
</el-table-column>
<el-table-column label="待收" show-overflow-tooltip>
<template slot-scope="scope">
<p class="ToBeReceived" :class="scope.row.DueinMoney==0?'blue':'red'">
{{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==3?'error':
(scope.row.TicketStatus==4?'cancel':
(scope.row.TicketStatus==5?'Black':''))))">
{{scope.row.TicketStatusName}}
</span>
<i v-if="scope.row.TicketStatus!=1&&
scope.row.TicketVoucherList!=[]&&
scope.row.CancelVoucherList!=[]&&
scope.row.TicketStatusName!='无需机票'" class="iconfont iconpingzhengchaxun Credentials"
@click="viewCredentials(scope.row)"></i>
</template>
</el-table-column>
<el-table-column label="出签状态" :width="90">
<template slot-scope="scope">
<span @click="scope.row.VisaStatus=='1'?AmendVisa(scope.row):''" class="tatusText" :class="scope.row.VisaStatus==1?'grey'+' cp':
(scope.row.VisaStatus==2?'success':
(scope.row.VisaStatus==0?'Black':''))">
{{scope.row.VisaStatus==1?'未出签':(scope.row.VisaStatus==2?'已出签':'无需签证')}}
</span>
<i v-if="scope.row.VisaStatus==2" class="cp iconfont iconpingzhengchaxun Credentials"
@click="CheckOutDetails(scope.row)"></i>
</template>
</el-table-column>
<el-table-column label="订单状态" show-overflow-tooltip>
<template slot-scope="scope">
<div class="Order-list-Status" :class="scope.row.OrderStatus=='1'?'one':
(scope.row.OrderStatus=='2'?'two':
(scope.row.OrderStatus=='3'?'three':
(scope.row.OrderStatus=='4'?'four':
(scope.row.OrderStatus=='5'?'five':
(scope.row.OrderStatus=='6'?'six':'')))))">
<span>{{scope.row.OrderStatusName}}</span>
</div>
</template>
</el-table-column>
<el-table-column prop="Remark" label="客户需求" show-overflow-tooltip>
</el-table-column>
<el-table-column label="收入单据" show-overflow-tooltip>
<template slot-scope="scope">
<p v-for="(item,index) in scope.row.IncomeFinance" :key="index"
:class="item.Status==1?'income_1':'income_2'" @click="openDetails(item.FrID)">
{{item.FrID}}
</p>
</template>
</el-table-column>
<el-table-column label="退款单据" show-overflow-tooltip>
<template slot-scope="scope">
<p v-for="(item,index) in scope.row.BackFinance" :key="index"
:class="item.Status==1?'income_1':'income_2'" @click="openDetails(item.FrID)">
{{item.FrID}}
</p>
</template>
</el-table-column>
<el-table-column label="成本单据" show-overflow-tooltip>
<template slot-scope="scope">
<p v-for="(item,index) in scope.row.PayFinance" :key="index"
:class="item.Status==1?'income_1':'income_2'" @click="openDetails(item.FrID)">
{{item.FrID}}
</p>
</template>
</el-table-column>
<el-table-column prop="CreateByName" label="创建人" show-overflow-tooltip>
</el-table-column>
<el-table-column fixed="right" label="操作" :width="120">
<template slot-scope="scope">
<div class="item-but-box">
<div class="enedit-box">
<el-tooltip v-if="scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5&&scope.row.OrderStatus!=6" class="item-but"
effect="dark" content="编辑订单" placement="top">
<i class="iconfont iconwenbenbianji cp" @click="editOrder(scope.row)"></i>
</el-tooltip>
<div>
<el-select style="width:70px" class="select-right" clearable size="mini"
v-model="scope.row.More" placeholder="更多" @change="chooseMore(scope.row)">
<el-option v-for="items in scope.row.MoreList" v-show="items.show"
:key="items.Id" :label="items.Name" :value="items.Id">
</el-option>
</el-select>
</div>
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
<div v-if="total>0">
<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">
</el-pagination>
</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>
</template>
<script>
import orderDetailsDrawer from "../customerManage/orderDetailsDrawer";
export default {
components: {
orderDetailsDrawer
},
props: ["detailsData","ID", "BusinessType"],
data() {
return {
VisaList: [{
Name: "不限",
Id: "0"
},
{
Name: "未出签",
Id: "1"
},
{
Name: "已出签",
Id: "2"
},
],
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
}
],
checkList: [],
MoreList: [{
Name: '取消订单',
Id: '1'
}, {
Name: '订单转交',
Id: '2'
},
{
Name: "修改出票状态",
Id: "4",
}, {
Name: '完结',
Id: '5'
}, {
Name: '操作日志',
Id: '3'
},
],
OrderStatusList: [], //订单状态
ticketingStatusList: [], // 出票状态
dataList: [],
loading: false,
msg: {
pageIndex: 1,
pageSize: 10,
OrderId: "",
GuestId: "",
TicketStatus: '0',
VisaStatus: "0", //出签状态
OrderStatus: "0",
StartCityName: "",
EndCityName: "",
EnterID: "",
userInfo: {}
},
total: 0,
currentOrder: null,
orderDrawer: false,
};
},
watch: {
ID: {
handler(val, oldVal) {
this.getList();
},
deep: true,
},
detailsData: {
handler(val, oldVal) {
this.detailsData = val
},
deep: true,
},
},
mounted() {
this.userInfo = this.getLocalStorage();
this.getList();
this.GetTicketStatusEnumList()
this.GetOrderStatusEnumList() //订单状态枚举
let $this = this
$this.MsgBus.$on("closeGetList", function () {
$this.getList()
});
$this.MsgBus.$on("closeBillMaking", function () {
for (let i = 0; i < $this.dataList.length; i++) {
$this.dataList[i].checkList = []
$this.dataList[i].selectedType = ""
$this.dataList[i].actuallyReceived = false
$this.dataList[i].cost = false
}
$this.emptyMore()
});
},
methods: {
handleCommand(command) {
let data = [{
path: "",
LureEmpNmae: this.detailsData.CreateByStr,//引流姓名
LureEmpId: this.detailsData.CreateBy,//引流id
CRMGuestId: this.ID, //客人ID
CRMGuestName: this.detailsData.SurName+this.detailsData.Name //客人ID
}]
let href
let url = this.domainManager().erpRoutingUrl;
if (command == 1) {
this.addBusiness();
}else{
if (command == 2) {
data[0].path = 'VisaProductAddOrder'
href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}else if (command == 3) {
data[0].path = 'productQuery'
href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}
else if (command == 4) {
data[0].path = 'productQueryOne'
href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}
else if (command == 5) {
data[0].path = 'singleProductHotelList'
href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}
else if (command == 6) {
data[0].path = 'SingleticketList'
href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}
else if (command == 7) {
data[0].path = 'BookAcarList'
href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}
if(href){
window.open(href);
}
}
},
// 清空下拉
emptyMore() {
this.dataList.forEach(item => {
return item.More = ''
})
},
// 点击单号
clickSingleNumber(item) {
this.currentOrder = item;
this.orderDrawer = true;
},
closeOrderDrawerHandler() {
this.currentOrder = null;
this.orderDrawer = false;
},
handleClose(done) {
done();
},
// 取消
popCancelClick(row, index, num) {
this.dataList.forEach(item => {
item.checkList = []
item.selectedType = ''
item.actuallyReceived = false
item.cost = false
})
},
// 确定弹窗
popClick(row, index, num) {
if (!row.selectedType) {
this.$message.warning('请选择类型!');
return
}
this.makeAdocumentFun(row, index, num)
this.dataList[index].actuallyReceived = false
this.dataList[index].cost = false
},
// 查看出票凭据
viewCredentials(row) {
let $this = this;
this.MsgBus.$emit("CredentialsOrderTicketOrderBoxOpen", $this.ID, row, true);
},
// 清空下拉
emptyMore() {
this.dataList.forEach(item => {
return item.More = ''
})
},
chooseMore(row) {
// 取消订单
if (row.More == "1") {
this.cancelOrder(row);
}
// 订单转交
if (row.More == "2") {
this.convertOrder(row);
}
// 编辑订单金额
if (row.More == '3') {
this.editOrderAmount(row)
}
// 修改出票状态
if (row.More == '4') {
this.modifyStatus(row)
}
// 修改出签状态
if (row.More == "5") {
this.AmendVisa(row)
}
// 完结
if (row.More == "6") {
this.orderCompleted(row)
}
// 操作日志
if (row.More == "7") {
this.operationLog(row);
}
// 订单收损
if (row.More == "8") {
this.lossOperationfun(row);
}
// 订单收损完结
if (row.More == "9") {
this.endOfLoss(row);
}
// 修改日期
if (row.More == "10") {
this.modifiedDate(row);
}
},
// 修改日期
modifiedDate(row){
let $this = this
this.MsgBus.$emit("modifiedDateOrderBoxOpen", $this.ID, row, true);
},
// 订单收损完结
endOfLoss(row) {
if (this.userInfo.EmployeeId != row.EnterID && this.userInfo.EmployeeId != row.CreateBy) {
this.ValidateOperator();
} else {
this.endOfLossfun(row)
}
},
endOfLossfun(row) {
let tips = '一旦确认订单收损完结,你将无法对订单执行任何操作,包括订单相关的财务单据。'
this.$confirm(tips, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.apipost('/api/Order/SetOrderLossFinish', {
OrderId: row.OrderId,
}, res => {
if (res.data.resultCode == 1) {
this.$message.success(res.data.message);
this.MsgBus.$emit("closeGetList");
} else {
this.$message.warning(res.data.message);
}
})
}).catch(() => {
this.emptyMore()
this.$message({
type: 'info',
message: '已取消'
});
});
},
// 收损
lossOperation(row) {
if (this.userInfo.EmployeeId != row.EnterID && this.userInfo.EmployeeId != row.CreateBy) {
this.ValidateOperator();
} else {
this.lossOperationfun(row)
}
},
lossOperationfun(row) {
this.MsgBus.$emit(
"lossOrderBoxOpen",
row.GuestId,
row,
true
);
},
// 订单完结
orderCompleted(row) {
if (this.userInfo.EmployeeId != row.EnterID && this.userInfo.EmployeeId != row.CreateBy) {
this.ValidateOperator();
} else {
this.orderCompletedfun(row)
}
},
orderCompletedfun(row) {
let tips = '一旦确认订单完结,你将无法对订单执行任何操作,包括订单相关的财务单据。'
this.$confirm(tips, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.apipost('/api/Order/SetOrderFinish', {
OrderId: row.OrderId,
}, res => {
if (res.data.resultCode == 1) {
this.$message.success(res.data.message);
this.getList()
} else {
this.$message.warning(res.data.message);
}
})
}).catch(() => {
this.emptyMore()
this.$message({
type: 'info',
message: '已取消'
});
});
},
// 转换订单
convertOrder(row) {
if (this.userInfo.EmployeeId != row.EnterID && this.userInfo.EmployeeId != row.CreateBy) {
this.ValidateOperator();
} else {
this.convertOrderfun(row)
}
},
convertOrderfun(row) {
if (row.OrderStatus != '2') {
this.MsgBus.$emit(
"convertOrderTicketOrderBoxOpen",
row.GuestId,
row,
true
);
} else {
this.$confirm('抱歉,该订单已取消,不能转交', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.emptyMore()
}).catch(() => {
this.emptyMore()
});
}
},
// 验证操作员
ValidateOperator() {
this.$message({
type: 'warning',
message: '抱歉,该订单您没有操作权限!'
});
this.emptyMore()
},
// 多选发生变化
clickMultipleChoice(row, index, num) {
if (num == 1) {
row.selectedType = row.checkList.join(',')
}
},
// 删除套餐值
delType(row, item) {
for (let i = 0; i < row.checkList.length; i++) {
if (row.checkList[i] == item) {
row.checkList.splice(i, 1)
}
}
},
// 制作单据
makeAdocument(row, index, num) {
let list = row.OrderType && row.OrderType.split(',')
if (list != null && list.length > 1 && num == 1) {
this.dataList.forEach(item => {
return item.cost = false
})
this.dataList.forEach(item => {
return item.actuallyReceived = false
})
this.dataList[index].actuallyReceived = true
} else if (list != null && list.length > 1 && num == 3) {
this.dataList.forEach(item => {
return item.actuallyReceived = false
})
this.dataList.forEach(item => {
return item.cost = false
})
this.dataList[index].cost = true
} else {
this.makeAdocumentFun(row, index, num)
}
},
makeAdocumentFun(row, index, num) {
let type
type = num == 1 ? 1 : 2 // 1收款 2退款 3成本
let href
let url = this.domainManager().erpRoutingUrl
let data
let list = row.OrderType && row.OrderType.split(',')
if (this.userInfo.EmployeeId != row.EnterID && this.userInfo.EmployeeId != row.CreateBy) {
this.ValidateOperator()
} else {
if (row.OrderStatus != '2') {
if (list && list.length > 1) {
let typeList = row.selectedType.split(',')
if (num == '1' && typeList.length >= 2) {
let $this = this;
row.ReFinanceId2 = num
this.MsgBus.$emit("BillMakingOrderBoxOpen", $this.ID, row, true);
}
if (typeList.length == 1 && num == '1' || num == '3') {
data = [{
path: 'ChoiceAddFinancialDocuments',
type: type,
OtherType: 55,
ReFinanceId: row.OrderId,
ReFinanceId2: num,
GuestId: row.GuestId,
RelevanceFrId: row.selectedType, // 单据类型
}]
href = url + 'automaticLogin?token=' + this.getLocalStorage().token + '&data=' + JSON
.stringify(data)
window.open(href);
for (let i = 0; i < this.dataList.length; i++) {
this.dataList[i].checkList = []
this.dataList[i].selectedType = ""
this.dataList[i].actuallyReceived = false
this.dataList[i].cost = false
}
}
if (num == '2') {
data = [{
path: 'ChoiceAddFinancialDocuments',
type: type,
OtherType: 55,
ReFinanceId: row.OrderId,
ReFinanceId2: num,
GuestId: row.GuestId,
}]
href = url + 'automaticLogin?token=' + this.getLocalStorage().token + '&data=' + JSON
.stringify(data)
window.open(href);
for (let i = 0; i < this.dataList.length; i++) {
this.dataList[i].checkList = []
this.dataList[i].selectedType = ""
this.dataList[i].actuallyReceived = false
this.dataList[i].cost = false
}
}
} else {
data = [{
path: 'ChoiceAddFinancialDocuments',
type: type,
OtherType: 55,
ReFinanceId: row.OrderId,
ReFinanceId2: num,
GuestId: row.GuestId,
RelevanceFrId: num==2?1:row.OrderType, // 单据类型
}]
href = url + 'automaticLogin?token=' + this.getLocalStorage().token + '&data=' + JSON
.stringify(data)
window.open(href);
for (let i = 0; i < this.dataList.length; i++) {
this.dataList[i].checkList = []
this.dataList[i].selectedType = ""
this.dataList[i].actuallyReceived = false
this.dataList[i].cost = false
}
}
}
}
},
// 操作日志
operationLog(row) {
let $this = this;
this.MsgBus.$emit("logTicketOrderBoxOpen", $this.ID, row, true);
},
// 修改签证状态
AmendVisa(row) {
if (this.userInfo.EmployeeId != row.EnterID && this.userInfo.EmployeeId != row.CreateBy) {
this.ValidateOperator()
} else {
this.AmendVisafun(row);
}
},
AmendVisafun(row) {
this.MsgBus.$emit("AmendVisaOrderBoxOpen", row.GuestId, row, true);
},
// 出签凭证详情
CheckOutDetails(row) {
let $this = this;
this.MsgBus.$emit(
"CheckOutDetailsOrderBoxOpen",
$this.ID,
row,
true
);
},
// 修改出票状态
modifyStatus(row) {
if (this.userInfo.EmployeeId != row.EnterID && this.userInfo.EmployeeId != row.CreateBy) {
this.ValidateOperator()
} else {
if (row.OrderStatus == 2) {
this.emptyMore()
} else {
if (row.TicketStatus == 3) {
return
} else if (row.TicketStatus == 4) {
return
} else {
let $this = this;
this.MsgBus.$emit("reviseTicketOrderBoxOpen", $this.ID, row, true);
}
}
}
},
// 取消订单
cancelOrder(row) {
if (this.userInfo.EmployeeId != row.EnterID && this.userInfo.EmployeeId != row.CreateBy) {
this.ValidateOperator()
} else {
if (row.OrderStatus != '2' && row.IncomeFinance.length == 0 && row.BackFinance.length == 0 && row
.PayFinance.length == 0) {
let tips = '此操作将取消该订单,是否继续取消?'
this.$confirm(tips, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.apipost('/api/Order/SetGuestOrderState', {
OrderId: row.OrderId,
Type: '1',
}, res => {
if (res.data.resultCode == 1) {
this.$message.success(res.data.message);
this.getList()
}
})
}).catch(() => {
this.emptyMore()
this.$message({
type: 'info',
message: '已取消'
});
});
} else {
this.$message({
type: 'warning',
message: '该订单已有财务单据,不能取消!'
});
this.emptyMore()
}
}
},
// 编辑订单
editOrder(row) {
if (this.userInfo.EmployeeId != row.EnterID && this.userInfo.EmployeeId != row.CreateBy) {
this.ValidateOperator()
} else {
if (row.OrderStatus==1&&(row.TicketStatus == 1||row.TicketStatus == 5) || (row.visaStatus == 0||row.visaStatus == 1)) {
let $this = this;
this.MsgBus.$emit("editOrderTicketOrderBoxOpen", $this.ID, row, true);
} else {
this.emptyMore()
}
}
},
// 编辑订单金额
editOrderAmount(row) {
if (this.userInfo.EmployeeId != row.EnterID && this.userInfo.EmployeeId != row.CreateBy) {
this.ValidateOperator()
} else {
if (row.OrderStatus==1&&(row.TicketStatus == 1||row.TicketStatus == 5) || (row.visaStatus == 0||row.visaStatus == 1)) {
let $this = this;
this.MsgBus.$emit("editTicketOrderBoxOpen", $this.ID, row, true);
} else {
this.emptyMore()
}
}
},
openDetails(row) {
let href
let url = this.domainManager().erpRoutingUrl
let data = [{
path: 'FinancialDocumentsDetail',
id: row
}]
href = url + 'automaticLogin?token=' + this.getLocalStorage().token + '&data=' + JSON.stringify(data)
window.open(href);
},
// 获取订单状态枚举
GetOrderStatusEnumList() {
this.apipost("/api/Order/GetOrderStatusEnumList", {}, (res) => {
if (res.data.resultCode == 1) {
this.OrderStatusList = res.data.data;
let data = {
Name: "不限",
Id: "0",
};
this.OrderStatusList.unshift(data);
} else {
this.$message.error(res.data.message);
}
});
},
// 获取出票状态枚举
GetTicketStatusEnumList() {
let $this = this
this.msg.GuestId = $this.ID
this.apipost(
"/api/Order/GetTicketStatusEnumList", {},
(res) => {
if (res.data.resultCode == 1) {
this.ticketingStatusList = res.data.data;
let data = {
Name: '全部',
Id: '0'
}
this.ticketingStatusList.unshift(data)
} else {
this.$message.error(res.data.message);
}
}
);
},
// 获取订单列表
getList() {
this.loading = true;
this.msg.GuestId = this.ID;
this.apipost(
"/api/Order/GetGuestOrderPageList",
this.msg,
(res) => {
if (res.data.resultCode == 1) {
let data = res.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 != 6 ? true : false
},
{
Name: '收损完结',
Id: '9',
show: (item.OrderStatus == 3 || item.OrderStatus == 4)
&& item.DueinMoney == 0 ? true : false
},
{
Name: '订单完结',
Id: '6',
show: item.OrderStatus == 1 && item.DueinMoney == 0 ?
true : false
},
{
Name: "操作日志",
Id: "7",
show: true,
},
{
Name: "修改日期",
Id: "10",
show: item.OrderType&&item.OrderType.indexOf(1) != -1?true:false,
}
]
});
};
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) {
let LossList = item.LossList
for (let h = 0; h < LossList.length; h++) {
for (let i = 0; i < item.MultipleChoiceList.length; i++) {
if (LossList[h].OrderType == this.MultipleChoiceList[i].Id) {
item.MultipleChoiceList[i].show = true
}
}
}
}
})
this.dataList = data;
this.total = res.data.data.count;
this.loading = false
} else {
this.loading = false
this.$message.error(res.data.message);
}
}
);
},
// 添加订单
addBusiness() {
let $this = this;
this.MsgBus.$emit("addTicketOrderBoxOpen", $this.ID, 0, true);
},
handleSizeChange(val) {
this.msg.pageSize = val;
this.getList();
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
},
};
</script>
\ No newline at end of file
......@@ -211,33 +211,23 @@
<div class="Agreement-Business">
<div class="add-Enclosure">
<el-row :gutter="22">
<el-col :span="5">
<el-col :span="8">
<el-input size="mini" placeholder="输入订单ID" v-model="msg.OrderId" label="订单ID"
@keyup.enter.native="getList"></el-input>
@keyup.native="getList"></el-input>
</el-col>
<el-col :span="5">
<el-col :span="8">
<div style="display: flex;flex-direction: row;align-items: center;">
<span class="font-size-12" style="padding-right: 10px;flex-shrink: 0;">出票状态:</span>
<el-select size="mini" width="200" v-model="msg.TicketStatus" placeholder="请选择"
@change="getList">
<el-option v-for="item in ticketingStatusList" :key="item.Id" :label="item.Name"
:value="item.Id"></el-option>
</el-select>
</div>
</el-col>
<el-col :span="5">
<div style="display: flex;flex-direction: row;align-items: center;">
<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-option v-for="item in VisaList" :key="item.Id" :label="item.Name" :value="item.Id">
<span class="font-size-12" style="padding-right: 10px;flex-shrink: 0;">订单类型:</span>
<el-select size="mini" width="200" v-model="msg.OrderType" placeholder="请选择" @change="getList">
<el-option v-for="item in OrderTypeList" :key="item.Id" :label="item.Name" :value="item.Id">
</el-option>
</el-select>
</div>
</el-col>
<el-col :span="5">
<el-col :span="8">
<div style="display: flex;flex-direction: row;align-items: center;">
<span class="font-size-12" style="padding-right: 10px;flex-shrink: 0;">订单状态:</span>
<el-select size="mini" width="200" v-model="msg.OrderStatus" placeholder="请选择"
<el-select size="mini" width="200" v-model="msg.OrderState" placeholder="请选择"
@change="getList">
<el-option v-for="item in OrderStatusList" :key="item.Id" :label="item.Name"
:value="item.Id"></el-option>
......@@ -245,200 +235,22 @@
</div>
</el-col>
</el-row>
<el-button plain icon="el-icon-plus" type="primary" size="mini" class="margin-right0" @click="addBusiness">
<el-dropdown @command="handleCommand" style="top: 1px;">
<el-button plain icon="el-icon-plus" type="primary" size="mini" class="margin-right0">
创建订单</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="1"> 机票订单</el-dropdown-item>
<el-dropdown-item command="2"> 签证订单</el-dropdown-item>
<el-dropdown-item command="3"> 跟团游订单</el-dropdown-item>
<el-dropdown-item command="4"> 当地游订单</el-dropdown-item>
<el-dropdown-item command="5"> 酒店订单</el-dropdown-item>
<el-dropdown-item command="6"> 门票订单</el-dropdown-item>
<el-dropdown-item command="7"> 包车订单</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="page-content">
<el-table v-loading="loading" stripe ref="multipleTable" :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==3?'three':
(items.Id==4?'four':
(items.Id==5?'five':'')))),{'line-through':items.show}]"
v-for="(items,index) in scope.row.MultipleChoiceList">{{items.Name}}</span>
</div>
</template>
</el-table-column>
<el-table-column fixed label="业务员" show-overflow-tooltip :width="120">
<template slot-scope="scope">
<p>{{scope.row.EnterName}}</p>
<p>{{scope.row.CreateTime}}</p>
</template>
</el-table-column>
<el-table-column label="出行概述" show-overflow-tooltip :width="120">
<template slot-scope="scope">
<p>人数:{{scope.row.GuestCount}}</p>
<p>{{scope.row.StartCityName}}</p>
</template>
</el-table-column>
<el-table-column label="应收" show-overflow-tooltip>
<template slot-scope="scope">
<p @click="scope.row.OrderStatus==1&&(scope.row.TicketStatus == 1||scope.row.TicketStatus == 5) || (scope.row.visaStatus == 0||scope.row.visaStatus == 1)?editOrderAmount(scope.row):''"
class="cp"
:class="scope.row.OrderStatus==1&&(scope.row.TicketStatus == 1||scope.row.TicketStatus == 5) || (scope.row.visaStatus == 0||scope.row.visaStatus == 1)?'font-color-link':''">
{{scope.row.Money}}</p>
</template>
</el-table-column>
<el-table-column label="实收" :width="120">
<template slot-scope="scope">
<div class="agreement-IncomeMoney-box">
{{scope.row.IncomeMoney}}
<i v-if="scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5&&scope.row.OrderStatus!=6"
@click="makeAdocument(scope.row,scope.$index,1)" class="iconfont iconjia- numIcon">
<div v-show="scope.row.actuallyReceived" class="agreement-IncomeMoney-pop">
<div class="float-flag-shape"></div>
<el-checkbox-group v-model="scope.row.checkList"
@change="clickMultipleChoice(scope.row,scope.$index,1)">
<el-checkbox v-for="(item,index) in scope.row.MultipleChoiceList" :key="index"
:label="item.Id">{{item.Name}}</el-checkbox>
</el-checkbox-group>
<div class="agreement-Cancel">
<span @click.stop="popCancelClick(scope.row,scope.$index,1)">取消</span>
<span @click.stop="popClick(scope.row,scope.$index,1)">确定</span>
</div>
</div>
</i>
</div>
</template>
</el-table-column>
<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.OrderStatus!=6"
@click="makeAdocument(scope.row,scope.$index,2)" class="iconfont iconjia- numIcon"></i>
</template>
</el-table-column>
<el-table-column label="成本" :width="120">
<template slot-scope="scope">
<div class="agreement-IncomeMoney-box">
{{scope.row.PayMoney}}<i v-if="scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5&&scope.row.OrderStatus!=6"
@click="makeAdocument(scope.row,scope.$index,3)" class="iconfont iconjia- numIcon">
<div v-show="scope.row.cost" class="agreement-IncomeMoney-pop">
<div class="float-flag-shape"></div>
<el-radio-group v-model="scope.row.selectedType"
@change="clickMultipleChoice(scope.row,scope.$index,3)">
<el-radio v-for="(item,index) in scope.row.MultipleChoiceList" :key="index"
:label="item.Id">{{item.Name}}</el-radio>
</el-radio-group>
<div class="agreement-Cancel">
<span @click.stop="popCancelClick(scope.row,scope.$index,3)">取消</span>
<span @click.stop="popClick(scope.row,scope.$index,3)">确定</span>
</div>
</div>
</i>
</div>
</template>
</el-table-column>
<el-table-column prop="TaxMoney" label="手续费" show-overflow-tooltip>
</el-table-column>
<el-table-column label="待收" show-overflow-tooltip>
<template slot-scope="scope">
<p class="ToBeReceived" :class="scope.row.DueinMoney==0?'blue':'red'">
{{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==3?'error':
(scope.row.TicketStatus==4?'cancel':
(scope.row.TicketStatus==5?'Black':''))))">
{{scope.row.TicketStatusName}}
</span>
<i v-if="scope.row.TicketStatus!=1&&
scope.row.TicketVoucherList!=[]&&
scope.row.CancelVoucherList!=[]&&
scope.row.TicketStatusName!='无需机票'" class="iconfont iconpingzhengchaxun Credentials"
@click="viewCredentials(scope.row)"></i>
</template>
</el-table-column>
<el-table-column label="出签状态" :width="90">
<template slot-scope="scope">
<span @click="scope.row.VisaStatus=='1'?AmendVisa(scope.row):''" class="tatusText" :class="scope.row.VisaStatus==1?'grey'+' cp':
(scope.row.VisaStatus==2?'success':
(scope.row.VisaStatus==0?'Black':''))">
{{scope.row.VisaStatus==1?'未出签':(scope.row.VisaStatus==2?'已出签':'无需签证')}}
</span>
<i v-if="scope.row.VisaStatus==2" class="cp iconfont iconpingzhengchaxun Credentials"
@click="CheckOutDetails(scope.row)"></i>
</template>
</el-table-column>
<el-table-column label="订单状态" show-overflow-tooltip>
<template slot-scope="scope">
<div class="Order-list-Status" :class="scope.row.OrderStatus=='1'?'one':
(scope.row.OrderStatus=='2'?'two':
(scope.row.OrderStatus=='3'?'three':
(scope.row.OrderStatus=='4'?'four':
(scope.row.OrderStatus=='5'?'five':
(scope.row.OrderStatus=='6'?'six':'')))))">
<span>{{scope.row.OrderStatusName}}</span>
</div>
</template>
</el-table-column>
<el-table-column prop="Remark" label="客户需求" show-overflow-tooltip>
</el-table-column>
<el-table-column label="收入单据" show-overflow-tooltip>
<template slot-scope="scope">
<p v-for="(item,index) in scope.row.IncomeFinance" :key="index"
:class="item.Status==1?'income_1':'income_2'" @click="openDetails(item.FrID)">
{{item.FrID}}
</p>
</template>
</el-table-column>
<el-table-column label="退款单据" show-overflow-tooltip>
<template slot-scope="scope">
<p v-for="(item,index) in scope.row.BackFinance" :key="index"
:class="item.Status==1?'income_1':'income_2'" @click="openDetails(item.FrID)">
{{item.FrID}}
</p>
</template>
</el-table-column>
<el-table-column label="成本单据" show-overflow-tooltip>
<template slot-scope="scope">
<p v-for="(item,index) in scope.row.PayFinance" :key="index"
:class="item.Status==1?'income_1':'income_2'" @click="openDetails(item.FrID)">
{{item.FrID}}
</p>
</template>
</el-table-column>
<el-table-column prop="CreateByName" label="创建人" show-overflow-tooltip>
</el-table-column>
<el-table-column fixed="right" label="操作" :width="120">
<template slot-scope="scope">
<div class="item-but-box">
<div class="enedit-box">
<el-tooltip v-if="scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5&&scope.row.OrderStatus!=6" class="item-but"
effect="dark" content="编辑订单" placement="top">
<i class="iconfont iconwenbenbianji cp" @click="editOrder(scope.row)"></i>
</el-tooltip>
<div>
<el-select style="width:70px" class="select-right" clearable size="mini"
v-model="scope.row.More" placeholder="更多" @change="chooseMore(scope.row)">
<el-option v-for="items in scope.row.MoreList" v-show="items.show"
:key="items.Id" :label="items.Name" :value="items.Id">
</el-option>
</el-select>
</div>
</div>
</div>
</template>
</el-table-column>
</el-table>
<orderList :dataList="dataList" :pagesTitle="title" :loading="loading" @emptyMore="emptyMore"></orderList>
</div>
<div v-if="total>0">
<el-pagination class="Mypagination" background @current-change="handleCurrentChange"
......@@ -454,14 +266,17 @@
</div>
</template>
<script>
import orderList from "../myOrdersAllType/components/orderList";
import orderDetailsDrawer from "../customerManage/orderDetailsDrawer";
export default {
components: {
orderList,
orderDetailsDrawer
},
props: ["ID", "BusinessType"],
props: ["detailsData","ID", "BusinessType"],
data() {
return {
title: '销售',
VisaList: [{
Name: "不限",
Id: "0"
......@@ -517,22 +332,49 @@
Id: '3'
},
],
OrderStatusList: [], //订单状态
OrderStatusList: [
{Name: '不限',Id:0},
{Name: '正常',Id:1},
{Name: '取消',Id:2}], //订单状态
OrderTypeList:[],
ticketingStatusList: [], // 出票状态
dataList: [],
loading: false,
msg: {
// pageIndex: 1,
// pageSize: 10,
// OrderId: "",
// GuestId: "",
// TicketStatus: '0',
// VisaStatus: "0", //出签状态
// OrderStatus: "0",
// StartCityName: "",
// EndCityName: "",
// EnterID: "",
// userInfo: {},
pageIndex: 1,
pageSize: 10,
OrderId: "",
GuestId: "",
TicketStatus: '0',
VisaStatus: "0", //出签状态
OrderStatus: "0",
StartCityName: "",
EndCityName: "",
EnterID: "",
userInfo: {}
pageSize: 15,
OrderId: "", //订单id
GuestId: 0, //客人id
EnterId: '0', //业务员id
OrderState: 1, //订单状态
Q_IsCollect: "0", //收款状态
StartTime: "",//报名开始日期
EndTime: "",//报名结束日期
IsMyOrder: "1", //我的订单
FinishSTime: "",//完结开始时间
FinishETime: "",//完结结束时间
DepartSTime: "",//出发开始
DepartETime: "",//出发结束
TCNUM: "",//团号
ProductName: "",//商品名称
CustomerName: "",//客户名称
LureEmpId: 0,//引流人员
LineId: 0,//线路
TravelType: 0,//跟团类型 1跟团 2当地游
OrderType: "0",//订单类型
IsSelectCRM: 1,//1来源crm
IsMyOrder: 0,//1我的订单
},
total: 0,
currentOrder: null,
......@@ -546,12 +388,20 @@
},
deep: true,
},
detailsData: {
handler(val, oldVal) {
this.detailsData = val
},
deep: true,
},
},
mounted() {
this.msg.StartTime = this.getBeforeDate(31, new Date())
this.msg.EndTime = this.formatDate(new Date(), "YYYY-MM-dd", 0)
this.userInfo = this.getLocalStorage();
this.getList();
this.GetTicketStatusEnumList()
this.GetOrderStatusEnumList() //订单状态枚举
this.GetOrderTypeEnumList() //订单状态枚举
let $this = this
$this.MsgBus.$on("closeGetList", function () {
$this.getList()
......@@ -567,6 +417,48 @@
});
},
methods: {
handleCommand(command) {
let data = [{
path: "",
LureEmpNmae: this.detailsData.CreateByStr,//引流姓名
LureEmpId: this.detailsData.CreateBy,//引流id
CRMGuestId: this.ID, //客人ID
CRMGuestName: this.detailsData.SurName+this.detailsData.Name //客人ID
}]
let href
let url = this.domainManager().erpRoutingUrl;
if (command == 1) {
this.addBusiness();
}else{
if (command == 2) {
data[0].path = 'VisaProductAddOrder'
href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}else if (command == 3) {
data[0].path = 'productQuery'
href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}
else if (command == 4) {
data[0].path = 'productQueryOne'
href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}
else if (command == 5) {
data[0].path = 'singleProductHotelList'
href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}
else if (command == 6) {
data[0].path = 'SingleticketList'
href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}
else if (command == 7) {
data[0].path = 'BookAcarList'
href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}
if(href){
window.open(href);
}
}
},
// 清空下拉
emptyMore() {
this.dataList.forEach(item => {
......@@ -1027,15 +919,15 @@
window.open(href);
},
// 获取订单状态枚举
GetOrderStatusEnumList() {
this.apipost("/api/Order/GetOrderStatusEnumList", {}, (res) => {
GetOrderTypeEnumList() {
this.apipost2("CarSingle_post_GetOrderTypeEnumList", {}, (res) => {
if (res.data.resultCode == 1) {
this.OrderStatusList = res.data.data;
this.OrderTypeList = res.data.data;
let data = {
Name: "不限",
Id: "0",
};
this.OrderStatusList.unshift(data);
this.OrderTypeList.unshift(data);
} else {
this.$message.error(res.data.message);
}
......@@ -1065,108 +957,12 @@
getList() {
this.loading = true;
this.msg.GuestId = this.ID;
this.apipost(
"/api/Order/GetGuestOrderPageList",
this.apipost2(
"CarSingle_post_GetGuestOrderStatisticsPageList",
this.msg,
(res) => {
if (res.data.resultCode == 1) {
let data = res.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 != 6 ? true : false
},
{
Name: '收损完结',
Id: '9',
show: (item.OrderStatus == 3 || item.OrderStatus == 4)
&& item.DueinMoney == 0 ? true : false
},
{
Name: '订单完结',
Id: '6',
show: item.OrderStatus == 1 && item.DueinMoney == 0 ?
true : false
},
{
Name: "操作日志",
Id: "7",
show: true,
},
{
Name: "修改日期",
Id: "10",
show: item.OrderType&&item.OrderType.indexOf(1) != -1?true:false,
}
]
});
};
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) {
let LossList = item.LossList
for (let h = 0; h < LossList.length; h++) {
for (let i = 0; i < item.MultipleChoiceList.length; i++) {
if (LossList[h].OrderType == this.MultipleChoiceList[i].Id) {
item.MultipleChoiceList[i].show = true
}
}
}
}
})
this.dataList = data;
this.total = res.data.data.count;
this.loading = false
......@@ -1175,7 +971,7 @@
this.$message.error(res.data.message);
}
}
);
)
},
// 添加订单
addBusiness() {
......
<style>
@import "../../../assets/css/customerManage.css";
* {
font-family: "perfectFont";
}
.query-box .el-row .el-col {
display: flex;
align-items: center;
margin-bottom: 15px;
}
.query-box .el-row .el-col span {
flex-shrink: 0;
}
.statistics {
background: #fff;
}
.statistics-box {
padding: 7px 16px;
background-color: #dddee0;
display: flex;
flex-direction: column;
flex-wrap: wrap;
border-radius: 5px;
margin-right: 10px;
}
.statistics-top{
width: 50%;
}
.statistics-box span{
margin-right: 10px;
}
.statistics-box:last-child {
margin-right: 0;
}
.statistics-box span:first-child {
font-weight: bold;
margin-right: 5px;
flex-shrink: 0;
}
.red {
color: #f72e52;
}
.blue {
color: #3a7cf7;
}
.status-box {
display: flex;
flex-direction: row;
justify-content: flex-end;
}
.status-text {
display: flex;
flex-direction: row;
align-items: center;
margin-left: 15px;
font-size: 13px;
}
.tis-k {
width: 10px;
height: 10px;
margin-right: 10px;
}
</style>
<template>
<div class="customerManage">
<div class="tools">
<h1> {{pagesTitle=='销售'?'我的订单管理':'我的订单统计管理'}}</h1>
<div class="rightmenu">
<!-- <el-button size="mini" type="primary" @click="downLoadExcel">导出</el-button> -->
</div>
</div>
<div class="query-box">
<el-row :gutter="20">
<el-col :xs="7" :sm="6" :md="5" :lg="4" :xl="3">
<span class="font-size-12" style="padding-right: 10px">客人姓名</span>
<el-input size="mini" class="w210" v-model="msg.CustomerName" placeholder="客人姓名" clearable
@change="getList" @keyup.enter.native="getList"></el-input>
</el-col>
<el-col v-if="pagesTitle!='销售'" :xs="7" :sm="6" :md="5" :lg="4" :xl="3">
<span class="font-size-12" style="padding-right: 10px"
>业务员</span
>
<el-select size="mini" v-model="msg.EnterId" @change="getList">
<el-option
v-for="(item, index) in EmployeeList"
:key="index"
:label="item.EmName"
:value="item.EmployeeId"
>
</el-option>
</el-select>
</el-col>
<el-col :xs="7" :sm="6" :md="5" :lg="4" :xl="3">
<span class="font-size-12" style="padding-right: 10px">订单号</span>
<el-input size="mini" class="w210" v-model="msg.OrderId" placeholder="订单号" clearable
@change="getList" @keyup.enter.native="getList"></el-input>
</el-col>
<el-col :xs="7" :sm="6" :md="5" :lg="4" :xl="3">
<span class="font-size-12" style="padding-right: 10px"
>订单类型</span
>
<el-select size="mini" v-model="msg.OrderType" @change="getList">
<el-option
v-for="(item, index) in OrderTypeList"
:key="index"
:label="item.Name"
:value="item.Id"
>
</el-option>
</el-select>
</el-col>
<el-col :xs="7" :sm="6" :md="5" :lg="4" :xl="3">
<span class="font-size-12" style="padding-right: 10px">订单状态</span>
<el-select size="mini" v-model="msg.OrderState" @change="getList">
<el-option v-for="(item,index) in OrderStatusList"
:key="index"
:label="item.Name" :value="item.Id"> </el-option>
</el-select>
</el-col>
<el-col :xs="7" :sm="6" :md="5" :lg="4" :xl="3">
<span class="font-size-12" style="padding-right: 10px">收款状态</span>
<el-select size="mini" v-model="msg.Q_IsCollect" @change="getList">
<el-option v-for="(item,index) in QIsCollectList"
:key="index"
:label="item.Name" :value="item.Id"> </el-option>
</el-select>
</el-col>
<el-col :xs="8" :sm="7" :md="6" :lg="4" :xl="3">
<span class="font-size-12" style="padding-right: 10px">报名开始</span>
<el-date-picker
v-model="msg.StartTime"
@change="getList"
size="mini"
style="width: 100%;"
format="yyyy-MM-dd"
type="date"
value-format="yyyy-MM-dd"
placeholder="开始日期">
</el-date-picker>
</el-col>
<el-col :xs="8" :sm="7" :md="6" :lg="4" :xl="3">
<span class="font-size-12" style="padding-right: 10px">报名结束</span>
<el-date-picker
v-model="msg.EndTime"
@change="getList"
size="mini"
style="width: 100%;"
format="yyyy-MM-dd"
type="date"
value-format="yyyy-MM-dd"
placeholder="结束日期">
</el-date-picker>
</el-col>
<el-col :xs="8" :sm="7" :md="6" :lg="4" :xl="3">
<span class="font-size-12" style="padding-right: 10px"
>出发开始</span
>
<el-date-picker
v-model="msg.DepartSTime"
@change="getList"
size="mini"
style="width: 100%"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
type="date"
placeholder="出发开始"
>
</el-date-picker>
</el-col>
<el-col :xs="8" :sm="7" :md="6" :lg="4" :xl="3">
<span class="font-size-12" style="padding-right: 10px"
>出发结束</span
>
<el-date-picker
v-model="msg.DepartETime"
@change="getList"
size="mini"
style="width: 100%"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
type="date"
placeholder="出发结束"
>
</el-date-picker>
</el-col>
<el-col :xs="8" :sm="7" :md="6" :lg="4" :xl="3">
<el-button icon="iconfont iconshaixuan"
class="crm-btn query-btn crm-btn-mini margin-right0"
@click="sceneShow= true">高级筛选</el-button>
</el-col>
</el-row>
</div>
<div class="statistics px-10px">
<template v-for="(item,index) in SummaryList">
<div class="statistics-box" :key="index">
<!-- <span>币种</span> -->
<div>
<span>{{item.CurrencyName}}</span>
</div>
<div class="statistics-top">
<div>
<span>应收</span>
<span>{{item.Money}}</span>
</div>
<div>
<span>实收</span>
<span>{{item.Income}}</span>
</div>
<div>
<span>退款</span>
<span class="red">{{item.Refund}}</span>
</div>
<div>
<span>手续费</span>
<span>{{item.PlatformTax}}</span>
</div>
<div>
<span>成本</span>
<span>{{item.CostMoney}}</span>
</div>
<div>
<span>待收</span>
<span :class="{'red':item.DueInMoney>0}">{{item.DueInMoney}}</span>
</div>
<div>
<span>报名数</span>
<span class="blue">{{item.GuestNum}}</span>
</div>
</div>
</div>
</template>
</div>
<div class="query-box status-box"></div>
<orderList :dataList="dataList" :pagesTitle="title" :loading="loading" @emptyMore="emptyMore"></orderList>
<div>
<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>
<!-- 高级筛选 -->
<el-dialog :visible.sync="sceneShow" :close-on-click-modal="false" width="800px"
custom-class="transfer-box add-box add-box2 add-scene">
<div class="add-tit" slot="title">
<p><span></span>高级筛选</p>
<span icon="el-icon-close"></span>
</div>
<div class="query-box">
<el-row :gutter="20">
<el-col :xs="12" :sm="12" :md="12" :lg="8" :xl="8">
<span class="font-size-12" style="padding-right: 10px">团队类型</span>
<el-select size="mini" v-model="msg.TravelType" @change="getList">
<el-option v-for="(item,index) in OrderStatusList"
:key="index"
:label="item.Name" :value="item.Id"> </el-option>
</el-select>
</el-col>
<el-col :xs="12" :sm="12" :md="12" :lg="8" :xl="8">
<span class="font-size-12" style="padding-right: 10px"
>完结开始</span
>
<el-date-picker
v-model="msg.FinishSTime"
@change="getList"
size="mini"
style="width: 100%"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
type="date"
placeholder="机票完结开始"
>
</el-date-picker>
</el-col>
<el-col :xs="12" :sm="12" :md="12" :lg="8" :xl="8">
<span class="font-size-12" style="padding-right: 10px"
>完结结束</span
>
<el-date-picker
v-model="msg.FinishETime"
@change="getList"
size="mini"
style="width: 100%"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
type="date"
placeholder="机票完结结束"
>
</el-date-picker>
</el-col>
</el-row>
</div>
</el-dialog>
</div>
</template>
<script>
import orderList from "./orderList";
export default {
components: {
orderList,
},
props:['pagesTitle'],
data() {
return {
SummaryList: [],
sceneShow: false,
title: '',//op 销售
VisaList: [
{ Name: "不限", Id: "0" },
{ Name: "未出签", Id: "1" },
{ Name: "已出签", Id: "2" },
],
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,
},
],
StatModel: {}, // 合计
loading: false,
total: 0,
dataList: [],
timeList: [], //时间
msg: {
pageIndex: 1,
pageSize: 15,
OrderId: "", //订单id
GuestId: 0, //客人id
EnterId: '0', //业务员id
OrderState: 1, //订单状态
Q_IsCollect: "0", //收款状态
StartTime: "",//报名开始日期
EndTime: "",//报名结束日期
IsMyOrder: "1", //我的订单
FinishSTime: "",//完结开始时间
FinishETime: "",//完结结束时间
DepartSTime: "",//出发开始
DepartETime: "",//出发结束
TCNUM: "",//团号
ProductName: "",//商品名称
CustomerName: "",//客户名称
LureEmpId: 0,//引流人员
LineId: 0,//线路
TravelType: 0,//跟团类型 1跟团 2当地游
OrderType: "0",//订单类型
IsSelectCRM: 1,//1来源crm
IsMyOrder: 1,//1我的订单
},
ticketingStatusList: [], // 出票状态
OrderStatusList: [
{Name: '不限',Id:0},
{Name: '正常',Id:1},
{Name: '取消',Id:2}],
OrderTypeList: [],
TravelTypeList: [
{Name: '不限',Id:0},
{Name: '跟团',Id:1},
{Name: '2当地游',Id:2}
],
QIsCollectList: [
{ Name: "不限", Id: "0" },
{ Name: "已收齐", Id: "1" },
{ Name: "未收齐", Id: "2" },
],
EmployeeList: [], // 业务员数据
userInfo: {},
};
},
watch: {
pagesTitle: {
handler(val, oldVal) {
this.title = val
if(this.title!='OP'){
this.msg.IsMyOrder = 1
}else{
this.msg.IsMyOrder = 0
}
},
immediate: true
},
},
mounted() {
this.msg.StartTime = this.getBeforeDate(31, new Date())
this.msg.EndTime = this.formatDate(new Date(), "YYYY-MM-dd", 0)
if(this.title!='OP'){
this.msg.IsMyOrder = 1
}else{
this.msg.IsMyOrder = 0
}
this.userInfo = this.getLocalStorage();
// this.msg.EnterId = this.userInfo.EmployeeId;
// erp自动登陆传过来的参数
if (this.$route.query.erpOrderObj) {
let data = JSON.parse(this.$route.query.erpOrderObj);
this.msg.OrderId = data.OrderId;
}
this.Employee(); //业务员
this.getSummaryData()
this.GetOrderTypeEnumList(); //订单状态枚举
let $this = this;
this.MsgBus.$on("closeGetList", function() {
$this.getList();
});
$this.MsgBus.$on("closeBillMaking", function() {
for (let i = 0; i < $this.dataList.length; i++) {
$this.dataList[i].checkList = [];
$this.dataList[i].selectedType = "";
$this.dataList[i].actuallyReceived = false;
$this.dataList[i].cost = false;
}
$this.emptyMore()
});
this.getList();
},
methods: {
// 清空下拉
emptyMore() {
this.dataList.forEach(item => {
return item.More = ''
})
},
// 获取业务员
Employee() {
let userInfo = this.getLocalStorage();
let msg = {
RB_Group_id: userInfo.RB_Group_id,
BranchId: -1,
DepartmentId: 0,
PostId: 0,
IsLeave: 0,
};
this.apipost2(
"admin_get_EmployeeGetList",
msg,
(res) => {
if (res.data.resultCode == 1) {
this.EmployeeList = res.data.data;
let data = {
EmName: "不限",
EmployeeId: "0",
};
this.EmployeeList.unshift(data);
} else {
}
},
(err) => {}
);
},
//点击下载
downLoadExcel() {
if (!this.msg.StartTime || !this.msg.EndTime) {
let tips = "请选择开始时间、结束时间!";
this.$confirm(tips, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {})
.catch(() => {});
return;
}
this.GetLocalFile(
"/api/Order/GetGuestOrderStatisticsToExcel",
this.msg,
"订单表.xls"
);
},
// 清空下拉
emptyMore() {
this.dataList.forEach((item) => {
return (item.More = "");
});
},
// 获取订单状态枚举
GetOrderTypeEnumList() {
this.apipost2("CarSingle_post_GetOrderTypeEnumList", {}, (res) => {
if (res.data.resultCode == 1) {
this.OrderTypeList = res.data.data;
let data = {
Name: "不限",
Id: "0",
};
this.OrderTypeList.unshift(data);
} else {
this.$message.error(res.data.message);
}
});
},
getList() {
this.loading = true;
this.apipost2(
"CarSingle_post_GetGuestOrderStatisticsPageList",
this.msg,
(res) => {
if (res.data.resultCode == 1) {
let data = res.data.data.pageData;
this.dataList = data;
this.total = res.data.data.count;
// this.StatModel = res.data.data.StatModel;
this.loading = false;
} else {
this.$message.error(res.data.message);
}
}
);
},
getSummaryData(){
this.apipost2(
"CarSingle_post_GetGuestOrderStatistics",
this.msg,
(res) => {
if (res.data.resultCode == 1) {
let data = res.data.data;
this.SummaryList = data
// console.log(data)
} else {
this.$message.error(res.data.message);
}
}
);
},
handleSizeChange(val) {
this.msg.pageSize = val;
this.getList();
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
},
};
</script>
\ No newline at end of file
<!--订单列表-->
<template>
<div>
<el-table
v-loading="loading"
stripe
ref="multipleTable"
:data="dataList"
tooltip-effect="dark"
style="width: 100%"
row-class-name="font-size-12">
<el-table-column
label="商品类型"
show-overflow-tooltip>
<template slot-scope="scope">
<el-tag size="mini">{{scope.row.OrderTypeName}}</el-tag>
</template>
</el-table-column>
<el-table-column
width="130"
prop="CreateTimeStr"
label="日期"
show-overflow-tooltip>
</el-table-column>
<el-table-column
label="客人姓名"
show-overflow-tooltip>
<template slot-scope="scope">
<span class="colorblue font-color-link" @click="openNameDetails(scope.row)">
{{scope.row.GuestName}}
</span>
</template>
</el-table-column>
<el-table-column
prop="SaleName"
label="销售姓名"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="LureEmpName"
label="引流姓名"
show-overflow-tooltip>
</el-table-column>
<el-table-column
label="商品名称"
show-overflow-tooltip>
<template slot-scope="scope">
<el-tooltip class="item" effect="dark" :content="scope.row.Name" placement="top">
<p style="max-width: 100px;overflow: hidden;text-overflow: ellipsis">{{scope.row.Name}}</p>
</el-tooltip>
</template>
</el-table-column>
<el-table-column
prop="Money"
label="总金额"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CostMoney"
label="成本"
show-overflow-tooltip>
</el-table-column>
<el-table-column
label="待收"
show-overflow-tooltip>
<template slot-scope="scope">
<span :class="{'red':scope.row.DueInMoney>0}">{{scope.row.DueInMoney}}</span>
</template>
</el-table-column>
<el-table-column
prop="Income"
label="实收"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="PlatformTax"
label="手续费"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="Refund"
label="退款"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="DiscountsMoney"
label="优惠"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="StateName"
label="状态"
show-overflow-tooltip>
<template slot-scope="scope">
<span>{{scope.row.StateName}}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
show-overflow-tooltip>
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="goDetails(scope.row)">查看</el-button>
</template>
</el-table-column>
</el-table>
<el-drawer :with-header="false" size='70%' :visible.sync="drawer" direction="rtl" :before-close="handleClose">
<!-- {{drawer}} -->
<customerInfoBox :CustomerId="CustomerId" :activeNameNum="activeNameNum" :receiptType="receiptType"/>
</el-drawer>
<!-- 单号抽屉 -->
<el-drawer @closed="closeOrderDrawerHandler" :with-header="false" size='70%' :visible.sync="orderDrawer" direction="rtl" :before-close="handleClose">
<orderDetailsDrawer v-if="currentOrder" :orderId="currentOrder.OrderId" :activeNameNum="activeNameNum" />
</el-drawer>
<!-- 提成详情 -->
<commissionPopUp v-if="commissionPopUpVisible" :parameters="parameters"></commissionPopUp>
</div>
</template>
<script>
import customerInfoBox from "../../guestManagement/customerInfoBox";
import orderDetailsDrawer from "../../customerManage/orderDetailsDrawer";
import commissionPopUp from "../../dialogModel/commissionPopUp";
export default {
components: {
customerInfoBox,
orderDetailsDrawer,
commissionPopUp
},
props: {
pagesTitle: {
type: String,
default: "",
},
//订单
dataList: {
type: Array,
default: null,
},
loading: {
type: Boolean,
default: false,
},
superManage: {
type: String,
default: "",
},
},
data() {
return {
CustomerId: "",
CustomerName: "",
currentOrder: null,
parameters:{},
receiptType:{},
drawer: false,
orderDrawer: false,
commissionPopUpVisible: false,
activeNameNum:"1",
};
},
created() {},
watch: {
loading: {
handler(val, oldVal) {
this.loading = val;
},
deep: true,
},
pagesTitle: {
handler(val, oldVal) {
this.pagesTitle = val
},
immediate: true
},
},
mounted() {
let $this = this;
this.userInfo = this.getLocalStorage();
this.MsgBus.$on("closeaddContacts", function() {
$this.commissionPopUpVisible = false;
$this.emptyMore()
});
},
methods: {
goDetails(row){
let data = [{
path: "",
OrderId: row.OrderId,
Type: ''
}]
let href
let url = this.domainManager().erpRoutingUrl;
let command = row.OrderType
if (row.OrderType == 1) {
let name = ''
if(this.pagesTitle=='销售'||this.pagesTitle=='详情'){
name = 'myCustomerOrder'
}else{
name = 'customerOrder'
}
this.$router.push({
name: name,
query: {
OrderId: row.OrderId,
blank: "y",
}
});
}else{
if (row.OrderType == 6) {
if(this.pagesTitle=='销售'||this.pagesTitle=='详情'){
data[0].path = 'VisaProductEditOrder'
}else{
data[0].path = 'VisaProductEditOrderOP'
}
href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}else if (row.OrderType == 2) {//3跟团 4一日游
data[0].path = 'enrollTotal'
href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}
else if (row.OrderType == 3) {//酒店
if(this.pagesTitle=='销售'||this.pagesTitle=='详情'){
data[0].path = 'singleProductHotelOrder'
}else{
data[0].path = 'singleProductHotelOrderOP'
}
href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}
else if (row.OrderType == 4) {//门票
if(this.pagesTitle=='销售'||this.pagesTitle=='详情'){
data[0].path = 'SingleticketOrderList'
}else{
data[0].path = 'SingleticketOrderListOP'
}
href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}
else if (row.OrderType == 5) {//包车
this.GetAdminCarOrderPageList(row,url,href,data)
}
else if (row.OrderType == 7) {//jalan酒店
// if(this.pagesTitle=='销售'){
// data[0].path = 'CharterOrderList'
// }else{
// data[0].path = 'CharterOrderListOP'
// }
// href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}
if(href){window.open(href);}
}
},
GetAdminCarOrderPageList(row,url,href,data){
let msg = {
pageIndex: 1,
pageSize: 5,
OrderType: '',
OrderId: row.OrderId,
OrderNo: '',
SurName: '',
Name: '',
OrderStatus: 0,
StartTime: '',
EndTime: '',
OrderSTime: '',
OrderETime: '',
ProductName: '',
Mobile: '',//电话
IsSelectSale: 1,
EnterID: 0,//业务员
}
this.apipost2('CarSingle_post_GetAdminCarOrderPageList', msg, res => {
if (res.data.resultCode == 1) {
let pageData = res.data.data.pageData
let OrderType
if(pageData&&pageData.length>0){
OrderType = pageData[0].OrderType
}
data[0].Type = OrderType?OrderType:4
if(this.pagesTitle=='销售'||this.pagesTitle=='详情'){
data[0].path = 'CharterOrderList'
}else{
data[0].path = 'CharterOrderListOP'
}
href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
window.open(href)
}
})
},
// 提成列表
commissionDetails(item){
this.parameters = item
this.commissionPopUpVisible = true
},
openNameDetails(item) {
this.drawer = true;
this.CustomerId = item.GuestId;
this.CustomerName = item.GuestName;
},
handleClose(done) {
done();
},
closeOrderDrawerHandler() {
this.currentOrder = null;
this.orderDrawer = false;
},
},
};
</script>
<style scoped>
@import "../../../assets/css/allorder.css";
</style>
<template>
<allList :pagesTitle="pagesTitle"></allList>
</template>
<script>
import allList from "./components/allList";
export default {
components: {
allList,
},
data() {
return {
pagesTitle:'OP'
};
},
mounted() {
},
methods: {
},
};
</script>
<template>
<allList :pagesTitle="pagesTitle"></allList>
</template>
<script>
import allList from "./components/allList";
export default {
components: {
allList,
},
data() {
return {
pagesTitle:'销售'
};
},
mounted() {
},
methods: {
},
};
</script>
......@@ -122,7 +122,33 @@ Vue.prototype.moneyFormat = function (value) {
}
return x1 + x2;
},
// 计算当前日期的前后日期
Vue.prototype.getBeforeDate = function (num, time) {
let n = num;
let d = '';
if (time) {
d = new Date(time);
} else {
d = new Date();
}
let year = d.getFullYear();
let mon = d.getMonth() + 1;
let day = d.getDate();
if (day <= n) {
if (mon > 1) {
mon = mon - 1;
} else {
year = year - 1;
mon = 12;
}
}
d.setDate(d.getDate() - n);
year = d.getFullYear();
mon = d.getMonth() + 1;
day = d.getDate();
let s = year + "-" + (mon < 10 ? ('0' + mon) : mon) + "-" + (day < 10 ? ('0' + day) : day);
return s;
}
// 注册
Vue.filter('priceFormat', function (value) {
if (value == null) {
......
......@@ -13,13 +13,14 @@ export default {
Vue.prototype.domainManager = function() {
//CRM API
let domainUrl = "";
domainUrl = "http://192.168.10.46:8500";
// domainUrl = "http://192.168.10.36:8098";
// domainUrl = "http://192.168.10.46:8500";
domainUrl = "http://192.168.10.9:8098";
// domainUrl = "http://crm.oytour.com"
//domainUrl = "http://localhost:5003";
let locationName = window.location.hostname;
//旅游ERPApi
let domainPostUrl = ""
domainPostUrl = "http://192.168.10.36:8083";
domainPostUrl = "http://192.168.10.9:8083";
//domainPostUrl = "http://192.168.10.46";
if (this.isOnline()) {
if (window.location.host.indexOf('fcrmyx.oytour.com') != -1) {
......@@ -43,7 +44,7 @@ export default {
javaUrl: locationName.indexOf('testb2b') == -1 ? "http://efficient.oytour.com" : locationName.indexOf('testb2b.oytour.com') !== -1 ? "http://47.96.12.235:9001" : "http://192.168.10.215:9000",
ViittoFileUrl: locationName.indexOf('oytour') !== -1 || locationName.indexOf('testb2b.oytour.com') !== -1 ? "http://staticfile.oytour.com" : 'http://192.168.10.214:8130',
UploadUrl: locationName.indexOf('oytour') !== -1 || locationName.indexOf('testb2b.oytour.com') !== -1 ? "http://uploadfile.oytour.com" : "http://192.168.10.214:8120",
erpRoutingUrl: locationName.indexOf('oytour') !== -1 || locationName.indexOf('testb2b.oytour.com') !== -1 ? "http://yx.oytour.com/#/" : "http://www.test.com:8081/#/",
erpRoutingUrl: locationName.indexOf('oytour') !== -1 || locationName.indexOf('testb2b.oytour.com') !== -1 ? "http://yx.oytour.com/#/" : "http://localhost:8081/#/"// "http://www.test.com:8081/#/",
};
return obj;
},
......
......@@ -20,6 +20,8 @@ import customerOrder from "./components/customerManage/customerOrder"
import myCustomerOrder from "./components/customerManage/myCustomerOrder"
import automaticLogin from './views/automaticLogin'
import planeTicketOrder from './components/planeTicketOrder/index'
import myCustomerOrderAllType from "./components/myOrdersAllType/myCustomerOrderAllType"
import customerOrderAllType from "./components/myOrdersAllType/customerOrderAllType"
import Test from './components/Test'
Vue.use(Router);
......@@ -518,10 +520,26 @@ export default new Router({
path: "/myCustomerOrder",
name: "myCustomerOrder",
component: myCustomerOrder,
meta: {
title: "机票订单"
}
},
{
path: "/myCustomerOrderAllType",
name: "myCustomerOrderAllType",
component: myCustomerOrderAllType,
meta: {
title: "我的订单"
}
},
{
path: "/customerOrderAllType",
name: "customerOrderAllType",
component: customerOrderAllType,
meta: {
title: "订单统计"
}
},
{
path: "/planeTicketOrder",
name: "planeTicketOrder",
......
......@@ -120,7 +120,7 @@
Domain: "fcrmyx.oytour.com",
};
if (!this.isOnline()) {
msg.Domain = "www.test.com";
msg.Domain = "localhost";//www.test.com localhost
}
this.apipost("/api/Login/UserLogin", msg, (res) => {
var jsonData = res.data;
......
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