Commit 979e3470 authored by Mac's avatar Mac
parents 6a65f53c 38803b85
......@@ -163,7 +163,7 @@
<th width="">{{$t('fnc.yueacc')}}</th>
</tr>
<tr>
<td :colspan="7">{{$t('fnc.a_qcyue')}}</td>
<td :colspan="7">{{$t('fnc.a_qcyue')}}期初余额</td>
<td></td>
<td></td>
<td> {{ moneyFormat(RStartMoney) }} </td>
......@@ -196,13 +196,13 @@
{{ item.AccountNumber }}
</td>
<td>
{{ item.Type === 1 ? moneyFormat(item.OriginalMoney) : '' }}
收入:{{ item.Type === 1 ? moneyFormat(item.OriginalMoney) : '' }}
</td>
<td>
{{ item.Type === 2 ? moneyFormat(item.OriginalMoney) : '' }}
支出: {{ item.Type === 2 ? moneyFormat(item.OriginalMoney) : '' }}
</td>
<td>
{{ moneyFormat(item.enRSMoney) }}
余额:{{ moneyFormat(item.enRSMoney) }}
</td>
<td>
{{item.Rate}}
......@@ -916,26 +916,30 @@ export default {
this.apipost('Financial_post_GetAccountDetailList',this.msg,res=>{
if(res.data.resultCode===1){
let data = res.data.data;
console.log("data",data)
if(data.length){
this.StartMoney = data[0].StartMoney?data[0].StartMoney:0; // 外币
this.RStartMoney = data[0].StartMoney?data[0].StartMoney:0; // 本位币
let endStartMoney = 0,
endRStartMoney = 0;
this.RStartMoney = data[0].RStartMoney?data[0].RStartMoney:0; // 本位币
let endStartMoney = this.StartMoney;
let endRStartMoney = this.RStartMoney;
data.forEach( ( x ) => {
if(x.Type===1){
if(x.Type===1){//收入
this.bShou = this.bShou + x.Money;
this.wShou = this.wShou + x.OriginalMoney;
endRStartMoney = endRStartMoney + x.OriginalMoney;
endStartMoney = endStartMoney + x.Money;
x.enRSMoney = endRStartMoney;
x.enRSMoney = endRStartMoney;//外币收入
x.enSMoney = endStartMoney;
}else if(x.Type===2){
}else if(x.Type===2){//支出
this.bZhi = this.bZhi + x.Money;
this.wZhi = this.bZhi + x.OriginalMoney;
endRStartMoney = endRStartMoney - x.OriginalMoney;
endStartMoney = endStartMoney - x.Money;
x.enRSMoney = endRStartMoney;
x.enSMoney = endStartMoney;
console.log("this.wZhi",this.wZhi);
}
x.check = false;
x.disabled = false;
......
......@@ -674,6 +674,7 @@ export default {
describeList:[],
isFrompassenger:false,
showDisable:false,
editTemplateId:-1,
}
},
methods:{
......@@ -1204,6 +1205,9 @@ export default {
if(res.data.resultCode == 1) {
console.log("res.data",res.data)
let data= res.data.data;
this.editTemplateId=data.TemplateId;
this.getCompany();
data.IsLeader = 1;
this.msg = JSON.parse(JSON.stringify(data));
this.msg.ClientType = this.msg.ClientType==0?'':this.msg.ClientType;
......@@ -1341,7 +1345,13 @@ export default {
}
this.companyList = data;
if(!Status){
let id=this.$route.query.id;
let id=0;
if(this.$route.query.id){
id=this.$route.query.id;
}else{
id=this.editTemplateId;
}
this.apipost('FinancialFlowTemplate_post_GetTemplateBranch', {ID:id}, res => {
if (res.data.resultCode == 1) {
let resdata = res.data.data;
......@@ -1452,12 +1462,10 @@ export default {
var that=this;
this.orderObj = this.$route.query.orderObj?JSON.parse(this.$route.query.orderObj):null;
this.isFrompassenger = this.orderObj.isFromPassenger;
console.log(this.orderObj,'orderObj');
// console.log(this.$route.query.orderObj)
if(this.orderObj!=null&&this.orderObj.OrderSource===10&&this.isFrompassenger==undefined){
that.Description="旅客名单:";
that.describeList=JSON.parse(sessionStorage.getItem("saveGuestInfo"));
console.log("that.describeList",that.describeList)
if(that.describeList){
that.describeList.forEach(item=>{
that.Description+=item.GuestName+" ";
......@@ -1484,8 +1492,8 @@ export default {
let minute = myDate.getMinutes() < 10 ? "0" + myDate.getMinutes() : myDate.getMinutes();
let second = myDate.getSeconds() < 10 ? "0" + myDate.getSeconds() : myDate.getSeconds();
this.timer = hour + ':' + minute + ':' + second;
this.getCompany();
if(this.$route.query.edit){
// 编辑
this.msg.FrID = this.$route.query.FrID;
this.Financial_post_Get(this.$route.query.FrID,0);
}else{
......
<template>
<div class="flexOne" style="min-width: 1200px;">
<div class="groupTourOrderSearch">
<ul>
<li>
<span>
<em>关键字</em><el-input v-model='msg.searchKey' class='w150'></el-input>
</span>
</li>
<li>
<span>
<em>公司</em>
<el-select v-model="msg.rbBranchId" placeholder="请选择">
<el-option label="不限" :value="-1"></el-option>
<el-option v-for="item in companyList" :label='item.BName' :value='item.Id' :key='item.Id'></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>业务员</em>
<el-select v-model="msg.enterID" placeholder="请选择">
<el-option label="不限" :value="-1"></el-option>
<el-option
v-for="item in employeeList"
:label="item.name"
:value="item.empId"
:key="item.empId"
></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>状态</em>
<el-select v-model="msg.status" placeholder="请选择">
<el-option key="0" label="正常" :value="0"></el-option>
<el-option key="1" label="取消" :value="1"></el-option>
<el-option key="2" label="待付款" :value="2"></el-option>
</el-select>
</span>
</li>
<li>
<span><em>日期</em>
<el-date-picker v-model='msg.startDate' @change="dataDui()" class='w150' value-format="yyyy-MM-dd"
type="date"></el-date-picker>
-
<el-date-picker v-model='msg.endDate' @change="dataDui()" class='w150'
value-format="yyyy-MM-dd" type="date"></el-date-picker>
</span>
</li>
<li>
<input type="button" class="hollowFixedBtn" value="查询" @click="getList();resetPageIndex()"/>
</li>
</ul>
</div>
<!-- 表格 -->
<div style="width: 100%; height: auto;min-height:500px;overflow-x: auto;" class="ownScrollbarStyle">
<table class="groupTourOrderSearchTable" border="0" cellspacing="0" cellpadding="0" v-loading='loading'>
<tr class="title_tr">
<th>单号</th>
<th>餐厅名称</th>
<th>套餐名称</th>
<th>使用日期</th>
<th>总金额</th>
<th>客户信息</th>
<th>客户数量</th>
<th>订单状态</th>
<th>退款状态</th>
</tr>
<tr>
<td v-show="dataList.length==0" colspan="16" align="center">暂无数据</td>
</tr>
<tbody v-for="(item,index) in dataList" :key="index">
<tr>
<td>{{item.id}}</td>
<td>
<p class="fz12 over_ellipsis">{{item.diningName}}</p>
</td>
<!-- <td><span @click="goUrl('散客机票','individualTicket',item.AirTicketId)" class="guest_num">{{item.AirTicketId}}</span></td> -->
<td>{{item.mealName}}</td>
<td class="fz12">{{item.useDate}}</td>
<td>
<p>应付金额:{{item.preferPrice}}</p>
</td>
<td class="fz12">
<p>姓名:{{item.customerName}}</p>
<p>电话:{{item.customerMobile}}</p>
</td>
<td class="fz12">
<p>客户数量:{{item.guestNum}}</p>
<p>成人:{{item.adultNum}}</p>
<p>儿童:{{item.childNum}}</p>
</td>
<td>
<span v-if="item.status==1">正常</span>
<span v-if="item.status==2">取消</span>
<span v-if="item.status==3">待付款</span>
</td>
<td>
<p v-if="item.RefundStatus!=1">
<span v-if="item.RefundStatus==2">退款中</span>
<span v-if="item.RefundStatus==3">已退款</span>
</p>
</td>
</tr>
</tbody>
</table>
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size="msg.pageSize" :total="total"></el-pagination>
</div>
</template>
<script>
import payURL from "../commonPage/payURL.vue";
import moment from "moment";
export default {
data() {
return {
msg: {
pageIndex: 1,
pageSize: 10,
AirTicketId: 0,
AirOrderId: 0,
status: 0,
startDate: moment().format("YYYY-MM-DD"),
endDate: "",
searchKey:"",
rbBranchId:-1,
enterID:-1,
},
dataList: [],
loading: false,
total: 0,
currentPage: 1,
showID: -1,
companyList:[],
employeeList:[],
};
},
components: {},
created() {
this.getCompanyList();
this.getEmployee();
},
methods: {
getEmployee() {
this.apipost(
"app_get_company_employee",
this.employeeMsg,
res => {
if (res.data.resultCode == 1) {
this.employeeList = res.data.data;
}
},
err => {}
);
},
getCompanyList() {
let userInfo = this.getLocalStorage();
let RB_Group_id = userInfo.RB_Group_id;
let msg = {
Status: 0,
is_show: 0,
RB_Group_Id: RB_Group_id
}
this.apipost('admin_get_BranchGetList', msg, res => {
if(res.data.resultCode == 1) {
this.companyList=res.data.data;
}
}, err => {})
},
// 退款操作
RefundPay(item) {
let orderObj = {
OrderID: item.Id, //订单号
OrderSource: 12, //12
Obj: {},
SourceID: item.AirTicketId, //机票id
TCIDList: []
};
this.$router.push({
name: "ChoiceAddFinancialDocuments",
query: {
Type: 2,
companyID: item.RB_Branch_Id, //公司id
path: "",
blank: "y",
orderObj: JSON.stringify(orderObj)
}
});
},
goUrl: function(name, path, id) {
this.$router.push({
name: path,
query: { id: id, blank: "y", tab: name }
});
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
resetPageIndex() {
this.msg.pageIndex = 1;
this.currentPage = 1;
},
getList() {
this.loading = true;
this.apiJavaPost("/api/erp/dining/getDiningOrder", this.msg, res => {
this.loading = false;
if (res.data.resultCode === 1) {
this.total = res.data.data.count;
this.dataList = res.data.data.pageData;
console.log(this.dataList,'datalist');
} else {
this.Error(res.data.message)
}
}, null);
},
// 结束日期不能大于开始日期
dataDui() {
if (this.msg.startDate > this.msg.endDate && this.msg.endDate !== "") {
this.$message.error("结束日期不能大于开始日期");
this.msg.endDate = "";
}
}
},
mounted() {
this.getList();
}
};
</script>
<style scoped>
@import "../../assets/css/newTravelManager.css";
.tickets_green {
color: #008000;
text-decoration: underline;
margin-right: 6px;
}
.title_tr th {
/* width: 9%; */
}
.color_red_order {
color: #e95252 !important;
}
.groupTourOrderSearch {
width: 100%;
min-height: auto;
padding: 0 0 20px 0;
}
.groupTourOrderSearch li {
float: left;
font-size: 12px;
color: #666;
margin: 20px 0 0px 0;
}
.groupTourOrderSearch li > span {
display: inline-block;
}
.groupTourOrderSearch li span > em {
display: inline-block;
min-width: 60px;
text-align: right;
font-style: normal;
margin: 0 12px 0 0;
}
.groupTourOrderSearch li:last-child {
position: fixed;
z-index: 10;
top: 36px;
right: 20px;
}
.groupTourOrderSearch ul {
overflow: hidden;
}
.groupTourOrderSearchTable {
width: 100%;
min-width: 1500px;
font-size: 14px;
color: #333;
border-bottom: 1px solid #cccccc;
border-right: 1px solid #cccccc;
/* border-collapse: collapse; */
}
.groupTourOrderSearchTable tr th {
background: #e6e6e6;
height: 30px;
font-size: 12px;
text-align: left;
text-indent: 15px;
border-top: 1px solid #cccccc;
border-left: 1px solid #cccccc;
}
.groupTourOrderSearchTable tr {
background: #fff;
text-align: left;
}
.groupTourOrderSearchTable tr td {
padding: 8px;
border-top: 1px solid #cccccc;
border-left: 1px solid #cccccc;
}
.groupTourOrderSearchTable tr td p {
line-height: 20px;
}
.groupTourOrderSearchTable .dowloadSpan:hover {
text-decoration: underline;
cursor: pointer;
}
.groupTourOrderSearchTable span.personNo {
text-decoration: underline;
cursor: pointer;
}
.groupTourOrderSearchTable span.personNo:hover {
font-weight: bold;
color: #e95252;
}
.personNolayer p {
height: 28px;
line-height: 28px;
padding-left: 15px;
}
.personNolayer p > span {
font-size: 12px;
color: #333;
margin-right: 15px;
}
.personNolayer table {
padding: 10px 0 0 20px;
width: 100%;
background-color: #ededed;
border-collapse: collapse;
border: 1px solid #d2d2d2;
font-size: 12px;
}
.personNolayer table th {
background-color: #ededed;
height: 34px;
text-indent: 15px;
}
.personNolayer table td {
background-color: #ffffff;
padding: 9px 15px;
color: #333333;
border: 1px solid #d2d2d2;
}
.personNolayer table ._color_666 {
color: #666666;
}
.personNolayer table tr._color_666 th {
padding: 9px 15px;
}
.groupSuperSearchLayer {
}
.groupSuperSearchLayer > p {
padding: 20px 0;
font-size: 14px;
color: #333;
font-weight: bold;
}
.groupSuperSearchLayerTable {
font-size: 12px;
color: #666;
}
.groupSuperSearchLayerTable tr {
height: 50px;
}
.groupSuperSearchLayerTable td {
padding-right: 15px;
}
.groupTourOrderIcon button {
width: 30px;
height: 30px;
border-radius: 4px;
}
.groupTourOrderIcon .el-button--primary {
padding: 5px;
margin: 0;
font-size: 14px !important;
}
.groupTourOrderIcon .el-button + .el-button {
margin-left: 0 !important;
}
.productQuerybottomLayer {
overflow: auto;
position: fixed;
min-height: 300px;
z-index: 50;
bottom: 0;
left: 0;
border-top: 3px solid #38425d;
background-color: #ffffff;
padding: 10px 10px 0;
width: 100%;
}
.productQuerybottomLayer .el-form-item__label {
font-size: 12px !important;
}
.productQuerybottomLayer > p {
border-left: 3px solid #e95252;
text-indent: 15px;
height: 16px;
font-family: "PingFangSc-Fine";
font-size: 16px;
margin-bottom: 20px;
line-height: 14px;
color: #000;
}
.productQuerybottomLayer .el-input-number {
width: auto !important;
}
.groupTourOrder_count_green {
color: #1bc594;
}
.groupTourOrder_count_blue {
color: #4d7afd;
}
.groupTourOrder_count_yellow {
color: #ff9c00;
}
.groupTourOrder_count_gray {
color: #999999;
}
.groupTourOrder_count {
margin: 0 0 20px 0;
width: 100%;
height: auto;
}
.groupTourOrder_count_col {
height: 80px;
}
.groupTourOrder_count_item {
font-weight: 400;
padding: 10px;
height: 100%;
border: 1px solid #e6e6e6;
background-color: #ffffff;
color: #333333;
}
.groupTourOrder_count_item > div > i {
font-size: 12px;
vertical-align: bottom;
}
.groupTourOrder_count_item > div > span:nth-child(2) {
font-size: 14px;
vertical-align: bottom;
}
.groupTourOrder_count_item > div > span:nth-child(3) {
font-weight: bold;
font-size: 16px;
vertical-align: bottom;
}
.groupTourOrder_count_item > p {
font-size: 12px;
line-height: 18px;
}
.groupTourOrder_count_item > p > span {
margin: 0 5px 0 0;
white-space: nowrap;
}
.groupTourOrder_more {
margin: 0 -12px;
}
.groupTourOrder_more > div {
width: 100%;
height: 30px;
line-height: 30px;
text-align: center;
font-size: 12px;
color: #333333;
background-color: #ffffff;
cursor: pointer;
}
.groupTourOrder_more > div:hover {
color: #297bef;
background-color: #dcebff;
}
.groupTourOrder_remarks {
font-size: 0px;
}
.groupTourOrder_remarks > div {
}
.groupTourOrder_remarks > div > div:nth-child(1) {
float: left;
display: flex;
align-items: flex-start;
}
.groupTourOrder_remarks > div > div:nth-child(1) > span {
line-height: 20px;
font-size: 12px;
color: #e95252;
white-space: nowrap;
}
.groupTourOrder_remarks > div > div:nth-child(1) > p {
line-height: 20px;
font-size: 12px;
color: #e95252;
}
.groupTourOrder_remarks > div > div:nth-child(2) {
float: right;
text-align: right;
font-size: 12px;
color: #e95252;
}
.groupTourOrder_remarks > div > div:nth-child(2) > i {
font-size: 10px;
cursor: pointer;
}
.groupTourOrder_remarks > div::after {
display: block;
clear: both;
content: "";
visibility: hidden;
height: 0;
}
.groupTourOrder_remarks_btn {
padding: 0px;
width: 12px;
height: 12px;
border: none;
background-color: transparent;
}
.groupTourOrder_remarks_btn > i {
color: #e95252;
font-size: 12px;
}
.groupTourOrder_remarks_popover > div {
display: inline-block;
font-size: 14px;
color: #000000;
}
.groupTourOrder_remarks_popover > div::before {
content: "";
display: inline-block;
margin: 0 5px 0 0;
width: 2px;
height: 12px;
background-color: #e95252;
}
.groupTourOrder_remarks_popover > span {
display: block;
margin: 0 0 0 0;
width: 100%;
text-align: center;
font-size: 12px;
color: #000000;
}
.groupTourOrder_remarks_popover > p {
margin: 5px 0 0 0;
padding: 3px;
width: 100%;
max-height: 300px;
overflow-y: auto;
font-size: 12px;
color: #000000;
}
.groupTourOrder_remarks_popover > p:nth-child(even) {
background-color: #e6e6e6;
}
.groupTourOrder_remarks_popover > p > span:nth-child(1) {
float: left;
}
.groupTourOrder_remarks_popover > p > span:nth-child(2) {
margin: 0 10px 0 0;
float: right;
}
.groupTourOrder_remarks_popover > p::after {
display: block;
clear: both;
content: "";
visibility: hidden;
height: 0;
}
.groupTourOrder_tickets > div {
display: table;
}
.groupTourOrder_tickets > div > div {
display: table-cell;
cursor: pointer;
}
.groupTourOrder_tickets > div > div:nth-child(1) {
width: 80px;
}
.groupTourOrder_tickets > div > div > span {
display: inline-block;
margin: 0 10px 0 0;
}
.groupTourOrder_tickets_red {
color: #ff0000;
text-decoration: underline;
}
.groupTourOrder_tickets_blue {
color: #0000ff;
text-decoration: underline;
}
.groupTourOrder_tickets_green {
color: #008000;
text-decoration: underline;
}
.groupTourOrder_tickets_black {
color: #000000;
text-decoration: underline;
}
.groupTourOrderByTuan_ico {
margin: 0 10px 0 0;
}
.groupTourOrderByTuan_ico > i {
display: inline-block;
margin: 0 2px 0 0;
width: 8px;
height: 8px;
border-radius: 2px;
vertical-align: middle;
}
.groupTourOrderByTuan_ico > span {
vertical-align: middle;
}
/* 出团通知书打印选择 */
.travelControlTripLayer {
position: fixed;
z-index: 99;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.3);
left: 0;
top: 0;
}
.travelControlTripLayerCont {
position: absolute;
left: 50%;
margin-left: -300px;
background: #fff;
top: 50%;
margin-top: -180px;
width: 600px;
}
.travelControlTripLayerCont > div {
padding: 0 30px;
}
.travelControlTripLayerCont > div label {
cursor: pointer;
vertical-align: middle;
}
.travelControlTripLayerCont > div label input {
vertical-align: middle;
}
.travelControlTripBtn {
color: #fff;
width: 90px;
height: 30px;
background: #e95252;
border: 1px solid #e95252;
cursor: pointer;
border-radius: 15px;
margin-left: 10px;
}
.travelControlTripLayer input[type="checkbox"] + label::before {
content: "\A0";
display: inline-block;
width: 15px;
height: 15px;
margin-right: 5px;
border-radius: 4px;
background-color: white;
text-indent: 0.15em;
line-height: 15px;
color: white;
border: 1px solid #e95252;
}
.travelControlTripLayer input[type="checkbox"]:checked + label::before {
content: "\2713";
background-color: #e95252;
}
.travelControlTripLayer input[type="checkbox"] {
position: absolute;
clip: rect(0, 0, 0, 0);
}
.travelControlTripLayer input[type="checkbox"]:focus + label::before {
box-shadow: none;
}
.travelControlTripLayer input[type="checkbox"]:disabled + label::before {
background-color: gray;
box-shadow: none;
color: #555;
}
.groupTourOrder_transfer {
position: fixed;
z-index: 50;
bottom: 0;
left: 50px;
padding: 10px 10px;
width: 100%;
min-width: 1366px;
min-height: 200px;
border-top: 3px solid #38425d;
background-color: #ffffff;
overflow-y: auto;
}
.groupTourOrder_transfer > .transfer_header {
position: relative;
width: 100%;
height: 30px;
}
.groupTourOrder_transfer > .transfer_header > div:nth-child(1) {
display: inline-block;
padding: 0 10px;
width: 200px;
height: 30px;
line-height: 30px;
border-left: 3px solid #e95252;
text-indent: 10px;
font-size: 16px;
color: #000000;
}
.groupTourOrder_transfer > .transfer_header > div:nth-child(2) {
position: absolute;
top: 0px;
right: 80px;
height: 30px;
}
.groupTourOrder_transfer
> .transfer_header
> div:nth-child(2)
> div:nth-child(1) {
display: inline-block;
padding: 0 15px;
height: 30px;
line-height: 28px;
font-size: 14px;
color: #e95252;
border: 1px solid #e95252;
background: #fff;
border-radius: 15px;
cursor: pointer;
vertical-align: top;
}
.groupTourOrder_transfer
> .transfer_header
> div:nth-child(2)
> div:nth-child(2) {
display: inline-block;
margin: 0 0 0 10px;
padding: 0 15px;
height: 30px;
line-height: 28px;
font-size: 14px;
color: #fff;
border: 1px solid #e95252;
background: #e95252;
border-radius: 15px;
cursor: pointer;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_info {
padding: 20px 0;
width: 100%;
font-size: 0px;
border-bottom: 1px dashed #999999;
}
.groupTourOrder_transfer > .transfer_info > div {
display: inline-block;
padding: 0 10px;
width: 25%;
height: 30px;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_info > div > em {
display: inline-block;
padding: 0 10px;
width: 35%;
height: 30px;
line-height: 30px;
text-align: right;
font-size: 16px;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_info > div > span {
display: inline-block;
padding: 0 10px;
width: 65%;
height: 30px;
line-height: 30px;
text-align: left;
font-size: 16px;
border-radius: 3px;
background-color: #e5e5e5;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_input {
padding: 20px 0;
width: 100%;
font-size: 0px;
}
.groupTourOrder_transfer > .transfer_input > div {
display: inline-block;
padding: 0 10px;
width: 25%;
height: 30px;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_input > div > em {
display: inline-block;
padding: 0 10px;
width: 35%;
height: 30px;
line-height: 30px;
text-align: right;
font-size: 16px;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_input > div > .el-input {
display: inline-block;
width: 65%;
height: 30px;
line-height: 30px;
text-align: left;
font-size: 14px;
vertical-align: top;
}
</style>
<style type="text/css">
.Supplier_AC_content {
width: 800px;
margin: 50px auto;
min-height: 730px;
padding: 20px;
font-size: 14px;
background-color: #fff;
border: 1px solid #ccc;
}
.Supplier_AC_inputGroup {
margin-bottom: 20px;
}
.Supplier_AC_contDetail>p {
background: #ccc;
color: #333;
padding: 5px;
text-indent: 11px;
}
.Supplier_AC_inputGroup .el-input-group__append {
background-color: #CD2929;
color: #fff;
}
.Supplier_AC_OrderList {
overflow: hidden;
width: 800px;
}
.Supplier_AC_OrderList ul li {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
float: left;
width: 380px;
height: 36px;
line-height: 36px;
border-bottom: 1px solid #ccc;
}
.Supplier_AC_OrderList ul li:nth-child(2n + 1) {
border-right: 1px solid #ccc;
box-sizing: border-box;
}
.Supplier_AC_OrderList ul li span {
display: inline-block;
width: 80px;
text-align: right;
}
.Supplier_AC_complaintList {
padding: 10px 0 0 0;
height: auto;
overflow: hidden;
}
.Supplier_AC_complaintList .t {
padding: 4px 0 0 0;
}
.Supplier_AC_complaintList .t,
.Supplier_AC_complaintList ul {
float: left;
}
.Supplier_AC_complaintList ul li {
border: 1px solid #ccc;
padding: 4px 8px;
float: left;
margin: 0 5px 5px 0;
cursor: pointer;
}
.Supplier_AC_complaintList ul li:hover {
border: 1px #d81e06 solid;
}
.Supplier_AC_complaintList ul li.checked {
border: 1px #d81e06 solid;
}
.Supplier_AC_contDetail>a {
color: #3980c8 !important;
}
.Supplier_AC_contDetail a:hover {
color: #bd2e40 !important;
text-decoration: underline !important;
}
.Supplier_AC_content .w757 {
width: 757px !important;
}
</style>
<template>
<div class="Supplier_AC_content">
<div class="Supplier_AC_inputGroup">
<el-input placeholder="请输入团号/编号" class="w757" v-model="QMsg.TCID">
<el-button slot="append" @click="CheckTCID()">验证</el-button>
</el-input>
</div>
<div class="Supplier_AC_contDetail">
<p>团队情况</p>
<div class="Supplier_AC_OrderList">
<ul>
<li><span>线路:</span>{{this.PriceInfo.LineName}}</li>
<li><span>系列:</span>{{this.PriceInfo.LtName}}</li>
<li><span>团队编号:</span><a>{{this.PriceInfo.TCID}}</a></li>
<li><span>行程天数:</span>{{this.PriceInfo.DayNum}}</li>
<li><span>出发日期:</span>{{this.PriceInfo.StartDate}}</li>
<li><span>返回日期:</span>{{this.PriceInfo.BackDate}}</li>
<li><span>操作OP:</span>{{this.PriceInfo.OpName}}</li>
<li><span>领队:</span>{{this.PriceInfo.LeaderName}}</li>
<li><span>导游:</span>{{this.PriceInfo.GuideName}}</li>
</ul>
</div>
<p>投诉情况</p>
<div class="Supplier_AC_complaintList">
<div class="t">主题内容:</div>
<ul style="width:90%;">
<li v-for="subItem in themeList" @click="getTheme(subItem)" :class="{'checked':subItem.isCheck}">
{{subItem.Name}}
</li>
</ul>
</div>
<el-input type="textarea" style="margin-top:10px;" :rows="5" v-model="EditMsg.ComplainContent"
placeholder="具体问题描述,以及投诉人的姓名、联系方式"></el-input>
</div>
<p style="text-align: center; margin: 10px 0 15px 0;">
<input type="button" class="normalBtn" value="保存" @click="SaveData()" />
<input type="button" class="normalBtn" value="取消" />
</p>
</div>
</template>
<script>
export default {
data() {
return {
//主题内容
themeList: [],
//主题选中数组
themeCked: [],
//添加修改投诉
EditMsg: {
Id: 0, //编号
SupplierId: 0, //供应商编号
TCID: 0, //团队编号
ComplainContentrs: '', //投诉内容
ComplainContent: '', //问题描述
},
//查询参数
QMsg: {
TCID: ""
},
//团信息
PriceInfo: {},
//订单投诉条数
ExitCount: 0
};
},
mounted() {},
methods: {
//选取主题内容
getTheme(item) {
item.isCheck = !item.isCheck;
this.themeCked = [];
this.themeList.forEach(x => {
if (x.isCheck) {
this.themeCked.push(x.Id)
}
})
},
//验证订单
CheckTCID() {
this.ApiPost2('supplierComplain_Get_GetPriceData', {
TCID: this.QMsg.TCID
}, res => {
if (res.data.resultCode == 1) {
this.PriceInfo = res.data.data.PriceInfo;
if (this.PriceInfo == null) {
this.PriceInfo = {};
} else {
this.EditMsg.TCID = this.PriceInfo.TCID;
}
} else {
this.Error(res.data.message)
}
}, err => {});
},
//保存数据
SaveData(status) {
if (this.themeCked.length === 0) {
this.Error("请选择主题内容");
return false;
}
//数据组装
this.EditMsg.ComplainContentrs = "";
let contentrArr = [];
this.themeList.forEach(x => {
if (x.isCheck) {
contentrArr.push(x.Name);
}
});
if (contentrArr.length > 0) {
this.EditMsg.ComplainContentrs = contentrArr.join(",")
}
this.ApiPost2('supplierComplain_Post_SetSupplierComplain', this.EditMsg, res => {
if (res.data.resultCode == 1) {
this.Success("添加成功");
this.$router.push({
path: "roomQuery2",
query: {}
});
} else {
this.Error(res.data.message);
}
}, err => {});
},
//获取投诉枚举集合
getEnumeration() {
this.ApiPost2("conplain_get_GetComplainEnumList", {}, res => {
if (res.data.resultCode == 1) {
this.themeList = [];
res.data.data.ComplainContentEnumList.forEach(x => {
x["isCheck"] = false;
this.themeList.push(x);
})
} else {
this.Error(res.data.message);
}
});
},
GetData() {
this.ApiPost2('supplierComplain_Get_GetSupplierComplain', {
Id: this.EditMsg.Id
}, res => {
if (res.data.resultCode == 1) {
this.EditMsg = res.data.data;
if (this.EditMsg.ComplainContentrs && this.EditMsg.ComplainContentrs != '') {
var array = this.EditMsg.ComplainContentrs.split(',');
if (array != null && array.length > 0) {
array.forEach(subItem => {
this.themeList.forEach(x => {
if (subItem==x.Name) {
x.isCheck=true;
this.themeCked.push(x.Id)
}
});
});
}
}
} else {
this.Error(res.data.message);
}
}, err => {});
}
},
created() {
this.EditMsg.Id = this.$route.query.Id;
this.QMsg.TCID = this.$route.query.TCID;
},
mounted() {
this.getEnumeration();
if (this.QMsg.TCID) {
this.CheckTCID();
}
if (this.EditMsg.Id && this.EditMsg.Id > 0) {
this.GetData();
}
}
};
</script>
......@@ -101,67 +101,68 @@
</div>
<div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " class="ownScrollbarStyle">
<div style="font-size:12px;padding:2px 4px 3px 4px; color:red">注意事项:每次导出数据最好不要超过一个月。</div>
<table border="0" cellspacing="1" cellpadding="0" class="roomQueryTalbe" v-loading='loading'>
<table border="0" cellspacing="1" cellpadding="0" class="roomQuery_SupplierTable" v-loading='loading'>
<tr>
<th width="w100">序号</th>
<th width="100">序号</th>
<th width="120">出发地</th>
<th width="80">公司团号</th>
<th width="100">公司团号</th>
<th width="100">系列</th>
<th width="120">机位总数<br />(Y/E/F)</th>
<th>使用时间&酒店情况</th>
<th width="100">时间</th>
<th width="150">酒店</th>
<th width="100">酒店使用情况</th>
<th width="100">操作</th>
</tr>
<tr v-if="dataList.length==0">
<td colspan="10">暂无数据</td>
<td colspan="9">暂无数据</td>
</tr>
<tbody v-for="(outItem,outindex) in dataList" :class="{roomQuerySplitTrCss:outindex%2!=0}">
<template v-for="(item,index) in outItem.StaticsReportList">
<tr>
<td :rowspan="outItem.StaticsReportList.length" v-if='index==0'>
<div style="max-width: 100px; min-width: 50px;margin:auto;">{{outindex+1}}</div>
<div v-if='outItem.StaticsReportList.length>0' class="w150">{{outItem.NewCombinationNum}}</div>
<template v-for="(item,index) in dataList">
<template v-for="(subItem,subIndex) in item.subList">
<tr v-for="(childItem,childIndex) in subItem.hotelList" :class="{roomQuerySplitTrCss:index%2!=0}">
<td v-if="childIndex==0&&subIndex==0" :rowspan="subItem.hotelList.length*item.subList.length">
{{item.NewCombinationNum}}
</td>
<td>
<div class="w80">
{{item.StartCityNames}}
</div>
<td v-if="childIndex==0" :rowspan="subItem.hotelList.length">
{{subItem.StartCityNames}}
</td>
<td>
<div class="w120 link">
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.TCNUMS}}</p>
</div>
<td v-if="childIndex==0" :rowspan="subItem.hotelList.length">
{{subItem.TCNUMS}}
</td>
<td v-if="childIndex==0" :rowspan="subItem.hotelList.length">
{{subItem.LineteamIdNames}}
</td>
<td v-if="childIndex==0" :rowspan="subItem.hotelList.length">
{{subItem.TotalSeat}}/{{subItem.RealityYSeatNum}}/{{subItem.RealityESeatNum}}/{{subItem.RealityFSeatNum}}
</td>
<td>
<div class="w120 link">
{{item.LineteamIdNames}}
</div>
{{childItem.CheckInDateStr}}
</td>
<td class="tdLeft">
{{childItem.NewHotelName}}
</td>
<td>
<div class="w120 link">
<p @click="goUrlT('RegistrationList',item.TCIDS,'报名清单')">
{{item.TotalSeat}}/{{item.CommonReport.HouseStatistics.RealityYSeatNum}}/{{item.CommonReport.HouseStatistics.RealityESeatNum}}/{{item.CommonReport.HouseStatistics.RealityFSeatNum}}
</p>
</div>
<span style="color:red;">
<template v-if="childItem.OPState==1">[OP选房-OK]</template>
<template v-else>{{childItem.DMCState==1?"[地接-OK]":(childItem.DMCState==0?"[未操作]":"[暂定]")}}
</template>
</span>
</td>
<td style="vertical-align: top;">
<div :style="{width:150*item.CommonReport.newHotel.length+'px'}">
<div class="w150" v-for="childItem in item.CommonReport.newHotel"
style="float:left;border-right:1px solid #d1d1d1;">
<p class="pDateStyle">{{childItem.CheckInDateStr}}</p>
<p @click="goUrlR('HotelManagement',childItem.HotelId,'酒店管理')"
class="pDateStyle phoverStype ownScrollbarStyle" style="height: 50px!important; overflow:auto;">
{{childItem.NewHotelName}}<span
class="colorE95252">{{childItem.HotelOrderState==1?"OK":"暂定"}}</span>
</p>
</div>
</div>
<td v-if="childIndex==0" :rowspan="subItem.hotelList.length">
<a style="text-decoration:underline;color:blue;cursor:pointer"
@click="AddSupplierComplain(subItem.Complain_Extend.Id,subItem.Complain_Extend.TCID)">
<template v-if="subItem.Complain_Extend.Id>0">编辑</template>
<template v-else>添加</template>
</a>
<a style="text-decoration:underline;color:red;cursor:pointer" v-if="subItem.Complain_Extend.Id>0"
@click="DeleteSupplierComplain(subItem.Complain_Extend.Id)">删除</a>
</td>
</tr>
</template>
</tbody>
</template>
</table>
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size="msg.pageSize" :total="total"></el-pagination>
layout="total,prev, pager, next, jumper" :page-size="msg.pageSize" :total="total"> </el-pagination>
</div>
</template>
<script>
......@@ -181,7 +182,6 @@
HotelId: 0,
//日期
DateStr: "",
//出团公司
OutBranchIds: [],
LineId: 14,
......@@ -193,11 +193,10 @@
TCNUM: '',
PriceStatus: 0,
CombinationNum: ''
},
//分公司类表
companyList: [],
//酒店
//酒店
HotelList: [],
LineList: [],
LineTeamList: [],
......@@ -232,6 +231,26 @@
}
},
methods: {
//删除投诉
DeleteSupplierComplain(Id) {
if (Id > 0) {
var that = this;
this.Confirm("是否此投诉信息删除?", function () {
var msg = {
Id: Id
};
that.ApiPost2("supplierComplain_Post_RemoveSupplierComplain", msg,
res => {
if (res.data.resultCode == 1) {
that.Success('删除成功!');
that.getList();
} else {
that.Error(res.data.data);
}
}, null);
});
}
},
getLineList() {
this.ApiPost2("line_post_GetAllList", {}, res => {
if (res.data.resultCode == 1) {
......@@ -255,6 +274,17 @@
}
);
},
AddSupplierComplain(id, tcid) {
this.$router.push({
name: 'AddSupplierComplaints',
query: {
Id: id,
TCID: tcid,
blank: 'y',
tab: '供应商投诉'
}
})
},
goUrlR(path, obj, title) {
this.$router.push({
name: path,
......@@ -303,25 +333,7 @@
this.loading = false;
if (res.data.resultCode == 1) {
this.total = res.data.data.count;
this.dataList = res.data.data.pageData.data;
this.thLengthTitle = [];
for (let i = 1; i <= res.data.data.pageData.columnsCount; i++) {
this.thLengthTitle.push('第' + i + '晚')
}
this.dataList.forEach(x => {
x.StaticsReportList.forEach(y => {
y.CommonReport.newHotel = [];
if (y.CommonReport.HotelOrderListReport != null && y.CommonReport.HotelOrderListReport
.length > 0) {
y.CommonReport.HotelOrderListReport.forEach(z => {
z.HotelOrderList.forEach(q => {
y.CommonReport.newHotel.push(q);
})
})
}
y.colNum = 9 + y.CommonReport.newHotel.length;
})
})
this.dataList = res.data.data.pageData;
} else {
this.$message.error(res.data.message)
}
......@@ -470,98 +482,32 @@
background: #eee !important;
}
.roomQueryTalbe {
.roomQuery_SupplierTable {
background: #ccc;
}
.roomQueryTalbe tr th {
.roomQuery_SupplierTable tr th {
background: #E6E6E6;
height: 40px;
font-size: 12px;
color: #333;
}
.roomQueryTalbe tr {
.roomQuery_SupplierTable tr {
background: #fff;
text-align: center;
height: 40px;
}
.roomQueryTalbe tr td {
font-size: 12px;
}
.roomQueryTalbe tr td .pDateStyle {
border-bottom: 1px solid #ccc;
min-height: 24px;
line-height: 24px;
margin-top: 0;
box-sizing: content-box;
}
.roomQueryTalbe tr td .pDateStyle:last-child {
border-bottom: none;
}
.roomQueryTalbe tr td .pDateStyle>span:after {
content: '/';
}
.roomQueryTalbe tr td .pDateStyle>span:last-child:after {
content: ''
}
.roomQueryTalbe tr td .link p:hover {
text-decoration: underline;
cursor: pointer;
}
.roomQueryTalbe tr td .phoverStype:hover {
text-decoration: underline;
cursor: pointer;
}
.roomQuery_tripDetails {
padding: 0;
box-shadow: 0px 1px 3px 0px #dedede;
max-height: 400px;
overflow-y: auto;
}
.roomQuery_tripDetails .popper__arrow::after {
border-bottom-color: #ededed !important;
}
.roomQuery_tripDetails table {
padding: 10px 0 0 20px;
background-color: #ededed;
border-collapse: collapse;
border: 1px solid #d2d2d2;
.roomQuery_SupplierTable tr td {
font-size: 12px;
line-height: 22px;
height: 22px;
;
}
.roomQuery_tripDetails table th {
background-color: #ededed;
padding: 5px;
}
.roomQuery_tripDetails table td {
background-color: #ffffff;
padding: 9px 15px;
color: #333333;
border: 1px solid #d2d2d2;
}
.roomQuery_tripDetails table td._d_name {
background-color: #ededed;
}
.roomQuery_tripDetails table ._color_666 {
color: #666666;
}
.roomQuery_tripDetails table tr._color_666 th {
padding: 9px 15px;
.roomQuery_SupplierTable .tdLeft {
text-align: left;
padding-left: 5px;
}
</style>
......@@ -388,6 +388,7 @@
<span v-if="item.IsUnion==1&&item.UnionTypeStr==2" title="联">{{$t('Operation.Op_lian')}}</span>
<span v-if="item.Status==2" title="结团">{{$t('Operation.Op_jietuan')}}</span>
<span v-if="item.Status==1" title="销售">{{$t('visaT.sale')}}</span>
<span v-if="item.GroupRecommendType==1" title="精品"></span>
</div>
<div class="TCL-OutBranchName" title="销售公司">{{item.UnionBranchName}}</div>
<div class="TCL-TOPTCNUM">({{item.TCID}}) {{item.TCNUM}}</div>
......@@ -777,6 +778,12 @@
<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown" class="TC-dropdown">
<el-dropdown-item @click.native="SetGroupRecommendType(item,1)" v-if="item.b2b&&item.GroupRecommendType==0">
设为精品推荐
</el-dropdown-item>
<el-dropdown-item @click.native="SetGroupRecommendType(item,0)" v-if="item.b2b&&item.GroupRecommendType==1">
取消设为精品
</el-dropdown-item>
<el-dropdown-item @click.native="goTeamBalance(item.TCID,item.OutBranchId)">
{{$t('Operation.Op_shouzhiDetail')}}
</el-dropdown-item>
......@@ -1097,6 +1104,26 @@
}
},
methods: {
SetGroupRecommendType(item,num){
let msg={};
msg.groupRecommendType=num;
msg.tcid=item.TCID;
this.apipost(
'travel_post_SetGroupRecommendType', msg,
res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message)
this.getControlList()
}else{
this.Error(res.data.message)
}
},
err => {}
)
},
downloadFile: function (item) {
let reg = /^http(s)?:\/\/(.*?)\//
this.downloadFileRename(item.FullUrl.replace(reg, ''), item.Name)
......@@ -1119,7 +1146,8 @@
if (res.data.resultCode == 1) {
this.queryCommonData.LineList = res.data.data
this.queryCommonData.PlaceList = []
this.queryCommonData.LineTeamList = []
this.queryCommonData.LineTeamList = [];
}
})
},
......@@ -1227,12 +1255,16 @@
this.queryCommonData.dataList.forEach(item => {
item.SalePlatList = []
if (item.SalePlat !== null) {
if(item.SalePlat.indexOf("1") != -1){
item.b2b=true;
}
var SalePlatArr = item.SalePlat.split(',')
SalePlatArr.forEach(y => {
item.SalePlatList.push(parseInt(y))
})
}
});
// console.log('this.queryCommonData', this.queryCommonData.dataList)
}
},
err => {}
......
......@@ -92,6 +92,8 @@
<el-option :label="$t('active.cl_jipiao')" :value="4"></el-option>
<el-option label="门票" :value="5"></el-option>
<el-option label="车辆" :value="6"></el-option>
<el-option label="自由行" :value="7"></el-option>
<el-option label="当地游" :value="8"></el-option>
</el-select>
</span>
</li>
......@@ -369,6 +371,8 @@
<el-option :label="$t('active.cl_jipiao')" :value="4"></el-option>
<el-option label="门票" :value="5"></el-option>
<el-option label="车辆" :value="6"></el-option>
<el-option label="自由行" :value="7"></el-option>
<el-option label="当地游" :value="8"></el-option>
</el-select>
</el-form-item>
</td>
......
......@@ -283,6 +283,33 @@ input[type="number"] {
box-shadow: 0px 0px 20px rgba(191, 191, 191, 1);
transition: all linear 0.5s;
}
.lineManagement .TFimgList {
float: left;
width: 170px;
height: 100px;
border-radius: 4px;
position: relative;
margin: 0 10px 10px 0;
overflow: hidden;
}
.lineManagement .TFimgList img{
width: 100%;
height: 100%;
}
.lineManagement .TFIMGzhe {
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.4);
position: absolute;
top: 0;
text-align: center;
line-height: 115px;
border-radius: 4px;
display: none;
}
.lineManagement .TFimgList:hover .TFIMGzhe {
display: block;
}
</style>
<template>
<div class="flexOne lineManagement">
......@@ -501,6 +528,25 @@ input[type="number"] {
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="线路图片">
<div class="TFimgList">
<img v-if="!addMsg.BackgroundImage" src="../../assets/img/bg_c3@3x.png">
<img v-else :src='addMsg.BackgroundImage'>
<div class="TFIMGzhe">
<div class="TFreupload">
<el-upload :file-list="fileList" :http-request="uploadTest" :multiple="true" :limit="2"
:on-change="handleChange1"
accept="image/jpeg, image/gif, image/png, image/bmp"
:show-file-list="false" action="">
<i class="iconfont icon-Edit"></i>
</el-upload>
</div>
</div>
</div>
</el-form-item>
</el-col>
<div class="LM_Btcontent">
<input type="button" class="normalBtn" @click="submitForm('addMsg')" :value="$t('pub.saveBtn')"/>
<input type="button" class="hollowFixedBtn" @click="isShowDIv=false" :value="$t('pub.cancelBtn')"/>
......@@ -588,6 +634,7 @@ input[type="number"] {
export default {
data() {
return {
fileList:[],
msg: {
pageIndex: 1,
pageSize: 6,
......@@ -609,6 +656,7 @@ export default {
IsShare: 0,
Is_PacketGroup: 0,
LineDirection:2,
BackgroundImage:"",
},
departCompany: "",
departDepartment: "",
......@@ -649,6 +697,19 @@ export default {
};
},
methods: {
handleChange1(file, fileList) {
this.fileList = fileList.slice(-1);
},
uploadTest(file) {
let newArr = [];
newArr.push(file.file);
let path = "/Upload/DMC/Icon/";
this.UploadSelfFileT(path, newArr, x => {
let url = this.domainManager().ViittoFileUrl + x.data.FilePath;
this.addMsg.BackgroundImage = url;
});
},
getList() {
//获取现有线路列表
this.loading = true;
......@@ -748,6 +809,8 @@ export default {
this.addMsg.IsShare = getInfo.isShare;
this.addMsg.Is_PacketGroup = getInfo.is_PacketGroup;
this.addMsg.LineDirection = getInfo.lineDirection;
this.addMsg.BackgroundImage = getInfo.BackgroundImage;
console.log("this.addMsg.BackgroundImage",getInfo)
},
deletelist(lineID) {
var that = this;
......
......@@ -1002,6 +1002,14 @@ export default {
title: '餐厅套餐查询'
},
},
{
path: '/FoodOrder', //餐厅订单
name: 'FoodOrder',
component: resolve => require(['@/components/Restaurant/FoodOrder'], resolve),
meta: {
title: '餐厅订单'
},
},
{
path: '/ChangeDining', //更换餐厅
name: 'ChangeDining',
......@@ -3423,7 +3431,16 @@ export default {
meta: {
title: '酒店查询'
},
}]
},
{
path: '/AddSupplierComplaints', //供应商=>供应商投诉
name: 'AddSupplierComplaints',
component: resolve => require(['@/components/Supplier/AddSupplierComplaints'], resolve),
meta: {
title: '供应商投诉'
},
}
]
},
]
}
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