Commit 59d305cf authored by 罗超's avatar 罗超

提交结算明细页面

parent d06f98fb
...@@ -4,147 +4,149 @@ ...@@ -4,147 +4,149 @@
</div> </div>
</template> </template>
<script> <script>
export default { export default {
data() { data() {
return {}; return {};
}, },
ceated() { ceated() {},
mounted() {
}, let getData;
mounted() { if (this.$route.query) {
let getData getData = JSON.stringify(this.$route.query);
if (this.$route.query) { getData = JSON.parse(getData);
getData = JSON.stringify(this.$route.query) if (getData.erpOrderObj) {
getData = JSON.parse(getData) getData = JSON.parse(getData.erpOrderObj);
if (getData.erpOrderObj) { }
getData = JSON.parse(getData.erpOrderObj) }
} if (!this.getLocalStorage() && !getData) {
} this.$router.push({
if (!this.getLocalStorage() && !getData) { path: "/login",
this.$router.push({ });
path: "/login", } else if (getData && getData.path) {
}); // erp自动登陆传过来的参数
} else if (getData && getData.path) { // erp自动登陆传过来的参数 let parameter = getData;
let parameter = getData this.$router.push({
this.$router.push({ path: `/automaticLogin?toke=${data.token}&data=${JSON.stringify(
path: `/automaticLogin?toke=${data.token}&data=${JSON.stringify(parameter)}`, parameter
}) )}`,
} else { });
this.$router.push({ } else {
name: "Home", this.$router.push({
}); name: "Home",
} });
setTimeout(() => { }
this.getUserInfo() setTimeout(() => {
}, 100) this.getUserInfo();
}, }, 100);
methods: { },
// 获取用户权限信息 methods: {
getUserInfo() { // 获取用户权限信息
this.apipost("/api/AutoLogin/GetCRMLoginMenu", {}, (res) => { getUserInfo() {
var jsonData = res.data; this.apipost("/api/AutoLogin/GetCRMLoginMenu", {}, (res) => {
if (jsonData.resultCode == 1) { var jsonData = res.data;
var userData = jsonData.data if (jsonData.resultCode == 1) {
var userJson = userData; var userData = jsonData.data;
var userInfo = JSON.parse(localStorage.userInfo) var userJson = userData;
userInfo.UserMenu = userJson var userInfo = JSON.parse(localStorage.userInfo);
localStorage.userInfo = JSON.stringify(userInfo) userInfo.UserMenu = userJson;
} else { localStorage.userInfo = JSON.stringify(userInfo);
this.$message({ } else {
message: res.data.message, this.$message({
type: "error", message: res.data.message,
}); type: "error",
this.loginState = 0; });
} this.loginState = 0;
}); }
}, });
}, },
}; },
};
</script> </script>
<style> <style>
@import "./assets/css/tablevoerride.css"; @import "./assets/css/tablevoerride.css";
@import "./assets/global/font.css"; @import "./assets/global/font.css";
@import "//at.alicdn.com/t/font_1627123_xio004ni8y.css"; @import "//at.alicdn.com/t/font_1627123_xio004ni8y.css";
@import url("//at.alicdn.com/t/font_1627123_grz80mbm3sv.css"); @import url("//at.alicdn.com/t/font_1627123_grz80mbm3sv.css");
/* @import './assets/css/common.css'; */ @import url("//at.alicdn.com/t/font_635492_63x5920i6sn.css");
/* @import './assets/css/common.css'; */
@import "./assets/css/init.css";
body, @import "./assets/css/init.css";
html { body,
padding: 0px; html {
margin: 0px; padding: 0px;
font-family: "微软雅黑", " Microsoft YaHei", "PingFang", "PingFangR"; margin: 0px;
-webkit-font-smoothing: antialiased; font-family: "微软雅黑", " Microsoft YaHei", "PingFang", "PingFangR";
height: 100%; -webkit-font-smoothing: antialiased;
} height: 100%;
}
#app {
height: 100%; #app {
} height: 100%;
}
.el-scrollbar {
height: 100%; .el-scrollbar {
} height: 100%;
}
.el-scrollbar__wrap {
overflow: auto !important; .el-scrollbar__wrap {
width: 100%; overflow: auto !important;
height: 100%; width: 100%;
} height: 100%;
}
.el-scrollbar__view {
width: 100%; .el-scrollbar__view {
height: 100%; width: 100%;
} height: 100%;
}
.page-component-up {
position: fixed; .page-component-up {
right: calc(8.3% - 60px); position: fixed;
bottom: 150px; right: calc(8.3% - 60px);
width: 40px; bottom: 150px;
height: 90px; width: 40px;
z-index: 2000; height: 90px;
} z-index: 2000;
}
.page-component-up img {
width: 38px; .page-component-up img {
height: 38px; width: 38px;
} height: 38px;
}
.page-component-up i {
background-color: #fff; .page-component-up i {
cursor: pointer; background-color: #fff;
transition: 0.3s; cursor: pointer;
/* box-shadow: 0 0 6px rgba(0,0,0,.12); */ transition: 0.3s;
z-index: 5; /* box-shadow: 0 0 6px rgba(0,0,0,.12); */
border: 1px solid #ddd; z-index: 5;
box-sizing: border-box; border: 1px solid #ddd;
line-height: 40px; box-sizing: border-box;
text-align: center; line-height: 40px;
display: inline-block; text-align: center;
} display: inline-block;
}
.page-component-up i {
font-size: 36px; .page-component-up i {
color: #bbb; font-size: 36px;
} color: #bbb;
}
.page-component-up i:hover {
background-color: #ef4455; .page-component-up i:hover {
border: 1px solid #ec3346; background-color: #ef4455;
} border: 1px solid #ec3346;
}
.page-component-up:hover i {
color: #f1f1f1; .page-component-up:hover i {
} color: #f1f1f1;
}
.el-form-item .el-form-item__label {
color: #3d3b4f !important; .el-form-item .el-form-item__label {
} color: #3d3b4f !important;
}
.el-button [class*="el-icon-"]+span {
margin-left: 5px; .el-button [class*="el-icon-"] + span {
font-family: "perfectFont"; margin-left: 5px;
} font-family: "perfectFont";
</style> }
\ No newline at end of file </style>
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
} }
.orderDetails-body { .orderDetails-body {
height: calc(100% - 83px); height: calc(100% - 83px);
display: flex;
flex-direction: column;
} }
.orderDetails-body .order-info { .orderDetails-body .order-info {
height: 115px; height: 115px;
...@@ -26,6 +28,13 @@ ...@@ -26,6 +28,13 @@
.orderDetails-body .order-info .order-lable-box { .orderDetails-body .order-info .order-lable-box {
color: #999999; color: #999999;
} }
.orderDetails-content {
flex: 1;
position: relative;
}
.no-relative .el-tabs__content {
position: unset !important;
}
</style> </style>
<template> <template>
<div class="orderDetails-box"> <div class="orderDetails-box">
...@@ -51,11 +60,11 @@ ...@@ -51,11 +60,11 @@
</div> </div>
</div> </div>
<div class="orderDetails-content"> <div class="orderDetails-content">
<el-tabs v-model="activeName" @tab-click="handleClick"> <el-tabs v-model="activeName" class="no-relative" @tab-click="handleClick">
<el-tab-pane label="产品详情" name="1"> <el-tab-pane label="产品详情" name="1">
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="订单核算" name="2"> <el-tab-pane label="订单核算" name="2" style="height:100%">
<orderProfits :orderId="orderId"></orderProfits> <orderProfits :orderId="orderId"></orderProfits>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="订单日志" name="3"> <el-tab-pane label="订单日志" name="3">
......
...@@ -228,7 +228,7 @@ ...@@ -228,7 +228,7 @@
<customerInfoBox :CustomerId="CustomerId" /> <customerInfoBox :CustomerId="CustomerId" />
</el-drawer> </el-drawer>
<!-- 单号抽屉 --> <!-- 单号抽屉 -->
<el-drawer :with-header="false" size='70%' :visible.sync="orderDrawer" direction="rtl" :before-close="handleClose"> <el-drawer :with-header="false" @closed="closeOrderDrawerHandler" size='70%' :visible.sync="orderDrawer" direction="rtl" :before-close="handleClose">
<orderDetailsDrawer v-if="currentOrder" :orderId="currentOrder.OrderId" /> <orderDetailsDrawer v-if="currentOrder" :orderId="currentOrder.OrderId" />
</el-drawer> </el-drawer>
...@@ -236,880 +236,950 @@ ...@@ -236,880 +236,950 @@
</template> </template>
<script> <script>
import customerInfoBox from "../guestManagement/customerInfoBox"; import customerInfoBox from "../guestManagement/customerInfoBox";
import orderDetailsDrawer from "./orderDetailsDrawer"; import orderDetailsDrawer from "./orderDetailsDrawer";
export default { export default {
components: { components: {
customerInfoBox, customerInfoBox,
orderDetailsDrawer orderDetailsDrawer,
},
props: {
//订单
dataList: {
type: Array,
default: null,
},
loading: {
type: Boolean,
default: false,
},
superManage: {
type: String,
default: "",
},
},
data() {
return {
MultipleChoiceList: [
//多选项目
{
Name: "机票",
Id: "1",
}, },
props: { {
//订单 Name: "签证",
dataList: { Id: "2",
type: Array,
default: null
},
loading: {
type: Boolean,
default: false,
},
superManage: {
type: String,
default: ""
}
}, },
data() { {
return { Name: "地接",
MultipleChoiceList: [ //多选项目 Id: "3",
{
Name: '机票',
Id: '1'
}, {
Name: '签证',
Id: '2'
}, {
Name: '地接',
Id: '3'
}, {
Name: '套餐',
Id: '4'
}
],
userInfo: {},
MoreList: [{
Name: '取消订单',
Id: '1'
}, {
Name: '订单转交',
Id: '2'
}, {
Name: '修改出票状态',
Id: '4'
}, {
Name: '操作日志',
Id: '3'
}, ],
clickMore: '',
drawer: false,
orderDrawer: false,
CustomerId: '',
CustomerName: '',
currentOrder:null
};
}, },
created() { {
Name: "套餐",
Id: "4",
}, },
watch: { ],
loading: { userInfo: {},
handler(val, oldVal) { MoreList: [
this.loading = val {
}, Name: "取消订单",
deep: true Id: "1",
}
}, },
mounted() { {
this.userInfo = this.getLocalStorage(); Name: "订单转交",
let $this = this Id: "2",
$this.MsgBus.$on("closeBillMaking", function() {
for(let i=0;i<$this.dataList.length;i++){
$this.dataList[i].checkList = []
$this.dataList[i].MultipleChoiceList = []
$this.dataList[i].selectedType = ""
$this.dataList[i].actuallyReceived = false
$this.dataList[i].cost = false
}
});
}, },
methods: { {
// 多选发生变化 Name: "修改出票状态",
clickMultipleChoice(row, index, num) { Id: "4",
if(num == 1){ },
if(row.checkList.slice(-1)[0] == 4){ {
this.delType(row,1) Name: "操作日志",
this.delType(row,2) Id: "3",
this.delType(row,3) },
this.delType(row,5) ],
row.selectedType = row.checkList.join(',') clickMore: "",
}else if(row.checkList.slice(-1)[0] == 5){ drawer: false,
this.delType(row,1) orderDrawer: false,
this.delType(row,2) CustomerId: "",
this.delType(row,3) CustomerName: "",
this.delType(row,4) currentOrder: null,
row.selectedType = row.checkList.join(',') };
}else{ },
this.delType(row,4) created() {},
this.delType(row,5) watch: {
row.selectedType = row.checkList.join(',') loading: {
} handler(val, oldVal) {
} this.loading = val;
}, },
// 删除套餐值 deep: true,
delType(row,item) { },
for (let i = 0; i < row.checkList.length; i++) { },
if (row.checkList[i] == item) { mounted() {
row.checkList.splice(i, 1) this.userInfo = this.getLocalStorage();
} let $this = this;
} $this.MsgBus.$on("closeBillMaking", function() {
}, for (let i = 0; i < $this.dataList.length; i++) {
// 取消 $this.dataList[i].checkList = [];
popCancelClick(row, index, num){ $this.dataList[i].MultipleChoiceList = [];
if(num==1){} $this.dataList[i].selectedType = "";
this.dataList.forEach(item=>{ $this.dataList[i].actuallyReceived = false;
return item.actuallyReceived =false $this.dataList[i].cost = false;
}) }
});
if(num==3){} },
this.dataList.forEach(item=>{ methods: {
return item.cost =false // 多选发生变化
}) clickMultipleChoice(row, index, num) {
if (num == 1) {
this.dataList.forEach(item=>{ if (row.checkList.slice(-1)[0] == 4) {
item.checkList = [] this.delType(row, 1);
item.MultipleChoiceList = [] this.delType(row, 2);
item.selectedType = '' this.delType(row, 3);
}) this.delType(row, 5);
}, row.selectedType = row.checkList.join(",");
// 确定弹窗 } else if (row.checkList.slice(-1)[0] == 5) {
popClick(row, index, num){ this.delType(row, 1);
if(!row.selectedType){ this.delType(row, 2);
this.$message.warning('请选择类型!'); this.delType(row, 3);
return this.delType(row, 4);
} row.selectedType = row.checkList.join(",");
this.makeAdocumentFun(row, index, num) } else {
if(num==1){ this.delType(row, 4);
if(this.dataList[index].checkList.length==1){ this.delType(row, 5);
row.selectedType = row.checkList.join(",");
}
}
},
// 删除套餐值
delType(row, item) {
for (let i = 0; i < row.checkList.length; i++) {
if (row.checkList[i] == item) {
row.checkList.splice(i, 1);
}
}
},
// 取消
popCancelClick(row, index, num) {
if (num == 1) {
}
this.dataList.forEach((item) => {
return (item.actuallyReceived = false);
});
}else{ if (num == 3) {
this.dataList[index].actuallyReceived =false }
} this.dataList.forEach((item) => {
return (item.cost = false);
} });
if(num==3){
this.dataList[index].cost =false
}
},
// 点击单号
clickSingleNumber(item){
this.currentOrder=item
this.orderDrawer = true
},
handleClose(done) {
done();
},
openNameDetails(item) {
this.drawer = true;
this.CustomerId = item.GuestId;
this.CustomerName = item.GuestName;
},
// 查看出票凭据
viewCredentials(row) {
let $this = this;
this.MsgBus.$emit("CredentialsOrderTicketOrderBoxOpen", $this.ID, row, true);
},
chooseMore(row) {
// 取消订单
if (row.More == '1') {
this.cancelOrder(row)
}
// 订单转换
if (row.More == '2') {
this.convertOrder(row)
}
// 操作日志
if (row.More == '3') {
this.operationLog(row)
}
// 修改出票状态
if (row.More == '4') {
this.modifyStatus(row)
}
// 编辑订单金额
if (row.More == '5') {
this.editOrderAmount(row)
}
},
// 转换订单
convertOrder(row) {
this.MsgBus.$emit("convertOrderTicketOrderBoxOpen", row.GuestId, row, true);
},
// 验证操作员
ValidateOperator() {
this.$message({
type: 'warning',
message: '抱歉,该订单您没有操作权限!'
});
this.$emit('emptyMore')
},
// 制作单据
makeAdocument(row, index, num) {
this.dataList[index].MultipleChoiceList=[]
let list = row.OrderType&&row.OrderType.split(',')
if(list!=null&&list.length>1&&num==1){
this.dataList.forEach(item=>{
return item.cost = false
})
this.dataList.forEach(item=>{
return item.actuallyReceived = false
})
this.dataList[index].actuallyReceived = true
for(let j=0;j<list.length;j++){
for(let i=0;i<this.MultipleChoiceList.length;i++){
if(list[j]==this.MultipleChoiceList[i].Id){
this.dataList[index].MultipleChoiceList.push(this.MultipleChoiceList[i])
}
}
}
}
else if(list!=null&&list.length>1&&num==3){
this.dataList.forEach(item=>{
return item.actuallyReceived = false
})
this.dataList.forEach(item=>{
return item.cost = false
})
this.dataList[index].cost = true
for(let j=0;j<list.length;j++){
for(let i=0;i<this.MultipleChoiceList.length;i++){
if(list[j]==this.MultipleChoiceList[i].Id){
this.dataList[index].MultipleChoiceList.push(this.MultipleChoiceList[i])
}
}
}
}else{
this.makeAdocumentFun(row, index, num)
}
},
makeAdocumentFun(row, index, num){
let list = row.OrderType&&row.OrderType.split(',')
if (this.userInfo.EmName != row.EnterName) {
this.ValidateOperator()
} else {
if (row.OrderStatus != '2') {
if(list&&list.length>1){
let typeList = row.selectedType.split(',')
if(num=='1'&&typeList.length>=2){
let type
type = num == 1 ? 1 : 2 // 1收款 2退款 3成本anceId2 = num
let $this = this;
row.ReFinanceId2 = num
this.MsgBus.$emit("BillMakingOrderBoxOpen", $this.ID, row, true);
}if(typeList.length==1&&num=='1'||num=='3'){
let type
type = num == 1 ? 1 : 2 // 1收款 2退款 3成本
let href
let url = this.domainManager().erpRoutingUrl
let data = [{
path: 'ChoiceAddFinancialDocuments',
type: type,
OtherType: 55,
ReFinanceId: row.OrderId,
ReFinanceId2: num,
GuestId: row.GuestId,
RelevanceFrId: row.selectedType, // 单据类型
}]
href = url + 'automaticLogin?token=' + this.getLocalStorage().token + '&data=' + JSON.stringify(data)
window.open(href);
for(let i=0;i<this.dataList.length;i++){
this.dataList[i].checkList = []
this.dataList[i].MultipleChoiceList = []
this.dataList[i].selectedType = ""
this.dataList[i].actuallyReceived = false
this.dataList[i].cost = false
}
}if(num=='2'){
let type
type = num == 1 ? 1 : 2 // 1收款 2退款 3成本
let href
let url = this.domainManager().erpRoutingUrl
let data = [{
path: 'ChoiceAddFinancialDocuments',
type: type,
OtherType: 55,
ReFinanceId: row.OrderId,
ReFinanceId2: num,
GuestId: row.GuestId,
}]
href = url + 'automaticLogin?token=' + this.getLocalStorage().token + '&data=' + JSON.stringify(data)
window.open(href);
for(let i=0;i<this.dataList.length;i++){
this.dataList[i].checkList = []
this.dataList[i].MultipleChoiceList = []
this.dataList[i].selectedType = ""
this.dataList[i].actuallyReceived = false
this.dataList[i].cost = false
}
}
}else{
let type
type = num == 1 ? 1 : 2 // 1收款 2退款 3成本
let href
let url = this.domainManager().erpRoutingUrl
let data
if(num==1||num==2){
data = [{
path: 'ChoiceAddFinancialDocuments',
type: type,
OtherType: 55,
ReFinanceId: row.OrderId,
ReFinanceId2: num,
GuestId: row.GuestId,
RelevanceFrId: row.OrderType, // 单据类型
}]
}
if(num==3){
data = [{
path: 'ChoiceAddFinancialDocuments',
type: type,
OtherType: 55,
ReFinanceId: row.OrderId,
ReFinanceId2: num,
GuestId: row.GuestId,
}]
}
href = url + 'automaticLogin?token=' + this.getLocalStorage().token + '&data=' + JSON.stringify(data)
window.open(href);
for(let i=0;i<this.dataList.length;i++){
this.dataList[i].checkList = []
this.dataList[i].MultipleChoiceList = []
this.dataList[i].selectedType = ""
this.dataList[i].actuallyReceived = false
this.dataList[i].cost = false
}
}
}
this.dataList.forEach((item) => {
item.checkList = [];
item.MultipleChoiceList = [];
item.selectedType = "";
});
},
// 确定弹窗
popClick(row, index, num) {
if (!row.selectedType) {
this.$message.warning("请选择类型!");
return;
}
this.makeAdocumentFun(row, index, num);
if (num == 1) {
if (this.dataList[index].checkList.length == 1) {
} else {
this.dataList[index].actuallyReceived = false;
}
}
if (num == 3) {
this.dataList[index].cost = false;
}
},
// 点击单号
clickSingleNumber(item) {
this.currentOrder = item;
this.orderDrawer = true;
},
closeOrderDrawerHandler() {
this.currentOrder = null;
this.orderDrawer = false;
},
handleClose(done) {
done();
},
openNameDetails(item) {
this.drawer = true;
this.CustomerId = item.GuestId;
this.CustomerName = item.GuestName;
},
// 查看出票凭据
viewCredentials(row) {
let $this = this;
this.MsgBus.$emit(
"CredentialsOrderTicketOrderBoxOpen",
$this.ID,
row,
true
);
},
chooseMore(row) {
// 取消订单
if (row.More == "1") {
this.cancelOrder(row);
}
// 订单转换
if (row.More == "2") {
this.convertOrder(row);
}
// 操作日志
if (row.More == "3") {
this.operationLog(row);
}
// 修改出票状态
if (row.More == "4") {
this.modifyStatus(row);
}
// 编辑订单金额
if (row.More == "5") {
this.editOrderAmount(row);
}
},
// 转换订单
convertOrder(row) {
this.MsgBus.$emit(
"convertOrderTicketOrderBoxOpen",
row.GuestId,
row,
true
);
},
// 验证操作员
ValidateOperator() {
this.$message({
type: "warning",
message: "抱歉,该订单您没有操作权限!",
});
this.$emit("emptyMore");
},
// 制作单据
makeAdocument(row, index, num) {
this.dataList[index].MultipleChoiceList = [];
let list = row.OrderType && row.OrderType.split(",");
if (list != null && list.length > 1 && num == 1) {
this.dataList.forEach((item) => {
return (item.cost = false);
});
this.dataList.forEach((item) => {
return (item.actuallyReceived = false);
});
this.dataList[index].actuallyReceived = true;
for (let j = 0; j < list.length; j++) {
for (let i = 0; i < this.MultipleChoiceList.length; i++) {
if (list[j] == this.MultipleChoiceList[i].Id) {
this.dataList[index].MultipleChoiceList.push(
this.MultipleChoiceList[i]
);
}
}
}
} else if (list != null && list.length > 1 && num == 3) {
this.dataList.forEach((item) => {
return (item.actuallyReceived = false);
});
this.dataList.forEach((item) => {
return (item.cost = false);
});
this.dataList[index].cost = true;
for (let j = 0; j < list.length; j++) {
for (let i = 0; i < this.MultipleChoiceList.length; i++) {
if (list[j] == this.MultipleChoiceList[i].Id) {
this.dataList[index].MultipleChoiceList.push(
this.MultipleChoiceList[i]
);
}
}
}
} else {
this.makeAdocumentFun(row, index, num);
}
},
makeAdocumentFun(row, index, num) {
let list = row.OrderType && row.OrderType.split(",");
if (this.userInfo.EmName != row.EnterName) {
this.ValidateOperator();
} else {
if (row.OrderStatus != "2") {
if (list && list.length > 1) {
let typeList = row.selectedType.split(",");
if (num == "1" && typeList.length >= 2) {
let type;
type = num == 1 ? 1 : 2; // 1收款 2退款 3成本anceId2 = num
let $this = this;
row.ReFinanceId2 = num;
this.MsgBus.$emit("BillMakingOrderBoxOpen", $this.ID, row, true);
}
if ((typeList.length == 1 && num == "1") || num == "3") {
let type;
type = num == 1 ? 1 : 2; // 1收款 2退款 3成本
let href;
let url = this.domainManager().erpRoutingUrl;
let data = [
{
path: "ChoiceAddFinancialDocuments",
type: type,
OtherType: 55,
ReFinanceId: row.OrderId,
ReFinanceId2: num,
GuestId: row.GuestId,
RelevanceFrId: row.selectedType, // 单据类型
},
];
href =
url +
"automaticLogin?token=" +
this.getLocalStorage().token +
"&data=" +
JSON.stringify(data);
window.open(href);
for (let i = 0; i < this.dataList.length; i++) {
this.dataList[i].checkList = [];
this.dataList[i].MultipleChoiceList = [];
this.dataList[i].selectedType = "";
this.dataList[i].actuallyReceived = false;
this.dataList[i].cost = false;
}
}
if (num == "2") {
let type;
type = num == 1 ? 1 : 2; // 1收款 2退款 3成本
let href;
let url = this.domainManager().erpRoutingUrl;
let data = [
{
path: "ChoiceAddFinancialDocuments",
type: type,
OtherType: 55,
ReFinanceId: row.OrderId,
ReFinanceId2: num,
GuestId: row.GuestId,
},
];
href =
url +
"automaticLogin?token=" +
this.getLocalStorage().token +
"&data=" +
JSON.stringify(data);
window.open(href);
for (let i = 0; i < this.dataList.length; i++) {
this.dataList[i].checkList = [];
this.dataList[i].MultipleChoiceList = [];
this.dataList[i].selectedType = "";
this.dataList[i].actuallyReceived = false;
this.dataList[i].cost = false;
}
}
} else {
let type;
type = num == 1 ? 1 : 2; // 1收款 2退款 3成本
let href;
let url = this.domainManager().erpRoutingUrl;
let data;
if (num == 1 || num == 2) {
data = [
{
path: "ChoiceAddFinancialDocuments",
type: type,
OtherType: 55,
ReFinanceId: row.OrderId,
ReFinanceId2: num,
GuestId: row.GuestId,
RelevanceFrId: row.OrderType, // 单据类型
},
];
}
if (num == 3) {
data = [
{
path: "ChoiceAddFinancialDocuments",
type: type,
OtherType: 55,
ReFinanceId: row.OrderId,
ReFinanceId2: num,
GuestId: row.GuestId,
},
];
}
href =
url +
"automaticLogin?token=" +
this.getLocalStorage().token +
"&data=" +
JSON.stringify(data);
window.open(href);
for (let i = 0; i < this.dataList.length; i++) {
this.dataList[i].checkList = [];
this.dataList[i].MultipleChoiceList = [];
this.dataList[i].selectedType = "";
this.dataList[i].actuallyReceived = false;
this.dataList[i].cost = false;
}
}
}
}
},
// 操作日志
operationLog(row) {
this.MsgBus.$emit("logTicketOrderBoxOpen", row.GuestId, row, true);
},
// 修改出票状态
modifyStatus(row) {
if (this.superManage) {
this.ModifyStatusfun(row);
} else {
if (this.userInfo.EmName != row.EnterName) {
this.ValidateOperator();
} else {
this.ModifyStatusfun(row);
}
}
},
ModifyStatusfun(row) {
if (
row.TicketStatus == 3 ||
row.TicketStatus == 4 ||
row.OrderStatus == "2"
) {
return;
} else {
this.MsgBus.$emit("reviseTicketOrderBoxOpen", row.GuestId, row, true);
}
},
// 取消订单
cancelOrder(row) {
if (this.superManage) {
this.cancelOrderfun(row);
} else {
if (this.userInfo.EmName != row.EnterName) {
this.ValidateOperator();
} else {
this.cancelOrderfun(row);
}
}
},
cancelOrderfun(row) {
if (
row.OrderStatus != "2" &&
row.IncomeFinance.length == 0 &&
row.BackFinance.length == 0 &&
row.PayFinance.length == 0
) {
let tips = "此操作将取消该订单,是否继续取消?";
this.$confirm(tips, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.apipost(
"/api/Order/SetGuestOrderState",
{
OrderId: row.OrderId,
Type: "1",
},
(res) => {
if (res.data.resultCode == 1) {
this.$message.success(res.data.message);
this.getList();
} }
}, }
);
// 操作日志 })
operationLog(row) { .catch(() => {
this.MsgBus.$emit("logTicketOrderBoxOpen", row.GuestId, row, true); this.$emit("emptyMore");
}, this.$message({
// 修改出票状态 type: "info",
modifyStatus(row) { message: "已取消",
if (this.superManage) { });
this.ModifyStatusfun(row) });
} else { } else {
if (this.userInfo.EmName != row.EnterName) { this.$emit("emptyMore");
this.ValidateOperator() }
} else { },
this.ModifyStatusfun(row) // 编辑订单
} editOrder(row) {
} if (this.superManage) {
}, this.editOrderfun(row);
ModifyStatusfun(row) { } else {
if (row.TicketStatus == 3 || row.TicketStatus == 4 || row.OrderStatus == '2') { if (this.userInfo.EmName != row.EnterName) {
return this.ValidateOperator();
} else { } else {
this.MsgBus.$emit("reviseTicketOrderBoxOpen", row.GuestId, row, true); this.editOrderfun(row);
}
},
// 取消订单
cancelOrder(row) {
if (this.superManage) {
this.cancelOrderfun(row)
} else {
if (this.userInfo.EmName != row.EnterName) {
this.ValidateOperator()
} else {
this.cancelOrderfun(row)
}
}
},
cancelOrderfun(row) {
if (row.OrderStatus != '2' && row.IncomeFinance.length == 0 && row.BackFinance.length == 0 && row.PayFinance.length == 0) {
let tips = '此操作将取消该订单,是否继续取消?'
this.$confirm(tips, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.apipost('/api/Order/SetGuestOrderState', {
OrderId: row.OrderId,
Type: '1',
}, res => {
if (res.data.resultCode == 1) {
this.$message.success(res.data.message);
this.getList()
}
})
}).catch(() => {
this.$emit('emptyMore')
this.$message({
type: 'info',
message: '已取消'
});
});
} else {
this.$emit('emptyMore')
}
},
// 编辑订单
editOrder(row) {
if (this.superManage) {
this.editOrderfun(row)
} else {
if (this.userInfo.EmName != row.EnterName) {
this.ValidateOperator()
} else {
this.editOrderfun(row)
}
}
},
editOrderfun(row) {
if (row.TicketStatus == 1 && row.OrderStatus == 1) {
this.MsgBus.$emit("editOrderTicketOrderBoxOpen", row.GuestId, row, true);
} else {
this.$emit('emptyMore')
}
},
// 编辑订单金额
editOrderAmount(row) {
if (this.superManage) {
this.editOrderAmountfun(row)
} else {
if (this.userInfo.EmName != row.EnterName) {
this.ValidateOperator()
} else {
this.editOrderAmountfun(row)
}
}
},
editOrderAmountfun(row) {
if (row.TicketStatus == 1 && row.OrderStatus == 1) {
this.MsgBus.$emit("editTicketOrderBoxOpen", row.GuestId, row, true);
} else {
this.$emit('emptyMore')
}
},
openDetails(item) {
let href
let url = this.domainManager().erpRoutingUrl
let data = [{
path: 'FinancialDocumentsDetail',
id: item.FrID
}]
href = url + 'automaticLogin?token=' + this.getLocalStorage().token + '&data=' + JSON.stringify(data)
window.open(href);
},
// 获取出票状态枚举
GetTicketStatusEnumList() {
this.msg.GuestId = row.GuestId
this.apipost(
"/api/Order/GetTicketStatusEnumList", {},
(res) => {
if (res.data.resultCode == 1) {
this.ticketingStatusList = res.data.data;
let data = {
Name: '全部',
Id: '0'
}
this.ticketingStatusList.unshift(data)
} else {
this.$message.error(res.data.message);
}
}
);
},
} }
}; }
},
editOrderfun(row) {
if (row.TicketStatus == 1 && row.OrderStatus == 1) {
this.MsgBus.$emit(
"editOrderTicketOrderBoxOpen",
row.GuestId,
row,
true
);
} else {
this.$emit("emptyMore");
}
},
// 编辑订单金额
editOrderAmount(row) {
if (this.superManage) {
this.editOrderAmountfun(row);
} else {
if (this.userInfo.EmName != row.EnterName) {
this.ValidateOperator();
} else {
this.editOrderAmountfun(row);
}
}
},
editOrderAmountfun(row) {
if (row.TicketStatus == 1 && row.OrderStatus == 1) {
this.MsgBus.$emit("editTicketOrderBoxOpen", row.GuestId, row, true);
} else {
this.$emit("emptyMore");
}
},
openDetails(item) {
let href;
let url = this.domainManager().erpRoutingUrl;
let data = [
{
path: "FinancialDocumentsDetail",
id: item.FrID,
},
];
href =
url +
"automaticLogin?token=" +
this.getLocalStorage().token +
"&data=" +
JSON.stringify(data);
window.open(href);
},
// 获取出票状态枚举
GetTicketStatusEnumList() {
this.msg.GuestId = row.GuestId;
this.apipost("/api/Order/GetTicketStatusEnumList", {}, (res) => {
if (res.data.resultCode == 1) {
this.ticketingStatusList = res.data.data;
let data = {
Name: "全部",
Id: "0",
};
this.ticketingStatusList.unshift(data);
} else {
this.$message.error(res.data.message);
}
});
},
},
};
</script> </script>
<style> <style>
li { li {
list-style-type: none; list-style-type: none;
} }
.classorder ul { .classorder ul {
padding: 0px; padding: 0px;
} }
.classorder .price-popup { .classorder .price-popup {
border-radius: 4px; border-radius: 4px;
} }
.classorder .el-range-editor .el-range-input { .classorder .el-range-editor .el-range-input {
background: none; background: none;
} }
.classorder .el-range-editor.el-input__inner { .classorder .el-range-editor.el-input__inner {
background-color: transparent; background-color: transparent;
} }
.classorder .q-mb-md { .classorder .q-mb-md {
margin-bottom: 0; margin-bottom: 0;
} }
.classorder .stics { .classorder .stics {
padding: 10px 20px; padding: 10px 20px;
background: #dddee0; background: #dddee0;
border-radius: 4px; border-radius: 4px;
font-size: 14px; font-size: 14px;
color: #000000; color: #000000;
font-weight: bold; font-weight: bold;
} }
.classorder .stics .stics-name { .classorder .stics .stics-name {
color: #2d2d2d; color: #2d2d2d;
font-weight: 600; font-weight: 600;
margin-right: 10px; margin-right: 10px;
} }
.classorder .tis { .classorder .tis {
margin: 10px 0; margin: 10px 0;
align-items: center; align-items: center;
} }
.classorder .tis .tis-k { .classorder .tis .tis-k {
width: 10px; width: 10px;
height: 10px; height: 10px;
margin-right: 8px; margin-right: 8px;
} }
.classorder .tis span { .classorder .tis span {
font-size: 14px; font-size: 14px;
color: #2d2d2d; color: #2d2d2d;
font-weight: 600; font-weight: 600;
margin-right: 20px; margin-right: 20px;
} }
.classorder table { .classorder table {
padding: 10px 0; padding: 10px 0;
width: 100%; width: 100%;
background-color: #ededed; background-color: #ededed;
border-collapse: collapse; border-collapse: collapse;
border: 1px solid #d2d2d2; border: 1px solid #d2d2d2;
font-size: 12px; font-size: 12px;
} }
.classorder table th { .classorder table th {
background-color: #ededed; background-color: #ededed;
height: 34px; height: 34px;
text-indent: 15px; text-indent: 15px;
} }
.enrollTotalSearchTable td { .enrollTotalSearchTable td {
background-color: #ffffff; background-color: #ffffff;
padding: 9px 15px; padding: 9px 15px;
color: #333333; color: #333333;
border: 1px solid rgba(138, 138, 138, 0.09); border: 1px solid rgba(138, 138, 138, 0.09);
text-align: left; text-align: left;
} }
.classorder table ._color_666 { .classorder table ._color_666 {
color: #666666; color: #666666;
} }
.classorder table tr._color_666 th { .classorder table tr._color_666 th {
padding: 9px 15px; padding: 9px 15px;
} }
.classorder table th { .classorder table th {
background-color: #ededed; background-color: #ededed;
height: 34px; height: 34px;
text-indent: 15px; text-indent: 15px;
} }
.classorder table td { .classorder table td {
background-color: #ffffff; background-color: #ffffff;
padding: 9px 15px; padding: 9px 15px;
color: #333333; color: #333333;
} }
.classorder table ._color_666 { .classorder table ._color_666 {
color: #666666; color: #666666;
} }
.classorder table tr._color_666 th { .classorder table tr._color_666 th {
padding: 9px 15px; padding: 9px 15px;
} }
.classorder .enrollTotalSearchTable { .classorder .enrollTotalSearchTable {
width: 100%; width: 100%;
font-size: 14px; font-size: 14px;
color: #333; color: #333;
border-bottom: 1px solid #cccccc; border-bottom: 1px solid #cccccc;
border-right: 1px solid #cccccc; border-right: 1px solid #cccccc;
border-collapse: collapse; border-collapse: collapse;
} }
.classorder .enrollTotalSearchTable tr {} .classorder .enrollTotalSearchTable tr {
}
.classorder .enrollTotalSearchTable tr th {
background: #dddee0; .classorder .enrollTotalSearchTable tr th {
height: 30px; background: #dddee0;
font-size: 12px; height: 30px;
text-align: left; font-size: 12px;
} text-align: left;
}
.classorder .enrollTotalSearchTable tr {
background: #fff; .classorder .enrollTotalSearchTable tr {
text-align: left; background: #fff;
} text-align: left;
}
.classorder .enrollTotalSearchTable tbody tr:last-child {
border-bottom: 2px solid #ddd; .classorder .enrollTotalSearchTable tbody tr:last-child {
} border-bottom: 2px solid #ddd;
}
.classorder .enrollTotalSearchTable tr:first-child td:first-child {
border-bottom: 2px solid #ddd; .classorder .enrollTotalSearchTable tr:first-child td:first-child {
} border-bottom: 2px solid #ddd;
}
.classorder .enrollTotalSearchTable tr td {
height: 46px; .classorder .enrollTotalSearchTable tr td {
padding: 10px; height: 46px;
} padding: 10px;
}
.classorder .enrollTotalSearchTable tr td>img {
width: 32px; .classorder .enrollTotalSearchTable tr td > img {
height: 32px; width: 32px;
border-radius: 16px; height: 32px;
vertical-align: middle; border-radius: 16px;
margin-right: 5px; vertical-align: middle;
} margin-right: 5px;
}
.classorder .enrollTotalSearchTable tr td p {
line-height: 20px; .classorder .enrollTotalSearchTable tr td p {
} line-height: 20px;
}
.classorder .remarks {
font-size: 14px; .classorder .remarks {
color: #2d2d2d; font-size: 14px;
} color: #2d2d2d;
}
.classorder .remarks-b {
height: 34px; .classorder .remarks-b {
background: #f0f5fb; height: 34px;
margin-top: 10px; background: #f0f5fb;
padding: 15px; margin-top: 10px;
font-size: 12px; padding: 15px;
color: #999999; font-size: 12px;
position: relative; color: #999999;
overflow: hidden; position: relative;
display: -webkit-box; overflow: hidden;
line-height: 20px; display: -webkit-box;
-webkit-line-clamp: 4; line-height: 20px;
-webkit-box-orient: vertical; -webkit-line-clamp: 4;
} -webkit-box-orient: vertical;
}
.classorder .remarks-b-b {
text-align: right; .classorder .remarks-b-b {
position: absolute; text-align: right;
right: 0px; position: absolute;
bottom: 0px; right: 0px;
} bottom: 0px;
}
.classorder .on-left {
margin-right: 5px; .classorder .on-left {
} margin-right: 5px;
}
.classorder .finance {
padding: 1px 10px; .classorder .finance {
align-items: center; padding: 1px 10px;
justify-content: center; align-items: center;
border-radius: 4px; justify-content: center;
margin: 5px 3px 3px 0; border-radius: 4px;
} margin: 5px 3px 3px 0;
}
.classorder .order_OfferId {
font-size: 18px; .classorder .order_OfferId {
color: #2961fe; font-size: 18px;
margin-bottom: 10px; color: #2961fe;
font-weight: bold; margin-bottom: 10px;
text-decoration: underline; font-weight: bold;
cursor: pointer; text-decoration: underline;
} cursor: pointer;
}
.takeContract {
cursor: pointer; .takeContract {
color: rgb(41, 97, 254); cursor: pointer;
} color: rgb(41, 97, 254);
}
.Contract_Table {
width: 100%; .Contract_Table {
border-collapse: collapse; width: 100%;
} border-collapse: collapse;
}
.Contract_Table th,
.Contract_Table td { .Contract_Table th,
padding: 5px; .Contract_Table td {
color: #000; padding: 5px;
text-align: center; color: #000;
} text-align: center;
}
.table-body {
overflow-x: hidden; .table-body {
overflow-y: auto; overflow-x: hidden;
} overflow-y: auto;
}
.classorder .redstyle {
color: var(--q-color-negative); .classorder .redstyle {
} color: var(--q-color-negative);
}
.order_OferTitle {
font-size: 14px; .order_OferTitle {
color: #333333; font-size: 14px;
margin-bottom: 10px; color: #333333;
} margin-bottom: 10px;
}
.tatusText.grey {
color: grey; .tatusText.grey {
} color: grey;
}
.tatusText.success {
color: #21BA45; .tatusText.success {
} color: #21ba45;
}
.tatusText.error {
color: #F2C037; .tatusText.error {
} color: #f2c037;
}
.tatusText.Black {
color: Black; .tatusText.Black {
} color: Black;
}
.ToBeReceived.red {
color: #fd397a; .ToBeReceived.red {
} color: #fd397a;
}
.ToBeReceived.blue {
color: #409eff; .ToBeReceived.blue {
} color: #409eff;
}
.documents-text {
display: flex; .documents-text {
justify-content: space-between; display: flex;
} justify-content: space-between;
}
.documents-left {
display: flex; .documents-left {
flex-direction: row; display: flex;
flex-wrap: wrap; flex-direction: row;
margin: 2px 0; flex-wrap: wrap;
} margin: 2px 0;
}
.documents-left span {
margin-right: 10px; .documents-left span {
border-radius: 3px; margin-right: 10px;
padding: 2px 6px; border-radius: 3px;
} padding: 2px 6px;
}
.documents-left span:hover {
cursor: pointer; .documents-left span:hover {
} cursor: pointer;
}
.documents-left span.one {
background-color: rgba(41, 97, 254, 0.2); .documents-left span.one {
color: rgb(41, 97, 254); background-color: rgba(41, 97, 254, 0.2);
} color: rgb(41, 97, 254);
}
.documents-left span.two {
background-color: rgba(242, 140, 29, 0.2); .documents-left span.two {
color: rgb(242, 140, 29); background-color: rgba(242, 140, 29, 0.2);
} color: rgb(242, 140, 29);
}
.documents-left span.three {
background-color: rgba(63, 196, 255, 0.2); .documents-left span.three {
color: rgb(63, 196, 255); background-color: rgba(63, 196, 255, 0.2);
} color: rgb(63, 196, 255);
}
.documents-left.num span {
background-color: rgba(41, 97, 254, 0); .documents-left.num span {
color: rgb(41, 97, 254); background-color: rgba(41, 97, 254, 0);
padding: 0; color: rgb(41, 97, 254);
} padding: 0;
}
.documents-right {
margin-right: 20px; .documents-right {
position: relative; margin-right: 20px;
} position: relative;
}
.OrderId-text {
font-size: 19px; .OrderId-text {
/* text-decoration:underline; */ font-size: 19px;
font-weight: bold; /* text-decoration:underline; */
color: #2961fe; font-weight: bold;
margin-bottom: 10px; color: #2961fe;
cursor: pointer; margin-bottom: 10px;
} cursor: pointer;
}
.CreateByName-text {
margin-bottom: 10px; .CreateByName-text {
} margin-bottom: 10px;
}
.colorblue {
color: #2961fe; .colorblue {
} color: #2961fe;
}
.enedit-box {
display: flex; .enedit-box {
align-items: center; display: flex;
} align-items: center;
}
.select-right {
margin-left: 5px; .select-right {
} margin-left: 5px;
}
.Credentials {
color: #2961FE; .Credentials {
} color: #2961fe;
}
.TicketVoucher-box {
display: flex; .TicketVoucher-box {
} display: flex;
}
.TicketVoucher-box span {
flex-shrink: 0; .TicketVoucher-box span {
} flex-shrink: 0;
}
.TicketVoucher-box i {
margin-left: 5px; .TicketVoucher-box i {
} margin-left: 5px;
.agreement-IncomeMoney-box{ }
position: relative; .agreement-IncomeMoney-box {
} position: relative;
.agreement-IncomeMoney-pop{ }
position: absolute; .agreement-IncomeMoney-pop {
top: -20px; position: absolute;
left: -270px; top: -20px;
z-index: 1; left: -270px;
background: #fff; z-index: 1;
padding: 10px 19px 10px 19px; background: #fff;
Box-shadow:5px 5px 10px 5px #ccc; padding: 10px 19px 10px 19px;
} box-shadow: 5px 5px 10px 5px #ccc;
.agreement-Cancel{ }
text-align: right; .agreement-Cancel {
color: #409eff; text-align: right;
} color: #409eff;
.agreement-Cancel span:first-child{ }
color: #999999; .agreement-Cancel span:first-child {
margin-right: 20px; color: #999999;
} margin-right: 20px;
.agreement-Cancel span:hover{ }
cursor: pointer; .agreement-Cancel span:hover {
} cursor: pointer;
.float-flag-shape{ }
position: absolute; .float-flag-shape {
top:20px; position: absolute;
border: 1px solid #fff; top: 20px;
height: 0; border: 1px solid #fff;
width: 0; height: 0;
border-top: 6px solid transparent; width: 0;
border-left: 10px solid #fff; border-top: 6px solid transparent;
border-bottom: 3px solid transparent; border-left: 10px solid #fff;
right:-11px; border-bottom: 3px solid transparent;
} right: -11px;
.el-checkbox-group,.el-radio-group{ }
display: flex !important; .el-checkbox-group,
margin-bottom: 10px !important; .el-radio-group {
} display: flex !important;
.font-color-link{ margin-bottom: 10px !important;
cursor: pointer; }
} .font-color-link {
</style> cursor: pointer;
\ No newline at end of file }
</style>
<template> <template>
<div style="padding:0 20px 20px 20px;"> <div class="finance-list-box" v-loading="loading">
<div style="font-size:16px;">订单利润核算表</div> <div style="font-size:16px;">订单利润核算表</div>
<div class="Team_Content" v-loading="loading"> <div class="Team_Content" v-if="d">
<el-row :gutter="12" v-if="d"> <el-row :gutter="12" v-if="d">
<el-col :span="5"> <el-col :span="4">
<div class="Team_DList"> <div class="Team_DList">
<div class="Team_firstTitle"> <div class="Team_firstTitle">
<span class="Team_comCoinType Team_shou"> <span class="Team_comCoinType Team_shou">
<i class="iconfont icon-qian"></i> <i class="iconfont icon-qian"></i>
</span>团费收入 </span>订单收入
</div> </div>
<div class="Team_Incontent"> <div class="Team_Incontent">
<div>应收:<span>{{DataList.TeamBalance.ShouldReceive}}</span></div> <div>应收:<span>{{d.YSMoney}}</span></div>
<div>实收:<span class="Team_Coins">{{DataList.TeamBalance.ActualReceive}}</span></div> <div>实收:<span class="Team_Coins">{{d.SSMoney}}</span></div>
<div>待收:<span class="Team_Coins">{{DataList.TeamBalance.WaitRecive}}</span></div> <div>手续费:<span class="Team_Coins">{{d.SSFee}}</span></div>
<div>待收:<span class="Team_Coins">{{d.DSMoney}}</span></div>
<div> <div>
注:应收=订单应收总额,实收=订单实收总额 注:应收=订单应收总额,实收=订单实收总额(不包含手续费)
</div> </div>
</div> </div>
</div> </div>
...@@ -25,48 +26,66 @@ ...@@ -25,48 +26,66 @@
<div class="Team_firstTitle"> <div class="Team_firstTitle">
<span class="Team_comCoinType Team_shou"> <span class="Team_comCoinType Team_shou">
<i class="iconfont icon-qian"></i> <i class="iconfont icon-qian"></i>
</span>其他 </span>其他收入
</div> </div>
<div class="Team_Incontent"> <div class="Team_Incontent">
<div>应收:<span>{{moneyFormat(moneyAll.otheryTotalyf)}}</span></div> <div>应收:<span>{{d.OtherYS}}</span></div>
<div>实收:<span class="Team_Coins">{{moneyFormat(moneyAll.otheryTotalsf)}}</span></div> <div>实收:<span class="Team_Coins">{{d.OtherSS}}</span></div>
<div>待收:<span class="Team_Coins">{{moneyFormat(moneyAll.otheryTotalyf-moneyAll.otheryTotalsf)}}</span></div> <div>手续费:<span class="Team_Coins">{{d.OtherFee}}</span></div>
<div>待收:<span class="Team_Coins">{{d.OtherDS}}</span></div>
<div> <div>
注:此处不进入'利润'计算,单纯只统计除团费外的其他总收入 注:统计除订单上主业务外的其他总收入
</div> </div>
</div> </div>
</div> </div>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="4">
<div class="Team_DList"> <div class="Team_DList">
<div class="Team_firstTitle"> <div class="Team_firstTitle">
<span class="Team_comCoinType Team_zhichu"> <span class="Team_comCoinType Team_zhichu">
<i class="iconfont icon-qian"></i> <i class="iconfont icon-qian"></i>
</span>支出 </span>成本支出
</div> </div>
<div class="Team_Incontent"> <div class="Team_Incontent">
<div>应付:<span>{{DataList.TeamBalance.ShouldPay}}</span></div> <div>应付:<span>{{d.CostYFMoney}}</span></div>
<div>实付:<span class="Team_Coins">{{DataList.TeamBalance.ActualPay}}</span></div> <div>实付:<span class="Team_Coins">{{d.CostSFMoney}}</span></div>
<div>待付:<span class="Team_Coins">{{DataList.TeamBalance.WaitPay}}</span></div> <div>待付:<span class="Team_Coins">{{d.CostDFMoney}}</span></div>
<div> <div>
注:成本单据总额(包含退款)+提成-小费收入-地接收入 注:成本总额+订单提成
</div> </div>
</div> </div>
</div> </div>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="4">
<div class="Team_DList"> <div class="Team_DList">
<div class="Team_firstTitle"> <div class="Team_firstTitle">
<span class="Team_comCoinType Team_lirun"> <span class="Team_comCoinType Team_zhichu">
<i class="iconfont icon-qian"></i> <i class="iconfont icon-qian"></i>
</span>利润(计算规则请看注解) </span>退款
</div> </div>
<div class="Team_Incontent"> <div class="Team_Incontent">
<div>实际利润:<span>{{DataList.TeamBalance.ExpectedProfit}}</span></div> <div>应退:<span>{{d.BackYFMoney}}</span></div>
<div>当前利润:<span class="Team_Coins">{{DataList.TeamBalance.ActualProfit}}</span></div> <div>实退:<span class="Team_Coins">{{d.BackSFMoney}}</span></div>
<div>待退:<span class="Team_Coins">{{d.BackDFMoney}}</span></div>
<div> <div>
注:实收-(应付/实付)+佣金收入+自费收入+其他收入 注:订单产生的退款总额
-联运成本+挂账总收入-挂账总支出+冲抵总收入-冲抵总支出 </div>
</div>
</div>
</el-col>
<el-col :span="4">
<div class="Team_DList">
<div class="Team_firstTitle">
<span class="Team_comCoinType Team_zhichu">
<i class="iconfont icon-qian"></i>
</span>其他支出
</div>
<div class="Team_Incontent">
<div>应付:<span>{{d.OtherYF}}</span></div>
<div>实付:<span class="Team_Coins">{{d.OtherSF}}</span></div>
<div>待付:<span class="Team_Coins">{{d.OtherDF}}</span></div>
<div>
注:订单产生的其他项目支出
</div> </div>
</div> </div>
</div> </div>
...@@ -76,23 +95,294 @@ ...@@ -76,23 +95,294 @@
<div class="Team_firstTitle"> <div class="Team_firstTitle">
<span class="Team_comCoinType Team_lirun"> <span class="Team_comCoinType Team_lirun">
<i class="iconfont icon-qian"></i> <i class="iconfont icon-qian"></i>
</span>提成 </span>利润(计算规则请看注解)
</div> </div>
<div class="Team_Incontent" style="margin-bottom:0;"> <div class="Team_Incontent">
<div class="TeamExpectList"> <div>实际利润:<span>{{d.RealityProfit}}</span></div>
<template v-for="subItem in DataList.ExpectedCutList"> <div>当前利润:<span class="Team_Coins">{{d.NowProfit}}</span></div>
<div style="margin-bottom:5px;">{{subItem.BranchName}}{{subItem.expectedCut}} </div> <div>
</template> 注:(实收+其他收入)-成本(应付/实付)-其他(应付/实付)-退款(应付/实付)
</div>
</div> </div>
<div>联运成本:<span>¥{{DataList.LYCB}}</span></div> </div>
<div>额外返佣:<span>¥{{DataList.EWFY}}</span></div>
<div>OP提成:<span>¥{{DataList.OpCommMoney}}</span></div>
<div>票务提成:<span>¥{{DataList.AirCommMoney}}</span></div>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
</div>
<div class="Team_collection" v-if="d">
<div class="clearfix TB_PrintDiv">
<div class="TB_comtitle TB-Title">订单收入:
<span>
<span class="span_all">应收:¥{{d.YSMoney}}</span>
<span class="span_all">实收:¥{{d.SSMoney}}</span>
</span>
</div>
</div>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<th width="180">单号</th>
<th width="200">费用类型</th>
<th width="500">交易明细</th>
<th width="300">金额</th>
<th width="200">交易日期</th>
<th width="250">制单人员</th>
<th width='180'>审核状态</th>
<th width="200">当前审核人</th>
</tr>
<template v-if="isExsitList(1).length>0">
<tr v-for="item in isExsitList(1)" :key="item.FrID">
<td><span class="Team_income">{{item.FrID}}</span>
</td>
<td><span v-for="(subItem,i) in item.CostTypeList" :key="i">{{subItem}}</span></td>
<td>
<div v-for="childItem in item.TradeWayList">
支付方式:{{childItem.Alias}}<span class="TB_Rate">币种:{{childItem.CurrencyName}}</span>
<span class="Team_Coins">{{childItem.OriginalMoney}}*{{childItem.Rate}}</span>
<span class="TB_Rate">汇率:{{childItem.Rate}}</span>
</div>
</td>
<td style="font-size:14px;">
应收:{{item.Money}}<br />
实收:{{item.PayMoney}}
</td>
<td>{{item.TradeDate}}</td>
<td>
<div>{{item.EmName}}</div>
<div class="Team_btmDiv">{{item.CreateDate}}</div>
</td>
<td>{{item.StatusStr}}</td>
<td>
<div v-for="AuditItem in item.AuditList">
{{AuditItem.EmName}}
<span class="TB_Rate">{{AuditItem.AuditDate}}</span>
</div>
</td>
</tr>
</template>
<tr v-else>
<td colspan="8" class="none-finance">暂无相关单据</td>
</tr>
</table>
</div>
<div class="Team_collection" v-if="d">
<div class="clearfix TB_PrintDiv">
<div class="TB_comtitle TB-Title">其他收入
<span>
<span class="span_all">应收:¥{{d.OtherYS}}</span>
<span class="span_all">实收:¥{{d.OtherSS}}</span>
</span>
</div>
</div>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<th width="180">单号</th>
<th width="200">费用类型</th>
<th width="500">交易明细</th>
<th width="300">金额</th>
<th width="200">交易日期</th>
<th width="250">制单人员</th>
<th width='180'>审核状态</th>
<th width="200">当前审核人</th>
</tr>
<template v-if="isExsitList(2).length>0">
<tr v-for="item in isExsitList(2)" :key="item.FrID">
<td><span class="Team_income">{{item.FrID}}</span>
</td>
<td><span v-for="(subItem,i) in item.CostTypeList" :key="i">{{subItem}}</span></td>
<td>
<div v-for="childItem in item.TradeWayList">
支付方式:{{childItem.Alias}}<span class="TB_Rate">币种:{{childItem.CurrencyName}}</span>
<span class="Team_Coins">{{childItem.OriginalMoney}}*{{childItem.Rate}}</span>
<span class="TB_Rate">汇率:{{childItem.Rate}}</span>
</div>
</td>
<td style="font-size:14px;">
应收:{{item.Money}}<br />
实收:{{item.PayMoney}}
</td>
<td>{{item.TradeDate}}</td>
<td>
<div>{{item.EmName}}</div>
<div class="Team_btmDiv">{{item.CreateDate}}</div>
</td>
<td>{{item.StatusStr}}</td>
<td>
<div v-for="AuditItem in item.AuditList">
{{AuditItem.EmName}}
<span class="TB_Rate">{{AuditItem.AuditDate}}</span>
</div>
</td>
</tr>
</template>
<tr v-else>
<td colspan="8" class="none-finance">暂无相关单据</td>
</tr>
</table>
</div>
<div class="Team_collection" v-if="d">
<div class="clearfix TB_PrintDiv">
<div class="TB_comtitle TB-Title">成本支出:
<span>
<span class="span_all">应付:¥{{d.CostYFMoney}}</span>
<span class="span_all">实付:¥{{d.CostSFMoney}}</span>
</span>
</div>
</div>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<th width="180">单号</th>
<th width="200">费用类型</th>
<th width="500">交易明细</th>
<th width="300">金额</th>
<th width="200">交易日期</th>
<th width="250">制单人员</th>
<th width='180'>审核状态</th>
<th width="200">当前审核人</th>
</tr>
<template v-if="isExsitList(3).length>0">
<tr v-for="item in isExsitList(3)" :key="item.FrID">
<td><span class="Team_income">{{item.FrID}}</span>
</td>
<td><span v-for="(subItem,i) in item.CostTypeList" :key="i">{{subItem}}</span></td>
<td>
<div v-for="childItem in item.TradeWayList">
支付方式:{{childItem.Alias}}<span class="TB_Rate">币种:{{childItem.CurrencyName}}</span>
<span class="Team_Coins">{{childItem.OriginalMoney}}*{{childItem.Rate}}</span>
<span class="TB_Rate">汇率:{{childItem.Rate}}</span>
</div>
</td>
<td style="font-size:14px;">
应收:{{item.Money}}<br />
实收:{{item.PayMoney}}
</td>
<td>{{item.TradeDate}}</td>
<td>
<div>{{item.EmName}}</div>
<div class="Team_btmDiv">{{item.CreateDate}}</div>
</td>
<td>{{item.StatusStr}}</td>
<td>
<div v-for="AuditItem in item.AuditList">
{{AuditItem.EmName}}
<span class="TB_Rate">{{AuditItem.AuditDate}}</span>
</div>
</td>
</tr>
</template>
<tr v-else>
<td colspan="8" class="none-finance">暂无相关单据</td>
</tr>
</table>
</div>
<div class="Team_collection" v-if="d">
<div class="clearfix TB_PrintDiv">
<div class="TB_comtitle TB-Title">其他支出:
<span>
<span class="span_all">应付:¥{{d.OtherYF}}</span>
<span class="span_all">实付:¥{{d.OtherSF}}</span>
</span>
</div>
</div>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<th width="180">单号</th>
<th width="200">费用类型</th>
<th width="500">交易明细</th>
<th width="300">金额</th>
<th width="200">交易日期</th>
<th width="250">制单人员</th>
<th width='180'>审核状态</th>
<th width="200">当前审核人</th>
</tr>
<template v-if="isExsitList(4).length>0">
<tr v-for="item in isExsitList(4)" :key="item.FrID">
<td><span class="Team_income">{{item.FrID}}</span>
</td>
<td><span v-for="(subItem,i) in item.CostTypeList" :key="i">{{subItem}}</span></td>
<td>
<div v-for="childItem in item.TradeWayList">
支付方式:{{childItem.Alias}}<span class="TB_Rate">币种:{{childItem.CurrencyName}}</span>
<span class="Team_Coins">{{childItem.OriginalMoney}}*{{childItem.Rate}}</span>
<span class="TB_Rate">汇率:{{childItem.Rate}}</span>
</div>
</td>
<td style="font-size:14px;">
应收:{{item.Money}}<br />
实收:{{item.PayMoney}}
</td>
<td>{{item.TradeDate}}</td>
<td>
<div>{{item.EmName}}</div>
<div class="Team_btmDiv">{{item.CreateDate}}</div>
</td>
<td>{{item.StatusStr}}</td>
<td>
<div v-for="AuditItem in item.AuditList">
{{AuditItem.EmName}}
<span class="TB_Rate">{{AuditItem.AuditDate}}</span>
</div>
</td>
</tr>
</template>
<tr v-else>
<td colspan="8" class="none-finance">暂无相关单据</td>
</tr>
</table>
</div>
<div class="Team_collection" v-if="d">
<div class="clearfix TB_PrintDiv">
<div class="TB_comtitle TB-Title">退款:
<span>
<span class="span_all">应退:¥{{d.BackYFMoney}}</span>
<span class="span_all">实退:¥{{d.BackSFMoney}}</span>
</span>
</div>
</div> </div>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<th width="180">单号</th>
<th width="200">费用类型</th>
<th width="500">交易明细</th>
<th width="300">金额</th>
<th width="200">交易日期</th>
<th width="250">制单人员</th>
<th width='180'>审核状态</th>
<th width="200">当前审核人</th>
</tr>
<template v-if="isExsitList(4).length>0">
<tr v-for="item in isExsitList(4)" :key="item.FrID">
<td><span class="Team_income">{{item.FrID}}</span>
</td>
<td><span v-for="(subItem,i) in item.CostTypeList" :key="i">{{subItem}}</span></td>
<td>
<div v-for="childItem in item.TradeWayList">
支付方式:{{childItem.Alias}}<span class="TB_Rate">币种:{{childItem.CurrencyName}}</span>
<span class="Team_Coins">{{childItem.OriginalMoney}}*{{childItem.Rate}}</span>
<span class="TB_Rate">汇率:{{childItem.Rate}}</span>
</div>
</td>
<td style="font-size:14px;">
应收:{{item.Money}}<br />
实收:{{item.PayMoney}}
</td>
<td>{{item.TradeDate}}</td>
<td>
<div>{{item.EmName}}</div>
<div class="Team_btmDiv">{{item.CreateDate}}</div>
</td>
<td>{{item.StatusStr}}</td>
<td>
<div v-for="AuditItem in item.AuditList">
{{AuditItem.EmName}}
<span class="TB_Rate">{{AuditItem.AuditDate}}</span>
</div>
</td>
</tr>
</template>
<tr v-else>
<td colspan="8" class="none-finance">暂无相关单据</td>
</tr>
</table>
</div>
</div> </div>
</template> </template>
...@@ -105,6 +395,9 @@ export default { ...@@ -105,6 +395,9 @@ export default {
d: null, d: null,
}; };
}, },
mounted() {
this.init();
},
methods: { methods: {
init() { init() {
this.apipost2( this.apipost2(
...@@ -113,15 +406,204 @@ export default { ...@@ -113,15 +406,204 @@ export default {
(res) => { (res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.d = res.data.data; this.d = res.data.data;
console.log(d);
} }
this.loading = false;
}, },
(err) => {} (err) => {}
); );
}, },
isExsitList(code) {
if (code == 1) {
return this.d.FinanceList.filter(
(x) => x.ReFinanceId2 == 2 && x.RelevanceFrId != 5
);
} else if (code == 2) {
return this.d.FinanceList.filter(
(x) => x.ReFinanceId2 == 2 && x.RelevanceFrId == 5
);
} else if (code == 3) {
return this.d.FinanceList.filter(
(x) => x.ReFinanceId2 == 3 && x.RelevanceFrId != 5
);
} else if (code == 4) {
return this.d.FinanceList.filter(
(x) => x.ReFinanceId2 == 3 && x.RelevanceFrId == 5
);
} else if (code == 5) {
return this.d.FinanceList.filter((x) => x.ReFinanceId2 == 2);
}
},
}, },
}; };
</script> </script>
<style> <style>
.finance-list-box {
padding: 0 20px 20px 20px;
position: absolute;
top: 54px;
bottom: 0;
left: 0;
right: 0;
overflow-y: auto;
}
.none-finance {
height: 30px;
text-align: center;
color: #666666;
}
.TB_comtitle {
color: #333333;
padding-left: 10px;
height: 14px;
line-height: 14px;
font-size: 14px;
border-left: 3px solid #4d7afd;
margin-bottom: 20px;
}
.Team_Details {
margin-top: 20px;
font-size: 12px;
}
.Team_DList {
border: 1px solid #e6e6e6;
background-color: #fff;
margin-top: 20px;
padding: 20px;
height: 167px;
}
.tipTable tr td {
height: 30px !important;
}
.singeRowTable tr th {
height: 30px;
text-align: left !important;
}
.singeRowTable tr td {
border: 1px solid #e5e5e5;
padding: 0px;
padding-left: 12px;
}
/* .Team_Content .el-col-5 {
margin-right: 18px;
} */
.Team_Coins {
color: #ff9c00;
}
.Team_income {
color: #4d7afd;
text-decoration: underline;
cursor: pointer;
}
.TB-Title {
float: left;
position: relative;
top: 10px;
}
.Team_ComCoin {
width: 60%;
margin: auto;
text-align: left;
}
.Team_btmDiv {
margin-top: 5px;
}
.Team_collection {
margin-top: 40px;
}
.Team_outCome {
color: #ff9c00;
}
.Team_Pay {
color: #ff5150;
}
.TeamAddBtn {
float: right;
margin-bottom: 10px;
}
.Team_DList div {
margin-bottom: 8px;
color: #666666;
}
.Team_firstTitle {
font-size: 14px;
/* font-family: "PingFang-SC-Bold"; */
color: #333333 !important;
}
.Team_comCoinType {
display: inline-block;
width: 24px;
height: 24px;
border-radius: 50%;
position: relative;
top: -1px;
}
.Team_shou {
background-color: #d7e6ff;
color: #4d7afd;
}
.Team_firstTitle span {
margin-right: 10px;
text-align: center;
line-height: 24px;
font-size: 12px;
vertical-align: middle;
}
.Team_Incontent {
font-size: 12px;
}
.Team_Incontent span {
font-size: 12px;
font-family: "PingFangSC-Fine";
}
.Team_zhichu {
background-color: #fde2df;
color: #ff504f;
}
.Team_lirun {
background-color: #d1f3ea;
color: #1bc594;
}
.Team_BtnList {
margin-top: 30px;
text-align: center;
}
.TB_Rate,
.TB_PayMoney {
margin-left: 20px;
}
.TeamBalancePayment .TB_PrintDiv {
height: 40px;
}
.span_all {
margin-left: 15px;
}
.TeamExpectList {
max-height: 105px;
overflow: auto;
margin-bottom: 0 !important;
}
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment