Commit 2ecb9a50 authored by zhengke's avatar zhengke

Merge branch 'master' of http://gitlab.oytour.com/viitto/pptist

parents afc665e8 10450f32
export default class HtmlUtil {
// 1.用浏览器内部转换器实现html编码
static htmlEncode = (html:string)=> {
// 创建一个元素容器
var tempDiv = document.createElement('div');
// 把需要编码的字符串赋值给该元素的innerText(ie支持)或者textContent(火狐、谷歌等)
(tempDiv.textContent != undefined) ? (tempDiv.textContent = html) : (tempDiv.innerText = html);
var output = tempDiv.innerHTML;
tempDiv.remove();
return output;
}
// 2.用浏览器内部转换器实现html解码
static htmlDecode = (text:string) => {
// 创建一个元素容器
var tempDiv = document.createElement('div');
// 把解码字符串赋值给元素innerHTML
tempDiv.innerHTML = text;
// 最后返回这个元素的innerText(ie支持)或者textContent(火狐、谷歌等支持)
var output = tempDiv.innerText || tempDiv.textContent;
tempDiv.remove;
return output;
}
// 3.使用正则实现html编码
static htmlEncodeByRegExp = (str:string)=> {
var s = '';
if(str.length === 0) {
return '';
}
s = str.replace(/&/g,'&');
s = s.replace(/</g,'&lt;');
s = s.replace(/>/g,'&gt;');
s = s.replace(/ /g,'&nbsp;');
s = s.replace(/\'/g,'&#39;');
s= s.replace(/\"/g,'&quot;');
return s;
}
// 4.使用正则实现html解码
static htmlDecodeByRegExp = (str:string) => {
var s = '';
if(str.length === 0) {
return '';
}
s = str.replace(/&amp;/g, '&');
s = s.replace(/&lt;/g,'<');
s = s.replace(/&gt;/g,'>');
s = s.replace(/&nbsp;/g,' ');
s = s.replace(/&#39;/g,'\'');
s = s.replace(/&quot;/g,'\"');
return s;
}
}
\ No newline at end of file
import { PPTElementShadow, PPTTextElement } from '@/types/slides'; import { PPTElementShadow, PPTTextElement } from '@/types/slides';
import HtmlUtil from '../htmlutil';
export const ResolveText = (item: any, index: number,offsetLeft:number,offsetTop:number,groupId:string =''): PPTTextElement => { export const ResolveText = (item: any, index: number,offsetLeft:number,offsetTop:number,groupId:string =''): PPTTextElement => {
...@@ -69,7 +70,8 @@ export const ResolveText = (item: any, index: number,offsetLeft:number,offsetTop ...@@ -69,7 +70,8 @@ export const ResolveText = (item: any, index: number,offsetLeft:number,offsetTop
if(objectEFFFects && objectEFFFects.data?.FrFX?.enab){ if(objectEFFFects && objectEFFFects.data?.FrFX?.enab){
stroke = getStrokeHandler(objectEFFFects) stroke = getStrokeHandler(objectEFFFects)
} }
let content = `<p><span style="${style}">${value}</span></p>` let content = `<p><span style="${style}">${HtmlUtil.htmlEncodeByRegExp(value)}</span></p>`
const isVertical = item.layer.adjustments.typeTool.obj.textData.Ornt.value != 'Hrzn' const isVertical = item.layer.adjustments.typeTool.obj.textData.Ornt.value != 'Hrzn'
if(isVertical) { if(isVertical) {
......
...@@ -82,6 +82,7 @@ import { Slide } from '@/types/slides' ...@@ -82,6 +82,7 @@ import { Slide } from '@/types/slides'
import { uniqueId } from 'lodash' import { uniqueId } from 'lodash'
import { useUserStore } from "@/store"; import { useUserStore } from "@/store";
import themeColor from '@/utils/colorExtraction'; import themeColor from '@/utils/colorExtraction';
import HtmlUtil from '@/utils/htmlutil'
const mainStore = useMainStore() const mainStore = useMainStore()
const slidesStore = useSlidesStore() const slidesStore = useSlidesStore()
...@@ -98,7 +99,7 @@ const TemplateTypeStore = useScreenStore() ...@@ -98,7 +99,7 @@ const TemplateTypeStore = useScreenStore()
const CoverImgStore = useScreenStore() const CoverImgStore = useScreenStore()
const dataLoadingStore = useScreenStore() const dataLoadingStore = useScreenStore()
const { model, ConfigId, TemplateDataSource, TemplateType, dataLoading, TempId, SourceLoading } = storeToRefs(TemplateTypeStore) const { model, ConfigId, TemplateDataSource, TemplateType, dataLoading, TempId, SourceLoading } = storeToRefs(TemplateTypeStore)
console.log(model.value,ConfigId.value,TempId.value)
const selectedSlidesIndex = computed(() => [..._selectedSlidesIndex.value, slideIndex.value]) const selectedSlidesIndex = computed(() => [..._selectedSlidesIndex.value, slideIndex.value])
const { setNewDatasList } = useEditor() const { setNewDatasList } = useEditor()
...@@ -402,7 +403,6 @@ const GetTripTemplate = async () =>{ ...@@ -402,7 +403,6 @@ const GetTripTemplate = async () =>{
text:'正在渲染模版数据', text:'正在渲染模版数据',
lock:true lock:true
}) })
// console.log(searchData.value.TempId,searchData.value.TempId2,TempId.value,searchData.value.sellTempId)
if(!searchData.value.TempId&&!searchData.value.TempId2&&!TempId.value&&!searchData.value.sellTempId&&searchData.value.ViewSlideshow) { if(!searchData.value.TempId&&!searchData.value.TempId2&&!TempId.value&&!searchData.value.sellTempId&&searchData.value.ViewSlideshow) {
let list = [ let list = [
{ {
...@@ -464,6 +464,16 @@ const GetTripTemplate = async () =>{ ...@@ -464,6 +464,16 @@ const GetTripTemplate = async () =>{
} }
newSlides.push(obj) newSlides.push(obj)
}else if(SlidesData.length>0){ }else if(SlidesData.length>0){
SlidesData.forEach((x: any) => {
x.elements.forEach((y:any)=>{
if(y.contentStr && y.content.includes(y.contentStr)){
let temp = HtmlUtil.htmlEncodeByRegExp(y.contentStr)
if(temp!=y.contentStr) {
y.content = y.content.replace(y.contentStr,temp)
}
}
})
})
newSlides = SlidesData newSlides = SlidesData
} }
let IDs = [] let IDs = []
...@@ -699,6 +709,14 @@ const sellGetTripTemplate = async () =>{ ...@@ -699,6 +709,14 @@ const sellGetTripTemplate = async () =>{
let SlidesData = JSON.parse(dataObj.TempData) let SlidesData = JSON.parse(dataObj.TempData)
let newSlides = [] let newSlides = []
await SlidesData.forEach((x,i)=>{ await SlidesData.forEach((x,i)=>{
x.elements.forEach((y:any)=>{
if(y.contentStr && y.content.includes(y.contentStr)){
let temp = HtmlUtil.htmlEncodeByRegExp(y.contentStr)
if(temp!=y.contentStr) {
y.content = y.content.replace(y.contentStr,temp)
}
}
})
newSlides.push(x) newSlides.push(x)
}) })
slidesStore.setSlides(newSlides) slidesStore.setSlides(newSlides)
...@@ -979,7 +997,9 @@ if(!query().ViewSlideshow) GetTripTemplate() ...@@ -979,7 +997,9 @@ if(!query().ViewSlideshow) GetTripTemplate()
} }
&.selected { &.selected {
.thumbnail { .thumbnail {
outline-color: $themeColor; // outline-color: $themeColor;
outline-color: #0B40FE;
box-shadow: 0px 0px 15px 0px rgba(11,64,254,0.8);
} }
} }
} }
......
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