Browse Source

营销推广页面

zq-develop
zq 2 months ago
parent
commit
46e3153817
  1. 1
      src/assets/site/form_linkActive.svg
  2. BIN
      src/assets/site/step_1.png
  3. BIN
      src/assets/site/step_2.png
  4. BIN
      src/assets/site/step_3.png
  5. 1
      src/assets/site/uploadIcon.svg
  6. 6
      src/components/GuipButton.vue
  7. 4
      src/components/GuipInput.vue
  8. 4
      src/components/PageTitle.vue
  9. 10
      src/router/index.js
  10. 86
      src/style/theme/common.scss
  11. 2
      src/views/SiteBaseSetting.vue
  12. 8
      src/views/SiteH5.vue
  13. 136
      src/views/SitePersonalization.vue
  14. 417
      src/views/SiteSem.vue
  15. 4
      src/views/SiteSetting.vue

1
src/assets/site/form_linkActive.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.1 KiB

BIN
src/assets/site/step_1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
src/assets/site/step_2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
src/assets/site/step_3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

1
src/assets/site/uploadIcon.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="20" height="16" viewBox="0 0 20 16"><defs><clipPath id="master_svg0_166_43602"><rect x="0" y="0" width="20" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_166_43602)"><g transform="matrix(1,0,0,-1,0,30.6875)"><g><path d="M4.5,15.34375Q2.59375,15.40625,1.3125,16.65625Q0.0625,17.9375,0,19.84375Q0.03125,21.34375,0.84375,22.46875Q1.65625,23.59375,3,24.09375Q3,24.21875,3,24.34375Q3.0625,26.46875,4.46875,27.87495Q5.875,29.28125,8,29.34375Q9.40625,29.31255,10.5312,28.65625Q11.6562,27.96875,12.3438,26.84375Q13.0625,27.34375,14,27.34375Q15.2812,27.31255,16.125,26.46875Q16.9688,25.62495,17,24.34375Q17,23.78125,16.8125,23.25Q18.1875,22.96875,19.0938,21.875Q19.9688,20.8125,20,19.34375Q19.9688,17.65625,18.8438,16.5Q17.6875,15.375,16,15.34375L4.5,15.34375ZM6.96875,22.125Q6.53125,21.59375,6.96875,21.0625Q7.5,20.625,8.03125,21.0625L9.25,22.28125L9.25,18.09375Q9.3125,17.40625,10,17.34375Q10.6875,17.40625,10.75,18.09375L10.75,22.28125L11.9688,21.0625Q12.5,20.625,13.0312,21.0625Q13.4688,21.59375,13.0312,22.125L10.5312,24.625Q10,25.0625,9.46875,24.625L6.96875,22.125Z" fill="#626573" fill-opacity="1"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

6
src/components/GuipButton.vue

@ -49,4 +49,10 @@ export default {
} }
} }
</script> </script>
<style scoped lang="scss">
button span{
display: flex;
align-items: center;
}
</style>

4
src/components/GuipInput.vue

@ -9,7 +9,7 @@
:placeholder="placeholder1" :placeholder="placeholder1"
:disabled="disabled" :disabled="disabled"
:maxlength="maxlength1" :maxlength="maxlength1"
:style="{width:width}" :style="{width:width,height:height}"
:minLength="minLength1" :minLength="minLength1"
:show-word-limit="showWordLimit" :show-word-limit="showWordLimit"
@input="$emit('input', $event)" @input="$emit('input', $event)"
@ -58,7 +58,7 @@
width:'510px', width:'510px',
height:'38px' height:'38px'
}, },
placeholder1:'请输入内容' placeholder1:''
} }
}, },
watch: { // value prop 便 inputValue watch: { // value prop 便 inputValue

4
src/components/PageTitle.vue

@ -1,5 +1,5 @@
<template> <template>
<div class="page-title-wrap min-flex"> <div :class="['page-title-wrap', className ? className : 'min-flex']">
<b >{{ pageTitle }}</b> <b >{{ pageTitle }}</b>
</div> </div>
</template> </template>
@ -9,7 +9,7 @@ import { mapState } from 'vuex';
export default { export default {
// //
name: '', name: '',
props: [''], props: ['className'],
components: { components: {
// GuipInput, // GuipInput,

10
src/router/index.js

@ -80,6 +80,16 @@ const routes = [{
name: '个性化设置', name: '个性化设置',
component: () => import( /* webpackChunkName: "sitePersonalization" */ '../views/SitePersonalization.vue') component: () => import( /* webpackChunkName: "sitePersonalization" */ '../views/SitePersonalization.vue')
}, },
{
path: 'siteH5',
name: '移动端设置',
component: () => import( /* webpackChunkName: "siteH5" */ '../views/SiteH5.vue')
},
{
path: 'siteSem',
name: '营销推广',
component: () => import( /* webpackChunkName: "siteSem" */ '../views/SiteSem.vue')
},
] ]
}, },
] ]

86
src/style/theme/common.scss

@ -13,6 +13,31 @@ body {
padding: 0; padding: 0;
} }
} }
.point{
cursor: pointer;
}
.mt32{
margin-top: 32px;
}
.mb32{
margin-bottom: 32px;
}
.hide{
display: none !important;
}
.column{
display: flex;
flex-direction: column;
}
.mb24{
margin-bottom: 24px;
}
.mt12{
margin-top: 12px;
}
.mt10{
margin-top: 10px;
}
.ceshi{ .ceshi{
transition: all .5s; transition: all .5s;
box-sizing: border-box; box-sizing: border-box;
@ -21,6 +46,28 @@ body {
/* 蓝色阴影_常规 */ /* 蓝色阴影_常规 */
box-shadow: 0px 4px 16px 0px rgba(17, 55, 143, 0.12); box-shadow: 0px 4px 16px 0px rgba(17, 55, 143, 0.12);
} }
::v-deep .el-radio__original {
display: none !important;
}
::v-deep .el-radio:focus:not(.is-focus):not(:active):not(.is-disabled)
.el-radio__inner {
box-shadow: none !important;
}
.addStore {
margin-top: 12px;
border-radius: 4px;
opacity: 1;
/* text/text_white_2 */
border: 1px dashed #BABDC2;
padding: 15px 20px;
color: #626573;
justify-content: center;
img{
margin-right: 12px;
}
}
@keyframes fadeInOut { @keyframes fadeInOut {
0% { 0% {
opacity: 0; opacity: 0;
@ -36,19 +83,7 @@ body {
.ellipsis{ .ellipsis{
} }
.hide{
display: none !important;
}
.column{
display: flex;
flex-direction: column;
}
.mb24{
margin-bottom: 24px;
}
.mt12{
margin-top: 12px;
}
.el-container { .el-container {
height: 100%; height: 100%;
@ -73,6 +108,23 @@ body {
width: 84.75%; width: 84.75%;
margin: 0 auto; margin: 0 auto;
} }
.min-flex-right {
min-width: 1033px;
max-width: 1556px;
width: 84.75%;
margin: 0 auto;
.flex-common{
.flex-left,
.flex-right {
min-width: 440px;
max-width: 590px;
flex: 1;
}
.flex-line {
margin: 0 33px;
}
}
}
.desc { .desc {
font-size: 12px; font-size: 12px;
@ -168,6 +220,13 @@ body {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
transition: all .3s; transition: all .3s;
span{
display: flex;
align-items: center;
}
img{
margin-right: 6px;
}
} }
.el-button--normal { .el-button--normal {
@ -366,6 +425,7 @@ body {
.el-textarea__inner { .el-textarea__inner {
padding: 10px 12px; padding: 10px 12px;
border-radius: 2px; border-radius: 2px;
height: 100%;
} }
.el-textarea__inner:hover { .el-textarea__inner:hover {

2
src/views/SiteBaseSetting.vue

@ -1,5 +1,5 @@
<template> <template>
<div class="site-setting-wrap min-flex"> <div class="site-setting-wrap min-flex-rigth">
<div class="siteMessage flex-common" id="siteMessage1"> <div class="siteMessage flex-common" id="siteMessage1">
<h3>站点信息</h3> <h3>站点信息</h3>
<el-form :model="siteForm" :rules="siteFormrules" ref="siteForm"> <el-form :model="siteForm" :rules="siteFormrules" ref="siteForm">

8
src/views/SiteH5.vue

@ -0,0 +1,8 @@
<template>
<div class="site-personal-wrap min-flex-right">
<div class="siteMessage flex-common" id="siteMessage4">
<h3>搜索引擎优化SEO <span>通过SEO设置可以免费获得流量提高网站在搜索引擎中的排名</span></h3>
</div>
</div>
</template>

136
src/views/SitePersonalization.vue

@ -1,5 +1,5 @@
<template> <template>
<div class="site-personal-wrap min-flex"> <div class="site-personal-wrap min-flex-right">
<div class="siteMessage flex-common" id="siteMessage4"> <div class="siteMessage flex-common" id="siteMessage4">
<h3>网页模板</h3> <h3>网页模板</h3>
<el-form ref="formRef"> <el-form ref="formRef">
@ -33,32 +33,36 @@
<el-form ref="formRef"> <el-form ref="formRef">
<el-tabs v-model="activeName" @tab-click="handleClick"> <el-tabs v-model="activeName" @tab-click="handleClick">
<p class="flex siteMessage5_desc"> <img src="@/assets/site/info_filled.svg" alt=""> <p class="flex siteMessage5_desc"> <img src="@/assets/site/info_filled.svg" alt="">
展示在网站右侧悬浮栏的客服请至少设置1个</p> {{ textObj[activeName] }}</p>
<el-tab-pane label="网站客服" name="first"> <el-tab-pane label="网站客服" name="1">
<div class="flex-wrap"> <div class="flex-wrap">
<div class="flex-left"> <div class="flex-left">
<p class="flex-left-desc">旺旺客服</p> <p class="flex-left-desc">旺旺客服</p>
<GuipInput ref="GuipInput" width="100%" v-model="personalForm8.checkNum" <GuipInput ref="GuipInput" class="mt12 mb24" width="100%"
placeholder="请输入数字"> v-model="personalForm8.checkNum" placeholder="请填写账号">
</GuipInput> </GuipInput>
<el-upload class="avatar-uploader" action="https://jsonplaceholder.typicode.com/posts/" <p class="flex-left-desc">QQ客服</p>
:show-file-list="false" :on-success="handleAvatarSuccess" <div class="qqCode-wrap">
:before-upload="beforeAvatarUpload"> <el-upload class="avatar-uploader mt12" accept=".jpg,.png"
<GuipButton> <img src="@/assets/site/info_filled.svg" alt=""> 重新上传</GuipButton> action="https://jsonplaceholder.typicode.com/posts/" :show-file-list="false"
:on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
<GuipButton> <img src="@/assets/site/uploadIcon.svg" alt=""> 上传二维码</GuipButton>
</el-upload> </el-upload>
<p class="avatar-desc">支持 jpgpng 格式大小不超过 2MB </p> <p class="avatar-desc">支持 jpgpng 格式大小不超过 2MB </p>
</div> </div>
</div>
<div class="flex-line"></div> <div class="flex-line"></div>
<div class="flex-right"> <div class="flex-right">
<p class="flex-left-desc">微信客服</p> <p class="flex-left-desc">微信客服</p>
<div class="flex"> <div class="flex mt12">
<img v-if="imageUrl" :src="imageUrl" class="kefuImg"> <img v-if="imageUrl1" :src="imageUrl1" class="kefuImg">
<img e-else src="@/assets/site/kefuTem.png" alt="" class="kefuImg"> <img e-else src="@/assets/site/kefuTem.png" alt="" class="kefuImg">
<div class="right"> <div class="qqCode-wrap right">
<el-upload class="avatar-uploader" <el-upload class="avatar-uploader" accept=".jpg,.png"
action="https://jsonplaceholder.typicode.com/posts/" :show-file-list="false" action="https://jsonplaceholder.typicode.com/posts/" :show-file-list="false"
:on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload"> :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
<GuipButton> <img src="" alt=""> 重新上传</GuipButton> <GuipButton> <img src="@/assets/site/uploadIcon.svg" alt=""> 重新上传
</GuipButton>
</el-upload> </el-upload>
<p class="avatar-desc">支持 jpgpng 格式大小不超过 2MB </p> <p class="avatar-desc">支持 jpgpng 格式大小不超过 2MB </p>
</div> </div>
@ -66,8 +70,41 @@
</div> </div>
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="报告页客服" name="second">报告页客服</el-tab-pane> <el-tab-pane label="报告页客服" name="2">
<el-tab-pane label="支付账单客服" name="third">支付账单客服</el-tab-pane> <div class="flex-wrap">
<div class="flex-left">
<p class="flex-left-desc">微信客服</p>
<div class="flex mt12">
<img v-if="imageUrl2" :src="imageUrl2" class="kefuImg">
<img e-else src="@/assets/site/kefuTem.png" alt="" class="kefuImg">
<div class="qqCode-wrap right">
<el-upload class="avatar-uploader" accept=".jpg,.png"
action="https://jsonplaceholder.typicode.com/posts/" :show-file-list="false"
:on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
<GuipButton> <img src="@/assets/site/uploadIcon.svg" alt=""> 重新上传
</GuipButton>
</el-upload>
<p class="avatar-desc">支持 jpgpng 格式大小不超过 2MB </p>
</div>
</div>
</div>
<div class="flex-line borderNone"></div>
<div class="flex-right"></div>
</div>
</el-tab-pane>
<el-tab-pane label="支付账单客服" name="3">
<div class="flex-wrap">
<div class="flex-left">
<p class="flex-left-desc">客服微信号</p>
<GuipInput ref="GuipInput" class="mt12 mb24" width="100%"
v-model="personalForm8.checkNum1" placeholder="请填写">
</GuipInput>
</div>
<div class="flex-line borderNone"></div>
<div class="flex-right"></div>
</div>
</el-tab-pane>
</el-tabs> </el-tabs>
@ -175,7 +212,7 @@
<div class="flex-wrap"> <div class="flex-wrap">
<div class="flex-left"> <div class="flex-left">
<p class="flex-left-desc">检测篇数基数</p> <p class="flex-left-desc">检测篇数基数</p>
<GuipInput ref="GuipInput" width="100%" v-model="personalForm8.checkNum" placeholder="请输入数字"> <GuipInput ref="GuipInput" class="mt12" width="100%" v-model="personalForm8.checkNum" placeholder="请输入数字">
</GuipInput> </GuipInput>
</div> </div>
<div class="flex-line borderNone"></div> <div class="flex-line borderNone"></div>
@ -206,8 +243,12 @@ export default {
}, },
data() { data() {
return { return {
activeName: 'first', textObj: {
imageUrl: '', '1': '展示在网站右侧悬浮栏的客服,请至少设置1个',
'2': '展示在报告页右侧悬浮栏的客服,请至少设置1个',
'3': '显示在微信、支付宝账单详情中,方便用户联系'
},
activeName: '1',
checkList1: ['识别重复辅助信息'], checkList1: ['识别重复辅助信息'],
checkList: ['识别重复正文'], checkList: ['识别重复正文'],
// 线 // 线
@ -223,7 +264,10 @@ export default {
}, },
personalForm8: { personalForm8: {
checkNum: 0, checkNum: 0,
} },
imageUrl1:'',
imageUrl2:'',
imageUrl3:'',
} }
}, },
computed: { computed: {
@ -253,24 +297,42 @@ export default {
}, },
// //
handleAvatarSuccess(res, file) { handleAvatarSuccess(res, file) {
this.imageUrl = URL.createObjectURL(file.raw); this.imageUrl1 = URL.createObjectURL(file.raw);
}, },
beforeAvatarUpload(file) { beforeAvatarUpload(file) {
const isJPG = file.type === 'image/jpeg'; const isJPG = file.type === 'image/jpeg' || file.type === 'image/png';
const isLt2M = file.size / 1024 / 1024 < 2; const isLt2M = file.size / 1024 / 1024 < 2;
if (!isJPG) { if (!isJPG) {
this.$message.error('上传头像图片只能是 JPG 格式!'); this.$message.error('上传头像图片只能是 JPG 或 PNG 格式!');
} }
if (!isLt2M) { if (!isLt2M) {
this.$message.error('上传头像图片大小不能超过 2MB!'); this.$message.error('上传头像图片大小不能超过 2MB!');
} }
return isJPG && isLt2M; return isJPG && isLt2M;
},
handleClick(tab, event) {
console.log(tab, event);
} }
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-tabs__item.is-active {
letter-spacing: 0.08em;
/* main/main_stardard */
color: #006AFF;
font-weight: bold;
}
::v-deep .el-tabs__nav-wrap::after {
content: none;
}
::v-deep .el-tabs__header {
margin-bottom: 0;
}
.site-personal-wrap { .site-personal-wrap {
width: 100%; width: 100%;
@ -280,7 +342,20 @@ export default {
border: 1px solid transparent; border: 1px solid transparent;
} }
.siteMessage5_desc {} .siteMessage5_desc {
border-radius: 4px;
/* middle/middle_blue_1 */
background: #F2F7FF;
/* middle/middle_blue_3 */
border: 1px solid #BFDAFF;
padding: 8px 13px;
margin-bottom: 32px;
img {
margin-right: 8px;
}
}
.checkboxGroup { .checkboxGroup {
display: flex; display: flex;
@ -359,9 +434,22 @@ export default {
height: 120px; height: 120px;
} }
.qqCode-wrap {
display: grid;
justify-items: start;
// justify-content: flex-start;
// text-align: left;
// flex-direction: column;
}
.qqCode-wrap.right {
margin: 0 0 8px 12px;
}
.avatar-desc { .avatar-desc {
/* regular/body3-Regular */ /* regular/body3-Regular */
/* 样式描述:辅助文字 */ /* 样式描述:辅助文字 */
margin-top: 8px;
font-family: Inter; font-family: Inter;
font-size: 12px; font-size: 12px;
font-weight: normal; font-weight: normal;

417
src/views/SiteSem.vue

@ -0,0 +1,417 @@
<template>
<div class="site-sem-wrap min-flex-right">
<div class="siteMessage flex-common" id="siteMessage11">
<h3>搜索引擎优化SEO <span>通过SEO设置可以免费获得流量提高网站在搜索引擎中的排名</span></h3>
<el-form ref="formRef" :model="semForm1">
<div class="flex-wrap">
<div class="flex-left">
<GuipFormItem column="column" class="mb24" label="站点标题(T:title)">
<GuipInput slot="formDom" ref="GuipInput" class=" mb24" width="100%"
v-model="semForm1.title" placeholder="建议80字内">
</GuipInput>
</GuipFormItem>
<GuipFormItem column="column" label="站点关键词(K:keyword)">
<GuipInput slot="formDom" ref="GuipInput" width="100%" height="68px" type="textarea"
v-model="semForm1.keyWord">
</GuipInput>
</GuipFormItem>
</div>
<div class="flex-line "></div>
<div class="flex-right">
<GuipFormItem column="column" label="站点描述(D:description)">
<GuipInput slot="formDom" ref="GuipInput" width="100%" height="160px" type="textarea"
v-model="semForm1.desc">
</GuipInput>
</GuipFormItem>
</div>
</div>
</el-form>
<GroupFormBtns @cancel="cancelClick" @confirm="confirmClick('semForm1')" />
</div>
<div class="siteMessage flex-common mt12" id="siteMessage12">
<h3>搜索引擎竞价SEM <span>通过SEM设置获得流量提高网站在搜索引擎中的排名</span></h3>
<el-form ref="baiduRef" class="bidform" :model="semFormbid1" v-if="bidList.includes('baidu')">
<div class="semBidWrap">
<h3 class="flex-between">
<p>百度OCPC竞价 <span>自动化的出价和优化以实现更高的广告投放效果和ROI</span></p>
<div class="flex close-bid point" @click="deleteBid('baidu')">删除<img
src="@/assets/register/close.svg" alt=""></div>
</h3>
<div class="baidu-wrap bidWrap">
<div class="bidwrap-item">
<div class="bidwrap-item-top mb24 flex">
<img class="bid-item-img" src="@/assets/site/step_1.png" alt="">
<div class="top-right column">
<b>输入Token</b>
<p>百度创建转化追踪转化类型选择服务购买成功接入方式选择线索API复制token填入下方输入框<img
src="@/assets/site/form_qua_ic.svg" alt=""> 指南 </p>
</div>
</div>
<div class="bidwrap-item-bot flex">
<div style="flex: 1;margin-right: 10px;">
<GuipInput ref="GuipInput" width="100%" v-model="semFormbid1.token"
placeholder="请输入token" />
</div>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }">确认</GuipButton>
</div>
</div>
<div class="bidwrap-item">
<div class="bidwrap-item-top mb24 flex">
<img class="bid-item-img" src="@/assets/site/step_2.png" alt="">
<div class="top-right column">
<b>联调创建OCPC</b>
<p>创建转化追踪后点击该条记录的联调复制带有bd-vid的推广url复制到下方输入框点击按钮开始联调<img
src="@/assets/site/form_qua_ic.svg" alt=""> 指南 </p>
</div>
</div>
<div class="bidwrap-item-bot flex">
<div style="flex: 1;margin-right: 10px;">
<GuipInput ref="GuipInput" width="100%" v-model="semFormbid1.url"
placeholder="请输入url" />
</div>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }">开始联调
</GuipButton>
</div>
</div>
</div>
</div>
</el-form>
<el-form class="bidform" ref="360Ref" :model="semFormbid2" v-if="bidList.includes('360')">
<div class="semBidWrap">
<h3 class="flex-between">
<p>360OCPC竞价 <span>自动化的出价和优化以实现更高的广告投放效果和ROI</span></p>
<div class="flex close-bid point" @click="deleteBid('360')">删除<img
src="@/assets/register/close.svg" alt=""></div>
</h3>
<div class="baidu-wrap bidWrap">
<div class="beforeNotice">
<h4> <img src="@/assets/site/info_filled.svg" alt=""> 前期准备事项</h4>
<p class="mt12 flex">1. <a href="" class="flex"> <img
src="@/assets/site/form_linkActive.svg" alt="">前往登陆</a>登录360智慧平台</p>
<p class="mt10 flex">2. <a href="" class="flex"> <img
src="@/assets/site/form_linkActive.svg"
alt="">前往ocpc设置页</a>点击添加OCPC投放包按钮注意转换类型只能选择订单其他的根据表单提示填写</p>
</div>
<div class="bidwrap-item">
<div class="biditem360 mb24 flex">
<img class="bid-item-img" src="@/assets/site/step_1.png" alt="">
<b>AppKey</b>
<div style="flex: 1;margin-right: 10px;">
<GuipInput ref="GuipInput" width="100%" v-model="semFormbid2.appKey"
placeholder="请输入" />
</div>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }"
@click="confirmFormbid2('appKey')">确认</GuipButton>
</div>
<div class="biditem360 mb24 flex">
<img class="bid-item-img" src="@/assets/site/step_2.png" alt="">
<b>AppSecret</b>
<div style="flex: 1;margin-right: 10px;">
<GuipInput ref="GuipInput" width="100%" v-model="semFormbid2.appSecret"
placeholder="请输入" />
</div>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }"
@click="confirmFormbid2('appSecret')">确认</GuipButton>
</div>
</div>
</div>
</div>
</el-form>
<el-form ref="formRef" class="bidform" :model="semFormbid3" v-if="bidList.includes('mast')">
<div class="semBidWrap">
<h3 class="flex-between">
<p>360OCPC竞价 <span>自动化的出价和优化以实现更高的广告投放效果和ROI</span></p>
<div class="flex close-bid point" @click="deleteBid('360')">删除<img
src="@/assets/register/close.svg" alt=""></div>
</h3>
<div class="baidu-wrap bidWrap">
<div class="beforeNotice">
<h4> <img src="@/assets/site/info_filled.svg" alt=""> 前期准备事项</h4>
<p class="mt12 flex">1. <a href="" class="flex"> <img
src="@/assets/site/form_linkActive.svg" alt="">前往微软云</a>Azure登录后填写个人资料并完成注册</p>
<p class="mt10 flex">2. <a href="" class="flex"> <img
src="@/assets/site/form_linkActive.svg"
alt="">前往应用注册</a>侧边栏点击应用注册然后在右侧应用列表中注册应用程序</p>
</div>
<div class="bidwrap-item">
<div class="biditemMast mb24 flex-between">
<div class="bidwrap-item-top mb24 flex">
<img class="bid-item-img" src="@/assets/site/step_1.png" alt="">
<div class="top-right column">
<b>配置应用信息</b>
<p>在微软云平台获得应用程序(客户端) ID并联系开户人员获得开发者令牌Developer token </p>
</div>
</div>
<div class="flex">
<span class="notSet">已设置</span>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }"
@click="confirmFormbid2('appKey')">管理设置</GuipButton>
</div>
</div>
<div class="biditem360 mb24 flex">
<img class="bid-item-img" src="@/assets/site/step_2.png" alt="">
<b>AppSecret</b>
<div style="flex: 1;margin-right: 10px;">
<GuipInput ref="GuipInput" width="100%" v-model="semFormbid2.appSecret"
placeholder="请输入" />
</div>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }"
@click="confirmFormbid2('appSecret')">确认</GuipButton>
</div>
<div class="biditem360 mb24 flex">
<img class="bid-item-img" src="@/assets/site/step_3.png" alt="">
<b>AppSecret</b>
<div style="flex: 1;margin-right: 10px;">
<GuipInput ref="GuipInput" width="100%" v-model="semFormbid2.appSecret"
placeholder="请输入" />
</div>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }"
@click="confirmFormbid2('appSecret')">确认</GuipButton>
</div>
</div>
</div>
</div>
</el-form>
<div class="addStore flex" @click="addBid">
<img src="@/assets/addIcon.svg" alt="">增加搜索竞价
</div>
</div>
<div class="siteMessage flex-common mt12" id="siteMessage13">
<h3>访问统计 <span>输入统计代码便于统计浏览点击量(可以不填)</span></h3>
<el-form ref="formRef" :model="semForm3">
<GuipInput ref="GuipInput" width="100%" height="160px" type="textarea" v-model="semForm3.code">
</GuipInput>
</el-form>
<GroupFormBtns @cancel="cancelClick" @confirm="confirmClick('semForm3')" />
</div>
<GuipDialog type="normal" :dialogVisible="dialogVisibleBid" title="增加搜索竞价" :show-close-button="false"
:show-cancel-button="true" cancelText="取消" confirmText="确定" @confirm="handleConfirm" @cancel="handleCancel"
@dialogVisibleChange="dialogVisibleChange">
<el-radio-group v-model="bidAddRadio" class=" mt12 column" @input="radioChange">
<!-- <div style="margin-top: 16px;" class="column radio-wrap"> -->
<el-radio class="mb24" v-for="key in Object.keys(bidAddList)" :disabled="bidList.includes(key)"
:key="key" :label="key">{{
bidAddList[key] }}{{ bidList.includes(key) ? '(已添加)' : '' }}</el-radio>
<!-- </div> -->
</el-radio-group>
</GuipDialog>
</div>
</template>
<script>
import GuipInput from '@/components/GuipInput.vue';
import { mapState } from 'vuex';
import store from '../store';
// import GuipButton from '@/components/GuipButton.vue';
import GroupFormBtns from '@/components/GroupFormBtns.vue';
import GuipFormItem from '@/components/GuipFormItem.vue';
import GuipDialog from '@/components/GuipDialog.vue';
import GuipButton from '@/components/GuipButton.vue';
export default {
//
name: '',
props: [''],
components: {
GuipInput,
GuipFormItem,
GuipButton,
GroupFormBtns,
GuipDialog
},
data() {
return {
bidList: ['baidu', '360','mast'],
bidAddRadio: '',
bidAddList: {
'baidu': '百度OCPC竞价',
'360': '360OCPC竞价',
'mast': '必应TCPA竞价',
},
dialogVisibleBid: false,
semForm1: {
title: '',
keyWord: '',
desc: ''
},
semForm2: {
title: '',
keyWord: '',
desc: ''
},
semForm3: {
code: '',
},
semFormbid1: {
token: '',
url: ''
},
semFormbid2: {
appKey: '',
appSecret: ''
},
semFormbid3: {
}
}
},
computed: {
...mapState(['pageTitle']) // VuexshowSidebar
},
mounted() {
store.commit('SET_PAGETITLE', '营销推广');
},
methods: {
addBid() {
this.dialogVisibleBid = true;
},
confirmFormbid2(key) {
console.log(key, 'key---');
},
radioChange(data) {
console.log(data, 'radio--data');
},
cancelClick() {
console.log('quxiao');
},
confirmClick(type) {
console.log(type, '确认');
},
//
handleConfirm() {
this.$message.success('点击了确认按钮');
this.dialogVisibleBid = false;
},
//
handleCancel() {
this.$message.warning('点击了取消按钮');
this.dialogVisibleBid = false;
},
dialogVisibleChange(data) {
console.log(data, 'data098908090');
},
deleteBid(type) {
let index = this.bidList.indexOf(type)
this.bidList.splice(index, index + 1)
}
}
}
</script>
<style scoped lang="scss">
.site-sem-wrap {
width: 100%;
letter-spacing: 0.08em;
}
.green{
color: #00C261;
}
.notSet{
color: #FF4D4F;
}
.bidform {
&:nth-child(even) {
margin: 32px 0;
}
}
.beforeNotice {
h4 {
margin: 0;
}
margin-bottom: 18px;
text-align: left;
box-sizing: border-box;
padding: 20px 14px;
border-radius: 4px;
/* middle/middle_blue_1 */
background: #F2F7FF;
/* middle/middle_blue_3 */
border: 1px solid #BFDAFF;
a {
text-decoration: none;
color: #006AFF;
margin-right: 10px;
img {
margin-left: 12px;
}
}
}
.biditem360 {
b {
display: inline-block;
width: 80px;
text-align: left;
margin-right: 10px;
}
}
.addStore {
margin-top: 24px;
}
.radio-wrap {}
.semBidWrap {
background: #FAFAFA;
padding: 18px 14px;
box-sizing: border-box;
.el-form-item {
margin-bottom: 0;
}
.close-bid {
color: #626573;
font-size: 14px;
font-weight: normal;
img {
width: 16px;
height: 16px;
margin-left: 6px;
}
}
.bidWrap {
.bidwrap-item {
padding: 24px 16px;
box-sizing: border-box;
border-radius: 8px;
background: #FFFFFF;
.bid-item-img {
width: 32px;
height: 32px;
margin-right: 22px;
}
.bidwrap-item-top {
.top-right {
p {
margin-top: 10px;
}
}
}
.bidwrap-item-bot {
padding-left: 54px;
justify-content: flex-end;
}
}
}
}
</style>

4
src/views/SiteSetting.vue

@ -6,7 +6,7 @@
<main class="main-content" ref="scrollContainer"> <main class="main-content" ref="scrollContainer">
<!-- 面包屑 位置 --> <!-- 面包屑 位置 -->
<PageTitle /> <PageTitle className="min-flex-right"/>
<router-view></router-view> <router-view></router-view>
<Footer></Footer> <Footer></Footer>
@ -32,7 +32,7 @@ export default {
return {} return {}
}, },
mounted(){ mounted(){
this.$refs.scrollContainer.scrollTo(0) // this.$refs.scrollContainer.scrollTo(0)
}, },
methods: { methods: {
} }

Loading…
Cancel
Save