Commit 43a12997 authored by 王悦's avatar 王悦
parents 11dbbdad 17ec336f
<style scoped>
.page_fnDm {
background-color: white;
}
.query-box {
overflow: inherit;
padding-bottom: 0;
}
._nav {
margin: 20px 0 0 0;
background-color: #f5f5f5;
}
._nav li {
float: left;
font-size: 14px;
color: #666666;
padding: 15px 20px;
cursor: pointer;
position: relative;
background-color: #f1f1f1;
margin-right: 5px;
}
._nav li._active {
background-color: #ffffff;
color: #333333;
}
._nav li._active::after {
content: "";
width: 20px;
height: 3px;
background-color: #e95252;
display: inline-block;
position: absolute;
bottom: 0;
left: 38%;
}
.el-range-editor.el-input__inner {
border-radius: 0;
}
.query-box {
border: none;
}
.hight_query {
position: relative;
}
.hight_query span {
height: 34px;
line-height: 34px;
color: #e95252;
}
.hight_query span .icon-gengduo {
font-size: 12px;
}
.hight_query span em {
text-decoration: underline;
cursor: pointer;
}
.hight_query_box {
position: absolute;
background-color: white;
z-index: 2000;
right: 200px;
width: 800px;
}
._hqb_shadow {
box-shadow: 3px 2px 10px rgb(204, 203, 203);
border: 1px solid #ececec;
}
.query-box ul {
overflow: initial;
}
.hqb_t {
padding: 10px 20px;
font-size: 16px;
background-color: #e95252;
border: 1px solid #e95252;
color: #fff;
text-align: center;
margin-bottom: 15px;
}
.query-box li:last-child {
float: left;
}
.query-box > ul > li:last-child {
float: right;
}
.query-box .hight_query ul .el-input {
width: inherit;
}
.hight_query_box ul li {
margin-top: 0;
float: left;
margin-right: 15px;
}
.hight_query_box ul li label {
font-size: 14px;
}
.hight_query_box .el-form {
padding: 0 20px;
}
.hight_query_box ul li._hqb_btn {
float: right;
margin-right: 25px;
padding-top: 5px;
position: inherit;
}
.Receipt_box {
padding: 15px;
color: #c94052;
width: 614px;
background-color: rgba(242, 242, 242, 1);
border: 1px solid rgba(228, 228, 228, 1);
}
.Receipt_box.color_blur {
color: #106baf;
}
.Receipt_box.color_blur .rb_stit span {
display: inline-block;
border-bottom: 2px solid #106baf;
padding: 0 20px;
}
.rb_tit {
font-size: 18px;
text-align: center;
}
.rb_stit {
font-size: 14px;
text-align: center;
}
.rb_stit span {
display: inline-block;
border-bottom: 2px solid #c94052;
padding: 0 20px;
}
.rb_top_row {
display: flex;
justify-content: space-between;
font-size: 12px;
}
.rb_top_row span._r_name {
color: #333333;
}
.rb_top_row span._r_bold {
font-weight: bold;
}
.rb_top_row ._r_time span {
color: #333333;
}
._r_mb5 {
margin-bottom: 5px;
}
.Receipt_table {
width: 100%;
font-size: 14px;
text-align: center;
}
.Receipt_table .th {
font-weight: 200 !important;
}
._r_mt10 {
margin-top: 10px;
}
._bg__ {
display: inline-block;
padding: 2px 8px;
color: white;
border-radius: 4px;
}
._bg_red {
background-color: #e95252;
}
._bg_green {
background-color: #2bb87c;
}
.text_d {
text-decoration: underline;
cursor: pointer;
}
.PingFangSC {
font-weight: bold;
}
.Bill_par {
position: relative;
}
tr th,
tr td {
text-align: left;
padding-left: 20px;
}
tr._item_list {
border-bottom: 1px solid #e5e5e5;
height: 78px;
}
tr._item_list td {
border-bottom: 1px solid #e5e5e5;
padding: 10px;
}
/* tr._t_head th{border-top: 1px solid #e5e5e5;} */
tr._item_list td:first-child {
border-left: 1px solid #e5e5e5;
}
tr._item_list td:last-child {
border-right: 1px solid #e5e5e5;
}
._head_img {
width: 28px;
height: 28px;
border-radius: 50%;
vertical-align: middle;
}
._btn_group {
font-size: 14px;
}
.icon-daiqueren {
color: #4bca81;
}
.icon-yiqueren {
color: #4bca81;
}
.icon-yiquxiao {
color: #959595;
}
.icon-shenhebohui {
color: #e95252;
}
.icon-icon-zancun {
color: #ff9c01;
}
.singeRowTable tr:hover {
background-color: white;
}
._TradeWayList {
padding: 5px 10px;
background-color: #eeeeee;
border-radius: 4px;
margin: 10px 0;
width: 190px;
}
._bold {
font-weight: bold;
}
._bank_name,
._bank_type {
display: inline-block;
background-color: #333333;
color: white;
padding: 2px 4px;
border-radius: 4px;
margin-left: 10px;
}
._bank_name {
margin-left: 10px;
}
._bank_type {
background-color: #2aaef2;
}
._bank_type2 {
background-color: #ff9c01;
}
._font_init {
color: #333333;
font-size: 12px;
vertical-align: top;
}
.InfoChangeLog {
height: auto;
max-height: 220px;
background-color: #ffffff;
}
.changLogList {
padding-left: 20px;
max-height: 180px;
overflow: auto;
}
.changLogList_l {
border-left: 1px solid #e9e9e9;
position: relative;
padding-bottom: 10px;
padding-left: 20px;
padding-top: 10px;
}
._radius_green {
background-color: #47bf8c;
width: 7px;
height: 7px;
border-radius: 50%;
display: inline-block;
position: absolute;
left: -4px;
top: 19px;
}
.changLog_time {
color: #666666;
font-size: 12px;
display: inline-block;
padding-right: 10px;
}
._icon_btn i {
width: 30px;
height: 30px;
display: inline-block;
color: white !important;
border-radius: 50%;
text-align: center;
line-height: 30px;
margin-right: 10px;
cursor: pointer;
outline: none;
}
._icon_btn i.edit {
background-color: #00c6ff;
font-size: 16px;
}
._icon_btn i.edit:hover {
background-color: #59daff;
}
._icon_btn i.edit:active {
background-color: #00b8ec;
}
._icon_btn i.icon-sousuo {
background-color: #47bf8c;
}
._icon_btn i.icon-sousuo:hover {
background-color: #66bb97;
}
._icon_btn i.icon-sousuo:active {
background-color: #35ab79;
}
._icon_btn i.icon-ico_commodity_defaul {
background-color: #f16c3c;
}
._icon_btn i.icon-ico_commodity_defaul:hover {
background-color: #e87c54;
}
._icon_btn i.icon-ico_commodity_defaul:active {
background-color: #f76630;
}
._icon_btn i.icon-quxiao1 {
background-color: #e95252;
}
._icon_btn i.icon-quxiao1:hover {
background-color: #ea6d6d;
}
._icon_btn i.icon-quxiao1:active {
background-color: #e42d2d;
}
._icon_btn i.icon-zhuanjiao1 {
background-color: #e6a014;
font-size: 16px;
}
._icon_btn i.icon-zhuanjiao1:hover {
background-color: rgb(235, 184, 84);
}
._icon_btn i.icon-zhuanjiao1:active {
background-color: rgb(223, 150, 6);
}
._tag_span {
background-color: rgba(64, 158, 255, 0.1);
display: inline-block;
padding: 0 5px;
height: 22px;
line-height: 20px;
font-size: 12px;
color: #409eff;
border-radius: 4px;
box-sizing: border-box;
border: 1px solid rgba(64, 158, 255, 0.2);
white-space: nowrap;
margin-bottom: 4px;
}
._tag_span._tag_warr {
background-color: rgba(103, 194, 58, 0.1);
border-color: rgba(103, 194, 58, 0.2);
color: #67c23a;
}
._fex_cen {
display: flex;
align-items: center;
}
._pad5 {
padding: 5px 10px;
}
._color_gar {
color: gray;
}
._TCIDAndTCNUMList {
display: flex;
}
</style>
<template>
<div class="page_fnDm page_RecPayQuery">
<div class="query-box">
<el-form class="_info_box clearfix" label-width="110px">
<el-row style="padding:15px 20px 0 0;">
<el-col :span="4">
<el-form-item label="出团公司:">
<el-select filterable v-model="msg.OutBranchId" class>
<el-option :value="-1" label="不限"></el-option>
<el-option
v-for="item in CompanyList"
:label="item.BName"
:value="item.Id"
:key="item.Id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="出发城市:">
<el-select filterable v-model="msg.StartCityId" class>
<el-option :value="0" label="不限"></el-option>
<el-option
v-for="item in startCityList1"
:label="item.startCityName"
:value="item.ID"
:key="item.ID"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="线路:">
<el-select filterable v-model="msg.LineId" @change="getLineTeamList(msg.LineId)">
<el-option :value="0" label="不限"></el-option>
<el-option
v-for="item in LineList"
:label="item.LineName"
:value="item.LineID"
:key="item.LineID"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="系列:">
<el-select filterable v-model="msg.LineTeamId" class>
<el-option :value="0" label="不限"></el-option>
<el-option
v-for="item in LineTeamList"
:label="item.LtName"
:value="item.LtID"
:key="item.LtID"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="团号:">
<el-input v-model="msg.TCNUM" class></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="团队编号:">
<el-input v-model="msg.TCID" class></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="发团日期:">
<el-date-picker
class="h34"
@change="timeAdd(1)"
v-model="productionDate"
type="daterange"
value-format="yyyy-MM-dd"
:picker-options="pickerOptions"
range-separator="至"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<ul class="clearfix">
<li class="hight_query">
<!-- <button class="normalBtn" @click="openKaiQiZzBox('一键开启')">一键开启</button>
<button class="hollowFixedBtn" @click="openKaiQiZzBox('一键关闭')">一键关闭</button> -->
<button class="normalBtn" @click="resetPageIndex(),getPageList()">{{$t('pub.searchBtn')}}</button>
<button class="hollowFixedBtn" @click="method5()">导出</button>
<!--<button class="hollowFixedBtn" @click="exportExcelCurrentPage">导出2</button>-->
</li>
</ul>
</div>
<div class="_fnDm_content" v-loading="loading">
<v-table
is-horizontal-resize
column-width-drag
:show-vertical-border="true"
style="width:100%"
:columns="columns"
:table-data="DataList"
:filter-method="filterMethod"
:total="total"
:pageSize="msg.pageSize"
:pageIndex="msg.pageIndex"
:handleCurrentChange="handleCurrentChanges"
:row-height="30"
:column-cell-class-name="columnCellClass"
@on-custom-comp="customCompFunc"
@sort-change="sortChange"
:footer="footer"
:footer-row-height="33"
:multiple-sort="multipleSort"
>
<!-- 多个排序 -->
</v-table>
</div>
<el-dialog
custom-class="w750"
:title="kaiqiZzTitle"
:visible.sync="kaiqiZzBox"
center
:before-close="initKaiqiZzBox"
v-loading="kaiqiZzLoading"
>
<div style="text-align: center">
<label>发团日期:</label>
<el-date-picker
class="h34"
@change="timeAdd(2)"
v-model="KaiqiZzTime"
type="daterange"
value-format="yyyy-MM-dd"
:picker-options="pickerOptions2"
range-separator="至"
></el-date-picker>
</div>
<div slot="footer" style="text-align: right;margin-top: 15px;" class="dialog-footer">
<button class="normalBtn" type="primary" @click="submitKaiqiZzBox">确定</button>
<button class="hollowFixedBtn" @click="initKaiqiZzBox">{{$t('pub.cancelBtn')}}</button>
</div>
</el-dialog>
</div>
</template>
<script>
import Vue from "vue";
import XLSX from "xlsx";
import downloadExcelEasy from "../../../assets/utils/downloadExcelEasy";
import { setTimeout } from "timers";
Vue.component("TCIDJump", {
// 团队跳转
template: `<span style="cursor: pointer" @click="goUrl('TeamBalancePayment',rowData.TCID)">{{rowData.TCID}}</span>`,
props: {
rowData: {
type: Object
},
field: {
type: String
},
index: {
type: Number
}
},
methods: {
goUrl(path, id) {
this.$router.push({
path: "/" + path,
query: { id: id, blank: "y" }
});
}
}
});
Vue.component("TCNUMJump", {
// 团队跳转
template: `<span style="cursor: pointer" @click="goUrl('TravelControlList',rowData.TCNUM)">{{rowData.TCNUM}}</span>`,
props: {
rowData: {
type: Object
},
field: {
type: String
},
index: {
type: Number
}
},
methods: {
goUrl(path, id) {
this.$router.push({
path: "/" + path,
query: { tcmun: id, blank: "y" }
});
}
}
});
Vue.component("GuestNum", {
// 人数
template: `<span>{{rowData.GuestNum}}+{{rowData.LeaderNum}}</span>`,
props: {
rowData: {
type: Object
},
field: {
type: String
},
index: {
type: Number
}
}
});
// Vue.component("Transport", {
// // 是否联运团
// template: `<span><span v-if="rowData.Is_Transport==='是'" style="color: red;">{{rowData.Is_Transport}}</span><span v-else>{{rowData.Is_Transport}}</span></span>`,
// props: {
// rowData: {
// type: Object
// },
// field: {
// type: String
// },
// index: {
// type: Number
// }
// }
// });
export default {
data() {
return {
showID: false,
active: 1,
userId: 0,
msg: {
pageIndex: 1,
pageSize: 18,
OutBranchId: "",
StartCityId: "",
LineId: "",
LineTeamId: "",
TCID: "",
startDate: "",
endDate: "",
Type: 2,
},
getCompanyMsg: {
// 公司
RB_Group_Id: "0",
Status: "0"
},
DataList: [],
CompanyList: [],
productionDate: [],
loading: false,
currentPage: 1,
total: 0,
tableData: [],
LineList: [],
LineTeamList: [],
startCityList1: [],
multipleSort: false,
kaiqiZzBox: false,
KaiqiZzTime: [],
kaiqiZzTitle: "",
kaiqiZzLoading: false,
kaiqiZzMsg: {
QStartDate: "",
QEndDate: "",
Is_Open: ""
},
defaultMonth: [],
pickerOptions: {
onPick: ({ maxDate, minDate }) => {
this.choiceDate = minDate.getTime();
if (maxDate) {
this.choiceDate = "";
}
},
disabledDate: time => {
if(time < new Date("2018-12-31")){
return true;
} else{
if (this.choiceDate) {
const one = 365 * 24 * 3600 * 1000;
const minTime = this.choiceDate - one;
const maxTime = this.choiceDate + one;
return time.getTime() < minTime || time.getTime() > maxTime;
}
}
}
},
pickerOptions2: {
onPick: ({ maxDate, minDate }) => {
this.choiceDate = minDate.getTime();
if (maxDate) {
this.choiceDate = "";
}
},
disabledDate: time => {
if (this.choiceDate) {
const one = 30 * 24 * 3600 * 1000;
const minTime = this.choiceDate - one;
const maxTime = this.choiceDate + one;
return time.getTime() < minTime || time.getTime() > maxTime;
}
}
},
columns: [
// 团队编号、团号 点击跳转团控列表
{
field: "LineName",
title: "线路",
width: 80,
titleAlign: "left",
columnAlign: "left",
isResize: true,
result: [],
type: "select",
isFrozen: true
},
{
field: "TCID",
title: "团队编号",
width: 80,
titleAlign: "left",
columnAlign: "left",
isResize: true,
isFrozen: true,
componentName: "TCIDJump"
},
{
field: "TCNUM",
title: "团号",
width: 150,
titleAlign: "left",
columnAlign: "left",
isResize: true,
result: "",
filterMultiple: false,
type: "text",
isFrozen: true,
componentName: "TCNUMJump"
},
{
field: "TransportBranchName",
title: "联运公司",
width: 80,
titleAlign: "left",
columnAlign: "left",
isResize: true,
isFrozen: true,
},
{
field: "YingShou",
formatter: this.moneyFormat,
title: "应收金额",
width: 100,
titleAlign: "left",
columnAlign: "left",
isResize: true
}, //,orderBy:''
{
field: "ShiShou",
formatter: this.moneyFormat,
title: "实收金额",
width: 100,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "TuiKuan",
formatter: this.moneyFormat,
title: "退款",
width: 100,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "PingTaiShuiJin",
formatter: this.moneyFormat,
title: "平台税金",
width: 100,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "ZaiTu",
formatter: this.moneyFormat,
title: "在途",
width: 100,
titleAlign: "left",
columnAlign: "left",
isResize: true,
},
{
field: "DaiShou",
formatter: this.moneyFormat,
title: "待收金额",
width: 100,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "YiShou",
formatter: this.moneyFormat,
title: "溢收金额",
width: 100,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "GuestNum",
title: "人数",
width: 50,
titleAlign: "left",
columnAlign: "left",
isResize: true,
componentName: "GuestNum"
},
{
field: "YaoQingHan",
formatter: this.moneyFormat,
title: "邀请函",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "CheZi",
formatter: this.moneyFormat,
title: "车资",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "JiPiao",
formatter: this.moneyFormat,
title: "机票款",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "GuoNeiLianYunJiPiao",
formatter: this.moneyFormat,
title: "国内联运机票",
width: 120,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
// {field: 'Money11', title: '房费',width: 90, titleAlign: 'left',columnAlign:'left',isResize:true},
{
field: "Visa",
formatter: this.moneyFormat,
title: "签证",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
title: "提成",
width: 100,
titleAlign: "left",
columnAlign: "left",
isResize: true,
formatter(rowData, rowIndex, pagingIndex, field) {
return 0
}
},
{
field: "QiTa",
formatter: this.moneyFormat,
title: "其他",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "DiJieZhiChu",
formatter: this.moneyFormat,
title: "地接款支出",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "DiJieShouRu",
formatter: this.moneyFormat,
title: "地接款收入",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "ZiFei",
formatter: this.moneyFormat,
title: "自费收入",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "XiaoFeiShouRu",
formatter: this.moneyFormat,
title: "小费收入",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "YongJinShouRu",
formatter: this.moneyFormat,
title: "佣金收入",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "YingFu",
formatter: this.moneyFormat,
title: "应付金额",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "MaoLi",
formatter: this.moneyFormat,
title: "毛利",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "MaoLiRate",
formatter: this.moneyFormat,
title: "毛利率",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "ShiJiLiRun",
formatter: this.moneyFormat,
title: "实际利润",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "Remark",
formatter: this.moneyFormat,
title: "备注",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "BName",
title: "公司别",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "TransportCD",
title: "成都",
width: 50,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "TransportKM",
title: "昆明",
width: 50,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "TransportCQ",
title: "重庆",
width: 50,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "TransportWH",
title: "武汉",
width: 50,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "TransportXA",
title: "西安",
width: 50,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "TransportCS",
title: "长沙",
width: 50,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "TransportGY",
title: "贵阳",
width: 50,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "TransportNC",
title: "南昌",
width: 50,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "TransportXM",
title: "厦门",
width: 50,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "TransportLZ",
title: "兰州",
width: 50,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "TransportNJ",
title: "南京",
width: 50,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "TransportWT",
title: "微途",
width: 50,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "TransportHF",
title: "合肥",
width: 50,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "TransportNN",
title: "南宁",
width: 50,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "TransportCost",
formatter: this.moneyFormat,
title: "联运成本",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "YingYeE",
formatter: this.moneyFormat,
title: "联运营业额",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "RealIncome",
formatter: this.moneyFormat,
title: "实际营业额",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "GRPNum",
title: "GRP",
width: 60,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "TKTNum",
title: "TKT",
width: 60,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "VisaNum",
title: "VISA",
width: 60,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "ZiYouXingNum",
title: "自由行",
width: 60,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "DiJieNum",
title: "地接",
width: 60,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "HotelNum",
title: "酒店",
width: 60,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "DanTuanNum",
title: "单团",
width: 60,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "HuZhaoNum",
title: "护照",
width: 60,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "AverageIncome",
formatter: this.moneyFormat,
title: "平均收入",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "AverageCost",
formatter: this.moneyFormat,
title: "平均成本",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
},
{
field: "AverageProfit",
formatter: this.moneyFormat,
title: "平均利润",
width: 90,
titleAlign: "left",
columnAlign: "left",
isResize: true
}
],
footer: [],
pageSize: 6,
pageIndex: 1
};
},
created() {},
components: {},
mounted() {
let allH, allW, cH, cW;
allH = document.documentElement.clientHeight;
allW = document.documentElement.clientWidth;
cW = allW - 90;
cH = allH - 350;
this.msg.pageSize = parseInt(cH / 30) - 1;
let userInfo = this.getLocalStorage();
this.getCompanyMsg.RB_Group_Id = userInfo.RB_Group_id; //集团ID
this.userId = userInfo.EmployeeId;
this.getCompanyList();
this.getPageList();
this.getLineList();
this.getStartList1();
},
methods: {
submitKaiqiZzBox: function() {
// 开关闸提交
if (
this.kaiqiZzMsg.QStartDate === "" ||
this.kaiqiZzMsg.QEndDate === ""
) {
return this.$message.error("请选择发团日期");
}
this.kaiqiZzLoading = true;
this.apipost(
"travel_post_UpdateBatchBrakeAccountStatus",
this.kaiqiZzMsg,
r => {
if (r.data.resultCode === 1) {
this.getPageList();
this.initKaiqiZzBox();
this.kaiqiZzLoading = false;
this.$message.success(r.data.message);
} else {
this.kaiqiZzLoading = false;
}
},
null
);
},
openKaiQiZzBox: function(text) {
// 打开开关闸弹窗
this.kaiqiZzMsg.Is_Open = text === "一键开启" ? 0 : 1;
this.kaiqiZzTitle = text;
this.kaiqiZzBox = true;
},
initKaiqiZzBox: function() {
// 初始化开关闸信息
this.KaiqiZzTime = [];
this.kaiqiZzMsg = {
QStartDate: "",
QEndDate: "",
Is_Open: ""
};
this.kaiqiZzBox = false;
},
method5: function() {
let msg = JSON.parse(JSON.stringify(this.msg));
delete msg.pageIndex;
delete msg.pageSize;
msg.EmployeeId = this.userId;
this.GetLocalFile(
"financestatistics_post_OutToExcelRevenueReportList",
msg,
"营收报表.xls"
);
},
exportExcelCurrentPage() {
//待实现
// 导出文件名
let xlsxName = "团队营收报表";
// 数据源
let dataSource = this.DataList;
let data = [];
// 创建表头数据
data.push([
"线路",
"团队编号",
"团号",
"是否有联运支出",
"应收金额",
"实收金额",
"退款",
"平台税金",
"待收金额",
"溢收金额",
"人数",
"邀请函",
"车资",
"机票款",
"国内联运机票",
"签证",
"其他",
"地接款支出",
"地接款收入",
"自费收入",
"小费收入",
"佣金收入",
"应付金额",
"毛利",
"毛利率",
"实际利润",
"备注",
"公司别",
"成都",
"昆明",
"重庆",
"武汉",
"西安",
"长沙",
"贵阳",
"南昌",
"厦门",
"兰州",
"南京",
"微途",
"合肥",
"南宁",
"联运成本",
"营业额",
"GRP",
"TKT",
"VISA",
"自由行",
"地接",
"酒店",
"单团",
"护照",
"平均收入",
"平均成本",
"平均利润"
]);
downloadExcelEasy.downLoad(data[0], dataSource, this.footer);
return;
let wscols = {};
// 每列的宽度
wscols = [];
// 组装表格内容
dataSource.forEach((x, index) => {
console.log(index);
let obj = [];
obj.push(x.FrID + " ");
obj.push(x.TCNUM);
obj.push(x.TCID);
obj.push("否");
for (let i = 0; i <= data[0].length - 5; i++) {
obj.push(Math.random() * 9999);
}
data.push(obj);
if (index === dataSource.length - 1) {
let obj = [];
this.footer[0].forEach(x => {
obj.push(x);
});
data.push(obj);
}
});
let colName = [
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
"AA",
"AB",
"AC",
"AD",
"AE",
"AF",
"AG",
"AH",
"AI",
"AJ",
"AK",
"AL",
"AM",
"AN",
"AO",
"AP",
"AQ",
"AR",
"AS",
"AT",
"AU",
"AV",
"AW",
"AX",
"AY",
"AZ",
"BA",
"BB",
"BC",
"BD",
"BE",
"BF"
];
const ws = XLSX.utils.aoa_to_sheet(data);
ws["!cols"] = wscols;
ws["!rows"] = [];
// colName.forEach((x,index)=>{
// wscols.push({wpx: 100})
// });
// dataSource.forEach((x,index)=>{
// if(index===dataSource.length)
// ws['!rows'].push({ hpx:30 });
// else
// ws['!rows'].push({});
// });
const wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, xlsxName);
var dataInfo = wb.Sheets[wb.SheetNames[0]];
console.log(data[0].length);
console.log(colName.length);
// return
data[0].forEach((x, i) => {
dataInfo[colName[i] + "1"].s = {
fill: { fgColor: { rgb: "#ffff00" } },
font: {
name: "微软雅黑",
sz: 32,
color: { rgb: "#ffff00" },
bold: true,
italic: true,
underline: true
},
alignment: {
horizontal: "center",
vertical: "center"
}
};
});
console.log(dataInfo);
// return
XLSX.writeFile(wb, xlsxName + ".xlsx");
},
moneyFormat(rowData, rowIndex, pagingIndex, field) {
if (field === "YingShou") return this.priceFormat(rowData.YingShou);
if (field === "ShiShou") return this.priceFormat(rowData.ShiShou);
if (field === "TuiKuan") return this.priceFormat(rowData.TuiKuan);
if (field === "PingTaiShuiJin")
return this.priceFormat(rowData.PingTaiShuiJin);
if (field === "DaiShou") return this.priceFormat(rowData.DaiShou);
if (field === "ZaiTu") return this.priceFormat(rowData.ZaiTu);
if (field === "RealIncome") return this.priceFormat(rowData.RealIncome);
if (field === "YiShou") return this.priceFormat(rowData.YiShou);
if (field === "YaoQingHan") return this.priceFormat(rowData.YaoQingHan);
if (field === "CheZi") return this.priceFormat(rowData.CheZi);
if (field === "JiPiao") return this.priceFormat(rowData.JiPiao);
if (field === "GuoNeiLianYunJiPiao")
return this.priceFormat(rowData.GuoNeiLianYunJiPiao);
if (field === "Visa") return this.priceFormat(rowData.Visa);
if (field === "QiTa") return this.priceFormat(rowData.QiTa);
if (field === "DiJieZhiChu") return this.priceFormat(rowData.DiJieZhiChu);
if (field === "DiJieShouRu") return this.priceFormat(rowData.DiJieShouRu);
if (field === "ZiFei") return this.priceFormat(rowData.ZiFei);
if (field === "MianShuiDian")
return this.priceFormat(rowData.MianShuiDian);
if (field === "XiaoFeiShouRu")
return this.priceFormat(rowData.XiaoFeiShouRu);
if (field === "YongJinShouRu")
return this.priceFormat(rowData.YongJinShouRu);
if (field === "YingFu") return this.priceFormat(rowData.YingFu);
if (field === "MaoLi") return this.priceFormat(rowData.MaoLi);
if (field === "MaoLiRate") return this.priceFormat(rowData.MaoLiRate);
if (field === "ShiJiLiRun") return this.priceFormat(rowData.ShiJiLiRun);
if (field === "TransportCost")
return this.priceFormat(rowData.TransportCost);
if (field === "YingYeE") return this.priceFormat(rowData.YingYeE);
if (field === "AverageIncome")
return this.priceFormat(rowData.AverageIncome);
if (field === "AverageCost") return this.priceFormat(rowData.AverageCost);
if (field === "AverageProfit")
return this.priceFormat(rowData.AverageProfit);
},
setFooterCellClass(rowIndex, colIndex, value) {
if (colIndex === 0) {
return "footer-cell-class-name-title";
} else {
return "footer-cell-class-name-normal";
}
},
priceFormat(value) {
if (value == null) {
return 0.0;
}
let nStr = value.toFixed(2);
nStr += "";
let x = nStr.split(".");
let x1 = x[0];
let x2 = x.length > 1 ? "." + x[1] : "";
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, "$1" + "," + "$2");
}
return x1 + x2;
},
columnCellClass(rowIndex, columnName, rowData) {
// 给三行column为‘hobby’的列设置className
if (columnName === "LineName") {
return "column-cell-class-name-test";
}
if (columnName === "TCNUM") {
return "column-cell-class-name-test2";
}
if (columnName === "TCID") {
return "column-cell-class-name-test3";
}
if (columnName === "islianyun") {
return "column-cell-class-name-test4";
}
if (rowIndex === 18) {
return "column-cell-class-name-test-row";
}
},
getStartList1() {
// 获取出发城市
this.apipost(
"city_post_GetList",
{
isDefault: -1,
priceType: -1
},
res => {
if (res.data.resultCode == 1) {
this.startCityList1 = res.data.data;
} else {
console.log(res.data);
}
}
);
},
getLineTeamList(lineId) {
//获取系列列表
this.LineTeamList = [];
this.apipost(
"team_post_GetList",
{
lineID: lineId,
isTOOP: 1
},
res => {
if (res.data.resultCode == 1) {
this.msg.LineTeamId = "-1";
this.LineTeamList = res.data.data;
}
}
);
},
getLineList() {
// 获取线路
this.apipost("line_post_GetAllList", {}, res => {
if (res.data.resultCode == 1) {
this.LineList = res.data.data;
} else {
this.$message.error(res.data.message);
}
});
},
customCompFunc(param) {
console.log(param);
},
compare(property, type) {
// 升序 t 1升 2降
if (type === 1) {
return function(a, b) {
let value1 = a[property];
let value2 = b[property];
return value1 - value2;
};
} else {
return function(a, b) {
let value1 = a[property];
let value2 = b[property];
return value2 - value1;
};
}
},
sortChange(param) {
console.log(param);
if (param.YingShou === "asc") {
this.DataList.sort(this.compare("YingShou", 1));
} else if (param.YingShou === "desc") {
this.DataList.sort(this.compare("YingShou", 2));
} else {
}
//自己写实现
//{gender:"",name:"asc"}
},
// 数据筛选
filterMethod(filters) {
console.log(filters);
// let tableData = this.DataList;
// if (filters.FrID && filters.FrID.length>0){
// tableData = tableData.filter(item => filters.FrID.indexOf(item.FrID)!=-1)
// }
// if (filters.name!='' && filters.name!='-1'){
// if(!Array.isArray(filters.name))
// tableData = tableData.filter(item => filters.name==item.id);
// else
// tableData = tableData.filter(item => filters.name==item.id);
// }
// if (filters.hobby!=''){
// tableData = tableData.filter(item => item.hobby.indexOf(filters.hobby)!=-1);
// }
// if(filters.dateRange.beginDate){
// tableData = tableData.filter(item => new Date(filters.dateRange.beginDate).getTime()<=new Date(item.dateRange).getTime());
// }
// if(filters.dateRange.endDate){
// tableData = tableData.filter(item => new Date(filters.dateRange.endDate).getTime()>=new Date(item.dateRange).getTime());
// }
// this.pageIndex = 1
this.total = tableData.length;
// this.tableData = tableData.filter((item,index)=>index==0);
},
handleCurrentChanges(val) {
this.pageIndex = this.msg.pageIndex = val;
this.getPageList();
},
getPageList() {
// 获取列表数据
this.loading = true;
if (!this.msg.OutBranchId && this.msg.OutBranchId !== 0)
this.msg.OutBranchId = -1;
if (!this.msg.StartCityId) this.msg.StartCityId = 0;
if (!this.msg.LineId) this.msg.LineId = 0;
if (!this.msg.LineTeamId) this.msg.LineTeamId = 0;
if (!this.msg.TCID) this.msg.TCID = 0;
if (this.msg.startDate == "") this.msg.startDate = "2019-01-01";
this.apipost(
"financestatistics_post_GetPageList",
this.msg,
res => {
if (res.data.resultCode == 1) {
let data = res.data.data.pageData;
// res.data.data.TotalRevenue
this.total = res.data.data.count;
if (this.total == 0) {
this.DataList = [];
} else {
let newData = [];
data.forEach((x, index) => {
if (index !== data.length - 1) {
x.Is_Transport = x.Is_Transport === 0 ? "否" : "是";
newData.push(x);
} else {
x.MaoLiRate = this.total===0 ? 0 : parseFloat(x.MaoLiRate/this.total);
x.AverageIncome = this.total===0 ? 0 : parseFloat(x.AverageIncome/this.total);
x.AverageCost = this.total===0 ? 0 : parseFloat(x.AverageCost/this.total);
x.AverageProfit = this.total===0 ? 0 : parseFloat(x.AverageProfit/this.total);
x.LineName = "合计";
x.TCID = "";
x.TCNUM = "";
x.Is_Transport = "";
x.BName = "";
newData.push(x);
}
});
this.DataList = newData;
// this.footer.push(data[data.length-1])
}
this.loading = false;
} else {
this.loading = false;
this.$message.error(res.data.message);
}
if ((this.msg.OutBranchId = -1)) this.msg.OutBranchId = -1;
if (!this.msg.StartCityId) this.msg.StartCityId = 0;
if (!this.msg.LineId) this.msg.LineId = 0;
if (!this.msg.LineTeamId) this.msg.LineTeamId = 0;
if (!this.msg.TCID) this.msg.TCID = "";
},
err => {}
);
},
getCompanyList() {
//获取公司列表
this.apipost(
"admin_get_BranchGetList",
this.getCompanyMsg,
res => {
if (res.data.resultCode == 1) {
this.CompanyList = res.data.data;
} else {
}
},
err => {}
);
},
timeAdd(type) {
// 日期格式
if (type === 1) {
if (!this.productionDate) {
this.msg.startDate = "";
this.msg.endDate = "";
return;
}
this.msg.startDate = this.productionDate[0];
this.msg.endDate = this.productionDate[1];
}
if (type === 2) {
if (!this.KaiqiZzTime) {
this.kaiqiZzMsg.QStartDate = "";
this.kaiqiZzMsg.QEndDate = "";
return;
}
this.kaiqiZzMsg.QStartDate = this.KaiqiZzTime[0];
this.kaiqiZzMsg.QEndDate = this.KaiqiZzTime[1];
}
},
handleCurrentChange(val) {
//翻页
this.msg.pageIndex = val;
this.getPageList();
},
resetPageIndex() {
// 重置页码
this.msg.pageIndex = 1;
this.currentPage = 1;
}
}
};
</script>
......@@ -627,7 +627,8 @@ export default {
LineTeamId: "",
TCID: "",
startDate: "",
endDate: ""
endDate: "",
Type: 1,
},
getCompanyMsg: {
// 公司
......
......@@ -28,7 +28,7 @@
background-color: white;
padding: 15px;
border-radius: 4px;
width: 50%;
width: 800px;
}
.page_SalesFinancialDetail .sfd_header>ul>li {
float: left;
......@@ -76,8 +76,8 @@
<template>
<div class="page_SalesFinancialDetail">
<ul class="sfd_nav clearfix">
<li :class="activeTab==1?'_active':''" @click="activeTab=1,getList(1)">收款单</li>
<li :class="activeTab==2?'_active':''" @click="activeTab=2,getList(2)">付款单</li>
<li :class="activeTab===1?'_active':''" @click="activeTab=1,getList(1)">收款单</li>
<li :class="activeTab===2?'_active':''" @click="activeTab=2,getList(2)">付款单</li>
</ul>
<div v-loading="loading">
<div class="sfd_header">
......@@ -85,34 +85,76 @@
<li><span>团队编号:</span>{{tcnum}}</li>
<li><span>订单号:</span>{{orderId}}</li>
<li><span>业务员:</span>{{`王大毛`}}</li>
<li><span>应收金额:</span>{{moneyFormat(0)}}</li>
<li><span>实收金额:</span>{{moneyFormat(0)}}</li>
<li><span>代收金额:</span>{{moneyFormat(0)}}</li>
<li><span>{{activeTab===1 ? '应收' : '应付'}}金额:</span>{{moneyFormat(allMoney)}}</li>
<li><span>{{activeTab===1 ? '实收' : '实付'}}金额:</span>{{moneyFormat(shiMoney)}}</li>
<li><span>{{activeTab===1 ? '待收' : '待付'}}金额:</span><span :class="{color_red:(allMoney-shiMoney)!==allMoney}">{{moneyFormat(allMoney-shiMoney)}}</span></li>
</ul>
<input type="button" :value="`新增${activeTab===1 ? '收款' : '付款'}`" class="normalBtn" @click="addFinancialOrder()">
</div>
<table border="0" cellspacing="1" cellpadding="0" class="teamRevenueExpenditureTable">
<tr>
<th width="100">单号</th>
<th width="10%">费用类型</th>
<th width="10%">交易方式</th>
<th width="10%">金额</th>
<th width="20%">交易日期</th>
<th width="10%">制单人员</th>
<th width="10%">主管审核</th>
<th>出纳审核</th>
<th width="10%">会计审核</th>
<th width="400">费用类型</th>
<th width="400">交易方式</th>
<th width="100">金额</th>
<th width="150">交易日期</th>
<th width="">制单人员</th>
<th width="">当前状态</th>
</tr>
<tr>
<td width="100" @click="goUrl('财务单据','FinancialDocumentsDetail',item2.frID,'')"><span>666</span></th>
<td width="10%">吃饭</td>
<td width="10%">现金</td>
<td width="10%">{{moneyFormat(0)}}</td>
<td width="20%">2019-02-29</td>
<td width="10%">王大毛</td>
<td width="10%">王二毛</td>
<td>王三毛</td>
<td width="10%">王四毛</td>
<tr v-for="(item, index) in dataList">
<td width="100" @click="goUrl('财务单据','FinancialDocumentsDetail',item.frID,'')"><span>{{item.FrID}}</span></th>
<td width="">
<template v-for="(s,si) in item.CostTypeList">
<span style="background-color: rgba(64,158,255,.1);display: inline-block;padding: 0 5px;height: 22px;line-height: 20px;font-size: 12px;color: #646464;border-radius: 4px;box-sizing: border-box;border: 1px solid rgba(64,158,255,.2);white-space: nowrap;margin-bottom: 4px;margin-right: 4px;">{{s}}</span>
</template>
</td>
<td width="">
<template v-if="item.TradeWayList&&item.TradeWayList.length>0">
<div class="_TradeWayList" v-for="(tw,twIn) in item.TradeWayList" style="line-height: normal !important;padding: 5px 10px;background-color: #EEEEEE;border-radius: 4px;margin: 5px auto;width:230px">
<p><span style="font-weight: bold;color:#333333">{{tw.Alias}}</span><span class="_bank_name" style="height:20px;;display: inline-block;background-color: #333333;color: white;padding: 2px 4px;border-radius: 4px;margin-left:10px;margin-letf:10px">{{item.TradeWayList[0].TypeName}}</span><span style="height:20px;display: inline-block;background-color: #333333;color: white;padding: 2px 4px;border-radius: 4px;margin-left:10px;" :style="{'background-color':tw.AccountType=='私'?'#2AAEF2':'#FF9C01'}">{{tw.AccountType==""?'无':tw.AccountType}}</span> </p>
<p style="color:#333333">{{tw.BankNo}}</p>
</div>
</template>
<template v-else>
<div class="_pad5">
</div>
</template>
</td>
<td width="">
<p style="line-height:20px">{{item.Type==1?'应收':'应付'}}:<span>{{moneyFormat(item.Money)}}</span></p>
<p style="line-height:20px">{{item.Type==1?'实收':'实付'}}:<span>{{moneyFormat(item.PayMoney)}}</span></p>
</td>
<td width="">{{item.TradeDate}}</td>
<td width="">{{item.EmName}}</td>
<td width="">
<i v-if="item.Status==1" class="iconfont icon-daiqueren" style="color: #4BCA81"></i>
<i v-if="item.Status==4" class="iconfont icon-yiquxiao" style="color: #4BCA81"></i>
<i v-if="item.Status==2" class="iconfont icon-yiqueren" style="color: #959595"></i>
<i v-if="item.Status==3" class="iconfont icon-shenhebohui" style="color: #E95252"></i>
<i v-if="item.Status==0" class="iconfont icon-zancun" style="color: #FF9C01"></i>
<el-popover
popper-class="detailsIT_Journal"
width="250"
trigger="click">
<div style="height: auto;max-height: 220px;background-color: #FFFFFF;">
<div class="changLog">
<p class="_log_t">流程日志</p>
<ul style="padding-left: 20px;max-height: 180px;overflow: auto;" v-if="GetFinancLogList" v-loading='LogLoading'>
<li style="border-left: 1px solid #E9E9E9;position: relative;padding-bottom: 10px;padding-left: 20px;padding-top: 10px;" v-for="(log,li) in GetFinancLogList">
<span style="background-color: #47BF8C;width: 7px;height: 7px;border-radius: 50%;display: inline-block;position: absolute;left: -4px;top: 19px;"></span>
<p> <span class="_color_blue">{{log.EmName}}</span> <span class="fr changLog_time">{{log.UpdateDate}}</span> </p>
<p class="_dtel">{{log.StartValue}}</p>
</li>
</ul>
<ul v-else>
<li>暂无修改日志</li>
</ul>
</div>
</div>
<span slot="reference" style="cursor: pointer;" @click="Financial_post_GetFinancLogList(item.FrID)">{{item.StatusStr}}</span>
</el-popover>
</td>
</tr>
<tr v-if="dataList.length===0">
<td colspan="9" class="noDataNotice">
......@@ -136,56 +178,125 @@ export default {
noData: true,
activeTab: 1,
tcnum: '',
msg:{
pageIndex: 1,
pageSize: 999,
FrID: '',
sDate: '',
eDate: '',
Status: '-1',
TemplateId: '0',
RB_Branch_Id: '',
RB_Depart_Id: '',
sTradeDate: '',
eTradeDate: '',
ClientType: '',
RemitterName: '',
ClientID: '',
sMoney: '',
eMoney: '',
CurrencyId: '0',
CostTypeID: '',
Conditon: '',
TCID: '',
TradeWay: '0',
Type: '-1',
AccountType: '',
QEndDate: '',
QStartDate: '',
UpdateBy: '',
Sort: '2',
EmployeeId: '',
IsNotCancelFinance: 1,
},
GetFinancLogList: [],
LogLoading: true,
allMoney: 0,
shiMoney: 0,
}
}, methods: {
Financial_post_GetFinancLogList: function(id){ // 获取单据日志
if(this.checkboxShow) return
this.LogLoading = true;
this.apipost('Financial_post_GetFinancLogList',{ID:id,Type:2}, res => {
if(res.data.resultCode == 1) {
let data = res.data.data;
data.forEach(x=>{
x.UpdateDate = this.$commonUtils.formatMsgTime(x.UpdateDate)
})
this.LogLoading = false;
this.GetFinancLogList = data;
}
}, err => {})
},
goUrl: function (name, path, id, tcmun) {
this.$router.push({ name: path, query: { id: id, tcmun: tcmun, blank: 'y', tab: name} });
},
getList: function (type) {
this.loading = true
setTimeout(()=>{
this.apipost('', {ID: this.orderId}, res=>{
this.msg.Type = type;
if (!this.msg.ClientID) this.msg.ClientID=0;
if (!this.msg.ClientType) this.msg.ClientType=0;
if (!this.msg.CurrencyId) this.msg.CurrencyId=0;
if (!this.msg.CostTypeID) this.msg.CostTypeID=0;
if (!this.msg.TemplateId) this.msg.TemplateId=0;
if (!this.msg.RB_Branch_Id) this.msg.RB_Branch_Id=-1;
if (!this.msg.RB_Depart_Id) this.msg.RB_Depart_Id=0;
if (!this.msg.UpdateBy) this.msg.UpdateBy=0;
if (!this.msg.TCID) this.msg.TCID=0;
if (!this.msg.OrderID) this.msg.OrderID=0;
if (!this.msg.Status) this.msg.Status=0;
if (!this.msg.FrID) this.msg.FrID=0;
if (!this.msg.Conditon) this.msg.Conditon=1;
if (!this.msg.TradeWay) this.msg.TradeWay=0;
if (!this.msg.AccountType) this.msg.AccountType=0;
this.loading = true;
this.apipost('Financial_post_GetALLPageList', this.msg, res=>{
if (res.data.resultCode == 1) {
this.dataList = res.data.data
let data = res.data.data.pageData;
this.allMoney = 0;
this.shiMoney = 0;
if (data.length === 0){
this.dataList = [];
} else {
data.forEach(x=>{
this.allMoney += x.Money
this.shiMoney += x.PayMoney
})
this.dataList = data;
}
this.loading = false;
} else {
this.$message.error("数据获取失败!");
this.loading = false;
this.$message.error(res.data.message);
}
this.loading = false
}, null)
}, 2000)
},
addFinancialOrder: function () { // 新增单据方法
if (this.activeTab === 1) {
let TCIDARR = [this.tcid];
let orderObj = {
OrderID: obj.orderId,
OrderID: this.orderId,
OrderSource: 8,
Obj: {},
SourceID: obj.ID,
SourceID: 0,
TCIDList: TCIDARR
}
if (this.activeTab === 1) {
this.$router.push({
name: 'ChoiceAddFinancialDocuments',
query:{
"Type": 1,
"companyID": obj.outBranchId,
"companyID": this.outBranchId,
"path": "",
'blank': 'y',
'orderObj': JSON.stringify(orderObj)
}
});
} else if (this.activeTab === 2) {
let orderObj = {
OrderID: obj.orderId,
OrderSource: 8,
Obj: {},
SourceID: obj.ID,
TCIDList: TCIDARR
}
this.$router.push({
name: 'ChoiceAddFinancialDocuments',
query:{
"Type": 2,
"companyID": obj.outBranchId,
"companyID": this.outBranchId,
"path": "",
'blank': 'y',
'orderObj': JSON.stringify(orderObj)
......@@ -194,8 +305,10 @@ export default {
}
},
}, mounted() {
this.orderId = this.$route.query.orderId
this.orderId = this.msg.OrderID = this.$route.query.orderId
this.tcnum = this.$route.query.tcnum
this.tcid = this.$route.query.tcid
this.outBranchId = this.$route.query.outBranchId
this.getList(1)
}
}
......
......@@ -1192,7 +1192,7 @@
<div style="width: 100%; height: auto; overflow-x: auto;" class="ownScrollbarStyle">
<table class="groupTourOrderSearchTable" border="0" cellspacing="0" cellpadding="0" v-loading='loading'>
<tr>
<th width="120">单号&团号</th>
<th width="240">单号&团号</th>
<th width="120">客户信息</th>
<th width="70">类型</th>
<th width="150">系列&线路</th>
......@@ -1218,6 +1218,7 @@
<p class="fz12 over_ellipsis" style="width: 100%;text-decoration:underline;cursor:pointer;" :title="item.alName" @click="goUrlX('产品查询','productQuery',item.tcid,item.tcnum)">{{item.tcnum}}</p>
<p class="fz12 over_ellipsis" style="width: 100%;">{{item.commissionSPeopleName}}</p>
<p style="min-width: 180px;">发团:{{item.startDate}}</p>
<p>下单时间:{{item.createDate}}</p>
</td>
<td>
<p class="fz12 over_ellipsis" style="width: 120px;" :title="item.contactName">{{item.contactName}}</p>
......@@ -1397,26 +1398,27 @@
</div>
</td>
<td colspan="7" class="groupTourOrder_tickets" style="height: 40px;">
<div>
<div @click="goUrlSFD('SalesFinancialDetail', item.orderId, '销售财务单据', item.tcnum, item.tcid, item.outBranchId)">
<div>收款单据:</div>
<div>
<span v-for="(item2,index2) in item.financeList" :key="index2">
<span v-if="item2.colorState===1" class="groupTourOrder_tickets_blue" @click="goUrl('财务单据','FinancialDocumentsDetail',item2.frID,'')">{{item2.frID}}</span>
<span v-else-if="item2.colorState===2" class="groupTourOrder_tickets_green" @click="goUrl('财务单据','FinancialDocumentsDetail',item2.frID,'')">{{item2.frID}}</span>
<span v-else-if="item2.colorState===3" class="groupTourOrder_tickets_red" @click="goUrl('财务单据','FinancialDocumentsDetail',item2.frID,'')">{{item2.frID}}</span>
<span v-else-if="item2.colorState===4" class="groupTourOrder_tickets_black" @click="goUrl('财务单据','FinancialDocumentsDetail',item2.frID,'')">{{item2.frID}}</span>
<span v-if="item2.colorState===1" class="groupTourOrder_tickets_blue">{{item2.frID}}</span>
<span v-else-if="item2.colorState===2" class="groupTourOrder_tickets_green">{{item2.frID}}</span>
<span v-else-if="item2.colorState===3" class="groupTourOrder_tickets_red">{{item2.frID}}</span>
<span v-else-if="item2.colorState===4" class="groupTourOrder_tickets_black">{{item2.frID}}</span>
<!-- @click="goUrl('财务单据','FinancialDocumentsDetail',item2.frID,'')" -->
</span>
<span v-if="item.financeList.length===0" style="cursor: default;">暂无数据</span>
</div>
</div>
<div>
<div @click="goUrlSFD('SalesFinancialDetail', item.orderId, '销售财务单据', item.tcnum, item.tcid, item.outBranchId)">
<div>付款单据:</div>
<div>
<span v-for="(item2,index2) in item.refundFinanceList" :key="index2">
<span v-if="item2.colorState===1" class="groupTourOrder_tickets_blue" @click="goUrl('财务单据','FinancialDocumentsDetail',item2.frID,'')">{{item2.frID}}</span>
<span v-else-if="item2.colorState===2" class="groupTourOrder_tickets_green" @click="goUrl('财务单据','FinancialDocumentsDetail',item2.frID,'')">{{item2.frID}}</span>
<span v-else-if="item2.colorState===3" class="groupTourOrder_tickets_red" @click="goUrl('财务单据','FinancialDocumentsDetail',item2.frID,'')">{{item2.frID}}</span>
<span v-else-if="item2.colorState===4" class="groupTourOrder_tickets_black" @click="goUrl('财务单据','FinancialDocumentsDetail',item2.frID,'')">{{item2.frID}}</span>
<span v-if="item2.colorState===1" class="groupTourOrder_tickets_blue">{{item2.frID}}</span>
<span v-else-if="item2.colorState===2" class="groupTourOrder_tickets_green">{{item2.frID}}</span>
<span v-else-if="item2.colorState===3" class="groupTourOrder_tickets_red">{{item2.frID}}</span>
<span v-else-if="item2.colorState===4" class="groupTourOrder_tickets_black">{{item2.frID}}</span>
</span>
<span v-if="item.refundFinanceList.length===0" style="cursor: default;">暂无数据</span>
</div>
......@@ -1877,6 +1879,8 @@ export default {
if (res.data.resultCode == 1) {
this.$message.success("取消成功!");
this.getList();
}else{
this.$message.error(res.data.message);
}
},
err => {}
......@@ -1943,6 +1947,12 @@ export default {
}
}
},
goUrlSFD: function (path, orderId, name, tcnum, tcid, outBranchId) {
this.$router.push({
name: path,
query: { orderId: orderId, blank: 'y', tab: name, tcnum: tcnum, tcid: tcid, outBranchId: outBranchId}
});
},
goUrlX(name, path, id, tcmun) {
this.$router.push({
name: path,
......
......@@ -2343,6 +2343,8 @@ export default {
if (res.data.resultCode == 1) {
this.$message.success("取消成功!");
this.getList();
}else{
this.$message.error(res.data.message);
}
},
err => {}
......
......@@ -2245,6 +2245,13 @@ export default {
meta: {
title: '团队营收变更报表'
},
}, { //财务 报表 联运报表
path: '/CombinedRevenueReport',
name: 'CombinedRevenueReport',
component: resolve => require(['@/components/FinancialModule/ReportForm/CombinedRevenueReport'], resolve),
meta: {
title: '团队营收变更报表'
},
}, { // 销售 制作广告
path: '/advert',
name: 'advert',
......
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