Commit 372e0c2a authored by liudong1993's avatar liudong1993
parents 0fc6f46e 795c6bc4
...@@ -159,7 +159,7 @@ export const obj = { ...@@ -159,7 +159,7 @@ export const obj = {
yinliuren: '引流人', yinliuren: '引流人',
guanlian: '关联', guanlian: '关联',
ruzhuriqi: '入住日期', ruzhuriqi: '入住日期',
ruzhuxinxi: '入信息', ruzhuxinxi: '入信息',
fangxinzonjia: '按照入住人数*房型单价=房型总价小计(不含稅)', fangxinzonjia: '按照入住人数*房型单价=房型总价小计(不含稅)',
renjian: '人间', renjian: '人间',
daodianfukuan: '到店自付', daodianfukuan: '到店自付',
......
...@@ -380,10 +380,11 @@ ...@@ -380,10 +380,11 @@
<p>{{ComplainInfo.Description}}</p> <p>{{ComplainInfo.Description}}</p>
</li> </li>
</ul> </ul>
<template v-if="userInfo.SimpleEasy&&userInfo.SimpleEasy==1">
<ul> <ul>
<li style="height:auto;line-height: 20px;padding:5px 0;"> <li style="height:auto;line-height: 20px;padding:5px 0;">
<div class="_addUpload_box _addUpload_box_btm clearfix" v-if="ComplainInfo.FileDataList.length>0"> <div class="_addUpload_box _addUpload_box_btm clearfix" v-if=" ComplainInfo.FileDataList.length>0">
<p>{{$t('objFill.fj')}}</p> <p>{{$t('objFill.fj')}}</p>
<template v-for="(file,fIndex) in ComplainInfo.FileDataList"> <template v-for="(file,fIndex) in ComplainInfo.FileDataList">
<div v-if="file.FileType==3"> <div v-if="file.FileType==3">
...@@ -404,7 +405,7 @@ ...@@ -404,7 +405,7 @@
</div> </div>
</li> </li>
</ul> </ul>
</template>
</div> </div>
<div class="CD_Conditions"> <div class="CD_Conditions">
......
...@@ -390,6 +390,7 @@ ...@@ -390,6 +390,7 @@
</span> </span>
</li> </li>
<li> <li>
<el-button class="hollowFixedBtn" v-if="IsSupperOrderEdit&&pagesTitle!='销售'" @click="setCompleted">{{$t('objFill.oneclickfinish')}}</el-button>
<input v-if="userInfo.SimpleEasy==1" type="button" class="hollowFixedBtn" :value="$t('pub.addBtn')" @click="addOrders"/> <input v-if="userInfo.SimpleEasy==1" type="button" class="hollowFixedBtn" :value="$t('pub.addBtn')" @click="addOrders"/>
<button class="hollowFixedBtn" @click="getList()">{{$t('pub.searchBtn')}}</button> <button class="hollowFixedBtn" @click="getList()">{{$t('pub.searchBtn')}}</button>
</li> </li>
...@@ -405,7 +406,7 @@ ...@@ -405,7 +406,7 @@
<span class="groupTourOrderByTuan_ico"><i <span class="groupTourOrderByTuan_ico"><i
style="background-color:#ff9800"></i><span>{{$t('fnc.ytongguo')}}</span></span></p> style="background-color:#ff9800"></i><span>{{$t('fnc.ytongguo')}}</span></span></p>
</div> </div>
<visaOrderList :pagesTitle="pagesTitle" :OrderList="dataList" v-loading="loading" @success="getList"> <visaOrderList ref="visaOrderList" :pagesTitle="pagesTitle" :OrderList="dataList" v-loading="loading" @success="getList">
</visaOrderList> </visaOrderList>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage" <el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size="this.msg.pageSize" :total="total"> layout="total,prev, pager, next, jumper" :page-size="this.msg.pageSize" :total="total">
...@@ -645,7 +646,8 @@ ...@@ -645,7 +646,8 @@
PostId: 0, PostId: 0,
IsLeave: 0, IsLeave: 0,
}, },
layerCompanyList: [] layerCompanyList: [],
IsSupperOrderEdit: false,
} }
}, },
computed: { computed: {
...@@ -663,6 +665,9 @@ ...@@ -663,6 +665,9 @@
this.getList(); this.getList();
this.$message.success('保存成功'); this.$message.success('保存成功');
}, },
setCompleted() {
this.$refs.visaOrderList.setCompleted()
},
pickerEnd(){ pickerEnd(){
if (this.msg.FinishSDate > this.msg.FinishEDate && this.msg.FinishEDate !== "") { if (this.msg.FinishSDate > this.msg.FinishEDate && this.msg.FinishEDate !== "") {
this.$message.error(this.$t('tips.jsrqbndyksriqi')); this.$message.error(this.$t('tips.jsrqbndyksriqi'));
...@@ -692,6 +697,12 @@ ...@@ -692,6 +697,12 @@
}, },
GetSupperOrderEditAuth() { GetSupperOrderEditAuth() {
var actionCode = this.$AuthCode.F_InvoiceManagement; var actionCode = this.$AuthCode.F_InvoiceManagement;
var actionCodeOrderEdit = this.$AuthCode.SupperOrderEdit;
this.CheckUserAuth(actionCodeOrderEdit, res => {
if (res.data.resultCode == 1 && res.data.data == 1) {
this.IsSupperOrderEdit = true;
}
});
this.CheckUserAuth(actionCode, res => { this.CheckUserAuth(actionCode, res => {
if (res.data.resultCode == 1 && res.data.data == 1) { if (res.data.resultCode == 1 && res.data.data == 1) {
this.F_InvoiceManagement = true; this.F_InvoiceManagement = true;
......
...@@ -505,10 +505,10 @@ ...@@ -505,10 +505,10 @@
<template> <template>
<div> <div>
<div style="text-align: right;position: fixed;top: 62px; right: 89px;"> <!-- <div style="text-align: right;position: fixed;top: 62px; right: 89px;">
<el-button class="hollowFixedBtn" v-if="IsSupperOrderEdit&&pagesTitle!='销售'" @click="setCompleted" <el-button class="hollowFixedBtn" v-if="IsSupperOrderEdit&&pagesTitle!='销售'" @click="setCompleted"
:loading="CompletedLoading">{{$t('objFill.oneclickfinish')}}</el-button> :loading="CompletedLoading">{{$t('objFill.oneclickfinish')}}</el-button>
</div> </div> -->
<el-table ref="multipleTable" :data="OrderList" tooltip-effect="dark" style="width: 100%" row-key="id" <el-table ref="multipleTable" :data="OrderList" tooltip-effect="dark" style="width: 100%" row-key="id"
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange">
<el-table-column type="selection" :selectable="selectable" :reserve-selection="true" <el-table-column type="selection" :selectable="selectable" :reserve-selection="true"
......
<style scoped>
.row {
display: flex;
}
.row-c {
display: flex;
align-items: center;
}
.column {
display: flex;
flex-direction: column;
}
.column-jac {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.column-ac {
display: flex;
flex-direction: column;
align-items: center;
}
.wrap {
flex-wrap: wrap;
}
.justify-sb {
justify-content: space-between;
}
.justify-c {
justify-content: center;
}
.justify-e {
justify-content: flex-end;
align-items: flex-end;
}
.flex-g {
flex-grow: 1;
}
.flex-s {
flex-shrink: 0;
}
.align-c {
align-items: center;
}
.cblack {
color: black;
}
.cf {
color: #ffffff;
}
.c9e {
color: #9e9e9e;
}
.c20C997 {
color: #20c997;
}
.c02C854 {
color: #02c854;
}
.cff9800 {
color: #ff9800;
}
.cF1416C {
color: #f1416c;
}
.cF57A98 {
color: #f57a98;
}
.c04C8C8 {
color: #04c8c8;
}
.c059FF6 {
color: #059ff6;
}
.c3FC4FF {
color: #3fc4ff;
}
.fz10 {
font-size: 10px;
}
.fz11 {
font-size: 11px;
}
.fz12 {
font-size: 12px;
}
.fz13 {
font-size: 13px;
}
.fz14 {
font-size: 14px;
}
.fz15 {
font-size: 15px;
}
.fz16 {
font-size: 16px;
}
.fz17 {
font-size: 17px;
}
.fz18 {
font-size: 18px;
}
.fbold {
font-weight: bold;
}
.ml {
margin-left: 10px;
}
.mr {
margin-right: 10px;
}
.mt {
margin-top: 10px;
}
.mt20 {
margin-top: 20px;
}
.mb {
margin-bottom: 10px;
}
.mb20 {
margin-bottom: 20px;
}
.mx {
margin-left: 10px;
margin-right: 10px;
}
.mx5 {
margin-left: 5px;
margin-right: 5px;
}
.mb5 {
margin-bottom: 5px;
}
.py {
padding: 15px 0;
}
.py5 {
padding: 5px 0;
}
.px5 {
padding: 0 5px;
}
.px15 {
padding: 0 15px;
}
.pa15 {
padding: 15px;
}
.py20 {
padding: 20px 0;
}
.pb5 {
padding: 0 0 5px 0;
}
.pa {
padding: 10px 20px;
}
.pa20 {
padding: 20px;
}
.pt20 {
padding: 20px 0;
}
.borderD {
border-bottom: 1px dashed #dddddd;
}
.bgf {
background: #ffffff;
}
.bgf5 {
background: #f5f5f5;
}
.bgE8F5E9 {
background: #e8f5e9;
}
.bgD9F3FF {
background: #d9f3ff;
}
.bgFAEAED {
background: #faeaed;
}
.bj {
background: #ffffff;
}
.bjFFF3E0 {
background: #FFF3E0;
}
.radius5 {
border-radius: 5px;
}
.cursor-pointer {
cursor: pointer;
}
.relative {
position: relative;
}
.absolute {
position: absolute;
}
.left0 {
left: 0;
}
.right0 {
right: 0;
}
.top0 {
top: 0;
}
.bottom0 {
bottom: 0;
}
.left20 {
left: 020px;
}
.right20 {
right: 20px;
}
.top20 {
top: 20px;
}
.bottom20 {
bottom: 20px;
}
.text-center {
text-align: center;
}
.orderType {
padding: 3px 15px;
border-radius: 3px;
background: #f57a98;
margin-right: 15px;
}
.orderType.active {
background: #4dd0e1;
}
.orderType.activeNo {
background: #E95252;
}
.copy {
display: inline-block;
padding: 3px 15px;
border-radius: 3px;
margin-left: 20px;
}
.copy:hover {
background: #f5f5f5;
}
.see-rec div {
padding: 1px 5px;
border-radius: 3px;
}
.see {
border: 1px solid #04c8c8;
}
.seeLK {
border: 1px solid #059ff6;
}
.see:hover {
background-color: rgba(4, 200, 200, 0.1);
}
.rec {
border: 1px solid #04c8c8;
background-color: rgba(4, 200, 200, 1);
}
.rec:hover {
border: 1px solid rgba(4, 200, 200, 0.9);
background-color: rgba(4, 200, 200, 0.9);
}
.cancel:hover {
background-color: #f3dce2;
}
.confirm:hover {
background-color: #dcedc8;
}
.change:hover {
background-color: #d7e9f3;
}
.change1:hover {
background-color: #dcedc8;
}
.orderop {
text-align: center;
}
.orderop div {
width: auto;
height: 30px;
display: flex;
padding: 0 5px;
justify-content: center;
}
.RoomList div {
border-bottom: 1px solid #e7e7e7;
}
.RoomList div:last-child {
border: 0;
}
.el-table {
font-size: 13px;
}
.shezhifrom {
position: relative;
}
.shebox {
position: absolute;
top: 0;
left: -100px;
display: none;
}
.shezhifrom:hover .shebox {
display: block;
}
.flexOne-form-bj h3 {
font-size: 18px;
color: black;
padding: 0 0 20px 0;
font-weight: 400;
}
.flexOne-type {
display: flex;
align-items: center;
padding: 0 0 20px 0;
}
.flexOne-type b {
font-size: 13px;
width: 100px;
flex-shrink: 0;
}
.flexOne-type div {
display: flex;
}
.flexOne-description {
padding: 15px 15px;
border-radius: 5px;
background: #E1F5FE;
margin-bottom: 20px;
}
.flexOne-description b {
font-size: 14px;
}
.flexOne-description p {
font-size: 12px;
color: #4C5759;
padding: 10px 0 0 0;
}
.flexOne-infor-box b {
font-size: 13px;
}
.infor-list {
display: flex;
flex-direction: column;
}
.list-title {
padding: 20px 0;
border-bottom: 1px dashed #eeeeee;
color: #7E8299;
font-size: 13px;
}
.list-title,
.list-centent {
display: flex;
flex-wrap: wrap;
margin-top: 20px;
}
.infor-list li {
width: 25%;
}
.list-centent li {
width: 33.33%;
}
.list-centent.active li {
width: 25%;
}
/deep/.el-table tr td:first-child {
border-bottom: 0;
}
/deep/.el-table tr:last-child td {
border-bottom: 1px solid #EBEEF5;
}
/deep/.el-table tr td {
border-bottom: 1px solid #EBEEF5;
}
</style>
<template>
<div>
<div style="text-align: right;position: fixed;top: 62px; right: 89px;">
<el-button class="hollowFixedBtn" v-if="pagesTitle=='OP'" @click="setCompleted" :loading="CompletedLoading">{{$t('objFill.oneclickfinish')}}
</el-button>
</div>
<el-table ref="multipleTable" :data="OrderList" tooltip-effect="dark" style="width: 100%" row-key="OrderId"
@selection-change="handleSelectionChange" :empty-text="$t('system.content_noData')">
<el-table-column type="selection" :selectable="selectable" :reserve-selection="true" v-if="pagesTitle=='OP'">
</el-table-column>
<el-table-column :label="pagesTitle=='OP'?$t('system.table_chekAll'):''">
<template slot-scope="scope">
<div class="row-c justify-sb align-c py">
<div class="row-c">
<div>
<div class="orderType cf fz12"
:class="{ active: scope.row.MailingState == 1,activeNo: scope.row.MailingState == 4 }">
<template v-if="scope.row.MailingState == 1">{{$t('objFill.zixingqujian')}}</template>
<template v-if="scope.row.MailingState > 1&&scope.row.MailingState < 4">{{$t('objFill.youjipiaoquan')}}</template>
<template v-if="scope.row.MailingState == 4">{{$t('objFill.dianziquan')}}</template>
</div>
</div>
<div class="cblack fz14 mr"
:class="{ cF1416C: scope.row.IsFinish == 0,c20C997: scope.row.IsFinish == 1 }">
<template v-if="scope.row.IsFinish == 1">
{{$t('objFill.finished')}} <template v-if="scope.row.FinishTime">/ {{scope.row.FinishTime}}</template>
</template>
<template v-else>
{{$t('objFill.uncompleted')}}
</template>
</div>
<div class="c9e fz12">
<span>{{$t('OrderList.search.orderNum')}}:</span>
<span>{{ scope.row.OrderNo }}({{ scope.row.OrderId}})</span>
<span class="copy cblack cursor-pointer" v-if="copyId != scope.row.OrderId"
@click="CopyHandler(scope.row)">{{$t('objFill.copy')}}</span>
<span class="copy c059FF6 bgD9F3FF cursor-pointer" v-else><i class="el-icon-check mr"></i>{{$t('objFill.copied')}}</span>
</div>
</div>
<div class="c9e fz12">
<span v-if="scope.row.Name||scope.row.EName">{{$t('objFill.guestinfor')}}:{{ scope.row.Name }}({{ scope.row.EName }})<template
v-if="scope.row.Mobile"> /{{ scope.row.Mobile }}</template></span>
<span v-if="pagesTitle!='销售'">
<template v-if="scope.row.Name||scope.row.EName"> /</template>{{$t('salesModule.Laiyuan')}}<template
v-if="!scope.row.OrderSource&&!scope.row.CustomerId">{{$t('visaT.sale')}}</template>
<template v-if="!scope.row.OrderSource&&scope.row.CustomerId>0">B2B</template>
<template v-if="scope.row.OrderSource==1">B2C</template>
</span>
</div>
<div class="row c9e fz12">
<span class="mr" v-if="scope.row.LureEmpName">{{$t('objFill.yinliuren')}}:{{ scope.row.LureEmpName }}</span>
<span class="mr">{{$t('visaT.sale')}}:{{ scope.row.SaleName }}</span>
<span class="mr" v-if="scope.row.OpName&&pagesTitle=='OP'">{{$t('objFill.guanlian')}}OP:{{ scope.row.OpName }}</span>
<span class="mr" v-if="scope.row.CustomerName">{{$t('active.cl_addPp')}}:{{ scope.row.CustomerName }}
({{ scope.row.CustomerContact }}<template v-if="scope.row.CustomerTel">/{{
scope.row.CustomerTel
}}</template>)</span>
<span class="mr">{{$t('OrderList.search.daterange')}}:{{ scope.row.CreateTime }}</span>
<div class="">
<i class="mx5" :class="{
'el-icon-alarm-clock c20C997': scope.row.OrderStatus == 1,
'el-icon-check cblack': scope.row.OrderStatus == 2,
'el-icon-warning cff9800': scope.row.OrderStatus == 3,
'el-icon-refresh cF1416C': scope.row.OrderStatus == 4
}"></i>
<span class="fz12 cblack" :class="{
c20C997: scope.row.OrderStatus == 1,
cblack: scope.row.OrderStatus == 2,
cff9800: scope.row.OrderStatus == 3,
cF1416C: scope.row.OrderStatus == 4
}">
{{ scope.row.OrderStatusName }}
</span>
</div>
</div>
</div>
<div class="mb">
<el-table :data="scope.row.DetailList" style="width:100%" border>
<el-table-column :label="$t('scen.sc_resName')+'('+$t('sm.Date')+')'" min-width="100" style="background:#EAEAEA">
<template slot-scope="scopes">
<template>
<div>{{scope.row.CouponsName }}</div>
<span style="color: #999999;">{{ scope.row.UseDate }}</span>
</template>
</template>
</el-table-column>
<el-table-column :label="$t('objFill.piaoquanname')" style="background:#EAEAEA">
<template slot-scope="scope">
{{ scope.row.TicketName }}
</template>
</el-table-column>
<el-table-column :label="$t('restaurant.res_Number')" style="background:#EAEAEA">
<template slot-scope="scope">
{{ scope.row.Num }}
</template>
</el-table-column>
<el-table-column :label="$t('ground.xiaoji')" min-width="70" style="background:#EAEAEA">
<template slot-scope="scope">
<span class="fz15 fbold">{{ scope.row.Money.toFixed(2) }}</span>
</template>
</el-table-column>
<template slot="append"
v-if="(scope.row.Remark||scope.row.OPRemark||scope.row.isMore)||(scope.row.OrderStatus>1&&scope.row.OrderStatus!=3)">
<div v-if="(scope.row.OrderStatus>1&&scope.row.OrderStatus!=3)||scope.row.Remark"
style="padding:10px;color:#f1416c">{{$t('pub.Customer')+$t('fnc.beizhu')}}{{scope.row.Remark}}
<i v-if="pagesTitle=='销售'&&scope.row.OrderStatus>1&&scope.row.OrderStatus!=3"
class="el-icon-edit cursor-pointer c059FF6 mx" @click="editRemark(scope.row)"></i></div>
<div v-if="(scope.row.OrderStatus>1&&scope.row.OrderStatus!=3)||scope.row.OPRemark"
style="padding:10px;color:#f1416c"
:style="{'padding':!scope.row.Remark&&scope.row.isMore?'0 10px 30px 10px':'0 10px 10px 10px'}">
OP{{$t('fnc.beizhu')}}{{scope.row.OPRemark}}
<i v-if="pagesTitle=='OP'&&scope.row.OrderStatus>1&&scope.row.OrderStatus!=3"
class="el-icon-edit cursor-pointer c059FF6 mx" @click="editRemark(scope.row)"></i>
</div>
</template>
</el-table>
</div>
<el-table :data="scope.row.list" style="width:100%" border v-if="scope.row.OrderStatus!=3">
<el-table-column :label="$t('fnc.shishou')" min-width="100">
<template slot-scope="scope">
<span class="fz15 fbold">{{ scope.row.Income ? scope.row.Income : "-" }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('hotel.hotel_cost')" min-width="100">
<template slot-scope="scope">
<span class="fz15 fbold">{{ scope.row.CostMoney ? scope.row.CostMoney : "-" }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('fnc.ptshuijin')" min-width="100">
<template slot-scope="scope">
<span class="fz15 fbold">{{
scope.row.PlatformTax ? scope.row.PlatformTax : "-"
}}</span>
</template>
</el-table-column>
<el-table-column :label="$t('fnc.tuikuan')" min-width="100">
<template slot-scope="scope">
<span class="fz15 fbold">{{ scope.row.Refund ? scope.row.Refund : "-" }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('Operation.Op_platZaitu')" min-width="100">
<template slot-scope="scope">
<span class="fz15 fbold">{{ scope.row.PlatformMoney ? scope.row.PlatformMoney : "-" }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('op.Tocollected')" min-width="100">
<template slot-scope="scope">
{{scope.row.DueInMoney}}
<span class="fz15 fbold" :class="{'cF1416C':scope.row.DueInMoney>0}">
</span>
</template>
</el-table-column>
<el-table-column :label="$t('restaurant.res_profit')" min-width="100">
<template slot-scope="scope">
<span
class="fz15 fbold">{{ scope.row.Income-scope.row.CostMoney-scope.row.Refund>0?(scope.row.Income-scope.row.CostMoney-scope.row.Refund).toFixed(2):'-' }}</span>
</template>
</el-table-column>
<el-table-column
v-if="(scope.row.SellCommission&&scope.row.SellCommission>0)||(scope.row.OPCommission&&scope.row.OPCommission>0)"
:label="$t('salesModule.Commission')" style="background:#EAEAEA">
<template slot-scope="scope">
<div class="width100-float-l" v-if="scope.row.SellCommission&&scope.row.SellCommission>0"><span
class="float-l">{{$t('visaT.sale')}}</span>
<commissionDialog :objNew="scope.row" :OP="0"></commissionDialog>
</div>
<div class="width100-float-l" v-if="scope.row.OPCommission&&scope.row.OPCommission>0"><span
class="float-l">OP:</span>
<commissionDialog :objNew="scope.row" :OP="1"></commissionDialog>
</div>
</template>
</el-table-column>
</el-table>
<div class="row justify-sb mt mb20">
<div class="column px15 bjFFF3E0 radius5 flex-g pa relative" style="max-width: 300px;min-width: 150px;">
<div class="fz12 row justify-sb" v-if="scope.row.MailingState != 4">
<span>{{ scope.row.MailingState > 1 ? $t('system.shohudizhi')+':':$t('system.ziqudizhi')+':' }}</span>
<div :class="{ 'cF1416C': scope.row.MailingState == 2, 'c02C854': scope.row.MailingState == 3 }">
<template v-if="scope.row.MailingState == 2">
{{$t('objFill.dengdaipeisong')}}
</template>
<template v-if="scope.row.MailingState == 3">
{{$t('objFill.yipeisong')}}
</template>
</div>
</div>
<div class="row wrap orderNo fz12 c9e">
<template v-if="scope.row.MailingState == 2 || scope.row.MailingState == 3">
{{ scope.row.MailingAddress }}
</template>
<template v-else>
<template v-if="scope.row.MailingState == 1">
{{ scope.row.SelffetchAddress ? scope.row.SelffetchAddress : $t('objFill.dengdaiquerenziqudz') }}
</template>
<div class="row" style="margin-right: 10px;" v-if="scope.row.MailingState==4">
<div class="column">
<template v-if="scope.row.TicketCodeFile">
<div class="wrap fz12 c9e">
{{$t('objFill.dianziquan')}}
</div>
<div class="row fz12 see-rec mt">
<div class="text-accent q-mr-md c">
{{ scope.row.TicketCodeFile.split("/").at(-1) }}
</div>
<div class="cursor-pointer ml mr rec cf">
<a class="cf" style="text-decoration:none" :href="scope.row.TicketCodeFile">{{$t('objFill.xz')}}</a>
</div>
</div>
</template>
<template v-if="scope.row.MailingState==4&&pagesTitle!='销售'&&!scope.row.TicketCodeFile">
<div class="fz12 mt c9e">
{{$t('objFill.dianziquanxu')}}
<span class="cff9800">{{scope.row.UseDate}}</span> {{$t('objFill.qian')}}
</div>
<div class="row fz12 see-rec mt">
<el-upload ref="my-upload" :http-request="uploadFileBtn" v-loading="loadingDZP"
:multiple="true" :show-file-list="false" action="">
<div :class="{'cursor-pointer seeLK c059FF6':!loadingDZP,
'cursor-pointer see c04C8C8':loadingDZP}" @click="uploadOrderId=scope.row.OrderId">{{$t('objFill.updianziquan')}}
</div>
</el-upload>
</div>
</template>
<template v-if="scope.row.MailingState==4&&pagesTitle=='销售'&&!scope.row.TicketCodeFile">
{{$t('objFill.dengdaiquerendzqdz')}}
</template>
</div>
</div>
</template>
</div>
</div>
<div class="column px15 bgf5 radius5 ml flex-g pa relative" style="min-width: 150px;max-width:400px">
<div class="fz12">{{$t('fnc.skdanju')}}</div>
<div class="row wrap orderNo fz12 py">
<span class="cursor-pointer radius5 mr mb px5" :class="{'bgD9F3FF':x.Status==1,'bgFAEAED':x.Status==2,'bjFFF3E0':x.Status==3,
'c3FC4FF':x.Status==1,'cF1416C':x.Status==2,'cff9800':x.Status==3}" v-for="(x, i) in scope.row.IncomeList"
@click="openDetails(x)">{{ x.FrID }}</span>
<span v-if="scope.row.IncomeList.length == 0" class="c9e fz12">
{{$t('objFill.nocollectiondocument')}}
</span>
</div>
<el-tooltip v-if="scope.row.OrderStatus == 2" class="item" effect="dark" :content="$t('objFill.preparedocument')" placement="top">
<i class="absolute right20 bottom20 el-icon-circle-plus cursor-pointer c059FF6"
@click="makeAdocument(scope.row, scope.$index, 1)"></i>
</el-tooltip>
</div>
<div class="column px15 bgf5 radius5 ml flex-g pa relative" style="min-width: 150px;max-width:400px">
<div class="fz12">{{$t('objFill.refundreceipt')}}</div>
<div class="row wrap orderNo fz12 py">
<span class="cursor-pointer radius5 mr mb px5" :class="{'bgD9F3FF':x.Status==1,'bgFAEAED':x.Status==2,'bjFFF3E0':x.Status==3,
'c3FC4FF':x.Status==1,'cF1416C':x.Status==2,'cff9800':x.Status==3}" v-for="(x, i) in scope.row.RefundList"
@click="openDetails(x)">{{ x.FrID }}</span>
<span v-if="scope.row.RefundList.length == 0" class="c9e fz12">
{{$t('objFill.norefundreceipt')}}
</span>
</div>
<el-tooltip v-if="scope.row.OrderStatus == 2" class="item" effect="dark" :content="$t('objFill.preparedocument')" placement="top">
<i class="absolute right20 bottom20 el-icon-circle-plus cursor-pointer c059FF6"
@click="makeAdocument(scope.row, scope.$index, 2)"></i>
</el-tooltip>
</div>
<div class="column px15 bgf5 radius5 ml flex-g pa relative" style="min-width: 150px;max-width:400px">
<div class="fz12">{{$t('objFill.costdocument')}}</div>
<div class="row wrap orderNo fz12 py">
<span class="cursor-pointer radius5 mr mb px5" :class="{'bgD9F3FF':x.Status==1,'bgFAEAED':x.Status==2,'bjFFF3E0':x.Status==3,
'c3FC4FF':x.Status==1,'cF1416C':x.Status==2,'cff9800':x.Status==3}" v-for="(x, i) in scope.row.CostList"
@click="openDetails(x)">{{ x.FrID }}</span>
<span v-if="scope.row.CostList.length == 0" class="c9e fz12">
{{$t('objFill.nocostdocument')}}
</span>
</div>
<div class="item absolute right20 bottom20" v-if="scope.row.OrderStatus == 2 && pagesTitle != '销售'">
<el-tooltip class="" effect="dark" :content="$t('objFill.preparedocument')" placement="top">
<i class="el-icon-circle-plus cursor-pointer c059FF6" @click="makeAdocument(scope.row, scope.$index, 3)"></i>
</el-tooltip>
<el-tooltip v-if="scope.row.OrderStatus == 2" class="" effect="dark" :content="$t('objFill.balanceout')" placement="top">
<i class="el-icon-circle-plus cursor-pointer c3FC4FF" @click="isOffset(scope.row, scope.$index, 3)"></i>
</el-tooltip>
</div>
</div>
<div class="column px15 bgf5 radius5 ml flex-g pa relative" style="min-width: 150px;max-width:400px" v-if="userInfo&&userInfo.RB_Group_id==2">
<div class="fz12">{{$t('objFill.invoicedocument')}}</div>
<div class="row wrap orderNo fz12 py">
<span class="cursor-pointer radius5 mr px5" :class="{'bgD9F3FF':x.InvoiceApplyState===6,'bgFAEAED':x.InvoiceApplyState===1||x.InvoiceApplyState===3,
'bjFFF3E0':x.InvoiceApplyState===2||x.InvoiceApplyState===4||x.InvoiceApplyState===5,
'c3FC4FF':x.InvoiceApplyState===6,'cF1416C':x.InvoiceApplyState===1||x.InvoiceApplyState===3,
'cff9800':x.InvoiceApplyState===2||x.InvoiceApplyState===4||x.InvoiceApplyState===5}"
v-for="(x, i) in scope.row.InvoiceApplyList" @click="openDetails(x,scope.row)">{{ x.ID }}</span>
<span v-if="scope.row.InvoiceApplyList&&scope.row.InvoiceApplyList.length == 0" class="c9e fz12">
{{$t('objFill.noinvoicedocument')}}
</span>
</div>
</div>
<div class="column justify-c px15 bgf5 radius5 ml flex-g pa20" style="min-width: 230px;">
<div class="row-c justify-sb pb5"
:class="{'borderD':scope.row.MailingMoney>0||scope.row.DiscountsMoney>0}">
<span class="fz12 c9e">{{$t('objFill.dindanzongjiae')}}</span>
<div class="ml">
<span class="fz15 fbold">{{ scope.row.Money.toFixed(2) }}</span>
<span class="fz12">{{ scope.row.CurrencyName }}</span>
</div>
</div>
<div class="row-c justify-sb py5" v-if="scope.row.MailingMoney>0"
:class="{'borderD':scope.row.DiscountsMoney>0}">
<span class="fz12 c9e">{{$t('objFill.youjifei')}}</span>
<div class="ml">
<span class="fz14">{{ scope.row.MailingMoney.toFixed(2) }}</span>
<span class="fz12 ml">{{ scope.row.CurrencyName }}</span>
</div>
</div>
<div class="row-c justify-sb py5" v-if="scope.row.DiscountsMoney>0">
<span class="fz12 c9e">{{$t('sm.youhuijine')}}</span>
<div class="ml">
<span class="fz14">{{ scope.row.DiscountsMoney.toFixed(2) }}</span>
<span class="fz12">{{ scope.row.CurrencyName }}</span>
</div>
</div>
</div>
<!-- v-if="item.OrderStatus > 0 && item.OrderStatus < 4 && item.OrderStatus != 3" -->
<div class="row-c wrap justify-c px15 bgE8F5E9 radius5 ml fz12 orderop flex-s">
<div v-if="
scope.row.OrderStatus == 1 &&
scope.row.IncomeList.length == 0 &&
scope.row.RefundList.length == 0 &&
scope.row.CostList.length == 0 && scope.row.OrderSource!=1
" class="row-c cursor-pointer radius5 cancel py5" @click="clickRightButtom(scope.row, 0)">
<i v-loading="msg.OrderId == scope.row.OrderId && loading0"></i>
<span class="cF1416C">{{$t('sm.exitOrder')}}</span>
</div>
<div v-if="scope.row.OrderStatus == 1 && pagesTitle != '销售' && scope.row.OrderSource!=1"
class="row-c cursor-pointer radius5 confirm py5" @click="clickRightButtom(scope.row, 1)">
<i v-loading="msg.OrderId == scope.row.OrderId && loading1"></i>
<span class="c20C997">{{$t('ground.qrendindan')}}</span>
</div>
<div v-if="scope.row.OrderStatus == 2 && scope.row.MailingState == 2 && pagesTitle != '销售'"
class="row-c cursor-pointer radius5 cancel py5" @click="clickRightButtom(scope.row, 2)">
<i v-loading="msg.OrderId == scope.row.OrderId && loading1"></i>
<span class="cF1416C">{{$t('objFill.youji')}}</span>
</div>
<!-- <div v-if="item.OrderStatus == 2 && item.MailingState == 1 && pagesTitle != '销售'"
class="row-c cursor-pointer radius5 cancel py5" @click="clickRightButtom(item, 3)">
<i v-loading="loading1"></i>
<span class="cF1416C">设置自提地址</span>
</div> -->
<!-- <div
v-if="item.OrderStatus == 2 || item.OrderStatus == 4"
class="row-c cursor-pointer radius5 change py5"
@click="goRoomDetails(item, '订房详情')"
>
<span class="c059FF6">{{$t('objFill.v101.hote.mingxibj')}}</span>
</div> -->
<div v-if="(scope.row.OrderStatus == 1 && pagesTitle == '销售')||(scope.row.OrderStatus >1 && scope.row.OrderStatus != 3
&&pagesTitle=='OP'&&is_correlationOP)" class="row-c cursor-pointer radius5 change py5"
@click="goRoomDetails(scope.row, pagesTitle=='销售'?'门票预定变更':'编辑取票方式')">
<span class="c059FF6">{{pagesTitle=='销售'?$t('objFill.menpiaoyudinbg'):$t('objFill.bianjiqupiaofs')}}</span>
</div>
<div v-if="scope.row.OrderStatus > 1" class="row-c cursor-pointer radius5 change1 py5"
@click="clickRightButtom(scope.row, 4)">
<i v-loading="msg.OrderId == scope.row.OrderId && loading2"></i>
<span class="c20C997">{{$t('fnc.shousun')}}</span>
</div>
<div v-if="scope.row.OrderStatus >1 && scope.row.OrderStatus != 3
&& scope.row.OrderStatus != 4
&&pagesTitle=='OP'&&is_correlationOP" class="row-c cursor-pointer radius5 change py5"
@click="clickCorrelation(scope.row,1)">
<span class="c059FF6">{{$t('pub.edit')}}{{$t('objFill.relevance')}}OP</span>
</div>
<div v-if="scope.row.OrderStatus != 3
&&pagesTitle=='OP'" class="row-c cursor-pointer radius5 change py5" @click="clickCorrelation(scope.row,2)">
<span class="c059FF6">{{$t('pub.edit')}}{{$t('fnc.a_zongjine')}}</span>
</div>
<!-- 申请发票 -->
<ApplyFoInvoice v-if="userInfo&&userInfo.RB_Group_id==2&&userInfo.EmployeeId==scope.row.EnterID" :obj="scope.row" :type="7"></ApplyFoInvoice>
<!-- <template v-if="item.OrderStatus==2">
<div class="column-jac fz12 flex-s c20C997">
<div class="mb5">{{$t('objFill.v101.Rest.yizhifu')}}</div>
<div>
<span class="fbold fz14">{{item.Money.toFixed(2)}}</span>
<span>日元</span>
</div>
</div>
</template> -->
</div>
</div>
<div class="mt mb20 bgf5 pa15 row-c" v-if="scope.row.CancelRemark">
<div style="font-size:16px;font-weight:bold;font-family: pingfangR;">{{$t('objFill.groundsforcancellation')}}:</div>
<div style="margin-left:12px;font-size:12px;color: grey; font-family: microsoft yahei;">
{{ scope.row.CancelRemark }}
</div>
<div style="margin-left:12px;font-size:12px;font-family: microsoft yahei;">
{{ scope.row.CancelEmpName }} {{ scope.row.CancelTime }}
</div>
</div>
</template>
</el-table-column>
</el-table>
<el-dialog custom-class="w400" :title="typeState == 3 ? $t('objFill.shezhizitidz') : $t('objFill.shezhishoushunje')" :visible.sync="outerVisible">
<div>
<el-form label-width="80px" :model="msg" :rules="rules" ref="msg">
<el-row :gutter="20">
<!-- <el-col :span="20">
<el-form-item :label="$t('hotel.hotel_OrderStates')" prop="State">
<el-select v-model="msg.State" class="w110 HworkInput">
<el-option v-for="item in OrderStatusType" :key="item.ID" :label="item.Name" :value="item.ID"></el-option>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="20" v-if="typeState == 3">
<el-form-item :label="$t('objFill.zitidizhi')" prop="SelffetchAddress">
<el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" v-model="msg.SelffetchAddress">
</el-input>
</el-form-item>
</el-col>
<el-col :span="20" v-if="typeState == 4">
<el-form-item :label="$t('salesModule.SSJE')" prop="LossMoney">
<el-input-number class="w200" v-model="msg.LossMoney" :min="0" :max="10000000"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" style="margin-top: 20px;margin-bottom: 20px;">
<el-col :span="24" style="text-align: right;">
<input type="button" class="normalBtn" :value="$t('pub.saveBtn')" @click="submitForm('msg')" />
<input type="button" class="hollowFixedBtn" :value="$t('pub.cancelBtn')"
@click="(outerVisible = false), $refs['msg'].resetFields()" />
</el-col>
</el-row>
</el-form>
</div>
</el-dialog>
<el-dialog custom-class="w600" :title="$t('sm.exitOrder')" :visible.sync="cancelOrderDialog">
<div style="padding-bottom:20px">
<el-input type="textarea" autofocus rows="5" :placeholder="$t('objFill.quxiaodindanyy')" clear="w300" v-model="cancelRemark">
</el-input>
<el-row :gutter="20" style="margin-top: 20px;">
<el-col :span="24" style="text-align: right;">
<input type="button" class="normalBtn" :value="$t('sm.exitOrder')" @click="cancelOrderHandler" />
<input type="button" class="hollowFixedBtn" :value="$t('pub.closeSel')" @click="cancelOrderDialog = false" />
</el-col>
</el-row>
</div>
</el-dialog>
<!-- 变更订单 -->
<el-dialog custom-class="w800" :title="pagesTitle=='销售'?$t('objFill.biangendindan'):$t('objFill.bianjiqupiaofs')" :visible.sync="ChangeOrderDialog">
<div style="padding-bottom:20px">
<div class="flexOne-form-bj">
<h3>{{$t('objFill.qupiaofanshi')}}</h3>
<div class="flexOne-type">
<b>{{$t('objFill.qupiaofanshi')}}:</b>
<div>
<el-radio v-model="msgParameter.MailingState" label="1">{{$t('objFill.zixingqupiao')}}</el-radio>
<el-radio v-model="msgParameter.MailingState" label="2">{{$t('objFill.youjipiaoquan')}}</el-radio>
<el-radio v-model="msgParameter.MailingState" label="4">{{$t('objFill.dianziquan')}}</el-radio>
</div>
</div>
<div class="flexOne-description" v-if="msgParameter.MailingState==1">
<b>{{$t('objFill.zixingqupiaosm')}}</b>
<p>{{$t('objFill.ziqudizhi')}}:{{msgParameter.SelffetchAddress?msgParameter.SelffetchAddress:'-'}}</p>
</div>
<div class="flexOne-infor-box">
<b>{{msgParameter.MailingState==1?$t('objFill.kerenxunxi'):msgParameter.MailingState==2?$t('objFill.youjixunxi'):''}}</b>
<el-form v-if="msgParameter.MailingState!=4" label-width="80px" :model="msgParameter" :rules="rules2"
ref="msgParameter">
<div class="infor-list">
</span>
<div class="list-centent" :class="{ 'active': msgParameter.MailingState == 1 }">
<li>
<el-form-item :label="$t('admin.admin_Surname')" prop="Name">
<el-input v-model="msgParameter.Name" :placeholder="$t('system.ph_name')" />
</el-form-item>
</li>
<li>
<el-form-item :label="$t('system.table_ENname')" prop="EName">
<el-input v-model="msgParameter.EName" :placeholder="$t('rule.qsrywm')" />
</el-form-item>
</li>
<li>
<el-form-item :label="$t('hotel.table_tel')" prop="Mobile">
<el-input type="Number" v-model="msgParameter.Mobile" :placeholder="$t('visaT.qsrphone')" />
</el-form-item>
</li>
<li v-if="msgParameter.MailingState == 2">
<el-form-item :label="$t('admin.admin_address')" prop="MailingAddress">
<el-input style="border-radius: 3px;" v-model="msgParameter.MailingAddress"
:placeholder="$t('objFill.qinshuruyoujidz')" />
</el-form-item>
</li>
<li v-if="msgParameter.MailingState == 2">
<el-form-item :label="$t('objFill.youjifei')" prop="MailingMoney">
<el-input type="Number" style="border-radius: 3px;" v-model="msgParameter.MailingMoney"
:placeholder="$t('objFill.qinshuruyoujif')" />
</el-form-item>
</li>
<li class="bottom">
<el-form-item :label="$t('system.table_sex')" prop="Sex">
<el-radio v-model="msgParameter.Sex" label="1">{{$t('visaT.boy')}}</el-radio>
<el-radio v-model="msgParameter.Sex" label="2">{{$t('visaT.girl')}}</el-radio>
</el-form-item>
</li>
</div>
</div>
</el-form>
<div v-if="pagesTitle=='销售'" style="margin-top: 20px;">
<el-input style="width: 100%;" type="textarea" :autosize="{ minRows: 2, maxRows: 4 }"
v-model="msgParameter.Remark" :placeholder="$t('visaT.Orderremark')" />
</div>
</div>
</div>
<el-row :gutter="20" style="margin-top: 20px;">
<el-col :span="24" style="text-align: right;">
<input type="button" class="hollowFixedBtn" :value="$t('pub.cancelBtn')" @click="ChangeOrderDialog = false" />
<input type="button" class="normalBtn" :value="$t('pub.sureBtn')" @click="submit2" />
</el-col>
</el-row>
</div>
</el-dialog>
<!-- op备注 -->
<el-dialog custom-class='addCompany' :title="pagesTitle=='销售'?$t('objFill.bianjikehubz'):$t('objFill.bianjiopbz')" :visible.sync="isShowRemark" center
width="400px">
<el-row class="flex" style="margin-top: 10px;">
<el-col>
<span style="display: block;margin-bottom: 10px;">{{$t('fnc.beizhu')}}</span>
<span>
<el-input type="textarea" :rows="4" v-model="postMsg.Remark">
</el-input>
</span>
</el-col>
</el-row>
<div slot="footer" class="dialog-footer">
<button class="hollowFixedBtn" @click="isShowRemark = false">{{$t('pub.cancelBtn')}}</button> &nbsp;
<button class="normalBtn" type="primary" @click="submitEditRemark">{{$t('pub.sureBtn')}}</button>
</div>
</el-dialog>
<offset :isShow="cdState" :obj="queryObj" @close="cdState=false"></offset>
<correlationOP :isShowCorrelation="isShowCorrelation" :CorrelationObj="CorrelationObj" @close="close"
@success="success"></correlationOP>
</div>
</template>
<script>
import offset from '../../public/offset.vue';
import correlationOP from '../../Hotel/reservation/correlationOP.vue';
import commissionDialog from "../../FinancialModule/TradeCommission/commissionDialog"
import ApplyFoInvoice from '../../public/ApplyFoInvoice';
export default {
components: {
offset,
correlationOP,
commissionDialog,
ApplyFoInvoice
},
props: ["OrderList", "pagesTitle"],
data() {
return {
postMsg: {
OrderId: 0,
Type: 1,
Remark: ''
},
isShowRemark: false,
queryObj: null,
cdState: false,
copyId: 0,
CompletedLoading: false,
multipleSelection: [],
loading0: false,
loading1: false,
loading2: false,
loading3: false,
BillMakingMsg: {
// PeroidsId: null,
// Type: null,
// EmpIds:'',
OtherType: 61,
ReFinanceId: "",
ReFinanceId2: ""
},
userInfo: {},
msg: {
OrderId: "",
LossMoney: 0,
State: '', //状态 1确认 2已邮寄 3设置自提 4收损
SelffetchAddress: ''
},
msgParameter: {
IsUpdateMailing: 1,
OrderId: 0,
Money: 0.0,
Remark: '',
MailingState: '1', //邮寄状态 1自取 2邮寄
MailingAddress: '', //MailingState =2 填写邮寄
UseDate: '', //门票日期
Name: '',
EName: '',
Sex: '1', //1男2女
Birthday: '',
Mobile: '',
CouponsId: '', //景点id
DetailList: [],
},
rules2: {
Name: [{
required: true,
message: this.$t('rule.qsrzwm'),
trigger: 'blur'
}],
EName: [{
required: true,
message: this.$t('rule.qsrywm'),
trigger: 'blur'
}],
Mobile: [{
required: true,
message: this.$t('rule.EnterPNum'),
trigger: "blur"
},
{
pattern: this.$commonUtils.Regex.el_ISphone,
message: this.$t('rule.EnterRightNum')
}
],
MailingAddress: [{
required: true,
message: this.$t('objFill.qinshuruyoujidz'),
trigger: 'blur'
}],
MailingMoney: [{
required: true,
message: this.$t('objFill.qinshuruyoujify'),
trigger: "blur"
}, ],
},
outerVisible: false,
rules: {
State: [{
required: true,
message: this.$t('objFill.qinxuanzhedindanzt'),
trigger: "change"
}],
SelffetchAddress: [{
required: true,
message: this.$t('objFill.qinshuruzitidz'),
trigger: "blur"
}],
LossMoney: [{
required: true,
message: this.$t('objFill.qinshurushoushunje'),
trigger: "blur"
}]
},
cancelOrderDialog: false,
cancelRemark: "",
cancelOrderId: 0,
uploadOrderId: 0,
loading: false,
fileList: [],
GuestFile: '',
ChangeOrderDialog: false,
OrderStatusType: [{
Name: this.$t('OrderList.orderStatus.apply'),
ID: '1'
},
{
Name: this.$t('OrderList.orderStatus.check'),
ID: '2'
},
{
Name: this.$t('OrderList.orderStatus.cancel'),
ID: '3'
},
{
Name: this.$t('OrderList.orderStatus.sun'),
ID: '4'
},
],
items: null,
typeState: '',
loadingDZP: false,
uploadOrderId: 0,
GuestFile: '',
isShowCorrelation: false,
CorrelationObj: {},
is_correlationOP: false
};
},
watch: {
pagesTitle(val, oldval) {
this.pagesTitle = val
},
OrderList: {
handler(val, oldVal) {
}
}
},
methods: {
close() {
this.isShowCorrelation = false
this.CorrelationObj.TypeNum = null
this.CorrelationObj.Money = null
},
success() {
this.close()
this.$emit('success')
},
clickCorrelation(item, type) {
this.CorrelationObj = JSON.parse(JSON.stringify(item))
if (type == 2) {
this.CorrelationObj.TypeNum = 4 //编辑总价
} else {
this.CorrelationObj.TypeNum = 2
}
this.isShowCorrelation = true
},
isOffset(row, index, num) {
this.makeAdocument(row, index, num, 'Offset')
},
editRemark(item) {
this.postMsg.OrderId = item.OrderId
this.postMsg.Remark = this.pagesTitle == '销售' ? item.Remark : item.OPRemark
this.isShowRemark = true
},
selectable(row, index) {
if (((this.OrderList[index].IsFinish != 1 && this.OrderList[index].Income > 0 && this.OrderList[index]
.DueInMoney == 0) || (this.OrderList[index].Money == 0 && this.OrderList[index].Income == 0 &&
this.OrderList[index].CostMoney == 0 && this.OrderList[index].Refund == 0 &&
this.OrderList[index].PlatformTax == 0 && this.OrderList[index].IncomeList &&
this.OrderList[index].IncomeList.length > 0))) {
return true;
} else {
return false;
}
},
handleSelectionChange(val) {
this.multipleSelection = val.map(x => {
return x.OrderId
});
},
setCompleted(id, row) {
let ids = ''
if (id > 0) {
ids = id
} else {
if (this.multipleSelection.length == 0) return this.$message.error(this.$t('objFill.qingouxuanwanjieshuju'))
ids = this.multipleSelection.join(',')
}
if (ids == '') {
this.$message.error(this.$t('objFill.qingouxuanwanjieshuju'))
}
this.$confirm(this.$t('objFill.shifouquedinwanjie'), this.$t('tips.tips'), {
confirmButtonText: this.$t('pub.sureBtn'),
cancelButtonText: this.$t('pub.cancelBtn'),
type: 'warning'
}).then(() => {
if (id > 0) {
row.loading = true
} else {
this.CompletedLoading = true
}
this.apipost('ticket_post_SetTicketOrderFinish', {
TticketOrderIds: ids
}, res => {
if (res.data.resultCode == 1) {
if (id > 0) {
row.loading = false
} else {
this.CompletedLoading = false
}
for (let i = 0; i < this.OrderList.length; i++) {
this.$refs.multipleTable.toggleRowSelection(
this.OrderList[i],
false
);
}
this.multipleSelection = []
this.$message.success(this.$t('tips.czchenggong'));
this.$emit('success')
} else {
if (id > 0) {
row.loading = false
} else {
this.CompletedLoading = false
}
this.$message.error(res.data.message);
}
}, err => {})
}).catch(() => {
this.$message.info(`${this.$t('OrderList.orderStatus.cancel')}!`);
});
},
submitEditRemark() {
if (!this.postMsg.Remark) {
this.$message.error(this.$t('objFill.opbeizhunonull'));
return
}
this.apipost('ticket_post_SetTicketOrderRemark', {
OrderId: this.postMsg.OrderId,
Type: this.pagesTitle == '销售' ? 1 : 2,
Remark: this.postMsg.Remark
}, res => {
if (res.data.resultCode == 1) {
this.isShowRemark = false
this.$emit('success')
this.$forceUpdate();
} else {
this.Error(res.data.message);
}
})
},
submit2() {
if (this.loading3) return
this.$refs['msgParameter'].validate((valid) => {
if (valid) {
this.setFormMsg2()
} else {
return false;
}
});
},
setFormMsg2() {
if (this.msgParameter.MailingState == '1') {
this.msgParameter.MailingAddress = ''
}
let m
let url
if (this.pagesTitle == 'OP') {
m = {
OrderId: this.msgParameter.OrderId,
MailingMoney: this.msgParameter.MailingMoney,
MailingState: this.msgParameter.MailingState, //邮寄状态 1自取 2邮寄
MailingAddress: this.msgParameter.MailingAddress, //MailingState =2 填写邮寄
SelffetchAddress: this.msgParameter.SelffetchAddress, //自取地址
Name: this.msgParameter.Name,
EName: this.msgParameter.EName,
Sex: this.msgParameter.Sex, //1男2女
Mobile: this.msgParameter.Mobile,
}
url = 'dict_post_SetTicketOrderMailingState'
}
if (this.pagesTitle == '销售') {
m = {
IsUpdateMailing: 1,
OrderId: this.msgParameter.OrderId,
CouponsId: this.msgParameter.CouponsId,
Money: this.msgParameter.Money,
UseDate: this.msgParameter.UseDate,
Birthday: this.msgParameter.Birthday,
DetailList: this.msgParameter.DetailList,
MailingState: this.msgParameter.MailingState, //邮寄状态 1自取 2邮寄
MailingAddress: this.msgParameter.MailingAddress, //MailingState =2 填写邮寄
Name: this.msgParameter.Name,
EName: this.msgParameter.EName,
Sex: this.msgParameter.Sex, //1男2女
Mobile: this.msgParameter.Mobile,
Remark: this.msgParameter.Remark,
}
url = 'ticket_post_SetSaleTicketOrder'
}
this.loading3 = true
this.apipost(url, m,
res => {
this.loading3 = false
if (res.data.resultCode == 1) {
this.Success(`${this.pagesTitle=='销售'?this.$t('objFill.biangendindan'):this.$t('objFill.bianjiqupiaofs')}${this.$t('objFill.chenggong')}`);
this.$emit('success')
this.ChangeOrderDialog = false
} else {
this.Error(`${this.pagesTitle=='销售'?this.$t('objFill.biangendindan'):this.$t('objFill.bianjiqupiaofs')}${this.$t('objFill.shibai')}`)
}
},
err => {
this.loading3 = false
this.Error(err.message)
});
},
uploadFileBtn(file) {
let ft = file.file.name.substring(file.file.name.lastIndexOf('.') + 1, file.file.name.length).toUpperCase();
let typeOk = false;
let FileName = file.file.name.substring(0, file.file.name.lastIndexOf("."))
let newArr = [];
newArr.push(file.file)
let path = "/Upload/Temporary/"
this.$message.info(this.$t('tips.shangchuanzhong'))
this.UploadSelfFileT(path, newArr, x => {
this.GuestFile = this.domainManager().ViittoFileUrl + x.data.FilePath
this.uploadHandleChange()
}, 1);
},
// 上传电子券
uploadHandleChange() {
if (this.loading) return
let msg = {
OrderId: this.uploadOrderId,
TicketCodeFile: this.GuestFile
}
this.loading = true
this.apipost(
"ticket_post_SetTicketCodeFile", msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.uploadOrderId = 0
this.GuestFile = ''
this.$emit("success");
} else {
this.Error(res.data.message);
}
},
err => {
this.loading = false;
}
);
},
// 单据详情
openDetails(item,x) {
let query = {
id: item.FrID ? item.FrID : item.ID,
blank: "y",
};
// 跳转发票详情页面
if(x){
this.$router.push({
name: "invoicesManagerDetail",
query: {
id: item.FrID ? item.FrID : item.ID,
InvoiceApplyType: 7,
blank: "y",
},
});
}else{
this.$router.push({
path: "/FinancialDocumentsDetail",
query
});
}
},
// 制作单据
makeAdocument(row, index, num, Offset) {
if ((num == 2 || num == 3) && (row.Income+row.PlatformMoney) <= 0) {
this.Info(this.$t('objFill.qinxianzhidanzaizhicbtkdj'))
return
}
if (Offset) {
this.cdState = true
}
let type = 0
if (num == 3) {
type = 2
} else {
type = num
}
this.BillMakingMsg.ReFinanceId = row.OrderId;
this.BillMakingMsg.ReFinanceId2 = num;
this.BillMakingMsg.OtherType = 66;
let text = "";
let query = {};
if (num == 1) {
text = this.$t('fnc.shoukuan');
} else if (num == 2) {
text = this.$t('fnc.fukuan');
} else if (num == 3) {
text = this.$t('hotel.hotel_cost');
}
query = {
blank: "y",
tab: `${this.$t('pub.addBtn')}${text}${this.$t('salesModule.Docments')}`,
Type: type,
tradeObj: JSON.stringify(this.BillMakingMsg),
companyID:row.OutBranchId
};
if (num == 2) {
query.searchTitle = '溢收团费退款';
} else if (num == 3 && this.cdState == false) {
query.portTypeId = 6;
}
this.queryObj = query
if (!Offset) {
this.$store.commit("ChoiceAddFinancialDocuments");
this.$router.push({
path: "/ChoiceAddFinancialDocuments",
query
});
}
},
// 订单明细
goRoomDetails(obj, title) {
var path
if (title === '订房详情') {
path = "roomReservationsDetails";
if (this.userInfo.RB_Group_id == 91) {
path = "roomReservationsDetails_swt";
}
this.$router.push({
name: path,
query: {
id: obj.OrderId,
OrderType: 1,
blank: "y",
tab: title
}
});
} else { //变更门票预定
this.msgParameter = JSON.parse(JSON.stringify(obj))
this.msgParameter.MailingState = JSON.stringify(this.msgParameter.MailingState)
this.msgParameter.Sex = JSON.stringify(this.msgParameter.Sex)
this.ChangeOrderDialog = true
// 获取自取地址
this.GetTicketCouponsInfo()
}
},
GetTicketCouponsInfo() {
this.apipost('ticket_post_GetTicketCouponsInfo', {
CouponsId: this.msgParameter.CouponsId,
OpenTime: this.msgParameter.UseDate,
},
res => {
this.loading3 = false
if (res.data.resultCode == 1) {
this.msgParameter.SelffetchAddress = res.data.data.SelffetchAddress
let arr = res.data.data.TicketPriceList.sort((a, b) => {
return a.MailingMoney - b.MailingMoney
})
this.msgParameter.MailingMoney = this.msgParameter.MailingMoney ? this.msgParameter.MailingMoney : arr[
0].MailingMoney
}
},
err => {
this.Error(err.message)
})
},
clickRightButtom(item, type) {
// 0取消订单 1确认订单 2已邮寄 3设置自提地址 4收损
this.msg.OrderId = item.OrderId;
this.msg.SelffetchAddress = item.SelffetchAddress
this.items = item
this.typeState = type
if (type == 0) {
if (!this.loading0) {
this.cancelOrderId = item.OrderId
// 销售 OP
if (this.pagesTitle != '销售') {
this.cancelOrderDialog = true;
} else {
this.cancelOrderHandler()
}
}
} else if (type == 1) {
if (!this.loading1) {
this.confirmFun(item, type);
}
} else if (type == 2) {
if (!this.loading1) {
this.confirmFun(item, type);
}
} else if (type == 3) {
if (!this.loading1) {
this.outerVisible = true;
}
} else if (type == 4) {
if (!this.loading2) {
this.outerVisible = true;
this.msg.LossMoney = item.LossMoney ? item.LossMoney : 0;
}
}
},
// 销售取消订单
cancelOrder() {
let that = this
if (this.loading0) return;
that.$confirm(this.$t('objFill.shifouquxiaodd'), this.$t('tips.tips'), {
confirmButtonText: this.$t('pub.sureBtn'),
cancelButtonText: this.$t('pub.cancelBtn'),
type: 'warning'
}).then(() => {
this.loading0 = true
this.apipost("ticket_post_CancelSaleTicketOrder", {
OrderId: this.cancelOrderId,
IsOPCancel: this.pagesTitle != '销售' ? 1 : 0,
Remark: this.cancelRemark
},
res => {
this.loading0 = false
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.$emit("success");
} else {
this.Error(res.data.message);
}
}).catch(err => {
this.Error(err.message)
this.loading0 = false
})
}).catch(() => {
this.loading0 = false
})
},
//提交
submitForm(msg) {
//提交创建、修改表单
this.$refs[msg].validate(valid => {
if (valid) {
if (!this.loading2) {
this.saveUpdate();
}
} else {
// this.Error("请完成必填项");
return false;
}
});
},
cancelOrderHandler() {
if (this.cancelRemark == "" && this.pagesTitle != '销售') {
this.Error(this.$t('objFill.quxiaodindanyy'));
return;
}
if (this.loading0) return;
this.loading0 = true
this.apipost(
"ticket_post_CancelSaleTicketOrder", {
OrderId: this.cancelOrderId,
IsOPCancel: this.pagesTitle != '销售' ? 1 : 0,
Remark: this.pagesTitle != '销售' ? this.cancelRemark : ''
},
res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.cancelOrderDialog = false
this.cancelOrderId = 0
this.cancelRemark = ''
this.$emit("success");
} else {
this.Error(res.data.message);
}
this.loading0 = false;
},
err => {
this.loading0 = false;
}
);
},
saveUpdate() {
let text
if (this.typeState == 3) {
text = this.$t('objFill.shifoushezhiziqudz')
}
if (this.typeState == 4) {
text = this.$t('objFill.shifouquedinss')
}
this.$confirm(text, this.$t('tips.tips'), {
confirmButtonText: this.$t('pub.sureBtn'),
cancelButtonText: this.$t('pub.cancelBtn'),
type: "warning"
})
.then(() => {
this.loading2 = true;
this.apipost(
"ticket_post_SetSaleTicketOrderState", {
OrderId: this.msg.OrderId,
State: this.typeState,
SelffetchAddress: this.typeState == 3 ? this.msg.SelffetchAddress : '',
LossMoney: this.typeState == 4 ? this.msg.LossMoney : '',
},
res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.$emit("success");
} else {
this.Error(res.data.message);
}
this.loading2 = false;
this.outerVisible = false;
},
err => {
(this.loading2 = false), (this.outerVisible = false);
}
);
})
.catch(() => {});
},
confirmFun(item, type) {
let text
if (type == 1) {
text = this.$t('objFill.shifuquediandd')
}
if (type == 2) {
text = this.$t('objFill.shifouquerenyouji')
}
this.$confirm(text, this.$t('tips.tips'), {
confirmButtonText: this.$t('pub.sureBtn'),
cancelButtonText: this.$t('pub.cancelBtn'),
type: "warning"
})
.then(() => {
this.loading1 = true;
this.apipost(
"ticket_post_SetSaleTicketOrderState", {
OrderId: item.OrderId,
State: type,
SelffetchAddress: type == 3 ? this.msg.SelffetchAddress : '',
LossMoney: type == 4 ? this.msg.LossMoney : '',
},
res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.$emit("success");
} else {
this.Error(res.data.message);
}
this.loading1 = false;
},
err => {
this.loading1 = false;
}
);
})
.catch(() => {
this.$message.info(`${this.$t('OrderList.orderStatus.cancel')}!`);
});
},
//复制信息
CopyHandler(item) {
this.copyId = item.OrderId;
let copyText = item.OrderId;
const save = function (e) {
e.clipboardData.setData('text/plain', copyText)
e.preventDefault() // 阻止默认行为
}
document.addEventListener('copy', save) // 添加一个copy事件
let x = document.execCommand('copy') // 执行copy方法
setTimeout(() => {
this.copyId = 0;
}, 2000);
},
setEdate() {
return this.addMoth(new Date().Format("yyyy-MM-dd"), 1);
},
addMoth(d, m) {
let ds = d.split("-"),
_d = ds[2] - 0;
let nextM = new Date(ds[0], ds[1] - 1 + m + 1, 0);
let max = nextM.getDate();
d = new Date(ds[0], ds[1] - 1 + m, _d > max ? max : _d);
return d
.toLocaleDateString()
.match(/\d+/g)
.join("-");
},
com_onresize() {
//clientHeight的值由DIV内容的实际高度和CSS中的padding值决定,
var contentsHeight = document.body.clientHeight;
var h = contentsHeight - 50 - 180 - 40;
if (h < 110) {
return;
}
//设置table的行高
// this.tableHeight = h;
}
},
mounted() {
this.userInfo = this.getLocalStorage();
let ActionMenuCode = this.userInfo.ActionMenuCode;
if (ActionMenuCode.indexOf('is_correlationOP') != -1) {
this.is_correlationOP = true
}
//自适应高度调节
this.com_onresize();
window.onresize = () => {
this.com_onresize();
};
}
};
</script>
<style>
</style>
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