Commit ba451ef1 authored by youjie's avatar youjie

车订单列表

parent 63e363e7
<style>
</style>
<template>
<div>
<ReservationOrder :pagesTitle="pagesTitle"></ReservationOrder>
</div>
</template>
<script>
import ReservationOrder from './components/ReservationOrder.vue';
export default {
components: { ReservationOrder },
data() {
return {
pagesTitle:'销售',
};
},
methods: {
},
mounted() {
},
};
</script>
<style>
</style>
<style>
</style>
<template>
<div>
<ReservationOrder :pagesTitle="pagesTitle"></ReservationOrder>
</div>
</template>
<script>
import ReservationOrder from './components/ReservationOrder.vue';
export default {
components: { ReservationOrder },
data() {
return {
pagesTitle:'OP',
};
},
methods: {
},
mounted() {
},
};
</script>
<style>
</style>
<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;
}
.c20c997 {
color: #20c997;
}
.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;
}
.bg20c997 {
background: rgba(238,238,238,.5);
}
.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">一键完结
</el-button>
</div>
<el-table ref="multipleTable" :data="OrderList" tooltip-effect="dark" style="width: 100%" row-key="OrderId"
@selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" :selectable="selectable" :reserve-selection="true" v-if="pagesTitle=='OP'">
</el-table-column> -->
<el-table-column :label="pagesTitle=='OP'?'':''">
<template slot-scope="scope">
<div class="row-c justify-sb align-c py">
<div class="row-c">
<div v-if="false">
<!-- active activeNo -->
<div class="orderType cf fz12"
:class="[scope.row.IsFinish==1?'active':'']">
{{scope.row.IsFinish==1?'已完结':'未完结'}}
</div>
</div>
<div class="cblack fz14 mr" v-if="scope.row.IsFinish == 1">
<span class="">
<span>{{scope.row.FinishEmpName}}/</span>
<span class="text-grey-6">{{scope.row.FinishTimeStr}}</span>
</span>
</div>
<div class="c9e fz12">
<span>{{ $t('OrderList.search.orderId') }}</span>
<span>({{ scope.row.OrderId}})</span>
<span class="copy cblack cursor-pointer" v-if="copyId != scope.row.OrderId"
@click="CopyHandler(scope.row)">复制</span>
<span v-else class="copy c059FF6 bgD9F3FF cursor-pointer"><i class="el-icon-check mr"></i>已复制</span>
</div>
</div>
<div class="c9e fz12">
<span>客人信息:{{scope.row.CustomerName}}
<span v-if="scope.row.CustomerTel">/ Tel:{{ scope.row.CustomerTel }} </span>
<span v-if="scope.row.CustomerMail">/ Email:
{{scope.row.CustomerMail}} </span>
</span>
</div>
<div class="row c9e fz12">
<span class="mr">下单人:
{{scope.row.CreateByName}}/{{scope.row.CreateDateStr}}
</span>
<div class="">
<i class="mx5" :class="{
'el-icon-alarm-clock c20C997': scope.row.OrderState == 1,
'el-icon-refresh cff9800': scope.row.OrderState == 2,
}"></i>
<span class="fz12 cblack" :class="{
c20C997: scope.row.OrderState == 1,
cF1416C: scope.row.OrderState == 2,
}">
{{ scope.row.typeInfo.Name }}
</span>
</div>
</div>
</div>
<div class="mb">
<el-table :data="[scope.row]" style="width:100%" border>
<el-table-column label="车/使用时间/天数)" min-width="100" style="background:#EAEAEA">
<template slot-scope="scopes">
<div>{{scope.row.CarModel.CarName+'/'+scope.row.CarModel.CarNo }}</div>
<span style="color: #999999;">{{ scope.row.UseDate }}</span>
<span style="color: #999999;">{{ scope.row.UseDay }}</span>
</template>
</el-table-column>
<el-table-column label="用车详情" min-width="200" style="background:#EAEAEA">
<template slot-scope="scope">
<div class="RoomList">
<div class="fz12 c9e" v-for="(x, i) in scope.row.NewOrderDetailList">
<span class="mr"
>{{x.Day}}</span
>
<span class="ml mr">司机: {{x.DriverModel.DriverName}}/{{x.DriverModel.DriverTel}}</span>
<span class="ml mr" v-if="x.CopilotDriverModel">副司机:{{x.CopilotDriverModel.DriverName}}/{{x.CopilotDriverModel.DriverTel}}</span>
<span class="ml"
> {{ x.useTypeInfo.StatusName }} </span
>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="总金额" style="background:#EAEAEA">
<template slot-scope="scope">
{{ scope.row.Money }}
</template>
</el-table-column>
<el-table-column label="代收金额" min-width="70" style="background:#EAEAEA">
<template slot-scope="scope">
<span class="fz15 fbold">{{ scope.row.DueInMoney }}</span>
</template>
</el-table-column>
<el-table-column label="实收" min-width="70" style="background:#EAEAEA">
<template slot-scope="scope">
<span class="fz15 fbold">{{ scope.row.Income }}</span>
</template>
</el-table-column>
<el-table-column label="退款" min-width="70" style="background:#EAEAEA">
<template slot-scope="scope">
<span class="fz15 fbold">{{ scope.row.Refund }}</span>
</template>
</el-table-column>
<el-table-column label="平台在途金额" min-width="70" style="background:#EAEAEA">
<template slot-scope="scope">
<span class="fz15 fbold">{{ scope.row.PlatformMoney }}</span>
</template>
</el-table-column>
<el-table-column label="平台税金" min-width="70" style="background:#EAEAEA">
<template slot-scope="scope">
<span class="fz15 fbold">{{ scope.row.PlatformTax }}</span>
</template>
</el-table-column>
<el-table-column label="成本金额" min-width="70" style="background:#EAEAEA">
<template slot-scope="scope">
<span class="fz15 fbold">{{ scope.row.CostMoney }}</span>
</template>
</el-table-column>
<template slot="append" v-if="scope.row.Remark||scope.row.isMore">
<div style="padding:10px;color:#f1416c">备注:{{scope.row.Remark}}
</div>
<div :style="{'height': scope.row.isMore?'20px':''}"></div>
<more v-if="scope.row.isMore" @change="ViewMore(scope.row,index)" :upIcon="scope.row.upIcon"></more>
</template>
</el-table>
</div>
<div class="row justify-sb mt mb20" v-if="scope.row.IncomeList.length>0||scope.row.RefundList.length>0||scope.row.CostList.length>0">
<div class="column px15 bgf5 radius5 flex-g pa relative" style="min-width: 150px;max-width:400px">
<div class="fz12">收款单据</div>
<div class="row wrap orderNo fz12 py">
<span class="cursor-pointer radius5 mr mb px5" :class="{'bgD9F3FF':x.ColorState==1,'bg20c997':x.ColorState==2,'bgFAEAED':x.ColorState==3,'bjFFF3E0':x.ColorState==4,
'c3FC4FF':x.ColorState==1,'c20c997':x.ColorState==2,'cF1416C':x.ColorState==3,'cff9800':x.ColorState==4}" 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">
暂无收款单据
</span>
</div>
<!-- <el-tooltip v-if="scope.row.OrderState == 2" class="item" effect="dark" content="制单" placement="top">
<i class="absolute right20 bottom20 el-icon-circle-plus cursor-pointer c059FF6"
@click="makeAdocument(scope.row, 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">退款单据</div>
<div class="row wrap orderNo fz12 py">
<span class="cursor-pointer radius5 mr mb px5" :class="{'bgD9F3FF':x.ColorState==1,'bg20c997':x.ColorState==2,'bgFAEAED':x.ColorState==3,'bjFFF3E0':x.ColorState==4,
'c3FC4FF':x.ColorState==1,'c20c997':x.ColorState==2,'cF1416C':x.ColorState==3,'cff9800':x.ColorState==4}" 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">
暂无退款单据
</span>
</div>
<!-- <el-tooltip v-if="scope.row.OrderState == 2" class="item" effect="dark" content="制单" placement="top">
<i class="absolute right20 bottom20 el-icon-circle-plus cursor-pointer c059FF6"
@click="makeAdocument(scope.row, 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">成本单据</div>
<div class="row wrap orderNo fz12 py">
<span class="cursor-pointer radius5 mr mb px5" :class="{'bgD9F3FF':x.ColorState==1,'bg20c997':x.ColorState==2,'bgFAEAED':x.ColorState==3,'bjFFF3E0':x.ColorState==4,
'c3FC4FF':x.ColorState==1,'c20c997':x.ColorState==2,'cF1416C':x.ColorState==3,'cff9800':x.ColorState==4}" 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">
暂无成本单据
</span>
</div>
<!-- <div class="item absolute right20 bottom20" v-if="scope.row.OrderState == 2 && pagesTitle != '销售'">
<el-tooltip class="" effect="dark" content="制单" placement="top">
<i class="el-icon-circle-plus cursor-pointer c059FF6" @click="makeAdocument(scope.row, index, 3)"></i>
</el-tooltip>
<el-tooltip v-if="scope.row.OrderState == 2" class="" effect="dark" content="冲抵" placement="top">
<i class="el-icon-circle-plus cursor-pointer c3FC4FF" @click="isOffset(scope.row, 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">
<div class="fz12">发票单据</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">
暂无发票单据
</span>
</div>
</div>
<div v-if="false" class="row-c wrap justify-c px15 bgE8F5E9 radius5 ml fz12 orderop flex-s">
<div v-if="
scope.row.OrderState == 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">取消订单</span>
</div>
<div v-if="scope.row.OrderState == 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">确认订单</span>
</div>
<div v-if="scope.row.OrderState == 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">邮寄</span>
</div>
<div v-if="(scope.row.OrderState == 1 && pagesTitle == '销售')||(scope.row.OrderState >1 && scope.row.OrderState != 3
&&pagesTitle=='OP'&&is_correlationOP)" class="row-c cursor-pointer radius5 change py5"
@click="goRoomDetails(scope.row, pagesTitle=='销售'?'门票预定变更':'编辑取票方式')">
<span class="c059FF6">{{pagesTitle=='销售'?'订单变更':'编辑取票方式'}}</span>
</div>
<div v-if="scope.row.OrderState > 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">收损</span>
</div>
<div v-if="scope.row.OrderState >1 && scope.row.OrderState != 3
&& scope.row.OrderState != 4
&&pagesTitle=='OP'&&is_correlationOP" class="row-c cursor-pointer radius5 change py5"
@click="clickCorrelation(scope.row,1)">
<span class="c059FF6">编辑关联OP</span>
</div>
<div v-if="scope.row.OrderState != 3
&&pagesTitle=='OP'" class="row-c cursor-pointer radius5 change py5" @click="clickCorrelation(scope.row,2)">
<span class="c059FF6">编辑总金额</span>
</div>
<ApplyFoInvoice v-if="userInfo.EmployeeId==scope.row.EnterID" :obj="scope.row" :type="7"></ApplyFoInvoice>
</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;">取消理由:</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 ? '设置自提地址' : '设置收损金额'" :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="订单状态" 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="自提地址" 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="收损金额" 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="保存" @click="submitForm('msg')" />
<input type="button" class="hollowFixedBtn" value="取消"
@click="(outerVisible = false), $refs['msg'].resetFields()" />
</el-col>
</el-row>
</el-form>
</div>
</el-dialog>
<el-dialog custom-class="w600" title="取消订单" :visible.sync="cancelOrderDialog">
<div style="padding-bottom:20px">
<el-input type="textarea" autofocus rows="5" placeholder="请填写取消订单的缘由" 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="取消订单" @click="cancelOrderHandler" />
<input type="button" class="hollowFixedBtn" value="关闭" @click="cancelOrderDialog = false" />
</el-col>
</el-row>
</div>
</el-dialog>
<!-- 变更订单 -->
<el-dialog custom-class="w800" :title="pagesTitle=='销售'?'变更订单':'编辑取票方式'" :visible.sync="ChangeOrderDialog">
<div style="padding-bottom:20px">
<div class="flexOne-form-bj">
<h3>取票方式</h3>
<div class="flexOne-type">
<b>取票方式:</b>
<div>
<el-radio v-model="msgParameter.MailingState" label="1">自行取票</el-radio>
<el-radio v-model="msgParameter.MailingState" label="2">邮寄票券</el-radio>
<el-radio v-model="msgParameter.MailingState" label="4">电子券</el-radio>
</div>
</div>
<div class="flexOne-description" v-if="msgParameter.MailingState==1">
<b>自行取票说明</b>
<p>自取地址:{{msgParameter.SelffetchAddress?msgParameter.SelffetchAddress:'-'}}</p>
</div>
<div class="flexOne-infor-box">
<b>{{msgParameter.MailingState==1?'客人讯息':msgParameter.MailingState==2?'邮寄讯息':''}}</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="中文名" prop="Name">
<el-input v-model="msgParameter.Name" placeholder="请输入名称" />
</el-form-item>
</li>
<li>
<el-form-item label="英文名" prop="EName">
<el-input v-model="msgParameter.EName" placeholder="请输入英文名" />
</el-form-item>
</li>
<li>
<el-form-item label="电话" prop="Mobile">
<el-input type="Number" v-model="msgParameter.Mobile" placeholder="请输入电话" />
</el-form-item>
</li>
<li v-if="msgParameter.MailingState == 2">
<el-form-item label="地址" prop="MailingAddress">
<el-input style="border-radius: 3px;" v-model="msgParameter.MailingAddress"
placeholder="请输入邮寄地址" />
</el-form-item>
</li>
<li v-if="msgParameter.MailingState == 2">
<el-form-item label="邮寄费" prop="MailingMoney">
<el-input type="Number" style="border-radius: 3px;" v-model="msgParameter.MailingMoney"
placeholder="请输入邮寄费" />
</el-form-item>
</li>
<li class="bottom">
<el-form-item label="性别" prop="Sex">
<el-radio v-model="msgParameter.Sex" label="1"></el-radio>
<el-radio v-model="msgParameter.Sex" label="2"></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="订单备注" />
</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="取消" @click="ChangeOrderDialog = false" />
<input type="button" class="normalBtn" value="确定" @click="submit2" />
</el-col>
</el-row>
</div>
</el-dialog>
<!-- op备注 -->
<el-dialog custom-class='addCompany' :title="pagesTitle=='销售'?'编辑客户备注':'编辑OP备注'" :visible.sync="isShowRemark" center
width="400px">
<el-row class="flex" style="margin-top: 10px;">
<el-col>
<span style="display: block;margin-bottom: 10px;">备注:</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">取消</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';
import more from '../../public/more.vue';
export default {
components: {
offset,
correlationOP,
commissionDialog,
ApplyFoInvoice,
more
},
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: '请输入中文名',
trigger: 'blur'
}],
EName: [{
required: true,
message: '请输入英文名',
trigger: 'blur'
}],
Mobile: [{
required: true,
message: "请输入联系电话",
trigger: "blur"
},
{
pattern: this.$commonUtils.Regex.el_ISphone,
message: "请输入正确的电话"
}
],
MailingAddress: [{
required: true,
message: '请输入邮寄地址',
trigger: 'blur'
}],
MailingMoney: [{
required: true,
message: "请输入邮寄费用",
trigger: "blur"
}, ],
},
outerVisible: false,
rules: {
State: [{
required: true,
message: "请选择订单状态",
trigger: "change"
}],
SelffetchAddress: [{
required: true,
message: "请输入自提地址",
trigger: "blur"
}],
LossMoney: [{
required: true,
message: "请输入收损金额",
trigger: "blur"
}]
},
cancelOrderDialog: false,
cancelRemark: "",
cancelOrderId: 0,
uploadOrderId: 0,
loading: false,
fileList: [],
GuestFile: '',
ChangeOrderDialog: false,
PaymentMethods: [],
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,
typeSystem: 0
};
},
watch: {
pagesTitle(val, oldval) {
this.pagesTitle = val
},
OrderList: {
handler(val, oldVal) {
}
}
},
methods: {
ViewMore(x,index){
x.upIcon = !x.upIcon
if(x.upIcon){
x.NewOrderDetailList = JSON.parse(JSON.stringify(x.OrderDetailList))
}else{
x.NewOrderDetailList = []
x.OrderDetailList.forEach((y,index)=>{
if(index<2){
x.NewOrderDetailList.push(y)
}
})
}
},
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
},
// 车行订单 制成本冲抵单
addBalanceout() {
let datas = this.$route.query
let tradeObj = datas.tradeObj
console.log(datas,tradeObj,'-----crmuserInfo')
let query = {
blank: "y",
tab: `新增付款单据`,
Type: 2,
tradeObj: tradeObj,
companyID: 1248
};
this.queryObj = query
this.cdState = 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('请勾选需要完结的数据')
ids = this.multipleSelection.join(',')
}
if (ids == '') {
this.$message.error('请勾选需要完结的数据')
}
this.$confirm('是否确认完结?', 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.$emit('success')
} else {
if (id > 0) {
row.loading = false
} else {
this.CompletedLoading = false
}
this.$message.error(res.data.message);
}
}, err => {})
}).catch(() => {
this.$message.info('已取消!');
});
},
submitEditRemark() {
if (!this.postMsg.Remark) {
this.$message.error('OP备注不能为空');
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.$emit('success')
this.ChangeOrderDialog = false
} else {
this.Error(`${this.pagesTitle=='销售'?'变更订单':'编辑取票方式'}失败`)
}
},
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('请先制收款单据,再制成本或退款单据!')
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 = "收款";
} else if (num == 2) {
text = "付款";
} else if (num == 3) {
text = "成本";
}
query = {
blank: "y",
tab: `新增${text}单据`,
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('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("请填写取消订单的缘由");
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 = '是否确认设置自取地址?'
}
if (this.typeState == 4) {
text = '是否确认设置收损?'
}
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 = '是否确认订单?'
}
if (type == 2) {
text = '是否确认邮寄?'
}
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("已取消!");
});
},
//复制信息
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() {
if(localStorage.typeSystem) this.typeSystem = localStorage.typeSystem
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>
<style scoped>
.listone-box {
display: flex;
flex-direction: column;
}
.listone-box,
.listtwo-card {
margin-top: 15px;
}
.listone-form {
padding: 10px;
border-radius: 5px;
background: #ffffff;
display: flex;
flex-direction: row;
justify-content: space-between;
margin-bottom: 10px;
overflow: hidden;
}
.listone-img {
width: 130px;
flex-shrink: 0;
margin-right: 15px;
border-radius: 5px;
display: block;
}
.listone-list {
flex-grow: 1;
display: flex;
justify-content: space-between;
}
.card-centent h6 {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.list-left h6,
.card-centent h6 {
font-size: 16px;
margin-bottom: 5px;
cursor: pointer;
}
.list-left div {
color: #7E8299;
font-size: 13px;
margin-top: 7px;
}
.list-left div a {
color: #009EF7;
font-size: 12px;
margin-left: 15px;
cursor: pointer;
}
.list-right {
flex-shrink: 1;
margin-left: 15px;
}
.list-right p {
margin-bottom: 10px;
}
.list-right p b {
font-size: 18px;
color: #F1416C;
}
.list-right p span {
color: #8A8C9F;
font-size: 12px;
margin-left: 10px;
}
.listtwo-form {
height: 100%;
display: flex;
flex-direction: column;
padding: 10px;
background: #ffffff;
border-radius: 5px;
}
.card-centent {
padding: 10px;
}
.card-centent p {
color: #7E8299;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 13px;
}
.card-text {
margin-top: 20px;
display: flex;
justify-content: space-between;
align-items: inherit;
}
.card-text b {
font-size: 14px;
}
.card-form {
display: flex;
align-items: inherit;
flex-wrap: wrap;
}
.listtwo-col {
margin-bottom: 15px;
}
.listtwo-img {
height: 200px;
border-radius: 5px;
display: block;
}
.iconfont {
cursor: pointer;
background-color: #E95252;
color: white;
width: 30px;
height: 30px;
display: inline-block;
text-align: center;
line-height: 30px;
border-radius: 50%;
margin-left: 10px;
}
.image-slot {
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
</style>
<template>
<div class="flexOne domesticScenic">
<div class="query-box" style="border-bottom: none;">
<ul>
<li>
<span>
<em>{{ $t('OrderList.search.status') }}</em>
<el-select v-model="msg.OrderState">
<el-option :key="0" :value="0" :label="$t('OrderList.orderStatus.normal')"></el-option>
<el-option v-for="item in OrderStatusType" :key="item.ID" :label="item.Name" :value="item.ID"></el-option>
</el-select>
</span>
</li>
<li>
<span><em>{{ $t('OrderList.search.orderId') }}</em>
<el-input clearable type="Number" v-model="msg.OrderId" placeholder="订单ID" />
</span>
</li>
<li>
<span><em>{{$t('fnc.khmingcheng')}}</em>
<el-select v-model="msg.CustomerId" filterable>
<el-option :key="0" :value="0" :label="$t('pub.unlimitedSel')"></el-option>
<el-option v-for="item in CustomerList" :key="item.Id" :label="item.CustomerName" :value="item.Id"></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>{{$t('pub.date')}}</em>
<el-date-picker style="height: 34px;" value-format="yyyy-MM-dd" v-model="DatelistUse" type="daterange"
:range-separator="$t('OrderList.zhi')" :start-placeholder="$t('OrderList.star')"
:end-placeholder="$t('OrderList.end')" @change="getDatesUse">
</el-date-picker>
</span>
</li>
<li>
<input type="button" class="normalBtn" :value="$t('pub.searchBtn')"
@click="msg.pageIndex = 1, currentPage = 1, GetList()" />
</li>
</ul>
</div>
<template>
<div style="display: flex;justify-content: end;margin-bottom: 10px;">
<p><span class="groupTourOrderByTuan_ico"><i style="background-color:#3FC4FF"></i><span>{{$t('fnc.yidadan')}}</span></span>
<span class="groupTourOrderByTuan_ico"><i style="background-color:#20c997"></i><span>{{$t('fnc.ptcnyshenhe')}}</span></span>
<span class="groupTourOrderByTuan_ico"><i style="background-color:#F1416C"></i><span>{{$t('fnc.yhcnyshenhe')}}</span></span>
<span class="groupTourOrderByTuan_ico"><i style="background-color:#ff9800"></i><span>{{$t('fnc.ytongguo')}}</span></span></p>
</div>
<OrderList :pagesTitle="pagesTitle" :OrderList="OrderList" v-loading="loading" @success="GetList"> </OrderList>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size=msg.pageSize :total=total>
</el-pagination>
</template>
</div>
</template>
<script>
import OrderList from './OrderList.vue';
export default {
props: ['pagesTitle'],
components: { OrderList },
data() {
return {
useTypes: [
{
StatusName: '接機',StatusId: 1
},
{
StatusName: '送機',StatusId: 2
},
{
StatusName: '半天',StatusId: 3
},
{
StatusName: '全天', StatusId: 4
}
],
userInfo: {},
HotelList: [],
loading: false,
isShow: false,
outerVisible: false,
//订单列表
OrderList: [],
//默认高度
tableHeight: 0,
CustomerList: [],
msg: {
pageIndex: 1,
pageSize: 5,
OrderId: 0,
CustomerId: 0,
UseSTime: "",
UseETime: "",
OrderState: 0,
IsFinish: -1,
},
total: 0,
currentPage: 1,
OrderStatusType: [
{ Name: this.$t('pub.normalSel'), ID: '1' },
{ Name: this.$t('OrderList.orderStatus.cancel'), ID: '2' },
],
MailingStateType: [
{ Name: '自行取票', ID: '1' },
{ Name: '邮寄票券', ID: '2' },
// {Name: '已邮寄票券',ID:'3'},
{Name: '电子券',ID:'4'},
],
orderType: [
{ Name: this.$t('OrderList.orderType.tour'), ID: '1' },
{ Name: this.$t('OrderList.orderType.guest'), ID: '2' },
],
Datelist: '',
DatelistUse: '',
EmployeeList:[],
employeeMsg:{ // 员工
GroupId:'',
BranchId:-1,
DepartmentId:0,
PostId:0,
IsLeave:0,
},
};
},
watch: {
pagesTitle(val, oldval) {
}
},
methods: {
// 获取客户
GetCarCustomerList() {
this.apipost('JapanCar_get_GetJapanCarCustomerList', {
keyWord: ''
}, res => {
if(res.data.resultCode == 1) {
this.CustomerList = res.data.data;
}
}, err => {})
},
getEmployee() { //员工
let userInfo=this.getLocalStorage();
this.employeeMsg.GroupId = userInfo.RB_Group_id;
this.apipost('admin_get_EmployeeGetList', this.employeeMsg, res => {
if(res.data.resultCode == 1) {
this.EmployeeList = res.data.data;
}
}, err => {})
},
getDatesUse() {
if(this.DatelistUse){
if (this.DatelistUse[0]) {
this.msg.UseSTime = this.DatelistUse[0]
} if (this.DatelistUse[1]) {
this.msg.UseETime = this.DatelistUse[1]
}
}else{
this.msg.UseSTime = ''
this.msg.UseETime = ''
}
},
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('-')
},
// 获取酒店下拉
initHotels() {
this.apipost("hotel_post_GetHasStockHotelList", {},
res => {
if (res.data.resultCode == 1) {
this.HotelList = res.data.data;
} else {
this.Error(res.data.message)
}
},
err => { }
);
},
getyMDOne() {
let myDate = new Date()
let myYear = myDate.getFullYear();//获取完整的年份(4位,1970-????)
let myMonth = myDate.getMonth() + 1;//获取当前月份(0-11,8代表1月)
let myToday = myDate.getDate(); //获取当前日(1-31)
myMonth = myMonth > 9 ? myMonth : '0' + myMonth
myToday = myToday > 9 ? myToday : '0' + myToday
let nowDate = myYear + '-' + myMonth + '-01'
return nowDate
},
getyMDTwo() {
let myDate = new Date()
let myYear = myDate.getFullYear();//获取完整的年份(4位,1970-????)
let myMonth = myDate.getMonth() + 1;//获取当前月份(0-11,8代表1月)
let myToday = myDate.getDate(); //获取当前日(1-31)
myMonth = myMonth > 9 ? myMonth : '0' + myMonth
myToday = myToday > 9 ? myToday : '0' + myToday
let nowDate = myYear + '-' + myMonth + '-' + myToday
return nowDate
},
//获取酒店订单列表
GetList() {
this.loading = true
let url
// 销售 OP
if (this.pagesTitle == '销售') {
url = "JapanCar_get_GetJapanOrderPageList"
} else {
url = "JapanCar_get_GetJapanOrderPageList"
}
this.apipost(url, this.msg,
res => {
this.loading = false
if (res.data.resultCode == 1) {
let data = res.data.data.pageData
let addList = function(arr){
arr.forEach(x=>{
x.list = []
x.isMore = false
x.upIcon = false
x.NewOrderDetailList = []
})
}
addList(data)
data.forEach(item => {
item.typeInfo = this.OrderStatusType.find(y => y.ID == item.OrderState) ?? this.OrderStatusType[1]
if(item.OrderDetailList.length>2){
item.isMore = true
}
let dataLists = []
item.OrderDetailList.forEach((x,index)=>{
x.useTypeInfo = this.useTypes.find(z => z.StatusId == x.UseType) ?? this.useTypes[1]
if(index<2){
dataLists.push(x)
}
})
item.NewOrderDetailList = JSON.parse(JSON.stringify(dataLists))
})
this.OrderList = data;
this.total = res.data.data.count;
} else {
this.Error(res.data.message);
}
},
err => { this.loading = false }
);
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.GetList();
},
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;
},
},
created() {
if (this.$route.query.OrderId) {
this.msg.OrderId = this.$route.query.OrderId
}
// crm自动登陆传过来的参数
if(this.$route.query.crmOrderObj){
let crmOrderObj = JSON.parse(this.$route.query.crmOrderObj)
this.msg.OrderId = crmOrderObj.OrderId
}
},
mounted() {
this.GetCarCustomerList()
this.Datelist = this.getyMDOne()
this.userInfo = this.getLocalStorage();
this.getEmployee()
this.GetList();
this.initHotels();//酒店名称下拉
//自适应高度调节
this.com_onresize();
window.onresize = () => {
this.com_onresize();
}
},
};
</script>
<style>
</style>
......@@ -993,7 +993,7 @@
window.localStorage.navTabs = JSON.stringify(this.tabs)
},
created() {
this.typeSystem = localStorage.typeSystem
if(localStorage.typeSystem) this.typeSystem = localStorage.typeSystem
}
};
......
......@@ -903,7 +903,7 @@
<div v-if="GetDetail.OtherType==67||GetDetail.OtherType==68" class="illustrate-right fygsbumen-box-right"
@click="ImpressionSingleDetails(isOrderOP?'CharterOrderListOP':'CharterOrderList')">{{'单项车订单:'+GetDetail.ReFinanceId}}</div>
<div v-if="GetDetail.OtherType==80" class="illustrate-right fygsbumen-box-right"
@click="ImpressionSingleDetails(isOrderOP?'CarDealerOrderListOP':'CarDealerOrderList')">
@click="ImpressionSingleDetails(isOrderOP?'CarDealerOrderOP':'CarDealerOrder')">
{{'车行订单:'+GetDetail.ReFinanceId}}</div>
<!-- <div v-if="GetDetail.OtherType==63" class="illustrate-right fygsbumen-box-right"
......@@ -2387,7 +2387,7 @@ class="w135 _border_b_1">
NewFinanceId: FrID,
blank: "y",
};
this.$router.push({
path: "/HelpBranch",
query
......@@ -2398,13 +2398,13 @@ else if (Type==2) {
id: FrID,
blank: "y",
};
this.$router.push({
path: "/CapitalAllocationDetail",
query
});
}
},
// 发票审核
......@@ -2600,7 +2600,6 @@ else if (Type==2) {
OrderId: this.GetDetail.ReFinanceId,
}}, `${href}`)
}else{
return
this.$router.push({
path: path,
query: {
......@@ -2620,7 +2619,7 @@ else if (Type==2) {
}
});
}
}
},
......
......@@ -1805,7 +1805,7 @@
};
},
created() {
this.typeSystem = localStorage.typeSystem
if(localStorage.typeSystem) this.typeSystem = localStorage.typeSystem
this.isTerminate = -1
let userinfo = this.getLocalStorage();
let ActionMenuCode = userinfo.ActionMenuCode;
......
......@@ -929,7 +929,7 @@
@click="ImpressionSingleDetails(isOrderOP?'CharterOrderListOP':'CharterOrderList')">
{{'单项车订单:'+GetDetail.ReFinanceId}}</div>
<div v-if="GetDetail.OtherType==80" class="illustrate-right fygsbumen-box-right"
@click="ImpressionSingleDetails(isOrderOP?'CarDealerOrderListOP':'CarDealerOrderList')">
@click="ImpressionSingleDetails(isOrderOP?'CarDealerOrderOP':'CarDealerOrder')">
{{'车行订单:'+GetDetail.ReFinanceId}}</div>
<!-- <div v-if="GetDetail.OtherType==63" class="illustrate-right fygsbumen-box-right"
@click="ImpressionSingleCommissionDetails('ServiceCommissiondetails',1)">{{'单项销售提成详情'}}</div>
......@@ -1848,7 +1848,6 @@
OrderId: this.GetDetail.ReFinanceId,
}}, `${href}`)
}else{
return
this.$router.push({
path: path,
query: {
......@@ -2861,7 +2860,7 @@
}
},
mounted() {
this.typeSystem = localStorage.typeSystem
if(localStorage.typeSystem) this.typeSystem = localStorage.typeSystem
// document.onkeydown = this.KeyDown
// document.onkeyup = this.KeyUp
......
......@@ -657,7 +657,7 @@ export default {
}
},
mounted(){
this.typeSystem = localStorage.typeSystem
if(localStorage.typeSystem) this.typeSystem = localStorage.typeSystem
if(this.typeSystem==1) this.msg.OtherType = '80'
let userInfo=this.getLocalStorage();
this.getCompanyMsg.RB_Group_Id= this.employeeMsg.GroupId = this.getDepartmentMsg.RB_Group_Id = userInfo.RB_Group_id; //集团ID
......
......@@ -596,7 +596,7 @@ tr._item_list td:last-child {
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="是否联运:">
<el-select v-model="msg.Is_Transport" filterable class="w150">
......@@ -611,7 +611,7 @@ tr._item_list td:last-child {
<el-input v-model="msg.DMCNUM" class></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="领队类型:">
<el-select v-model="msg.LeaderType" filterable class="w150" @change="GetLeaderList()">
......@@ -762,7 +762,7 @@ Vue.component("TCIDJump", {
<span style="cursor: pointer" v-if="rowData.DataType===14" @click="goSAirRec('TicketManager',rowData)">{{rowData.TCID}}</span>
<span style="cursor: pointer" v-if="rowData.DataType===15">{{rowData.TCID}}</span>
<span style="cursor: pointer" v-if="rowData.DataType===16">{{rowData.TCID}}</span>
<span style="cursor: pointer" v-if="rowData.DataType===22">{{rowData.TCID}}</span>
<span style="cursor: pointer" v-if="rowData.DataType===22" @click="goCarUrl('CarDealerOrderOP',rowData.TCID,rowData)">{{rowData.TCID}}</span>
<span style="cursor: pointer" v-if="rowData.DataType===23" @click="goUrl('TeamBalancePayment',rowData.TCID,rowData)">{{rowData.TCID}}</span>
</div>
......@@ -778,7 +778,33 @@ Vue.component("TCIDJump", {
type: Number
}
},
data() {
return {
typeSystem: 0
}
},
mounted() {
if(localStorage.typeSystem) this.typeSystem = localStorage.typeSystem
},
methods: {
goCarUrl(path,id,row){
if(this.typeSystem==1){
let href = this.domainManager().CarUrl
window.parent.postMessage({
event_id: 'CarDealerOrder',
data: {
OrderId: id,
}}, `${href}`)
}else{
this.$router.push({
path: path,
query: {
OrderId: id,
blank: 'y'
}
});
}
},
goUrl(path, id ,row) {
if(row.TeamType==2){//为一日游的时候跳转到一日游团控列表
this.$router.push({
......@@ -884,7 +910,7 @@ Vue.component("TCNUMJump", {
<span style="cursor: pointer;text-decoration:underline" v-if="rowData.DataType===19" @click="goUrl('SingleticketOrderListOP',rowData.TCID,rowData)">{{rowData.TCNUM}}</span>
<span v-if="rowData.DataType===20">{{rowData.TCNUM}}</span>
<span style="cursor: pointer;text-decoration:underline" v-if="rowData.DataType===21" @click="goUrl('FinancialDocumentsDetail',rowData.TCID,rowData)">{{rowData.TCNUM}}</span>
<span style="cursor: pointer;text-decoration:underline" v-if="rowData.DataType===22" @click="goUrl('FinancialDocumentsDetail',rowData.TCID,rowData)">{{rowData.TCNUM}}</span>
<span style="cursor: pointer;text-decoration:underline" v-if="rowData.DataType===22" @click="goCarUrl('CarDealerOrderOP',rowData.TCID,rowData)">{{rowData.TCNUM}}</span>
<span style="cursor: pointer;text-decoration:underline" v-if="rowData.DataType===23" @click="goUrl('TravelControlList',rowData.TCNUM,rowData)">{{rowData.TCNUM}}</span>
</div>`,
props: {
......@@ -898,7 +924,33 @@ Vue.component("TCNUMJump", {
type: Number
}
},
data() {
return {
typeSystem: 0
}
},
mounted() {
if(localStorage.typeSystem) this.typeSystem = localStorage.typeSystem
},
methods: {
goCarUrl(path,id,row){
if(this.typeSystem==1){
let href = this.domainManager().CarUrl
window.parent.postMessage({
event_id: 'CarDealerOrder',
data: {
OrderId: id,
}}, `${href}`)
}else{
this.$router.push({
path: path,
query: {
OrderId: id,
blank: 'y'
}
});
}
},
goHand(path,rowData,type){
if(type==15){
let TCID=rowData.TCID;
......@@ -2185,9 +2237,11 @@ export default {
F_GeneralManager:false,
coinGetList: [],
coinGetShow: false,
typeSystem: 0,
};
},
created() {
if(localStorage.typeSystem) this.typeSystem = localStorage.typeSystem
this.msg.startDate=this.$route.query.StartTime!=undefined?this.$route.query.StartTime:'';
this.msg.endDate=this.$route.query.EndTime!=undefined?this.$route.query.EndTime:'';
this.msg.LineId=this.$route.query.LineId!=undefined?Number(this.$route.query.LineId):'';
......
......@@ -1026,7 +1026,6 @@ export default {
isShowCorrelation: false,
CorrelationObj:{},
is_correlationOP: false,
typeSystem: 0
};
},
watch: {
......@@ -1059,22 +1058,7 @@ export default {
}
this.isShowCorrelation = true;
},
// 车行订单 制成本冲抵单
addBalanceout() {
let datas = this.$route.query
let tradeObj = datas.tradeObj
console.log(datas,tradeObj,'-----crmuserInfo')
let query = {
blank: "y",
tab: `新增付款单据`,
Type: 2,
tradeObj: tradeObj,
companyID: 1248
};
this.queryObj = query
this.cdState = true
// this.makeAdocument(row, 0, 3, null, 'Offset')
},
isOffset(row, index, num,name){
this.makeAdocument(row, index, num, name, 'Offset')
},
......@@ -1526,7 +1510,7 @@ export default {
}
},
mounted() {
this.typeSystem = localStorage.typeSystem
this.userInfo = this.getLocalStorage();
let ActionMenuCode = this.userInfo.ActionMenuCode;
if (ActionMenuCode.indexOf('is_correlationOP') != -1 ){
......
......@@ -1753,7 +1753,7 @@
},
},
mounted() {
this.typeSystem = localStorage.typeSystem
if(localStorage.typeSystem) this.typeSystem = localStorage.typeSystem
let that = this;
this.qjGroupId = this.QjGroupId();
this.apipost('user_post_GetNowVote', {}, r => {
......
......@@ -1006,6 +1006,22 @@ export default {
title: '酒店预定订单'
},
},
{
path: '/CarDealerOrder', //车订单
name: 'CarDealerOrder',
component: resolve => require(['@/components/CarDealerOrder/CarDealerOrderList'], resolve),
meta: {
title: '车行订单'
},
},
{
path: '/CarDealerOrderOP', //车订单OP
name: 'CarDealerOrderOP',
component: resolve => require(['@/components/CarDealerOrder/CarDealerOrderListOP'], resolve),
meta: {
title: '车行订单'
},
},
{
path: '/singleProductModifyHotelOrder', //酒店预定订单变更
name: 'singleProductModifyHotelOrder',
......
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