Commit 239dc13b authored by youjie's avatar youjie
parents 880ddc88 aa4588c0
<template>
<span :data-name="isLocked" class="edit_div" :contenteditable="canEdit" v-html="innerText" @focus="isLocked = true"
@blur="isLocked = false" @input="changeText">
</span>
</template>
<script>
export default {
props: ["value", "canEdit", "textLength"],
data() {
return {
innerText: this.value,
isLocked: false
};
},
watch: {
value() {
if (!this.isLocked || !this.innerText) {
this.$el.innerText = this.value;
}
}
},
methods: {
changeText: function () {
let sel = window.getSelection();
let offset = sel.anchorOffset;
if (this.textLength && this.$el.innerText.length > this.textLength) {
this.$el.innerText = this.$el.innerText.slice(0, this.textLength);
}
this.$emit("input", this.$el.innerText);
setTimeout(() => {
try {
var range = sel.getRangeAt(0);
var textNode = range.startContainer;
range.setStart(textNode, offset);
sel.removeAllRanges();
sel.addRange(range);
} catch (err) {
console.warn(err);
}
}, 0);
},
}
};
</script>
<style>
.edit_div {}
</style>
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
</div> </div>
</td> </td>
<td rowspan="2"> <td rowspan="2">
<span class="bianji opbd" @click="goUrl('TravelManager2',item.ID,false)"> <span class="bianji opbd" @click="goUrl('TravelManager',item.ID,false)">
<el-tooltip class="item" effect="dark" content="行程修改" placement="top-start" popper-class="max-w250"> <el-tooltip class="item" effect="dark" content="行程修改" placement="top-start" popper-class="max-w250">
<i class="iconfont icon-bianji-smal"></i> <i class="iconfont icon-bianji-smal"></i>
</el-tooltip> </el-tooltip>
......
...@@ -52,32 +52,27 @@ ...@@ -52,32 +52,27 @@
</div> </div>
</div> </div>
<div class="travelDaysContent"> <div class="travelDaysContent">
<div class="travelDaysContent-text" v-for="(jindian,j) in item.ScenicArray" v-if="item.ScenicArray.length>0" <template v-if="item.ScenicArray.length>0">
:key="j"> <div class="travelDaysContent-text" v-for="(jindian,j) in item.ScenicArray" :key="j">
<span class="textBold"> <span class="textBold">
{{jindian.CouponsName}} {{jindian.CouponsName}}
</span> </span>
<span> <vEditSpan :canEdit='canEdit' v-model="jindian.Description"></vEditSpan>
<vEditDiv :canEdit='canEdit' v-model="jindian.Description"></vEditDiv>
</span>
</div> </div>
</template>
<div v-if="item.ScenicArray.length==0" class="travelDaysContent-text"> <div v-if="item.ScenicArray.length==0" class="travelDaysContent-text">
<span class="textBold"> <span class="textBold">
<vEditDiv class="dayCouponsName" :canEdit='canEdit' <vEditDiv class="dayCouponsName" :canEdit='canEdit'
v-model="'【'+item.TrafficObj.trafficIntroduce.IntroduceTitle+'】'"></vEditDiv> v-model="'【'+item.TrafficObj.trafficIntroduce.IntroduceTitle+'】'"></vEditDiv>
</span> </span>
<span> <vEditSpan :canEdit='canEdit' v-model="item.TrafficObj.trafficIntroduce.IntroduceDetail"></vEditSpan>
<vEditDiv :canEdit='canEdit' v-model="item.TrafficObj.trafficIntroduce.IntroduceDetail"></vEditDiv>
</span>
</div> </div>
</div> </div>
<div class="travelDaysdetails-tsTextBox"> <div class="travelDaysdetails-tsTextBox"
v-if="item.WarmTipObj.Description&&getHtmlPlainText(item.WarmTipObj.Description).length>0">
<div class="travelDaysdetails-tsText" :style="{'background':backgroundColor2}"> <div class="travelDaysdetails-tsText" :style="{'background':backgroundColor2}">
<span class="travelDaysdetails-text0">温馨提示:</span> <span class="travelDaysdetails-text0">温馨提示:</span>
<template v-if="item.WarmTipObj.Description&&getHtmlPlainText(item.WarmTipObj.Description).length>0"> <span v-html="item.WarmTipObj.Description"></span>
<div v-html="item.WarmTipObj.Description"></div>
</template>
<template v-else>暂无提示</template>
</div> </div>
</div> </div>
<div class="travelDaysdetails"> <div class="travelDaysdetails">
...@@ -150,12 +145,14 @@ ...@@ -150,12 +145,14 @@
<script> <script>
import Header from "./header"; import Header from "./header";
import vEditDiv from "../../TravelGroupControl/TravelTemp/VEditDiv"; import vEditDiv from "../../TravelGroupControl/TravelTemp/VEditDiv";
import vEditSpan from "../../TravelGroupControl/TravelTemp/VEditSpan";
import FeatureControls from "../../TravelGroupControl/UpgradedVersion/components/featureControls"; import FeatureControls from "../../TravelGroupControl/UpgradedVersion/components/featureControls";
import DMCchooseImg from "../../../commonPage/DMCchooseImg.vue"; import DMCchooseImg from "../../../commonPage/DMCchooseImg.vue";
import VueDraggableResizable from "vue-draggable-resizable"; import VueDraggableResizable from "vue-draggable-resizable";
export default { export default {
components: { components: {
vEditDiv, vEditDiv,
vEditSpan,
Header, Header,
FeatureControls, FeatureControls,
DMCchooseImg, DMCchooseImg,
...@@ -350,9 +347,6 @@ ...@@ -350,9 +347,6 @@
} }
}); });
} }
if (this.ScenicArrayList && this.ScenicArrayList.length > 0) this.ScenicArrayList.sort((a, b) => {
return a.Rank - b.Rank
})
this.RenderingOk = true; this.RenderingOk = true;
}, },
deep: true, deep: true,
......
<style> <style>
.TC-titlebox {
.TC-titlebox{
width: 300px; width: 300px;
overflow: hidden; overflow: hidden;
} }
.TC-titlebox .LTB input{
border-top: 1px solid #dddddd ;
border-bottom: 1px solid #dddddd ;
border-left: 1px solid #dddddd ;
}
.TC-itemContent { .TC-itemContent {
position: relative; position: relative;
/* max-height: 700px; */ /* max-height: 700px; */
...@@ -43,9 +37,11 @@ ...@@ -43,9 +37,11 @@
padding: 6px; padding: 6px;
margin-top: 3px; margin-top: 3px;
} }
.TC-titlebox{
flex-grow: 2; .TC-titlebox {
width: 100%;
} }
.TC-titlebox .multiple_input .el-input { .TC-titlebox .multiple_input .el-input {
min-height: 26px !important; min-height: 26px !important;
} }
...@@ -121,7 +117,8 @@ ...@@ -121,7 +117,8 @@
right: 0; right: 0;
top: 0; top: 0;
} }
.TC-titlebox .Ht_hotelSelect{
.TC-titlebox .Ht_hotelSelect {
width: 210px; width: 210px;
} }
...@@ -152,14 +149,13 @@ ...@@ -152,14 +149,13 @@
<div class="TC-daycnt row-aic"> <div class="TC-daycnt row-aic">
<div class="TC-days">{{dayObj.DayNum}}</div> <div class="TC-days">{{dayObj.DayNum}}</div>
<div class="TC-titlebox"> <div class="TC-titlebox">
<span class="TC-TitleSpan column" v-if="!dayObj.isRead" style="width: 100%;"> <span class="TC-TitleSpan" v-if="!dayObj.isRead" style="width: 240px;">
<el-form-item style="width: auto;"> <el-form-item>
<el-input type="textarea" :autosize="{minRows: 1, maxRows: 8 }" resize="none" <el-input type="textarea" :autosize="{minRows: 1, maxRows: 8 }" resize="none" placeholder="请输入行程大点信息"
placeholder="请输入行程大点信息" v-model="dayObj.TitleObj.Title"></el-input> v-model="dayObj.TitleObj.Title"></el-input>
</el-form-item> </el-form-item>
<el-form-item class="LTB marginL10" style="width: auto;"> <el-form-item class="marginT10">
<el-input placeholder="请输入公里数" class="" v-model="dayObj.TitleObj.KMNumber" <el-input placeholder="请输入公里数" class="w120" v-model="dayObj.TitleObj.KMNumber">
style="margin-top: 7px;">
<template slot="append">KM</template> <template slot="append">KM</template>
</el-input> </el-input>
</el-form-item> </el-form-item>
...@@ -222,16 +218,10 @@ ...@@ -222,16 +218,10 @@
</div> </div>
<div class="row-aic marginT10" style="width: 100%;" v-if="dayObj.ScenicArray.length>0"> <div class="row-aic marginT10" style="width: 100%;" v-if="dayObj.ScenicArray.length>0">
<span v-if="ishasScenic">默认展示图</span> <span v-if="ishasScenic">默认展示图</span>
<div class=""> <el-select v-if="ishasScenic&&NoticeParameters.IsDirect==1" class="w220 Ht_hotelSelect" size="mini"
<el-select v-if="ishasScenic&&NoticeParameters.IsDirect==1" :placeholder="$t('pub.pleaseSel')" v-model="ScenicArraySingle" filterable @change="setDefaultScenic">
class="marginL11 Ht_hotelSelect" size="mini" <el-option v-for="(item,index) in dayObj.ScenicArray" :label="item.CouponsName"
:placeholder="$t('pub.pleaseSel')" v-model="ScenicArraySingle" :value="item.CouponsId" :key="index">
filterable
@change="getScenicArray">
<el-option v-for="(item,index) in dayObj.ScenicArray"
:label="item.CouponsName"
:value="item.CouponsId"
:key="index">
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
...@@ -306,8 +296,8 @@ ...@@ -306,8 +296,8 @@
], ],
data() { data() {
return { return {
ScenicArraySingle: this.dayObj.ScenicArrayImg?this.dayObj.ScenicArrayImg:'',//单选默认图 ScenicArraySingle: this.dayObj.ScenicArrayImg ? this.dayObj.ScenicArrayImg : '', //单选默认图
ScenicArray: this.dayObj.ScenicArrayImg?this.dayObj.ScenicArrayImg:[],//默认展示图 ScenicArray: this.dayObj.ScenicArrayImg ? this.dayObj.ScenicArrayImg : [], //默认展示图
DefaultSelectValue: 0, DefaultSelectValue: 0,
QScenicList: [], QScenicList: [],
//选择的景点数组 //选择的景点数组
...@@ -327,16 +317,15 @@ ...@@ -327,16 +317,15 @@
}; };
}, },
methods: { methods: {
// 默认需要展示的 //设置默认显示的景点
getScenicArray(){ setDefaultScenic() {
this.dayObj.ScenicArray.forEach(x=>{ this.dayObj.ScenicArray.forEach(x => {
x.DefaultNum = 0 x.DefaultNum = 0;
if(x.CouponsId===this.ScenicArraySingle){ if (x.CouponsId === this.ScenicArraySingle) {
x.DefaultNum = 1 x.DefaultNum = 1;
} }
}) })
this.dayObj.ScenicArrayImg = this.ScenicArraySingle; this.dayObj.ScenicArrayImg = this.ScenicArraySingle;
this.dayObj.ScenicArray = this.dayObj.ScenicArray.sort((a, b)=>{return b.DefaultNum - a.DefaultNum});
}, },
//非直采切换 //非直采切换
NoDirectScenicCheck(number) { NoDirectScenicCheck(number) {
...@@ -352,7 +341,6 @@ ...@@ -352,7 +341,6 @@
scenic.CityId = 0; scenic.CityId = 0;
scenic.DayNum = this.dayObj.DayNum; scenic.DayNum = this.dayObj.DayNum;
scenic.MD5Sign = this.md5(`DayNum=${this.CurrentIndex + 1}&Type=jing&ID=${i}`) scenic.MD5Sign = this.md5(`DayNum=${this.CurrentIndex + 1}&Type=jing&ID=${i}`)
let imaArray = [];
scenic.NewImaArray.push({ scenic.NewImaArray.push({
Url: "", Url: "",
Name: "", Name: "",
...@@ -383,12 +371,9 @@ ...@@ -383,12 +371,9 @@
for (var i = 0; i < number; i++) { for (var i = 0; i < number; i++) {
newArray.push(this.dayObj.ScenicArray[i]); newArray.push(this.dayObj.ScenicArray[i]);
} }
this.dayObj.ScenicArray = newArray.sort((a, b)=>{return b.Rank - a.Rank}); this.dayObj.ScenicArray = newArray
} }
} }
this.dayObj.ScenicArray.forEach(x => {
// x.ScenicJson.y=0;
});
}, },
//是否有景点切换 //是否有景点切换
hasScenicChange() { hasScenicChange() {
...@@ -443,13 +428,7 @@ ...@@ -443,13 +428,7 @@
err => {} err => {}
); );
}, },
getItemLabel(item) {
let returnName = item.Name;
if (item.Inventory >= 0) {
returnName = returnName + " " + item.Inventory;
}
return returnName;
},
//天数上移下移 //天数上移下移
MoveDays(index, IsUp) { MoveDays(index, IsUp) {
var currentItem = this.subConfig.DayList[index]; var currentItem = this.subConfig.DayList[index];
...@@ -579,24 +558,21 @@ ...@@ -579,24 +558,21 @@
let status = false let status = false
this.dayObj.ScenicArray.forEach(x => { this.dayObj.ScenicArray.forEach(x => {
this.dayObj.ChooseScenicArray.push(x.CouponsId); this.dayObj.ChooseScenicArray.push(x.CouponsId);
if(!status&&x.Rank>0&&!this.ScenicArraySingle){ if (!status && x.DefaultNum > 0 && !this.ScenicArraySingle) {
// this.ScenicArray = [x.CouponsId]
this.ScenicArraySingle = x.CouponsId this.ScenicArraySingle = x.CouponsId
status = true status = true
} }
}); });
if(!status&&this.dayObj.ScenicArray.length>0&&!this.ScenicArraySingle){ if (!status && this.dayObj.ScenicArray.length > 0 && !this.ScenicArraySingle) {
status = true status = true
this.ScenicArraySingle = this.dayObj.ScenicArray[0].CouponsId this.ScenicArraySingle = this.dayObj.ScenicArray[0].CouponsId
} }
if(this.ScenicArray&&this.ScenicArray.length>0) { if (this.ScenicArray && this.ScenicArray.length > 0) {
this.ScenicArray.sort((a, b)=>{return a.Rank - b.Rank})
this.dayObj.ScenicArrayImg = JSON.parse(JSON.stringify(this.ScenicArray)); this.dayObj.ScenicArrayImg = JSON.parse(JSON.stringify(this.ScenicArray));
} }
if(this.ScenicArraySingle){ if (this.ScenicArraySingle) {
this.dayObj.ScenicArrayImg = this.ScenicArraySingle; this.dayObj.ScenicArrayImg = this.ScenicArraySingle;
} }
if (this.dayObj.ChooseScenicArray.length > 0) { if (this.dayObj.ChooseScenicArray.length > 0) {
this.ChooseScenicArray = JSON.parse(JSON.stringify(this.dayObj.ChooseScenicArray)); this.ChooseScenicArray = JSON.parse(JSON.stringify(this.dayObj.ChooseScenicArray));
} }
...@@ -613,13 +589,12 @@ ...@@ -613,13 +589,12 @@
} else { } else {
this.ishasScenic = false; this.ishasScenic = false;
} }
this.getScenicArray() this.setDefaultScenic()
} }
}, },
created() { created() {
this.dayObj.ScenicArray.forEach(x => { this.dayObj.ScenicArray.forEach(x => {
// x.ScenicJson = (typeof(x.ScenicJsonStr) === 'string' ? x.ScenicJsonStr : { x:0, y:0 }) if (x.ScenicJsonStr) {
if(x.ScenicJsonStr){
let obj = JSON.parse(x.ScenicJsonStr) let obj = JSON.parse(x.ScenicJsonStr)
if (obj) { if (obj) {
x.ScenicJson = obj x.ScenicJson = obj
...@@ -637,11 +612,10 @@ ...@@ -637,11 +612,10 @@
//选中的景点 //选中的景点
'ChooseScenicArray': { 'ChooseScenicArray': {
handler: function (val, oldVal) { handler: function (val, oldVal) {
if(val.length==0) { if (val.length == 0) {
this.ScenicArray = []; this.ScenicArray = [];
this.ScenicArraySingle = ''; this.ScenicArraySingle = '';
} }
let list = []
//新增 //新增
val.forEach(x => { val.forEach(x => {
let isExist = false; let isExist = false;
...@@ -676,13 +650,6 @@ ...@@ -676,13 +650,6 @@
scenic.NewImaArray.push(scenicImg); scenic.NewImaArray.push(scenicImg);
imaArray.push(scenicImg); imaArray.push(scenicImg);
scenic.NewScenicImg = JSON.stringify(imaArray); scenic.NewScenicImg = JSON.stringify(imaArray);
let scenicDescribeObj = this.$tripUtils.tripDescribeObj();
scenicDescribeObj.Id = x;
scenicDescribeObj.Describe = s.About;
//this.WarmTripDescribe.ScenicDescribeArr.push(scenicDescribeObj);
// if (scenicDescribeObj.Describe != null && scenicDescribeObj.Describe != "") {
// this.dayObj.WarmTipObj.Description += "<p>" + scenicDescribeObj.Describe + "</p>";
// }
} }
}); });
this.dayObj.ScenicArray.push(scenic) this.dayObj.ScenicArray.push(scenic)
...@@ -691,7 +658,6 @@ ...@@ -691,7 +658,6 @@
//移除 //移除
let newScenicObj = []; let newScenicObj = [];
this.dayObj.ScenicArray.forEach(x => { this.dayObj.ScenicArray.forEach(x => {
// x.ScenicJson.y=0;
let isExist = false; let isExist = false;
this.ChooseScenicArray.forEach(y => { this.ChooseScenicArray.forEach(y => {
if (y === x.CouponsId) { if (y === x.CouponsId) {
...@@ -702,76 +668,30 @@ ...@@ -702,76 +668,30 @@
newScenicObj.push(x); newScenicObj.push(x);
} }
}); });
this.dayObj.ScenicArray = newScenicObj.sort((a, b)=>{return b.Rank - a.Rank});
//清除数据
let scenicDescribeArr = [];
this.WarmTripDescribe.ScenicDescribeArr.forEach(x => {
let isExit = false;
this.ChooseScenicArray.forEach(y => {
if (x.Id === y) {
isExit = true;
}
});
if (isExit) {
scenicDescribeArr.push(x);
}
});
this.WarmTripDescribe.ScenicDescribeArr = scenicDescribeArr;
this.dayObj.ChooseScenicArray = JSON.parse(JSON.stringify(this.ChooseScenicArray)); this.dayObj.ChooseScenicArray = JSON.parse(JSON.stringify(this.ChooseScenicArray));
if (!this.ScenicArraySingle && this.ChooseScenicArray && this.ChooseScenicArray.length > 0) {
// 默认第一个为默认图
// if(this.ScenicArray,length==0&&this.ChooseScenicArray&&this.ChooseScenicArray.length>0){
// this.ScenicArray = [this.ChooseScenicArray[0]]
// this.getScenicArray()
// }
if(!this.ScenicArraySingle&&this.ChooseScenicArray&&this.ChooseScenicArray.length>0){
this.ScenicArraySingle = this.ChooseScenicArray[0] this.ScenicArraySingle = this.ChooseScenicArray[0]
this.getScenicArray() this.setDefaultScenic()
}else{ } else {
let status = false let status = false
this.dayObj.ScenicArray.forEach(x=>{ this.dayObj.ScenicArray.forEach(x => {
x.Rank = 0 x.DefaultNum = 0
if(x.CouponsId===this.ScenicArraySingle){ if (x.CouponsId === this.ScenicArraySingle) {
status = true status = true
x.Rank = 1 x.DefaultNum = 1
} }
}) })
if(!status) { if (!status) {
this.ScenicArraySingle = this.ChooseScenicArray[0] this.ScenicArraySingle = this.ChooseScenicArray[0]
this.getScenicArray() this.setDefaultScenic()
this.dayObj.ScenicArrayImg = this.ScenicArraySingle; this.dayObj.ScenicArrayImg = this.ScenicArraySingle;
} }
} }
if(this.dayObj.ScenicArray&&this.dayObj.ScenicArray.length>0) this.dayObj.ScenicArray.sort((a, b)=>{return a.Rank - b.Rank})
} }
}, },
WarmTripDescribe: { WarmTripDescribe: {
handler: function (newValue, oldValue) { handler: function (newValue, oldValue) {
this.DefaultList = []; this.DefaultList = [];
//if (this.dayObj.TitleObj.ID === 0 && !this.subConfig.isFileUpload) {
// if (!this.subConfig.isFileUpload) {
// let warmDescribe = "";
// let index = 1;
// let warmTripDescribeArr = [];
// warmTripDescribeArr.push(...this.WarmTripDescribe.ScenicDescribeArr);
// warmTripDescribeArr.push(...this.WarmTripDescribe.DinnerDescribeArr);
// warmTripDescribeArr.push(...this.WarmTripDescribe.HotelDescribeArr);
// warmTripDescribeArr.forEach(x => {
// if (x.Describe != null && x.Describe != "") {
// let describe = "<p>"+index + "" + x.Describe+"</p>"
// //let describe = index + "、" + x.Describe;
// warmDescribe += describe;
// index++;
// }
// });
// this.DefaultList.push(warmDescribe);
// if (this.dayObj.TitleObj.ID === 0) {
// this.dayObj.WarmTipObj.Description = warmDescribe;
// }
// }
}, },
deep: true deep: true
}, },
...@@ -796,11 +716,7 @@ ...@@ -796,11 +716,7 @@
}, },
mounted() {}, mounted() {},
components: { components: {
hotelTrip, hotelTrip,
trifficTrip, trifficTrip,
noScenic, noScenic,
"my-edit": MyEdit, "my-edit": MyEdit,
......
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