Commit 3e8f9c29 authored by youjie's avatar youjie

页面修改

parent b271bfc6
......@@ -347,7 +347,7 @@
</el-form-item>
<el-form-item v-show="addMsg.IsShow==2" label="可显示部门">
<el-select filterable multiple v-model='addMsg.ShowDepartmentList' class="w200" style="max-height:100px;overflow:hidden" size="small">
<el-option v-for='item in DepartmentList'
<el-option v-for='item in DepartmentList'
:label='item.DepartmentName'
:value='item.DepartmentID'
:key='item.DepartmentID'>
......@@ -396,7 +396,7 @@
</el-form-item>
</div>
<el-form-item label="排序">
......@@ -405,12 +405,21 @@
<el-form-item :label="$t('fnc.mbmiaoshu')">
<el-input v-model="addMsg.DescribeInfo" class="w450" maxlength="100"></el-input>
</el-form-item>
<el-form-item label="使用端">
<el-select filterable multiple v-model='addMsg.PortTypeList' class="w200" style="max-height:100px;overflow:hidden" size="small">
<el-option v-for='item in PortTypeList'
:label='item.Name'
:value='item.Id'
:key='item.Id'>
</el-option>
</el-select>
</el-form-item>
<div class="approval_page_title">{{$t('fnc.lcshezhi')}}</div>
<div class="approval_page_content">
<div class="approval_person_content">
<span class="approval_span_type">{{$t('fnc.mrspliucheng')}}</span>
<span style="float:right"><el-button @click="Auditshow=true,EditAudit()" style="padding:4px" type="primary" icon="el-icon-edit" circle></el-button></span>
<div class="approval_person_list fl">
<span class="approval_person_list_tit">{{$t('fnc.mrspiren')}}</span>
<div class="padding_l88">
......@@ -549,7 +558,7 @@
<el-input v-model.number="item.Sort" size="mini" style="width:200px"></el-input>
</li>
</ul>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="mini" @click="dialogVisible = false">取 消</el-button>
......@@ -566,6 +575,7 @@ export default {
components: { Treeselect },
data(){
return{
PortTypeList: [],
PropertyTypeList:[],
xingzhenState:false,
DepartmentList:[],
......@@ -575,6 +585,8 @@ export default {
TemplateId:0,
radio:1,
addMsg:{
PortTypeList: [],
PortType: '',
Id:0,
Name:'',
DescribeInfo:'',
......@@ -775,8 +787,21 @@ export default {
this.getRole()
this.getEmployeeList();
this.getDepartment();
this.getPortType()
},
methods:{
getPortType(){
this.apipost(
"Template_post_GetPortTypeEnumList",
{},
res => {
if (res.data.resultCode == 1) {
this.PortTypeList=res.data.data;
}
},
err => {}
);
},
getPropertyType(){
this.apipost(
"FinancialFlowTemplate_post_GetPropertyTypeList",
......@@ -809,7 +834,7 @@ export default {
},
RadioShow(val){
if(val==1){
this.addMsg.ShowEmployeeList=[];
this.addMsg.ShowDepartmentList=[];
}
......@@ -833,8 +858,8 @@ export default {
let id=this.myAuditList[i].Sort;
sum+=i+1;
sortnum+=this.myAuditList[i].Sort;
}
if(sum!=sortnum){
this.Error("请输入连续的排序!")
......@@ -846,7 +871,7 @@ export default {
this.Auditshow=false;
},
EditAudit(){
},
handleCheckAllChangeAcc(val) {
this.accListMsg = val ? [1,2,3,4] : [];
......@@ -884,8 +909,9 @@ export default {
this.addMsg.ShowEmployeeList = data.ShowEmployeeList;
this.addMsg.ShowDepartmentList = data.ShowDepartmentList;
this.addMsg.PropertyType= data.PropertyType;
this.addMsg.PortTypeList = data.PortType!=''?data.PortType.split(','):[];
this.addMsg.PortType= data.PortType;
if (data.list && data.list[0] !== -1) {
this.accListMsg = data.list;
}
......@@ -972,6 +998,11 @@ export default {
}
},
saveApproval(){ // 保存数据
if(this.addMsg.PortTypeList&&this.addMsg.PortTypeList.length>0){
this.addMsg.PortType = this.addMsg.PortTypeList.join(',')
}else{
this.addMsg.PortType = ''
}
if(this.xingzhenState){
if(!this.addMsg.PropertyType || this.addMsg.PropertyType=='' ){
this.Error("请选择审批类型!");
......@@ -1047,7 +1078,7 @@ export default {
this.$message.success(this.$t('tips.czchenggong'))
if(this.xingzhenState){
this.$router.push({ name: 'XProcessmanagement',query:{"type":this.addMsg.TemplateType,'Branch_Id':this.$route.query.Branch_Id} })
}else{
this.$router.push({ name: 'FProcessManagement',query:{"type":this.addMsg.TemplateType,'Branch_Id':this.$route.query.Branch_Id} })
......@@ -1058,6 +1089,8 @@ export default {
this.addMsg.TemplateSorce=2;
}
this.addMsg = {
PortTypeList: this.addMsg.PortTypeList,
PortType: this.addMsg.PortType,
PropertyType:'',
Id:this.addMsg.Id,
Name:this.addMsg.Name,
......@@ -1582,7 +1615,7 @@ export default {
AuditList.AuditDescription = this.AuditDescription;
AuditList.SpecialNode = this.GetNodeValue;
this.myAuditList.push(AuditList);
}
}
if(type==10){//分公司op
// if(!this.WindowID){
// this.$message.error("请选择窗口!")
......@@ -1595,7 +1628,7 @@ export default {
AuditList.AuditDescription = this.AuditDescription;
AuditList.SpecialNode = this.GetNodeValue;
this.myAuditList.push(AuditList);
}
}
if(type==11){//总部线控
AuditList.AuditType = 11;
AuditList.RoleOrInitiator = '';
......@@ -1604,7 +1637,7 @@ export default {
AuditList.AuditDescription = this.AuditDescription;
AuditList.SpecialNode = this.GetNodeValue;
this.myAuditList.push(AuditList);
}
}
if(type==8){//记账出纳
// if(!this.WindowID){
// this.$message.error("请选择窗口!")
......@@ -1617,7 +1650,7 @@ export default {
AuditList.AuditDescription = this.AuditDescription;
AuditList.SpecialNode = this.GetNodeValue;
this.myAuditList.push(AuditList);
}
}
if(type==9){//收款出纳
// if(!this.WindowID){
// this.$message.error("请选择窗口!")
......
<style>
@import "../../../assets/css/newTravelManager.css";
.opbdList {
font-weight: bold;
display: inline-block;
width: 25px;
height: 25px;
color: #fff;
border-radius: 50%;
line-height: 25px;
font-size: 12px;
cursor: pointer;
text-align: center;
}
.Audian_cent {
-webkit-box-flex: 1;
-ms-flex: 1;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.quoTation .Audit_left {
align-items: center;
border-right: 1px dashed #dddddd;
padding-right: 20px;
}
</style>
<template>
<div class="flexOne quoTation">
<div class="query-box">
<ul>
<li>
<span>
<em>所属线路</em>
<el-select v-model="queryData.LineId" class='w200' filterable :placeholder="$t('pub.pleaseSel')"
@change="getLineTeamList()">
<el-option :label="$t('pub.unlimitedSel')" :value='noLimit'></el-option>
<el-option v-for="item in LineList" :label='item.LineName' :value='item.LineID' :key='item.LineID'>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>所属系列</em>
<el-select v-model="queryData.LineteamId" class='w200' filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value='noLimit'></el-option>
<el-option v-for="item in LineTeamList" :label='item.LtName' :value='item.LtID' :key='item.LtID'>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>提交人</em>
<el-select v-model="queryData.CreateBy" filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value='noLimit'></el-option>
<el-option v-for="item in EmployeeList" :label='item.EmName' :value='item.EmployeeId'
:key='item.EmployeeId'>
</el-option>
</el-select>
</span>
</li>
<li>
<button class="hollowFixedBtn" @click="getList(),resetPageIndex()">查询</button>
</li>
</ul>
</div>
<el-tabs v-model="activeName" @tab-click="handleClick(activeName)">
<el-tab-pane v-for="item in $tripUtils.TravelStateList" :label="item.label" :name="item.Id" :key="item.subCode">
</el-tab-pane>
</el-tabs>
<div class="commonContent" v-loading="loading">
<ul class="_content">
<li v-for="item in dataList" :key="item.ID" style="padding:0 15px;">
<div class="Audit_left" style="width:140px">
<div>
<span>编号:{{item.ID}}</span>
</div>
<div style="margin-top:1px">类型:
<template v-if="item.TeamType==1">
<i style="color:red;font-weight:bold;">{{item.TeamTypeName}}</i>
</template>
<template v-else>
{{item.TeamTypeName}}
</template>
</div>
<div style="margin-top:3px">出发日期:{{item.OutDateTime}}</div>
</div>
<div class="Audit_left" style="width:20%;">
<div>
<p class="quoListName" style="padding-right:20px;width:100%;">
<span>{{item.LineName}}</span>
</p>
<p class="Quo_Content" style="padding-right:20px;width:100%;"><i v-if="item.LtName"
class="iconfont icon-richeng"></i>
<span>{{item.LtName}}</span>
</p>
</div>
</div>
<div class="Audit_left" style="width:20%;">
<div>
<p class="quoListName" style="padding-right:20px;width:100%;">
<el-tooltip popper-class="max-w250" effect="dark" :content="item.Title" placement="top-start">
<span>{{item.Title}}</span>
</el-tooltip>
</p>
<p class="Quo_Content" style="padding-right:20px;width:100%;"><i v-if="item.CustomerName"
class="iconfont icon-richeng"></i>
<span>{{item.CustomerName}}</span>
</p>
</div>
</div>
<div class="Audian_cent" style="width:260px;">
<div class="stayDays">{{item.DayNum}}天</div>
<div class="">
销售定价
<el-popover popper-class="salsSetPrice" trigger="click">
<div class="priceContentDiv" v-if="item.QuotationPrice!=null">
<div>
<div>成人</div>
<div class="priceList">
<div>
<span class="pLeftPrice">销售价格:¥{{item.QuotationPrice.B2BMemberPrice}}</span>
</div>
</div>
<div>小孩</div>
<div class="priceList">
<div>
<span class="pLeftPrice">占床:¥{{item.QuotationPrice.ChildNeedPrice}}</span>
<span class="pRightPrice">不占床:¥{{item.QuotationPrice.ChildNoNeedPrice}}</span>
</div>
<div class="priceDivCon">
<span class="pLeftPrice">婴儿:¥{{item.QuotationPrice.BabyPrice}}</span>
<span class="pRightPrice">附加费:¥{{item.QuotationPrice.BabyChargePrice}}</span>
</div>
</div>
<div>老人</div>
<div class="priceList">
<div>
<span class="pLeftPrice">附加费:¥{{item.QuotationPrice.OldManChargePrice}}</span>
</div>
</div>
<div>杂费</div>
<div class="priceList">
<div>
<span class="pLeftPrice">签证:¥{{item.QuotationPrice.VisaPrice}}</span>
<span class="pRightPrice">单房差:¥{{item.QuotationPrice.SingleRoomPrice}}</span>
</div>
</div>
<div>单项报价</div>
<div class="priceList">
<div>
<span class="pLeftPrice">单地接:¥{{item.QuotationPrice.SingleDMCPrice}}</span>
</div>
</div>
</div>
</div>
<span slot="reference" class="diPrice">{{item.JPYSalePrice}}<span class="qi"></span></span>
</el-popover>
</div>
</div>
<div class="_rightAudit">
<div class="AuditUserInfo clearfix aa" style="width:165px;">
<div class="AuditDanHeader">
<img v-if="item.CreateUserPhoto" :src="item.CreateUserPhoto" alt="">
<img v-else src="../../../assets/img/default_head_img.jpg" alt="">
</div>
<div class="AuditUserInfoDetail">
<div style="width:85px;">{{item.CreateUserName}}</div>
<div class="AuditChangeDate">{{item.CreateDate}}</div>
</div>
</div>
<div class="AuditStatus">
<div v-if="item.TravelState==2">
<div>待审核</div>
</div>
<div v-if="item.TravelState==3">
<div class="Auditapproved">已通过</div>
<el-popover popper-class="salsSetPrice" trigger="click">
<div class="priceContentDiv">
<div>
<span>审批结果</span>
<span class="AuditDate">{{item.AuditDate}}</span>
</div>
<div>{{item.AuditByName}}: {{item.AuditContent}}</div>
</div>
<div slot="reference" class="AuditLookDetail">查看说明</div>
</el-popover>
</div>
<div v-if="item.TravelState==4">
<div class="Auditrejected">已驳回</div>
<el-popover popper-class="salsSetPrice" trigger="click">
<div class="priceContentDiv">
<div>
<span>审批结果</span>
<span class="AuditDate">{{item.AuditDate}}</span>
</div>
<div>{{item.AuditByName}}: {{item.AuditContent}}</div>
</div>
<div slot="reference" class="AuditLookDetail">查看说明</div>
</el-popover>
</div>
</div>
<div class="AD_Operation">
<span class="openGroup opbdList">
<el-tooltip class="item" effect="dark" content="查看" placement="top-start" popper-class="max-w250">
<span @click="goUrl('QuotationAduit',item.ID,1)"></span>
</el-tooltip>
</span>
<span class="openGroup opbdList" v-if="item.TravelState==2">
<el-tooltip class="item" effect="dark" content="审核" placement="top-start" popper-class="max-w250">
<span @click="goUrl('QuotationAduit',item.ID,2)"></span>
</el-tooltip>
</span>
<span class="openGroup opbdList">
<el-tooltip class="item" effect="dark" content="日志" placement="top-start" popper-class="max-w250">
<el-popover popper-class="salsSetPrice" trigger="click">
<div class="priceContentDiv">
<div class="AuditLog">报价单日志</div>
<div class="logContact">
<div v-for="(childItem,logIndex) in AuditLogList" :key="childItem.subCode">
<div class="clearfix">
<div class="Auditcircle"></div>
<div class="operateName">{{childItem.UserName}}</div>
<div class="operateDate">{{childItem.hour}}</div>
</div>
<div>{{childItem.LogContent}}<span class="spread" v-if="childItem.LogType==2"
@click="expectInfo(logIndex)">{{childItem.expectName}}</span></div>
<div v-if="childItem.isShow">{{childItem.LogRemark}}</div>
</div>
</div>
</div>
<span slot="reference" class="AuditLogSpan" @click="getAudiDanLog(item.ID)"></span>
</el-popover>
</el-tooltip>
</span>
</div>
</div>
</li>
</ul>
<div class="noData" v-show="noData">
{{$t('system.content_noData')}}
</div>
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size="queryData.pageSize" :total="total">
</el-pagination>
</div>
</template>
<script>
export default {
data() {
return {
queryData: {
LineId: 0,
LineteamId: 0,
CreateBy: 0,
PageSize: "5",
TravelState: 2
},
loading: true,
//默认选中
activeName: "2",
//员工列表
EmployeeList: [],
//日志
AuditLogList: "",
//线路列表
LineList: "",
noLimit: 0,
//系列列表
//是否有数据
noData: false,
LineTeamList: "",
dataList: "",
total: 0,
currentPage: 1,
};
},
components: {
},
methods: {
handleCurrentChange(val) {
this.queryData.pageIndex = val;
this.getList();
},
resetPageIndex() {
this.queryData.pageIndex = 1;
this.currentPage = 1;
},
//选项卡切换
handleClick(activeName) {
this.resetPageIndex()
this.queryData.TravelState = activeName;
this.getList();
},
//获取操作日志
getAudiDanLog(ID) {
let msg = {
configId: ID
};
this.apipost("travel_get_GetTravelConfigLog", msg, res => {
if (res.data.resultCode == 1) {
var endDate = new Date();
endDate.setMonth(endDate.getMonth() + 1);
var tempData = res.data.data;
tempData.forEach(x => {
if (x.LogType == 2) {
x.isShow = false;
x.expectName = "展开";
}
x.hour = this.$commonUtils.formatMsgTime(x.LogTimeStr);
});
this.AuditLogList = tempData;
}
});
},
expectInfo(logIndex) {
var flag = this.AuditLogList[logIndex].isShow;
this.AuditLogList[logIndex].isShow = !flag;
if (this.AuditLogList[logIndex].isShow) {
this.AuditLogList[logIndex].expectName = "关闭";
} else {
this.AuditLogList[logIndex].expectName = "展开";
}
},
//获取线路列表
getLineList() {
this.apipost("line_post_GetList", {}, res => {
if (res.data.resultCode == 1) {
this.LineList = res.data.data;
}
});
},
//获取系列列表
getLineTeamList(lineId) {
this.queryData.LineteamId = 0;
let msg = {
lineID: this.queryData.LineId,
isTOOP: 1
};
this.apipost("team_post_GetList", msg, res => {
if (res.data.resultCode == 1) {
this.LineTeamList = res.data.data;
}
});
},
//初始化表格数据
getList() {
this.loading = true;
this.apipost(
"travel_get_GetTravelOfferAuditPageList",
this.queryData,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.total = res.data.data.count;
this.noData = !this.total > 0;
var tempData = res.data.data.pageData;
tempData.forEach(x => {
if (x.AuditDate && x.AuditDate != '') {
x.hours = this.$commonUtils.formatMsgTime(x.AuditDate);
}
});
this.dataList = tempData;
}
}
);
},
//根据当前员工所在部门获取该部门及子部门员工信息
getEmployeeList() {
this.apipost(
"admin_get_GetEmployeeByUserDepartmentId", {},
res => {
if (res.data.resultCode == 1) {
this.EmployeeList = res.data.data;
}
}
);
},
goUrl(path, configId, qType) {
if (configId > 0) {
this.$router.push({
name: path,
query: {
configId: configId,
Qtype: qType,
blank: 'y',
tab: '报价单审核'
}
});
} else {
this.$router.push({
name: path
});
}
},
},
mounted() {
this.getLineList();
this.getEmployeeList();
this.getList();
}
};
</script>
<style>
@import "../../../assets/css/newTravelManager.css";
.BilldownLoadCommon 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: .15em;
line-height: 15px;
color: white;
border: 1px solid #e95252;
}
.BilldownLoadCommon input[type="checkbox"]:checked+label::before {
content: "\2713";
background-color: #e95252;
}
.BilldownLoadCommon input[type="checkbox"] {
position: absolute;
clip: rect(0, 0, 0, 0);
}
.BilldownLoadCommon input[type="checkbox"]:focus+label::before {
box-shadow: none;
}
.BilldownLoadCommon input[type="checkbox"]:disabled+label::before {
background-color: gray;
box-shadow: none;
color: #555;
}
.BilldownLoadCommon table td {
text-align: left;
}
.newAopbdd {
font-weight: bold;
display: inline-block;
width: 25px;
height: 25px;
color: #fff;
border-radius: 50%;
line-height: 25px;
font-size: 12px;
cursor: pointer;
text-align: center;
}
.line1 {
width: 240px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
</style>
<template>
<div class="flexOne quoTation">
<div class="query-box">
<ul>
<li>
<span>
<em>所属线路</em>
<el-select v-model="queryData.LineId" class='w200' filterable :placeholder="$t('pub.pleaseSel')"
@change="getLineTeamList()">
<el-option :label="$t('pub.unlimitedSel')" :value='noLimit'></el-option>
<el-option v-for="item in LineList" :label='item.LineName' :value='item.LineID' :key='item.LineID'>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>所属系列</em>
<el-select v-model="queryData.LineteamId" class='w200' filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value='noLimit'></el-option>
<el-option v-for="item in LineTeamList" :label='item.LtName' :value='item.LtID' :key='item.LtID'>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>开团状态</em>
<el-select v-model="queryData.OpenState" filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value='noLimit'></el-option>
<el-option v-for='item in OpenStateList' :key="item.Id" :label="item.label" :value="item.Id">
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<span>{{$t('visa.v_czuser')}}</span>
<el-select class="w150" v-model="queryData.CreateBy" filterable :placeholder="$t('pub.pleaseSel')"
clearable>
<el-option :label="$t('pub.unlimitedSel')" :value="0">
</el-option>
<el-option v-for="(item,index) in EmployeeList" :label="item.EmName" :value="item.EmployeeId"
:key="index"></el-option>
</el-select>
</span>
</li>
<li>
<button class="hollowFixedBtn" @click="getList(),resetPageIndex()">查询</button>
<button class="hollowFixedBtn" @click="goMakeQuo('QuotationNewPrice',0)">新增</button>
</li>
</ul>
</div>
<div class="commonContent" v-loading="loading">
<ul class="_content">
<li v-for="item in dataList" :key="item.subCode" :data-id="item.ID" style="padding:0 10px;">
<div class="_left" style="padding:0;display:flex;">
<div class="QT_CodeNum">
<el-popover placement="top-start" title="" width="200" trigger="hover" :content="item.TCNUMS">
<div slot="reference" v-if="item.TCNUMS" class="line1">
团号:{{item.TCNUMS}}
</div>
</el-popover>
{{$t('hotel.hotel_SerialNumber')}}{{item.ID}}
<div>
类型: <template v-if="item.TeamType==1">
<i style="color:red;font-weight:bold;">{{item.TeamTypeName}}</i>
</template>
<template v-else>
{{item.TeamTypeName}}
</template>
</div>
</div>
</div>
<div class="_left" style="display:flex;">
<div style="padding-left:10px">
<p style="font-size:14px">
<span>线路名称:{{item.LineName}}</span>
</p>
<span>系列名称:{{item.LtName}}</span>
<div> 出发日期:{{item.OutDateTime}}</div>
</div>
</div>
<div class="_left" style="padding-left:10px">
<div>
<p style="font-size:14px">
<el-tooltip popper-class="max-w250" effect="dark" :content="item.Title" placement="top-start">
<span>{{item.Title}}</span>
</el-tooltip>
</p>
<span>客户名称:{{item.CustomerName}}</span>
</div>
</div>
<div class="_cent">
<div style="margin: 0 13px 0 10px;" class="stayDays">
{{item.DayNum}}{{$t('hotel.hotel_day')}}</div>
<div class="">
{{$t('op.SalesPrice')}}
<el-popover popper-class="salsSetPrice" trigger="click">
<div class="priceContentDiv" v-if="item.QuotationPrice!=null">
<div>
<div>成人</div>
<div class="priceList">
<div>
<span class="pLeftPrice">销售价格:¥{{item.QuotationPrice.B2BMemberPrice}}</span>
</div>
</div>
<div>小孩</div>
<div class="priceList">
<div>
<span class="pLeftPrice">占床:¥{{item.QuotationPrice.ChildNeedPrice}}</span>
<span class="pRightPrice">不占床:¥{{item.QuotationPrice.ChildNoNeedPrice}}</span>
</div>
<div class="priceDivCon">
<span class="pLeftPrice">婴儿:¥{{item.QuotationPrice.BabyPrice}}</span>
<span class="pRightPrice">附加费:¥{{item.QuotationPrice.BabyChargePrice}}</span>
</div>
</div>
<div>老人</div>
<div class="priceList">
<div>
<span class="pLeftPrice">附加费:¥{{item.QuotationPrice.OldManChargePrice}}</span>
</div>
</div>
<div>杂费</div>
<div class="priceList">
<div>
<span class="pLeftPrice">签证:¥{{item.QuotationPrice.VisaPrice}}</span>
<span class="pRightPrice">单房差:¥{{item.QuotationPrice.SingleRoomPrice}}</span>
</div>
</div>
<div>单项报价</div>
<div class="priceList">
<div>
<span class="pLeftPrice">单地接:¥{{item.QuotationPrice.SingleDMCPrice}}</span>
</div>
</div>
</div>
</div>
<span slot="reference" class="diPrice">
<template v-if="item.SalesPrice&&item.SalesPrice>0">
{{item.SalesPrice}}
</template>
<template v-else>
{{item.JPYSalePrice}}
</template>
<span class="qi"></span></span>
</el-popover>
</div>
</div>
<div class="_right">
<div class="AuditUserInfo clearfix aa" style="margin-left:10px;">
<div class="AuditDanHeader">
<img v-if="item.CreateUserPhoto" :src="item.CreateUserPhoto" alt="">
<img v-else src="../../../assets/img/default_head_img.jpg" alt="">
</div>
<div class="AU_creatName">
<div>{{item.CreateUserName}}</div>
</div>
</div>
<div class="AuditStatus" style="width:80px;">
<div v-if="item.TravelState==2">
<div>待审核</div>
</div>
<div v-if="item.TravelState==3">
<div class="Auditapproved">已通过</div>
<el-popover popper-class="salsSetPrice" trigger="click">
<div class="priceContentDiv">
<div>
<span>审批结果</span>
<span class="AuditDate">{{item.AuditDate}}</span>
</div>
<div>{{item.AuditByName}}:{{item.AuditContent}}</div>
</div>
<div slot="reference" class="AuditLookDetail">查看说明</div>
</el-popover>
</div>
<div v-if="item.TravelState==4">
<div class="Auditrejected">已驳回</div>
<el-popover popper-class="salsSetPrice" trigger="click">
<div class="priceContentDiv">
<div>
<span>审批结果</span>
<span class="AuditDate">{{item.AuditDate}}</span>
</div>
<div>{{item.AuditByName}}:{{item.AuditContent}}</div>
</div>
<div slot="reference" class="AuditLookDetail">查看说明</div>
</el-popover>
</div>
</div>
<div style="width:134px;">
<span class="openGroup opbd" @click="goToOpenTravel(item)" v-if="item.TravelState==3&& item.OpenState==2">
<el-tooltip class="item" effect="dark" content="开团" placement="top-start" popper-class="max-w250">
</el-tooltip>
</span>
<span class="bianji newAopbdd"
v-if="item.TravelState==1||item.TravelState==2||item.TravelState==4||item.TravelState==5"
@click="goMakeQuo('QuotationNewPrice',item.ID, item.TeamType)">
<el-tooltip class="item" effect="dark" :content="$t('pub.updateMsg')" placement="top-start"
popper-class="max-w250">
<i class="iconfont icon-bianji-smal"></i>
</el-tooltip>
</span>
<span class="QT-delete newAopbdd" @click="delQuotation(item.ID)"
v-if="item.TravelState==1||item.TravelState==4||item.TravelState==5">
<el-tooltip class="item" effect="dark" :content="$t('system.table_delete')" placement="top-start"
popper-class="max-w250">
<i class="iconfont icon-shanchu"></i>
</el-tooltip>
</span>
<span style="background:#85ce61; " class="newAopbdd">
<el-tooltip class="item" effect="dark" content="查看" placement="top-start" popper-class="max-w250">
<i @click="goUrl('QuotationAduit',item.ID,1)" class="iconfont icon-view"></i>"></i>
</el-tooltip>
</span>
<!-- <span style="background:#85ce61; " class="newAopbdd" @click="showDownLoad(item)">
<el-tooltip class="item" effect="dark" content="下载" placement="top-start" popper-class="max-w250">
<i class="iconfont icon-bb-xiazai"></i>
</el-tooltip>
</span> -->
</div>
</div>
</li>
</ul>
<div class="noData" v-show="noData">
{{$t('system.content_noData')}}
</div>
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="queryData.currentPage"
layout="total,prev, pager, next, jumper" :page-size="queryData.pageSize" :total="queryData.total">
</el-pagination>
<!-- 下载弹窗 -->
<el-dialog custom-class='w450' title="报价单下载" :visible.sync="downloadBill" center>
<div class="BilldownLoadCommon">
<table style="width:380px;margin-left:44px;" border="0" cellspacing="0" cellpadding="0">
<tr>
<th colspan="2" style="height:50px;">
<span style="margin-left:-60px;">{{$t('salesModule.ChoiceNeed')}}</span>
</th>
</tr>
<tbody>
<tr height="36">
<td width="50%"><input id="IsShowTripPrice" type="checkbox" v-model="downLoadMsg.IsShowTripPrice" /><label
for="IsShowTripPrice">行程报价<br />(房、餐、车、门票)</label></td>
<td width="50%"><input id="IsShowTraffic" type="checkbox" v-model="downLoadMsg.IsShowTraffic" /><label
for="IsShowTraffic">交通部分</label></td>
</tr>
<tr height="36">
<td><input id="IsShowZaZhi" type="checkbox" v-model="downLoadMsg.IsShowZaZhi" /><label
for="IsShowZaZhi">杂支部分</label></td>
<td><input id="IsShowOtherZhichu" type="checkbox" v-model="downLoadMsg.IsShowOtherZhichu" /><label
for="IsShowOtherZhichu">其他支出</label></td>
</tr>
<tr height="36">
<td><input id="IsShowShouRu" type="checkbox" v-model="downLoadMsg.IsShowShouRu" /><label
for="IsShowShouRu">收入</label></td>
<td><input id="IsShowTuanFuFee" type="checkbox" v-model="downLoadMsg.IsShowTuanFuFee" /><label
for="IsShowTuanFuFee">团负费</label></td>
</tr>
<tr height="36">
<td><input id="IsShowLeaderFenTan" type="checkbox" v-model="downLoadMsg.IsShowLeaderFenTan" /><label
for="IsShowLeaderFenTan">领队分摊</label></td>
<td><input id="IsShowCost" type="checkbox" v-model="downLoadMsg.IsShowCost" /><label
for="IsShowCost">成本统计</label></td>
</tr>
<tr height="36">
<td><input id="IsCostRebate" type="checkbox" v-model="downLoadMsg.IsCostRebate" /><label
for="IsCostRebate">成本回扣</label></td>
<td><input id="IsShowOtherPrice" type="checkbox" v-model="downLoadMsg.IsShowOtherPrice" /><label
for="IsShowOtherPrice">其他定价</label></td>
</tr>
</tbody>
<tr height="66">
<td colspan="2" style="text-align:center;">
<input type="button" class="normalBtn" style="margin-left:-70px;" :value="$t('pub.sureBtn')"
@click="DownLoadFile()" />
</td>
</tr>
</table>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
EmployeeList: [],
userInfo: {},
queryData: {
CreateBy: '',
LineId: 0,
LineteamId: 0,
TravelState: 0,
OpenState: 0,
PageIndex: 1,
PageSize: 10,
total: 0,
currentPage: 1,
TeamType: 0, //0常规,1-小包团,2-一日游,3-地接团
},
loading: true,
//开团状态
OpenStateList: [{
Id: 1,
label: "已开团"
},
{
Id: 2,
label: "未开团"
}
],
//线路列表
LineList: "",
noLimit: 0,
//系列列表
LineTeamList: "",
//是否有数据
noData: false,
dataList: "",
downloadBill: false,
//下载参数
downLoadMsg: {
ID: 0,
FileName: "",
IsShowTripPrice: true, //行程报价
IsShowTraffic: false, //交通价格
IsShowZaZhi: false, //杂支部分
IsShowOtherZhichu: false, //其他支出
IsShowShouRu: false, //收入部分
IsShowTuanFuFee: false, //团负费
IsShowLeaderFenTan: false, //领队分摊
IsShowCost: false, //成本统计
IsShowOtherPrice: false, //其他定价
IsCostRebate: false, //成本回扣
},
};
},
methods: {
//根据当前员工所在部门获取该部门及子部门员工信息
getEmployeeList() {
let userInfo = this.getLocalStorage();
this.queryData.CreateBy = userInfo.EmployeeId
let msg = {
GroupId: userInfo.RB_Group_id,
BranchId: "-1",
DepartmentId: "-1",
PostId: "-1",
IsLeave: "0"
};
this.apipost(
"admin_get_EmployeeGetList", {},
res => {
if (res.data.resultCode == 1) {
this.EmployeeList = res.data.data;
}
},
);
},
goUrl(path, configId, qType) {
if (configId > 0) {
this.$router.push({
name: path,
query: {
configId: configId,
Qtype: qType,
blank: 'y',
tab: '报价单查看'
}
});
} else {
this.$router.push({
name: path
});
}
},
handleCurrentChange(val) {
this.queryData.PageIndex = val;
this.getList();
},
resetPageIndex() {
this.queryData.PageIndex = 1;
this.queryData.currentPage = 1;
},
//获取线路列表
getLineList() {
this.apipost("line_post_GetList", {}, res => {
if (res.data.resultCode == 1) {
this.LineList = res.data.data;
}
});
},
//获取系列列表
getLineTeamList() {
this.queryData.LineteamId = 0;
let msg = {
lineID: this.queryData.LineId,
isTOOP: 1
};
this.apipost("team_post_GetList", msg, res => {
if (res.data.resultCode == 1) {
this.LineTeamList = res.data.data;
}
});
},
//初始化表格数据
getList() {
this.loading = true;
this.apipost("travel_get_GetTravelOfferPageList_V2", this.queryData, res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.queryData.total = res.data.data.count;
this.noData = !this.queryData.total > 0;
this.dataList = res.data.data.pageData;
}
});
},
//删除报价单
delQuotation(ID) {
var that = this;
this.Confirm(this.$t('sm.schbnhfjscz'), function () {
let msg = {
ID: ID,
};
that.apipost(
"travel_post_RemoveConfig",
msg,
res => {
if (res.data.resultCode == 1) {
that.Success(res.data.message);
that.getList();
} else {
that.Error(res.data.message);
}
},
null
);
});
},
//报价单跳转
goMakeQuo(path, configId, TeamType) {
if (configId) {
this.$router.push({
path: path,
query: {
TeamType: TeamType,
configId: configId,
blank: 'y',
tab: '报价单'
}
});
} else {
this.$router.push({
path: path,
query: {
configId: configId,
blank: 'y',
tab: '报价单'
}
});
}
},
//开团或修改
goToOpenTravel(item) {
// TeamType 0常规,1-小包团,2-当地游,3-地接团
var routeName = this.$route.name;
var path = 'TravelManager2';
if (item.TeamType === 0) {
path = 'TravelManager2'
} else if (item.TeamType === 1) {
path = 'TravelManager3'
} else if (item.TeamType === 2) {
path = 'TravelManager5'
}
if (item.ID > 0) {
this.$router.push({
name: path,
query: {
configId: item.ID,
openState: 1,
isOffer: 1,
offerId: item.OfferId,
blank: 'y'
}
});
} else {
this.$router.push({
name: path
});
}
},
//显示下载弹窗
showDownLoad(item) {
this.downLoadMsg.ID = item.ID;
var fileName = "";
if (item.CustomerName) {
fileName += "【" + item.CustomerName + "】";
} else if (item.LtName) {
fileName += "【" + item.LtName + "】";
} else if (item.LineName) {
fileName += "【" + item.LineName + "】";
}
fileName += "成本下载.xls";
this.downLoadMsg.FileName = fileName;
this.downloadBill = true;
},
//报价单下载
DownLoadFile() {
this.downloadBill = false;
this.loading = true;
this.GetLocalFile("quotation_get_DownLoadQuotation", this.downLoadMsg, this.downLoadMsg.FileName, res => {
this.loading = false;
});
},
},
mounted() {
this.getList();
},
created() {
this.userInfo = this.getLocalStorage();
this.getEmployeeList();
this.getLineList();
}
};
</script>
......@@ -41,6 +41,7 @@
<span class="fr" style="margin-top: -8px;">
<input type="button" class="normalBtn" value="新增付款" @click="goUrl(1,2)" /><input type="button" class="normalBtn"
value="新增收款" @click="goUrl(1,1)" />
<input type="button" class="normalBtn" value="预付款冲抵" @click="isOffset(1,2)" />
</span>
</p>
<table border="0" cellspacing="1" cellpadding="0" class="teamRevenueExpenditureTable">
......@@ -100,6 +101,7 @@
<span class="fr" style="margin-top: -8px;">
<input type="button" class="normalBtn" value="新增付款" @click="goUrl(2,2)" /><input type="button" class="normalBtn"
value="新增收款" @click="goUrl(2,1)" />
<input type="button" class="normalBtn" value="预付款冲抵" @click="isOffset(2,2)" />
</span>
</p>
<table border="0" cellspacing="1" cellpadding="0" class="teamRevenueExpenditureTable">
......@@ -159,6 +161,7 @@
<span class="fr" style="margin-top: -8px;">
<input type="button" class="normalBtn" value="新增付款" @click="goUrl(3,2)" /><input type="button" class="normalBtn"
value="新增收款" @click="goUrl(3,1)" />
<input type="button" class="normalBtn" value="预付款冲抵" @click="isOffset(3,2)" />
</span>
</p>
<table border="0" cellspacing="1" cellpadding="0" class="teamRevenueExpenditureTable">
......@@ -218,6 +221,7 @@
<span class="fr" style="margin-top: -8px;">
<input type="button" class="normalBtn" value="新增付款" @click="goUrl(5,2)" /><input type="button" class="normalBtn"
value="新增收款" @click="goUrl(5,1)" />
<input type="button" class="normalBtn" value="预付款冲抵" @click="isOffset(5,2)" />
</span>
</p>
<table border="0" cellspacing="1" cellpadding="0" class="teamRevenueExpenditureTable">
......@@ -278,6 +282,7 @@
<span class="fr" style="margin-top: -8px;">
<input type="button" class="normalBtn" value="新增付款" @click="goUrl(14,2)" /><input type="button"
class="normalBtn" value="新增收款" @click="goUrl(14,1)" />
<input type="button" class="normalBtn" value="预付款冲抵" @click="isOffset(14,2)" />
</span>
</p>
<table border="0" cellspacing="1" cellpadding="0" class="teamRevenueExpenditureTable">
......@@ -339,13 +344,25 @@
</el-carousel-item>
</el-carousel>
</div>
<offset :isShow="cdState" :obj="queryObj" @close="cdState=false"></offset>
</div>
</template>
<script>
import offset from '../../public/offset.vue';
export default {
components: { offset },
data() {
return {
Handmsg: {
OtherType: 7,
ReFinanceId: 0,
Rate: 0,
TCNUM: '',
czState: true,
},
queryObj:null,
cdState: false,
LineId:0,
picIsShow: false,
picObj: [],
......@@ -363,6 +380,53 @@
}
},
methods: {
isOffset(_orderSource, _type){
this.goUrl(_orderSource, _type,'Offset')
},
// 制作单据
makeAdocument(row, index, num, name,Offset) {
if((num==2||num==3)&&row.Income<=0){
this.Info('请先制收款单据,再制成本或退款单据!')
return
}
if(Offset){
this.cdState = true
}
let type = 0
if(num==3){
type = 2
}else{
type = num
}
this.BillMakingMsg.ReFinanceId = row.OrderId;
this.BillMakingMsg.ReFinanceId2 = num;
if (name == "Hand") {
this.BillMakingMsg.OtherType = 62;
} else {
this.BillMakingMsg.OtherType = 61;
}
let text = "";
let query = {};
if (num == 1) {
text = "收款";
} else if (num == 2) {
text = "付款";
}
query = {
blank: "y",
tab: `新增${text}单据`,
Type: type,
tradeObj: JSON.stringify(this.BillMakingMsg),
};
this.queryObj = query
if(!Offset){
this.$store.commit("ChoiceAddFinancialDocuments");
this.$router.push({
path: "/ChoiceAddFinancialDocuments",
query
});
}
},
//跳转到财务页面
goFinaceURL(id) {
this.$router.push({
......@@ -438,7 +502,7 @@
})
this.picIsShow = true;
},
goUrl(_orderSource, _type) {
goUrl(_orderSource, _type,Offset) {
let TCIDARR = []
let id = [];
if(this.msgList&&this.msgList.length>0&&this.msgList[0].LineId==this.LineId){
......@@ -480,6 +544,25 @@
TCIDList: TCIDARR
}
id = id.length > 0 ? JSON.stringify(id) : null;
// 冲抵
if(Offset){
orderObj.TCIDList = [this.$route.query.id]
let query = {
'czmsg': this.Handmsg,
'Type': _type,
'path': 'teamRevenueExpenditure',
'companyID': this.msgList&&this.msgList.length>0&&this.msgList[0].OutBranchId!=null?this.msgList[0].OutBranchId:this.$route.query.OutBranchId,
'blank': 'y',
'orderObj': JSON.stringify(orderObj),
'OrderSource': _orderSource,
'searchTitle': '分摊'
};
this.queryObj = query
this.cdState = true
return
}
this.$router.push({
name: 'ChoiceAddFinancialDocuments',
query: {
......
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