Browse Source

tcpa竞价弹出框

zq-develop
zq 2 months ago
parent
commit
d677ce75f4
  1. 1
      src/assets/site/form_copy.svg
  2. 66
      src/components/site/ConfigAppInformation.vue
  3. 76
      src/components/site/ConfigOffLineConversion.vue
  4. 64
      src/components/site/CreateOffLine.vue
  5. 3
      src/style/theme/common.scss
  6. 170
      src/views/SiteSem.vue

1
src/assets/site/form_copy.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.2 KiB

66
src/components/site/ConfigAppInformation.vue

@ -0,0 +1,66 @@
<template>
<div class="config-appInfo-wrap">
<el-form :model="formConfig">
<p class="column">
<b>1. 应用程序客户端ID</b>
<span>微软云平台应用列表点击刚创建的应用在应用概览中即可看到</span>
</p>
<GuipInput v-model="formConfig.id" placeholder="请输入" />
<p class="column mt16">
<b>1. 开发者令牌Developer token</b>
<span>联系开户人员获取</span>
</p>
<GuipInput v-model="formConfig.merchantID" placeholder="商户号" />
</el-form>
</div>
</template>
<script>
import GuipInput from '@/components/GuipInput.vue';
// import GuipFormItem from '@/components/GuipFormItem.vue';
export default {
//
name: '',
props: [''],
components: {
GuipInput,
// GuipFormItem,
},
data() {
return {
formConfig: {
id: '',
merchantID: ''
}
}
},
computed: {
// ...mapState(['pageTitle']) // VuexshowSidebar
},
mounted() {
// store.commit('SET_PAGETITLE', '广');
},
methods: {
}
}
</script>
<style scoped lang="scss">
.config-appInfo-wrap {
b {
font-weight: normal;
margin-bottom: 8px;
}
.el-form-item {
margin-bottom: 0;
}
span {
color: #8A9099;
font-size: 12px;
margin-bottom: 8px;
}
}
</style>

76
src/components/site/ConfigOffLineConversion.vue

@ -0,0 +1,76 @@
<template>
<div class="config-offline-wrap">
<el-form :model="formConfig">
<p class="flex"><a href="" class="flex"> <img src="@/assets/site/form_linkActive.svg"
alt="">前往微软云</a>左上角切换有效的账户从浏览器地址栏链接中获取aid的值和cid</p>
<p class="createOffdescBox mt12 mb24">
以链接https://ui.ads.microsoft.com/campai/vnext/conversiongoals?<br/>aid=12345&ccuisrc=4&cid=67890&uid=xxx <br/>
aid就是12345 cid就是67890
</p>
<p class="column">
<b>1. aid</b>
</p>
<GuipInput v-model="formConfig.id" placeholder="请输入" />
<p class="column mt16">
<b>1. cid</b>
</p>
<GuipInput v-model="formConfig.merchantID" placeholder="商户号" />
</el-form>
</div>
</template>
<script>
import GuipInput from '@/components/GuipInput.vue';
// import GuipFormItem from '@/components/GuipFormItem.vue';
export default {
//
name: '',
props: [''],
components: {
GuipInput,
// GuipFormItem,
},
data() {
return {
formConfig: {
id: '',
merchantID: ''
}
}
},
computed: {
// ...mapState(['pageTitle']) // VuexshowSidebar
},
mounted() {
// store.commit('SET_PAGETITLE', '广');
},
methods: {
}
}
</script>
<style scoped lang="scss">
.config-offline-wrap {
b {
font-weight: normal;
margin-bottom: 8px;
}
a {
text-decoration: none;
color: #006AFF;
img {
margin-right: 10px;
}
}
.el-form-item {
margin-bottom: 0;
}
.createOffdescBox {
color: #6B7280;
text-align: left;
}
}
</style>

64
src/components/site/CreateOffLine.vue

@ -0,0 +1,64 @@
<template>
<div class="create-offline-wrap">
<el-form :model="formConfig">
<p class="flex"><a href="" class="flex"> <img src="@/assets/site/form_linkActive.svg"
alt="">前往微软云</a>左上角切换有效的账户后点击转化->点击转化目标->点击创建</p>
<p class="createOffdescBox mt12">您想要跟踪哪种类型的转化 选择离线->点击下一步<br />
目标类别 选择购买->点击下一步<br />
目标名称自行设置并同步到下方输入框</p>
<GuipInput label="目标名称" column="column" v-model="formConfig.merchantID" placeholder="商户号" />
</el-form>
</div>
</template>
<script>
import GuipInput from '@/components/GuipInput.vue';
// import GuipFormItem from '@/components/GuipFormItem.vue';
export default {
//
name: '',
props: [''],
components: {
GuipInput,
// GuipFormItem,
},
data() {
return {
formConfig: {
id: '',
merchantID: ''
}
}
},
computed: {
// ...mapState(['pageTitle']) // VuexshowSidebar
},
mounted() {
// store.commit('SET_PAGETITLE', '广');
},
methods: {
}
}
</script>
<style scoped lang="scss">
.create-offline-wrap {
color: #6B7280;
.el-form-item{
margin-bottom: 0;
}
a {
text-decoration: none;
color: #006AFF;
img {
margin-right: 10px;
}
}
.createOffdescBox {
color: #6B7280;
text-align: left;
}
}
</style>

3
src/style/theme/common.scss

@ -16,6 +16,9 @@ body {
.point{ .point{
cursor: pointer; cursor: pointer;
} }
.mt16{
margin-top: 16px;
}
.mt32{ .mt32{
margin-top: 32px; margin-top: 32px;
} }

170
src/views/SiteSem.vue

@ -53,7 +53,7 @@
<GuipInput ref="GuipInput" width="100%" v-model="semFormbid1.token" <GuipInput ref="GuipInput" width="100%" v-model="semFormbid1.token"
placeholder="请输入token" /> placeholder="请输入token" />
</div> </div>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }">确认</GuipButton> <GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }" @click="semFormConmit('baidu','token')">确认</GuipButton>
</div> </div>
</div> </div>
<div class="bidwrap-item"> <div class="bidwrap-item">
@ -70,7 +70,7 @@
<GuipInput ref="GuipInput" width="100%" v-model="semFormbid1.url" <GuipInput ref="GuipInput" width="100%" v-model="semFormbid1.url"
placeholder="请输入url" /> placeholder="请输入url" />
</div> </div>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }">开始联调 <GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }" @click="semFormConmit('baidu','url')">开始联调
</GuipButton> </GuipButton>
</div> </div>
</div> </div>
@ -102,7 +102,7 @@
placeholder="请输入" /> placeholder="请输入" />
</div> </div>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }" <GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }"
@click="confirmFormbid2('appKey')">确认</GuipButton> @click="semFormConmit('360','appKey')">确认</GuipButton>
</div> </div>
<div class="biditem360 mb24 flex"> <div class="biditem360 mb24 flex">
<img class="bid-item-img" src="@/assets/site/step_2.png" alt=""> <img class="bid-item-img" src="@/assets/site/step_2.png" alt="">
@ -112,28 +112,39 @@
placeholder="请输入" /> placeholder="请输入" />
</div> </div>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }" <GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }"
@click="confirmFormbid2('appSecret')">确认</GuipButton> @click="semFormConmit('360','appSecret')">确认</GuipButton>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</el-form> </el-form>
<el-form ref="formRef" class="bidform" :model="semFormbid3" v-if="bidList.includes('mast')"> <el-form ref="formRef" class="bidform tcpr-wrap" :model="semFormbid3" v-if="bidList.includes('mast')">
<div class="semBidWrap"> <div class="semBidWrap">
<h3 class="flex-between"> <h3 class="flex-between">
<p>360OCPC竞价 <span>自动化的出价和优化以实现更高的广告投放效果和ROI</span></p> <p>必应TCPA竞价 <span>自动化的出价和优化以实现更高的广告投放效果和ROI</span></p>
<div class="flex close-bid point" @click="deleteBid('360')">删除<img <div class="flex close-bid point" @click="deleteBid('360')">删除<img
src="@/assets/register/close.svg" alt=""></div> src="@/assets/register/close.svg" alt=""></div>
</h3> </h3>
<div class="baidu-wrap bidWrap"> <div class="baidu-wrap bidWrap">
<div class="beforeNotice"> <div class="beforeNotice">
<h4> <img src="@/assets/site/info_filled.svg" alt=""> 前期准备事项</h4> <h4> <img src="@/assets/site/info_filled.svg" alt=""> 前期准备事项</h4>
<p class="mt12 flex">1. <a href="" class="flex"> <img <p class="mt12 flex"><i>1.</i> <a href="" class="flex"> <img
src="@/assets/site/form_linkActive.svg" alt="">前往微软云</a>Azure登录后填写个人资料并完成注册</p> src="@/assets/site/form_linkActive.svg" alt="">前往微软云</a>Azure登录后填写个人资料并完成注册
<p class="mt10 flex">2. <a href="" class="flex"> <img </p>
<p class="mt10 flex"><i>2.</i> <a href="" class="flex"> <img
src="@/assets/site/form_linkActive.svg" src="@/assets/site/form_linkActive.svg"
alt="">前往应用注册</a>侧边栏点击应用注册然后在右侧应用列表中注册应用程序</p> alt="">前往应用注册</a>侧边栏点击应用注册然后在右侧应用列表中注册应用程序</p>
<div>
<p>名称填写应用名称</p>
<p>受支持的帐户类型选择 任何组织目录(任何 Microsoft Entra ID 租户 - 多租户)中的帐户和个人 Microsoft 帐户(例如 SkypeXbox)</p>
<p>重定向URI忽略</p>
<p>点击注册</p>
</div>
<p class="mt10"><i>3.</i> <span>应用配置返回应用列表在应用列表点击刚创建的应用然后在应用概览页点击添加重定向URI->点击添加平台选择移动和桌面应用程序->自定义重定向 URI
<b>https://www.kuailelunwen.com/callback/microsoft_callback <img class="point" src="@/assets/site/form_copy.svg" alt=""></b></span>
</p>
</div> </div>
<div class="bidwrap-item"> <div class="bidwrap-item">
<div class="biditemMast mb24 flex-between"> <div class="biditemMast mb24 flex-between">
@ -145,30 +156,39 @@
</div> </div>
</div> </div>
<div class="flex"> <div class="flex">
<span class="yesSet">已设置</span>
<GuipButton type="normal" :btnstyle="{ width: '94px', height: '38px' }"
@click="manageDialog('configAppInfo')">管理设置</GuipButton>
</div>
</div>
<div class="biditemMast mb24 flex-between">
<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>配置离线转化信息</b>
<p class="flex"><a href="" class="flex"> <img
src="@/assets/site/form_linkActive.svg" alt="">前往微软云</a>左上角切换有效的账户从浏览器地址栏链接中获取aid的值和cid的值</p>
</div>
</div>
<div class="flex">
<span class="notSet">已设置</span> <span class="notSet">已设置</span>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }" <GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }"
@click="confirmFormbid2('appKey')">管理设置</GuipButton> @click="manageDialog('configOffline')">立即设置</GuipButton>
</div> </div>
</div> </div>
<div class="biditem360 mb24 flex"> <div class="biditemMast mb24 flex-between">
<img class="bid-item-img" src="@/assets/site/step_2.png" alt=""> <div class="bidwrap-item-top mb24 flex">
<b>AppSecret</b> <img class="bid-item-img" src="@/assets/site/step_3.png" alt="">
<div style="flex: 1;margin-right: 10px;"> <div class="top-right column">
<GuipInput ref="GuipInput" width="100%" v-model="semFormbid2.appSecret" <b>创建离线转化</b>
placeholder="请输入" /> <p>在微软云平台创建离线转化创建成功后2个小时才生效转化数据查看最晚有5-6小时延迟 </p>
</div>
</div> </div>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }" <div class="flex">
@click="confirmFormbid2('appSecret')">确认</GuipButton> <span class="notSet">已设置</span>
</div> <GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }"
<div class="biditem360 mb24 flex"> @click="manageDialog('createOffline')">立即设置</GuipButton>
<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> </div>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }"
@click="confirmFormbid2('appSecret')">确认</GuipButton>
</div> </div>
</div> </div>
</div> </div>
@ -186,7 +206,7 @@
</el-form> </el-form>
<GroupFormBtns @cancel="cancelClick" @confirm="confirmClick('semForm3')" /> <GroupFormBtns @cancel="cancelClick" @confirm="confirmClick('semForm3')" />
</div> </div>
<GuipDialog type="normal" :dialogVisible="dialogVisibleBid" title="增加搜索竞价" :show-close-button="false" <GuipDialog type="normal" width="457px" :dialogVisible="dialogVisibleBid" title="增加搜索竞价" :show-close-button="false"
:show-cancel-button="true" cancelText="取消" confirmText="确定" @confirm="handleConfirm" @cancel="handleCancel" :show-cancel-button="true" cancelText="取消" confirmText="确定" @confirm="handleConfirm" @cancel="handleCancel"
@dialogVisibleChange="dialogVisibleChange"> @dialogVisibleChange="dialogVisibleChange">
<el-radio-group v-model="bidAddRadio" class=" mt12 column" @input="radioChange"> <el-radio-group v-model="bidAddRadio" class=" mt12 column" @input="radioChange">
@ -197,6 +217,13 @@
<!-- </div> --> <!-- </div> -->
</el-radio-group> </el-radio-group>
</GuipDialog> </GuipDialog>
<GuipDialog type="normal" :dialogVisible="dialogVisibleConfig" :title="diaTitle" :show-close-button="false"
:show-cancel-button="true" cancelText="取消" confirmText="确定" @confirm="handleConfirmConfig" @cancel="handleCancelConfig"
@dialogVisibleChange="dialogVisibleChange">
<ConfigOffLineConversion v-if="configType == 'configOffline'"/>
<ConfigAppInformation v-if="configType == 'configAppInfo'"/>
<CreateOffLine v-if="configType == 'createOffline'"/>
</GuipDialog>
</div> </div>
</template> </template>
@ -209,12 +236,18 @@ import GroupFormBtns from '@/components/GroupFormBtns.vue';
import GuipFormItem from '@/components/GuipFormItem.vue'; import GuipFormItem from '@/components/GuipFormItem.vue';
import GuipDialog from '@/components/GuipDialog.vue'; import GuipDialog from '@/components/GuipDialog.vue';
import GuipButton from '@/components/GuipButton.vue'; import GuipButton from '@/components/GuipButton.vue';
import ConfigOffLineConversion from '@/components/site/ConfigOffLineConversion.vue';
import ConfigAppInformation from '@/components/site/ConfigAppInformation.vue';
import CreateOffLine from '@/components/site/CreateOffLine.vue';
export default { export default {
// //
name: '', name: '',
props: [''], props: [''],
components: { components: {
CreateOffLine,
ConfigAppInformation,
ConfigOffLineConversion,
GuipInput, GuipInput,
GuipFormItem, GuipFormItem,
GuipButton, GuipButton,
@ -223,14 +256,22 @@ export default {
}, },
data() { data() {
return { return {
bidList: ['baidu', '360','mast'], configType:'configAppInfo',
diaTitle:'配置应用信息',
bidList: ['baidu', '360', 'mast'],
bidAddRadio: '', bidAddRadio: '',
bidAddList: { bidAddList: {
'baidu': '百度OCPC竞价', 'baidu': '百度OCPC竞价',
'360': '360OCPC竞价', '360': '360OCPC竞价',
'mast': '必应TCPA竞价', 'mast': '必应TCPA竞价',
}, },
configTitle:{
createOffline:'创建离线转化',
configOffline:'配置离线转化信息',
configAppInfo:'配置应用信息',
},
dialogVisibleBid: false, dialogVisibleBid: false,
dialogVisibleConfig: false,
semForm1: { semForm1: {
title: '', title: '',
keyWord: '', keyWord: '',
@ -269,7 +310,7 @@ export default {
addBid() { addBid() {
this.dialogVisibleBid = true; this.dialogVisibleBid = true;
}, },
confirmFormbid2(key) { semFormConmit(type,key) {
console.log(key, 'key---'); console.log(key, 'key---');
}, },
radioChange(data) { radioChange(data) {
@ -292,6 +333,21 @@ export default {
this.$message.warning('点击了取消按钮'); this.$message.warning('点击了取消按钮');
this.dialogVisibleBid = false; this.dialogVisibleBid = false;
}, },
manageDialog(type){
this.configType = type;
this.dialogVisibleConfig = true;
this.diaTitle = this.configTitle[type]
},
//
handleConfirmConfig() {
this.$message.success('点击了确认按钮');
this.dialogVisibleConfig = false;
},
//
handleCancelConfig() {
this.$message.warning('点击了取消按钮');
this.dialogVisibleConfig = false;
},
dialogVisibleChange(data) { dialogVisibleChange(data) {
console.log(data, 'data098908090'); console.log(data, 'data098908090');
}, },
@ -308,13 +364,15 @@ export default {
width: 100%; width: 100%;
letter-spacing: 0.08em; letter-spacing: 0.08em;
} }
.green{
color: #00C261;
} .notSet,.yesSet {
.notSet{ margin-right: 12px;
color: #FF4D4F; color: #FF4D4F;
} }
.yesSet {
color: #00C261;
}
.bidform { .bidform {
&:nth-child(even) { &:nth-child(even) {
margin: 32px 0; margin: 32px 0;
@ -322,6 +380,7 @@ export default {
} }
.beforeNotice { .beforeNotice {
h4 { h4 {
margin: 0; margin: 0;
} }
@ -335,7 +394,32 @@ export default {
background: #F2F7FF; background: #F2F7FF;
/* middle/middle_blue_3 */ /* middle/middle_blue_3 */
border: 1px solid #BFDAFF; border: 1px solid #BFDAFF;
div {
margin-top: 2px;
padding-left: 23px;
p{
color: #8A9099;
}
}
p{
color: #1E2226;
i{
font-style: normal;
}
&:last-child{
display: flex;
align-items: stretch;
b{
font-weight: normal;
color: #8A9099;
display: inline-flex;
img{
margin-left: 4px;
}
}
}
}
a { a {
text-decoration: none; text-decoration: none;
color: #006AFF; color: #006AFF;
@ -361,7 +445,14 @@ export default {
} }
.radio-wrap {} .radio-wrap {}
.tcpr-wrap .bidwrap-item{
padding: 0;
background: transparent;
.biditemMast{
background: #fff;
padding: 24px 16px;
}
}
.semBidWrap { .semBidWrap {
background: #FAFAFA; background: #FAFAFA;
padding: 18px 14px; padding: 18px 14px;
@ -383,6 +474,7 @@ export default {
} }
} }
.bidWrap { .bidWrap {
.bidwrap-item { .bidwrap-item {
padding: 24px 16px; padding: 24px 16px;
@ -390,6 +482,7 @@ export default {
border-radius: 8px; border-radius: 8px;
background: #FFFFFF; background: #FFFFFF;
.bid-item-img { .bid-item-img {
width: 32px; width: 32px;
height: 32px; height: 32px;
@ -401,6 +494,13 @@ export default {
p { p {
margin-top: 10px; margin-top: 10px;
} }
a{
text-decoration: none;
color: #006AFF;
img{
margin-right: 10px;
}
}
} }
} }

Loading…
Cancel
Save