Commit 62100a1c authored by 沈良进's avatar 沈良进
parents 36a5af38 121761c5
...@@ -2130,6 +2130,9 @@ export default { ...@@ -2130,6 +2130,9 @@ export default {
}, },
components: {}, components: {},
mounted() { 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; let allH, allW, cH, cW;
allH = document.documentElement.clientHeight; allH = document.documentElement.clientHeight;
allW = document.documentElement.clientWidth; allW = document.documentElement.clientWidth;
......
<style scoped> <style scoped>
.SignName .CanvasDiv{ .SignName .CanvasDiv {
width: 100%; width: 100%;
height: calc(100% - 8rem); height: calc(100% - 8rem);
padding-top: 20px; padding-top: 20px;
} }
.SignName .CanvasDiv #canvas{
.SignName .CanvasDiv #canvas {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.SignName .dash{
.SignName .dash {
padding: 10px; padding: 10px;
box-sizing: border-box; box-sizing: border-box;
border: 1px dashed #ccc; border: 1px dashed #ccc;
width: 95%; width: 95%;
height: 98%; height: 98%;
margin:0 auto; margin: 0 auto;
overflow: hidden; overflow: hidden;
} }
.SignName .bg{
.SignName .bg {
display: inline-block; display: inline-block;
width: 25px; width: 25px;
height: 25px; height: 25px;
} }
.SignName .bg1{
.SignName .bg1 {
background-image: url('../assets/img/dzht/bg1.png'); background-image: url('../assets/img/dzht/bg1.png');
background-size: 132px; background-size: 132px;
background-position: -1px -2px; background-position: -1px -2px;
} }
.SignName .bg2{
.SignName .bg2 {
background-image: url('../assets/img/dzht/bg1.png'); background-image: url('../assets/img/dzht/bg1.png');
background-size: 132px; background-size: 132px;
background-position: 28px -2px; background-position: 28px -2px;
} }
.SignName .bottom .el-col>div{
.SignName .bottom .el-col>div {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.SignName .signTc{
.SignName .signTc {
position: fixed; position: fixed;
top: 0; top: 0;
left: 0; left: 0;
...@@ -48,7 +54,8 @@ ...@@ -48,7 +54,8 @@
z-index: 200; z-index: 200;
text-align: center; text-align: center;
} }
.SignName .signTc .closeTc{
.SignName .signTc .closeTc {
position: relative; position: relative;
display: inline-block; display: inline-block;
width: 60%; width: 60%;
...@@ -60,6 +67,7 @@ ...@@ -60,6 +67,7 @@
top: 50%; top: 50%;
font-size: 2rem; font-size: 2rem;
} }
</style> </style>
<template> <template>
...@@ -71,68 +79,61 @@ ...@@ -71,68 +79,61 @@
<div class="CanvasDiv"> <div class="CanvasDiv">
<div class="dash"> <div class="dash">
<div id="canvas" style="position:relative;top:0;"> <div id="canvas" style="position:relative;top:0;">
</div> </div>
</div> </div>
</div> </div>
<div class="bottom" style="text-align:center;height:80px;line-height:80px"> <div class="bottom" style="text-align:center;height:80px;line-height:80px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<div style="width:100%;" @click="handelClearEl()"> <div style="width:100%;" @click="handelClearEl()">
<!-- <span class="bg bg1"></span> -->
<span style="font-size:3rem;color:rgb(36, 173, 229)" class="iconfont icon-zhongzhi1"></span> <span style="font-size:3rem;color:rgb(36, 173, 229)" class="iconfont icon-zhongzhi1"></span>
<span style="font-size:2rem">重置签名</span> <span style="font-size:2rem">重置签名</span>
</div> </div>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<div style="width:100%;" @click="handelSaveEl()"> <div style="width:100%;" @click="handelSaveEl()">
<!-- <span class="bg bg2"></span> -->
<span style="font-size:3rem;color:rgb(36, 173, 229)" class="iconfont icon-wancheng1"></span> <span style="font-size:3rem;color:rgb(36, 173, 229)" class="iconfont icon-wancheng1"></span>
<span style="font-size:2rem">完成签名</span> <span style="font-size:2rem">完成签名</span>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<!-- <input type="button" @click="handelClearEl()" class="CV_Btn" value="清除" />
<input type="button" @click="handelSaveEl()" class="CV_Btn" value="保存" /> -->
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import tripBusOrderVue from './busManagement/tripBusOrder.vue'; import tripBusOrderVue from './busManagement/tripBusOrder.vue';
let canvas = document.createElement("canvas"); let canvas = document.createElement("canvas");
let cxt = canvas.getContext("2d"); let cxt = canvas.getContext("2d");
export default { export default {
data (){ data() {
return{ return {
tcStatus:false, tcStatus: false,
linewidth: 3, //线条粗细,选填 linewidth: 3, //线条粗细,选填
color: "black", //线条颜色,选填 color: "black", //线条颜色,选填
background: "#fff", //线条背景,选填 background: "#fff", //线条背景,选填
SignInfo:{}, SignInfo: {},
msg:{ msg: {
TCID:0, TCID: 0,
orderID:0 orderID: 0,
guestId: 0,
}, },
} }
}, },
created(){ created() {
this.SignInfo = JSON.parse(sessionStorage.getItem("SignInfo")); this.SignInfo = JSON.parse(sessionStorage.getItem("SignInfo"));
}, },
mounted(){ mounted() {
this.msg.TCID = this.$route.query.TCID; this.msg.TCID = this.$route.query.TCID;
this.msg.orderID = this.$route.query.orderID; this.msg.orderID = this.$route.query.orderID;
this.getCanvas(); this.getCanvas();
document.getElementsByTagName('body')[0].style="overscroll-behavior-y: contain;" document.getElementsByTagName('body')[0].style = "overscroll-behavior-y: contain;"
}, },
beforeDestroy() { beforeDestroy() {
document.getElementsByTagName('body')[0].style="" document.getElementsByTagName('body')[0].style = ""
}, },
methods:{ methods: {
getCanvas() { getCanvas() {
let el = document.getElementById("canvas"); let el = document.getElementById("canvas");
el.appendChild(canvas); el.appendChild(canvas);
...@@ -146,7 +147,7 @@ export default { ...@@ -146,7 +147,7 @@ export default {
//开始绘制 //开始绘制
canvas.addEventListener( canvas.addEventListener(
"touchstart", "touchstart",
function(e) { function (e) {
cxt.beginPath(); cxt.beginPath();
cxt.lineWidth = linewidth; //当前线条的宽度,以像素计 cxt.lineWidth = linewidth; //当前线条的宽度,以像素计
cxt.moveTo(e.changedTouches[0].pageX, e.changedTouches[0].pageY); cxt.moveTo(e.changedTouches[0].pageX, e.changedTouches[0].pageY);
...@@ -156,7 +157,7 @@ export default { ...@@ -156,7 +157,7 @@ export default {
//绘制中 //绘制中
canvas.addEventListener( canvas.addEventListener(
"touchmove", "touchmove",
function(e) { function (e) {
cxt.lineTo(e.changedTouches[0].pageX, e.changedTouches[0].pageY); cxt.lineTo(e.changedTouches[0].pageX, e.changedTouches[0].pageY);
cxt.stroke(); cxt.stroke();
}.bind(this), }.bind(this),
...@@ -165,7 +166,7 @@ export default { ...@@ -165,7 +166,7 @@ export default {
//结束绘制 //结束绘制
canvas.addEventListener( canvas.addEventListener(
"touchend", "touchend",
function() { function () {
cxt.closePath(); cxt.closePath();
}.bind(this), }.bind(this),
false false
...@@ -173,7 +174,7 @@ export default { ...@@ -173,7 +174,7 @@ export default {
//开始绘制 //开始绘制
canvas.addEventListener( canvas.addEventListener(
"mousedown", "mousedown",
function(e) { function (e) {
this.isMouseDown = tripBusOrderVue this.isMouseDown = tripBusOrderVue
cxt.beginPath(); cxt.beginPath();
cxt.lineWidth = linewidth; //当前线条的宽度,以像素计 cxt.lineWidth = linewidth; //当前线条的宽度,以像素计
...@@ -184,8 +185,8 @@ export default { ...@@ -184,8 +185,8 @@ export default {
//绘制中 //绘制中
canvas.addEventListener( canvas.addEventListener(
"mousemove", "mousemove",
function(e) { function (e) {
if(this.isMouseDown) { if (this.isMouseDown) {
cxt.lineTo(e.pageX - 20, e.pageY - 20); cxt.lineTo(e.pageX - 20, e.pageY - 20);
cxt.stroke(); cxt.stroke();
} }
...@@ -195,7 +196,7 @@ export default { ...@@ -195,7 +196,7 @@ export default {
//结束绘制 //结束绘制
canvas.addEventListener( canvas.addEventListener(
"mouseup", "mouseup",
function() { function () {
this.isMouseDown = false this.isMouseDown = false
cxt.closePath(); cxt.closePath();
}.bind(this), }.bind(this),
...@@ -211,21 +212,25 @@ export default { ...@@ -211,21 +212,25 @@ export default {
this.SaveMsg(); this.SaveMsg();
}, },
//提交数据 //提交数据
SaveMsg(){ SaveMsg() {
// this.apiJavaPost("/api/contract/dosaveOrUpdate",this.SignInfo,res => {
this.apipost("travelcontract_post_UpdateCompanySignatureService", this.SignInfo, res => { this.apipost("travelcontract_post_UpdateCompanySignatureService", this.SignInfo, res => {
if (res.data.resultCode === 1) { if (res.data.resultCode === 1) {
this.Success(res.data.message); this.Success(res.data.message);
this.$router.push({ name: "clientConfirm",query: {TCID: this.msg.TCID,orderID: this.msg.orderID,str:1}}) this.$router.push({
name: "clientConfirm",
query: {
TCID: this.msg.TCID,
orderID: this.msg.orderID,
str: 1,
guestId: this.msg.guestId,
}
})
} else { } else {
this.Error(res.data.message); this.Error(res.data.message);
} }
},null); }, null);
}, },
} }
} }
</script> </script>
...@@ -3681,19 +3681,10 @@ ...@@ -3681,19 +3681,10 @@
} }
return serviceCount; return serviceCount;
}, },
goUrl() {
sessionStorage.setItem("SignInfo", JSON.stringify(this.dataList))
this.$router.push({
name: "SignName",
query: {
ContractId: this.msg.ContractId,
}
})
},
ChangeTab(num) { ChangeTab(num) {
this.ActiveTab = num; this.ActiveTab = num;
}, },
//获取数据 //获取数据
getList() { getList() {
this.apipost( this.apipost(
......
...@@ -612,7 +612,8 @@ ...@@ -612,7 +612,8 @@
</p> </p>
<p class="travelnowrap" v-if="item.Config_OfferId&&item.Config_OfferId>0"> <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>
<p class="travelnowrap flex" v-if="item.OfferShouPeiFee>0"> <p class="travelnowrap flex" v-if="item.OfferShouPeiFee>0">
<span>手配费</span> <span>手配费</span>
...@@ -683,7 +684,8 @@ ...@@ -683,7 +684,8 @@
</div> </div>
</el-popover> </el-popover>
</p> </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> <span style="color:red;font-weight:bold;">※ {{$t('op.DJyiguanbi')}}.</span>
</p> </p>
...@@ -1061,7 +1063,8 @@ ...@@ -1061,7 +1063,8 @@
{{$t('op.HotelXJ')}} {{$t('op.HotelXJ')}}
</el-dropdown-item> </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')}} {{$t('Operation.Op_jietuan')}}
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item v-if="item.Status==2" @click.native="OutGroup(item.TCID,1,item.TravelEndAudit)"> <el-dropdown-item v-if="item.Status==2" @click.native="OutGroup(item.TCID,1,item.TravelEndAudit)">
......
...@@ -482,7 +482,26 @@ ...@@ -482,7 +482,26 @@
{{item.OutBranchName}} {{item.OutBranchName}}
</p> </p>
<p class="travelnowrap" v-if="item.Config_OfferId"> <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> </p>
</div> </div>
</div> </div>
...@@ -723,7 +742,8 @@ ...@@ -723,7 +742,8 @@
@click.native="setUpPlat(item)">{{$t('Operation.Op_shangjia')}}</el-dropdown-item> @click.native="setUpPlat(item)">{{$t('Operation.Op_shangjia')}}</el-dropdown-item>
<el-dropdown-item v-if="item.TCState==3" @click.native="Setshelves(item.TCID)"> <el-dropdown-item v-if="item.TCState==3" @click.native="Setshelves(item.TCID)">
{{$t('Operation.Op_xiajia')}}</el-dropdown-item> {{$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')}} {{$t('Operation.Op_jietuan')}}
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item @click.native="goB2B(item.ConfigId)">{{$t('Operation.Op_b2bView')}} <el-dropdown-item @click.native="goB2B(item.ConfigId)">{{$t('Operation.Op_b2bView')}}
...@@ -820,10 +840,12 @@ ...@@ -820,10 +840,12 @@
</div> </div>
</template> </template>
<script> <script>
import commonHotelInfo from "../../commonPage/commonHotelInfo.vue";
import priceDialog from '../TravelNewQuotation/priceDialog.vue'; import priceDialog from '../TravelNewQuotation/priceDialog.vue';
export default { export default {
components: { components: {
priceDialog priceDialog,
commonHotelInfo,
}, },
data() { data() {
return { return {
...@@ -903,7 +925,7 @@ ...@@ -903,7 +925,7 @@
LineIdList: [], LineIdList: [],
LineteamId: 0, LineteamId: 0,
TCNUM: "", TCNUM: "",
TCID:"", TCID: "",
StartGroupDate: "", StartGroupDate: "",
EndGroupDate: "", EndGroupDate: "",
OutBranchId: -1, OutBranchId: -1,
...@@ -937,6 +959,17 @@ ...@@ -937,6 +959,17 @@
//团控状态 //团控状态
FreePlanType: -1 FreePlanType: -1
}, },
showHotelObj: {
showPrice: true, //是否显示价格
showPay: false, //是否显示支付方式
showZhan: true, //占房时间
showBtnList: false, //是否下载、确认按钮
ShowTaxType: false, //显示税入税别
ShowRebateRatio: false, //显示返佣比列
ShowSupplier: true, //是否显示供应商
showCaozuoTime: true, //操作时间
colspanLength: 5 //跨行
},
remarkMsg: { remarkMsg: {
TCID: 0, TCID: 0,
OPRemark: "", OPRemark: "",
...@@ -1372,7 +1405,7 @@ ...@@ -1372,7 +1405,7 @@
query: { query: {
id: id, id: id,
OutBranchId: OutBranchId, OutBranchId: OutBranchId,
IsHaveAuth:true, IsHaveAuth: true,
blank: "y", blank: "y",
tab: "团队收支明细" tab: "团队收支明细"
} }
...@@ -1640,7 +1673,7 @@ ...@@ -1640,7 +1673,7 @@
this.queryMsg = this.$store.state.pageCondition; this.queryMsg = this.$store.state.pageCondition;
} }
} }
if(!this.$route.query.tcmun){ if (!this.$route.query.tcmun) {
var myDate = new Date(); var myDate = new Date();
var nowDate = var nowDate =
myDate.getFullYear() + myDate.getFullYear() +
......
...@@ -32,6 +32,48 @@ ...@@ -32,6 +32,48 @@
margin-left: 0 !important; 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> </style>
<template> <template>
...@@ -189,15 +231,21 @@ ...@@ -189,15 +231,21 @@
<el-button type="warning" icon="iconfont icon-copy" circle @click="CopyContract(item)" style="padding:4px;"> <el-button type="warning" icon="iconfont icon-copy" circle @click="CopyContract(item)" style="padding:4px;">
</el-button> </el-button>
</el-tooltip> </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-button type="success" icon="el-icon-download" circle @click="DownLoadContract(item)"></el-button>
</el-tooltip> </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-button type="info" icon="el-icon-upload2" circle @click="SubmitContract(item)"></el-button>
</el-tooltip> </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)" <el-button type="info" icon="iconfont icon-copy-l" circle @click="CopyUrl(item)"
style="padding:4px;background-color:#9266f9;border-color:#9266f9;"></el-button> 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>
<el-tooltip class="item" effect="dark" content="取消" placement="top-start" v-if="item.Status==0"> <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> <el-button type="danger" icon="el-icon-close" circle @click="DeleteContract(item)"></el-button>
...@@ -213,6 +261,15 @@ ...@@ -213,6 +261,15 @@
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage" <el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size="msg.pageSize" :total="total"> layout="total,prev, pager, next, jumper" :page-size="msg.pageSize" :total="total">
</el-pagination> </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> </div>
</template> </template>
...@@ -237,7 +294,7 @@ ...@@ -237,7 +294,7 @@
TravelAgency_DealMan: "", //经办人 TravelAgency_DealMan: "", //经办人
C_TCNUM: "", //团号 C_TCNUM: "", //团号
C_ProductName: "", //线路名称 C_ProductName: "", //线路名称
IsQueryAll:0 IsQueryAll: 0
}, },
pickerBeginDateBefore: { pickerBeginDateBefore: {
disabledDate: time => { disabledDate: time => {
...@@ -254,7 +311,10 @@ ...@@ -254,7 +311,10 @@
let startTime = new Date(this.msg.StartDate); let startTime = new Date(this.msg.StartDate);
return startTime.getTime() >= time.getTime(); return startTime.getTime() >= time.getTime();
} }
} },
clickObj:{},//当前选择的合同
isShowFade: false, //是否显示二维码图片
QRCodeStr: "", //二维码图片
}; };
}, },
mounted() { mounted() {
...@@ -303,6 +363,29 @@ ...@@ -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 //复制URL
CopyUrl(item) { CopyUrl(item) {
var oInput = document.createElement('input'); var oInput = document.createElement('input');
...@@ -322,7 +405,6 @@ ...@@ -322,7 +405,6 @@
this.goContract('SingleContract', 0, '单项委托合同'); this.goContract('SingleContract', 0, '单项委托合同');
} }
}, },
//下载合同 //下载合同
DownLoadContract(item) { DownLoadContract(item) {
let msg = { let msg = {
......
...@@ -2115,6 +2115,7 @@ ...@@ -2115,6 +2115,7 @@
query: { query: {
TCID: this.msg.TCID, TCID: this.msg.TCID,
orderID: this.msg.orderID, orderID: this.msg.orderID,
guestId:this.msg.guestId
} }
}) })
}, },
...@@ -2123,7 +2124,7 @@ ...@@ -2123,7 +2124,7 @@
}, },
//获取数据 //获取数据
getList() { getList() {
// this.apiJavaPost("/api/contract/getContractInfo", this.msg, res => {
this.apipost("travelcontract_post_GetContractInfoService", this.msg, res => { this.apipost("travelcontract_post_GetContractInfoService", this.msg, res => {
if (res.data.resultCode === 1) { if (res.data.resultCode === 1) {
this.dataList = res.data.data; this.dataList = res.data.data;
...@@ -2219,7 +2220,7 @@ ...@@ -2219,7 +2220,7 @@
}, },
//提交数据 //提交数据
SaveMsg() { SaveMsg() {
// this.apiJavaPost("/api/contract/dosaveOrUpdate", this.dataList, res => {
this.apipost("travelcontract_post_UpdateCompanySignatureService", this.dataList, res => { this.apipost("travelcontract_post_UpdateCompanySignatureService", this.dataList, res => {
if (res.data.resultCode === 1) { if (res.data.resultCode === 1) {
this.Success(res.data.message); this.Success(res.data.message);
...@@ -2246,7 +2247,7 @@ ...@@ -2246,7 +2247,7 @@
this.getList(); this.getList();
this.getCanvas(); this.getCanvas();
} catch (error) { } catch (error) {
//alert("mounted:"+error.message)
} }
} }
}; };
......
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
:priceList="PriceList" v-if="TeamType==0" :PostConfig="PostConfig" :modifyTcid="modifyTcid" :priceList="PriceList" v-if="TeamType==0" :PostConfig="PostConfig" :modifyTcid="modifyTcid"
:TeamType="TeamType" :CurrentUserInfo="CurrentUserInfo" :IsDirect="PostConfig.IsDirect"></TravelPrice> :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" v-if="TeamType==1" :priceList="PriceList" :PostConfig="PostConfig" :modifyTcid="modifyTcid"
:TeamType="TeamType" :CurrentUserInfo="CurrentUserInfo" :IsDirect="PostConfig.IsDirect"></TravelPrice2> :TeamType="TeamType" :CurrentUserInfo="CurrentUserInfo" :IsDirect="PostConfig.IsDirect"></TravelPrice2>
<!--一日游--> <!--一日游-->
......
...@@ -301,7 +301,6 @@ ...@@ -301,7 +301,6 @@
.TphotelTable tr td { .TphotelTable tr td {
background-color: #fff; background-color: #fff;
/* padding:8px 0; */
border: 1px solid #d1d1d1; border: 1px solid #d1d1d1;
} }
...@@ -454,8 +453,8 @@ ...@@ -454,8 +453,8 @@
<el-checkbox v-model="priceData.IsLessPrice" :true-label="CheckedVaule" <el-checkbox v-model="priceData.IsLessPrice" :true-label="CheckedVaule"
:false-label="UnCheckedLessPrice">{{$t('op.CanLessPrice')}} :false-label="UnCheckedLessPrice">{{$t('op.CanLessPrice')}}
</el-checkbox> </el-checkbox>
<el-checkbox v-model="priceData.IsNeedAirportShuttle" @change="IsNeedAirportShuttleChange" :true-label="CheckedVaule" <el-checkbox v-model="priceData.IsNeedAirportShuttle" @change="IsNeedAirportShuttleChange"
:false-label="UnCheckedLessPrice">是否需要送团 :true-label="CheckedVaule" :false-label="UnCheckedLessPrice">是否需要送团
</el-checkbox> </el-checkbox>
<template v-if="CurrentUserInfo.RB_Group_id==2"> <template v-if="CurrentUserInfo.RB_Group_id==2">
<input type="button" class="normalBtn" :value="$t('op.HotelUse')" @click="outerVisible=true" <input type="button" class="normalBtn" :value="$t('op.HotelUse')" @click="outerVisible=true"
...@@ -739,7 +738,8 @@ ...@@ -739,7 +738,8 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="SendPersion"> <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> <template slot="prepend">送团人</template>
</el-input> </el-input>
</el-form-item> </el-form-item>
...@@ -1221,7 +1221,7 @@ ...@@ -1221,7 +1221,7 @@
}, },
methods: { methods: {
IsNeedAirportShuttleChange() { IsNeedAirportShuttleChange() {
if(!this.priceData.IsNeedAirportShuttle) { if (!this.priceData.IsNeedAirportShuttle) {
this.priceData.SendPersion = '' this.priceData.SendPersion = ''
} }
}, },
......
<style lang="less" scoped>
@import "../../assets/css/main.less";
@import "../../assets/css/home/Saleshomepage_1920.css";
.saleChartCont {
width: 100%;
height: 95%;
box-sizing: border-box;
}
.personal {
width: 100%;
height: 100%;
}
.l_title {
width: 100%;
height: 30px
}
.Sale_Share {
color: #83ACFF;
cursor: pointer;
font-size: 12px;
margin-left: 10px;
}
.ShareDisClick {
color: gray;
}
.Sale_UnlessWords {
display: inline-block;
margin: 25px 0 0 80px;
color: #E95252;
}
</style>
<template>
<div class="l_top" style="position: relative;">
<img v-if="data.icon !=null && data.icon !='' " :src="data.icon" alt="" class="tx_img"
:onerror='defaultHeadImg'>
<img v-else src="../../assets/img/default_head_img.jpg" alt="" alt="" class="tx_img">
<div class="p_name">
<span>{{data.emName}}</span>
<span>{{data.postName}}</span>
<div @click="goAnticipate(5)" style="cursor: pointer;">
<div v-if="SumPreferPrice" style="padding: 2px 0 0 0;"><a style="color: #666666;font-size: 14px;font-weight: bold;">{{SumPreferPrice}}</a></div>
<div style="font-size: 14px;color: #333333;" v-if="rankingNum">
<a style="color: #FF8C00;margin-left: 3px;margin-right: 3px;
font-size: 18px;font-weight: bold;">{{rankingNum}}</a
>
</div>
</div>
</div>
<div style="display: flex;justify-content: space-between;">
<!-- <img style="cursor: pointer;" src="../../assets/img/jinbin@2x.png" alt="" class="img" @click="goAnticipate(1)"> -->
<div style="cursor: pointer;cursor: pointer;position: relative;" class="royalty" @click="goAnticipate(1)">
<div class="tc">
<p>
<span></span>
<span>{{data.totalCommission}}</span>
</p>
<p style="color: #BDBDBD;font-size: 13px;padding: 0 0 5px 0;">{{data.periodsName}}<el-tag
v-if="data.peopelBonus" size="mini" type="danger"
effect="dark" style="color: #ffff;position: absolute;left: 70px;bottom: 23px;font-size: 11px;">奖+{{data.peopelBonus}}</el-tag></p>
</div>
<div stye="font-size: 16px;color: #666666;display: block;display: inline-block;">
<span>出境提成</span>
<template v-if="data.comissionGeneralId>0">
<span v-if="data.share==1" class="Sale_Share" style="color:#333;cursor:default;">已确认</span>
<span v-if="data.share==0" @click="tichengDialog=true" class="Sale_Share"
:class="{'ShareDisClick':!isSubmit}">分享并确认</span>
</template>
</div>
</div>
<div style="border-left: 1px solid #eeeeee;width: 1px;"> </div>
<!-- <img style="cursor: pointer;" src="../../assets/img/jinbin@2x.png" alt="" class="img" @click="goAnticipate(2)"> -->
<div style="cursor: pointer;margin-left: 0;" class="royalty" @click="goAnticipate(2)">
<div class="tc">
<p>
<span></span>
<span>{{data.gnSaleCommission}}</span>
</p>
<p style="color: #BDBDBD;font-size: 13px;padding: 0 0 5px 0;">{{data.gnPeriodsName}}期</p>
</div>
<div stye="font-size: 16px;color: #666666;display: block;display: inline-block;">
<span>国内提成</span>
</div>
</div>
<div style="border-left: 1px solid #eeeeee;width: 1px;"> </div>
<!-- <img style="cursor: pointer;" src="../../assets/img/jinbin@2x.png" alt="" class="img" @click="goAnticipate(3)"> -->
<div style="cursor: pointer;margin-left: 0;" class="royalty" @click="goAnticipate(3)">
<div class="tc">
<p>
<span></span>
<span>{{data.dxSaleCommission}}</span>
</p>
<p style="color: #BDBDBD;font-size: 13px;padding: 0 0 5px 0;">{{data.dxPeriodsName}}期</p>
</div>
<div stye="font-size: 16px;color: #666666;display: block;display: inline-block;">
<span>历史单项提成</span>
</div>
</div>
<el-tooltip class="item" effect="dark" content="预期提成" placement="top" v-if="pagesTitle==1">
<img src="../../assets/img/xiaosouYQ.png" @click="goAnticipate(4)"
style="width: 20px;height: auto; position: absolute;right: -0;top: -13px;cursor: pointer;color: #33B3FF;"></img>
</el-tooltip>
</div>
<!-- 分享业绩 -->
<el-dialog custom-class='w500' title="分享提成" :visible.sync="tichengDialog" center :before-close="resetCommission">
<el-form :model="shareMsg" :rules="rules" ref="shareMsg" label-width="80px">
<el-form-item label="个人宣言" style="margin-bottom:0;" prop="ShareContent">
<el-input type="textarea" rows="6" resize="none" maxlength="100" v-model="shareMsg.ShareContent"
placeholder=""></el-input>
</el-form-item>
</el-form>
<span class="Sale_UnlessWords">
不能少于10个字
</span>
<div slot="footer" class="dialog-footer">
<button class="hollowFixedBtn" @click="tichengDialog=false">取消</button>
<button class="normalBtn" @click="shareCommission">确定</button>
</div>
</el-dialog>
</div>
</template>
<script>
import leftNav from '../public/leftNav.vue'
import moment from 'moment'
export default {
props:['pagesTitle'],
data() {
return {
SumPreferPrice: 0,
rankingNum: 0,
type: 1,
defaultHeadImg: 'this.src="' + require("../../assets/img/default_head_img.jpg") + '"',
style: {
width: 0,
background: "#FFFFFF"
},
data: [],
groupdata: [],
screenWidth: 0,
zoom: 1,
tichengDialog: false,
shareMsg: {
ShareContent: '',
PeriodsId: 0,
totalCommission: 0
},
rules: {
ShareContent: [{
required: true,
message: '请填写个人宣言',
trigger: 'blur'
}]
},
//验证重复提交
isSubmit: true,
CurrentUserInfo: {},
EditBtn: false,
PMMsg: {
RB_Branch_Id: -1,
RB_Department_Id: 0,
EnterID: 0,
tStartDates: [],
qStartDates: [],
GroupBy: "EnterID",
QueryType: 0,
},
}
},
components: {
leftNav
},
watch: {
pagesTitle:{
handler(val, oldVal){
this.pagesTitle = val
},
immediate:true
}
},
methods: {
settStartDates() {
let nowdays = new Date()
let Year = new Date().getFullYear()
let MonthTime = new Date().getMonth() + 1
let MonthDayNum = new Date(Year, 12, 0).getDate();
let date = Year+'-12-'+(MonthDayNum>10?MonthDayNum:'0'+MonthDayNum)
let start = Year+'-01-01'
this.PMMsg.tStartDates = [start, date]
},
initData() {
let userInfo = this.getLocalStorage();
let param = {
RB_Branch_Id:
this.PMMsg.RB_Branch_Id == -1 ? null : this.PMMsg.RB_Branch_Id,
RB_Department_Id:
this.PMMsg.RB_Department_Id == 0 ? null : this.PMMsg.RB_Department_Id,
EnterID: this.PMMsg.EnterID == 0 ? null : this.PMMsg.EnterID,//Number(userInfo.EmployeeId)
QStartDate:
this.PMMsg.tStartDates && this.PMMsg.tStartDates.length == 2
? this.PMMsg.tStartDates[0]
: null,
QEndDate:
this.PMMsg.tStartDates && this.PMMsg.tStartDates.length == 2
? this.PMMsg.tStartDates[1]
: null,
CStartDate:
this.PMMsg.qStartDates && this.PMMsg.qStartDates.length == 2
? this.PMMsg.qStartDates[0]
: null,
CEndDate:
this.PMMsg.qStartDates && this.PMMsg.qStartDates.length == 2
? this.PMMsg.qStartDates[1]
: null,
GroupBy: this.PMMsg.GroupBy,
QueryType: this.PMMsg.QueryType,
};
if (!param.QStartDate) {
param.QStartDate = "2019-01-01";
}
let tableData = []
this.apipost("sellorder_get_sellvolumerankNew", param, (r) => {
r.data.data.forEach((x) => {
x.incomeVal = parseFloat(x.income);
x.avgPrice = parseFloat(x.avgPrice);
});
tableData = r.data.data;
tableData.forEach((item,index)=>{
if(item.EnterID==Number(userInfo.EmployeeId)){
this.rankingNum = index+1
this.SumPreferPrice = item.SumPreferPrice
}
})
});
},
// 销售预期提成
goAnticipate(type){
let userInfo = this.getLocalStorage();
let name
if(type==1){//出境
name = 'TradeTicketUserDetails'
}else if(type==2){//国内
name = 'domesticCommissionUser'
}else if(type==3){//历史单项
name = 'ServiceCommissionUser'
}else if(type==4){//预期提成
name = 'saleExpectedCommission'
}else if(type==5){//排名
name = 'salesVolumeRank'
this.$router.push({
name: name,
query: {
tStartDates: this.PMMsg.tStartDates,
blank: 'y'
}
});
}
if(type!=5){
this.$router.push({
name: name,
query: {
UserId: Number(userInfo.EmployeeId),
isSale: 1,
blank: 'y'
}
});
}
},
//锅炉除开标点符号的字数
getFilteredNum(val) {
//var pattern=new RegExp("[`~%!@#$^=''?~!@#¥……&——‘”“'?*()(),,。.、<>《》\\[\\]【】\\“\\”{}=+-|\/:;;:]");
var pattern = new RegExp("[`~%!@#$^=''?~!@#¥……&——‘”“'?*()(),,。.、<>《》:;; +-=\\s]");
//[]内输入你要过滤的字符,这里基本包含全部的标点符号,\\是转义字符
var rs = "";
for (var i = 0; i < val.length; i++) {
rs += val.substr(i, 1).replace(pattern, '');
}
return rs
},
//确定分享业绩
shareCommission() {
if (this.shareMsg.ShareContent == '') {
this.Error('请填写个人宣言');
return;
}
let FilterNum = this.getFilteredNum(this.shareMsg.ShareContent);
if (FilterNum.length < 10) {
this.Error('字数太少了,再多说点吧!');
return;
} else {
this.shareMsg.PeriodsId = this.data.comissionGeneralId;
this.shareMsg.totalCommission = this.data.totalCommission;
if (this.isSubmit) {
this.isSubmit = false;
this.apipost('customerIndex_post_SetSellComissionGeneralSure', this.shareMsg, res => {
this.isSubmit = true;
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.iWorkbench();
this.resetCommission();
this.MsgBus.$emit('reSetMSG');
} else {
this.Error(res.data.message);
}
}, err => {})
}
}
},
//关闭重置输入框
resetCommission() {
this.tichengDialog = false;
this.shareMsg.ShareContent = ''
},
iWorkbench() {
this.apipost('customerIndex_post_GetMySelfSellInfo', {}, res => {
if (res.data.resultCode == 1) {
this.data = res.data.data;
} else {
this.$message.error(res.data.message)
}
}, err => {})
},
},
mounted() {
this.settStartDates()
this.iWorkbench() //销售个人工作台接口
// 排名
this.initData()
},
}
</script>
...@@ -315,9 +315,7 @@ ...@@ -315,9 +315,7 @@
<detailsButtom :type="2" :obj="commissionMsg" :Month="Month"/> <detailsButtom :type="2" :obj="commissionMsg" :Month="Month"/>
</div> </div>
</div> </div>
<p style="padding: 0 0 10px 0;text-align: left;"> <p style="padding: 0 0 10px 0;text-align: left;"></p>
</p>
<div class="ExpectedCommission-table"> <div class="ExpectedCommission-table">
<el-table border ref="multipleTable" :data="isExpansion?newRlistAll:newRlist"> <el-table border ref="multipleTable" :data="isExpansion?newRlistAll:newRlist">
<el-table-column width="80" prop="RuleName" <el-table-column width="80" prop="RuleName"
...@@ -462,9 +460,6 @@ ...@@ -462,9 +460,6 @@
data() { data() {
return { return {
isExpansion: false, isExpansion: false,
detailsInfor:{
},
CommissionJJ:0, CommissionJJ:0,
CommissionTC:0, CommissionTC:0,
GNOrderNum:0, GNOrderNum:0,
......
...@@ -53,78 +53,7 @@ ...@@ -53,78 +53,7 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<div class="el-col-div ownScrollbarStyle PersonalData_l"> <div class="el-col-div ownScrollbarStyle PersonalData_l">
<div class="l_top" style="position: relative;"> <rightHead :pagesTitle="1"></rightHead>
<img v-if="data.icon !=null && data.icon !='' " :src="data.icon" alt="" class="tx_img"
:onerror='defaultHeadImg'>
<img v-else src="../../assets/img/default_head_img.jpg" alt="" alt="" class="tx_img">
<div class="p_name">
<span>{{data.emName}}</span>
<span>{{data.postName}}</span>
<div @click="goAnticipate(5)" style="cursor: pointer;">
<div v-if="SumPreferPrice" style="padding: 2px 0 0 0;"><a style="color: #666666;font-size: 14px;font-weight: bold;">{{SumPreferPrice}}</a></div>
<div style="font-size: 14px;color: #333333;" v-if="rankingNum">
<a style="color: #FF8C00;margin-left: 3px;margin-right: 3px;
font-size: 18px;font-weight: bold;">{{rankingNum}}</a
>
</div>
</div>
</div>
<div style="display: flex;justify-content: space-between;">
<!-- <img style="cursor: pointer;" src="../../assets/img/jinbin@2x.png" alt="" class="img" @click="goAnticipate(1)"> -->
<div style="cursor: pointer;cursor: pointer;position: relative;" class="royalty" @click="goAnticipate(1)">
<div class="tc">
<p>
<span></span>
<span>{{data.totalCommission}}</span>
</p>
<p style="color: #BDBDBD;font-size: 13px;padding: 0 0 5px 0;">{{data.periodsName}}<el-tag
v-if="data.peopelBonus" size="mini" type="danger"
effect="dark" style="color: #ffff;position: absolute;left: 70px;bottom: 23px;font-size: 11px;">奖+{{data.peopelBonus}}</el-tag></p>
</div>
<div stye="font-size: 16px;color: #666666;display: block;display: inline-block;">
<span>出境提成</span>
<template v-if="data.comissionGeneralId>0">
<span v-if="data.share==1" class="Sale_Share" style="color:#333;cursor:default;">已确认</span>
<span v-if="data.share==0" @click="tichengDialog=true" class="Sale_Share"
:class="{'ShareDisClick':!isSubmit}">分享并确认</span>
</template>
</div>
</div>
<div style="border-left: 1px solid #eeeeee;width: 1px;"> </div>
<!-- <img style="cursor: pointer;" src="../../assets/img/jinbin@2x.png" alt="" class="img" @click="goAnticipate(2)"> -->
<div style="cursor: pointer;margin-left: 0;" class="royalty" @click="goAnticipate(2)">
<div class="tc">
<p>
<span></span>
<span>{{data.gnSaleCommission}}</span>
</p>
<p style="color: #BDBDBD;font-size: 13px;padding: 0 0 5px 0;">{{data.gnPeriodsName}}期</p>
</div>
<div stye="font-size: 16px;color: #666666;display: block;display: inline-block;">
<span>国内提成</span>
</div>
</div>
<div style="border-left: 1px solid #eeeeee;width: 1px;"> </div>
<!-- <img style="cursor: pointer;" src="../../assets/img/jinbin@2x.png" alt="" class="img" @click="goAnticipate(3)"> -->
<div style="cursor: pointer;margin-left: 0;" class="royalty" @click="goAnticipate(3)">
<div class="tc">
<p>
<span></span>
<span>{{data.dxSaleCommission}}</span>
</p>
<p style="color: #BDBDBD;font-size: 13px;padding: 0 0 5px 0;">{{data.dxPeriodsName}}期</p>
</div>
<div stye="font-size: 16px;color: #666666;display: block;display: inline-block;">
<span>历史单项提成</span>
</div>
</div>
<el-tooltip class="item" effect="dark" content="预期提成" placement="top">
<img src="../../assets/img/xiaosouYQ.png" @click="goAnticipate(4)"
style="width: 20px;height: auto; position: absolute;right: -0;top: -13px;cursor: pointer;color: #33B3FF;"></img>
</el-tooltip>
</div>
</div>
<div class="order"> <div class="order">
<div class="l_title"> <div class="l_title">
...@@ -579,32 +508,15 @@ ...@@ -579,32 +508,15 @@
</div> </div>
</div> </div>
</div> </div>
<!-- 分享业绩 -->
<el-dialog custom-class='w500' title="分享提成" :visible.sync="tichengDialog" center :before-close="resetCommission">
<el-form :model="shareMsg" :rules="rules" ref="shareMsg" label-width="80px">
<el-form-item label="个人宣言" style="margin-bottom:0;" prop="ShareContent">
<el-input type="textarea" rows="6" resize="none" maxlength="100" v-model="shareMsg.ShareContent"
placeholder=""></el-input>
</el-form-item>
</el-form>
<span class="Sale_UnlessWords">
不能少于10个字
</span>
<div slot="footer" class="dialog-footer">
<button class="hollowFixedBtn" @click="tichengDialog=false">取消</button>
<button class="normalBtn" @click="shareCommission">确定</button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import leftNav from '../public/leftNav.vue' import leftNav from '../public/leftNav.vue'
import rightHead from '../public/rightHead.vue'
import moment from 'moment' import moment from 'moment'
export default { export default {
data() { data() {
return { return {
SumPreferPrice: 0,
rankingNum: 0,
type: 1, type: 1,
defaultHeadImg: 'this.src="' + require("../../assets/img/default_head_img.jpg") + '"', defaultHeadImg: 'this.src="' + require("../../assets/img/default_head_img.jpg") + '"',
style: { style: {
...@@ -618,12 +530,6 @@ ...@@ -618,12 +530,6 @@
NotDealCount: 0, // NotDealCount: 0, //
zoom: 1, zoom: 1,
OrderList: [], OrderList: [],
tichengDialog: false,
shareMsg: {
ShareContent: '',
PeriodsId: 0,
totalCommission: 0
},
rules: { rules: {
ShareContent: [{ ShareContent: [{
required: true, required: true,
...@@ -647,7 +553,8 @@ ...@@ -647,7 +553,8 @@
} }
}, },
components: { components: {
leftNav leftNav,
rightHead
}, },
watch: { watch: {
...@@ -658,95 +565,6 @@ ...@@ -658,95 +565,6 @@
} }
}, },
methods: { methods: {
settStartDates() {
let nowdays = new Date()
let Year = new Date().getFullYear()
let MonthTime = new Date().getMonth() + 1
let MonthDayNum = new Date(Year, 12, 0).getDate();
let date = Year+'-12-'+(MonthDayNum>10?MonthDayNum:'0'+MonthDayNum)
let start = Year+'-01-01'
this.PMMsg.tStartDates = [start, date]
},
initData() {
let userInfo = this.getLocalStorage();
let param = {
RB_Branch_Id:
this.PMMsg.RB_Branch_Id == -1 ? null : this.PMMsg.RB_Branch_Id,
RB_Department_Id:
this.PMMsg.RB_Department_Id == 0 ? null : this.PMMsg.RB_Department_Id,
EnterID: this.PMMsg.EnterID == 0 ? null : this.PMMsg.EnterID,//Number(userInfo.EmployeeId)
QStartDate:
this.PMMsg.tStartDates && this.PMMsg.tStartDates.length == 2
? this.PMMsg.tStartDates[0]
: null,
QEndDate:
this.PMMsg.tStartDates && this.PMMsg.tStartDates.length == 2
? this.PMMsg.tStartDates[1]
: null,
CStartDate:
this.PMMsg.qStartDates && this.PMMsg.qStartDates.length == 2
? this.PMMsg.qStartDates[0]
: null,
CEndDate:
this.PMMsg.qStartDates && this.PMMsg.qStartDates.length == 2
? this.PMMsg.qStartDates[1]
: null,
GroupBy: this.PMMsg.GroupBy,
QueryType: this.PMMsg.QueryType,
};
if (!param.QStartDate) {
param.QStartDate = "2019-01-01";
}
let tableData = []
this.apipost("sellorder_get_sellvolumerankNew", param, (r) => {
r.data.data.forEach((x) => {
x.incomeVal = parseFloat(x.income);
x.avgPrice = parseFloat(x.avgPrice);
});
tableData = r.data.data;
tableData.forEach((item,index)=>{
if(item.EnterID==Number(userInfo.EmployeeId)){
this.rankingNum = index+1
this.SumPreferPrice = item.SumPreferPrice
}
})
});
},
// 销售预期提成
goAnticipate(type){
let userInfo = this.getLocalStorage();
let name
if(type==1){
name = 'TradeTicketUserDetails'
}else if(type==2){
name = 'domesticCommissionUser'
}else if(type==3){
name = 'ServiceCommissionUser'
}else if(type==4){
name = 'saleExpectedCommission'
}else if(type==5){
name = 'salesVolumeRank'
this.$router.push({
name: name,
query: {
tStartDates: this.PMMsg.tStartDates,
blank: 'y'
}
});
}
if(type!=5){
this.$router.push({
name: name,
query: {
UserId: Number(userInfo.EmployeeId),
isSale: 1,
blank: 'y'
}
});
}
},
iWorkbench() { iWorkbench() {
this.apipost('customerIndex_post_GetMySelfSellInfo', {}, res => { this.apipost('customerIndex_post_GetMySelfSellInfo', {}, res => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
...@@ -971,51 +789,6 @@ ...@@ -971,51 +789,6 @@
path: path path: path
}) })
}, },
//锅炉除开标点符号的字数
getFilteredNum(val) {
//var pattern=new RegExp("[`~%!@#$^=''?~!@#¥……&——‘”“'?*()(),,。.、<>《》\\[\\]【】\\“\\”{}=+-|\/:;;:]");
var pattern = new RegExp("[`~%!@#$^=''?~!@#¥……&——‘”“'?*()(),,。.、<>《》:;; +-=\\s]");
//[]内输入你要过滤的字符,这里基本包含全部的标点符号,\\是转义字符
var rs = "";
for (var i = 0; i < val.length; i++) {
rs += val.substr(i, 1).replace(pattern, '');
}
return rs
},
//确定分享业绩
shareCommission() {
if (this.shareMsg.ShareContent == '') {
this.Error('请填写个人宣言');
return;
}
let FilterNum = this.getFilteredNum(this.shareMsg.ShareContent);
if (FilterNum.length < 10) {
this.Error('字数太少了,再多说点吧!');
return;
} else {
this.shareMsg.PeriodsId = this.data.comissionGeneralId;
this.shareMsg.totalCommission = this.data.totalCommission;
if (this.isSubmit) {
this.isSubmit = false;
this.apipost('customerIndex_post_SetSellComissionGeneralSure', this.shareMsg, res => {
this.isSubmit = true;
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.iWorkbench();
this.resetCommission();
this.MsgBus.$emit('reSetMSG');
} else {
this.Error(res.data.message);
}
}, err => {})
}
}
},
//关闭重置输入框
resetCommission() {
this.tichengDialog = false;
this.shareMsg.ShareContent = ''
},
GetAuth() { GetAuth() {
var actionCode = this.$AuthCode.V_PersonalCenter; var actionCode = this.$AuthCode.V_PersonalCenter;
this.CheckUserAuth(actionCode, res => { this.CheckUserAuth(actionCode, res => {
...@@ -1026,7 +799,6 @@ ...@@ -1026,7 +799,6 @@
}, },
}, },
mounted() { mounted() {
this.settStartDates()
this.GetAuth(); this.GetAuth();
this.CurrentUserInfo = this.getLocalStorage(); this.CurrentUserInfo = this.getLocalStorage();
var w = document.documentElement.clientWidth || document.body.clientWidth; var w = document.documentElement.clientWidth || document.body.clientWidth;
...@@ -1042,8 +814,6 @@ ...@@ -1042,8 +814,6 @@
this.iWorkbench() //销售个人工作台接口 this.iWorkbench() //销售个人工作台接口
this.grouplist() //销售首页小组工作台 this.grouplist() //销售首页小组工作台
this.Financial_post_GetNotDealCount(); //待处理财务单据的个数 this.Financial_post_GetNotDealCount(); //待处理财务单据的个数
// 排名
this.initData()
}, },
} }
......
<style lang="less" scoped> <style lang="less" scoped>
@import "../../assets/css/main.less"; @import "../../assets/css/main.less";
@import "../../assets/css/cssReset.css"; /* @import "../../assets/css/cssReset.css"; */
@import "../../assets/css/home/Saleshomepage_1920.css";
.saleChartCont {
width: 100%;
height: 95%;
box-sizing: border-box;
}
.personal {
width: 100%;
height: 100%;
}
.l_title {
width: 100%;
height: 30px
}
.Sale_Share {
color: #83ACFF;
cursor: pointer;
font-size: 12px;
margin-left: 10px;
}
.ShareDisClick {
color: gray;
}
.Sale_UnlessWords {
display: inline-block;
margin: 25px 0 0 80px;
color: #E95252;
}
.title-Month{
text-align: right;
}
.headerTitle{
display: flex;
}
.headerTitle p{
font-weight: bold;
flex-wrap: nowrap;
}
.headerTitle span{
font-weight: 100;
color: red;
margin-right: 20px;
}
</style> </style>
<template> <template>
<div> <div>
<leftNav></leftNav> <leftNav></leftNav>
<div class="sale_cont" v-if="CurrentUserInfo.RB_Group_id==2 || EditBtn">
<!-- <div class="Sale_menu">
<ul>
<template v-for="(item ,index) in MonthList">
<li :class="{active:Month==item.Id}" @click="Month=item.Id">{{item.Name}}</li>
</template>
</ul>
</div> -->
<div class="saleChartCont" :style="{zoom:zoom}">
<div class="personal">
<div class="PersonalData" style="height: auto;margin-top: 0;background: none;">
<el-row :gutter="20">
<el-col :span="12">
<div class="el-col-div ownScrollbarStyle PersonalData_l" style="height: auto;background: #fff;">
<rightHead :pagesTitle="2"></rightHead>
</div>
</el-col>
<el-col :span="12" style="background: #fff;">
<div class="el-col-div ownScrollbarStyle PersonalData_l" style="height: 158px;">
<div class="title-Month">
<template v-for="(item ,index) in MonthList">
<input type="button" :key="index"
:class="{'normalBtn':Month==item.Id,'hollowFixedBtn':Month!=item.Id}"
:value="item.Name"
@click="clickActive(item)"></input>
</template>
</div>
<div style="display: flex;align-items: center; justify-content: space-between;
height: 40px;padding: 0 20px;">
<div class="headerTitle">
<p>总订单数:<span></span></p>
<p>总人头数:<span></span></p>
<p>总预期奖金:<span>{{CommissionJJ}}</span></p>
<p>总预期提成:<span>{{CommissionTC}}</span></p>
</div>
</div>
</div>
</el-col>
</el-row>
</div>
</div>
</div>
</div>
</div> </div>
</template> </template>
<script> <script>
import leftNav from '../public/leftNav.vue' import leftNav from '../public/leftNav.vue'
import rightHead from '../public/rightHead.vue'
export default { export default {
data (){ data (){
return{ return{
EditBtn: false,
CurrentUserInfo: {},
zoom: 1,
CommissionJJ: 0,
CommissionTC: 0,
msg:{
Month: ''
},
Month: 1,
MonthList:[
{Name:'上月',Id:'0'},
{Name:'当月',Id:'1'},
],
CommissionInfor:{},
YearTime:'',
LastMonthTime: '',
MonthTime: '',
commissionMsg:{
pageIndex: 1,
pageSize: 6,
OrderId: "", //订单id
GuestId: 0, //客人id
EnterId: 0, //业务员id
OrderState: '1', //订单状态
Q_IsCollect: "2", //收款状态
StartTime: "",//报名开始日期
EndTime: "",//报名结束日期
FinishSTime: "",//完结开始时间
FinishETime: "",//完结结束时间
DepartSTime: "",//出发开始
DepartETime: "",//出发结束
TCNUM: "",//团号
ProductName: "",//商品名称
CustomerName: "",//客户名称
LureEmpId: 0,//引流人员
LineId: 0,//线路
TravelType: 0,//跟团类型 1跟团 2当地游
OrderType: "0",//订单类型
IsSelectCRM: 0,//1来源crm
IsMyOrder: 1,//1我的订单
},
isAnnualBonus: false,// 年终奖权限
} }
}, },
components:{ components:{
leftNav leftNav,
rightHead
}, },
mounted(){ methods:{
clickActive(item){
this.Month = item.Id
if(item.Id==1){
this.msg.Month = this.Year+'-'+(this.MonthTime>10?this.MonthTime:'0'+this.MonthTime)
}else{
this.msg.Month = this.Year+'-'+(this.LastMonthTime>10?this.LastMonthTime:'0'+this.LastMonthTime)
}
// this.getList()
},
// 获取规则列表数据
getList() {
this.apipost("sellcommission_GetTYSaleCommissionRuleList", {}, res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.dataRuleList = res.data.data[0];
this.JapaneseLine.CommissionRateList = this.dataRuleList.AwardRuleList
this.JapaneseProfit.CommissionRateList = this.dataRuleList.ProfitRuleList
this.EuropeLine.CommissionRateList = this.dataRuleList.EuropeAwardRuleList
this.EuropeProfit.CommissionRateList = this.dataRuleList.EuropeProfitRuleList
this.OtherLine.CommissionRateList = this.dataRuleList.OtherAwardRuleList
this.OtherProfit.CommissionRateList = this.dataRuleList.OtherProfitRuleList
this.AnnualBonus.CommissionRateList = this.dataRuleList.BonusRuleList
this.getData()
}else{
this.Error(res.data.message)
}
});
},
// 获取预期数据
getData(){
// 日本欧洲提成
this.apipost('sellcommission_GetTYSaleExpectCommission', this.msg,
res => {
if (res.data.resultCode == 1) {
let data = res.data.data
this.CommissionInfor = data;
// 日本及其他人头奖励
this.JapaneseLine.AvgLureNum = this.CommissionInfor.PeopleNum?this.CommissionInfor.PeopleNum:0
this.JapaneseLine.Commission = this.CommissionInfor.PeopleMoney?this.CommissionInfor.PeopleMoney:0
// 日本及其他提成比例
this.JapaneseProfit.AvgLureNum = this.CommissionInfor.JapanCommission?this.CommissionInfor.JapanCommission:0
this.JapaneseProfit.AvfOrderNum = this.CommissionInfor.JapanOrderNum?this.CommissionInfor.JapanOrderNum:0
this.JapaneseProfit.CommissionRate = this.CommissionInfor.JapanRate?this.CommissionInfor.JapanRate:0
this.JapaneseProfit.Commission = this.CommissionInfor.JapanCommission?this.CommissionInfor.JapanCommission:0
this.JapaneseProfit.CommissionProfit = this.CommissionInfor.JapanProfit?this.CommissionInfor.JapanProfit:0
// 欧洲人头奖励
this.EuropeLine.AvgLureNum = this.CommissionInfor.EuropePNum?this.CommissionInfor.EuropePNum:0
this.EuropeLine.Commission = this.CommissionInfor.EuropeMoney?this.CommissionInfor.EuropeMoney:0
// 欧洲及其他提成比例
this.EuropeProfit.AvgLureNum = this.CommissionInfor.EuropeCommission?this.CommissionInfor.EuropeCommission:0
this.EuropeProfit.AvfOrderNum = this.CommissionInfor.EuropeOrderNum?this.CommissionInfor.EuropeOrderNum:0
this.EuropeProfit.CommissionRate = this.CommissionInfor.EuropeRate?this.CommissionInfor.EuropeRate:0
this.EuropeProfit.Commission = this.CommissionInfor.EuropeCommission?this.CommissionInfor.EuropeCommission:0
this.EuropeProfit.CommissionProfit = this.CommissionInfor.EuropeProfit?this.CommissionInfor.EuropeProfit:0
// 其他人头奖励
this.OtherLine.AvgLureNum = this.CommissionInfor.OtherPNum?this.CommissionInfor.OtherPNum:0
this.OtherLine.Commission = this.CommissionInfor.OtherMoney?this.CommissionInfor.OtherMoney:0
// 其他提成比例
this.OtherProfit.AvgLureNum = this.CommissionInfor.OtherCommission?this.CommissionInfor.OtherCommission:0
this.OtherProfit.AvfOrderNum = this.CommissionInfor.OtherOrderNum?this.CommissionInfor.OtherOrderNum:0
this.OtherProfit.CommissionRate = this.CommissionInfor.OtherRate?this.CommissionInfor.OtherRate:0
this.OtherProfit.Commission = this.CommissionInfor.OtherCommission?this.CommissionInfor.OtherCommission:0
this.OtherProfit.CommissionProfit = this.CommissionInfor.OtherProfit?this.CommissionInfor.OtherProfit:0
// 年终奖
this.AnnualBonus.AvfOrderNum = this.CommissionInfor.BonusNum?this.CommissionInfor.BonusNum:0
this.AnnualBonus.Commission = this.CommissionInfor.BonusPeriods?this.CommissionInfor.BonusPeriods:0
this.GetGNSaleExpectCommission()
}else {
this.Error(res.data.message);
}
this.loading = false
}, },
methods:{ err => {this.loading = false}
goUrl (path,id) { );
this.$router.push({ path: "Details",query:{path,id} })
},
GetGNSaleExpectCommission(){
// 国内提成
this.apipost('sellcommission_Post_GetGNSaleExpectCommission', this.msg,
res => {
if (res.data.resultCode == 1) {
this.DomesticLine = res.data.data
this.GNOrderNum = 0
this.GNEopleNum = 0
this.GNCommission = 0
this.DomesticLine.Rlist.forEach(item=>{
this.GNOrderNum+=Number(item.OrderNum)
this.GNEopleNum+=Number(item.PeopleNum)
this.GNCommission+=Number(item.Commission)
})
this.newRlistAll = [
this.DomesticLine.Rlist[2],
this.DomesticLine.Rlist[3],
this.DomesticLine.Rlist[4],
this.DomesticLine.Rlist[0],
this.DomesticLine.Rlist[1]]
this.newRlist = [this.DomesticLine.Rlist[2]]
let arr1 =[this.CommissionInfor.PeopleMoney,this.CommissionInfor.EuropeMoney]
let arr2 =[this.CommissionInfor.SalesCommission,this.CommissionInfor.JapanCommission,this.CommissionInfor.EuropeCommission,this.GNCommission]
this.CommissionJJ = this.CalculatePrice(arr1,0)
this.CommissionTC = this.CalculatePrice(arr2,2)
}
})
}, },
GetOrderPageList(){
this.commissionMsg.IsMyOrder = '1'
this.apipost('CarSingle_post_GetGuestOrderStatisticsPageList', this.commissionMsg,
res => {
if (res.data.resultCode == 1) {
let data = res.data.data.pageData
if(data.length>5){
for(let i=0;i<5;i++){
this.OrderList.push(data[i])
} }
}else{
this.OrderList = data
}
}else {
this.Error(res.data.message);
}
this.loading = false
},
err => {this.loading = false}
)
},
//计算总成本
CalculatePrice(arr1,num) {
var CoastPrice = this.$commonUtils.CaluJsonArraySum2(
arr1,
num
);
return CoastPrice>0?CoastPrice:0
},
GetAuth() {
var actionCode = this.$AuthCode.V_PersonalCenter;
this.CheckUserAuth(actionCode, res => {
if (res.data.resultCode == 1 && res.data.data == 1) {
this.EditBtn = true;
}
});
},
},
mounted(){
this.GetAuth();
this.CurrentUserInfo = this.getLocalStorage();
var w = document.documentElement.clientWidth || document.body.clientWidth;
this.screenWidth = w;
let Width = w - 350
this.zoom = ((Width / (1920 - 350)) * 100).toFixed(0) + '%';
window.onresize = () => {
return (() => {
window.screenWidth = document.body.clientWidth
this.screenWidth = window.screenWidth
})()
}
let userInfo = this.getLocalStorage();
// 年终奖权限 销售, 引流, 市场, 票务 , 票務,总经理,总经理
if(userInfo.PostName.indexOf('销售')||userInfo.PostName.indexOf('引流')||
userInfo.PostName.indexOf('市场,')||userInfo.PostName.indexOf('票务')||
userInfo.PostName.indexOf('票務')||userInfo.PostName.indexOf('总经理')||
userInfo.PostName.indexOf('总经理')){
this.isAnnualBonus = true
}
let nowdays = new Date()
this.Year = new Date().getFullYear()
this.LastMonthTime = new Date().getMonth()
this.MonthTime = new Date().getMonth() + 1
this.msg.Month = this.Year+'-'+(this.MonthTime>10?this.MonthTime:'0'+this.MonthTime)
this.MonthList[0].Name = this.MonthList[0].Name+'('+this.LastMonthTime+'月)'
this.MonthList[1].Name = this.MonthList[1].Name+'('+this.MonthTime+'月)'
//this.Year+'-'+(this.MonthTime>10?this.MonthTime:'0'+this.MonthTime)+'-01'//出发开始
this.commissionMsg.DepartSTime = this.getBeforeDate(93,this.getBeforeDate(0,new Date().Format("yyyy-MM-dd")))
var MonthDayNum = new Date(this.Year, this.MonthTime, 0).getDate(); //计算当月的天数
this.commissionMsg.DepartETime = this.Year+'-'+(this.MonthTime>10?this.MonthTime:'0'+this.MonthTime)+'-'+(MonthDayNum>10?MonthDayNum:'0'+MonthDayNum)//出发结束
},
} }
......
...@@ -119,9 +119,9 @@ export default { ...@@ -119,9 +119,9 @@ export default {
let lxymallUrl = ''; //国内游api let lxymallUrl = ''; //国内游api
let crmUrl = ""; //crm API let crmUrl = ""; //crm API
let locationName = window.location.hostname; 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.9:8083" // 刘东电脑
domainUrl = "http://192.168.10.226"; // domainUrl = "http://192.168.10.226";
//domainUrl = "http://reborn.oytour.com"; //domainUrl = "http://reborn.oytour.com";
let crmLocalFileStreamDownLoadUrl = ""; let crmLocalFileStreamDownLoadUrl = "";
crmLocalFileStreamDownLoadUrl = locationName.indexOf('oytour') !== -1 ? "http://crm.oytour.com" : "http://testcrm.oytour.com"; crmLocalFileStreamDownLoadUrl = locationName.indexOf('oytour') !== -1 ? "http://crm.oytour.com" : "http://testcrm.oytour.com";
...@@ -253,7 +253,7 @@ export default { ...@@ -253,7 +253,7 @@ export default {
} }
//HTTP提交数据 //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 && 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('confirmationOrderDownLoad') === -1 && this.$route.name.indexOf('PrintPage') === -1 &&
this.$route.name.indexOf('TravelContractConfirm') === -1 && this.$route.name.indexOf('ViittoContractConfirm') === -1 && this.$route.name.indexOf('TravelContractConfirm') === -1 && this.$route.name.indexOf('ViittoContractConfirm') === -1 &&
...@@ -283,11 +283,13 @@ export default { ...@@ -283,11 +283,13 @@ export default {
} else if (this.$route.path == "/clientConfirm") { } else if (this.$route.path == "/clientConfirm") {
let TCID = this.$route.query.TCID; let TCID = this.$route.query.TCID;
let orderID = this.$route.query.orderID; let orderID = this.$route.query.orderID;
let guestId = this.$route.query.guestId;
this.$router.push({ this.$router.push({
name: "clientConfirm", name: "clientConfirm",
query: { query: {
TCID: TCID, TCID: TCID,
orderID: orderID orderID: orderID,
guestId: guestId,
} }
}) })
} else if (this.$route.path == "/TravelContractConfirm") { } else if (this.$route.path == "/TravelContractConfirm") {
...@@ -338,20 +340,23 @@ export default { ...@@ -338,20 +340,23 @@ export default {
let pending = []; //声明一个数组用于存储每个请求的取消函数和axios标识 let pending = []; //声明一个数组用于存储每个请求的取消函数和axios标识
let cancelToken = axios.CancelToken; let cancelToken = axios.CancelToken;
let removePending = (config) => { let removePending = (config) => {
for(let p in pending){ for (let p in pending) {
if(pending[p].u === config.url + '&' + config.method) { //当当前请求在数组中存在时执行函数体 if (pending[p].u === config.url + '&' + config.method) { //当当前请求在数组中存在时执行函数体
pending[p].f(); //执行取消操作 pending[p].f(); //执行取消操作
pending.splice(p, 1); pending.splice(p, 1);
} }
} }
} }
// 我的财务单防止多次请求导致数据混乱 // 我的财务单防止多次请求导致数据混乱
if(isTerminate>0){ if (isTerminate > 0) {
this.$http.interceptors.request.use(config => { this.$http.interceptors.request.use(config => {
removePending(config); //在一个axios发送前执行一下取消操作 removePending(config); //在一个axios发送前执行一下取消操作
config.cancelToken = new cancelToken((c)=>{ config.cancelToken = new cancelToken((c) => {
// 这里的axios标识我是用请求地址&请求方式拼接的字符串,当然你可以选择其他的一些方式 // 这里的axios标识我是用请求地址&请求方式拼接的字符串,当然你可以选择其他的一些方式
pending.push({ u: config.url + '&' + config.method, f: c }); pending.push({
u: config.url + '&' + config.method,
f: c
});
}); });
return Promise.resolve(config) return Promise.resolve(config)
...@@ -445,11 +450,13 @@ export default { ...@@ -445,11 +450,13 @@ export default {
} else if (this.$route.path == "/clientConfirm") { } else if (this.$route.path == "/clientConfirm") {
let TCID = this.$route.query.TCID; let TCID = this.$route.query.TCID;
let orderID = this.$route.query.orderID; let orderID = this.$route.query.orderID;
let guestId = this.$route.query.guestId;
this.$router.push({ this.$router.push({
name: "clientConfirm", name: "clientConfirm",
query: { query: {
TCID: TCID, TCID: TCID,
orderID: orderID orderID: orderID,
guestId: guestId
} }
}) })
} else if (this.$route.path == "/TravelContractConfirm") { } else if (this.$route.path == "/TravelContractConfirm") {
...@@ -1657,28 +1664,28 @@ export default { ...@@ -1657,28 +1664,28 @@ export default {
window.open(newUrl.href, '_blank'); window.open(newUrl.href, '_blank');
} }
//验证文件格式 //验证文件格式
Vue.prototype.verificationFile = function (img,type) { Vue.prototype.verificationFile = function (img, type) {
if(type==1){ if (type == 1) {
if(img.indexOf('.DOCX')!=-1||img.indexOf('.docx')!=-1 if (img.indexOf('.DOCX') != -1 || img.indexOf('.docx') != -1 ||
||img.indexOf('.DOC')!=-1||img.indexOf('.doc')!=-1 img.indexOf('.DOC') != -1 || img.indexOf('.doc') != -1 ||
||img.indexOf('.XLSX')!=-1||img.indexOf('.xlsx')!=-1 img.indexOf('.XLSX') != -1 || img.indexOf('.xlsx') != -1 ||
||img.indexOf('.XLS')!=-1||img.indexOf('.xls')!=-1 img.indexOf('.XLS') != -1 || img.indexOf('.xls') != -1 ||
||img.indexOf('.PPT')!=-1||img.indexOf('.ppt')!=-1 img.indexOf('.PPT') != -1 || img.indexOf('.ppt') != -1 ||
||img.indexOf('.PPTX')!=-1||img.indexOf('.pptx')!=-1 img.indexOf('.PPTX') != -1 || img.indexOf('.pptx') != -1 ||
||img.indexOf('.PDF')!=-1||img.indexOf('.pdf')!=-1){ img.indexOf('.PDF') != -1 || img.indexOf('.pdf') != -1) {
return true return true
}else{ } else {
return false return false
} }
} }
if(type==3){ if (type == 3) {
if(img.indexOf('.png')!=-1||img.indexOf('.PNG')!=-1 if (img.indexOf('.png') != -1 || img.indexOf('.PNG') != -1 ||
||img.indexOf('.GIF')!=-1||img.indexOf('.gif')!=-1 img.indexOf('.GIF') != -1 || img.indexOf('.gif') != -1 ||
||img.indexOf('.JPEG')!=-1||img.indexOf('.jpeg')!=-1 img.indexOf('.JPEG') != -1 || img.indexOf('.jpeg') != -1 ||
||img.indexOf('.JPG')!=-1||img.indexOf('.jpg')!=-1 img.indexOf('.JPG') != -1 || img.indexOf('.jpg') != -1 ||
||img.indexOf('.BMP')!=-1||img.indexOf('.bmp')!=-1){ img.indexOf('.BMP') != -1 || img.indexOf('.bmp') != -1) {
return true return true
}else{ } else {
return false 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