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 @@
</div>
</td>
<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">
<i class="iconfont icon-bianji-smal"></i>
</el-tooltip>
......
......@@ -52,32 +52,27 @@
</div>
</div>
<div class="travelDaysContent">
<div class="travelDaysContent-text" v-for="(jindian,j) in item.ScenicArray" v-if="item.ScenicArray.length>0"
:key="j">
<template v-if="item.ScenicArray.length>0">
<div class="travelDaysContent-text" v-for="(jindian,j) in item.ScenicArray" :key="j">
<span class="textBold">
{{jindian.CouponsName}}
</span>
<span>
<vEditDiv :canEdit='canEdit' v-model="jindian.Description"></vEditDiv>
</span>
<vEditSpan :canEdit='canEdit' v-model="jindian.Description"></vEditSpan>
</div>
</template>
<div v-if="item.ScenicArray.length==0" class="travelDaysContent-text">
<span class="textBold">
<vEditDiv class="dayCouponsName" :canEdit='canEdit'
v-model="'【'+item.TrafficObj.trafficIntroduce.IntroduceTitle+'】'"></vEditDiv>
</span>
<span>
<vEditDiv :canEdit='canEdit' v-model="item.TrafficObj.trafficIntroduce.IntroduceDetail"></vEditDiv>
</span>
<vEditSpan :canEdit='canEdit' v-model="item.TrafficObj.trafficIntroduce.IntroduceDetail"></vEditSpan>
</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}">
<span class="travelDaysdetails-text0">温馨提示:</span>
<template v-if="item.WarmTipObj.Description&&getHtmlPlainText(item.WarmTipObj.Description).length>0">
<div v-html="item.WarmTipObj.Description"></div>
</template>
<template v-else>暂无提示</template>
<span v-html="item.WarmTipObj.Description"></span>
</div>
</div>
<div class="travelDaysdetails">
......@@ -150,12 +145,14 @@
<script>
import Header from "./header";
import vEditDiv from "../../TravelGroupControl/TravelTemp/VEditDiv";
import vEditSpan from "../../TravelGroupControl/TravelTemp/VEditSpan";
import FeatureControls from "../../TravelGroupControl/UpgradedVersion/components/featureControls";
import DMCchooseImg from "../../../commonPage/DMCchooseImg.vue";
import VueDraggableResizable from "vue-draggable-resizable";
export default {
components: {
vEditDiv,
vEditSpan,
Header,
FeatureControls,
DMCchooseImg,
......@@ -350,9 +347,6 @@
}
});
}
if (this.ScenicArrayList && this.ScenicArrayList.length > 0) this.ScenicArrayList.sort((a, b) => {
return a.Rank - b.Rank
})
this.RenderingOk = true;
},
deep: true,
......
<style>
.TC-titlebox{
.TC-titlebox {
width: 300px;
overflow: hidden;
}
.TC-titlebox .LTB input{
border-top: 1px solid #dddddd ;
border-bottom: 1px solid #dddddd ;
border-left: 1px solid #dddddd ;
}
.TC-itemContent {
position: relative;
/* max-height: 700px; */
......@@ -43,9 +37,11 @@
padding: 6px;
margin-top: 3px;
}
.TC-titlebox{
flex-grow: 2;
.TC-titlebox {
width: 100%;
}
.TC-titlebox .multiple_input .el-input {
min-height: 26px !important;
}
......@@ -121,7 +117,8 @@
right: 0;
top: 0;
}
.TC-titlebox .Ht_hotelSelect{
.TC-titlebox .Ht_hotelSelect {
width: 210px;
}
......@@ -152,14 +149,13 @@
<div class="TC-daycnt row-aic">
<div class="TC-days">{{dayObj.DayNum}}</div>
<div class="TC-titlebox">
<span class="TC-TitleSpan column" v-if="!dayObj.isRead" style="width: 100%;">
<el-form-item style="width: auto;">
<el-input type="textarea" :autosize="{minRows: 1, maxRows: 8 }" resize="none"
placeholder="请输入行程大点信息" v-model="dayObj.TitleObj.Title"></el-input>
<span class="TC-TitleSpan" v-if="!dayObj.isRead" style="width: 240px;">
<el-form-item>
<el-input type="textarea" :autosize="{minRows: 1, maxRows: 8 }" resize="none" placeholder="请输入行程大点信息"
v-model="dayObj.TitleObj.Title"></el-input>
</el-form-item>
<el-form-item class="LTB marginL10" style="width: auto;">
<el-input placeholder="请输入公里数" class="" v-model="dayObj.TitleObj.KMNumber"
style="margin-top: 7px;">
<el-form-item class="marginT10">
<el-input placeholder="请输入公里数" class="w120" v-model="dayObj.TitleObj.KMNumber">
<template slot="append">KM</template>
</el-input>
</el-form-item>
......@@ -222,16 +218,10 @@
</div>
<div class="row-aic marginT10" style="width: 100%;" v-if="dayObj.ScenicArray.length>0">
<span v-if="ishasScenic">默认展示图</span>
<div class="">
<el-select v-if="ishasScenic&&NoticeParameters.IsDirect==1"
class="marginL11 Ht_hotelSelect" size="mini"
:placeholder="$t('pub.pleaseSel')" v-model="ScenicArraySingle"
filterable
@change="getScenicArray">
<el-option v-for="(item,index) in dayObj.ScenicArray"
:label="item.CouponsName"
:value="item.CouponsId"
:key="index">
<el-select v-if="ishasScenic&&NoticeParameters.IsDirect==1" class="w220 Ht_hotelSelect" size="mini"
:placeholder="$t('pub.pleaseSel')" v-model="ScenicArraySingle" filterable @change="setDefaultScenic">
<el-option v-for="(item,index) in dayObj.ScenicArray" :label="item.CouponsName"
:value="item.CouponsId" :key="index">
</el-option>
</el-select>
</div>
......@@ -306,8 +296,8 @@
],
data() {
return {
ScenicArraySingle: this.dayObj.ScenicArrayImg?this.dayObj.ScenicArrayImg:'',//单选默认图
ScenicArray: this.dayObj.ScenicArrayImg?this.dayObj.ScenicArrayImg:[],//默认展示图
ScenicArraySingle: this.dayObj.ScenicArrayImg ? this.dayObj.ScenicArrayImg : '', //单选默认图
ScenicArray: this.dayObj.ScenicArrayImg ? this.dayObj.ScenicArrayImg : [], //默认展示图
DefaultSelectValue: 0,
QScenicList: [],
//选择的景点数组
......@@ -327,16 +317,15 @@
};
},
methods: {
// 默认需要展示的
getScenicArray(){
this.dayObj.ScenicArray.forEach(x=>{
x.DefaultNum = 0
if(x.CouponsId===this.ScenicArraySingle){
x.DefaultNum = 1
//设置默认显示的景点
setDefaultScenic() {
this.dayObj.ScenicArray.forEach(x => {
x.DefaultNum = 0;
if (x.CouponsId === this.ScenicArraySingle) {
x.DefaultNum = 1;
}
})
this.dayObj.ScenicArrayImg = this.ScenicArraySingle;
this.dayObj.ScenicArray = this.dayObj.ScenicArray.sort((a, b)=>{return b.DefaultNum - a.DefaultNum});
},
//非直采切换
NoDirectScenicCheck(number) {
......@@ -352,7 +341,6 @@
scenic.CityId = 0;
scenic.DayNum = this.dayObj.DayNum;
scenic.MD5Sign = this.md5(`DayNum=${this.CurrentIndex + 1}&Type=jing&ID=${i}`)
let imaArray = [];
scenic.NewImaArray.push({
Url: "",
Name: "",
......@@ -383,12 +371,9 @@
for (var i = 0; i < number; 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() {
......@@ -443,13 +428,7 @@
err => {}
);
},
getItemLabel(item) {
let returnName = item.Name;
if (item.Inventory >= 0) {
returnName = returnName + " " + item.Inventory;
}
return returnName;
},
//天数上移下移
MoveDays(index, IsUp) {
var currentItem = this.subConfig.DayList[index];
......@@ -579,24 +558,21 @@
let status = false
this.dayObj.ScenicArray.forEach(x => {
this.dayObj.ChooseScenicArray.push(x.CouponsId);
if(!status&&x.Rank>0&&!this.ScenicArraySingle){
// this.ScenicArray = [x.CouponsId]
if (!status && x.DefaultNum > 0 && !this.ScenicArraySingle) {
this.ScenicArraySingle = x.CouponsId
status = true
}
});
if(!status&&this.dayObj.ScenicArray.length>0&&!this.ScenicArraySingle){
if (!status && this.dayObj.ScenicArray.length > 0 && !this.ScenicArraySingle) {
status = true
this.ScenicArraySingle = this.dayObj.ScenicArray[0].CouponsId
}
if(this.ScenicArray&&this.ScenicArray.length>0) {
this.ScenicArray.sort((a, b)=>{return a.Rank - b.Rank})
if (this.ScenicArray && this.ScenicArray.length > 0) {
this.dayObj.ScenicArrayImg = JSON.parse(JSON.stringify(this.ScenicArray));
}
if(this.ScenicArraySingle){
if (this.ScenicArraySingle) {
this.dayObj.ScenicArrayImg = this.ScenicArraySingle;
}
if (this.dayObj.ChooseScenicArray.length > 0) {
this.ChooseScenicArray = JSON.parse(JSON.stringify(this.dayObj.ChooseScenicArray));
}
......@@ -613,13 +589,12 @@
} else {
this.ishasScenic = false;
}
this.getScenicArray()
this.setDefaultScenic()
}
},
created() {
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)
if (obj) {
x.ScenicJson = obj
......@@ -637,11 +612,10 @@
//选中的景点
'ChooseScenicArray': {
handler: function (val, oldVal) {
if(val.length==0) {
if (val.length == 0) {
this.ScenicArray = [];
this.ScenicArraySingle = '';
}
let list = []
//新增
val.forEach(x => {
let isExist = false;
......@@ -676,13 +650,6 @@
scenic.NewImaArray.push(scenicImg);
imaArray.push(scenicImg);
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)
......@@ -691,7 +658,6 @@
//移除
let newScenicObj = [];
this.dayObj.ScenicArray.forEach(x => {
// x.ScenicJson.y=0;
let isExist = false;
this.ChooseScenicArray.forEach(y => {
if (y === x.CouponsId) {
......@@ -702,76 +668,30 @@
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));
// 默认第一个为默认图
// 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){
if (!this.ScenicArraySingle && this.ChooseScenicArray && this.ChooseScenicArray.length > 0) {
this.ScenicArraySingle = this.ChooseScenicArray[0]
this.getScenicArray()
}else{
this.setDefaultScenic()
} else {
let status = false
this.dayObj.ScenicArray.forEach(x=>{
x.Rank = 0
if(x.CouponsId===this.ScenicArraySingle){
this.dayObj.ScenicArray.forEach(x => {
x.DefaultNum = 0
if (x.CouponsId === this.ScenicArraySingle) {
status = true
x.Rank = 1
x.DefaultNum = 1
}
})
if(!status) {
if (!status) {
this.ScenicArraySingle = this.ChooseScenicArray[0]
this.getScenicArray()
this.setDefaultScenic()
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: {
handler: function (newValue, oldValue) {
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
},
......@@ -796,11 +716,7 @@
},
mounted() {},
components: {
hotelTrip,
trifficTrip,
noScenic,
"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