Browse Source

修改其余页面面包屑及路由配置修改

pull/54/head
zq 1 week ago
parent
commit
c235ab8167
  1. 10
      src/components/GuipInput.vue
  2. 2
      src/components/SetLeftMenu.vue
  3. 2
      src/components/SliderMenu.vue
  4. 29
      src/components/site/ConfigAppInformation.vue
  5. 310
      src/router/index.js
  6. 15
      src/store/index.js
  7. 404
      src/views/agent/siteBaseSetting.vue
  8. 3
      src/views/agent/siteList.vue
  9. 771
      src/views/agent/siteSemSetting.vue
  10. 2
      src/views/elementGroups.vue
  11. 2
      src/views/super/Ranking/Purchase.vue
  12. 2
      src/views/super/Ranking/RankBatchList.vue
  13. 2
      src/views/super/Ranking/RankDetail.vue
  14. 2
      src/views/super/Ranking/RankList.vue

10
src/components/GuipInput.vue

@ -4,9 +4,9 @@
:prop="prop" :rules="rules">
<p v-if="desc" class="desc_right">{{ desc }}</p>
<el-input :type="type" v-bind="$attrs" :placeholder="placeholder1" :disabled="disabled" :maxlength="maxlength1"
:style="{ width: width, height: height }" :minLength="minLength1" :show-word-limit="showWordLimit"
:style="{ width: width, height: height }" :value="inputValue" :minLength="minLength1" :show-word-limit="showWordLimit"
@input="$emit('input', $event)" @keydown="handleKeydown" @change="$emit('change', $event)"
@blur="$emit('blur', inputValue)" @focus="$emit('focus', inputValue)" v-model="inputValue">
@blur="$emit('blur', inputValue)" @focus="$emit('focus', inputValue)" >
<!-- 自定义前面小图标 -->
<template v-slot:prepend>
<slot name="prependshow"></slot>
@ -58,6 +58,12 @@ export default {
// },
value(newVal) {
this.inputValue = newVal;
},
defaultValue(newVal) {
// valuedefaultValue
if (!this.value && newVal !== this.inputValue) {
this.inputValue = newVal;
}
}
},
created() {

2
src/components/SetLeftMenu.vue

@ -1,6 +1,6 @@
<template>
<aside class="sidebar">
<ul>
<ul style="margin: 0;">
<li v-for="(item, index) in menuList" :key="item.path + random()">
<div
:class="[($route.path == item.path) || (item.noToPath && curIndex == index) ? 'active' : '', 'flex', ($route.path == item.path) ? curIndex = index : '']">

2
src/components/SliderMenu.vue

@ -131,8 +131,6 @@ export default {
// console.log(this.$route.path, this.$router.options.router, 'this.$route.path===');
// //
// this.activeMenu = this.$route.path;
console.log(this.customize,'customize---');
this.updateCurrentMenu();
}
}

29
src/components/site/ConfigAppInformation.vue

@ -1,37 +1,37 @@
<template>
<div class="config-appInfo-wrap">
<el-form :model="formConfig">
<el-form>
<p class="column">
<b>1. 应用程序客户端ID</b>
<span>微软云平台应用列表点击刚创建的应用在应用概览中即可看到</span>
</p>
<GuipInput v-model="formConfig.id" placeholder="请输入" />
<GuipInput :value="siteInfo.bing_client_id"
@input="val => updateField('bing_client_id', val)" placeholder="请输入" />
<p class="column mt16">
<b>1. 开发者令牌Developer token</b>
<span>联系开户人员获取</span>
</p>
<GuipInput v-model="formConfig.merchantID" placeholder="商户号" />
<GuipInput :value="siteInfo.domain" @input="val => updateField('domain', val)"
placeholder="商户号" />
</el-form>
</div>
</template>
<script>
import GuipInput from '@/components/GuipInput.vue';
// import SiteList from '@/views/agent/siteList.vue';
// import GuipFormItem from '@/components/GuipFormItem.vue';
export default {
//
name: '',
props: [''],
props: ['siteInfo'],
components: {
GuipInput,
// GuipFormItem,
},
data() {
return {
formConfig: {
id: '',
merchantID: ''
}
// localSiteInfo: { ...this.siteInfo }
}
},
computed: {
@ -41,7 +41,18 @@ export default {
// store.commit('SET_PAGETITLE', '广');
},
methods: {
// updateField(field, value) {
// this.$emit('update-field', {
// field,
// value
// })
// }
updateField(field, value) {
this.$emit('update-field', {
field,
value
})
}
}
}
</script>

310
src/router/index.js

@ -6,12 +6,19 @@ import HomeView from '../views/HomeView.vue';
// import Franchise from '../views/Franchise.vue'
Vue.use(VueRouter)
// 侧边导航黑名单
const blackSliderList = [
'/register'
];
// 一级路由
const first_child_router = [
'/','/agent/siteList'
'/', '/agent/siteList', '/ui'
]
//头部导航黑名单 不需要添加头部的放置在这里,其余默认显示头部
const blackHeaderList = [];
const blackFooterList = [
'/'
];
// const whiteSlideList = ['/', '/ui',
// '/agent/siteList',
// '/agent/siteBaseSetting',
@ -25,18 +32,14 @@ const first_child_router = [
// '/super/ranking/checkRefund', '/super/ranking/agentProfit', '/super/ranking/agentRecharge', '/super/ranking/agentNew',
// '/super/ranking/purchase','/super/ranking/stagePurchase','/super/ranking/loss'
// ]; //头部导航白名单
//头部导航黑名单 不需要添加头部的放置在这里,其余默认显示头部
const blackHeaderList = [
];
//底部白名单 暂时废弃,在页面独立添加组件
// const whiteFooterList = ['/', '/ui', '/agent/siteList', '/configureServicePrices',
// '/super/ranking/yearProfit', '/super/ranking/monthProfit', '/super/ranking/checkProfit', '/super/ranking/checkOrdernum',
// '/super/ranking/checkRefund', '/super/ranking/agentProfit', '/super/ranking/agentRecharge', '/super/ranking/agentNew',
// '/super/ranking/purchase','/super/ranking/stagePurchase','/super/ranking/loss'
// ];
const blackFooterList = [
'/'
];
const routes = [{
path: '/',
name: '首页',
@ -56,9 +59,6 @@ const routes = [{
{
path: '/ui',
name: 'ui组件',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import( /* webpackChunkName: "ui" */ '../views/elementGroups.vue'),
meta: {
title: '公共组件示例',
@ -69,9 +69,6 @@ const routes = [{
{
path: '/agent/siteList',
name: '站点列表',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import( /* webpackChunkName: "siteList" */ '../views/agent/siteList.vue'),
meta: {
title: '站点列表',
@ -80,42 +77,26 @@ const routes = [{
}
},
{
path: '/siteBaseSetting',
name: '站点基设置',
component: () => import( /* webpackChunkName: "siteBaseSetting" */ '../views/SiteBaseSetting.vue'),
path: '/agent/siteBaseSetting',
name: '站点基设置',
component: () => import( /* webpackChunkName: "siteList" */ '../views/agent/siteBaseSetting.vue'),
meta: {
title: '站点设置',
breadcrumbParent: '站点列表' // 手动指定父级
// r如果想隐藏中间层级
// 如果想隐藏中间层级
// breadcrumbParent: '首页', // 跳过医生信息
// hideInBreadcrumb: true // 可选:隐藏当前项
}
},
{
path: '/sitePersonalization',
name: '个性化设置',
component: () => import( /* webpackChunkName: "sitePersonalization" */ '../views/SitePersonalization.vue'),
path: '/agent/siteSemSetting',
name: '营销推广',
component: () => import( /* webpackChunkName: "siteList" */ '../views/agent/siteSemSetting.vue'),
meta: {
title: '站点设置',
breadcrumbParent: '站点列表' // 手动指定父级
}
},
// {
// path: '/agent/siteBaseSetting',
// name: '站点基本设置',
// // route level code-splitting
// // this generates a separate chunk (about.[hash].js) for this route
// // which is lazy-loaded when the route is visited.
// component: () => import( /* webpackChunkName: "siteList" */ '../views/agent/siteBaseSetting.vue')
// },
// {
// path: '/agent/siteSemSetting',
// name: '营销推广',
// // route level code-splitting
// // this generates a separate chunk (about.[hash].js) for this route
// // which is lazy-loaded when the route is visited.
// component: () => import( /* webpackChunkName: "siteList" */ '../views/agent/siteSemSetting.vue')
// },
{
path: '/franchise',
name: '加盟',
@ -126,15 +107,16 @@ const routes = [{
name: '配置服务价格',
component: () => import( /* webpackChunkName: "configureServicePrices" */ '../views/ConfigureServicePrices.vue')
},
{
path: '/siteSetting',
name: '站点设置',
component: () => import( /* webpackChunkName: "SiteSetting" */ '../views/SiteSetting.vue'),
children: [
{
path: '', // 默认子路由
redirect: () => import( /* webpackChunkName: "siteBaseSetting" */ '../views/SiteBaseSetting.vue') // 重定向到第一个页面
},
// 暂时废弃
// {
// path: '/siteSetting',
// name: '站点设置',
// component: () => import( /* webpackChunkName: "SiteSetting" */ '../views/SiteSetting.vue'),
// children: [
// {
// path: '', // 默认子路由
// redirect: () => import( /* webpackChunkName: "siteBaseSetting" */ '../views/SiteBaseSetting.vue') // 重定向到第一个页面
// },
// {
// path: 'siteBaseSetting',
// name: '站点基础设置',
@ -145,134 +127,234 @@ const routes = [{
// name: '个性化设置',
// 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')
},
{
path: 'demoTable', // 默认子路由
name: '测试页面',
redirect: () => import( /* webpackChunkName: "demoTable" */ '../views/DemoTable.vue') // 重定向到第一个页面
},
]
},
{
path: '/pageTemplete',
name: '网页模板',
component: () => import( /* webpackChunkName: "pageTemplete" */ '../views/PageTemplete.vue')
},
// {
// path: '/demo',
// name: 'demo页面',
// component: () => import( /* webpackChunkName: "Demo" */ '../views/Demo.vue'),
// children: [
// path: 'siteH5',
// name: '移动端设置',
// component: () => import( /* webpackChunkName: "siteH5" */ '../views/SiteH5.vue')
// },
// {
// path: '', // 默认子路由
// redirect: () => import( /* webpackChunkName: "DemoTable" */ '../views/DemoTable.vue') // 重定向到第一个页面
// path: 'demoTable', // 默认子路由
// name: '测试页面',
// redirect: () => import( /* webpackChunkName: "demoTable" */ '../views/DemoTable.vue') // 重定向到第一个页面
// },
// ]
// }
{
path: '/super/ranking',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/Ranking.vue'),
children: [
// },
{
path: '', // 默认子路由
redirect: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
props: {pageTitle:'总利润 - 年排行', rank_type: 1, type: 'year', showDateSelect: false}
path: '/pageTemplete',
name: '网页模板',
component: () => import( /* webpackChunkName: "pageTemplete" */ '../views/PageTemplete.vue')
},
{
path: 'yearProfit',
path: '/super/ranking/yearProfit',
name: '年排行',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
props: {pageTitle:'总利润 - 年排行', rank_type: 1, type: 'year', showDateSelect: false}
component: () => import( /* webpackChunkName: "Rankåing" */ '../views/super/Ranking/RankDetail.vue'),
props: {
pageTitle: '总利润 - 年排行',
rank_type: 1,
type: 'year',
showDateSelect: false
},
meta: {
title: '站点列表',
breadcrumbParent: '首页',
hideBreadcrumb: true // 一级页面不显示面包屑
}
},
{
path: 'monthProfit',
path: '/super/ranking/monthProfit',
name: '月排行',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
props: {pageTitle:'总利润 - 月排行', rank_type: 1, type: 'month', showDateSelect: true}
props: {
pageTitle: '总利润 - 月排行',
rank_type: 1,
type: 'month',
showDateSelect: true
},
meta: {
title: '站点列表',
breadcrumbParent: '首页',
hideBreadcrumb: true // 一级页面不显示面包屑
}
},
{
path: 'checkProfit',
path: '/super/ranking/checkProfit',
name: '产品毛利润排行',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankBatchList.vue'),
props: {pageTitle:'产品 - 毛利润排行', rank_type: 1, type: 'check_type'}
props: {
pageTitle: '产品 - 毛利润排行',
rank_type: 1,
type: 'check_type'
},
meta: {
title: '站点列表',
breadcrumbParent: '首页',
hideBreadcrumb: true // 一级页面不显示面包屑
}
},
{
path: 'checkOrdernum',
path: '/super/ranking/checkOrdernum',
name: '产品订单数排行',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankBatchList.vue'),
props: {pageTitle:'产品 - 订单数排行', rank_type: 2, type: 'check_type'}
props: {
pageTitle: '产品 - 订单数排行',
rank_type: 2,
type: 'check_type'
},
meta: {
title: '站点列表',
breadcrumbParent: '首页',
hideBreadcrumb: true // 一级页面不显示面包屑
}
},
{
path: 'checkRefund',
path: '/super/ranking/checkRefund',
name: '产品退单数排行',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankList.vue'),
props: {pageTitle:'产品 - 退单数排行', rank_type: 3, type: 'check_type'}
props: {
pageTitle: '产品 - 退单数排行',
rank_type: 3,
type: 'check_type'
},
meta: {
title: '站点列表',
breadcrumbParent: '首页',
hideBreadcrumb: true // 一级页面不显示面包屑
}
},
{
path: 'loss',
path: '/super/ranking/loss',
name: '产品负毛利排行',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankList.vue'),
props: {pageTitle:'产品 - 负毛利排行', rank_type: 5, type: 'loss'}
props: {
pageTitle: '产品 - 负毛利排行',
rank_type: 5,
type: 'loss'
},
meta: {
title: '站点列表',
breadcrumbParent: '首页',
hideBreadcrumb: true // 一级页面不显示面包屑
}
},
{
path: 'agentProfit',
path: '/super/ranking/agentProfit',
name: '代理商毛利润排行',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankBatchList.vue'),
props: {pageTitle:'代理商 - 毛利润排行', rank_type: 1, type: 'agent'}
props: {
pageTitle: '代理商 - 毛利润排行',
rank_type: 1,
type: 'agent'
},
meta: {
title: '站点列表',
breadcrumbParent: '首页',
hideBreadcrumb: true // 一级页面不显示面包屑
}
},
{
path: 'agentRecharge',
path: '/super/ranking/agentRecharge',
name: '代理商充值排行',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankBatchList.vue'),
props: {pageTitle:'代理商 - 充值排行', rank_type: 4, type: 'agent'}
props: {
pageTitle: '代理商 - 充值排行',
rank_type: 4,
type: 'agent'
},
meta: {
title: '站点列表',
breadcrumbParent: '首页',
hideBreadcrumb: true // 一级页面不显示面包屑
}
},
{
path: 'agentNew',
path: '/super/ranking/agentNew',
name: '代理商新加盟',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
props: {pageTitle:'代理商 - 新加盟', type: 'agentnew', showDateSelect: false}
props: {
pageTitle: '代理商 - 新加盟',
type: 'agentnew',
showDateSelect: false
},
meta: {
title: '站点列表',
breadcrumbParent: '首页',
hideBreadcrumb: true // 一级页面不显示面包屑
}
},
{
path: 'purchase',
path: '/super/ranking/purchase',
name: '采购价',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/Purchase.vue'),
props: {pageTitle:'设置 - 采购价', type: 'purchase'}
props: {
pageTitle: '设置 - 采购价',
type: 'purchase'
},
meta: {
title: '站点列表',
breadcrumbParent: '首页',
hideBreadcrumb: true // 一级页面不显示面包屑
}
},
{
path: 'stagePurchase',
path: '/super/ranking/stagePurchase',
name: '阶段采购价',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/Purchase.vue'),
props: {pageTitle:'设置 - 阶段采购', type: 'stagePurchase'}
props: {
pageTitle: '设置 - 阶段采购',
type: 'stagePurchase'
},
meta: {
title: '站点列表',
breadcrumbParent: '首页',
hideBreadcrumb: true // 一级页面不显示面包屑
}
},
{
path: 'detail',
path: '/super/ranking/detail',
name: '详情',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
props: {pageTitle:'详情', type: 'day', showDateSelect: false, lookMore:false}
props: {
pageTitle: '详情',
type: 'day',
showDateSelect: false,
lookMore: false
},
meta: {
title: '站点列表',
breadcrumbParent: '首页',
hideBreadcrumb: true // 一级页面不显示面包屑
}
},
{
path: 'list',
path: '/super/ranking/list',
name: '列表',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankList.vue'),
props: {pageTitle:'详情', showDateSelect: false, lookMore:false}
props: {
pageTitle: '详情',
showDateSelect: false,
lookMore: false
},
meta: {
title: '站点列表',
breadcrumbParent: '首页',
hideBreadcrumb: true // 一级页面不显示面包屑
}
},
{
path: 'order',
path: '/super/ranking/order',
name: '订单统计',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
props: {pageTitle:'订单统计', type: 'order', showDateSelect: false}
props: {
pageTitle: '订单统计',
type: 'order',
showDateSelect: false
},
]
meta: {
title: '站点列表',
breadcrumbParent: '首页',
hideBreadcrumb: true // 一级页面不显示面包屑
}
},
]
@ -290,6 +372,10 @@ router.beforeEach((to, from, next) => {
store.commit('SET_CUSTOMIZE', false);
store.commit('SET_SLIDER_MENU', 'menuData');
}
if (to.path.includes('/super/ranking/')) { //匹配包含此路径的 侧边栏数据
store.commit('SET_CUSTOMIZE', false);
store.commit('SET_SLIDER_MENU', 'rankMenuData');
}
store.commit('SET_SIDEBAR', true); // 其他页面不显示侧边栏
}
if (blackFooterList.includes(to.path)) {

15
src/store/index.js

@ -138,7 +138,7 @@ export default new Vuex.Store({
siteSettingData1:[
{
name: '基本设置',
path: '/siteSetting/siteBaseSetting',
path: '/agent/siteBaseSetting',
img:'site/sitebase.svg',
imgActive: require('@/assets/site/sitebase_active.svg'),
list: [
@ -158,7 +158,7 @@ export default new Vuex.Store({
},
{
name: '个性化设置',
path: '/siteSetting/sitePersonalization',
path: '/agent/sitePersonalization',
img: 'site/gexinghua.svg',
imgActive: require('@/assets/site/sitebase_active.svg'),
list: [
@ -224,7 +224,7 @@ export default new Vuex.Store({
siteSettingData:[
{
name: '基本设置',
path: '/siteBaseSetting',
path: '/agent/siteBaseSetting',
img:'site/sitebase.svg',
imgActive: require('@/assets/site/sitebase_active.svg'),
list: [
@ -244,7 +244,7 @@ export default new Vuex.Store({
},
{
name: '个性化设置',
path: '/sitePersonalization',
path: '/agent/sitePersonalization',
img: 'site/gexinghua.svg',
imgActive: require('@/assets/site/sitebase_active.svg'),
list: [
@ -272,7 +272,7 @@ export default new Vuex.Store({
},
{
name: '移动端设置',
path: '/siteSetting/siteH5',
path: '/agent/siteH5',
img: 'site/siteh5.svg',
imgActive: require('@/assets/site/sitebase_active.svg'),
list: [
@ -288,7 +288,7 @@ export default new Vuex.Store({
},
{
name: '营销推广',
path: '/siteSetting/siteSem',
path: '/agent/siteSemSetting',
img: 'site/sitesem.svg',
imgActive: require('@/assets/site/sitebase_active.svg'),
list: [
@ -362,10 +362,7 @@ export default new Vuex.Store({
},
mutations: {
SET_SLIDER_MENU(state,type){
console.log(type,'111=====');
console.log(state.slidermenu ,'222=====');
state.slidermenu = state[type]
console.log(state.slidermenu ,'333=====');
},
SET_CUSTOMIZE(state,show) {
state.customize = show

404
src/views/agent/siteBaseSetting.vue

@ -0,0 +1,404 @@
<template>
<div class="main-content12">
<!-- page header -->
<div class="pageheader">
<span class="pagetitle">基本设置</span>
</div>
<!-- page content -->
<div class="site-setting-wrap min-flex-right">
<div class="siteMessage flex-common" id="siteMessage1">
<h3>站点信息</h3>
<el-form>
<div class="flex-wrap">
<div class="flex-left">
<GuipInput ref="GuipInput" column="column" label="站点简称" :maxlength="10" :showWordLimit="true"
desc="一个站点对应一个销售渠道,定义好名字好区分" v-model="siteInfo.short_name" prop="short_name"
placeholder="仅自己区分站点销售渠道,客户看不到" />
<GuipInput ref="GuipInput" column="column" label="公司电话" desc="在站点首页底部“关于我们”展示"
v-model="siteInfo.phone_num" prop="company_phone" placeholder="非必填" />
</div>
<div class="flex-line"></div>
<div class="flex-right">
<GuipTextarea v-model="siteInfo.company_name" label="详细介绍" column="column" prop="doctor_detail"
width="100%" height="90px" placeholder="请输入描述内容" desc="在站点首页底部“关于我们”展示"
show-word-limit />
</div>
</div>
</el-form>
<GroupFormBtns @cancel="cancleUpdateSiteInfo()" @confirm="updateSiteInfo()" />
</div>
<div class="siteMessage flex-common" id="siteMessage2">
<h3>站点信息</h3>
<el-form :model="siteForm1" :rules="siteFormrules1" ref="siteForm1">
<div class="flex-wrap">
<div class="flex-left">
<GuipFormItem column="column" class="mb24" label="域名来源" required="true">
<GuipRadio slot="formDom" v-model="siteForm1.domain_source" :options="domain_source"
prop="domain_source" @change="domain_radioChange" />
</GuipFormItem>
</div>
<div class="flex-line"></div>
<div class="flex-right">
<GuipFormItem column="column" label="域名设置" required="true">
<GuipInput slot="formDom" v-model="siteForm1.domain_set" placeholder="仅支持数字、字母">
<span slot="appendshow">.chachongz.com</span>
</GuipInput>
</GuipFormItem>
</div>
</div>
</el-form>
<GroupFormBtns @cancel="cancelClick" @confirm="submitForm('siteForm1')" />
</div>
<div class="siteMessage flex-common" id="siteMessage3">
<h3>店铺收款</h3>
<el-form :model="siteForm2" ref="formRef">
<div class="flex-wrap">
<div class="flex-left">
<GuipFormItem column="column" class="mb24">
<div slot="formLeft" class="form-top-icon">
<img src="@/assets/register/weixin.svg" style="width: 26px;height: 26px;"
alt=""><span>微信收款</span>
</div>
<CustomDropdown slot="formDom" width="100%" v-model="siteForm1.weixin_pay" :options="options_weixin"
@change="changeSelectWeixin" placeholder="请选择" :options_null="options_weixin_null"
@changeNormal="changeNormalWeixin">
<!-- 自定义触发按钮 -->
<template #trigger>
<span v-if="selectedItemWeixin"
style="color: #1E2226;font-family: Microsoft YaHei UI;">{{
select_placeholder_weixin ? select_placeholder_weixin :
selectedItemWeixin.desc }}</span>
<span v-else>请选择</span>
</template>
<template #normal>
<div class="flex flex-between noraml-jump">
<div class="left">
<b>绑定新微信收款</b>
<p class="one">需要使用您公司的微信支付</p>
<p>需在微信商户平台-产品中心开通Native支付</p>
</div>
<div class="right">
<GuipButton type="primary" size="medium">前往绑定</GuipButton>
</div>
</div>
</template>
<!-- 自定义下拉选项 -->
<template #item="{ item }">
<div class="flex-between">
<div class="left">
<p class="one">{{ item.label }}</p>
<p>{{ item.desc }}</p>
</div>
<div class="right">
<img v-if="selectedItem.value == item.value"
src="@/assets/register/drop-selected.svg" alt="">
</div>
</div>
</template>
</CustomDropdown>
</GuipFormItem>
<GuipFormItem column="column">
<div slot="formLeft" class="form-top-icon">
<img src="@/assets/register/zhifubao.svg" style="width: 26px;height: 26px;"
alt=""><span>支付宝收款</span>
</div>
<!-- <GuipSelect slot="formDom" v-model="siteForm2.zhifubao_pay" prop="zhifubao_pay"
:options="options_zhifubao" placeholder="未绑定支付宝收款" /> -->
<CustomDropdown slot="formDom" width="100%" v-model="siteForm1.zhifubao_pay" :options="options_weixin"
@change="changeSelectWeixin" placeholder="请选择" :options_null="options_weixin_null"
@changeNormal="changeNormalWeixin">
<!-- 自定义触发按钮 -->
<template #trigger>
<span v-if="selectedItemWeixin"
style="color: #1E2226;font-family: Microsoft YaHei UI;">{{
select_placeholder_weixin ? select_placeholder_weixin :
selectedItemWeixin.desc }}</span>
<span v-else>请选择</span>
</template>
<template #normal>
<div class="flex flex-between noraml-jump">
<div class="left">
<b>绑定新支付宝收款</b>
<p class="one">需要使用您公司的支付宝支付</p>
<p>需在支付宝商户平台-产品中心开通Native支付</p>
</div>
<div class="right">
<GuipButton type="primary" size="medium">前往绑定</GuipButton>
</div>
</div>
</template>
<!-- 自定义下拉选项 -->
<template #item="{ item }">
<div class="flex-between">
<div class="left">
<p class="one">{{ item.label }}</p>
<p>{{ item.desc }}</p>
</div>
<div class="right">
<img v-if="selectedItem.value == item.value"
src="@/assets/register/drop-selected.svg" alt="">
</div>
</div>
</template>
</CustomDropdown>
</GuipFormItem>
</div>
<div class="flex-line"></div>
<div class="flex-right">
<!-- <div>{{ input1 }}</div> -->
<div class="addStore flex">
<div></div>
添加其他收款方式
</div>
</div>
</div>
</el-form>
<GroupFormBtns @cancel="cancelClick" @confirm="submitForm('siteForm2')" />
</div>
</div>
</div>
</template>
<script>
// import GuipInput from '@/components/GuipInput.vue';
import store from '@/store';
import { mapState } from 'vuex';
import GuipFormItem from '@/components/GuipFormItem.vue';
import GuipInput from '@/components/GuipInput.vue';
import GuipTextarea from '@/components/GuipTextarea.vue';
import GuipRadio from '@/components/GuipRadio.vue';
import CustomDropdown from '@/components/CustomDropdown.vue';
import GuipButton from '@/components/GuipButton.vue';
import GroupFormBtns from '@/components/GroupFormBtns.vue';
// import {setHighActive} from '@/utils/common';
export default {
//
name: '',
props: [''],
components: {
GuipRadio,
GuipFormItem,
GuipInput,
GuipTextarea,
CustomDropdown,
GuipButton,
GroupFormBtns
},
data() {
return {
// AUTH
token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3NTAwNTM3MjQsIm5iZiI6MTc1MDA1MzcyNCwiZXhwIjoxNzUyNjQ1NzI0LCJ1c2VyIjoic3VidXNlciIsImxvZ2luX3R5cGUiOjAsImFpZCI6IjEifQ.xyIqBLelB-k6jCifgRevBJTyg_Qrm6m1e4OcHhOpepU',
//
siteInfo: {
short_name: '',
company_name: '',
phone_num: '',
},
siteForm: {
company_name: '',
company_address: '',
company_phone: '',
site_alias: '',
},
// siteFormrules: {
// site_alias: [
// { required: true, message: '', trigger: 'blur' }
// ]
// },
siteForm1: {
domain_set: '',
domain_source: '平台免费域名',
},
siteForm2: {
zhifubao_pay: '',
weixin_pay: '',
},
siteFormrules1: {
domain_source: [
{ required: true, message: '请输入站点简称', trigger: 'blur' }
]
},
domain_source: [
{ label: '平台免费域名', value: '平台免费域名', selectedLabel: "平台免费域名" },
{ label: '我自己有域名', value: '我自己有域名', selectedLabel: "我自己有域名" },
],
options_weixin_null: {
label: '暂无收款账号',
value: '暂时没有收款账号,我想稍后配置',
desc: '暂无收款账号,稍后配置'
},
select_placeholder_weixin: '暂无收款账号,稍后配置',
selectedItemWeixin: {},//
options_weixin: [],
options_zhifubao: [],
}
},
computed: {
...mapState(['pageTitle']) // VuexshowSidebar
},
created(){
store.commit('SET_CUSTOMIZE', true);
store.commit('SET_SLIDER_MENU','siteSettingData');
},
mounted() {
store.commit('SET_PAGETITLE', '基本设置');
this.getSiteInfo();
},
methods: {
//
getSiteInfo() {
const that = this
that.siteInfo = []
this.$http('POST', '/agentnew/ajax_get_site_info', {
uid: this.$route.query.uid,
},{
headers:{
'Auth': this.token
}
}).then(response => {
this.$nextTick(() => {
that.siteInfo = response.data
})
}).catch(error => {
console.error(error, 'error')
})
},
updateSiteInfo() {
this.$http('POST', '/agentnew/ajax_update_site_info', {
uid: this.$route.query.uid,
short_name: this.siteInfo.short_name,
company_name: this.siteInfo.company_name,
company_phone: this.siteInfo.phone_num,
},{
headers:{
'Auth': this.token
}
}).then(response => {
this.$nextTick(() => {
if (response.status) {
this.$Message.success(response.info);
} else {
this.$Message.error(response.info);
}
})
}).catch(error => {
console.error(error, 'error')
})
},
cancleUpdateSiteInfo() {
this.getSiteInfo();
},
changeNormalWeixin() {
},
changeSelectWeixin(item, flag) {
if (flag) {
this.select_placeholder_weixin = this.options_weixin_null.desc;
return
}
this.selectedItem = { ...item };
console.log(this.selectedItem, 'this.selectedItem====');
},
//
domain_radioChange(type) {
console.log(type, '--');
},
onSwitchChange(data) {
console.log(data, '---');
},
submitForm(form) {
console.log(this.$refs[form], '-----');
this.$refs[form].validate((valid) => {
console.log(this[form], '======formxinxi');
if (valid) {
alert('提交成功!');
} else {
return false;
}
});
},
cancelClick() {
console.log('quxiao');
},
confirmClick(type) {
console.log(type, '确认');
}
}
}
</script>
<style lang="scss">
.pageheader {
display: flex;
justify-content: space-between; /* 关键属性 */
align-items: center;
margin: 16px 0px 16px 0px;
}
.pagetitle {
font-size: 18px;
font-weight: bold;
line-height: normal;
letter-spacing: 0.08em;
color: #1E2226;
margin-top:8px;
}
.siteMessage{
border-radius: 4px;
transition: all .5s;
border: 1px solid transparent;
}
.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;
// }
}
.site-setting-wrap{
width: 100%;
}
#siteMessage2{
margin: 12px 0;
}
.domain-wrap {
.domain-item {
margin-bottom: 10px;
}
.domain-item p:last-child {
padding-left: 23px;
color: #8A9099;
}
p {
text-align: left;
line-height: 18px;
margin-bottom: 8px;
}
.domain-box {
display: flex;
flex-direction: column;
justify-content: flex-start;
}
}
</style>

3
src/views/agent/siteList.vue

@ -115,6 +115,7 @@ import GuipSelect from '@/components/GuipSelect.vue';
import GuipButton from '@/components/GuipButton.vue';
import GuipInput from '@/components/GuipInput.vue';
import GuipDialog from '@/components/GuipDialog.vue';
// import store from '@/store';
export default {
name: 'siteList',
@ -142,7 +143,7 @@ export default {
// url
serviceListUrl: '/ui',
// url
siteSettingUrl: '/siteBaseSetting',
siteSettingUrl: '/agent/siteBaseSetting',
// url
addNewSiteUrl: '/ui',
popoverFlag:false,

771
src/views/agent/siteSemSetting.vue

@ -0,0 +1,771 @@
<template>
<div class="main-content12">
<!-- page header -->
<div class="pageheader">
<span class="pagetitle">基本设置</span>
</div>
<!-- page content -->
<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">
<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="siteInfo.sitename" placeholder="建议80字内">
</GuipInput>
</GuipFormItem>
<GuipFormItem column="column" label="站点关键词(K:keyword)">
<GuipInput slot="formDom" ref="GuipInput" width="100%" height="68px" type="textarea"
v-model="siteInfo.sitekeywords">
</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="siteInfo.sitedesc">
</GuipInput>
</GuipFormItem>
</div>
</div>
</el-form>
<GroupFormBtns @cancel="cancleUpdateSiteInfo" @confirm="updateSiteTDK" />
</div>
<div class="siteMessage flex-common mt12" id="siteMessage12">
<h3>搜索引擎竞价SEM <span>通过SEM设置获得流量提高网站在搜索引擎中的排名</span></h3>
<el-form ref="baiduRef" class="bidform baidu-form" :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="siteInfo.bd_ocpc_token"
placeholder="请输入Token" />
</div>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }"
@click="saveBaiduOcpcToken()">确认</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="bdurl" placeholder="请输入联调链接" />
</div>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }"
@click="verifyBaiduOcpc()">开始联调
</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 class="flex"> <img src="@/assets/site/siteSemInfo_Icon.svg" alt=""> 前期准备事项</h4>
<p class="mt12 flex">
1. <a href="https://e.360.cn/static/zhihui/login/?rdurl=https%3A%2F%2Fe.360.cn%2F"
class="flex" target="_blank">
<img src="@/assets/site/form_linkActive.svg" alt="">前往登陆</a>登录360智慧平台
</p>
<p class="mt10 flex">
2. <a href="https://dianjing.e.360.cn/ocpc/list" class="flex" target="_blank">
<img src="@/assets/site/form_linkActive.svg"
alt="">前往ocpc设置页</a>点击添加OCPC投放包按钮注意转换类型只能选择订单其他的根据表单提示填写
</p>
</div>
<div class="bidwrap-item">
<div class="column">
<p class="common_title">AppKey AppSecret </p>
<p class="common_text mt10 mb24" style="text-align: left;">
点击前期准备事项第2步页面中的投放说明按钮选择API回传点击获取Key&Secret AppKey AppSecret 填入表中保存即可
</p>
</div>
<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="siteInfo.ocpc_360_appkey"
placeholder="请输入appkey" />
</div>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }"
@click="save360Ocpc()">确认</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="siteInfo.ocpc_360_appsecret"
placeholder="请输入appsecret" />
</div>
<GuipButton type="primary" :btnstyle="{ width: '94px', height: '38px' }"
@click="save360Ocpc()">确认</GuipButton>
</div>
</div>
</div>
</div>
</el-form>
<el-form ref="formRef" class="bidform tcpr-wrap" :model="semFormbid3" v-if="bidList.includes('mast')">
<div class="semBidWrap">
<h3 class="flex-between">
<p>必应TCPA竞价 <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 class="flex"> <img src="@/assets/site/siteSemInfo_Icon.svg" alt=""> 前期准备事项</h4>
<p class="mt12 flex">
<i>1.</i> <a href="https://azure.microsoft.com/zh-cn/free" class="flex"
target="_blank"> <img src="@/assets/site/form_linkActive.svg"
alt="">前往微软云</a>Azure登录后填写个人资料并完成注册
</p>
<p class="mt10 flex">
<i>2.</i> <a href="https://aka.ms/bingads-app" class="flex" target="_blank"> <img
src="@/assets/site/form_linkActive.svg"
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 class="bidwrap-item">
<div class="biditemMast mb12 flex-between">
<div class="bidwrap-item-top 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="'yesSet'">已设置</span>
<GuipButton type="normal" :btnstyle="{ width: '126px', height: '38px' }"
@click="manageDialog('configAppInfo')">管理设置</GuipButton>
</div>
</div>
<div class="biditemMast mb12 flex-between">
<div class="bidwrap-item-top 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>
<GuipButton type="primary" :btnstyle="{ width: '126px', height: '38px' }"
@click="manageDialog('configOffline')">立即设置</GuipButton>
</div>
</div>
<div class="biditemMast mb12 flex-between">
<div class="bidwrap-item-top flex">
<img class="bid-item-img" src="@/assets/site/step_3.png" alt="">
<div class="top-right column">
<b>创建离线转化</b>
<p>在微软云平台创建离线转化创建成功后2个小时才生效转化数据查看最晚有5-6小时延迟 </p>
</div>
</div>
<div class="flex">
<span :class="'notSet'">未设置</span>
<GuipButton type="primary" :btnstyle="{ width: '126px', height: '38px' }"
@click="manageDialog('createOffline')">立即设置</GuipButton>
</div>
</div>
<div class="biditemMast flex-between">
<div class="bidwrap-item-top flex">
<img class="bid-item-img" src="@/assets/site/step_4.png" alt="">
<div class="top-right column">
<b>登陆微软云</b>
<p>确认前3步完成点击右侧登录按钮登录微软云 </p>
</div>
</div>
<div class="flex">
<GuipButton type="primary" :btnstyle="{ width: '126px', height: '38px' }"
@click="manageDialog('login')">登录</GuipButton>
</div>
</div>
</div>
</div>
</div>
</el-form>
<!-- <div class="addStore flex" @click="addBid">
<div></div>
增加搜索竞价
</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" width="457px" :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>
<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'" :siteInfo="siteInfo"
@update-field="handleFieldUpdate" />
<CreateOffLine v-if="configType == 'createOffline'" />
</GuipDialog>
</div>
</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';
import ConfigOffLineConversion from '@/components/site/ConfigOffLineConversion.vue';
import ConfigAppInformation from '@/components/site/ConfigAppInformation.vue';
import CreateOffLine from '@/components/site/CreateOffLine.vue';
export default {
//
name: '',
props: [''],
components: {
CreateOffLine,
ConfigAppInformation,
ConfigOffLineConversion,
GuipInput,
GuipFormItem,
GuipButton,
GroupFormBtns,
GuipDialog
},
data() {
return {
// AUTH
token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3NTAwNTM3MjQsIm5iZiI6MTc1MDA1MzcyNCwiZXhwIjoxNzUyNjQ1NzI0LCJ1c2VyIjoic3VidXNlciIsImxvZ2luX3R5cGUiOjAsImFpZCI6IjEifQ.xyIqBLelB-k6jCifgRevBJTyg_Qrm6m1e4OcHhOpepU',
//
siteInfo: {
sitename: '',
sitedesc: '',
sitekeywords: '',
bd_ocpc_token: '',
ocpc_360_appkey: '',
ocpc_360_appsecret: '',
bing_client_id: '9999',
bing_conversion_name: '',
bing_customer_account_id: '',
bing_customer_id: '',
domain: "测试一下回显",
bing_developer_token: '',
},
bdurl: '',
configType: '',
diaTitle: '配置应用信息',
bidList: ['baidu', '360', 'mast'],
bidAddRadio: '',
bidAddList: {
'baidu': '百度OCPC竞价',
'360': '360OCPC竞价',
'mast': '必应TCPA竞价',
},
configTitle: {
createOffline: '创建离线转化',
configOffline: '配置离线转化信息',
configAppInfo: '配置应用信息',
},
dialogVisibleBid: false,
dialogVisibleConfig: false,
semForm2: {
title: '',
keyWord: '',
desc: ''
},
semForm3: {
code: '',
},
semFormbid1: {
token: '',
url: ''
},
semFormbid2: {
appKey: '',
appSecret: ''
},
semFormbid3: {
}
}
},
computed: {
...mapState(['pageTitle']) // VuexshowSidebar
},
created(){
store.commit('SET_CUSTOMIZE', true);
store.commit('SET_SLIDER_MENU','siteSettingData');
},
mounted() {
this.getSiteInfo();
store.commit('SET_PAGETITLE', '营销推广');
},
methods: {
// siteinfo
handleFieldUpdate({ field, value }) {
this.siteInfo = {
...this.siteInfo,
[field]: value
}
},
postRequest(url, params, headers = { 'Auth': this.token }) {
this.$http('POST', url, params, { headers: headers }).then(response => {
this.$nextTick(() => {
if (response.status) {
this.$Message.success(response.info);
} else {
this.$Message.error(response.info);
}
})
}).catch(error => {
console.error(error, 'error')
})
},
//
getSiteInfo() {
const that = this
that.siteInfo = []
this.$http('POST', '/agentnew/ajax_get_site_info', {
uid: this.$route.query.uid,
}, {
headers: {
'Auth': this.token
}
}).then(response => {
this.$nextTick(() => {
that.siteInfo = {...response.data}
})
}).catch(error => {
console.error(error, 'error')
})
},
updateSiteTDK() {
this.$http('POST', '/agentnew/ajax_update_site_tdk', {
uid: this.$route.query.uid,
title: this.siteInfo.sitename,
desc: this.siteInfo.sitedesc,
keyword: this.siteInfo.sitekeywords
}, {
headers: {
'Auth': this.token
}
}).then(response => {
this.$nextTick(() => {
if (response.status) {
this.$Message.success(response.info);
} else {
this.$Message.error(response.info);
}
})
}).catch(error => {
console.error(error, 'error')
})
},
saveBaiduOcpcToken() {
this.$http('POST', '/agentnew/ajax_update_bd_ocpc', {
uid: this.$route.query.uid,
token: this.siteInfo.bd_ocpc_token,
}, {
headers: {
'Auth': this.token
}
}).then(response => {
this.$nextTick(() => {
if (response.status) {
this.$Message.success(response.info);
} else {
this.$Message.error(response.info);
}
})
}).catch(error => {
console.error(error, 'error')
})
},
verifyBaiduOcpc() {
this.$http('POST', '/agentnew/ajax_verify_bd_ocpc', {
uid: this.$route.query.uid,
bdurl: this.bdurl,
}, {
headers: {
'Auth': this.token
}
}).then(response => {
this.$nextTick(() => {
if (response.status) {
this.$Message.success(response.info);
} else {
this.$Message.error(response.info);
}
})
}).catch(error => {
console.error(error, 'error')
})
},
save360Ocpc() {
this.$http('POST', '/agentnew/ajax_save_360_ocpc', {
uid: this.$route.query.uid,
appkey: this.siteInfo.ocpc_360_appkey,
appsecret: this.siteInfo.ocpc_360_appsecret
}, {
headers: {
'Auth': this.token
}
}).then(response => {
this.$nextTick(() => {
if (response.status) {
this.$Message.success(response.info);
} else {
this.$Message.error(response.info);
}
})
}).catch(error => {
console.error(error, 'error')
})
},
cancleUpdateSiteInfo() {
this.getSiteInfo();
},
addBid() {
this.dialogVisibleBid = true;
},
semFormConmit(type, key) {
console.log(key, 'key---');
},
radioChange(data) {
console.log(data, 'radio--data');
},
cancelClick() {
console.log('quxiao');
},
confirmClick(type) {
console.log(type, '确认');
},
//
handleConfirm() {
this.dialogVisibleBid = false;
},
//
handleCancel() {
this.$message.warning('点击了取消按钮');
this.dialogVisibleBid = false;
},
manageDialog(type) {
this.configType = type;
this.dialogVisibleConfig = true;
this.diaTitle = this.configTitle[type]
},
//
handleConfirmConfig() {
console.log(this.siteInfo.bing_client_id,this.siteInfo.domain,'看一下修改数据');
this.dialogVisibleConfig = false;
},
//
handleCancelConfig() {
this.dialogVisibleConfig = 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">
.pageheader {
display: flex;
justify-content: space-between;
/* 关键属性 */
align-items: center;
margin: 0px 0px 16px 0px;
}
.pagetitle {
font-size: 18px;
font-weight: bold;
line-height: normal;
letter-spacing: 0.08em;
color: #1E2226;
margin-top: 8px;
}
.site-sem-wrap {
width: 100%;
letter-spacing: 0.08em;
}
.notSet,
.yesSet {
margin-right: 12px;
color: #FF4D4F;
}
.yesSet {
color: #00C261;
}
.bidform {
&:nth-child(even) {
margin: 32px 0;
}
}
.baidu-form {
.bidwrap-item {
margin-bottom: 18px;
}
}
.beforeNotice {
h4 {
margin: 0;
gap: 8px;
}
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;
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 {
text-decoration: none;
color: #006AFF;
margin-right: 10px;
img {
margin-left: 12px;
margin-right: 12px;
}
}
}
.biditem360 {
b {
display: inline-block;
width: 80px;
text-align: left;
margin-right: 10px;
}
}
.addStore {
margin-top: 24px;
// transition: all .3s;
// &:active{
// opacity: 0.7;
// }
// div{
// width: 16px;
// height: 16px;
// background-image: url(../assets/addIcon.svg);
// margin-right: 12px;
// }
// &:hover{
// div{
// background-image: url(../assets/addIcon_light.svg);
// }
// border-color: #006AFF;
// color: #006AFF;
// }
}
.radio-wrap {}
.tcpr-wrap {
.bidwrap-item {
padding: 0 !important;
background: transparent !important;
.biditemMast {
background: #fff;
padding: 24px 16px;
}
}
.semBidWrap {
padding-bottom: 24rpx;
}
}
.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;
transition: all .3s;
&:hover {
opacity: 0.7;
}
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;
}
a {
text-decoration: none;
color: #006AFF;
img {
margin-right: 10px;
}
}
}
}
.bidwrap-item-bot {
padding-left: 54px;
justify-content: flex-end;
}
}
}
}
</style>

2
src/views/elementGroups.vue

@ -363,7 +363,6 @@ import HoverButton from '@/components/HoverButton.vue'
import SvgIcon from '@/components/SvgIcon.vue';
// import { mapState } from 'vuex'
// import store from '@/store';
export default {
name: 'HomeView',
@ -680,7 +679,6 @@ export default {
mounted() {
this.getList();
this.getStagePurchase()
// this.$loadingFn.show()
// setInterval(()=>{
// this.$loadingFn.hide()

2
src/views/super/Ranking/Purchase.vue

@ -1,5 +1,5 @@
<template>
<div class="demo-wrap min-flex-right">
<div class="demo-wrap main-content12">
<div class="flex-between">
<h2>{{ pageTitle }}</h2>
<el-button type="primary" @click="openDialog">新增</el-button>

2
src/views/super/Ranking/RankBatchList.vue

@ -1,5 +1,5 @@
<template>
<div class="demo-wrap min-flex-right">
<div class="demo-wrap main-content12">
<div class="flex-between flex-end pagetitle">
<h4>{{ pageTitle }}</h4>
<CustomDropdown ref="dropdownRef" :placeholder="'('+viewDesc[this.view]+')'+text" width="280px">

2
src/views/super/Ranking/RankDetail.vue

@ -1,5 +1,5 @@
<template>
<div class="demo-wrap min-flex-right">
<div class="demo-wrap main-content12">
<div class="flex-between">
<h2>{{ filterTitle ? filterTitle : pageTitle }}</h2>
<CustomDropdown v-if="showDateSelect"

2
src/views/super/Ranking/RankList.vue

@ -1,5 +1,5 @@
<template>
<div class="demo-wrap min-flex-right">
<div class="demo-wrap main-content12">
<div class="flex-between">
<h2>{{ filterTitle ? filterTitle : pageTitle }}</h2>
<CustomDropdown v-if="showDateSelect" ref="dropdownRef"

Loading…
Cancel
Save