Commit e52d6023 authored by 华国豪's avatar 华国豪 🙄
parents f90b053f a6318bb8
This diff is collapsed.
......@@ -13,7 +13,14 @@
.rq_disImNote {
color: #ea6d6d;
}
.piliangPop .roomReserSet tr{
height:30px;
}
.piliangPop .roomReserSet tr th{
background-color: #eee;
text-align: center;
margin-bottom:10px;
}
</style>
<template>
......@@ -30,14 +37,50 @@
{{$t('ground.jisuan1')}} <br />
{{$t('ground.jisuan2')}} <br />
{{$t('ground.sidaobsuan')}}<br />
付款方式是现付的,必須上传手配书.
付款方式是现付的,必須上传手配书.
</div>
<div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " :style="{height: boxHeight + 'px'}"
class="ownScrollbarStyle" ref="ownScrollbarStyle">
<table border="0" cellspacing="1" cellpadding="0" class="roomReservationsDetailsTalbe" v-loading="loading">
<tr>
<th class="fz14" colspan="5">{{$t('visa.v_teaminfo')}}&nbsp;&nbsp;{{$t('leader.leader_Leader')}}:{{LeaderName}} &nbsp;&nbsp;{{$t('leader.leader_Guide')}}:{{GuideName}}.</th>
<th class="fz14" colspan="17">{{$t('ground.dijiecaozuoxinxi')}}</th>
<th class="fz14" colspan="5">{{$t('visa.v_teaminfo')}}&nbsp;&nbsp;{{$t('leader.leader_Leader')}}:{{LeaderName}} &nbsp;&nbsp;{{$t('leader.leader_Guide')}}:{{GuideName}}.
</th>
<th class="fz14" colspan="17">
<el-tooltip class="item" effect="dark" content="批量上传手配书" placement="top-start" style="float:left;margin-left:20px;">
<el-popover placement="bottom" popper-class="piliangPop" width="400" trigger="click" v-model="isShowPiliangPop">
<table class="dmcSetTable roomReserSet" border="0" cellspacing="0" cellpadding="0">
<tr>
<th>日期</th>
<th>酒店名称</th>
</tr>
<template v-for="(lItem,lIndex) in list" >
<tr v-for="(subItem,subIndex) in lItem.HotelOrderList" :key="subIndex+lIndex">
<td style="width:100px;">
{{lItem.UseTimeStr}}
</td>
<td style="width:280px;">
<el-checkbox :checked="subItem.IsChecked" @change="MoreUpdate(subItem)">{{subItem.NewHotelName}}</el-checkbox>
</td>
</tr>
</template>
<tr>
<td colspan="2" style="text-align:center">
<el-upload :http-request="uploadFileBtnS" :multiple="false" :show-file-list="false" action=''>
<el-button size="small" type="danger" style="margin-top:10px;">
选择文件</el-button>
</el-upload>
</td>
</tr>
</table>
<el-button slot="reference" style="background:#E95252; border-color:#E95252" type="primary">
批量上传手配书
</el-button>
</el-popover>
</el-tooltip>
<span style="margin-top:6px;display:inline-block;">{{$t('ground.dijiecaozuoxinxi')}}</span>
</th>
</tr>
<tr>
<th width="120">{{$t('hotel.table_CheckInDate')}}</th>
......@@ -102,7 +145,6 @@
</td>
</tr>
</table>
</td>
<!-- 机位总数/(Y/E/F) -->
<td v-if="childIndex==0" :rowspan="6">
......@@ -171,9 +213,8 @@
</template>
</p>
<el-upload :http-request="uploadFileBtnS" :multiple="false" :show-file-list="false" action=''>
<el-button size="small" type="danger" @click='getItem(index, subIndex)'>
{{!subItem.ContractUrl ? '上传手配书' : '重新上传手配书'}}</el-button>
</el-upload>
<el-button size="small" type="danger" @click='getItem(index, subIndex)'>{{!subItem.ContractUrl ? '上传手配书' : '重新上传手配书'}}</el-button>
</el-upload>
</td>
</tr>
</table>
......@@ -267,7 +308,6 @@
<el-input class='w40' maxlength="2" @keyup.native="checkInteger(childItem,'RebateRatio')"
v-model='childItem.RebateRatio' @input="calculationPrice(subItem)" :disabled="true"></el-input> %
</template>
</td>
<!--返佣金额-->
<td>
......@@ -438,12 +478,8 @@
</el-select>
</td>
</tr>
<tr>
<td colspan="2" style="height:5px;">
</td>
</tr>
<tr>
......@@ -556,7 +592,9 @@
allCurrencyList: [], //币种列表
checkedIndex: '',
checkedsubIndex: '',
XiaoFeiTaxFee:0.1
XiaoFeiTaxFee:0.1,
IsMoreUpdate:0,//批量上传手配书0-单个上传,1-批量上传
isShowPiliangPop:false //是否显示批量上传popover
}
},
components: {
......@@ -565,6 +603,11 @@
commonPHInfo: commonPHlInfo
},
methods: {
MoreUpdate(subItem)
{
subItem.IsChecked=!subItem.IsChecked;
this.IsMoreUpdate=1;
},
//付款方式切换
PayChange(subItem) {
if (subItem.PayStyle > 0) {
......@@ -711,9 +754,25 @@
let path = '/Upload/DMC/Hotel'
this.$message.info('上传中...')
this.UploadSelfFileT(path, newArr, x => {
var fileUrl=this.domainManager()
.ViittoFileUrl + x.data.FilePath;
this.list[this.checkedIndex].HotelOrderList[this.checkedsubIndex].ContractUrl = fileUrl;
var fileUrl=this.domainManager().ViittoFileUrl + x.data.FilePath;
//批量上传
if(this.IsMoreUpdate==1)
{
this.list.forEach((sItem,sIndex)=>{
sItem.HotelOrderList.forEach((subItem,subIndex)=>{
if(subItem.IsChecked){
subItem.ContractUrl=fileUrl;
}
subItem.IsChecked=false;
});
});
this.isShowPiliangPop=false;
}
else
{
this.list[this.checkedIndex].HotelOrderList[this.checkedsubIndex].ContractUrl = fileUrl;
}
this.IsMoreUpdate=0;
this.$forceUpdate()
})
},
......@@ -755,6 +814,7 @@
IsCombine: this.IsCombine,
NewTCIDs: this.NewTCIDs
}, res => {
if (res.data.resultCode == 1) {
this.IsOperation = res.data.data.IsOperation;
this.IsEditHotel = res.data.data.IsEditHotel;
......
......@@ -3,82 +3,274 @@
<div class="query-box">
<ul>
<li>
<span>
<span
><em>合同编号</em
><el-input
class="w210"
v-model="msg.T_ContractNum"
placeholder="请输入合同编号"
@keyup.enter.native="getList"
></el-input
></span>
</li>
<li>
<span
><em>客户名称</em
><el-input
class="w210"
v-model="msg.Tourists_Name"
placeholder="请输入客户名称"
@keyup.enter.native="getList"
></el-input
></span>
</li>
<li>
<span
><em>客户电话</em
><el-input
class="w210"
v-model="msg.Tourists_Tel"
placeholder="请输入客户电话"
@keyup.enter.native="getList"
></el-input
></span>
</li>
<li>
<span
><em>{{ $t("sm.Date") }}</em>
<el-date-picker
v-model="msg.StartDate"
class="w135"
value-format="yyyy-MM-dd"
type="date"
:picker-options="pickerBeginDateBefore"
></el-date-picker>
-
<el-date-picker
v-model="msg.EndDate"
class="w135"
value-format="yyyy-MM-dd"
type="date"
:picker-options="pickerBeginDateAfter"
></el-date-picker>
</span>
</li>
<li>
<input type="button" @click="" class="normalBtn" value="一日游合同" />
<input type="button" @click="" class="normalBtn" value="境内旅游合同" />
<input type="button" @click="" class="normalBtn" value="单项委托合同" />
<span
><em>合同状态</em>
<el-select v-model="msg.Status" :placeholder="$t('pub.pleaseSel')">
<el-option label="请选择" :value="-1" :key="-1"> </el-option>
<el-option label="正常" :value="0" :key="0"> </el-option>
<el-option label="删除" :value="1" :key="1"> </el-option>
</el-select>
</span>
</li>
<li>
<input
type="button"
class="normalBtn"
:value="$t('pub.searchBtn')"
@click="
getList();
resetPageIndex();
"
/>
</li>
<li>
<input
type="button"
@click="goContract('onedayTripContract')"
class="normalBtn"
value="一日游合同"
/>
<input
type="button"
@click="goContract('DomesticTravelcontract')"
class="normalBtn"
value="境内旅游合同"
/>
<input
type="button"
@click="goContract('SingleContract')"
class="normalBtn"
value="单项委托合同"
/>
</li>
</ul>
</div>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0">
<table
class="singeRowTable"
border="0"
cellspacing="0"
cellpadding="0"
v-loading="loading"
>
<tr>
<th width="300">编号</th>
<th width="800">地址</th>
<th width="100">城市</th>
<th>操作</th>
<th width="80">编号</th>
<th width="120">合同编号</th>
<th width="150">客户名称</th>
<th width="150">客户联系电话</th>
<th width="150">客户地址</th>
<th width="150">合同状态</th>
<th width="100">创建人</th>
<th width="120">创建时间</th>
<th width="130">操作</th>
</tr>
<tr v-for="(item,index) in dataList">
<td>{{item.C_BusCode}}</td>
<td>{{item.C_BreakfastAddress}}</td>
<td>{{item.C_ComplaintCity}}</td>
<tr v-for="(item, index) in dataList" :key="index">
<td>{{ item.ID }}</td>
<td>{{ item.T_ContractNum }}</td>
<td>{{ item.Tourists_Name }}</td>
<td>{{ item.Tourists_Tel }}</td>
<td>{{ item.Tourists_Addres }}</td>
<td>{{ item.StatusStr }}</td>
<td>{{ item.CreateByName }}</td>
<td>{{ item.CreateTimeStr }}</td>
<td>
<el-tooltip class="item" effect="dark" content="修改" placement="top-start">
<el-button type="primary" icon="el-icon-edit" circle @click="goContract('onedayTripContract',item)"></el-button>
</el-tooltip>
<el-tooltip
class="item"
effect="dark"
content="修改"
placement="top-start"
>
<el-button
type="primary"
icon="el-icon-edit"
circle
@click="goContract('onedayTripContract', item.ID)"
></el-button>
</el-tooltip>
<el-tooltip
class="item"
effect="dark"
content="删除"
placement="top-start"
>
<el-button
type="primary"
icon="el-icon-edit"
circle
@click="DeleteContract(item)"
></el-button>
</el-tooltip>
</td>
</tr>
</table>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage" layout="total,prev, pager, next, jumper"
:page-size=msg.pageSize :total=total>
<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>
export default {
data() {
return {
total: 0,
currentPage: 1,
dataList: [],
msg: {
pageIndex: 1,
pageSize: 15,
},
export default {
data() {
return {
total: 0,
currentPage: 1,
dataList: [],
loading: false, //页面加载
msg: {
T_ContractNum: "", //合同编号
Tourists_Name: "", //客户名称
Tourists_Tel: "", //客户电话
StartDate: "", //开始日期
EndDate: "", //结束日期
Status: -1, //合同状态
pageIndex: 1,
pageSize: 15
},
pickerBeginDateBefore: {
disabledDate: time => {
if (this.msg.EndDate == null) {
return false;
} else {
let endTime = new Date(this.msg.EndDate);
return endTime.getTime() < time.getTime();
}
}
},
pickerBeginDateAfter: {
disabledDate: time => {
let startTime = new Date(this.msg.StartDate);
return startTime.getTime() >= time.getTime();
}
}
};
},
mounted() {
this.getList();
},
methods: {
//删除合同
DeleteContract(item) {
var that = this;
this.Confirm("是否此合同删除?", function() {
var msg = {
ID: item.ID
};
that.apipost(
"travelcontract_post_RemoveTravelContractService",
msg,
res => {
if (res.data.resultCode == 1) {
that.Success("删除成功!");
that.getList();
} else {
that.Error(res.data.message);
}
},
null
);
});
},
mounted() {
this.getList()
},
methods: {
getList() { //获取列表数据
this.apipost("travelcontract_get_GetPageListService", this.msg, res => {
console.log(res,'resss');
getList() {
this.loading = true;
//获取列表数据
this.apipost(
"travelcontract_get_GetPageListService",
this.msg,
res => {
this.loading = false;
console.log("res.data.data", res.data.data);
if (res.data.resultCode == 1) {
this.dataList = res.data.data.pageData;
this.total = res.data.data.count;
} else {}
}, err => {})
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
goContract(path,item) {
this.$router.push({
name: path,
query: {
"id": item.ID,
blank: 'y',
tab: "一日游合同"
} else {
this.Error(res.data.message);
}
})
},
},
err => {}
);
},
resetPageIndex() {
this.msg.pageIndex = 1;
this.currentPage = 1;
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
goContract(path, Id) {
var nId = 0;
if (Id && Id > 0) {
nId = Id;
}
this.$router.push({
name: path,
query: {
id: nId,
blank: "y",
tab: "一日游合同"
}
});
}
}
};
</script>
......@@ -414,7 +414,7 @@
<input v-if="IsEditBus==0" type="button" class="normalBtn" :class="{'disClick':!isSubmit}"
@click="SaveList(0)" :disabled="disButton" :value="$t('ground.baocuncaogao')" />
<input v-if="IsEditBus==1" type="button" class="normalBtn" :class="{'disClick':!isSubmit}"
@click="SaveList(1)" :disabled="disButton" :value="$t('pub.saveBtn')" />
@click="SaveList(0)" :disabled="disButton" :value="$t('pub.saveBtn')" />
<span v-if="isShowBtn==1" style="color:red;margin-left:10px;">
{{$t('ground.xzdanbuneng')}}
</span>
......
<style>
.leftDayList{
display:inline-block;
}
.dayNum{
font-weight: bold;
font-size: 16px;
margin-left: -42px;
position: relative;
z-index: 2;
margin-bottom: 5px;
display: block;
}
.siteList{
display: inline-block;
position: relative;
border-left: 2px solid #ebebec;
position: relative;
padding: 0 0 20px;
margin-left: 10px;
}
</style>
<template>
<div>
<div class="leftDayList">
<span class="dayNum">第1天</span>
</div>
<div class="siteList">
<el-form-item label="前往地" label-width='100px'>
<el-input type="text" class="w300"></el-input
>&nbsp;仲裁委员会仲裁;
</el-form-item>
</div>
</div>
</template>
......@@ -271,6 +271,26 @@
.onedayAccount .el-form-item__label {
margin-top: 5px;
}
.ContractNum{
font-size:16px!important;
color:#5882bb;
margin-left:20px;
}
.Tc_ExchangeBtn{
padding:3px 10px;
background-color: #006dcc;
color:#fff;
float:right;
margin-top:10px;
border: none;
outline: none;
cursor: pointer;
}
.Tc_ExchangeBtn:hover{
color: #ffffff;
background-color: #0044cc;
*background-color: #003bb3;
}
</style>
<template>
<div class="TC-MainContent">
......@@ -288,6 +308,7 @@
<div class="contractTit">
<span>
全国版国内旅游一日游合同示范文本
<span class="ContractNum">合同编号:{{CtObj.T_ContractNum}}</span>
<span style="color:blue;font-size:14px;"></span>
</span>
<div class="pull-right">
......@@ -960,7 +981,19 @@
</div>
</td>
</tr>
<tr>
<tr v-if="CtObj.C_SolveType==1">
<td>
<el-form-item label="1.将争议提交" label-width='225px'>
<el-input
type="text"
class="w300"
v-model="CtObj.C_SolveRemark"
></el-input
>&nbsp;仲裁委员会仲裁;
</el-form-item>
</td>
</tr>
<tr v-if="CtObj.C_SolveType==2">
<td>
<div style="margin:0 0 20px 130px;">
2.依法向人民法院提起民事诉讼。
......@@ -996,6 +1029,7 @@
</span>
<h2>
<em>行程信息</em>
<input type="button" class="Tc_ExchangeBtn" @click="exchangeTrip()" :value="tripStr"/>
</h2>
</div>
<div style="padding:10px;background:#f9f9f9;color:red;">
......@@ -1010,10 +1044,12 @@
(8)行程安排的娱乐活动(明确娱乐活动的时间、地点和项目内容);
《行程单》用语须准确清晰,在表明服务标准用语中不应当出现“准×星级”、“豪华”、“仅供参考”、“以××为准”、“与××同级”等不确定用语。
</div>
<div>
123
<div v-if="CtObj.TripType==0">
<el-input type="textarea" rows="26" resize="none" v-model="CtObj.travelContent"></el-input>
</div>
<div v-if="CtObj.TripType==1">
<commonTripList></commonTripList>
</div>
<!-- <el-input type="textarea" rows="26" resize="none" v-model="CtObj.travelContent"></el-input> -->
</div>
<div class="block mtop15" id="anchor-4" ref="anchor4">
<div class="blockTitle">
......@@ -1109,7 +1145,7 @@
type="primary"
icon="el-icon-edit"
circle
@click="item.IsShow = 1"
@click="getItem(item)"
></el-button>
</el-tooltip>
<el-tooltip
......@@ -1310,7 +1346,7 @@
</div>
</template>
<script>
import moment from "moment";
import commonTripList from "./commonPage/commonTripList.vue";
export default {
data() {
return {
......@@ -1320,6 +1356,7 @@ export default {
CtObj: {
ID: 0,
CType: 3, //合同类型:(1-单项委托协议[平台版2018],2大陆境内旅游合同2014,3-全国版国内旅游一日游旅游合同示范文本[2015版])
T_ContractNum:'',
Tourists_Name: "",
Tourists_IDNum: "",
Tourists_Addres: "",
......@@ -1369,7 +1406,7 @@ export default {
C_IsAgreeRemove: 1, // 是否同意解除合同(1-不同意,0同意)
C_IsAgreeSpellGroup: 1, // 是否同意拼团(1-不同意,0同意)
C_SpellGroupName: "", // 拼团旅行社名称
C_SolveType: "", // 争议解决方式
C_SolveType: 2, // 争议解决方式
C_SolveRemark: "", // 争议解决方式备注
C_ContractTotal: "", // 合同总分数
C_ContractPer: 1, // 各持几份
......@@ -1405,6 +1442,7 @@ export default {
OtherConventionPrice: "", // 其他服务费用合计
OtherConvention: "", // 其他约定事项
TripJson: "",
TripType:0, //行程类型(0-简易行程,1-标准行程)
GuestJson: "", // 游客信息【json】
ShopJson: "", // 购物信息【json】
SelfFeeJson: "", // 自费信息【Json】
......@@ -1448,7 +1486,7 @@ export default {
{ required: true, message: "请输入返回地点", trigger: "change" }
]
},
tripStr:'切换到标准行程录入',
//菜单列表
menuArr: [
"合同基本信息",
......@@ -1471,9 +1509,12 @@ export default {
CGuestHealth: "健康",
IsShow: 1
}
]
],
};
},
components: {
commonTripList: commonTripList
},
methods: {
//跳转锚点
goAnchor(selector) {
......@@ -1574,6 +1615,12 @@ export default {
this.ckedIndex = 5;
}
},
getItem(item){
item.IsShow=1;
this.$forceUpdate();
},
GetData() {
this.apipost(
"travelcontract_get_GetTravelContractService",
......@@ -1581,8 +1628,10 @@ export default {
res => {
if (res.data.resultCode == 1) {
var tempObj = res.data.data;
console.log(tempObj,'tempobj');
this.CtObj.ID = tempObj.ID;
this.CtObj.CType = tempObj.CType;
this.CtObj.T_ContractNum = tempObj.T_ContractNum;
this.CtObj.Tourists_Name = tempObj.Tourists_Name;
this.CtObj.Tourists_IDNum = tempObj.Tourists_IDNum;
this.CtObj.Tourists_Addres = tempObj.Tourists_Addres;
......@@ -1717,7 +1766,7 @@ export default {
gItem.IsShow = 0;
});
}
console.log(this.CtObj.ContractGuestList,'this.CtObj.ContractGuestList');
if (
tempObj.ContractTripList &&
tempObj.ContractTripList != null &&
......@@ -1733,6 +1782,16 @@ export default {
},
err => {}
);
},
//点击切换行程
exchangeTrip(){
if(this.CtObj.TripType==0){
this.CtObj.TripType=1;
this.tripStr='切换到简易行程录入';
}else{
this.CtObj.TripType=0;
this.tripStr='切换到标准行程录入';
}
}
},
mounted() {
......
......@@ -107,6 +107,8 @@
<th>{{$t('admin.admin_isshow')}}</th>
<th>B2B是否显示</th>
<th>公司类型</th>
<th>是否服务费收费</th>
<th v-if="userInfoList.EmployeeId==1||userInfoList.EmployeeId==5||userInfoList.RB_Branch_id==49">服务费用</th>
<th width="200">{{$t('admin.admin_operate')}}</th>
</tr>
<tr v-for="(item,index) in DataList" v-loading='loading'>
......@@ -117,6 +119,8 @@
<td>{{item.is_show==0?'显示':'不显示'}}</td>
<td>{{item.B2BShow==0?'显示':'不显示'}}</td>
<td>{{item.IsParentCompany=='1'?'总公司':'分公司'}}</td>
<td>{{item.IsFreeFee==0?'付费':'免费'}}</td>
<td v-if="userInfoList.EmployeeId==1||userInfoList.EmployeeId==5||userInfoList.RB_Branch_id==49">{{item.ServiceFee}}</td>
<td>
<el-row>
<el-tooltip class="item" effect="dark" content="修改" placement="top-start">
......@@ -200,6 +204,17 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item class='w400' label='是否服务费收费'>
<el-select v-model='addMsg.IsFreeFee' :placeholder="$t('pub.pleaseSel')"
class='w280'>
<el-option label="付费" :value='0'></el-option>
<el-option label="免费" :value='1'></el-option>
</el-select>
</el-form-item>
<el-form-item class='w400' label='服务费用' v-if="addMsg.IsFreeFee==0">
<el-input type="text" v-model="addMsg.ServiceFee"></el-input>
</el-form-item>
<el-form-item label='公司确认章'>
<el-upload class="avatar-uploader" :http-request="UploadImage" :show-file-list="false"
:on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
......@@ -363,19 +378,23 @@
GatheringAddress: '',
TravelLogo: '',
CompanyTitle: '',
IsFreeFee:0,
ServiceFee:0
},
updateMsg: {
GroupId: '1'
},
userInfoList:{},
}
},
mounted() {
let userInfo = this.getLocalStorage(); //获取用户登录信息
var userInfo = this.getLocalStorage(); //获取用户登录信息
if (this.$route.query.id != undefined) { //如果用户从集团页面跳到 公司页面, 那查询公司使用的是 选中集团id. 如果直接进入公司页面, 默认使用该用户登录信息中的 集团id
this.addMsg.RB_Group_Id = this.msg.RB_Group_Id = this.$route.query.id;
} else {
this.addMsg.RB_Group_Id = this.msg.RB_Group_Id = userInfo.RB_Group_id
}
this.userInfoList=userInfo;
this.getProvince();
this.getList();
this.getGroup();
......@@ -509,6 +528,7 @@
this.addMsg.TravelLogo = '';
this.imageUrl = '';
this.imageUrlLogo = '';
this.addMsg.ServiceFee = 0;
},
//获取城市列表
getProvince() {
......
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