Commit 62100a1c authored by 沈良进's avatar 沈良进
parents 36a5af38 121761c5
......@@ -2130,6 +2130,9 @@ export default {
},
components: {},
mounted() {
let STime = this.getBeforeDate(31,this.getBeforeDate(0,new Date().Format("yyyy-MM-dd")))
let ETime = this.getBeforeDate(0,this.getBeforeDate(0,new Date().Format("yyyy-MM-dd")))
this.productionDate = [STime,ETime]
let allH, allW, cH, cW;
allH = document.documentElement.clientHeight;
allW = document.documentElement.clientWidth;
......
This diff is collapsed.
......@@ -3681,19 +3681,10 @@
}
return serviceCount;
},
goUrl() {
sessionStorage.setItem("SignInfo", JSON.stringify(this.dataList))
this.$router.push({
name: "SignName",
query: {
ContractId: this.msg.ContractId,
}
})
},
ChangeTab(num) {
this.ActiveTab = num;
},
//获取数据
getList() {
this.apipost(
......
......@@ -610,9 +610,10 @@
v-if="item.PriceOfferUrl" target="_blank">下载报价单</a>
</span>
</p>
<p class="travelnowrap" v-if="item.Config_OfferId&&item.Config_OfferId>0">
<span style="cursor:pointer;text-decoration:underline;color:blue;" @click="showDialog(item.ID, item.Config_OfferId)">报价详情</span>
<span style="cursor:pointer;text-decoration:underline;color:blue;"
@click="showDialog(item.ID, item.Config_OfferId)">报价详情</span>
</p>
<p class="travelnowrap flex" v-if="item.OfferShouPeiFee>0">
<span>手配费</span>
......@@ -683,10 +684,11 @@
</div>
</el-popover>
</p>
<p class="travelnowrap" v-if="item.LineID==14 && item.IsOpenHotel==1">
<p class="travelnowrap"
v-if="(item.LineID==14 || item.LineID==90|| item.LineID==168) && item.IsOpenHotel==1">
<span style="color:red;font-weight:bold;">※ {{$t('op.DJyiguanbi')}}.</span>
</p>
</div>
</div>
<div class="el-col" style="width:190px;">
......@@ -1061,7 +1063,8 @@
{{$t('op.HotelXJ')}}
</el-dropdown-item>
<!-- 结团 -->
<el-dropdown-item v-if="item.Status==1&&Number(item.OrderGuestNum)>0" @click.native="OutGroup(item.TCID,2,item.TravelEndAudit)">
<el-dropdown-item v-if="item.Status==1&&Number(item.OrderGuestNum)>0"
@click.native="OutGroup(item.TCID,2,item.TravelEndAudit)">
{{$t('Operation.Op_jietuan')}}
</el-dropdown-item>
<el-dropdown-item v-if="item.Status==2" @click.native="OutGroup(item.TCID,1,item.TravelEndAudit)">
......
......@@ -221,7 +221,7 @@
</el-checkbox-group>
</span>
</div>
<div class="comSearchDiv">
<span>{{$t('Airticket.Air_salesPlatform')}}</span>
<span>
......@@ -482,7 +482,26 @@
{{item.OutBranchName}}
</p>
<p class="travelnowrap" v-if="item.Config_OfferId">
<span style="cursor:pointer;text-decoration:underline;color:blue;" @click="showDialog(item.ID, item.Config_OfferId)">报价详情</span>
<span style="cursor:pointer;text-decoration:underline;color:blue;"
@click="showDialog(item.ID, item.Config_OfferId)">报价详情</span>
</p>
<p
v-if="(item.LineID==14 || item.LineID==90|| item.LineID==168) && item.HotelOrderListReports && item.HotelOrderListReports.length>0 ">
<el-popover width="980" trigger="click" popper-class="TC_HotelPop">
<commonHotelInfo :HotelObj="item.HotelOrderListReports" :showHotelObj="showHotelObj"
:TCID="item.TCID" :DMCNum="item.DMCNum" :TCNUM="item.TCNUM"
@SetShouPeiShu="SetShouPeiShu(item.TCID,item.ShouPeiStatus)"></commonHotelInfo>
<div slot="reference">
<span class="price"
style="cursor:pointer;text-decoration:underline;">{{$t('salesModule.HotelOrder')}}</span>
<span
style="color: #e95252">op{{item.OpSureHouse==2 ? '已确认' : '未确认'}}{{$t('op.Fenfang')}}</span>
</div>
</el-popover>
</p>
<p class="travelnowrap"
v-if="(item.LineID==14 || item.LineID==90|| item.LineID==168) && item.IsOpenHotel==1">
<span style="color:red;font-weight:bold;">※ {{$t('op.DJyiguanbi')}}.</span>
</p>
</div>
</div>
......@@ -723,7 +742,8 @@
@click.native="setUpPlat(item)">{{$t('Operation.Op_shangjia')}}</el-dropdown-item>
<el-dropdown-item v-if="item.TCState==3" @click.native="Setshelves(item.TCID)">
{{$t('Operation.Op_xiajia')}}</el-dropdown-item>
<el-dropdown-item v-if="item.Status==1&&Number(item.OrderGuestNum)>0" @click.native="OutGroup(item.TCID,2)">
<el-dropdown-item v-if="item.Status==1&&Number(item.OrderGuestNum)>0"
@click.native="OutGroup(item.TCID,2)">
{{$t('Operation.Op_jietuan')}}
</el-dropdown-item>
<el-dropdown-item @click.native="goB2B(item.ConfigId)">{{$t('Operation.Op_b2bView')}}
......@@ -820,10 +840,12 @@
</div>
</template>
<script>
import commonHotelInfo from "../../commonPage/commonHotelInfo.vue";
import priceDialog from '../TravelNewQuotation/priceDialog.vue';
export default {
components: {
priceDialog
priceDialog,
commonHotelInfo,
},
data() {
return {
......@@ -903,7 +925,7 @@
LineIdList: [],
LineteamId: 0,
TCNUM: "",
TCID:"",
TCID: "",
StartGroupDate: "",
EndGroupDate: "",
OutBranchId: -1,
......@@ -937,6 +959,17 @@
//团控状态
FreePlanType: -1
},
showHotelObj: {
showPrice: true, //是否显示价格
showPay: false, //是否显示支付方式
showZhan: true, //占房时间
showBtnList: false, //是否下载、确认按钮
ShowTaxType: false, //显示税入税别
ShowRebateRatio: false, //显示返佣比列
ShowSupplier: true, //是否显示供应商
showCaozuoTime: true, //操作时间
colspanLength: 5 //跨行
},
remarkMsg: {
TCID: 0,
OPRemark: "",
......@@ -1372,7 +1405,7 @@
query: {
id: id,
OutBranchId: OutBranchId,
IsHaveAuth:true,
IsHaveAuth: true,
blank: "y",
tab: "团队收支明细"
}
......@@ -1640,7 +1673,7 @@
this.queryMsg = this.$store.state.pageCondition;
}
}
if(!this.$route.query.tcmun){
if (!this.$route.query.tcmun) {
var myDate = new Date();
var nowDate =
myDate.getFullYear() +
......@@ -1650,7 +1683,7 @@
myDate.getDate();
this.queryMsg.StartGroupDate = nowDate;
}
if (
this.queryCommonData.IsParentCompany != 1 &&
userInfo.RB_Branch_id != 49
......
......@@ -32,6 +32,48 @@
margin-left: 0 !important;
}
/*灰色遮罩层*/
.ContractManage .fade {
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
position: fixed;
left: 0;
top: 0;
z-index: 99;
}
/*弹出层*/
.ContractManage .qrCodeDiv {
width: 236px;
height: 275px;
background-color: #fff;
text-align: center;
border: 1px solid #d1d1d1;
position: fixed;
left: 50%;
top: 50%;
margin-left: -100px;
margin-top: -118px;
z-index: 999;
border-radius: 5px;
}
.ContractManage .Ec_cha {
position: absolute;
cursor: pointer;
right: -20px;
top: -25px;
width: 30px;
height: 30px;
background-color: #fff;
text-align: center;
border-radius: 50%;
line-height: 30px;
}
.ContractManage .Ec_cha:hover {
color: red;
}
</style>
<template>
......@@ -189,15 +231,21 @@
<el-button type="warning" icon="iconfont icon-copy" circle @click="CopyContract(item)" style="padding:4px;">
</el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="下载" placement="top-start" v-if="item.Status==2||item.Status==4">
<el-tooltip class="item" effect="dark" content="下载" placement="top-start"
v-if="item.Status==2||item.Status==4">
<el-button type="success" icon="el-icon-download" circle @click="DownLoadContract(item)"></el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="提交审核" placement="top-start" v-if="item.Status==0||item.Status==3">
<el-tooltip class="item" effect="dark" content="提交审核" placement="top-start"
v-if="item.Status==0||item.Status==3">
<el-button type="info" icon="el-icon-upload2" circle @click="SubmitContract(item)"></el-button>
</el-tooltip>
<el-tooltip class="item" v-if="item.Status==2" effect="dark" content="复制链接发送给客户">
<!-- <el-tooltip class="item" v-if="item.Status==2" effect="dark" content="复制链接发送给客户">
<el-button type="info" icon="iconfont icon-copy-l" circle @click="CopyUrl(item)"
style="padding:4px;background-color:#9266f9;border-color:#9266f9;"></el-button>
</el-tooltip> -->
<el-tooltip class="item" v-if="item.Status==2" effect="dark" content="复制链接发送给客户">
<el-button type="info" icon="iconfont icon-copy-l" circle @click="GetQrCode(item)"
style="padding:4px;background-color:#9266f9;border-color:#9266f9;"></el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="取消" placement="top-start" v-if="item.Status==0">
<el-button type="danger" icon="el-icon-close" circle @click="DeleteContract(item)"></el-button>
......@@ -213,6 +261,15 @@
<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 class="fade" v-show="isShowFade"></div>
<div class="qrCodeDiv" v-show="isShowFade">
<div style="margin-top:15px;">请扫码签字 <br/>【{{clickObj.T_ContractNum}}】</div>
<div id="qrcode" style="margin:25px;" ref="qrcode">
<img class="WeiXinShare" :src="'data:image/png;base64,'+QRCodeStr" />
</div>
<i class="iconfont icon-cha Ec_cha" @click="isShowFade=false"></i>
</div>
</div>
</template>
......@@ -237,7 +294,7 @@
TravelAgency_DealMan: "", //经办人
C_TCNUM: "", //团号
C_ProductName: "", //线路名称
IsQueryAll:0
IsQueryAll: 0
},
pickerBeginDateBefore: {
disabledDate: time => {
......@@ -254,7 +311,10 @@
let startTime = new Date(this.msg.StartDate);
return startTime.getTime() >= time.getTime();
}
}
},
clickObj:{},//当前选择的合同
isShowFade: false, //是否显示二维码图片
QRCodeStr: "", //二维码图片
};
},
mounted() {
......@@ -303,6 +363,29 @@
);
});
},
//生成二维码
GetQrCode(item) {
let urlObj = this.domainManager();
let msg = {
ContractId: item.ID,
};
this.clickObj=item;
this.$http({
headers: {
'Content-Type': 'application/json'
},
method: 'post',
url: urlObj.DomainUrl + '/api/file/GetSingleContractQrCode?',
data: {
"msg": msg
}
}).then(res => {
if (res.data.resultCode === 1) {
this.isShowFade = true;
this.QRCodeStr = res.data.data;
}
}).catch(err => {})
},
//复制URL
CopyUrl(item) {
var oInput = document.createElement('input');
......@@ -322,7 +405,6 @@
this.goContract('SingleContract', 0, '单项委托合同');
}
},
//下载合同
DownLoadContract(item) {
let msg = {
......
......@@ -2115,6 +2115,7 @@
query: {
TCID: this.msg.TCID,
orderID: this.msg.orderID,
guestId:this.msg.guestId
}
})
},
......@@ -2123,7 +2124,7 @@
},
//获取数据
getList() {
// this.apiJavaPost("/api/contract/getContractInfo", this.msg, res => {
this.apipost("travelcontract_post_GetContractInfoService", this.msg, res => {
if (res.data.resultCode === 1) {
this.dataList = res.data.data;
......@@ -2219,7 +2220,7 @@
},
//提交数据
SaveMsg() {
// this.apiJavaPost("/api/contract/dosaveOrUpdate", this.dataList, res => {
this.apipost("travelcontract_post_UpdateCompanySignatureService", this.dataList, res => {
if (res.data.resultCode === 1) {
this.Success(res.data.message);
......@@ -2246,7 +2247,7 @@
this.getList();
this.getCanvas();
} catch (error) {
//alert("mounted:"+error.message)
}
}
};
......
......@@ -50,7 +50,7 @@
:priceList="PriceList" v-if="TeamType==0" :PostConfig="PostConfig" :modifyTcid="modifyTcid"
:TeamType="TeamType" :CurrentUserInfo="CurrentUserInfo" :IsDirect="PostConfig.IsDirect"></TravelPrice>
<!--小包团-->
<TravelPrice2 ref="TravelPrice" id="fiveAnchor" @headCallBack="getPrice" :PostDaysTrip="PostDaysTrip"
<TravelPrice2 @saveMsg="SaveData(1)" ref="TravelPrice" id="fiveAnchor" @headCallBack="getPrice" :PostDaysTrip="PostDaysTrip"
v-if="TeamType==1" :priceList="PriceList" :PostConfig="PostConfig" :modifyTcid="modifyTcid"
:TeamType="TeamType" :CurrentUserInfo="CurrentUserInfo" :IsDirect="PostConfig.IsDirect"></TravelPrice2>
<!--一日游-->
......
......@@ -301,7 +301,6 @@
.TphotelTable tr td {
background-color: #fff;
/* padding:8px 0; */
border: 1px solid #d1d1d1;
}
......@@ -454,8 +453,8 @@
<el-checkbox v-model="priceData.IsLessPrice" :true-label="CheckedVaule"
:false-label="UnCheckedLessPrice">{{$t('op.CanLessPrice')}}
</el-checkbox>
<el-checkbox v-model="priceData.IsNeedAirportShuttle" @change="IsNeedAirportShuttleChange" :true-label="CheckedVaule"
:false-label="UnCheckedLessPrice">是否需要送团
<el-checkbox v-model="priceData.IsNeedAirportShuttle" @change="IsNeedAirportShuttleChange"
:true-label="CheckedVaule" :false-label="UnCheckedLessPrice">是否需要送团
</el-checkbox>
<template v-if="CurrentUserInfo.RB_Group_id==2">
<input type="button" class="normalBtn" :value="$t('op.HotelUse')" @click="outerVisible=true"
......@@ -739,7 +738,8 @@
</el-input>
</el-form-item>
<el-form-item prop="SendPersion">
<el-input class="w260" :disabled="!priceData.IsNeedAirportShuttle" placeholder="请输入送团人" v-model="priceData.SendPersion">
<el-input class="w260" :disabled="!priceData.IsNeedAirportShuttle" placeholder="请输入送团人"
v-model="priceData.SendPersion">
<template slot="prepend">送团人</template>
</el-input>
</el-form-item>
......@@ -747,10 +747,10 @@
<el-form-item>
</el-form-item>
<el-form-item>
<div class="w260"></div>
<div class="w260"></div>
</el-form-item>
<el-form-item>
<div class="w260"></div>
<div class="w260"></div>
</el-form-item>
<el-form-item style="margin-top: -20px">
<el-input :placeholder="$t('pub.pleaseImport')" class="w260 ComSeat" v-model="priceData.GatherTag">
......@@ -1221,7 +1221,7 @@
},
methods: {
IsNeedAirportShuttleChange() {
if(!this.priceData.IsNeedAirportShuttle) {
if (!this.priceData.IsNeedAirportShuttle) {
this.priceData.SendPersion = ''
}
},
......
This diff is collapsed.
......@@ -315,9 +315,7 @@
<detailsButtom :type="2" :obj="commissionMsg" :Month="Month"/>
</div>
</div>
<p style="padding: 0 0 10px 0;text-align: left;">
</p>
<p style="padding: 0 0 10px 0;text-align: left;"></p>
<div class="ExpectedCommission-table">
<el-table border ref="multipleTable" :data="isExpansion?newRlistAll:newRlist">
<el-table-column width="80" prop="RuleName"
......@@ -462,9 +460,6 @@
data() {
return {
isExpansion: false,
detailsInfor:{
},
CommissionJJ:0,
CommissionTC:0,
GNOrderNum:0,
......
This diff is collapsed.
This diff is collapsed.
......@@ -119,9 +119,9 @@ export default {
let lxymallUrl = ''; //国内游api
let crmUrl = ""; //crm API
let locationName = window.location.hostname;
// domainUrl = "http://192.168.10.128";
domainUrl = "http://192.168.10.128";
// domainUrl = "http://192.168.10.9:8083" // 刘东电脑
domainUrl = "http://192.168.10.226";
// domainUrl = "http://192.168.10.226";
//domainUrl = "http://reborn.oytour.com";
let crmLocalFileStreamDownLoadUrl = "";
crmLocalFileStreamDownLoadUrl = locationName.indexOf('oytour') !== -1 ? "http://crm.oytour.com" : "http://testcrm.oytour.com";
......@@ -253,7 +253,7 @@ export default {
}
//HTTP提交数据
Vue.prototype.apipost = function (cmd, msg, successCall, faildCall, isOnline,isTerminate) {
Vue.prototype.apipost = function (cmd, msg, successCall, faildCall, isOnline, isTerminate) {
if (this.$route.name.indexOf('login') === -1 && this.$route.name.indexOf('clientConfirm') === -1 &&
this.$route.name.indexOf('confirmationOrderDownLoad') === -1 && this.$route.name.indexOf('PrintPage') === -1 &&
this.$route.name.indexOf('TravelContractConfirm') === -1 && this.$route.name.indexOf('ViittoContractConfirm') === -1 &&
......@@ -283,11 +283,13 @@ export default {
} else if (this.$route.path == "/clientConfirm") {
let TCID = this.$route.query.TCID;
let orderID = this.$route.query.orderID;
let guestId = this.$route.query.guestId;
this.$router.push({
name: "clientConfirm",
query: {
TCID: TCID,
orderID: orderID
orderID: orderID,
guestId: guestId,
}
})
} else if (this.$route.path == "/TravelContractConfirm") {
......@@ -338,27 +340,30 @@ export default {
let pending = []; //声明一个数组用于存储每个请求的取消函数和axios标识
let cancelToken = axios.CancelToken;
let removePending = (config) => {
for(let p in pending){
if(pending[p].u === config.url + '&' + config.method) { //当当前请求在数组中存在时执行函数体
pending[p].f(); //执行取消操作
pending.splice(p, 1);
for (let p in pending) {
if (pending[p].u === config.url + '&' + config.method) { //当当前请求在数组中存在时执行函数体
pending[p].f(); //执行取消操作
pending.splice(p, 1);
}
}
}
// 我的财务单防止多次请求导致数据混乱
if(isTerminate>0){
if (isTerminate > 0) {
this.$http.interceptors.request.use(config => {
removePending(config); //在一个axios发送前执行一下取消操作
config.cancelToken = new cancelToken((c)=>{
// 这里的axios标识我是用请求地址&请求方式拼接的字符串,当然你可以选择其他的一些方式
pending.push({ u: config.url + '&' + config.method, f: c });
removePending(config); //在一个axios发送前执行一下取消操作
config.cancelToken = new cancelToken((c) => {
// 这里的axios标识我是用请求地址&请求方式拼接的字符串,当然你可以选择其他的一些方式
pending.push({
u: config.url + '&' + config.method,
f: c
});
return Promise.resolve(config)
}, error => {
});
return Promise.resolve(config)
}, error => {
return Promise.reject(error)
})
})
}
this.$http.post(apiurl, postData, {
headers: {
......@@ -377,8 +382,8 @@ export default {
successCall(res);
}
}, faildCall)
},
// CRM接口
......@@ -445,11 +450,13 @@ export default {
} else if (this.$route.path == "/clientConfirm") {
let TCID = this.$route.query.TCID;
let orderID = this.$route.query.orderID;
let guestId = this.$route.query.guestId;
this.$router.push({
name: "clientConfirm",
query: {
TCID: TCID,
orderID: orderID
orderID: orderID,
guestId: guestId
}
})
} else if (this.$route.path == "/TravelContractConfirm") {
......@@ -1657,32 +1664,32 @@ export default {
window.open(newUrl.href, '_blank');
}
//验证文件格式
Vue.prototype.verificationFile = function (img,type) {
if(type==1){
if(img.indexOf('.DOCX')!=-1||img.indexOf('.docx')!=-1
||img.indexOf('.DOC')!=-1||img.indexOf('.doc')!=-1
||img.indexOf('.XLSX')!=-1||img.indexOf('.xlsx')!=-1
||img.indexOf('.XLS')!=-1||img.indexOf('.xls')!=-1
||img.indexOf('.PPT')!=-1||img.indexOf('.ppt')!=-1
||img.indexOf('.PPTX')!=-1||img.indexOf('.pptx')!=-1
||img.indexOf('.PDF')!=-1||img.indexOf('.pdf')!=-1){
Vue.prototype.verificationFile = function (img, type) {
if (type == 1) {
if (img.indexOf('.DOCX') != -1 || img.indexOf('.docx') != -1 ||
img.indexOf('.DOC') != -1 || img.indexOf('.doc') != -1 ||
img.indexOf('.XLSX') != -1 || img.indexOf('.xlsx') != -1 ||
img.indexOf('.XLS') != -1 || img.indexOf('.xls') != -1 ||
img.indexOf('.PPT') != -1 || img.indexOf('.ppt') != -1 ||
img.indexOf('.PPTX') != -1 || img.indexOf('.pptx') != -1 ||
img.indexOf('.PDF') != -1 || img.indexOf('.pdf') != -1) {
return true
}else{
} else {
return false
}
}
if(type==3){
if(img.indexOf('.png')!=-1||img.indexOf('.PNG')!=-1
||img.indexOf('.GIF')!=-1||img.indexOf('.gif')!=-1
||img.indexOf('.JPEG')!=-1||img.indexOf('.jpeg')!=-1
||img.indexOf('.JPG')!=-1||img.indexOf('.jpg')!=-1
||img.indexOf('.BMP')!=-1||img.indexOf('.bmp')!=-1){
if (type == 3) {
if (img.indexOf('.png') != -1 || img.indexOf('.PNG') != -1 ||
img.indexOf('.GIF') != -1 || img.indexOf('.gif') != -1 ||
img.indexOf('.JPEG') != -1 || img.indexOf('.jpeg') != -1 ||
img.indexOf('.JPG') != -1 || img.indexOf('.jpg') != -1 ||
img.indexOf('.BMP') != -1 || img.indexOf('.bmp') != -1) {
return true
}else{
} else {
return false
}
}
}
}
}
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