Commit 30cd28f1 authored by 华国豪's avatar 华国豪 🙄
parents 68366f07 cf239fad
......@@ -9,6 +9,10 @@
<img v-for="src in images" :src="src" :key="src">
</viewer>
<chosen-open-mode v-if="haveOpenMode" :settingSys="settingSys"></chosen-open-mode>
<!-- -->
<!-- <div class="downzip">
下载包
</div> -->
</div>
</template>
......@@ -119,4 +123,8 @@ export default {
.BMap_cpyCtrl {display: none;}
.anchorBL {display: none;}
.viewer{display: none !important;}
/* .downzip{
width: 100%;
height:
} */
</style>
diff a/src/assets/common/lang/zh.js b/src/assets/common/lang/zh.js (rejected hunks)
@@ -839,237 +839,321 @@
addgangweo: '添加岗位',
xgjiedian: '修改节点',
jcxinxi: '基础信息',
lcmingcheng: '流程名称',
lcleixing: '流程类型',
scfujian: '上传附件',
buqiyong: '不启用',
qiyong: '启用',
syzhanghu: '适用账户',
yinhang: '银行',
xianjin: '现金',
pingtai: '平台',
zjinchi: '资金池',
mbmiaoshu: '模板描述',
lcshezhi: '流程设置',
mrspliucheng: '默认审批流程',
mrspiren: '默认审批人',
huiqian: '会签',
huoqian: '或签',
tianjia: '添加',
mrcsongren: '默认抄送人',
xuanze: '选择',
yixuan: '已选',
yixuangangwei: '已选岗位',
xzcsongren: '选择抄送人',
kjiedian: '空节点',
cnchuangkou: '出纳窗口',
kjchuangkou: '会计窗口',
xiankong: '线控',
jzchuna: '记账出纳',
skchuna: '收款出纳',
xzrenyuan: '选择人员',
addguize: '新增规则',
editguize: '修改规则',
gzmingcheng: '规则名称',
tcguize: '提成规则',
tcjilu: '提成记录',
tczhouqi: '提成周期',
dyjiesuan: '按单结算',
ayjiesuan: '按月结算',
dwala: '必选完成周期内所有的提成要求',
awala: '不强制完成周期内所有的提成要求',
meiyousunyi: '该账户当前还没有损益记录',
qhpaiban: '切换排版',
jigou: '机构',
qsrneirong: '请输入内容',
zhanghuleixing: '账户类型',
zhfenlei: '账户分类',
yueacc: '余额',
bwbyue: '本位币余额',
caozuoriqi: '操作日期',
benqihuilv: '本期汇率',
danqgianhuilv: '当前汇率',
zjinyue: '资金余额',
zjjiner: '资金金额',
benwei: '本位',
sfbenweibi: '是否本位币',
chushihuilv: '初始汇率',
szbweibi: '设置本位币',
xzengbizhong: '新增币种',
b_hbmingcheng: '货币名称:',
b_hbdaima: '货币代码:',
b_cshuilv: '初始汇率:',
b_qchuilv: '期初汇率:',
ybljjine: '原币累计金额:',
bwbljjine: '本位累计金额:',
yuanbiyue: '原币余额',
benbiyue: '本币余额',
chakanmingxi: '查看明细',
fylxmingcheng: '费用类型名称',
cjleixing: '类型层级',
yiji: '一级',
erji: '二级',
sanji: '三级',
shangjileixing: '上级类型',
tanzhang: '摊账',
feitanzhang: '非摊账',
ysbaobiao: '营收报表',
bujinru: '不进入',
jinru: '进入',
yijimingcheng: '一级名称',
erjimingcheng: '二级名称',
sanjimingcheng: '三级名称',
shouzhi: '收支',
feiyongleixing: '费用类型',
Name: '名称:',
cjleixing: '类型层级:',
yes: '是',
fou: '否',
glzhangu: '关联账户',
xnleixing: '虚拟类型',
tjzhanghu: '添加账户',
sfduigong: '是否对公',
sybumen: '适用部门:',
shanghuhao: '商户号',
qqdizhi: '请求地址',
zfxinxi: '支付信息',
shsiyao: '商户私钥',
ptgongyao: '平台公钥',
banbenhao: '版本号',
+ shoukuandan: '收款单',
+ fukuandan: '付款单',
+ sfytxiangguan: '是否与团相关',
+ spliucheng: '审批流程',
+ liuchengtu: '流程图',
+ gongzhang: '公账',
+ sizhang: '私账',
+ rmbxianjin: '人民币现金',
+ wbxianjin: '外币现金',
+ ptxnzhanghu: '平台虚拟账户',
+ djxnzhanghu: '地接虚拟账户',
+ szxiangdi: '收支相抵',
+ khleixing: '客户类型',
+ fkduixiang: '付款对象',
+ khmingcheng: '客户名称',
+ zslingdui: '正式领队/导游',
+ lslingdui: '临时领队/导游',
+ daishengcheng: '待生成',
+ fkzhanghu: '付款账户',
+ qxzfkzh: '请选择付款账户',
+ ldmingcheng: '领队名称',
+ day: '日',
+ fyshuoming: '费用说明',
+ danjia: '单价',
+ jine: '金额',
+ yuanbi: '原币',
+ sfjine: '实付金额',
+ daxie: '(大写)',
+ xiaoxie: '(小写)',
+ yjfkuanriqi: '预计付款日期',
+ qxzrqshijian: '选择日期时间',
+ fjshuoming: '附加说明',
+ fygsbumen: '费用归属部门',
+ gnpiaowu: '国内票务',
+ jpshouzhi: '机票收支',
+ xiayibu: '下一步',
+ tijiao: '提交',
+ zancun: '暂存',
+ jxzhidan: '继续制单',
+ nothanks: '不了,谢谢',
+ kuaijilian: '(会计联)',
+ yewulian: '(业务联)',
+ dayinshijian: '打印时间',
+ hnrdanwei: '汇款人(单位)',
+ huikuanren: '汇款人',
+ fkzhlshuihao: '付款账户(流水号)',
+ jpbianhao: '机票编号',
+ skjine: '收款金额',
+ fkjine: '付款金额',
+ ling: '零',
+ qian: '前',
+ cnskuandan: '出纳收款单',
+ cnfkuandan: '出纳付款单',
+ cnfshulian: '附属出纳联',
+ fkfangshi: '付款方式',
+ danhao: '单号',
+ zhidanren: '制单人',
+ wbzjine: '外币总金额',
+ bwbzjine: '本位币总金额',
+ hkshijian: '汇款时间',
+ jiaoyiriqi: '交易日期',
+ fkuanzhanghu: '收款账户',
+ skuanzhanghao: '收款账号',
+ shouxufei: '手续费',
+ khyuanbi: '(原币)',
+ khbweibi: '(本位币)',
+ jylshuihao: '交易流水号',
}
export const tips = {
tips: '提示',
shifoudui: '是否对',
zhshanchu: '账户进行销户操作?销户后不可恢复!',
cancleDelete: '已取消删除',
saveYes: '保存成功!',
sxhuilv: '以下汇率系统将每隔30分钟实时更新一次',
yssdliucheng: '注:以上费用类型将会被执行你设定的流程',
zwsyfeiyong: '暂无适用费用!',
qrsc: '确定删除',
scyhquan: '优惠券?删除后不可恢复!',
schdbkhf: '活动?删除后不可恢复!',
lcmscbkhf: '流程吗?删除后不可恢复!',
qsrmiaoshu: '请输入6个字的描述',
srgjzjxguolv: '输入关键字进行过滤',
qxzsygongsi: '请选择适用公司!',
qxzsyfeiyong: '请选择适用费用!',
qxzspiren: '请选择审批人!',
qxzliucehng: '请选择流程类型!',
czchenggong: '操作成功!',
rsbncgtr: '人数不能超过10人',
qtxjdmiaoshu: '请填写节点描述!',
qxzbmzgjibie: '请选择部门主管级别!',
cybnweikong: '成员不能为空',
qxzgangwei: '请选择岗位',
qxzbumen: '请选择部门!',
di: '第',
jizhuguan: '级主管',
xzqyshijian: '选择启用时间',
cicaozuoyongjiushanchu: '此操作将永久删除该提成规则, 是否继续?',
shanchutishi: '删除提示',
shanchushibai: '删除失败',
shanchuchenggong: '删除成功',
baocunchenggong: '保存成功',
wjdxbncgsz: '文件大小不能超过10M!',
qsctpian: '请上传图片!',
shangchuanzhong: '上传中...',
scchenggong: '上传成功',
znsJPGPNGgs: '"只能是 jpg png格式!',
huobi: '货币?',
qrszwbwbb: '确认设置本位币为',
shifoushanchu: '是否删除?',
yuemingxi: '余额明细',
tuodongwenjian: '将文件拖到此处,或',
dianjishanhcuan: '点击上传',
znengExcel: '只能上传Excel文件,重复的费用类型不会添加哦',
shangchuanExcel: '上传文件只能是 excel 格式!',
feiyongleixing: '费用类型?',
qxzzhleixing: '请选择账户类型!',
dzfpzxxdelete: '的支付信息配置?删除后不可撤回!',
+ qscWEfile: '请上传图片、word、excel类型的文件!',
+ czcgsfjxzhidan: '操作成功,是否继续制单?',
+ jpswxzxianlu: '机票尚未选择线路',
+ qzcpbianhao: '签证产品编号',
+ qishu: '期数',
+ jiaoyifangshi: '交易方式',
}
export const Operation = {
Op_ShortName:'线路简称',
Op_sname:'简称',
Op_depositAmount:'最低定金金额',
Op_EarlybirdDay:'早鸟优惠天数',
Op_LossAllocation:'损失分摊比列',
Op_partInCompany:'参与公司',
Op_belongDepartment:'所属部门',
Op_CombinedContry:'关联国家',
Op_lowDeposit:'最低定金',
Op_preferentialDays:'优惠天数',
Op_isDirect:'是否直采',
Op_isShared:'是否共享',
Op_AllowSmallGroup:'允许小包团',
Op_Project:'项目',
Op_notInvoled:'未参与',
Op_ManageDepartment:'管理部门',
}
export const rule = {
company: '请选择公司',
qxzxuanlu: '请选择线路',
qsryhqmingcheng: '请输入优惠券名称',
qsrsytiaojian: '请输入使用条件',
qxzsxriqi: '请选择生效日期',
qxzjzriqi: '请选择截止日期',
qsryhqshuliang: '请输入优惠券数量',
zkqzdzkwzhe: '折扣券最大折扣为99折',
yxjzrbxdyksshijian: '有效截止日必须大于开始时间!',
ldNmae: '请输入抽奖名称',
ldNum: '请输入抽奖次数',
startDate: '请选择开始日期',
endDate: '请选择结束日期',
qsrzhbieming: '请输入账户别名',
qxzzhleixing: '请选择账户类型',
qxzyhjigou: '请选择银行机构',
qsrkhuren: '请输入开户人',
qsrkhuhang: '请输入开户行',
qsrptzhanghao: '请输入平台账号',
qsrptsxufei: '请输入平台手续费',
qsrzqxufei: '请输入正确的平台手续费',
qszssgongsi: '请选择所属公司',
qxzzhbizhong: '请选择账户币种',
qsrcsyue: '请输入初始余额',
qsrzqdyue: '请输入正确的余额',
szfzeren: '支款负责人',
fkfzeren: '付款负责人',
qxzfyleixing: '请选择费用类型',
qtxptsyongfei: '请填写平台使用费',
qtxptbzhengjin: '请填写平台保证金',
qxzbdyinhang: '请选择绑定银行',
qssrzhhaoma: '请输入账户号码',
qsrzqdzhhaoma: '请输入正确的账户号码',
qsrlcmingcheng: '请输入流程名称',
qsrjcbili: '请输入基础比例',
qsrwmjiangli: '请输入外卖奖励',
qsrgzmingcheng: '请输入规则名称',
qzsxzytxianlu: '请至少选择一个适用线路',
qzsxzyggongsi: '请至少选择一个适用公司',
qsrjxmingcheng: '请输入奖项名称',
qxzjxleixing: '请选择奖项类型',
qxzjxguanlian: '请选择奖项关联',
qsrjxshuliang: '请输入奖项数量',
qxzjxzhuangtai: '请选择奖项状态',
qsrpaixu: '请输入排序',
qsrjgmingcheng: '请输入机构名称',
sxzjgleixing: '请选择机构类型',
qtxhbmingcheng: '请填写货币名称',
qtxhbdaima: '请填写货币代码',
qsrhuilv: '请输入汇率',
qxzqishu: '请选择期数',
qtxqmhuilv: '请填写期末汇率',
qtxfymingcheng: '请填写费用名称',
qxzlxcengji: '请选择类型层级',
qtxzhmingcheng: '请填写账户名称',
qxzsybumen: '请选择适用部门',
qsrshuhao: '请输入商户号',
qsrshsyao: '请输入商户私钥',
qsrptsiyao: '请输入平台公钥',
qsrqqdizhi: '请输入请求地址',
qsrbbenhao: '请输入版本号',
qxzssgongsi: '请选择所属公司',
qxzshleixing: '请选择账户类型',
qxzzhfenlei: '请选择账户分类',
qxzzhanghu: '请选择账户',
+ qsrdingdanhao: '请输入订单号',
+ qxzfyshuoming: '请选择费用说明',
+ qxzbzhong: '请选择币种',
+ qxzxybshren: '请选择下一步审批人',
+ qtxzsyxfyshuoming: '请填写至少一项费用说明!',
+ qxzyjfkshijian: '请选择预计付款时间!',
+ qxzfkduixiang: '请选择付款对象!',
+ qxzkhmingcheng: '请选择客户名称!',
+ qxzfkdzhanghu: '请选择付款账户',
+ qxzxybsheren: '请选择下一步审核人',
+ qxzzdbumen:' 请选择制单部门',
}
......@@ -211,6 +211,7 @@
<div class="re-img" v-for="(item,index) in HotelImageArray" :key="item.subCode">
<img :src="item.ShowPath" />
<div class="imgzhe">
<div class="re-delte" ><i @click.stop="showImg(item.ShowPath)" class="iconfont icon-img_cz"></i></div>
<div class="re-delte" @click="delImg(index)"><i class="iconfont icon-xingzhuang"></i></div>
<!-- <div class="re-delte" @click.stop="ExchangeImg(index,0)" v-if="index!=0&&item.ShowPath">
......@@ -251,6 +252,9 @@
<button class="save-Btn" @click="submitForm('addMsg')">{{$t('pub.saveBtn')}}</button>
<button class="cancel-Btn" @click="goUrl('HotelManagement')">{{$t('pub.cancelBtn')}}</button>
</div>
<viewer :images="images" :options='imageOptions' @inited="inited" class="viewer" ref="viewer">
<img v-for="src in images" :src="src" :key="src">
</viewer>
</div>
</template>
<script>
......@@ -259,6 +263,11 @@ import googleMap from "../commonPage/googleMap.vue";
export default {
data() {
return {
imageOptions:{
navbar:false,
title:false
},
images: [],
//是否显示添加图片
addimg: false,
//地图选中地址
......@@ -443,6 +452,24 @@ export default {
this.HotelImageArray.splice(index, 1);
//this.updatePic();
},
inited (viewer){
this.$viewer = viewer
},
showImg: function (src) {
let srcArr = src.split('?')
src = srcArr[0]
let isExsit=false
this.images.forEach(x=>{
if(x===src)
isExsit=true
})
if(!isExsit) {
this.images.push(src)
} else {
this.$viewer.view(this.images.indexOf(src))
}
this.$viewer.show()
},
addImgOpen() {
this.addimg = true;
this.initimgList();
......
......@@ -423,12 +423,6 @@ export default {
},
}, mounted() {
this.userId = this.getLocalStorage().EmployeeId;
// let obj = this.$route.query.item ? JSON.parse(this.$route.query.item) : ''
// this.item = obj
// this.orderId = this.msg.OrderID = obj.orderId ? obj.orderId : obj.OrderId
// this.tcnum = obj.tcnum ? obj.tcnum : obj.TCNUM
// this.tcid = obj.tcid ? obj.tcid : obj.TCID
// this.outBranchId = obj.outBranchId ? obj.outBranchId : obj.OutBranchId;
this.tcid= this.$route.query.TCID;
this.OutBranchId=this.$route.query.OutBranchId;
......
......@@ -490,7 +490,7 @@
<el-button type="primary" style='background:#00C6FF; border-color:#00C6FF' v-if="item.VisaStatus==2" @click="goUrlZ('VisaApplicationDetails',item.TCID,item.TCNUM)">{{$t('visa.v_chakanjindu')}}</el-button>
<el-button type="primary" style='background:#00C6FF; border-color:#00C6FF' v-if="item.VisaStatus==3" @click="goUrlZ('VisaApplicationDetails',item.TCID,item.TCNUM)">{{$t('visa.v_chakanjieguo')}}</el-button>
</div>
<el-button v-if="item.LineID!=14" @click="goUrlT('visaList2',item.TCID)" type="primary" style='background:#F16C3C; border-color:#F16C3C'>签证列表</el-button>
<el-button v-if="item.LineID==14" @click="goUrlT('visaList2',item.TCID)" type="primary" style='background:#F16C3C; border-color:#F16C3C'>签证列表</el-button>
<!-- <el-button @click="goTeamBalance(item.TCID,item.OutBranchId)" type="primary" style='background:#00C6FF; border-color:#00C6FF'>团队支出</el-button> -->
<el-button @click="goUrl('VisaFinancialDocuments',item.TCID,item.OutBranchId,item.TCNUM,'签证财务单据')" type="primary" style='background:#F16C3C; border-color:#F16C3C'>费用明细</el-button>
<el-button @click='openEdit(item)' type="primary" style='background:#F16C3C; border-color:#F16C3C'>送签日期</el-button>
......@@ -503,7 +503,12 @@
<div style="padding:10px 0">
<span class="RL-remarkTitle">名单:</span>
<span class="RL-redType RL-remarkCon" v-if="item.VisaGuestList.length>0">
<span style="color:blue !important" v-for="(childItem) in item.VisaGuestList">{{childItem.GuestName}}</span>
<span style="color:blue !important" v-for="(childItem) in item.VisaGuestList">
<span v-if="childItem.VisaStatus===2" class="groupTourOrder_tickets_blue" >{{childItem.GuestName}}</span>
<span v-else-if="childItem.VisaStatus===3" class="groupTourOrder_tickets_black" >{{childItem.GuestName}}</span>
<span v-else-if="childItem.VisaStatus===1" class="groupTourOrder_tickets_red" >{{childItem.GuestName}}</span>
</span>
</span>
<span class="RL-redType RL-remarkCon" v-else>
<span>暂无名单</span>
......@@ -520,7 +525,7 @@
<span v-if="item.VisaFinanceList.length===0">暂无数据</span>
</div>
</div>
<!-- <div class="TC_remarkContent">
<div class="TC_remarkContent">
<div class="clearfix TCL-redType">
<div class="TCL_remarkTitle">OP对外备注:</div>
<div class="TCL_Content">{{item.OPRemark}}</div>
......@@ -533,7 +538,7 @@
<div class="TCL_remarkTitle">地接备注:</div>
<div class="TCL_Content">{{item.DmcRemarkLast!=null?item.DmcRemarkLast.DMCRemark:""}}</div>
</div>
</div> -->
</div>
</li>
</ul>
<div class="noData" v-show="queryMsg.noData">
......@@ -810,7 +815,7 @@ export default {
//航班配置
FlightState:0,
TCVisaStatus: '-1',
IsShowUnion:1,
IsShowUnion:0,
QueryType:1,//查询类型 1:签证
},
remarkMsg: {
......
......@@ -1095,6 +1095,7 @@ export default {
},
mounted() {
this.initCity();
this.getNeedType();
this.initTicketType();
......
......@@ -676,7 +676,7 @@
</el-dropdown-item>
<el-dropdown-item v-if="item.Status==2" @click.native="OutGroup(item.TCID,1)">销售
</el-dropdown-item>
<el-dropdown-item v-if="item.Status==1&&showSureOrder('P_Query_Income_ConfirmInfo',item.CreateBy)"
<el-dropdown-item v-if="item.Status==2&&showSureOrder('P_Query_Income_ConfirmInfo',item.CreateBy)"
@click.native="goSureOrder('priceIncomeConfirmInfo',item.TCID)">收入确认单
</el-dropdown-item>
<el-dropdown-item v-if="CurrentUserInfo.B2BDomain!=''"
......
......@@ -132,7 +132,6 @@
res => {
this.loading=false;
if (res.data.resultCode == 1) {
console.log(res,'data');
this.dataList = res.data.data;
} else {
this.Error(res.data.message);
......
......@@ -26,7 +26,7 @@
{{$t('visa.v_tvisa')}}
<el-dropdown-menu slot="dropdown" >
<el-dropdown-item v-for="item in VisaManagementList" :key='item.Id' v-if="item.IsGroupSigned==1" :command='{id:item.Id,type:2}'>{{item.Name}}</el-dropdown-item>
<el-dropdown-item v-if="LineID!=14" :command='{id:-1,type:2}'>{{$t('visa.v_Othervisas')}}</el-dropdown-item>
<el-dropdown-item v-if="LineID!=14" :command='{id:-1,type:2}'>其他</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
......@@ -34,7 +34,7 @@
{{$t('visa.v_gvisa')}}
<el-dropdown-menu slot="dropdown" >
<el-dropdown-item v-for="item in VisaManagementList" :key='item.Id' v-if="item.IsOrderSigned==1" :command='{id:item.Id,type:1}'>{{item.Name}}</el-dropdown-item>
<el-dropdown-item v-if="LineID!=14" :command='{id:-1,type:1}'>{{$t('visa.v_Othervisas')}}</el-dropdown-item>
<el-dropdown-item v-if="LineID!=14" :command='{id:-1,type:1}'>其他</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
......
<style>
.busInfo {
.busInfo {
font-size: 12px;
}
.busInfo .bus_Notice {
}
.busInfo .bus_Notice {
color: #e95252;
margin: 20px 0;
}
.busInfo .bus_Title {
}
.busInfo .bus_Title {
display: inline-block;
padding-left: 10px;
border-left: 3px solid #e95252;
margin-bottom: 20px;
}
.busInfo .bus_uu li {
}
.busInfo .bus_uu li {
float: left;
width: 280px;
}
.busInfo .bo_bus {
}
.busInfo .bo_bus {
width: 100%;
background: #eee;
min-width: 1125px;
margin-bottom: 30px;
}
.busInfo .bo_bus th {
}
.busInfo .bo_bus th {
background: #edeef0;
height: 40px;
}
.busInfo .bo_bus tr {
}
.busInfo .bo_bus tr {
height: 40px;
}
.busInfo .bo_bus td {
}
.busInfo .bo_bus td {
height: 50px;
text-align: center;
background-color: #fff;
padding:0 10px;
}
.busInfo .bus_uu em {
padding: 0 10px;
}
.busInfo .bus_uu em {
font-style: normal;
display: inline-block;
width: 60px;
}
.busInfo .areaInfo li {
}
.busInfo .areaInfo li {
width: auto;
margin-bottom: 30px;
}
.busInfo .subName {
}
.busInfo .subName {
padding: 5px 10px;
border: 1px solid #d1d1d1;
border-radius: 14px;
cursor: pointer;
}
.busInfo .spanCked {
}
.busInfo .spanCked {
border-color: #ff4400;
color: #ff4400;
}
.busInfo .carPlanOne span {
float: left;
}
/* .busInfo .carPlanOne span {
display: inline-block;
margin-right: 3px;
}
.busInfo .otherSpan > span:first-child {
margin-left: 50px;
}
.busInfo .carPlanOne .el-input .el-input__inner,
.el-select .el-input {
margin:5px 4px 5px 0;
} */
.BusinfoSpan{
display: inline-block;
margin-right: 3px;
margin:5px 4px 5px 0;
}
.busInfo .carPlanOne .el-input .el-input__inner,
.el-select .el-input {
height: 28px;
}
.busInfo .upBtnList {
}
.busInfo .upBtnList {
margin: 20px 0 30px 20px;
}
.carInfo .el-input__inner {
}
.carInfo .el-input__inner {
height: 34px !important;
}
.disSpan {
}
.disSpan {
background-color: #e4e7ed;
color: #c0c4cc;
}
.busInfoP{
display:inline-block;
}
.busInfoP :hover {
}
.busInfoP {
display: inline-block;
}
.busInfoP :hover {
text-decoration: underline;
cursor: pointer;
}
.BusTyleFirst .w150{
margin-right:22px;
}
}
.BusTyleFirst .w150 {
margin-right: 22px;
}
.busAddbtn {
display: inline-block;
width: 30px;
height: 30px;
border: 1px solid #d1d1d1;
text-align: center;
line-height: 30px;
border-radius: 50%;
cursor: pointer;
position: relative;
top: 2px;
}
.busAddbtn:hover i {
color: #e95252;
}
.carPlanOne .w320{
margin:5px 0;
}
</style>
<template>
<div class="flexOne busInfo">
......@@ -107,28 +148,31 @@
<td>{{totalFlySeat}}</td>
<td>{{LeaderName}}</td>
<td>{{GuideName}}</td>
<td><p class="busInfoP" @click="goUrlT('TravelControlList',TCNUMS,'团控列表')">{{TCNUMS}}</p></td>
<td>
<p class="busInfoP" @click="goUrlT('TravelControlList',TCNUMS,'团控列表')">{{TCNUMS}}</p>
</td>
</tr>
</table>
<div style="width: 100%; overflow-x: auto;margin-top:20px;" class="ownScrollbarStyle">
<el-form :model="PostData" :rules="rules" ref="PostData">
<table class="bo_bus" cellspacing="1">
<tr>
<th width="150">日期</th>
<th width="300">酒店名称</th>
<th width="120">停车场</th>
<th width="280">用车计划</th>
<th width="100">日期</th>
<th width="280">酒店名称</th>
<th width="50">停车场</th>
<th width="400">用车计划</th>
<th width="200">订团号</th>
<th width="120">司机姓名</th>
<th width="120">联系电话</th>
<th width="100">司机姓名</th>
<th width="100">联系电话</th>
<th width="250">司机住宿</th>
<th>泊车说明</th>
<th width="120">车辆类型</th>
<th width="120">使用人数</th>
<th width="120">车牌号码</th>
<th width="120">供应商</th>
<th>泊车说明</th>
<th>成本价</th>
<th width="120">中转次数</th>
<th width="120">付款方式</th>
<th width="120">备注</th>
<th width="120">小计</th>
</tr>
<tr v-for="(item,index) in PlanTableData">
......@@ -148,59 +192,69 @@
</div>
</td>
<td class="carPlanOne" :class="{'otherSpan':index!=0&&index!=PlanTableData.length-1}">
<div class="w320">
<div class="w320" v-for="(subItem,subIndex) in item.DetailList">
<em>
<!--接机送机-->
<em >
<span @click="item.AirportPickUp==0?item.AirportPickUp=1:item.AirportPickUp=0;getBusPrice(item)" v-if='index==0' class="subName" :class="{'spanCked':item.AirportPickUp==1,'disSpan':forbidInput==true}">{{AirPickUp}}</span>
<span @click="item.AirportPickUp==0?item.AirportPickUp=2:item.AirportPickUp=0;getBusPrice(item)" v-if='index==PlanTableData.length-1' class="subName" :class="{'spanCked':item.AirportPickUp==2,'disSpan':forbidInput==true}">{{AirSend}}</span>
</em>
<em v-if='index!=0&&index!=PlanTableData.length-1'>
<span @click="(item.AirportPickUp==0||item.AirportPickUp==2)?item.AirportPickUp=1:item.AirportPickUp=0;getBusPrice(item)" class="subName" :class="{'spanCked':item.AirportPickUp==1,'disSpan':forbidInput==true}">{{AirPickUp}}</span>
<span @click="(item.AirportPickUp==0||item.AirportPickUp==1)?item.AirportPickUp=2:item.AirportPickUp=0;getBusPrice(item)" class="subName" :class="{'spanCked':item.AirportPickUp==2,'disSpan':forbidInput==true}">{{AirSend}}</span>
<el-select class="w150" placeholder="请选择" v-model="subItem.AirportPickUp" :disabled="forbidInput">
<el-option :key="0" :value="0" label="请选择"></el-option>
<el-option v-for="childitem in BusAirportPickUpList" :key="childitem.Id" :label="childitem.Name"
:value="childitem.Id">
</el-option>
</el-select>
</em>
<!--用车类型-->
<span v-for="subItem in UseTypeArray">
<span class="subName" :class="{'spanCked':item.UseType==subItem.Id,'disSpan':forbidInput==true}"
@click="UseTypeClick(subItem.Id,index);getBusPrice(item)">{{subItem.Name}}</span>
<span v-if="subItem.Id==3&& (index==0 || index==PlanTableData.length-1) ">
<el-input class="w50" v-model="item.UseTime" @input='getBusPrice(item)' :disabled="forbidInput"></el-input>
<span v-for="childItem in UseTypeArray" class="BusinfoSpan">
<span v-if="childItem.Id==1" class="subName"
:class="{'spanCked':subItem.UseType==childItem.Id,'disSpan':forbidInput==true}"
@click="UseTypeClick(childItem.Id,index,subIndex);getBusPrice(subItem)">{{childItem.Name}}</span>
</span>
<span v-else-if="(subItem.Id==3 && item.UseType==3)">
<el-input class="w50" v-model="item.UseTime" @input='getBusPrice(item)' :disabled="forbidInput"></el-input>
<span style="width:30px;display:inline-block;" >
<a v-if="subIndex>0" @click="DeleteSubItem(item,subIndex)" style="color:blue;cursor:pointer">删除</a>
</span>
<span style="display:inline-block;width:30px;margin-left:5px;">
<span class="busAddbtn" v-if="subIndex==item.DetailList.length-1" @click="AddSubItem(item)" style="margin-bottom:10px;">
<i class="iconfont icon-img_haha"></i>
</span>
</span>
</div>
</td>
<td>
<div class="w170">
<el-input class='w170' type="text" v-model="item.BookGroup"></el-input>
</div>
</td>
<td>
<el-input class="w135" v-model="item.DriverName"></el-input>
<el-input class="w100" v-model="item.DriverName"></el-input>
</td>
<td>
<el-input class="w135" v-model="item.DriverTel"></el-input>
<el-input class="w100" v-model="item.DriverTel"></el-input>
</td>
<td class="carPlanOne">
<!--司机住宿类型-->
<div class="w260">
<span v-for="subItem in AccommodationTypeArray">
<span class="subName" :class="{'spanCked':item.AccommodationType==subItem.Id}" @click="AccommodationCLick(subItem.Id,index)">{{subItem.Name}}</span>
<span class="subName" :class="{'spanCked':item.AccommodationType==subItem.Id}"
@click="AccommodationCLick(subItem.Id,index)">{{subItem.Name}}</span>
<span v-if="subItem.Id==1 && item.AccommodationType==1">
<el-input class="w135" v-model="item.AccommodationRemark" placeholder="请输入外宿地址"></el-input>
</span>
</span>
</div>
</td>
<td>
<div class="w150">
<el-input class="w135" v-model="item.ParkExplain" placeholder="请输入说明"></el-input>
</div>
</td>
<td>
<div class="w180" :class="{'BusTyleFirst':index==0}">
<el-select clearable class="w150" filterable placeholder="请选择" v-model="item.BusType" :disabled="forbidInput" @change='getBusPrice(item)'>
<el-select clearable class="w150" filterable placeholder="请选择" v-model="item.BusType"
:disabled="forbidInput" @change='getBusPrice(item)'>
<el-option :key="0" :value="0" label="请选择"></el-option>
<el-option v-for="item in BusTypeList" :key="item.Id" :label="item.newName" :value="item.Id">
</el-option>
</el-select>
<el-tooltip class="item" effect="dark" content="同上" placement="top">
<i class="iconfont icon-tongshang" style="cursor:pointer;" v-if="index!=0" @click="getBeforeInfo(index)"></i>
<i class="iconfont icon-tongshang" style="cursor:pointer;" v-if="index!=0"
@click="getBeforeInfo(index)"></i>
</el-tooltip>
</div>
</td>
......@@ -217,24 +271,32 @@
<td>
<div class="w200">
<el-select class="w150" filterable placeholder="请选择" v-model="item.BusCompany">
<el-option v-for="item in SupplierList" :key="item.ID" :label="item.Name" :value="item.ID"></el-option>
<el-option v-for="item in SupplierList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</div>
</td>
<td>
<div class="w150">
<el-input class="w135" v-model="item.ParkExplain" placeholder="请输入说明"></el-input>
</div>
</td>
<td>
<div class="w100">
<el-input class="w80" v-model="item.CostPrice" @keyup.native="checkPrice(item,'CostPrice')"
placeholder="请输入成本价"></el-input>
</div>
</td>
<td>
<div class="w120">
<el-select class='w100 sel' v-model='item.PayType' :placeholder="$t('pub.pleaseSel')">
<el-option label='请选择' :value='0'></el-option>
<el-option label='现付' :value='1'></el-option>
<el-option label='公司结算' :value='2'></el-option>
<el-option label='预付' :value='3'></el-option>
</el-select>
</div>
</td>
<td>
<div class="w80">
<el-input class='w50' type="text" v-model="item.TransferNum" @keyup.native="checkInteger(item,'TransferNum')"></el-input>
<el-input class='w80' type="text" v-model="item.Remarks"></el-input>
</div>
</td>
<td>
......@@ -253,10 +315,10 @@
</div>
</template>
<script>
export default {
export default {
data() {
return {
defaultSelectValue:0,
defaultSelectValue: 0,
//车辆类型列表
BusTypeList: [],
/*供应商列表*/
......@@ -297,45 +359,34 @@ export default {
forbidInput: false,
PlanTableData: [],
UseTypeArray: [], //用车类型
//接送机类型
AirPickUp: "",
AirSend: "",
BusAirportPickUpList: [], //用车类型
//禁止重复提交禁用按钮
disButton: false,
//司机住宿类型
AccommodationTypeArray: [],
rules: {
//表单必填验证
BusCode: [
{
BusCode: [{
required: true,
message: "请填写车配号",
trigger: "change"
}
],
DriverName: [
{
}],
DriverName: [{
required: true,
message: "请填写司机姓名",
trigger: "change"
}
],
DriverTel: [
{
}],
DriverTel: [{
required: true,
message: "请填写联系电话",
trigger: "change"
}
],
BusType: [
{
}],
BusType: [{
required: true,
message: "请选择车辆类型",
trigger: "change"
}
],
CarrierNum: [
{
}],
CarrierNum: [{
required: true,
message: "请填写核载人数",
trigger: "change"
......@@ -345,22 +396,17 @@ export default {
message: "请输入正确的数字"
}
],
BusNum: [
{
BusNum: [{
required: true,
message: "请填写车牌号码",
trigger: "change"
}
],
StartDate: [
{
}],
StartDate: [{
required: true,
message: "请选择开始时间",
trigger: "change"
}
],
UseDays: [
{
}],
UseDays: [{
required: true,
message: "请填写使用天数",
trigger: "change"
......@@ -370,15 +416,12 @@ export default {
message: "请输入正确的数字"
}
],
SupplierId: [
{
SupplierId: [{
required: true,
message: "请选择供应商",
trigger: "change"
}
],
CostPrice: [
{
}],
CostPrice: [{
pattern: this.$commonUtils.Regex.el_Isdecimal,
message: "请输入正确的价格"
},
......@@ -388,8 +431,7 @@ export default {
trigger: "change"
}
],
SalesPrice: [
{
SalesPrice: [{
pattern: this.$commonUtils.Regex.el_Isdecimal,
message: "请输入正确的价格"
},
......@@ -401,78 +443,88 @@ export default {
]
},
//团名
title:'',
title: '',
//团号
TCNUMS:'',
TCNUMS: '',
//进出点
InOut:'',
InOut: '',
//订单人数
RealityNum:'',
RealityNum: '',
//机位总数
totalFlySeat:'',
LeaderName:'',
GuideName:'',
totalFlySeat: '',
LeaderName: '',
GuideName: '',
};
},
methods: {
/*获取车辆成本价格*/
getBusPrice(obj){
let money=0
if(obj.BusType)
{
let checkObj=this.BusTypeList.find(item=>item.Id===obj.BusType)
if(checkObj){
if(obj.AirportPickUp==0)
{
switch (obj.UseType){
getBusPrice(obj) {
let money = 0
if (obj.BusType) {
let checkObj = this.BusTypeList.find(item => item.Id === obj.BusType)
if (checkObj) {
if (obj.AirportPickUp == 0) {
switch (obj.UseType) {
case 1:
money=checkObj.AllDayPrice
money = checkObj.AllDayPrice
break;
case 2:
money=checkObj.HalfDayPrice
money = checkObj.HalfDayPrice
break;
case 3:
money=checkObj.HourPrice*obj.UseTime
money = checkObj.HourPrice * obj.UseTime
break;
default:
money=0
money = 0
break;
}
}else if(obj.AirportPickUp==1){
switch (obj.UseType){
} else if (obj.AirportPickUp == 1) {
switch (obj.UseType) {
case 1:
money=checkObj.AllDayPrice+checkObj.ReceivePrice
money = checkObj.AllDayPrice + checkObj.ReceivePrice
break;
case 2:
money=checkObj.HalfDayPrice+checkObj.ReceivePrice
money = checkObj.HalfDayPrice + checkObj.ReceivePrice
break;
case 3:
money=checkObj.HourPrice*obj.UseTime+checkObj.ReceivePrice
money = checkObj.HourPrice * obj.UseTime + checkObj.ReceivePrice
break;
default:
money=checkObj.ReceivePrice
money = checkObj.ReceivePrice
break;
}
}else{
switch (obj.UseType){
} else {
switch (obj.UseType) {
case 1:
money=checkObj.AllDayPrice+checkObj.SendPrice
money = checkObj.AllDayPrice + checkObj.SendPrice
break;
case 2:
money=checkObj.HalfDayPrice+checkObj.SendPrice
money = checkObj.HalfDayPrice + checkObj.SendPrice
break;
case 3:
money=checkObj.HourPrice*obj.UseTime+checkObj.SendPrice
money = checkObj.HourPrice * obj.UseTime + checkObj.SendPrice
break;
default:
money=checkObj.SendPrice
money = checkObj.SendPrice
break;
}
}
}
obj.CostPrice=money
obj.CostPrice = money
}
},
AddSubItem(item) {
item.DetailList.push({
DetailId: 0,
UseType: 0,
BusPlanId: 0,
AirportPickUp: 0
});
},
DeleteSubItem(item,index)
{
item.DetailList.splice(index,1);
},
/*获取车辆类型列表*/
getBusTypeList() {
this.apipost(
......@@ -480,10 +532,9 @@ export default {
null,
res => {
if (res.data.resultCode == 1) {
console.log(res.data.data)
this.BusTypeList = res.data.data;
this.BusTypeList.forEach(item=>{
item['newName']=item.AreaTypeStr+'-'+item.BusTypeStr
this.BusTypeList.forEach(item => {
item['newName'] = item.AreaTypeStr + '-' + item.BusTypeStr
})
}
},
......@@ -493,8 +544,7 @@ export default {
/*获取供应商列表*/
getSupplierList() {
this.apipost(
"supplier_post_GetAllList",
{
"supplier_post_GetAllList", {
Type: 5
},
response => {
......@@ -508,19 +558,17 @@ export default {
/*生成表格数据*/
createTableData() {
this.apipost(
"bus_get_GetTravelBusDetailsTCIDs",
{
"bus_get_GetTravelBusDetailsTCIDs", {
TCIDs: this.parametersData.TCID
},
response => {
if (response.data.resultCode == 1) {
this.PlanTableData = response.data.data;
this.PlanTableData.forEach(x=>{
if(x.BookGroup==''||x.BookGroup==null){
this.PlanTableData.forEach(x => {
if (x.BookGroup == '' || x.BookGroup == null) {
x.BookGroup = this.$route.query.NewCombinationNum;
}
})
console.log(this.PlanTableData,'plandata');
}
},
null
......@@ -563,31 +611,32 @@ export default {
null
);
},
SaveList(type){
this.PlanTableData.forEach(item=>{
item.OrderState=type
SaveList(type) {
this.PlanTableData.forEach(item => {
item.OrderState = type
})
this.apipost('bus_get_SetPlan',this.PlanTableData,res=>{
this.apipost('bus_get_SetPlan', this.PlanTableData, res => {
if (res.data.resultCode == 1) {
this.Success("保存成功!");
this.MsgBus.$emit('msg')
this.getData();
} else {
this.Error(res.data.message);
}
},err=>{})
}, err => {})
},
//用车类型点击事件
UseTypeClick(value, index) {
UseTypeClick(value, index,subIndex) {
if (this.forbidInput == true) {
return;
}
if (
this.PlanTableData[index].UseType == "0" ||
this.PlanTableData[index].UseType != value
this.PlanTableData[index].DetailList[subIndex].UseType == "0" ||
this.PlanTableData[index].DetailList[subIndex].UseType != value
) {
this.PlanTableData[index].UseType = value;
} else if (this.PlanTableData[index].UseType == value) {
this.PlanTableData[index].UseType = "0";
this.PlanTableData[index].DetailList[subIndex].UseType = value;
} else if (this.PlanTableData[index].DetailList[subIndex].UseType == value) {
this.PlanTableData[index].DetailList[subIndex].UseType = "0";
}
},
//司机住宿点击事件
......@@ -621,8 +670,7 @@ export default {
null,
response => {
if (response.data.resultCode == 1) {
this.AirPickUp = response.data.data[0].Name;
this.AirSend = response.data.data[1].Name;
this.BusAirportPickUpList = response.data.data;
}
},
null
......@@ -643,8 +691,7 @@ export default {
},
getData() {
this.apipost(
"bus_get_Get",
{
"bus_get_Get", {
ID: this.BusId
},
response => {
......@@ -672,7 +719,7 @@ export default {
this.$router.push({
name: path,
query: {
tcmun:TCNUMS,
tcmun: TCNUMS,
blank: 'y',
tab: title
}
......@@ -703,27 +750,23 @@ export default {
this.PostData.CostPrice = CoastPrice;
},
//获取同上信息
getBeforeInfo(index){
let oldPlanData = this.PlanTableData[index-1];
getBeforeInfo(index) {
let oldPlanData = this.PlanTableData[index - 1];
let newPlanData = this.PlanTableData[index];
// newPlanData.PlanDateStr = oldPlanData.PlanDateStr;
// newPlanData.HotelName = oldPlanData.HotelName;
// newPlanData.IsHavearking = oldPlanData.IsHavearking;
// newPlanData.AirportPickUp = oldPlanData.AirportPickUp;
// newPlanData.UseType = oldPlanData.UseType;
// newPlanData.UseTime = oldPlanData.UseTime;
newPlanData.AirportPickUp = oldPlanData.AirportPickUp;
newPlanData.UseType = oldPlanData.UseType;
newPlanData.UseTime = oldPlanData.UseTime;
newPlanData.BookGroup = oldPlanData.BookGroup;
newPlanData.DriverName = oldPlanData.DriverName;
newPlanData.DriverTel = oldPlanData.DriverTel;
newPlanData.AccommodationType = oldPlanData.AccommodationType;
newPlanData.AccommodationRemark = oldPlanData.AccommodationRemark;
newPlanData.BusType = oldPlanData.BusType;
// newPlanData.UseNum = oldPlanData.UseNum;
// newPlanData.BusNum = oldPlanData.BusNum;
// newPlanData.BusCompany = oldPlanData.BusCompany;
// newPlanData.ParkExplain = oldPlanData.ParkExplain;
// newPlanData.CostPrice = oldPlanData.CostPrice;
// newPlanData.TransferNum = oldPlanData.TransferNum;
newPlanData.UseNum = oldPlanData.UseNum;
newPlanData.BusNum = oldPlanData.BusNum;
newPlanData.BusCompany = oldPlanData.BusCompany;
newPlanData.ParkExplain = oldPlanData.ParkExplain;
newPlanData.CostPrice = oldPlanData.CostPrice;
}
},
mounted() {
......@@ -735,28 +778,23 @@ export default {
this.TCNUMS = this.$route.query.TCNUMS,
this.InOut = this.$route.query.InOut,
this.RealityNum = this.$route.query.RealityNum,
this.totalFlySeat = this.$route.query.TotalNumber+'/'+this.$route.query.RealityYSeatNum+'/'+
this.$route.query.RealityESeatNum+'/'+this.$route.query.RealityFSeatNum
this.totalFlySeat = this.$route.query.TotalNumber + '/' + this.$route.query.RealityYSeatNum + '/' +
this.$route.query.RealityESeatNum + '/' + this.$route.query.RealityFSeatNum
this.LeaderName = this.$route.query.LeaderName,
this.GuideName = this.$route.query.GuideName
if (this.BusId > 0) {
this.getData();
// this.forbidInput = true;
}
this.parametersData.TCID = this.$route.query.TCID;
this.parametersData.StartDate = this.$route.query.StartDate;
this.parametersData.DayNum = this.$route.query.DayNum;
this.parametersData.TotalNumber = this.$route.query.TotalNumber;
// if (this.parametersData.DayNum > 0) {
// this.PostData.StartDate = this.parametersData.StartDate;
// this.PostData.UseDays = this.parametersData.DayNum;
this.PostData.TCID = this.parametersData.TCID;
this.PostData.CarrierNum = this.parametersData.TotalNumber;
this.createTableData();
// }
this.getBusTypeList();
this.getSupplierList();
}
};
};
</script>
\ No newline at end of file
......@@ -153,7 +153,7 @@
</div></td>
<td :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<div class="w100 link">
<span @click="goUrlX('BusInfo',outItem,'车配信息')">详情</span>
<span @click="goUrlX('BusInfo',item,outItem,'车配信息')">详情</span>
<span @click="DownLoadFile(item,outItem.NewCombinationNum)">下载</span>
</div>
</td>
......@@ -291,14 +291,28 @@ totalPrice+=busInfo.CostPrice*(Number(busInfo.TransferNum)+1)*PeopleNum;
}
);
},
goUrlX(path,obj,title){
console.log(obj);
//
let TotalSeat=0;
obj.StaticsReportList.forEach(outItem=>{
TotalSeat+=outItem.CommonReport.HouseStatistics.RealityNum;
});
this.$router.push({ name:path,query:{"TCID":obj.TCIDs,TotalNumber:TotalSeat,blank:'y',tab:title}})
goUrlX(path, obj,outItem,title){
this.$router.push({
name: path,
query: {
"TCID": obj.TCIDS,
StartDate: obj.StartDateStr,
DayNum: obj.DayNum,
TotalNumber: obj.TotalSeat, //机位总数
RealityYSeatNum:obj.CommonReport.HouseStatistics.RealityYSeatNum,
RealityESeatNum:obj.CommonReport.HouseStatistics.RealityESeatNum,
RealityFSeatNum:obj.CommonReport.HouseStatistics.RealityFSeatNum,
LeaderName:obj.LeaderName,
GuideName:obj.GuideName,
NewCombinationNum: outItem.NewCombinationNum,
blank: 'y',
title:obj.Titles,
TCNUMS:obj.TCNUMS,
InOut:obj.InOut,
RealityNum:obj.CommonReport.HouseStatistics.RealityNum,
tab: title
}
})
},
goUrlR(path,obj,title){
this.$router.push({ name:path,query:{"ID":obj,blank:'y',tab:title}})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment