Commit e029f441 authored by youjie's avatar youjie

所有类型订单列表组件、申请、审核合并

parent 8805626c
<template>
<div>
<el-table border ref="multipleTable" :data="OrderList" style="width: 100%"
:default-sort="{prop: 'null', order: 'null'}"
:sort-by="['Money','Income','PreferTipAmount','PlatformTax','Refund','CostMoney','OrderProfit','DueInMoney']">
<el-table-column width="200" prop="CreateTimeStr" label="订单Id" show-overflow-tooltip>
<template slot-scope="scope">
<div>
<p class="cursor-pointer c059FF6 fz18 row-c" @click="goDetails(scope.row)">
<el-tag style="margin-right: 5px;" size="mini">{{scope.row.OrderTypeName}}</el-tag>
<span>{{scope.row.OrderId}}</span>
</p>
<p>{{scope.row.CreateTimeStr}}</p>
</div>
</template>
</el-table-column>
<el-table-column width="200" prop="CreateTimeStr" label="团号" show-overflow-tooltip>
<template slot-scope="scope">
<div>
<p class=" fz14" :class="{'cursor-pointer c059FF6':scope.row.OrderType==2}"
@click="scope.row.OrderType==2?goTuanDetails(scope.row):''">{{scope.row.TCNUM}}</p>
<p>出发日期:{{scope.row.StartDate}}</p>
<p v-if="scope.row.OrderType==2&&scope.row.Status>=0">{{scope.row.Status==1?"未结团":(scope.row.Status==2?"已结团 ":(scope.row.Status==5?"待结团审核":""))}}{{scope.row.Status==2?scope.row.OutGroupAuditDate:""}}</p>
</div>
</template>
</el-table-column>
<el-table-column label="客人" show-overflow-tooltip>
<template slot-scope="scope">
<span :class="{'colorblue font-color-link':pagesTitle!='详情'}"
@click="pagesTitle!='详情'?openNameDetails(scope.row):''">
{{scope.row.GuestName}}
</span>
</template>
</el-table-column>
<el-table-column prop="SaleName" label="销售">
</el-table-column>
<el-table-column prop="LureEmpName" label="引流">
</el-table-column>
<el-table-column label="商品名称" show-overflow-tooltip>
<template slot-scope="scope">
<div style="max-width: 100px;overflow: hidden;text-overflow: ellipsis">{{scope.row.Name}}</div>
</template>
</el-table-column>
<el-table-column label="商品详情" show-overflow-tooltip>
<template slot-scope="scope">
<div style="max-width: 100px;overflow: hidden;text-overflow: ellipsis">{{scope.row.Description}}</div>
</template>
</el-table-column>
<el-table-column sortable prop="Money" label="总金额" min-width="100" show-overflow-tooltip>
<template slot-scope="scope">
{{scope.row.Money}}&ensp;({{scope.row.CurrencyName}})
</template>
</el-table-column>
<el-table-column sortable prop="Income" label="实收">
</el-table-column>
<el-table-column sortable prop="PreferTipAmount" label="人头小费" min-width="101">
</el-table-column>
<el-table-column sortable prop="PlatformTax" label="手续费" min-width="100">
</el-table-column>
<el-table-column sortable prop="Refund" label="退款">
</el-table-column>
<el-table-column sortable prop="CostMoney" label="成本" >
</el-table-column>
<el-table-column sortable prop="DueInMoney" label="待收">
<template slot-scope="scope">
<span :class="{'red':scope.row.DueInMoney>0}">{{scope.row.DueInMoney}}</span>
</template>
</el-table-column>
<el-table-column sortable prop="OrderProfit" label="预期利润" min-width="100">
<template slot-scope="scope">
<span :class="{'red':scope.row.OrderProfit>0}">{{scope.row.OrderProfit}}</span>
</template>
</el-table-column>
<el-table-column sortable prop="DiscountsMoney" label="优惠">
</el-table-column>
<el-table-column prop="StateName" label="状态" show-overflow-tooltip>
<template slot-scope="scope">
<span>{{scope.row.StateName}}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
show-overflow-tooltip>
<template slot-scope="scope">
<el-button v-if="scope.row.OrderChangePriceId==0" size="mini" type="primary" @click="ckChangePrice(scope.row)">申请改价</el-button>
<el-button v-else size="mini" type="primary" @click="ckChangePrice(scope.row,1)">修改改价</el-button>
</template>
</el-table-column>
</el-table>
<div class="combottomDiv OPremarkDiv" v-if="changePriceMsg.outerVisible">
<div class="combottomTitle">{{titlePrice}}</div>
<el-form label-width="100px">
<el-col :span="8">
<el-form-item label="应收总金额" prop="">
<el-input type="textarea" v-model="changePriceMsg.Money" rows="6"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="改价原因" prop="">
<el-input type="textarea" v-model="changePriceMsg.ApplyForReason" rows="6"></el-input>
</el-form-item>
</el-col>
</el-form>
<div slot="footer" class="dialog-footer">
<button class="hollowFixedBtn" @click="changePriceMsg.outerVisible = false">{{$t('pub.cancelBtn')}}</button>
<button class="normalBtn" type="primary" @click="setChangePrice">{{$t('pub.sureBtn')}}</button>
</div>
</div>
</div>
</template>
<script>
import offset from '../../public/offset.vue';
export default {
components: {
offset
},
props: ["OrderList", "pagesTitle"],
data() {
return {
titlePrice:'',
S_CheckBranchOrder: false,
S_CheckAllOrder: false,
queryObj: null,
cdState: false,
copyId: 0,
loading0: false,
loading1: false,
loading2: false,
loading3: false,
BillMakingMsg: {
// PeroidsId: null,
// Type: null,
// EmpIds:'',
OtherType: 61,
ReFinanceId: "",
ReFinanceId2: ""
},
userInfo: {},
changePriceMsg:{
ID:0,
OrderId:0,
OrderType:0,
PreferPrice:0,
Money:0,
ApplyForReason:'',
RefuseReason:'',
ApplyForState:1,
setPlatDialog:false,//是否显示弹出框
outerVisible:false
},
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'
}],
},
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,
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: '',
Title: ''
};
},
watch: {
pagesTitle(val, oldval) {
this.Title = val
},
OrderList: {
handler(val, oldVal) {
}
}
},
methods: {
setChangePrice() {
this.apipost('CarSingle_post_SetOrderChangePrice', this.changePriceMsg, res => {
if (res.data.resultCode == 1) {
this.changePriceMsg.setPlatDialog = true;
this.changePriceMsg.outerVisible = false;
this.$emit('success')
}
})
},
//点击修改订单总价
ckChangePrice(item,type) {
this.titlePrice = type?'修改改价':'申请改价'
this.changePriceMsg.ID = type?item.OrderChangePriceId:0
this.changePriceMsg.OrderId = item.OrderId;
this.changePriceMsg.OrderType = item.OrderType;
// this.changePriceMsg.PreferPrice = item.PreferPrice;
// this.changePriceMsg.Money = item.Money;
this.changePriceMsg.setPlatDialog = false;
this.changePriceMsg.outerVisible = true;
this.getGetOrderChangePriceDetai(item)
},
getGetOrderChangePriceDetai(item){
this.apipost('CarSingle_post_GetOrderChangePriceDetail', {
ID:item.OrderChangePriceId
}, res => {
if (res.data.resultCode == 1) {
let data = res.data.data;
this.changePriceMsg.Money = data.Money;
this.changePriceMsg.ApplyForState = data.ApplyForState;
this.changePriceMsg.ApplyForReason = data.ApplyForReason;
this.changePriceMsg.PreferPrice = data.ApplyForMoney;
this.changePriceMsg.RefuseReason = data.RefuseReason;
}
})
},
GetAdminCarOrderPageList(row, url, href, data) {
let msg = {
pageIndex: 1,
pageSize: 5,
OrderType: '',
OrderId: row.OrderId,
OrderNo: '',
SurName: '',
Name: '',
OrderStatus: 0,
StartTime: '',
EndTime: '',
OrderSTime: '',
OrderETime: '',
ProductName: '',
Mobile: '', //电话
IsSelectSale: 1,
EnterID: 0, //业务员
}
let name
this.apipost('CarSingle_post_GetAdminCarOrderPageList', msg, res => {
if (res.data.resultCode == 1) {
let pageData = res.data.data.pageData
let OrderType
if (pageData && pageData.length > 0) {
OrderType = pageData[0].OrderType
}
if (this.pagesTitle == '销售' || (!this.S_CheckBranchOrder && !this.S_CheckAllOrder)) {
name = 'CharterOrderList'
} else {
name = 'CharterOrderListOP'
}
this.$router.push({
name: name,
query: {
OrderId: row.OrderId,
OrderType: OrderType ? OrderType : 4,
blank: "y",
}
});
}
})
},
goTuanDetails(row) {
let name = ''
if (row.IsOneDayOrder == 1) {
name = 'groupTourOrderByTuanOne'
} else {
name = 'groupTourOrderByTuan'
}
this.$router.push({
name: name,
query: {
id: row.TCID,
tcmun: row.TCNUM,
blank: "y",
}
});
},
goDetails(row) {
let data = [{
path: "",
OrderId: row.OrderId,
Type: ''
}]
let href
let url = this.domainManager().crmRoutingUrl;
if (row.OrderType == 1) {
if (this.pagesTitle == '销售' || (!this.S_CheckBranchOrder && !this.S_CheckAllOrder)) {
data[0].path = 'myCustomerOrderAllType'
} else {
data[0].path = 'customerOrderAllType'
}
href = url + 'automaticLogin?token=' + this.getLocalStorage().token + '&data=' + JSON.stringify(data)
window.open(href);
} else {
let name = ''
if (row.OrderType == 6) {
if (this.pagesTitle == '销售' || (!this.S_CheckBranchOrder && !this.S_CheckAllOrder)) {
name = 'VisaProductEditOrder'
} else {
name = 'VisaProductEditOrderOP'
}
this.$router.push({
name: name,
});
} else if (row.OrderType == 2) { //跟团 一日游
if (this.pagesTitle == '销售' || (!this.S_CheckBranchOrder && !this.S_CheckAllOrder)) {
if (row.IsOneDayOrder == 1) {
name = 'groupTourOrderOne'
} else {
name = 'groupTourOrder'
}
} else {
name = 'enrollTotal'
}
} else if (row.OrderType == 3) { //酒店
if (this.pagesTitle == '销售' || (!this.S_CheckBranchOrder && !this.S_CheckAllOrder)) {
name = 'singleProductHotelOrder'
} else {
name = 'singleProductHotelOrderOP'
}
} else if (row.OrderType == 4) { //门票
if (this.pagesTitle == '销售' || (!this.S_CheckBranchOrder && !this.S_CheckAllOrder)) {
name = 'SingleticketOrderList'
} else {
name = 'SingleticketOrderListOP'
}
} else if (row.OrderType == 5) { //包车
if(row.CarType==''||row.CarType==null){
this.GetAdminCarOrderPageList(row,url,href,data)
}else{
if(this.pagesTitle=='销售'){
name = 'CharterOrderList'
}else{
name = 'CharterOrderListOP'
}
data[0].Type = row.CarType==null||!row.CarType?4:row.CarType
}
} else if (row.OrderType == 7) { //jalan酒店
this.$message.info('jalan酒店暂不支持查看')
// if(this.pagesTitle=='销售'){
// name = 'CharterOrderList'
// }else{
// name = 'CharterOrderListOP'
// }
}
if (name) {
this.$router.push({
name: name,
query: {
OrderId: row.OrderId,
OrderType: data[0].Type?data[0].Type:null,
blank: "y",
}
});
}
}
}
},
mounted() {
let userInfo = this.getLocalStorage();
let ActionMenuCode = userInfo.ActionMenuCode;
this.userInfo = this.getLocalStorage();
// 判断是否销售
if (ActionMenuCode.indexOf('S_CheckBranchOrder') != -1) {
this.S_CheckBranchOrder = true
}
if (ActionMenuCode.indexOf('S_CheckAllOrder') != -1) {
this.S_CheckAllOrder = true
}
}
};
</script>
<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;
}
</style>
<template>
<div>
<el-table
border
ref="multipleTable"
:data="OrderList"
style="width: 100%"
:default-sort="{ prop: 'null', order: 'null' }"
:sort-by="[
'Money',
'Income',
'PreferTipAmount',
'PlatformTax',
'Refund',
'CostMoney',
'OrderProfit',
'DueInMoney'
]"
>
<el-table-column
width="200"
prop="CreateTimeStr"
label="订单Id"
show-overflow-tooltip
>
<template slot-scope="scope">
<div>
<p
class="cursor-pointer c059FF6 fz18 row-c"
@click="goDetails(scope.row)"
>
<el-tag style="margin-right: 5px;" size="mini">{{
scope.row.OrderTypeName
}}</el-tag>
<span>{{ scope.row.OrderId }}</span>
</p>
<p>{{ scope.row.CreateTimeStr }}</p>
<p style="font-size: 13px;" v-if="scope.row.SaleRemarks">
<span>销售备注:</span>
<span style="color: red;">{{ scope.row.SaleRemarks? scope.row.SaleRemarks:'无' }}</span>
</p>
<p style="font-size: 13px;" v-if="scope.row.OP_Remarks">
<span>OP备注:</span>
<span style="color: red;">{{ scope.row.OP_Remarks? scope.row.OP_Remarks:'无' }}</span>
</p>
</div>
</template>
</el-table-column>
<el-table-column
width="200"
prop="CreateTimeStr"
label="团号"
show-overflow-tooltip
>
<template slot-scope="scope">
<div>
<p
class=" fz14"
:class="{ 'cursor-pointer c059FF6': scope.row.OrderType == 2 }"
@click="scope.row.OrderType == 2 ? goTuanDetails(scope.row) : ''"
>
{{ scope.row.TCNUM }}
</p>
<p>出发日期:{{ scope.row.StartDate }}</p>
<p v-if="scope.row.OrderType == 2 && scope.row.Status >= 0">
{{
scope.row.Status == 1
? "未结团"
: scope.row.Status == 2
? "已结团 "
: scope.row.Status == 5
? "待结团审核"
: ""
}}{{ scope.row.Status == 2 ? scope.row.OutGroupAuditDate : "" }}
</p>
</div>
</template>
</el-table-column>
<el-table-column label="客人" show-overflow-tooltip>
<template slot-scope="scope">
<span
:class="{ 'colorblue font-color-link': pagesTitle != '详情' }"
@click="pagesTitle != '详情' ? openNameDetails(scope.row) : ''"
>
{{ scope.row.GuestName }}
</span>
</template>
</el-table-column>
<el-table-column prop="SaleName" label="销售"> </el-table-column>
<el-table-column prop="LureEmpName" label="引流"> </el-table-column>
<el-table-column label="商品名称" show-overflow-tooltip>
<template slot-scope="scope">
<div
style="max-width: 100px;overflow: hidden;text-overflow: ellipsis"
>
{{ scope.row.Name }}
</div>
</template>
</el-table-column>
<el-table-column label="商品详情" show-overflow-tooltip>
<template slot-scope="scope">
<div
style="max-width: 100px;overflow: hidden;text-overflow: ellipsis"
>
{{ scope.row.Description }}
</div>
</template>
</el-table-column>
<el-table-column label="在途金额" show-overflow-tooltip>
<template slot-scope="scope">
{{ scope.row.PlatformMoney }}
</template>
</el-table-column>
<el-table-column
sortable
prop="Money"
label="总金额"
min-width="100"
show-overflow-tooltip
>
<template slot-scope="scope">
{{ scope.row.Money }}&ensp;({{ scope.row.CurrencyName }})
</template>
</el-table-column>
<el-table-column sortable prop="Income" label="实收"> </el-table-column>
<el-table-column
sortable
prop="PlatformTax"
label="手续费"
min-width="100"
>
</el-table-column>
<el-table-column sortable prop="Refund" label="退款"> </el-table-column>
<!-- <el-table-column sortable prop="CostMoney" label="成本" >
</el-table-column> -->
<el-table-column sortable prop="DueInMoney" label="待收">
<template slot-scope="scope">
<span :class="{ red: scope.row.DueInMoney > 0 }">{{
scope.row.DueInMoney
}}</span>
</template>
</el-table-column>
<el-table-column
sortable
prop="OrderProfit"
label="预期利润"
min-width="100"
>
<template slot-scope="scope">
<span :class="{ red: scope.row.OrderProfit > 0 }">{{
scope.row.OrderProfit
}}</span>
</template>
</el-table-column>
<el-table-column sortable prop="DiscountsMoney" label="优惠">
</el-table-column>
<el-table-column
prop="Money"
label="申请金额"
min-width="100"
show-overflow-tooltip
>
<template slot-scope="scope">
<span> {{ scope.row.ApplyForMoney }}</span>
</template>
</el-table-column>
<el-table-column
prop="ApplyForReason"
label="申请理由"
min-width="100"
show-overflow-tooltip
>
<template slot-scope="scope">
{{ scope.row.ApplyForReason }}
</template>
</el-table-column>
<el-table-column
prop="ApplyForState"
label="改价状态"
show-overflow-tooltip
>
<template slot-scope="scope">
<span
>{{
scope.row.ApplyForState == 1
? "待审核"
: scope.row.ApplyForState == 2
? "已通过"
: scope.row.ApplyForState == 3
? "已拒绝"
: ""
}}
</span>
</template>
</el-table-column>
<el-table-column label="操作" show-overflow-tooltip>
<template slot-scope="scope">
<el-button
v-if="scope.row.ApplyForState == 1"
size="mini"
type="primary"
@click="ckChangePrice(scope.row, 0)"
>审核</el-button
>
<p
v-else
class=" fz14"
:class="{ 'cursor-pointer c059FF6': scope.row.OrderType > 0 }"
@click="ckChangePrice(scope.row, 1)"
>
查看详情
</p>
</template>
</el-table-column>
</el-table>
<div
class="combottomDiv OPremarkDiv"
v-if="changePriceMsg.outerVisible"
style="height: 300px;"
>
<div class="combottomTitle" v-if="changePriceMsg.DialogType == 0">
应收总金额改价审核
</div>
<div class="combottomTitle" v-else>改价详情</div>
<div
slot="footer"
class="dialog-footer"
style="float: right;margin-right: 5%;position: relative; z-index: 1;"
>
<button
:class="[changePriceMsg.ApplyForState==2?'normalBtn':'hollowFixedBtn']"
type="primary"
@click="changePriceMsg.DialogType == 1 ?'':changePriceMsg.ApplyForState=2,setChangePrice()"
>
通过
</button>
<button
:class="[changePriceMsg.ApplyForState==3?'normalBtn':'hollowFixedBtn']"
type="primary"
@click="changePriceMsg.DialogType == 1 ?'':changePriceMsg.ApplyForState=3,setChangePrice()"
>
拒绝
</button>
<button
class="hollowFixedBtn"
@click="changePriceMsg.outerVisible = false"
>
{{ $t("pub.cancelBtn") }}
</button>
<!-- <button class="normalBtn" v-if="changePriceMsg.DialogType==0"
type="primary" @click="setChangePrice">保存</button> -->
</div>
<el-form label-width="120px">
<el-row>
<el-col :span="4">
<el-form-item label="订单应收总金额">
<span rows="6">
{{changePriceMsg.Money2}}
</span>
</el-form-item></el-col
>
<el-col :span="8">
<el-form-item label="申请理由">
<span rows="6">{{ changePriceMsg.ApplyForReason }} </span>
</el-form-item></el-col
>
</el-row>
<el-row>
<el-col :span="4">
<el-form-item label="申请总金额">
<span rows="6">{{ changePriceMsg.PreferPrice }}</span>
</el-form-item></el-col
>
<el-col :span="4">
<el-form-item label="应收总金额" prop="Money">
<el-input
type="number"
:readonly="changePriceMsg.DialogType == 1 ? true : false"
v-model="changePriceMsg.Money"
rows="6"
></el-input> </el-form-item
></el-col>
<el-col :span="4" v-if="false">
<el-form-item label="审核状态" prop="">
<el-radio-group
v-model="changePriceMsg.ApplyForState"
:readonly="changePriceMsg.DialogType == 1 ? true : false"
>
<el-radio :label="2">通过</el-radio>
<el-radio :label="3">拒绝</el-radio>
</el-radio-group>
</el-form-item></el-col
>
<el-col :span="8">
<el-form-item label="审核理由" prop="">
<el-input
:readonly="changePriceMsg.DialogType == 1 ? true : false"
type="textarea"
v-model="changePriceMsg.RefuseReason"
rows="6"
></el-input> </el-form-item
></el-col>
</el-row>
</el-form>
</div>
</div>
</template>
<script>
import offset from "../../public/offset.vue";
export default {
components: {
offset
},
props: ["OrderList", "pagesTitle"],
data() {
return {
S_CheckBranchOrder: false,
S_CheckAllOrder: false,
userInfo: {},
userId: 0,
list: [],
redBagList: [],
logList: [],
changePriceMsg: {
ID: 0,
OrderId: 0,
OrderType: 0,
PreferPrice: 0,
Money: 0,
ApplyForReason: "",
RefuseReason: "",
ApplyForState: 1,
setPlatDialog: false, //是否显示弹出框
outerVisible: false,
DialogType: 0 //审核弹出
},
msg: {
OrderId: "",
LossMoney: 0,
State: "", //状态 1确认 2已邮寄 3设置自提 4收损
SelffetchAddress: ""
},
orderMsg: {
LineId: "-1",
RB_Department_Id: null,
CreateBy: "-1",
OrderState: "-1",
CStartDate: "",
CEndDate: "",
QStartDate: "",
QEndDate: "",
pageIndex: 1,
pageSize: 10,
tempOrderId: "",
SellFormEmp: 0,
GroupType: "-1",
TCNUM: "",
BranchId: "-1",
IsOneDay: "-1",
IsCollectMoney: 0,
TradeWay: "",
PlatformAccount: ""
},
loading: false,
items: null,
Title: ""
};
},
watch: {
pagesTitle(val, oldval) {
this.Title = val;
},
OrderList: {
handler(val, oldVal) {}
}
},
methods: {
setChangePrice() {
this.apipost(
"CarSingle_post_SetOrderChangePrice",
this.changePriceMsg,
res => {
if (res.data.resultCode == 1) {
this.changePriceMsg.setPlatDialog = true;
this.changePriceMsg.outerVisible = false;
this.$message.info(res.data.message);
this.$emit('success')
} else {
this.$message.info(res.data.message);
}
}
);
},
//点击修改订单总价
ckChangePrice(item, type) {
if (item.OrderType == 1) {
} else if (item.OrderType == 2) {
this.orderMsg.tempOrderId = item.OrderId;
this.apipost(
"sellorder_post_GetOrderList",
this.orderMsg,
res => {
if (res.data.resultCode == 1) {
this.list = res.data.data.pageData;
} else {
this.$message.error(res.data.message);
}
},
err => {}
);
} else if (item.OrderType == 3) {
} else if (item.OrderType == 4) {
} else if (item.OrderType == 5) {
} else if (item.OrderType == 6) {
} else if (item.OrderType == 7) {
} else {
}
this.apipost(
"CarSingle_post_GetOrderChangePriceDetail",
{ ID: item.OrderChangePriceId },
res => {
if (res.data.resultCode == 1) {
let data = res.data.data;
this.changePriceMsg.Money2 = data.Money;
this.changePriceMsg.Money = data.Money;
this.changePriceMsg.ApplyForState = data.ApplyForState;
this.changePriceMsg.ApplyForReason = data.ApplyForReason;
this.changePriceMsg.PreferPrice = item.ApplyForMoney;
if (type == 0) {
this.changePriceMsg.PreferPrice = item.ApplyForMoney;
} else {
this.changePriceMsg.PreferPrice = data.ApplyForMoney;
}
this.changePriceMsg.RefuseReason = data.RefuseReason;
}
}
);
this.changePriceMsg.DialogType = type;
this.changePriceMsg.ID = item.OrderChangePriceId;
this.changePriceMsg.OrderId = item.OrderId;
this.changePriceMsg.OrderType = item.OrderType;
this.changePriceMsg.setPlatDialog = false;
this.changePriceMsg.outerVisible = true;
},
GetAdminCarOrderPageList(row, url, href, data) {
let msg = {
pageIndex: 1,
pageSize: 5,
OrderType: "",
OrderId: row.OrderId,
OrderNo: "",
SurName: "",
Name: "",
OrderStatus: 0,
StartTime: "",
EndTime: "",
OrderSTime: "",
OrderETime: "",
ProductName: "",
Mobile: "", //电话
IsSelectSale: 1,
EnterID: 0 //业务员
};
let name;
this.apipost("CarSingle_post_GetAdminCarOrderPageList", msg, res => {
if (res.data.resultCode == 1) {
let pageData = res.data.data.pageData;
let OrderType;
if (pageData && pageData.length > 0) {
OrderType = pageData[0].OrderType;
}
if (
this.pagesTitle == "销售" ||
(!this.S_CheckBranchOrder && !this.S_CheckAllOrder)
) {
name = "CharterOrderList";
} else {
name = "CharterOrderListOP";
}
this.$router.push({
name: name,
query: {
OrderId: row.OrderId,
OrderType: OrderType ? OrderType : 4,
blank: "y"
}
});
}
});
},
goTuanDetails(row) {
let name = "";
if (row.IsOneDayOrder == 1) {
name = "groupTourOrderByTuanOne";
} else {
name = "groupTourOrderByTuan";
}
this.$router.push({
name: name,
query: {
id: row.TCID,
tcmun: row.TCNUM,
blank: "y"
}
});
},
goDetails(row) {
let data = [
{
path: "",
OrderId: row.OrderId,
Type: ""
}
];
let href;
let url = this.domainManager().crmRoutingUrl;
if (row.OrderType == 1) {
if (
this.pagesTitle == "销售" ||
(!this.S_CheckBranchOrder && !this.S_CheckAllOrder)
) {
data[0].path = "myCustomerOrderAllType";
} else {
data[0].path = "customerOrderAllType";
}
href =
url +
"automaticLogin?token=" +
this.getLocalStorage().token +
"&data=" +
JSON.stringify(data);
window.open(href);
} else {
let name = "";
if (row.OrderType == 6) {
if (
this.pagesTitle == "销售" ||
(!this.S_CheckBranchOrder && !this.S_CheckAllOrder)
) {
name = "VisaProductEditOrder";
} else {
name = "VisaProductEditOrderOP";
}
this.$router.push({
name: name
});
} else if (row.OrderType == 2) {
//跟团 一日游
if (
this.pagesTitle == "销售" ||
(!this.S_CheckBranchOrder && !this.S_CheckAllOrder)
) {
if (row.IsOneDayOrder == 1) {
name = "groupTourOrderOne";
} else {
name = "groupTourOrder";
}
} else {
name = "enrollTotal";
}
} else if (row.OrderType == 3) {
//酒店
if (
this.pagesTitle == "销售" ||
(!this.S_CheckBranchOrder && !this.S_CheckAllOrder)
) {
name = "singleProductHotelOrder";
} else {
name = "singleProductHotelOrderOP";
}
} else if (row.OrderType == 4) {
//门票
if (
this.pagesTitle == "销售" ||
(!this.S_CheckBranchOrder && !this.S_CheckAllOrder)
) {
name = "SingleticketOrderList";
} else {
name = "SingleticketOrderListOP";
}
} else if (row.OrderType == 5) {
//包车
if (row.CarType == "" || row.CarType == null) {
this.GetAdminCarOrderPageList(row, url, href, data);
} else {
if (this.pagesTitle == "销售") {
name = "CharterOrderList";
} else {
name = "CharterOrderListOP";
}
data[0].Type =
row.CarType == null || !row.CarType ? 4 : row.CarType;
}
} else if (row.OrderType == 7) {
//jalan酒店
this.$message.info("jalan酒店暂不支持查看");
// if(this.pagesTitle=='销售'){
// name = 'CharterOrderList'
// }else{
// name = 'CharterOrderListOP'
// }
}
if (name) {
this.$router.push({
name: name,
query: {
OrderId: row.OrderId,
OrderType: data[0].Type ? data[0].Type : null,
blank: "y"
}
});
}
}
},
getRedBag(item) {
let msg = {
CustomerId: item.customerId,
pageIndex: 1,
pageSize: 4
};
if (item.customerId) {
this.apipost(
"customer_post_GetC_BigRedEnvelopeInfoList",
msg,
res => {
this.happy = true;
if (res.data.resultCode == 1) {
this.redBagList = res.data.data.pageData;
} else {
}
},
err => {}
);
} else {
this.redBagList = [];
}
},
getLogDetail(obj) {
this.apipost(
"sellorder_post_GetOrderLogList",
{
ID: obj.orderId
},
res => {
if (res.data.resultCode == 1) {
this.logList = res.data.data;
this.logList.forEach(item => {
item["x"] = this.$commonUtils.formatMsgTime(item.updateDate);
});
}
},
err => {}
);
}
},
mounted() {
let userInfo = this.getLocalStorage();
this.userId = this.getLocalStorage().EmployeeId;
let ActionMenuCode = userInfo.ActionMenuCode;
this.userInfo = this.getLocalStorage();
// 判断是否销售
if (ActionMenuCode.indexOf("S_CheckBranchOrder") != -1) {
this.S_CheckBranchOrder = true;
}
if (ActionMenuCode.indexOf("S_CheckAllOrder") != -1) {
this.S_CheckAllOrder = true;
}
}
};
</script>
<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;
}
.groupTourOrderSearchTable {
width: 100%;
min-width: 1500px;
font-size: 14px;
color: #333;
border-bottom: 1px solid #cccccc;
border-right: 1px solid #cccccc;
border-collapse: collapse;
}
.groupTourOrderSearchTable tbody tr:last-child {
border-bottom: 2px solid #333;
}
.groupTourOrderSearchTable tr:first-child td:first-child {
border-bottom: 2px solid #333;
}
.groupTourOrderSearchTable tr th {
background: #e6e6e6;
height: 30px;
font-size: 12px;
text-align: center;
border-top: 1px solid #cccccc;
border-left: 1px solid #cccccc;
}
.groupTourOrderSearchTable tr {
background: #fff;
text-align: left;
}
.groupTourOrderSearchTable tr td {
height: 60px;
padding: 10px;
border-top: 1px solid #cccccc;
border-left: 1px solid #cccccc;
}
.groupTourOrderSearchTable tr td p {
line-height: 20px;
}
.groupTourOrderSearchTable .dowloadSpan:hover {
text-decoration: underline;
cursor: pointer;
}
.groupTourOrderSearchTable span.personNo {
text-decoration: underline;
cursor: pointer;
}
.groupTourOrderSearchTable span.personNo:hover {
font-weight: bold;
color: #e95252;
}
.personNolayer p {
height: 28px;
line-height: 28px;
padding-left: 15px;
}
.personNolayer p > span {
font-size: 12px;
color: #333;
margin-right: 15px;
}
.personNolayer table {
padding: 10px 0 0 20px;
width: 100%;
background-color: #ededed;
border-collapse: collapse;
border: 1px solid #d2d2d2;
font-size: 12px;
}
.personNolayer table th {
background-color: #ededed;
height: 34px;
text-indent: 15px;
}
.personNolayer table td {
background-color: #ffffff;
padding: 9px 15px;
color: #333333;
border: 1px solid #d2d2d2;
}
.personNolayer table ._color_666 {
color: #666666;
}
.personNolayer table tr._color_666 th {
padding: 9px 15px;
}
.groupSuperSearchLayer > p {
padding: 20px 0;
font-size: 14px;
color: #333;
font-weight: bold;
}
.groupSuperSearchLayerTable {
font-size: 12px;
color: #666;
}
.groupSuperSearchLayerTable tr {
height: 50px;
}
.groupSuperSearchLayerTable td {
padding-right: 15px;
}
.groupTourOrderIcon button {
width: 30px;
height: 30px;
border-radius: 4px;
}
.groupTourOrderIcon .el-button--primary {
padding: 5px;
margin: 0;
font-size: 14px !important;
}
.groupTourOrderIcon .el-button + .el-button {
margin-left: 0 !important;
}
.productQuerybottomLayer {
overflow: auto;
position: fixed;
z-index: 50;
bottom: 0;
left: 0;
border-top: 3px solid #38425d;
background-color: #ffffff;
padding: 10px 10px 0;
width: 100%;
}
.productQuerybottomLayer .el-form-item__label {
font-size: 12px !important;
}
.productQuerybottomLayer > p {
border-left: 3px solid #e95252;
text-indent: 15px;
height: 16px;
font-family: "PingFangSc-Fine";
font-size: 16px;
margin-bottom: 20px;
line-height: 14px;
color: #000;
}
.productQuerybottomLayer .el-input-number {
width: auto !important;
}
.groupTourOrder_count_green {
color: #1bc594;
}
.groupTourOrder_count_blue {
color: #4d7afd;
}
.groupTourOrder_count_yellow {
color: #ff9c00;
}
.groupTourOrder_count_gray {
color: #999999;
}
.groupTourOrder_count {
margin: 0 0 20px 0;
width: 100%;
height: auto;
}
.groupTourOrder_count_col {
height: 80px;
}
.groupTourOrder_count_item {
font-weight: 400;
padding: 10px;
height: 100%;
border: 1px solid #e6e6e6;
background-color: #ffffff;
color: #333333;
}
.groupTourOrder_count_item > div > i {
font-size: 12px;
vertical-align: bottom;
}
.groupTourOrder_count_item > div > span:nth-child(2) {
font-size: 14px;
vertical-align: bottom;
}
.groupTourOrder_count_item > div > span:nth-child(3) {
font-weight: bold;
font-size: 16px;
vertical-align: bottom;
}
.groupTourOrder_count_item > p {
font-size: 12px;
line-height: 18px;
}
.groupTourOrder_count_item > p > span {
margin: 0 5px 0 0;
white-space: nowrap;
}
.groupTourOrder_more {
margin: 0 -12px;
}
.groupTourOrder_more > div {
width: 100%;
height: 30px;
line-height: 30px;
text-align: center;
font-size: 12px;
color: #333333;
background-color: #ffffff;
cursor: pointer;
}
.groupTourOrder_more > div:hover {
color: #297bef;
background-color: #dcebff;
}
.groupTourOrder_remarks {
font-size: 0px;
}
.groupTourOrder_remarks > div {
}
.groupTourOrder_remarks > div > div:nth-child(1) {
float: left;
display: flex;
align-items: flex-start;
}
.groupTourOrder_remarks > div > div:nth-child(1) > span {
line-height: 20px;
font-size: 12px;
color: #e95252;
white-space: nowrap;
}
.groupTourOrder_remarks > div > div:nth-child(1) > p {
line-height: 20px;
font-size: 12px;
color: #e95252;
}
.groupTourOrder_remarks > div > div:nth-child(2) {
float: right;
text-align: right;
font-size: 12px;
color: #e95252;
}
.groupTourOrder_remarks > div > div:nth-child(2) > i {
font-size: 10px;
cursor: pointer;
}
.groupTourOrder_remarks > div::after {
display: block;
clear: both;
content: "";
visibility: hidden;
height: 0;
}
.groupTourOrder_remarks_btn {
padding: 0px;
width: 12px;
height: 12px;
border: none;
background-color: transparent;
}
.groupTourOrder_remarks_btn > i {
color: #e95252;
font-size: 12px;
}
.groupTourOrder_remarks_popover > div {
display: inline-block;
font-size: 14px;
color: #000000;
}
.groupTourOrder_remarks_popover > div::before {
content: "";
display: inline-block;
margin: 0 5px 0 0;
width: 2px;
height: 12px;
background-color: #e95252;
}
.groupTourOrder_remarks_popover > span {
display: block;
margin: 0 0 0 0;
width: 100%;
text-align: center;
font-size: 12px;
color: #000000;
}
.groupTourOrder_remarks_popover > p {
margin: 5px 0 0 0;
padding: 3px;
width: 100%;
max-height: 300px;
overflow-y: auto;
font-size: 12px;
color: #000000;
}
.groupTourOrder_remarks_popover > p:nth-child(even) {
background-color: #e6e6e6;
}
.groupTourOrder_remarks_popover > p > span:nth-child(1) {
float: left;
}
.groupTourOrder_remarks_popover > p > span:nth-child(2) {
margin: 0 10px 0 0;
float: right;
}
.groupTourOrder_remarks_popover > p::after {
display: block;
clear: both;
content: "";
visibility: hidden;
height: 0;
}
.groupTourOrder_tickets > div {
display: table;
}
.groupTourOrder_tickets > div > div {
display: table-cell;
cursor: pointer;
}
.groupTourOrder_tickets > div > div:nth-child(1) {
width: 80px;
}
.groupTourOrder_tickets > div > div > span {
display: inline-block;
margin: 0 10px 0 0;
}
.groupTourOrder_tickets_red {
color: #ff0000;
text-decoration: underline;
}
.groupTourOrder_tickets_blue {
color: #0000ff;
text-decoration: underline;
}
.groupTourOrder_tickets_green {
color: #008000;
text-decoration: underline;
}
.groupTourOrder_tickets_black {
color: #000000;
text-decoration: underline;
}
.groupTourOrderByTuan_ico {
margin: 0 10px 0 0;
}
.groupTourOrderByTuan_ico > i {
display: inline-block;
margin: 0 2px 0 0;
width: 8px;
height: 8px;
border-radius: 2px;
vertical-align: middle;
}
.groupTourOrderByTuan_ico > span {
vertical-align: middle;
}
/* 出团通知书打印选择 */
.travelControlTripLayer {
position: fixed;
z-index: 99;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.3);
left: 0;
top: 0;
}
.travelControlTripLayerCont {
position: absolute;
left: 50%;
margin-left: -300px;
background: #fff;
top: 50%;
margin-top: -180px;
width: 600px;
}
.travelControlTripLayerCont > div {
padding: 0 30px;
}
.travelControlTripLayerCont > div label {
cursor: pointer;
vertical-align: middle;
}
.travelControlTripLayerCont > div label input {
vertical-align: middle;
}
.travelControlTripBtn {
color: #fff;
width: 90px;
height: 30px;
background: #e95252;
border: 1px solid #e95252;
cursor: pointer;
border-radius: 15px;
margin-left: 10px;
}
.travelControlTripLayer input[type="checkbox"] + label::before {
content: "\A0";
display: inline-block;
width: 15px;
height: 15px;
margin-right: 5px;
border-radius: 4px;
background-color: white;
text-indent: 0.15em;
line-height: 15px;
color: white;
border: 1px solid #e95252;
}
.travelControlTripLayer input[type="checkbox"]:checked + label::before {
content: "\2713";
background-color: #e95252;
}
.travelControlTripLayer input[type="checkbox"] {
position: absolute;
clip: rect(0, 0, 0, 0);
}
.travelControlTripLayer input[type="checkbox"]:focus + label::before {
box-shadow: none;
}
.travelControlTripLayer input[type="checkbox"]:disabled + label::before {
background-color: gray;
box-shadow: none;
color: #555;
}
.groupTourOrder_transfer {
position: fixed;
z-index: 50;
bottom: 0;
left: 50px;
padding: 10px 10px;
width: 100%;
min-width: 1366px;
min-height: 200px;
border-top: 3px solid #38425d;
background-color: #ffffff;
overflow-y: auto;
}
.groupTourOrder_transfer > .transfer_header {
position: relative;
width: 100%;
height: 30px;
}
.groupTourOrder_transfer > .transfer_header > div:nth-child(1) {
display: inline-block;
padding: 0 10px;
width: 200px;
height: 30px;
line-height: 30px;
border-left: 3px solid #e95252;
text-indent: 10px;
font-size: 16px;
color: #000000;
}
.groupTourOrder_transfer > .transfer_header > div:nth-child(2) {
position: absolute;
top: 0px;
right: 80px;
height: 30px;
}
.groupTourOrder_transfer
> .transfer_header
> div:nth-child(2)
> div:nth-child(1) {
display: inline-block;
padding: 0 15px;
height: 30px;
line-height: 28px;
font-size: 14px;
color: #e95252;
border: 1px solid #e95252;
background: #fff;
border-radius: 15px;
cursor: pointer;
vertical-align: top;
}
.groupTourOrder_transfer
> .transfer_header
> div:nth-child(2)
> div:nth-child(2) {
display: inline-block;
margin: 0 0 0 10px;
padding: 0 15px;
height: 30px;
line-height: 28px;
font-size: 14px;
color: #fff;
border: 1px solid #e95252;
background: #e95252;
border-radius: 15px;
cursor: pointer;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_info {
padding: 20px 0;
width: 100%;
font-size: 0px;
border-bottom: 1px dashed #999999;
}
.groupTourOrder_transfer > .transfer_info > div {
display: inline-block;
padding: 0 10px;
width: 25%;
height: 30px;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_info > div > em {
display: inline-block;
padding: 0 10px;
width: 35%;
height: 30px;
line-height: 30px;
text-align: right;
font-size: 16px;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_info > div > span {
display: inline-block;
padding: 0 10px;
width: 65%;
height: 30px;
line-height: 30px;
text-align: left;
font-size: 16px;
border-radius: 3px;
background-color: #e5e5e5;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_input {
padding: 20px 0;
width: 100%;
font-size: 0px;
}
.groupTourOrder_transfer > .transfer_input > div {
display: inline-block;
padding: 0 10px;
width: 25%;
height: 30px;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_input > div > em {
display: inline-block;
padding: 0 10px;
width: 35%;
height: 30px;
line-height: 30px;
text-align: right;
font-size: 16px;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_input > div > .el-input {
display: inline-block;
width: 65%;
height: 30px;
line-height: 30px;
text-align: left;
font-size: 14px;
vertical-align: top;
}
.Ysze {
position: relative;
}
.Ysze .changeYsze {
position: absolute;
left: 110%;
z-index: 10000;
top: 0;
width: 700px;
background: #fff;
box-shadow: 0 0 8px #888;
padding: 10px;
box-sizing: border-box;
}
.Ysze .Ysze-button {
position: absolute;
left: 98%;
top: 3px;
border-radius: 4px;
cursor: pointer;
}
.Ysze .changeYsze .el-form-item {
display: inline-block;
width: 30%;
margin-bottom: 5px;
}
.Ysze .changeYsze .el-icon-close {
position: absolute;
right: 6px;
top: 6px;
color: #f78989;
font-size: 20px;
cursor: pointer;
}
</style>
<style scoped>
.groupTourOrder_count {
display: flex;
flex-wrap: wrap;
}
.groupTourOrder_count>div {
margin-right: 20px;
}
.groupTourOrder_count>div:last-child {
margin-right: 0;
}
.groupTourOrder_count_item {
max-width: 500px;
}
.groupTourOrder_count_item>p>span {
margin: 0;
}
.color_red_order {
color: red;
}
.HT_total {
display: flex;
flex-direction: column;
margin: 5px 0;
}
.HT_total p {
width: 100%;
display: block;
}
.HT_total p>span {
float: left;
display: inline-block;
/* width: 25%; */
margin-right: 20px;
}
.HT_total p>span:last-child {
margin-right: 0;
}
.TC_leftSearch>div {
padding: 5px 0;
}
.groupTourOrderByTuan_ico {
margin-left: 5px;
}
.groupTourOrderByTuan_ico>i {
display: inline-block;
margin: 0 5px 0 0;
width: 8px;
height: 8px;
border-radius: 2px;
vertical-align: middle;
}
.HotelWorkList .has-gutter tr th,
.el-table th.is-leaf {
background-color: #EAEAEA !important;
}
.HotelWorkList .HW_hotelDialog {
width: 900px;
}
.HotelWorkList .Hw_tableOne {
width: 100%;
height: 40px;
background-color: #EAEAEA;
}
.HotelWorkList .Hw_tableOne th {
text-align: center;
}
.HotelWorkList .HotelWorkInput .el-input {
width: 223px;
}
.HotelWorkList .HworkInput .el-input {
width: 210px;
}
/deep/.query-box li span>em {
min-width: 60px;
}
</style>
<template>
<div class="HotelWorkList">
<div class="query-box HotelWorkInput" style="border-bottom: none;">
<ul>
<li>
<span>
<em>报名时间</em>
<el-date-picker style="height: 34px;" value-format="yyyy-MM-dd" v-model="DatelistBM" type="daterange"
:range-separator="$t('OrderList.zhi')" :start-placeholder="$t('OrderList.star')"
:end-placeholder="$t('OrderList.end')" @change="getDatesBM">
</el-date-picker>
</span>
</li>
<li>
<span>
<em>订单类型</em>
<el-select v-model="msg.OrderType" class="w200 HworkInput">
<el-option v-for="item in OrderTypeList" :key="item.Id" :label="item.Name" :value="item.Id"></el-option>
</el-select>
</span>
</li>
<li>
<input type="button" class="normalBtn" :value="$t('pub.searchBtn')"
@click="msg.pageIndex=1,currentPage=1,GetList(),showWarningSearch=false" />
</li>
<li style="line-height: 30px; padding-left: 30px;">
</li>
</ul>
</div>
<!-- 统计版块 -->
<OrderList :pagesTitle="Title" :OrderList="OrderList" v-loading="loading" @success="msg.pageIndex=1,GetList()">
</OrderList>
<div v-if="OrderList&&OrderList.length==0" style="text-align: center;padding: 100px;">暂无数据</div>
<el-pagination v-if="OrderList&&OrderList.length>0" background @current-change="handleCurrentChange"
:current-page.sync="currentPage" layout="total,prev, pager, next, jumper" :page-size=msg.pageSize :total=total>
</el-pagination>
</div>
</template>
<script>
import OrderList from './OrderListChangePrice.vue';
export default {
props: ['pagesTitle', 'dataObj'],
components: {
OrderList
},
data() {
return {
CommissionTypeList: [{
Name: '不限',
Id: '-1'
},
{
Name: '出境提成',
Id: '1'
},
{
Name: '国内提成',
Id: '2'
},
],
showWarningSearch: false,
TotalMsg: null,
MultipleChoiceList: [ //多选项目
{
Name: '机票',
Id: '1'
}, {
Name: '签证',
Id: '2'
}, {
Name: '地接',
Id: '3'
}, {
Name: '套餐',
Id: '4'
}, {
Name: '其他',
Id: '5'
}
],
userInfo: {},
HotelList: [],
loading: false,
isShow: false,
outerVisible: false,
//订单列表
OrderList: [],
//默认高度
tableHeight: 0,
msg: {
pageIndex: 1,
pageSize: 15,
OrderId: "", //订单id
GuestId: 0, //客人id
EnterId: 0, //业务员id
OrderState: '1', //订单状态
Q_IsCollect: "2", //收款状态
StartTime: "", //报名开始日期
EndTime: "", //报名结束日期
FinishSTime: "", //完结开始时间
FinishETime: "", //完结结束时间
DepartSTime: "", //出发开始
DepartETime: "", //出发结束
TCNUM: "", //团号
ProductName: "", //商品名称
CustomerName: "", //客户名称
LureEmpId: 0, //引流人员
LineId: 0, //线路
TravelType: 0, //跟团类型 1跟团 2当地游
OrderType: "0", //订单类型
IsSelectCRM: 0, //1来源crm
IsMyOrder: 1, //1我的订单
CommissionType: '-1', //提成类型 1出境 2国内
},
total: 0,
currentPage: 1,
OrderTypeList: [],
orderType: [{
Name: this.$t('OrderList.orderType.tour'),
ID: '1'
},
{
Name: this.$t('OrderList.orderType.guest'),
ID: '2'
},
],
Datelist: '',
DatelistUse: '',
DatelistBM: [],
Title: '',
EmployeeList: [],
employeeMsg: { // 员工
GroupId: '',
BranchId: -1,
DepartmentId: 0,
PostId: 0,
IsLeave: 0,
},
OrderStatusList: [{
Name: "不限",
Id: "0"
},
{
Name: "正常",
Id: "1"
},
{
Name: "取消",
Id: "2"
},
],
QIsCollectList: [{
Name: "不限",
Id: "0"
},
{
Name: "已收齐",
Id: "1"
},
{
Name: "未收齐",
Id: "2"
},
],
ticketingStatusList: [],
VisaList: [{
Name: "不限",
Id: "0"
},
{
Name: "未出签",
Id: "1"
},
{
Name: "已出签",
Id: "2"
},
],
LineList: [],
SummaryList: [],
};
},
watch: {
pagesTitle(val, oldval) {
this.Title = val
},
dataObj: {
handler(val, oldVal) {
this.msg.OrderType = val.tab
this.msg.OrderId = val.OrderId
this.GetList()
},
deep: true,
}
},
methods: {
// 获取出票状态枚举
GetTicketStatusEnumList() {
this.crmapipost("/api/Order/GetTicketStatusEnumList", {}, (res) => {
if (res.data.resultCode == 1) {
this.ticketingStatusList = res.data.data;
} else {
this.$message.error(res.data.message);
}
});
},
// 获取订单状态枚举
GetOrderStatusEnumList() {
this.crmapipost("/api/Order/GetOrderStatusEnumList", {}, (res) => {
if (res.data.resultCode == 1) {
this.OrderStatusList = res.data.data;
} else {
this.$message.error(res.data.message);
}
});
},
GetOrderTypeEnumList() {
this.apipost("CarSingle_post_GetOrderTypeEnumList", {}, (res) => {
if (res.data.resultCode == 1) {
this.OrderTypeList = res.data.data;
let data = {
Name: "不限",
Id: "0",
};
this.OrderTypeList.unshift(data);
} else {
this.$message.error(res.data.message);
}
});
},
getEmployee() { //员工
this.apipost('admin_get_EmployeeGetList', this.employeeMsg, res => {
if (res.data.resultCode == 1) {
this.EmployeeList = res.data.data;
}
}, err => {})
},
getDatesBM() {
if (this.DatelistBM) {
this.msg.DepartSTime = this.DatelistBM[0]
this.msg.DepartETime = this.DatelistBM[1]
}
if (!this.DatelistBM) {
this.msg.DepartSTime = ''
this.msg.DepartETime = ''
}
},
getDatesUse() {
if (this.DatelistUse) {
this.msg.DepartSTime = this.DatelistUse[0]
this.msg.DepartETime = this.DatelistUse[1]
}
if (!this.DatelistUse) {
this.msg.DepartSTime = ''
this.msg.DepartETime = ''
}
},
getDates() {
if (this.Datelist) {
this.msg.FinishSTime = this.Datelist[0]
this.msg.FinishETime = this.Datelist[1]
}
if (!this.Datelist) {
this.msg.FinishSTime = ''
this.msg.FinishETime = ''
}
},
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('-')
},
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 = "CarSingle_post_GetChangePriceOrderPageList"
this.apipost(url, this.msg,
res => {
if (res.data.resultCode == 1) {
this.getSummaryData()
let data = res.data.data.pageData
this.OrderList = data;
this.total = res.data.data.count;
} else {
this.Error(res.data.message);
}
this.loading = false
},
err => {
this.loading = false
}
);
},
getSummaryData() {
this.apipost(
"CarSingle_post_GetGuestOrderStatistics",
this.msg,
(res) => {
if (res.data.resultCode == 1) {
let data = res.data.data;
this.SummaryList = data
} else {
this.$message.error(res.data.message);
}
}
);
},
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() {
let userInfo = this.getLocalStorage();
this.employeeMsg.GroupId = userInfo.RB_Group_id; //集团ID
this.msg.EnterId = this.$route.query.EnterId ? Number(this.$route.query.EnterId) : 0 //userInfo.EmployeeId;
this.msg.LureEmpId = this.$route.query.LureEmpId ? Number(this.$route.query.LureEmpId) : 0
this.msg.DepartSTime = this.getBeforeDate(200, new Date())
this.msg.DepartETime = this.getBeforeDate(0, new Date())
this.DatelistBM = [new Date(this.msg.DepartSTime), new Date()]
if (this.$route.query.OrderId) {
this.msg.OrderId = this.$route.query.OrderId
this.msg.DepartSTime = ''
this.msg.DepartETime = ''
this.DatelistBM = []
this.msg.OrderState = '0'
}
},
mounted() {
this.Title = this.pagesTitle
if (this.Title != '销售') {
this.getEmployee()
}
this.GetOrderTypeEnumList()
this.Datelist = this.getyMDOne()
this.userInfo = this.getLocalStorage();
this.GetList();
//自适应高度调节
this.com_onresize();
window.onresize = () => {
this.com_onresize();
}
},
};
</script>
<style scoped>
.groupTourOrder_count{
display: flex;
flex-wrap: wrap;
}
.groupTourOrder_count>div{
margin-right: 20px;
}
.groupTourOrder_count>div:last-child{
margin-right: 0;
}
.groupTourOrder_count_item{
max-width: 500px;
}
.groupTourOrder_count_item>p>span{
margin: 0;
}
.color_red_order{
color: red;
}
.HT_total{
display: flex;
flex-direction: column;
margin: 5px 0;
}
.HT_total p{
width: 100%;
display: block;
}
.HT_total p>span{
float: left;
display: inline-block;
/* width: 25%; */
margin-right: 20px;
}
.HT_total p>span:last-child{
margin-right: 0;
}
.TC_leftSearch>div{
padding: 5px 0;
}
.groupTourOrderByTuan_ico{
margin-left: 5px;
}
.groupTourOrderByTuan_ico>i{
display: inline-block;
margin: 0 5px 0 0;
width: 8px;
height: 8px;
border-radius: 2px;
vertical-align: middle;
}
.HotelWorkList .has-gutter tr th,
.el-table th.is-leaf {
background-color: #EAEAEA !important;
}
.HotelWorkList .HW_hotelDialog {
width: 900px;
}
.HotelWorkList .Hw_tableOne {
width: 100%;
height: 40px;
background-color: #EAEAEA;
}
.HotelWorkList .Hw_tableOne th {
text-align: center;
}
.HotelWorkList .HotelWorkInput .el-input {
width: 223px;
}
.HotelWorkList .HworkInput .el-input {
width: 210px;
}
/deep/.query-box li span>em{
min-width: 60px;
}
</style>
<template>
<div class="HotelWorkList">
<div class="query-box HotelWorkInput" style="border-bottom: none;">
<ul>
<li>
<span>
<em>审核状态</em>
<el-select v-model='msg.OrderState' class="w200">
<!-- <el-option :value="0" label="不限"></el-option> -->
<el-option v-for='item in OrderStatusList'
:label='item.Name'
:value='item.Id'
:key='item.Id'>
</el-option>
</el-select>
</span>
</li>
<li >
<input type="button" class="normalBtn" :value="$t('pub.searchBtn')"
@click="msg.pageIndex=1,currentPage=1,GetList();showWarningSearch=false" />
</li>
<li style="line-height: 30px; padding-left: 30px;">
</li>
</ul>
</div>
<!-- 统计版块 -->
<OrderList :pagesTitle="Title" :OrderList="OrderList" v-loading="loading" @success="msg.pageIndex=1,GetList()"> </OrderList>
<div v-if="OrderList&&OrderList.length==0" style="text-align: center;padding: 100px;">暂无数据</div>
<el-pagination v-if="OrderList&&OrderList.length>0" background @current-change="handleCurrentChange" :current-page.sync="currentPage" layout="total,prev, pager, next, jumper" :page-size=msg.pageSize :total=total>
</el-pagination>
</div>
</template>
<script>
import OrderList from './OrderListExaminePrice.vue';
export default {
props:['pagesTitle','dataObj'],
components: { OrderList },
data() {
return {
CommissionTypeList:[
{Name: '不限',Id:'-1'},
{Name: '出境提成',Id:'1'},
{Name: '国内提成',Id:'2'},
],
employeeMsg:{ // 员工
GroupId:'',
BranchId:-1,
DepartmentId:0,
PostId:0,
IsLeave:0,
},
showWarningSearch: false,
TotalMsg: null,
MultipleChoiceList: [ //多选项目
{
Name: '机票',
Id: '1'
}, {
Name: '签证',
Id: '2'
}, {
Name: '地接',
Id: '3'
}, {
Name: '套餐',
Id: '4'
}, {
Name: '其他',
Id: '5'
}
],
userInfo: {},
HotelList: [],
loading: false,
isShow: false,
outerVisible: false,
//订单列表
OrderList: [],
//默认高度
tableHeight: 0,
msg:{
pageIndex: 1,
pageSize: 15,
OrderId: "", //订单id
OrderState: '0', //订单状态
OrderType: "0",//订单类型
},
total: 0,
currentPage: 1,
OrderTypeList:[],
orderType:[
{Name: this.$t('OrderList.orderType.tour'),ID:'1'},
{Name: this.$t('OrderList.orderType.guest'),ID:'2'},
],
Title:'',
OrderStatusList: [
{ Name: "不限", Id: "0" },
{ Name: "待审核", Id: "1" },
{ Name: "已通过", Id: "2" },
{ Name: "已取消", Id: "3" },
]
};
},
watch: {
pagesTitle(val,oldval){
this.Title = val
},
dataObj:{
handler(val, oldVal) {
this.msg.OrderType = val.tab
this.msg.OrderId = val.OrderId
this.GetList()
},
deep: true,
}
},
methods: {
//获取酒店订单列表
GetList() {
this.loading = true
let url = "CarSingle_post_GetExaminePriceOrderPageList"
this.apipost(url, this.msg,
res => {
if (res.data.resultCode == 1) {
let data = res.data.data.pageData
this.OrderList = data;
this.total = res.data.data.count;
// this.TotalMsg = res.data.data.StatModel
}else {
this.Error(res.data.message);
}
this.loading = false
},
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() {
let userInfo=this.getLocalStorage();
this.employeeMsg.GroupId = userInfo.RB_Group_id; //集团ID
if(this.$route.query.OrderId){
this.msg.OrderId=this.$route.query.OrderId
this.msg.OrderState = '0'
}
},
mounted() {
this.userInfo = this.getLocalStorage();
this.GetList();
//自适应高度调节
this.com_onresize();
window.onresize = () => {
this.com_onresize();
}
},
};
</script>
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