Commit d548f14c authored by 罗超's avatar 罗超

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

parents 89130ab2 9a7c513d
......@@ -172,13 +172,6 @@ page {
}
.flex{
display:flex;
}
.text-left{
text-align: left;
}
.text-center{
text-align: center;
}
.van-tabs__scroll {
background-color: transparent !important;
......
<template>
<div class="footer-from column flex-center">
<div><img :src="logo" height="31"/></div>
<div class="text-center fz14 PingFangSC" style="color: #9B99BC;">@2012-2024 成都微途科技有限公司 版权所有 蜀ICP备13024891号-9</div>
<div class="text-center fz14 PingFangSC" style="color: #9B99BC;">@2012-2024 成都微途科技有限公司 版权所有 <a class="q-pl-md" href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank"
style="color: rgb(155, 153, 188);text-decoration: none;">蜀ICP备13024891号-9</a></div>
</div>
</template>
<script lang="ts" setup>
......
......@@ -5,11 +5,10 @@
<template #header>
<div class="text-title text-center fz16 PingFangSC">创建设计</div>
</template>
<div class="addTemplateBox fz14">
<div class="q-mt-xs q-mb-lg row">
<div class="addTemplateBox fz14" style="padding: 0 70px;">
<div class="q-mt-xs q-mb-lg col row flex-between">
<template v-for="(item,index) in typeArr">
<div class="MarketButton cursor-pointer"
<div class="MarketButton cursor-pointer" style="margin-right: 0;"
v-if="item.type>0"
:class="[setTemplateType == item.type?'active':'']" :key="index"
@click="onTypeChangeHandler(item.type,2)">
......@@ -71,7 +70,7 @@ import { useSellTemplateStore,useSlidesStore } from '@/store'
import { useScreenStore } from "@/store/screen";
import { storeToRefs } from "pinia";
import { injectKeyTemplate } from '@/types/injectKey'
import { createOpEditorLink, createSaleCreateLink, managerTemplateLink,DominantColour } from '@/utils/common'
import { createOpEditorLink, createSaleCreateLink, managerTemplateLink } from '@/utils/common'
import { ElLoading, ElMessage, ElMessageBox } from "element-plus";
import { useRouter } from "vue-router";
import UserCard from "@/components/User/UserCard.vue";
......@@ -261,6 +260,21 @@ const ConfirmCreation = () => {
}
const addTemplate = (type:number) =>{
let list = [
{
id: 'test-slide-1',
pageType: setTemplateType.value!=2?1:0,
elements: [],
background: {
type: 'solid',
color: '#ffffff',
},
}
]
let Title = '模版名称'
if(setTemplateType.value==2) Title = '广告名称'
slidesStore.setTitle(Title)
slidesStore.setSlides(list)
router.push({
path:`/create_template/${type}`
})
......
......@@ -65,7 +65,7 @@ import { useSellTemplateStore } from '@/store'
import { useScreenStore } from "@/store/screen";
import { storeToRefs } from "pinia";
import { injectKeyTemplate } from '@/types/injectKey'
import { createOpEditorLink, createSaleCreateLink, managerTemplateLink,DominantColour } from '@/utils/common'
import { createOpEditorLink, createSaleCreateLink, managerTemplateLink } from '@/utils/common'
import { ElLoading, ElMessage, ElMessageBox } from "element-plus";
import { useRouter } from "vue-router";
import UserCard from "@/components/User/UserCard.vue";
......
......@@ -153,6 +153,13 @@ class ConfigService{
return Api.Post("triptemplate_GetTemplateConfigData",{})
}
/**
* 获取模板管理分页列表
*/
static async GetManagerTripTemplatePage(params : any):Promise<HttpResponse>{
return Api.Post("triptemplate_GetManagerTripTemplatePage",params)
}
/**
* 获取模板市场分页列表
*/
......
......@@ -11,7 +11,8 @@
<div class="text-info text-small" style="font-size: 13px;">AI助手的辅助让你报价与设计快人一步</div>
</div>
</div>
<div class="text-center text-small text-info full-width">@2012-2024 成都微途科技有限公司 版权所有 蜀ICP备13024891号-9</div>
<div class="text-center text-small text-info full-width">@2012-2024 成都微途科技有限公司 版权所有 <a class="q-pl-md" href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank"
style="color: rgb(155, 153, 188);text-decoration: none;">蜀ICP备13024891号-9</a></div>
</div>
<div class="login-form q-pa-xl column flex-center items-center" style="padding: 30px 100px;" v-if="token==''">
<div class="q-mb-xl full-width" v-if="inviteInfo">
......
......@@ -49,7 +49,8 @@
</el-form>
</div>
</div>
<div class="text-small text-info q-mb-lg">@2012-2024 成都微途科技有限公司 版权所有 蜀ICP备13024891号-9</div>
<div class="text-small text-info q-mb-lg">@2012-2024 成都微途科技有限公司 版权所有 <a class="q-pl-md" href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank"
style="color: rgb(155, 153, 188);text-decoration: none;">蜀ICP备13024891号-9</a></div>
</div>
</template>
<script lang="ts" setup>
......
......@@ -2,10 +2,10 @@
<div v-if="!currentPoi">
<div class="row items-center">
<div class="text-small" style="color:#BABABA;">已接入:路书云,马蜂窝</div>
<div class="col q-ml-lg">
<div class="col q-ml-lg spiderRes">
<el-input v-model="keyValue" placeholder="输入国家/城市/名称快速查找" clearable @keyup.enter="changeKeyValueHandler">
<template #append>
<el-button type="primary" @click="changeKeyValueHandler">搜索</el-button>
<el-button type="primary" style="color: white;" @click="changeKeyValueHandler">搜索</el-button>
</template>
</el-input>
</div>
......@@ -129,6 +129,10 @@ const changeChooseUrlHandler = (url:string)=>{
SearchHandler()
</script>
<style scoped>
.spiderRes::v-deep(.el-button){
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.spider-item{
width:calc(25% - 10px) !important;
height: 0;
......
......@@ -519,9 +519,8 @@ const setTemplate = async (type) =>{
let url = await AliyunUpload.UploadAsync(file,`Feature/CoverImg_${name}`)
queryObj.value.CoverImg = url
}
if(searchData.value.TemplateType!=2&&(queryObj.value.Title==''
||!queryObj.value.LineId||queryObj.value.LineName==''
||queryObj.value.CountryName==''||queryObj.value.SeasonName=='')){
if(searchData.value.TemplateType!=2&&(queryObj.value.Title==''||queryObj.value.CountryName==''
||queryObj.value.ColorStr==''||queryObj.value.SeasonName=='')){
datas.loading = false
mainStore.setToolbarState(ToolbarStates.EL_TEMPLATEDATA)
return ElMessage({
......
......@@ -568,17 +568,12 @@ const ResolveTripLogoHandler = async (items:any, slideIndex:number,dark:false) =
let y = templateObj[i]
let tempSize = await FileService.getImageSizeWithoutDownloading(templateObj[i].src)
let scale = parseInt(tempSize.width/tempSize.height)
let url = ''
// if(Colors[1]||scale==6) templateObj[i].filters.invert = '20%'
if(scale==1) templateObj[i].src = dark==true?acquiesceLogo.value[0]:acquiesceLogo.value[3]
if(scale<1) templateObj[i].src = dark==true?acquiesceLogo.value[1]:acquiesceLogo.value[4]
if(scale>1) templateObj[i].src = dark==true?acquiesceLogo.value[2]:acquiesceLogo.value[5]
if(tempNewSlide){
tempNewSlide.elements.push(...templateObj)
}else{
elements.push(...templateObj)
tempNewSlide = copySlidHandlerLogo(slideIndex)
}
let newTempSize = await FileService.getImageSizeWithoutDownloading(templateObj[i].src)
if(scale==1) url = dark==true?acquiesceLogo.value[0]:acquiesceLogo.value[3]
if(scale<1) url = dark==true?acquiesceLogo.value[1]:acquiesceLogo.value[4]
if(scale>1) url = dark==true?acquiesceLogo.value[2]:acquiesceLogo.value[5]
let newTempSize = await FileService.getImageSizeWithoutDownloading(url)
let width = 0
let height = 0
//按照宽度进行缩放
......@@ -592,6 +587,13 @@ const ResolveTripLogoHandler = async (items:any, slideIndex:number,dark:false) =
}
y.height = height
y.width = width
templateObj[i].src = url
if(tempNewSlide){
tempNewSlide.elements.push(...templateObj)
}else{
elements.push(...templateObj)
tempNewSlide = copySlidHandlerLogo(slideIndex)
}
} catch (error) {
......
......@@ -23,6 +23,7 @@
数据源
</Button>
</div>
</template>
<p class="q-mt-md"><span class="Required q-mr-md">*</span>模版权限:</p>
<div class="row wrap q-mt-md">
<el-select v-model="queryObj.AuthType" class="m-2"
......@@ -35,6 +36,7 @@
/>
</el-select>
</div>
<template v-if="searchData.TemplateType!=2">
<p class="q-mt-md"><span class="Required q-mr-md">*</span>页面类型:</p>
<div class="row wrap q-mt-md">
<el-select v-model="datas.DataSource.pageType" class="m-2"
......@@ -206,7 +208,7 @@
import LineService from '@/services/LineService'
import ConfigService from '@/services/ConfigService'
import { injectKeyDataSource, injectKeyTemplate } from '@/types/injectKey'
import { getHtmlPlainText,DominantColour } from '@/utils/common'
import { getHtmlPlainText } from '@/utils/common'
import useExport from '@/hooks/useExport'
import ThumbnailSlide from '@/views/components/ThumbnailSlide/index.vue'
import AliyunUpload from '@/utils/upload/aliyun'
......@@ -246,7 +248,7 @@
searchData.value = inject(injectKeyTemplate)
const lines = ref([] as Array < any > ) //线路
const Series = ref([] as Array < any > ) //系列
const ColorList = ref([] as Array < any > ) //DominantColour()
const ColorList = ref([] as Array < any > )
const cursors = [] as Array<any>
......@@ -471,7 +473,7 @@
queryObj.value.ColorName = ''
queryObj.value.ColorStr = ''
let Colors = ColorList.value.filter(x=>x.ID==queryColor.value.Code)
queryObj.value.SubColor = Colors[0].Content
if(Colors.length>0)queryObj.value.SubColor = Colors[0].Content
}
let response = await LineService.GetParentColor(queryColor.value)
if (response.data.resultCode == 1) {
......@@ -479,6 +481,7 @@
ColorList.value = response.data.data
let Colors = ColorList.value.filter(x=>x.Content==queryColor.value.SubColor)
if(Colors&&Colors.length>0) queryColor.value.Code = Colors[0].ID
if(!queryColor.value.Code) datas.ColorList = response.data.data
}
else datas.ColorList = response.data.data;
......
......@@ -16,12 +16,7 @@
</template>
</el-input>
</div>
<div class="row items-center" style="text-align: right;">
<!-- <div v-if="model==1" >
<div class="MarketAdd pointer">创建</div>
</div> -->
<UserCard></UserCard>
</div>
<UserCard></UserCard>
</div>
</div>
<div class="marketTag-from row">
......@@ -82,12 +77,12 @@
<el-tooltip
class="box-item"
effect="dark"
:content="x.ColorName"
:content="x.Name"
placement="bottom"
>
<div class="marketTag-color text-small pointer" @click="onColorNameChangeHandler(x)">
<span class="colorMark"
:style="{'background':x.ColorValue,'border-color':x.checked?'black':'#eee'}"></span>
:style="{'background':x.Content,'border-color':x.checked?'black':'#eee'}"></span>
</div>
</el-tooltip>
</template>
......@@ -110,7 +105,7 @@
'border-color':queryObj.ColorList.length==0?'black':'#eee'}"></span>
</div>
</el-tooltip>
<template v-for="(x,i) in ColorList" :key="i">
<template v-for="(x,i) in colorArr" :key="i">
<el-tooltip
class="box-item"
effect="dark"
......@@ -138,7 +133,7 @@
</div>
<div class="row">
<div class="MarketButton cursor-pointer"
:class="[queryObj.sort == item.type?'active':'']" v-for="(item,index) in sortArr" :key="index"
:class="[queryObj.OrderByType == item.type?'active':'']" v-for="(item,index) in sortArr" :key="index"
@click="onTypeChangeHandler(item.type,1)">
{{item.typeName}}
</div>
......@@ -160,7 +155,6 @@
</div>
</div>
<!-- q-mt-lg row wrap -->
<div v-if="dataList.length>0" class="columnCount5 rounded">
<template v-for="(item,index) in dataList">
<div class="MarketIndexListBox bg-white rounded">
......@@ -172,11 +166,11 @@
size="21px" class="MarketIconAbsolute cusor-pointer" @click="deleteTemplate(item)">
<Delete/>
</el-icon>
<el-icon v-if="model!=1" size="23px" class="MarketIconAbsolute cusor-pointer"
<!-- <el-icon v-if="model!=1" size="23px" class="MarketIconAbsolute cusor-pointer"
@click="BeFondOf(item)">
<IconLike v-if="!item.checked" class="IconLike"/>
<IconLike v-else class="IconLike" :theme="item.checked?'filled':''" :fill="item.checked?'#FF674D':'#B9B9B9'" />
</el-icon>
</el-icon> -->
</div>
<div>
<div class="MarketOpa2"></div>
......@@ -195,17 +189,12 @@
<div class="MarketIndexList-img">
<img :src="item.CoverImg" class="rounded" />
</div>
<!-- <div class="MarketIndexList-text row items-center">
<el-tag class="mx-1 q-mr-md" effect="dark" v-if="item.TemplateType==2"
size="small">广告</el-tag>
<span>{{item.Title}}</span>
</div> -->
</div>
</template>
</div>
<div v-else-if="dataList.length == 0 && !loading" class="q-mt-lg bg-white rounded"
style="padding: 30px 10px 30px 10px;">
style="padding:60px 10px;">
<el-empty description="暂无数据" :image="noDataImg(1)" />
</div>
<div v-if='queryObj.pageCount == queryObj.pageIndex && !loading' class="text-center q-pt-lg"><img :src="noDataImg(2)" width="118" /></div>
......@@ -228,7 +217,7 @@ import { useSellTemplateStore } from '@/store'
import { useScreenStore } from "@/store/screen";
import { storeToRefs } from "pinia";
import { injectKeyTemplate } from '@/types/injectKey'
import { createOpEditorLink, createSaleCreateLink, managerTemplateLink,DominantColour } from '@/utils/common'
import { createOpEditorLink, createSaleCreateLink, managerTemplateLink } from '@/utils/common'
import { ElLoading, ElMessage, ElMessageBox } from "element-plus";
import { useRouter } from "vue-router";
import UserCard from "@/components/User/UserCard.vue";
......@@ -300,15 +289,13 @@ const queryObj = reactive({
TempType: 0,
TemplateType: TemplateType,//0 不限 1模版 2广告
type: 0,
sort: 0,//排序方式
OrderByType: 0,//排序方式
})
const queryColor = ref({
DictKey: 'Trip_Template_Color',
Code: '',
})
const ColorList = ref([]) //DominantColour()
// 版型 横版 竖版
const SwitchingVersion = (row: Object) =>{
queryObj.TempType = row.Id
......@@ -424,7 +411,7 @@ const onCountryNameChangeHandler = (row: Object) => {
countriesOther.value.forEach(x=>{
x.checked = false
})
countries.value.forEach(x=>{
colorArr.value.forEach(x=>{
x.checked = false
})
}else{
......@@ -467,7 +454,7 @@ const onSeasonNameChangeHandler = (row: Object) => {
//类型切换
const onTypeChangeHandler = (Type: string,num: Number) => {
if(num==1){
queryObj.sort = Type;
queryObj.OrderByType = Type;
}else{
searchData.value.MarketTemplateType = Type
queryObj.TemplateType = Type;
......@@ -479,6 +466,9 @@ const onTypeChangeHandler = (Type: string,num: Number) => {
const onColorNameChangeHandler = (row: Object) => {
if(row=='') {
queryObj.ColorList = []
colorArrOther.value.forEach(x=>{
x.checked = false
})
colorArr.value.forEach(x=>{
x.checked = false
})
......@@ -538,14 +528,6 @@ const getTemplateQuery = async () => {
}
//颜色
if (tempData && tempData.ColorList) {
for(let i=0;i<ColorList.length;i++){
colorArr.value.push({
ColorName: ColorList[i].ColorName,
ColorValue: ColorList[i].ColorValue,
checked: false,
ID: ColorList[i].Id
})
}
// arrList(tempData.ColorList)
// colorArrOther.value = tempData.ColorList.filter((x,index)=>{
// if(model.value==1){ return index>=15 }
......@@ -600,7 +582,13 @@ const scrollingHandler = () =>{
const getColor = async () => {
let response = await LineService.GetParentColor(queryColor.value)
if (response.data.resultCode == 1) {
ColorList.value = response.data.data
let tempData = response.data.data
colorArrOther.value = tempData.filter((x,index)=>{
return index>=14
})
colorArr.value = tempData.filter((x,index)=>{
return index<14
})
}
}
......@@ -822,7 +810,7 @@ onMounted(()=>{
overflow: hidden;
box-shadow: 0px 0px 20px 0px rgba(76,87,125,0.2)!important;
grid-row-start: auto;margin-bottom: 20px;break-inside: avoid;
max-height: 362px;
/* max-height: 362px; */
}
.MarketIndexList{
width: 100%;
......
......@@ -108,7 +108,6 @@ const loadSliders = async ()=>{
const getColorShade = async (newSlides:any) => {
let dark = false
// 根据集团渲染logo
console.log(tempDatas.value.AuthType<=1,'-----------')
if(tempDatas.value.AuthType<=1){
for(let j=0;j<colorList.value.length;j++){
if (getRgbLevel(colorList.value[j].Color) > 50) dark = true
......@@ -145,17 +144,12 @@ const ResolveTripLogoHandler = async (items:any, slideIndex:number,dark:false) =
let y = templateObj[i]
let tempSize = await FileService.getImageSizeWithoutDownloading(templateObj[i].src)
let scale = parseInt(tempSize.width/tempSize.height)
let url = ''
// if(Colors[1]||scale==6) templateObj[i].filters.invert = '20%'
if(scale==1) templateObj[i].src = dark==true?acquiesceLogo.value[0]:acquiesceLogo.value[3]
if(scale<1) templateObj[i].src = dark==true?acquiesceLogo.value[1]:acquiesceLogo.value[4]
if(scale>1) templateObj[i].src = dark==true?acquiesceLogo.value[2]:acquiesceLogo.value[5]
if(tempNewSlide){
tempNewSlide.elements.push(...templateObj)
}else{
elements.push(...templateObj)
tempNewSlide = copySlidHandlerLogo(slideIndex)
}
let newTempSize = await FileService.getImageSizeWithoutDownloading(templateObj[i].src)
if(scale==1) url = dark==true?acquiesceLogo.value[0]:acquiesceLogo.value[3]
if(scale<1) url = dark==true?acquiesceLogo.value[1]:acquiesceLogo.value[4]
if(scale>1) url = dark==true?acquiesceLogo.value[2]:acquiesceLogo.value[5]
let newTempSize = await FileService.getImageSizeWithoutDownloading(url)
let width = 0
let height = 0
//按照宽度进行缩放
......@@ -169,6 +163,14 @@ const ResolveTripLogoHandler = async (items:any, slideIndex:number,dark:false) =
}
y.height = height
y.width = width
templateObj[i].src = url
if(tempNewSlide){
tempNewSlide.elements.push(...templateObj)
}else{
elements.push(...templateObj)
tempNewSlide = copySlidHandlerLogo(slideIndex)
}
} catch (error) {
}
......
......@@ -166,7 +166,7 @@ import { useSellTemplateStore } from '@/store'
import { useScreenStore } from "@/store/screen";
import { storeToRefs } from "pinia";
import { injectKeyTemplate } from '@/types/injectKey'
import { createOpEditorLink, createSaleCreateLink, managerTemplateLink,DominantColour } from '@/utils/common'
import { createOpEditorLink, createSaleCreateLink, managerTemplateLink } from '@/utils/common'
import { ElLoading, ElMessage, ElMessageBox } from "element-plus";
import { useRouter } from "vue-router";
import UserCard from "@/components/User/UserCard.vue";
......@@ -279,7 +279,7 @@ const queryColor = ref({
Code: '',
})
const setTemplateType = ref(1)
const ColorList = ref([])//DominantColour()
const ColorList = ref([])
const tableScrollHandler = ()=>{
if(queryObj.pageCount>queryObj.pageIndex){
......@@ -464,7 +464,7 @@ const queryTemplateBySearchHandler = async () => {
loading.value = true
try {
if(queryObj.pageIndex == 1) dataList.value =[]
let pageRes = await ConfigService.GetTemplagePageAsync(queryObj);
let pageRes = await ConfigService.GetManagerTripTemplatePage(queryObj);
if (pageRes.data.resultCode == 1) {
let arrList = function(list){
list.forEach(x=>{
......
......@@ -195,7 +195,6 @@
import { reduceFont } from '@/utils/fonts/convertFont'
import ConfigService from '@/services/ConfigService'
import LineService from '@/services/LineService'
import { DominantColour } from '@/utils/common'
const useUser = useUserStore()
const { userInfo } = storeToRefs(useUser)
......@@ -246,7 +245,7 @@
const fonts = ref<{fontFamily:string,uploadType:number,selectedFont?:string}[]>()
const uploadingIndex = ref(-1)
const ColorList = ref([]) //DominantColour()
const ColorList = ref([])
const multipleSelection = ref([])
const handleSelectionChange = (val: any) =>{
......@@ -424,8 +423,6 @@
dataList.value = pageRes.data.data.filter(x=>{
return !x.Code
})
// dataList.value = pageRes.data.data
// ColorList.value = pageRes.data.data
}
for(let i=0;i<dataList.value.length;i++){
let Color = ColorList.value.filter(x=>{
......
<template>
<div class="column items-center footer-box">
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1713237911000_602.png" style="width:10.15625vw;margin-bottom: 0.78125vw">
<div class="text-desc">@2012-2024 成都微途科技有限公司 版权所有 蜀ICP备13024891号-9</div>
<div class="text-desc">@2012-2024 成都微途科技有限公司 版权所有 <a class="q-pl-md" href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank"
style="color: rgb(155, 153, 188);text-decoration: none;">蜀ICP备13024891号-9</a></div>
</div>
</template>
......
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