Commit 04c2e1ad authored by 吴春's avatar 吴春
parents a686c23b 8d98cdb5
......@@ -173,7 +173,7 @@ export default {
}
</script>
<style>
@import "//at.alicdn.com/t/font_635492_rcf1gwtw66.css";
@import "//at.alicdn.com/t/font_635492_rwoxda6u56n.css";
@import "./assets/css/Semibold.css";
@import "./assets/css/global/config.css";
@import "./assets/css/fileIcon.css";
......
......@@ -602,7 +602,9 @@
position:absolute;
height:40px;
top:42%;
left:42%;
left:50%;
transform: translate3d(-50%,-50%,0);
width: 180px;
display:none;
text-align:center;
z-index:3
......@@ -611,7 +613,6 @@
display: inline-block;
width: 40px;
height: 40px;
/* display:none; */
border-radius: 50%;
line-height: 40px;
color: #fff;
......
......@@ -350,8 +350,9 @@ var tripUtils = {
IntroduceTitle: "", //行程介绍标题
IntroduceImage: ViittoFileUrl+"/Upload/DefalutImage/DMC/defaultairline.png", //行程介绍图片
IntroduceDetail: "", //行程介绍详细信息
TrafficType:0,//交通类型
TrafficContent:""//交通详情
TrafficType:2,//交通类型,默认为专车
TrafficContent:"",//交通详情
TrafficImage:"",//交通图片
}
};
},
......@@ -399,8 +400,9 @@ var tripUtils = {
x:0,//初始位移x
y:0 //初始位移y
},
TrafficType:0,//交通类型(1-飞机,2-专车,3-地铁,4-步行)
TrafficType:2,//交通类型(1-飞机,2-专车,3-地铁,4-步行)
TrafficContent:"",//交通内容
TrafficImage:"",//交通图片
};
},
//行程-酒店对象
......
......@@ -258,7 +258,9 @@
</template>
</td>
<td height="34px">{{item.FinanceId}}</td>
<td height="34px">{{item.CostTypeName}}</td>
<td height="34px">
<el-input size="small" style="width:auto;display:inline-block;width:120px" v-model="item.CostTypeName" placeholder="请输入"></el-input>
</td>
<!--<td height="34px">{{item.Number}}</td>-->
<!--<td height="34px">{{item.UnitPrice}}</td>-->
<td height="34px">
......
......@@ -11,7 +11,7 @@
<span>
<em>{{$t('system.table_ssLine')}}</em>
<el-select class='w150' v-model="queryMsg.LineId" filterable :placeholder="$t('pub.pleaseSel')"
@change="getLineTeamList()">
@change="getLinePlaceList()">
<el-option :label="$t('pub.unlimitedSel')" :value='queryCommonData.SelectDefaultValue'></el-option>
<el-option v-for="item in queryCommonData.LineList" :label='item.LineName' :value='item.LineID'
:key='item.LineID'>
......@@ -19,6 +19,15 @@
</el-select>
</span>
</li>
<li>
<span>
<em>{{$t('Operation.Op_Country')}}/{{$t('system.query_dest')}}</em>
<el-select class="w150" v-model="queryMsg.PlaceID" filterable :placeholder="$t('pub.pleaseSel')" @change="getLineTeamList()">
<el-option :label="$t('pub.unlimitedSel')" :value="queryCommonData.SelectDefaultValue"></el-option>
<el-option v-for="item in queryCommonData.PlaceList" :label="item.PlaceName" :value="item.PlaceID" :key="item.LtID"></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>{{$t('active.ad_xlmc')}}</em>
......@@ -149,6 +158,8 @@
queryCommonData: {
//线路列表
LineList: [],
//目的地
PlaceList: [],
//系列列表
LineTeamList: [],
//下拉框默认值
......@@ -166,6 +177,7 @@
pageSize: 10,
LineId: 0,
LineteamId: 0,
PlaceID:0,
CreateBy: 0,
TeamType: 0,
TCNUMS: "",
......@@ -239,29 +251,50 @@
);
});
},
//获取线路列表
getLineList() {
this.apipost("line_post_GetList", {
"LineDirection": 2
}, res => {
if (res.data.resultCode == 1) {
this.queryCommonData.LineList = res.data.data;
}
});
},
//获取系列列表
getLineTeamList() {
this.queryMsg.LineteamId = 0;
let msg = {
lineID: this.queryMsg.LineId,
isTOOP: 1
};
this.apipost("team_post_GetList", msg, res => {
if (res.data.resultCode == 1) {
this.queryCommonData.LineTeamList = res.data.data;
}
});
},
//获取线路列表
getLineList() {
this.apipost(
"line_post_GetList",
{
LineDirection: 2
},
res => {
if (res.data.resultCode == 1) {
this.queryCommonData.LineList = res.data.data;
this.queryCommonData.PlaceList = [];
this.queryCommonData.LineTeamList = [];
}
}
);
},
//获取目的地列表
getLinePlaceList() {
this.queryMsg.PlaceID = 0;
this.queryMsg.LineteamId = 0;
let msg = {
lineID: this.queryMsg.LineId
};
this.apipost("team_post_GetLinePlace", msg, res => {
if (res.data.resultCode == 1) {
this.queryCommonData.PlaceList = res.data.data;
this.queryCommonData.LineTeamList = [];
}
});
},
//获取系列列表
getLineTeamList() {
this.queryMsg.LineteamId = 0;
let msg = {
lineID: this.queryMsg.LineId,
placeID: this.queryMsg.PlaceID,
isTOOP: 1
};
this.apipost("team_post_GetList", msg, res => {
if (res.data.resultCode == 1) {
this.queryCommonData.LineTeamList = res.data.data;
}
});
},
//新获取列表数据
getControlList() {
var msg = JSON.parse(JSON.stringify(this.queryMsg));
......
......@@ -5,7 +5,7 @@
<div style="margin-top:30px;background:rgba(255,255,255,1);border-radius:10px;padding:20px;position:relative;">
<div style="padding-bottom:10px;text-align:right">
<span @click="GoZcUrl" class="backTo" style="">资产管理</span>
<span @click="GoZcUrl" style="font-size:12px;text-decoration:underline;cursor: pointer;">跳转到资产管理</span>
</div>
<el-row class="HeaderDiv" style="border-bottom:1px solid #E2E4EB;padding-bottom:20px">
<span class="underline"></span>
......@@ -53,6 +53,10 @@
<span v-if="GetDetail.BackTime!=''">{{GetDetail.BackTime}}</span>
</el-col>
<el-col v-if="GetDetail.ChangePerson && GetDetail.ChangePerson!=''" :span="12">
<span>原领用人 :</span>
<span>{{GetDetail.ChangePerson}}</span>
</el-col>
<el-col :span="12">
<span>备注 :</span>
<span>{{GetDetail.Remark}}</span>
......@@ -104,7 +108,7 @@
<div class="InfoChangeLog" >
<div class="changLog">
<p class="_log_t">流程日志</p>
<ul class="changLogList" v-if="danjuList.length>0">
<ul class="changLogList" style="height:154px" v-if="danjuList.length>0">
<li class="changLogList_l" v-for="(log,li) in danjuList">
<span style="background-color: #47BF8C" class="_radius_green"></span>
<p> <span class="_color_blue">{{log.UpdateBy}}</span> <span style="float:right" class="fr changLog_time">{{log.UpdateDate}}</span> </p>
......@@ -312,7 +316,7 @@
</div>
</div>
</template>
<div v-if="GetDetail.Is_CanAudit==1 && compType=='shenpi' && !needSign" class="_upload_box basefix" style="margin-bottom:20px;">
<div v-if="GetDetail.Is_CanAudit==1 && compType=='shenpi' && !needSign" class="_upload_box basefix" style="margin-bottom:20px;padding-left:75px">
<ul class="clearfix">
<li v-for="(img,imgIndex) in uploadImgList" :key="imgIndex">
<img :src="img" alt="">
......@@ -373,7 +377,7 @@
</div>
</div>
<el-dialog title="详情" :visible.sync="CheckDetailState" width="1150px">
<el-dialog title="详情" :visible.sync="CheckDetailState" width="1200px">
<CheckDetails ref="mychild"></CheckDetails>
</el-dialog>
<viewer :images="images" :options='imageOptions' @inited="inited" class="viewer" ref="viewer">
......@@ -473,7 +477,13 @@ export default {
methods:{
GoZcUrl(){
window.open("http://www.test.com:8080")
let url='';
if (!this.isOnline()) {
url="http://www.test.com:8080/#/Home";
}else{
url="http://zcyx.oytour.com/#/Home";
}
window.open(url)
},
inited (viewer){
this.$viewer = viewer
......@@ -501,10 +511,48 @@ export default {
this.canvasTxt.clearRect(0, 0, this.$refs.canvasF.width, this.$refs.canvasF.height)
this.points = []
},
uuid(len, radix) {
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
var uuid = [],
i;
radix = radix || chars.length;
if (len) {
// Compact form
for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
} else {
var r;
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
uuid[14] = '4';
for (i = 0; i < 36; i++) {
if (!uuid[i]) {
r = 0 | Math.random() * 16;
uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
}
}
}
return uuid.join('');
},
dataURLtoFile(dataurl, filename) {//将base64转换为文件
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, {type:mime});
},
//提交签名
commit() {
this.addMsg.SignImage =this.$refs.canvasF.toDataURL();
this.signState=false;
let that=this;
let imgUrl =this.$refs.canvasF.toDataURL();
let newArr = [];
var fileName = `${that.uuid(10,10)}.png`;
var path = `/assets/sign/`;
newArr.push(this.dataURLtoFile(imgUrl,fileName))
this.UploadSelfFileT(path, newArr, x => {
this.addMsg.SignImage=that.domainManager().ViittoFileUrl+x.data.FilePath;
}, 1);
this.signState=false;
},
mouseDown(ev) {
ev = ev || event
......@@ -635,7 +683,7 @@ export default {
},
getdanjuList(){
this.apiJavaPost("/api/property/GetAuditChangeLogPageList",this.danjuMsg,
this.apiJavaPostZc("/api/property/GetAuditChangeLogPageList",this.danjuMsg,
res => {
if (res.data.resultCode === 1) {
let data=res.data.data.pageData;
......@@ -665,9 +713,8 @@ export default {
}
this.addMsg.AuditType=num;
this.addMsg.ImageList=this.uploadImgList;
this.apiJavaPost("/api/property/AuditOrRefund",this.addMsg,
this.apiJavaPostZc("/api/property/AuditOrRefund",this.addMsg,
res => {
console.log("res",res)
if (res.data.resultCode ==1) {
this.getDetail();
......@@ -724,7 +771,7 @@ export default {
},
getDetail(){
this.pageLoad=true;
this.apiJavaPost("/api/property/GetPropertyAuditDetail",{UseReceiveId:this.addMsg.UseReceiveId},
this.apiJavaPostZc("/api/property/GetPropertyAuditDetail",{UseReceiveId:this.addMsg.UseReceiveId},
res => {
this.pageLoad=false;
......@@ -1197,7 +1244,7 @@ li{
}
.approvalDetails .HeaderDiv .underline{
display: block;
width:101px;
width:135px;
height:2px;
position: absolute;
bottom: 0;
......
......@@ -305,12 +305,15 @@ export default {
.CheckDetails .baseDiv .desItem:nth-child(3n){
margin-right:0;
}
.CheckDetails p{
margin:0;
}
.CheckDetails .desItem p:first-child{
margin-bottom: 4px;
}
.CheckDetails .desItem{
display: inline-block;
background: #fff;
background: #F1F1F1;
box-sizing: border-box;
border-radius: 10px;
width: 200px;
......@@ -332,7 +335,7 @@ export default {
padding:25px;
}
.CheckDetails .right{
width: 660px;
width: 680px;
padding:0 10px 0 15px;
box-sizing: border-box;
}
......
......@@ -601,6 +601,7 @@ export default {
ShowEmployeeList:[],
ShowDepartmentList:[],
PropertyType:'',
TemplateSorce:2,
},
AuditUserList:{
EmName:'',
......@@ -1079,7 +1080,8 @@ export default {
Id:this.addMsg.Workflow_Condition.Id,
AuditList:[],
AuditUserList:[],
}
},
TemplateSorce:2,
}
this.$message.error(res.data.message)
return
......
......@@ -17,8 +17,7 @@
<div class="trip_cover" v-show="pdfLoading" v-loading="pdfLoading"></div>
<el-row>
<el-col :span="14">
<input type="button" style="width: auto !important; display:none;" class="travelControlTripBtn" value="下载电脑版PDF_V3"
@click="toPDF_V3(orderMsg.startDate + orderMsg.lineteamName+orderMsg.dayNum+'日游')" />
<input type="button" style="width: auto !important;" class="travelControlTripBtn" value="下载电脑版PDF"
@click="toPDF_V2(orderMsg.startDate + orderMsg.lineteamName+orderMsg.dayNum+'日游')" />
<input type="button" style="width: auto !important;" class="travelControlTripBtn" value="下载手机版WORD"
......
......@@ -1958,15 +1958,19 @@ export default {
},
LogSetReadStatus(s) {
if(s.Type==7){
let path="AssetsShenpi"
let url="";
if (!this.isOnline()) {
url="http://www.test.com:8081/#/";
}else{
url="http://yx.oytour.com/#/";
}
let path=url+s.Link;
console.log("path",path)
let routeData = this.$router.resolve({
name: path,
query: {
Id:28,
compType:'shenpi'
}
name: path
})
window.open(routeData.href, '_blank')
window.open(path, '_blank')
}
else{
this.apipost(
......
......@@ -4,73 +4,134 @@
line-height: 25px;
}
;
.St_mainDiv {
width: 100%;
height: 100%;
margin: 10px;
padding: 0 20px;
border-left: 2px solid #E4E7ED;
position: relative;
}
.St_mainDiv .St_radioDiv {
position: absolute;
width: 25px;
height: 25px;
text-align: center;
line-height: 25px;
background-color: #fff;
border:1px solid #E4E7ED;
left: -33px;
top: -2px;
border-radius: 50%;
}
.St_mainDiv .St_current {
position: relative;
}
.St_mainDiv .St_current:last-child {
margin-bottom: 0 !important;
}
.St_mainDiv .St_uploadContent {
display:inline-block;
}
.St_mainDiv .St_uploadContent span{
color:#409eff;
}
</style>
<template>
<div class="TC-ScenicTraffic">
<template v-if="!ishasScenic">
<table>
<thead v-if="CurrentDayNum!=1">
<tr>
<td>
酒店出发
</td>
</tr>
</thead>
<tbody>
<tr>
<td>
{{trafficObj.trafficIntroduce.IntroduceTitle}}
</td>
</tr>
<tr>
<td>
<el-select :placeholder="$t('pub.pleaseSel')" v-model="trafficObj.trafficIntroduce.TrafficType">
<el-option v-for="item in ArrivalTypeArray" :value="item.ID" :key="item.ID" :label="item.Name">
</el-option>
</el-select>
</td>
</tr>
</tbody>
<tfoot v-if="CurrentDayNum!=totalDayNum">
<tr>
<td>回酒店</td>
</tr>
</tfoot>
</table>
</template>
<template v-else>
<table>
<thead v-if="CurrentDayNum!=1">
<tr>
<td>
酒店出发
</td>
</tr>
</thead>
<tbody v-for="(item,index) in ScenicArray">
<tr :key="index">
<td>
{{item.CouponsName}}
</td>
</tr>
<tr>
<td>
<el-select :placeholder="$t('pub.pleaseSel')" v-model="item.TrafficType">
<el-option v-for="subItem in ArrivalTypeArray" :value="subItem.ID" :key="subItem.ID" :label="subItem.Name">
</el-option>
</el-select>
</td>
</tr>
</tbody>
<tfoot v-if="CurrentDayNum!=totalDayNum">
<tr>
<td>回酒店</td>
</tr>
</tfoot>
</table>
</template>
<div class="St_mainDiv">
<div v-if="!ishasScenic">
<div v-if="CurrentDayNum!=1" class="St_current" style="margin-bottom:20px;">
<div class="St_radioDiv Str1">
<i class="iconfont icon-hotel"></i>
</div>
酒店出发
</div>
<div class="St_current" style="margin-bottom:20px" v-else-if="CurrentDayNum==1">
<!--{{trafficObj.trafficIntroduce.IntroduceTitle}}-->
<template
v-if="trafficObj.trafficIntroduce.IntroduceTitle">机场</template>
<template v-else>机场</template>
<div class="St_radioDiv Str1">
<i class="iconfont icon-Shape1"></i>
</div>
</div>
<div>
<el-select :placeholder="$t('pub.pleaseSel')" class="w120" v-model="trafficObj.trafficIntroduce.TrafficType">
<el-option :value="0" :key="0" label="请选择"></el-option>
<el-option v-for="item in ArrivalTypeArray" :value="item.ID" :key="item.ID" :label="item.Name">
</el-option>
</el-select>
<el-upload v-if="trafficObj.trafficIntroduce.TrafficType==3" class="St_uploadContent"
:http-request="uploadFileBtn"
:multiple="false"
:show-file-list="false"
action
>
<span @click='getItemTraffic()'>上传</span>
</el-upload>
<el-input class="w180" v-if="trafficObj.trafficIntroduce.TrafficType==4" placeholder="距离预计用时" v-model="trafficObj.trafficIntroduce.TrafficContent"></el-input>
</div>
<div v-if="CurrentDayNum!=totalDayNum" class="St_current" style="margin:10px 0">
<div class="St_radioDiv">
<i class="iconfont icon-hotel"></i>
</div>
回酒店
</div>
<div class="St_current" style="margin:10px 0px;" v-else >
<!--{{trafficObj.trafficIntroduce.IntroduceTitle}}-->
<template
v-if="trafficObj.trafficIntroduce.IntroduceTitle">机场</template>
<template v-else>机场</template>
<div class="St_radioDiv Str1">
<i class="iconfont icon-Shape1"></i>
</div>
</div>
</div>
<div v-else>
<div v-if="CurrentDayNum!=1" class="St_current" style="margin-bottom:20px;">
<div class="St_radioDiv Str1">
<i class="iconfont icon-hotel"></i>
</div>
酒店出发
</div>
<div v-for="(item,index) in ScenicArray" :key="index">
<div style="margin:10px 0" class="St_current">
<div class="St_radioDiv">
<i class="iconfont icon-jingdian"></i>
</div>
{{item.CouponsName}}
</div>
<div>
<el-select :placeholder="$t('pub.pleaseSel')" class="w120" v-model="item.TrafficType">
<el-option :value="0" :key="0" label="请选择"></el-option>
<el-option v-for="subItem in ArrivalTypeArray" :value="subItem.ID" :key="subItem.ID"
:label="subItem.Name">
</el-option>
</el-select>
<el-upload v-if="item.TrafficType==3" class="St_uploadContent"
:http-request="uploadFileBtn"
:multiple="false"
:show-file-list="false"
action
>
<span @click='getItem(index)'>上传</span>
</el-upload>
<el-input class="w180" v-if="item.TrafficType==4" v-model="item.TrafficContent" placeholder="距离预计用时"></el-input>
</div>
</div>
<div v-if="CurrentDayNum!=totalDayNum" class="St_current" style="margin:20px 0">
<div class="St_radioDiv">
<i class="iconfont icon-hotel"></i>
</div>
回酒店
</div>
</div>
</div>
</div>
</template>
<script>
......@@ -80,8 +141,8 @@
"trafficObj", //交通信息
"ScenicArray", //景点数组
"ishasScenic", //是否有景点
"CurrentDayNum",//当前天数
"totalDayNum",//总天数
"CurrentDayNum", //当前天数
"totalDayNum", //总天数
],
data() {
return {
......@@ -94,6 +155,8 @@
font: false, //字体
narrative: true //叙述,
},
checkedIndex:'',
checkTraffic:0,
//交通类型数组
ArrivalTypeArray: [{
ID: 1,
......@@ -122,7 +185,32 @@
"my-edit": MyEdit
},
methods: {
//获取index
getItem(index) {
this.checkedIndex = index
},
getItemTraffic(){
this.checkTraffic=1;
},
//上传图片
uploadFileBtn(file) {
let that = this
let newArr = []
newArr.push(file.file)
let path = '/Upload/DMC'
this.$message.info('上传中...')
this.UploadSelfFileT(path, newArr, x => {
if(this.checkTraffic==1){
this.trafficObj.trafficIntroduce.TrafficImage = this.domainManager()
.ViittoFileUrl + x.data.FilePath;
}else{
this.ScenicArray[this.checkedIndex].TrafficImage = this.domainManager()
.ViittoFileUrl + x.data.FilePath;
}
this.$message.success(x.data.Message)
this.$forceUpdate()
})
}
},
mounted() {},
created() {},
......
......@@ -153,7 +153,8 @@ export default {
//文件站点
ViittoFileUrl: locationName.indexOf('oytour') !== -1 || locationName.indexOf('viitto') !== -1 ? "http://imgfile.oytour.com" : 'http://192.168.2.214:8130',
javaUrl: locationName.indexOf('oytour') !== -1 || locationName.indexOf('viitto') !== -1 ? (locationName.indexOf('oytour') !== -1 ? "http://efficient.oytour.com" : "http://47.96.12.235:9001") : "http://192.168.2.17:8087",
javaUrlNew: locationName.indexOf('oytour') !== -1 || locationName.indexOf('viitto') !== -1 ? (locationName.indexOf('oytour') !== -1 ? "http://property.oytour.com" : "http://47.96.12.235:9001") : "http://192.168.2.17:8087",
// javaUrl:"http://192.168.2.215:9000",
//Java接口本站文件流下载地址
JavaLocalFileStreamDownLoadUrl: javaUrldo,
......@@ -423,6 +424,66 @@ export default {
}
}, faildCall)
},
//请求资产管理接口
Vue.prototype.apiJavaPostZc = function (cmd, msg, successCall, faildCall) {
if (this.$route.name.indexOf('login') === -1 && this.$route.name.indexOf('confirmationOrderDownLoad') === -1 && this.$route.name.indexOf('PrintPage') === -1 && this.$route.name.indexOf('clientConfirm') === -1) {
let previousPathInfo = {
path: this.$route.name,
query: this.$route.query
}
localStorage.previousPathInfo = JSON.stringify(previousPathInfo);
}
if (msg == null || msg == "") {
msg = {}
}
var apiurl = this.domainManager().javaUrlNew + cmd;
var timestamp = (new Date()).valueOf();
this.apiurl = apiurl;
var token = "";
var key = "";
let userInfo = localStorage.userInfo ? JSON.parse(localStorage.userInfo) : '';
let groupId = userInfo.RB_Group_id ? userInfo.RB_Group_id : 0;
let uid = userInfo.EmployeeId ? userInfo.EmployeeId : 0;
if (this.getLocalStorage() != null) {
token = this.getLocalStorage().token;
key = this.getLocalStorage().SecretKey;
}
var encodeMsg = encodeURIComponent(JSON.stringify(msg)).toLowerCase();
var md5Str = md5(`msg=${encodeMsg}&timestamp=${timestamp}&token=${token}&key=${key}`);
var postData = {
"msg": msg,
"timestamp": timestamp,
"token": token,
"sign": md5Str,
"uid": uid,
"groupId": groupId
}
if (localStorage.g && localStorage.g != 'undefined') {
postData.groupId = parseInt(JSON.parse(localStorage.g).i)
}
this.$http.post(apiurl, postData, {
headers: {
'Content-Type': 'application/json',
'Referer-Viitto': this.$route.path
}
})
.then(res => {
if (res.resultCode == 10000 || res.resultCode == 10001) {
this.$router.push({
path: '/login'
})
} else if (res.resultCode == 10005) {
this.$router.go(-1)
} else if (res.data.data && res.data.data.isJumpTwoCode == 1) {
this.$router.push({
path: '/clientConfirm'
})
} else {
successCall(res)
}
}, faildCall)
},
//下载文件
Vue.prototype.GetLocalFile = function (cmd, msg, fileName, successCall) {
......
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