Commit 30cd28f1 authored by 华国豪's avatar 华国豪 🙄
parents 68366f07 cf239fad
...@@ -9,6 +9,10 @@ ...@@ -9,6 +9,10 @@
<img v-for="src in images" :src="src" :key="src"> <img v-for="src in images" :src="src" :key="src">
</viewer> </viewer>
<chosen-open-mode v-if="haveOpenMode" :settingSys="settingSys"></chosen-open-mode> <chosen-open-mode v-if="haveOpenMode" :settingSys="settingSys"></chosen-open-mode>
<!-- -->
<!-- <div class="downzip">
下载包
</div> -->
</div> </div>
</template> </template>
...@@ -119,4 +123,8 @@ export default { ...@@ -119,4 +123,8 @@ export default {
.BMap_cpyCtrl {display: none;} .BMap_cpyCtrl {display: none;}
.anchorBL {display: none;} .anchorBL {display: none;}
.viewer{display: none !important;} .viewer{display: none !important;}
/* .downzip{
width: 100%;
height:
} */
</style> </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 @@ ...@@ -211,6 +211,7 @@
<div class="re-img" v-for="(item,index) in HotelImageArray" :key="item.subCode"> <div class="re-img" v-for="(item,index) in HotelImageArray" :key="item.subCode">
<img :src="item.ShowPath" /> <img :src="item.ShowPath" />
<div class="imgzhe"> <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="delImg(index)"><i class="iconfont icon-xingzhuang"></i></div>
<!-- <div class="re-delte" @click.stop="ExchangeImg(index,0)" v-if="index!=0&&item.ShowPath"> <!-- <div class="re-delte" @click.stop="ExchangeImg(index,0)" v-if="index!=0&&item.ShowPath">
...@@ -251,6 +252,9 @@ ...@@ -251,6 +252,9 @@
<button class="save-Btn" @click="submitForm('addMsg')">{{$t('pub.saveBtn')}}</button> <button class="save-Btn" @click="submitForm('addMsg')">{{$t('pub.saveBtn')}}</button>
<button class="cancel-Btn" @click="goUrl('HotelManagement')">{{$t('pub.cancelBtn')}}</button> <button class="cancel-Btn" @click="goUrl('HotelManagement')">{{$t('pub.cancelBtn')}}</button>
</div> </div>
<viewer :images="images" :options='imageOptions' @inited="inited" class="viewer" ref="viewer">
<img v-for="src in images" :src="src" :key="src">
</viewer>
</div> </div>
</template> </template>
<script> <script>
...@@ -259,6 +263,11 @@ import googleMap from "../commonPage/googleMap.vue"; ...@@ -259,6 +263,11 @@ import googleMap from "../commonPage/googleMap.vue";
export default { export default {
data() { data() {
return { return {
imageOptions:{
navbar:false,
title:false
},
images: [],
//是否显示添加图片 //是否显示添加图片
addimg: false, addimg: false,
//地图选中地址 //地图选中地址
...@@ -443,6 +452,24 @@ export default { ...@@ -443,6 +452,24 @@ export default {
this.HotelImageArray.splice(index, 1); this.HotelImageArray.splice(index, 1);
//this.updatePic(); //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() { addImgOpen() {
this.addimg = true; this.addimg = true;
this.initimgList(); this.initimgList();
......
...@@ -423,12 +423,6 @@ export default { ...@@ -423,12 +423,6 @@ export default {
}, },
}, mounted() { }, mounted() {
this.userId = this.getLocalStorage().EmployeeId; 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.tcid= this.$route.query.TCID;
this.OutBranchId=this.$route.query.OutBranchId; this.OutBranchId=this.$route.query.OutBranchId;
......
...@@ -490,7 +490,7 @@ ...@@ -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==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> <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> </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="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="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> <el-button @click='openEdit(item)' type="primary" style='background:#F16C3C; border-color:#F16C3C'>送签日期</el-button>
...@@ -503,7 +503,12 @@ ...@@ -503,7 +503,12 @@
<div style="padding:10px 0"> <div style="padding:10px 0">
<span class="RL-remarkTitle">名单:</span> <span class="RL-remarkTitle">名单:</span>
<span class="RL-redType RL-remarkCon" v-if="item.VisaGuestList.length>0"> <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>
<span class="RL-redType RL-remarkCon" v-else> <span class="RL-redType RL-remarkCon" v-else>
<span>暂无名单</span> <span>暂无名单</span>
...@@ -520,7 +525,7 @@ ...@@ -520,7 +525,7 @@
<span v-if="item.VisaFinanceList.length===0">暂无数据</span> <span v-if="item.VisaFinanceList.length===0">暂无数据</span>
</div> </div>
</div> </div>
<!-- <div class="TC_remarkContent"> <div class="TC_remarkContent">
<div class="clearfix TCL-redType"> <div class="clearfix TCL-redType">
<div class="TCL_remarkTitle">OP对外备注:</div> <div class="TCL_remarkTitle">OP对外备注:</div>
<div class="TCL_Content">{{item.OPRemark}}</div> <div class="TCL_Content">{{item.OPRemark}}</div>
...@@ -533,7 +538,7 @@ ...@@ -533,7 +538,7 @@
<div class="TCL_remarkTitle">地接备注:</div> <div class="TCL_remarkTitle">地接备注:</div>
<div class="TCL_Content">{{item.DmcRemarkLast!=null?item.DmcRemarkLast.DMCRemark:""}}</div> <div class="TCL_Content">{{item.DmcRemarkLast!=null?item.DmcRemarkLast.DMCRemark:""}}</div>
</div> </div>
</div> --> </div>
</li> </li>
</ul> </ul>
<div class="noData" v-show="queryMsg.noData"> <div class="noData" v-show="queryMsg.noData">
...@@ -810,7 +815,7 @@ export default { ...@@ -810,7 +815,7 @@ export default {
//航班配置 //航班配置
FlightState:0, FlightState:0,
TCVisaStatus: '-1', TCVisaStatus: '-1',
IsShowUnion:1, IsShowUnion:0,
QueryType:1,//查询类型 1:签证 QueryType:1,//查询类型 1:签证
}, },
remarkMsg: { remarkMsg: {
......
...@@ -1095,11 +1095,12 @@ export default { ...@@ -1095,11 +1095,12 @@ export default {
}, },
mounted() { mounted() {
this.initCity(); this.initCity();
this.getNeedType(); this.getNeedType();
this.initTicketType(); this.initTicketType();
this.initAirline(); this.initAirline();
this.getList(); this.getList();
} }
}; };
</script> </script>
...@@ -676,7 +676,7 @@ ...@@ -676,7 +676,7 @@
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item v-if="item.Status==2" @click.native="OutGroup(item.TCID,1)">销售 <el-dropdown-item v-if="item.Status==2" @click.native="OutGroup(item.TCID,1)">销售
</el-dropdown-item> </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)">收入确认单 @click.native="goSureOrder('priceIncomeConfirmInfo',item.TCID)">收入确认单
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item v-if="CurrentUserInfo.B2BDomain!=''" <el-dropdown-item v-if="CurrentUserInfo.B2BDomain!=''"
......
...@@ -132,7 +132,6 @@ ...@@ -132,7 +132,6 @@
res => { res => {
this.loading=false; this.loading=false;
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
console.log(res,'data');
this.dataList = res.data.data; this.dataList = res.data.data;
} else { } else {
this.Error(res.data.message); this.Error(res.data.message);
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
{{$t('visa.v_tvisa')}} {{$t('visa.v_tvisa')}}
<el-dropdown-menu slot="dropdown" > <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-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-menu>
</el-dropdown> </el-dropdown>
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
{{$t('visa.v_gvisa')}} {{$t('visa.v_gvisa')}}
<el-dropdown-menu slot="dropdown" > <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-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-menu>
</el-dropdown> </el-dropdown>
</div> </div>
......
<style> <style>
.busInfo { .busInfo {
font-size: 12px; font-size: 12px;
} }
.busInfo .bus_Notice {
color: #e95252; .busInfo .bus_Notice {
margin: 20px 0; color: #e95252;
} margin: 20px 0;
.busInfo .bus_Title { }
display: inline-block;
padding-left: 10px; .busInfo .bus_Title {
border-left: 3px solid #e95252; display: inline-block;
margin-bottom: 20px; padding-left: 10px;
} border-left: 3px solid #e95252;
.busInfo .bus_uu li { margin-bottom: 20px;
float: left; }
width: 280px;
} .busInfo .bus_uu li {
.busInfo .bo_bus { float: left;
width: 100%; width: 280px;
background: #eee; }
min-width: 1125px;
margin-bottom: 30px; .busInfo .bo_bus {
} width: 100%;
.busInfo .bo_bus th { background: #eee;
background: #edeef0; min-width: 1125px;
height: 40px; margin-bottom: 30px;
} }
.busInfo .bo_bus tr {
height: 40px; .busInfo .bo_bus th {
} background: #edeef0;
.busInfo .bo_bus td { height: 40px;
height: 50px; }
text-align: center;
background-color: #fff; .busInfo .bo_bus tr {
padding:0 10px; height: 40px;
} }
.busInfo .bus_uu em {
font-style: normal; .busInfo .bo_bus td {
display: inline-block; height: 50px;
width: 60px; text-align: center;
} background-color: #fff;
.busInfo .areaInfo li { padding: 0 10px;
width: auto; }
margin-bottom: 30px;
} .busInfo .bus_uu em {
.busInfo .subName { font-style: normal;
padding: 5px 10px; display: inline-block;
border: 1px solid #d1d1d1; width: 60px;
border-radius: 14px; }
cursor: pointer;
} .busInfo .areaInfo li {
.busInfo .spanCked { width: auto;
border-color: #ff4400; margin-bottom: 30px;
color: #ff4400; }
}
.busInfo .carPlanOne span { .busInfo .subName {
float: left; padding: 5px 10px;
margin-right: 3px; border: 1px solid #d1d1d1;
} border-radius: 14px;
.busInfo .otherSpan > span:first-child { cursor: pointer;
margin-left: 50px; }
}
.busInfo .carPlanOne .el-input .el-input__inner, .busInfo .spanCked {
.el-select .el-input { border-color: #ff4400;
height: 28px; color: #ff4400;
} }
.busInfo .upBtnList {
margin: 20px 0 30px 20px; /* .busInfo .carPlanOne span {
} display: inline-block;
.carInfo .el-input__inner { margin-right: 3px;
height: 34px !important; margin:5px 4px 5px 0;
} } */
.disSpan { .BusinfoSpan{
background-color: #e4e7ed; display: inline-block;
color: #c0c4cc; margin-right: 3px;
} margin:5px 4px 5px 0;
.busInfoP{ }
display:inline-block; .busInfo .carPlanOne .el-input .el-input__inner,
} .el-select .el-input {
.busInfoP :hover { height: 28px;
text-decoration: underline; }
cursor: pointer;
} .busInfo .upBtnList {
.BusTyleFirst .w150{ margin: 20px 0 30px 20px;
margin-right:22px; }
}
.carInfo .el-input__inner {
height: 34px !important;
}
.disSpan {
background-color: #e4e7ed;
color: #c0c4cc;
}
.busInfoP {
display: inline-block;
}
.busInfoP :hover {
text-decoration: underline;
cursor: pointer;
}
.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> </style>
<template> <template>
<div class="flexOne busInfo"> <div class="flexOne busInfo">
<div class="bus_Notice">注:此处不和任何团队行程做绑定,如需下载车配表,请在车辆绑定团队以后再行下载</div> <div class="bus_Notice">注:此处不和任何团队行程做绑定,如需下载车配表,请在车辆绑定团队以后再行下载</div>
<table class="singeRowTable"> <table class="singeRowTable">
<tr> <tr>
<td colspan="6">{{title}}</td> <td colspan="6">{{title}}</td>
</tr> </tr>
<tr> <tr>
<th>进出点</th> <th>进出点</th>
<th>订单人数</th> <th>订单人数</th>
<th>机位总数</th> <th>机位总数</th>
<th>领队</th> <th>领队</th>
<th>导游</th> <th>导游</th>
<th>团号</th> <th>团号</th>
</tr> </tr>
<tr> <tr>
<td>{{InOut}}</td> <td>{{InOut}}</td>
<td>{{RealityNum}}</td> <td>{{RealityNum}}</td>
<td>{{totalFlySeat}}</td> <td>{{totalFlySeat}}</td>
<td>{{LeaderName}}</td> <td>{{LeaderName}}</td>
<td>{{GuideName}}</td> <td>{{GuideName}}</td>
<td><p class="busInfoP" @click="goUrlT('TravelControlList',TCNUMS,'团控列表')">{{TCNUMS}}</p></td> <td>
</tr> <p class="busInfoP" @click="goUrlT('TravelControlList',TCNUMS,'团控列表')">{{TCNUMS}}</p>
</td>
</tr>
</table> </table>
<div style="width: 100%; overflow-x: auto;margin-top:20px;" class="ownScrollbarStyle"> <div style="width: 100%; overflow-x: auto;margin-top:20px;" class="ownScrollbarStyle">
<el-form :model="PostData" :rules="rules" ref="PostData"> <el-form :model="PostData" :rules="rules" ref="PostData">
<table class="bo_bus" cellspacing="1"> <table class="bo_bus" cellspacing="1">
<tr> <tr>
<th width="150">日期</th> <th width="100">日期</th>
<th width="300">酒店名称</th> <th width="280">酒店名称</th>
<th width="120">停车场</th> <th width="50">停车场</th>
<th width="280">用车计划</th> <th width="400">用车计划</th>
<th width="200">订团号</th> <th width="200">订团号</th>
<th width="120">司机姓名</th> <th width="100">司机姓名</th>
<th width="120">联系电话</th> <th width="100">联系电话</th>
<th width="250">司机住宿</th> <th width="250">司机住宿</th>
<th width="120">车辆类型</th> <th>泊车说明</th>
<th width="120">使用人数</th> <th width="120">车辆类型</th>
<th width="120">车牌号码</th> <th width="120">使用人数</th>
<th width="120">供应商</th> <th width="120">车牌号码</th>
<th>泊车说明</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> <th width="120">小计</th>
<tr v-for="(item,index) in PlanTableData"> </tr>
<td> <tr v-for="(item,index) in PlanTableData">
<div class="w100"> <td>
{{item.PlanDateStr}} <div class="w100">
</div> {{item.PlanDateStr}}
</td> </div>
<td> </td>
<div class="w280"> <td>
{{item.HotelName}} <div class="w280">
</div> {{item.HotelName}}
</td> </div>
<td> </td>
<div class="w50"> <td>
{{item.IsHavearking=='0'?'无':'有'}} <div class="w50">
</div> {{item.IsHavearking=='0'?'无':'有'}}
</td> </div>
<td class="carPlanOne" :class="{'otherSpan':index!=0&&index!=PlanTableData.length-1}"> </td>
<div class="w320"> <td class="carPlanOne" :class="{'otherSpan':index!=0&&index!=PlanTableData.length-1}">
<!--接机送机--> <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> <el-select class="w150" placeholder="请选择" v-model="subItem.AirportPickUp" :disabled="forbidInput">
</em> <el-option :key="0" :value="0" label="请选择"></el-option>
<em v-if='index!=0&&index!=PlanTableData.length-1'> <el-option v-for="childitem in BusAirportPickUpList" :key="childitem.Id" :label="childitem.Name"
<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> :value="childitem.Id">
<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>
</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>
<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>
</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>
</td>
<td>
<el-input class="w135" 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 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="w180" :class="{'BusTyleFirst':index==0}">
<el-select clearable class="w150" filterable placeholder="请选择" v-model="item.BusType" :disabled="forbidInput" @change='getBusPrice(item)'>
<el-option v-for="item in BusTypeList" :key="item.Id" :label="item.newName" :value="item.Id">
</el-option> </el-option>
</el-select> </el-select>
<el-tooltip class="item" effect="dark" content="同上" placement="top"> </em>
<i class="iconfont icon-tongshang" style="cursor:pointer;" v-if="index!=0" @click="getBeforeInfo(index)"></i> <!--用车类型-->
</el-tooltip> <span v-for="childItem in UseTypeArray" class="BusinfoSpan">
</div> <span v-if="childItem.Id==1" class="subName"
</td> :class="{'spanCked':subItem.UseType==childItem.Id,'disSpan':forbidInput==true}"
<td> @click="UseTypeClick(childItem.Id,index,subIndex);getBusPrice(subItem)">{{childItem.Name}}</span>
<div class="w80"> </span>
<el-input class="w50" v-model="item.UseNum" @keyup.native="checkPrice(item,'UseNum')"></el-input> <span style="width:30px;display:inline-block;" >
</div> <a v-if="subIndex>0" @click="DeleteSubItem(item,subIndex)" style="color:blue;cursor:pointer">删除</a>
</td> </span>
<td> <span style="display:inline-block;width:30px;margin-left:5px;">
<div class="w150"> <span class="busAddbtn" v-if="subIndex==item.DetailList.length-1" @click="AddSubItem(item)" style="margin-bottom:10px;">
<el-input class="w135" v-model="item.BusNum"></el-input> <i class="iconfont icon-img_haha"></i>
</div> </span>
</td> </span>
<td> </div>
<div class="w200"> </td>
<el-select class="w150" filterable placeholder="请选择" v-model="item.BusCompany"> <td>
<el-option v-for="item in SupplierList" :key="item.ID" :label="item.Name" :value="item.ID"></el-option> <el-input class='w170' type="text" v-model="item.BookGroup"></el-input>
</el-select> </td>
</div> <td>
</td> <el-input class="w100" v-model="item.DriverName"></el-input>
<td> </td>
<div class="w150"> <td>
<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 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> <el-input class="w135" v-model="item.ParkExplain" placeholder="请输入说明"></el-input>
</div> </div>
</td> </td>
<td> <td>
<div class="w100"> <div class="w180" :class="{'BusTyleFirst':index==0}">
<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>
</el-tooltip>
</div>
</td>
<td>
<div class="w80">
<el-input class="w50" v-model="item.UseNum" @keyup.native="checkPrice(item,'UseNum')"></el-input>
</div>
</td>
<td>
<div class="w150">
<el-input class="w135" v-model="item.BusNum"></el-input>
</div>
</td>
<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-select>
</div>
</td>
<td>
<div class="w100">
<el-input class="w80" v-model="item.CostPrice" @keyup.native="checkPrice(item,'CostPrice')" <el-input class="w80" v-model="item.CostPrice" @keyup.native="checkPrice(item,'CostPrice')"
placeholder="请输入成本价"></el-input> placeholder="请输入成本价"></el-input>
</div> </div>
</td> </td>
<td>
<div class="w80"> <td>
<el-input class='w50' type="text" v-model="item.TransferNum" @keyup.native="checkInteger(item,'TransferNum')"></el-input> <div class="w120">
</div> <el-select class='w100 sel' v-model='item.PayType' :placeholder="$t('pub.pleaseSel')">
</td> <el-option label='请选择' :value='0'></el-option>
<td> <el-option label='现付' :value='1'></el-option>
<div class="w80"> <el-option label='公司结算' :value='2'></el-option>
{{item.CostPrice*(Number(item.TransferNum)+1)}} <el-option label='预付' :value='3'></el-option>
</div> </el-select>
</td> </div>
</tr> </td>
<td>
<div class="w80">
<el-input class='w80' type="text" v-model="item.Remarks"></el-input>
</div>
</td>
<td>
<div class="w80">
{{item.CostPrice*(Number(item.TransferNum)+1)}}
</div>
</td>
</tr>
</table> </table>
<div class="upBtnList"> <div class="upBtnList">
<input type="button" class="normalBtn" @click="SaveList(0)" :disabled="disButton" value="保存草稿" /> <input type="button" class="normalBtn" @click="SaveList(0)" :disabled="disButton" value="保存草稿" />
<input type="button" class="normalBtn" @click="SaveList(1)" :disabled="disButton" value="保存" /> <input type="button" class="normalBtn" @click="SaveList(1)" :disabled="disButton" value="保存" />
</div> </div>
</el-form> </el-form>
...@@ -253,510 +315,486 @@ ...@@ -253,510 +315,486 @@
</div> </div>
</template> </template>
<script> <script>
export default { export default {
data() { data() {
return { return {
defaultSelectValue:0, defaultSelectValue: 0,
//车辆类型列表 //车辆类型列表
BusTypeList: [], BusTypeList: [],
/*供应商列表*/ /*供应商列表*/
SupplierList: [], SupplierList: [],
//地址参数 //地址参数
BusId: 0, BusId: 0,
//地址参数 //地址参数
parametersData: { parametersData: {
TCID: 0, TCID: 0,
StartDate: "", StartDate: "",
DayNum: 0, DayNum: 0,
TotalNumber: 0 TotalNumber: 0
}, },
/*表单json*/ /*表单json*/
PostData: { PostData: {
Id: 0, Id: 0,
BusCode: "", BusCode: "",
DriverName: "", DriverName: "",
DriverTel: "", DriverTel: "",
BusType: "", BusType: "",
CarrierNum: "", CarrierNum: "",
BusNum: "", BusNum: "",
StartDate: "", StartDate: "",
UseDays: "", UseDays: "",
SupplierId: "", SupplierId: "",
CostPrice: "", CostPrice: "",
SalesPrice: "", SalesPrice: "",
Country: 0, Country: 0,
Province: 0, Province: 0,
City: 0, City: 0,
District: 0, District: 0,
PlanList: [], PlanList: [],
TCID: 0 TCID: 0
}, },
//禁用文本框 //禁用文本框
diabledValue: true, diabledValue: true,
/*计划表数据*/ /*计划表数据*/
forbidInput: false, forbidInput: false,
PlanTableData: [], PlanTableData: [],
UseTypeArray: [], //用车类型 UseTypeArray: [], //用车类型
//接送机类型 BusAirportPickUpList: [], //用车类型
AirPickUp: "", //禁止重复提交禁用按钮
AirSend: "", disButton: false,
//禁止重复提交禁用按钮 //司机住宿类型
disButton: false, AccommodationTypeArray: [],
//司机住宿类型 rules: {
AccommodationTypeArray: [], //表单必填验证
rules: { BusCode: [{
//表单必填验证
BusCode: [
{
required: true, required: true,
message: "请填写车配号", message: "请填写车配号",
trigger: "change" trigger: "change"
} }],
], DriverName: [{
DriverName: [
{
required: true, required: true,
message: "请填写司机姓名", message: "请填写司机姓名",
trigger: "change" trigger: "change"
} }],
], DriverTel: [{
DriverTel: [
{
required: true, required: true,
message: "请填写联系电话", message: "请填写联系电话",
trigger: "change" trigger: "change"
} }],
], BusType: [{
BusType: [
{
required: true, required: true,
message: "请选择车辆类型", message: "请选择车辆类型",
trigger: "change" trigger: "change"
} }],
], CarrierNum: [{
CarrierNum: [ required: true,
{ message: "请填写核载人数",
required: true, trigger: "change"
message: "请填写核载人数", },
trigger: "change" {
}, pattern: this.$commonUtils.Regex.el_isInteger,
{ message: "请输入正确的数字"
pattern: this.$commonUtils.Regex.el_isInteger, }
message: "请输入正确的数字" ],
} BusNum: [{
],
BusNum: [
{
required: true, required: true,
message: "请填写车牌号码", message: "请填写车牌号码",
trigger: "change" trigger: "change"
} }],
], StartDate: [{
StartDate: [
{
required: true, required: true,
message: "请选择开始时间", message: "请选择开始时间",
trigger: "change" trigger: "change"
} }],
], UseDays: [{
UseDays: [ required: true,
{ message: "请填写使用天数",
required: true, trigger: "change"
message: "请填写使用天数", },
trigger: "change" {
}, pattern: this.$commonUtils.Regex.el_isInteger,
{ message: "请输入正确的数字"
pattern: this.$commonUtils.Regex.el_isInteger, }
message: "请输入正确的数字" ],
} SupplierId: [{
],
SupplierId: [
{
required: true, required: true,
message: "请选择供应商", message: "请选择供应商",
trigger: "change" trigger: "change"
}],
CostPrice: [{
pattern: this.$commonUtils.Regex.el_Isdecimal,
message: "请输入正确的价格"
},
{
required: true,
message: "请填写成本价",
trigger: "change"
}
],
SalesPrice: [{
pattern: this.$commonUtils.Regex.el_Isdecimal,
message: "请输入正确的价格"
},
{
required: true,
message: "请填写内部价",
trigger: "change"
}
]
},
//团名
title: '',
//团号
TCNUMS: '',
//进出点
InOut: '',
//订单人数
RealityNum: '',
//机位总数
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) {
case 1:
money = checkObj.AllDayPrice
break;
case 2:
money = checkObj.HalfDayPrice
break;
case 3:
money = checkObj.HourPrice * obj.UseTime
break;
default:
money = 0
break;
}
} else if (obj.AirportPickUp == 1) {
switch (obj.UseType) {
case 1:
money = checkObj.AllDayPrice + checkObj.ReceivePrice
break;
case 2:
money = checkObj.HalfDayPrice + checkObj.ReceivePrice
break;
case 3:
money = checkObj.HourPrice * obj.UseTime + checkObj.ReceivePrice
break;
default:
money = checkObj.ReceivePrice
break;
}
} else {
switch (obj.UseType) {
case 1:
money = checkObj.AllDayPrice + checkObj.SendPrice
break;
case 2:
money = checkObj.HalfDayPrice + checkObj.SendPrice
break;
case 3:
money = checkObj.HourPrice * obj.UseTime + checkObj.SendPrice
break;
default:
money = checkObj.SendPrice
break;
}
}
} }
], obj.CostPrice = money
CostPrice: [ }
{ },
pattern: this.$commonUtils.Regex.el_Isdecimal, AddSubItem(item) {
message: "请输入正确的价格" item.DetailList.push({
DetailId: 0,
UseType: 0,
BusPlanId: 0,
AirportPickUp: 0
});
},
DeleteSubItem(item,index)
{
item.DetailList.splice(index,1);
},
/*获取车辆类型列表*/
getBusTypeList() {
this.apipost(
"bus_get_GetBusTypePriceList",
null,
res => {
if (res.data.resultCode == 1) {
this.BusTypeList = res.data.data;
this.BusTypeList.forEach(item => {
item['newName'] = item.AreaTypeStr + '-' + item.BusTypeStr
})
}
}, },
{ null
required: true, );
message: "请填写成本价", },
trigger: "change" /*获取供应商列表*/
} getSupplierList() {
], this.apipost(
SalesPrice: [ "supplier_post_GetAllList", {
{ Type: 5
pattern: this.$commonUtils.Regex.el_Isdecimal,
message: "请输入正确的价格"
}, },
{ response => {
required: true, if (response.data.resultCode == 1) {
message: "请填写内部价", this.SupplierList = response.data.data;
trigger: "change" }
} },
] null
);
}, },
//团名 /*生成表格数据*/
title:'', createTableData() {
//团号 this.apipost(
TCNUMS:'', "bus_get_GetTravelBusDetailsTCIDs", {
//进出点 TCIDs: this.parametersData.TCID
InOut:'', },
//订单人数 response => {
RealityNum:'', if (response.data.resultCode == 1) {
//机位总数 this.PlanTableData = response.data.data;
totalFlySeat:'', this.PlanTableData.forEach(x => {
LeaderName:'', if (x.BookGroup == '' || x.BookGroup == null) {
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){
case 1:
money=checkObj.AllDayPrice
break;
case 2:
money=checkObj.HalfDayPrice
break;
case 3:
money=checkObj.HourPrice*obj.UseTime
break;
default:
money=0
break;
}
}else if(obj.AirportPickUp==1){
switch (obj.UseType){
case 1:
money=checkObj.AllDayPrice+checkObj.ReceivePrice
break;
case 2:
money=checkObj.HalfDayPrice+checkObj.ReceivePrice
break;
case 3:
money=checkObj.HourPrice*obj.UseTime+checkObj.ReceivePrice
break;
default:
money=checkObj.ReceivePrice
break;
}
}else{
switch (obj.UseType){
case 1:
money=checkObj.AllDayPrice+checkObj.SendPrice
break;
case 2:
money=checkObj.HalfDayPrice+checkObj.SendPrice
break;
case 3:
money=checkObj.HourPrice*obj.UseTime+checkObj.SendPrice
break;
default:
money=checkObj.SendPrice
break;
}
}
}
obj.CostPrice=money
}
},
/*获取车辆类型列表*/
getBusTypeList() {
this.apipost(
"bus_get_GetBusTypePriceList",
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
})
}
},
null
);
},
/*获取供应商列表*/
getSupplierList() {
this.apipost(
"supplier_post_GetAllList",
{
Type: 5
},
response => {
if (response.data.resultCode == 1) {
this.SupplierList = response.data.data;
}
},
null
);
},
/*生成表格数据*/
createTableData() {
this.apipost(
"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){
x.BookGroup = this.$route.query.NewCombinationNum; x.BookGroup = this.$route.query.NewCombinationNum;
} }
}) })
console.log(this.PlanTableData,'plandata'); }
} },
}, null
null );
); },
},
/*保存车辆基本信息*/ /*保存车辆基本信息*/
SaveData() { SaveData() {
this.PostData.PlanList = this.PlanTableData; this.PostData.PlanList = this.PlanTableData;
this.PostData.CarrierNum = parseInt(this.PostData.CarrierNum); this.PostData.CarrierNum = parseInt(this.PostData.CarrierNum);
this.PostData.UseDays = parseInt(this.PostData.UseDays); this.PostData.UseDays = parseInt(this.PostData.UseDays);
this.disButton = true; this.disButton = true;
this.PostData.PlanList.forEach(x => { this.PostData.PlanList.forEach(x => {
if (x.CostPrice == "") { if (x.CostPrice == "") {
x.CostPrice = 0; x.CostPrice = 0;
}
});
if (this.PostData.PlanList.length > 0) {
this.PostData.PlanList.forEach((x, index) => {
x.AirportPickUp = 0;
if (index == 0) {
x.AirportPickUp = 1;
} else if (index == this.PostData.PlanList.length - 1) {
x.AirportPickUp = 2;
} }
}); });
} if (this.PostData.PlanList.length > 0) {
this.apipost( this.PostData.PlanList.forEach((x, index) => {
"bus_post_Set", x.AirportPickUp = 0;
this.PostData, if (index == 0) {
res => { x.AirportPickUp = 1;
this.disButton = false; } else if (index == this.PostData.PlanList.length - 1) {
x.AirportPickUp = 2;
}
});
}
this.apipost(
"bus_post_Set",
this.PostData,
res => {
this.disButton = false;
if (res.data.resultCode == 1) {
this.Success("保存成功!");
this.goUrl("busManage");
} else {
this.Error(res.data.message);
}
},
null
);
},
SaveList(type) {
this.PlanTableData.forEach(item => {
item.OrderState = type
})
this.apipost('bus_get_SetPlan', this.PlanTableData, res => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.Success("保存成功!"); this.Success("保存成功!");
this.goUrl("busManage");
} else {
this.Error(res.data.message);
}
},
null
);
},
SaveList(type){
this.PlanTableData.forEach(item=>{
item.OrderState=type
})
this.apipost('bus_get_SetPlan',this.PlanTableData,res=>{
if (res.data.resultCode == 1) {
this.Success("保存成功!");
this.MsgBus.$emit('msg') this.MsgBus.$emit('msg')
this.getData();
} else { } else {
this.Error(res.data.message); this.Error(res.data.message);
} }
},err=>{}) }, err => {})
}, },
//用车类型点击事件 //用车类型点击事件
UseTypeClick(value, index) { UseTypeClick(value, index,subIndex) {
if (this.forbidInput == true) { if (this.forbidInput == true) {
return; return;
}
if (
this.PlanTableData[index].UseType == "0" ||
this.PlanTableData[index].UseType != value
) {
this.PlanTableData[index].UseType = value;
} else if (this.PlanTableData[index].UseType == value) {
this.PlanTableData[index].UseType = "0";
}
},
//司机住宿点击事件
AccommodationCLick(value, index) {
if (
this.PlanTableData[index].AccommodationType == "0" ||
this.PlanTableData[index].AccommodationType != value
) {
this.PlanTableData[index].AccommodationType = value;
} else {
this.PlanTableData[index].AccommodationType = "0";
}
},
/*获取用车类型列表*/
GetUseTypeList() {
this.apipost(
"bus_get_GetUseTypeList",
null,
response => {
if (response.data.resultCode == 1) {
this.UseTypeArray = response.data.data;
}
},
null
);
},
/*获取接送机类型列表*/
GetAirportPickUpList() {
this.apipost(
"bus_get_GetAirportPickUpList",
null,
response => {
if (response.data.resultCode == 1) {
this.AirPickUp = response.data.data[0].Name;
this.AirSend = response.data.data[1].Name;
}
},
null
);
},
/*获取司机住宿类型列表*/
GeAccommodationTypeList() {
this.apipost(
"bus_get_GeAccommodationTypeList",
null,
response => {
if (response.data.resultCode == 1) {
this.AccommodationTypeArray = response.data.data;
}
},
null
);
},
getData() {
this.apipost(
"bus_get_Get",
{
ID: this.BusId
},
response => {
if (response.data.resultCode == 1) {
this.PostData = response.data.data;
if (this.PostData.PlanList.length > 0) {
this.PostData.PlanList.forEach((x, index) => {
if (index == this.PostData.PlanList.length - 1) {
x.AirportPickUp = 1;
}
});
}
this.PlanTableData = this.PostData.PlanList;
}
},
null
);
},
goUrl(path) {
this.$router.push({
path: path
});
},
goUrlT(path, TCNUMS, title) {
this.$router.push({
name: path,
query: {
tcmun:TCNUMS,
blank: 'y',
tab: title
} }
}) if (
}, this.PlanTableData[index].DetailList[subIndex].UseType == "0" ||
submitForm(addMsg) { this.PlanTableData[index].DetailList[subIndex].UseType != value
//提交创建、修改表单 ) {
let that = this; this.PlanTableData[index].DetailList[subIndex].UseType = value;
that.$refs[addMsg].validate(valid => { } else if (this.PlanTableData[index].DetailList[subIndex].UseType == value) {
if (valid) { this.PlanTableData[index].DetailList[subIndex].UseType = "0";
that.SaveData(addMsg); }
},
//司机住宿点击事件
AccommodationCLick(value, index) {
if (
this.PlanTableData[index].AccommodationType == "0" ||
this.PlanTableData[index].AccommodationType != value
) {
this.PlanTableData[index].AccommodationType = value;
} else { } else {
return false; this.PlanTableData[index].AccommodationType = "0";
} }
}); },
}, /*获取用车类型列表*/
resetForm(formName) { GetUseTypeList() {
//弹出框取消 初始化谈框内表单 this.apipost(
this.$refs[formName].resetFields(); "bus_get_GetUseTypeList",
}, null,
//计算总成本 response => {
CalculatePrice() { if (response.data.resultCode == 1) {
var CoastPrice = this.$commonUtils.CaluJsonArraySum( this.UseTypeArray = response.data.data;
this.PlanTableData, }
"CostPrice", },
2 null
); );
this.PostData.CostPrice = CoastPrice; },
/*获取接送机类型列表*/
GetAirportPickUpList() {
this.apipost(
"bus_get_GetAirportPickUpList",
null,
response => {
if (response.data.resultCode == 1) {
this.BusAirportPickUpList = response.data.data;
}
},
null
);
},
/*获取司机住宿类型列表*/
GeAccommodationTypeList() {
this.apipost(
"bus_get_GeAccommodationTypeList",
null,
response => {
if (response.data.resultCode == 1) {
this.AccommodationTypeArray = response.data.data;
}
},
null
);
},
getData() {
this.apipost(
"bus_get_Get", {
ID: this.BusId
},
response => {
if (response.data.resultCode == 1) {
this.PostData = response.data.data;
if (this.PostData.PlanList.length > 0) {
this.PostData.PlanList.forEach((x, index) => {
if (index == this.PostData.PlanList.length - 1) {
x.AirportPickUp = 1;
}
});
}
this.PlanTableData = this.PostData.PlanList;
}
},
null
);
},
goUrl(path) {
this.$router.push({
path: path
});
},
goUrlT(path, TCNUMS, title) {
this.$router.push({
name: path,
query: {
tcmun: TCNUMS,
blank: 'y',
tab: title
}
})
},
submitForm(addMsg) {
//提交创建、修改表单
let that = this;
that.$refs[addMsg].validate(valid => {
if (valid) {
that.SaveData(addMsg);
} else {
return false;
}
});
},
resetForm(formName) {
//弹出框取消 初始化谈框内表单
this.$refs[formName].resetFields();
},
//计算总成本
CalculatePrice() {
var CoastPrice = this.$commonUtils.CaluJsonArraySum(
this.PlanTableData,
"CostPrice",
2
);
this.PostData.CostPrice = CoastPrice;
},
//获取同上信息
getBeforeInfo(index) {
let oldPlanData = this.PlanTableData[index - 1];
let newPlanData = this.PlanTableData[index];
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;
}
}, },
//获取同上信息 mounted() {
getBeforeInfo(index){ this.GetUseTypeList();
let oldPlanData = this.PlanTableData[index-1]; this.GetAirportPickUpList();
let newPlanData = this.PlanTableData[index]; this.GeAccommodationTypeList();
// newPlanData.PlanDateStr = oldPlanData.PlanDateStr; this.BusId = this.$route.query.id;
// newPlanData.HotelName = oldPlanData.HotelName; this.title = this.$route.query.title;
// newPlanData.IsHavearking = oldPlanData.IsHavearking; this.TCNUMS = this.$route.query.TCNUMS,
// newPlanData.AirportPickUp = oldPlanData.AirportPickUp; this.InOut = this.$route.query.InOut,
// newPlanData.UseType = oldPlanData.UseType; this.RealityNum = this.$route.query.RealityNum,
// newPlanData.UseTime = oldPlanData.UseTime; this.totalFlySeat = this.$route.query.TotalNumber + '/' + this.$route.query.RealityYSeatNum + '/' +
newPlanData.BookGroup = oldPlanData.BookGroup; this.$route.query.RealityESeatNum + '/' + this.$route.query.RealityFSeatNum
newPlanData.DriverName = oldPlanData.DriverName; this.LeaderName = this.$route.query.LeaderName,
newPlanData.DriverTel = oldPlanData.DriverTel; this.GuideName = this.$route.query.GuideName
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;
}
},
mounted() {
this.GetUseTypeList();
this.GetAirportPickUpList();
this.GeAccommodationTypeList();
this.BusId = this.$route.query.id;
this.title = this.$route.query.title;
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.LeaderName = this.$route.query.LeaderName,
this.GuideName = this.$route.query.GuideName
if (this.BusId > 0) { if (this.BusId > 0) {
this.getData(); this.getData();
// this.forbidInput = true; }
} this.parametersData.TCID = this.$route.query.TCID;
this.parametersData.TCID = this.$route.query.TCID; this.parametersData.StartDate = this.$route.query.StartDate;
this.parametersData.StartDate = this.$route.query.StartDate; this.parametersData.DayNum = this.$route.query.DayNum;
this.parametersData.DayNum = this.$route.query.DayNum; this.parametersData.TotalNumber = this.$route.query.TotalNumber;
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.TCID = this.parametersData.TCID;
this.PostData.CarrierNum = this.parametersData.TotalNumber; this.PostData.CarrierNum = this.parametersData.TotalNumber;
this.createTableData(); this.createTableData();
// } this.getBusTypeList();
this.getBusTypeList(); this.getSupplierList();
this.getSupplierList(); }
} };
}; </script>
</script> \ No newline at end of file
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
</div></td> </div></td>
<td :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'> <td :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<div class="w100 link"> <div class="w100 link">
<span @click="goUrlX('BusInfo',outItem,'车配信息')">详情</span> <span @click="goUrlX('BusInfo',item,outItem,'车配信息')">详情</span>
<span @click="DownLoadFile(item,outItem.NewCombinationNum)">下载</span> <span @click="DownLoadFile(item,outItem.NewCombinationNum)">下载</span>
</div> </div>
</td> </td>
...@@ -291,14 +291,28 @@ totalPrice+=busInfo.CostPrice*(Number(busInfo.TransferNum)+1)*PeopleNum; ...@@ -291,14 +291,28 @@ totalPrice+=busInfo.CostPrice*(Number(busInfo.TransferNum)+1)*PeopleNum;
} }
); );
}, },
goUrlX(path,obj,title){ goUrlX(path, obj,outItem,title){
console.log(obj); this.$router.push({
// name: path,
let TotalSeat=0; query: {
obj.StaticsReportList.forEach(outItem=>{ "TCID": obj.TCIDS,
TotalSeat+=outItem.CommonReport.HouseStatistics.RealityNum; StartDate: obj.StartDateStr,
}); DayNum: obj.DayNum,
this.$router.push({ name:path,query:{"TCID":obj.TCIDs,TotalNumber:TotalSeat,blank:'y',tab:title}}) 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){ goUrlR(path,obj,title){
this.$router.push({ name:path,query:{"ID":obj,blank:'y',tab: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