Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c9e8dfabb5 | ||
![]() |
087fde6f85 | ||
![]() |
035bac816f | ||
![]() |
b7a747a013 | ||
![]() |
21ac6f1cd1 | ||
![]() |
0d4836bfb3 | ||
![]() |
1269c0eaf4 | ||
![]() |
d6bb57257d | ||
![]() |
5dba3b8c67 | ||
![]() |
e449f5aca8 | ||
![]() |
821658348e | ||
![]() |
43ac6ad39b |
@ -5,8 +5,8 @@ source /etc/profile
|
|||||||
npm install --prefer-offline --loglevel info --unsafe-perm=true --allow-root >> boundle.log
|
npm install --prefer-offline --loglevel info --unsafe-perm=true --allow-root >> boundle.log
|
||||||
echo 'copy node_modules to /data/publish/node_packages' >> boundle.log
|
echo 'copy node_modules to /data/publish/node_packages' >> boundle.log
|
||||||
|
|
||||||
# npm run build:prod
|
npm run build:prod
|
||||||
npm run build:stage
|
# npm run build:stage
|
||||||
|
|
||||||
cd ./dist/ && tar -zcvf pop-sys.tar.gz ./
|
cd ./dist/ && tar -zcvf pop-sys.tar.gz ./
|
||||||
cd ..
|
cd ..
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
<el-row
|
<el-row
|
||||||
:gutter="24"
|
:gutter="24"
|
||||||
class="mgt-20 mgb-20"
|
class="mgt-20 mgb-20 pics-wrap"
|
||||||
>
|
>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<div class="img-box uploader-box">
|
<div class="img-box uploader-box">
|
||||||
|
@ -5,6 +5,8 @@ import Layout from '@/layout'
|
|||||||
const adRouter = {
|
const adRouter = {
|
||||||
path: '/ad',
|
path: '/ad',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
|
redirect: '/ad/list',
|
||||||
|
name: 'ad',
|
||||||
meta: {
|
meta: {
|
||||||
title: '广告投放',
|
title: '广告投放',
|
||||||
icon: 'ad',
|
icon: 'ad',
|
||||||
@ -16,6 +18,15 @@ const adRouter = {
|
|||||||
name: 'adList',
|
name: 'adList',
|
||||||
meta: {title: '广告管理'},
|
meta: {title: '广告管理'},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'edit',
|
||||||
|
component: () => import('@/views/ad/edit'), // Parent router-view
|
||||||
|
name: 'adEdit',
|
||||||
|
hidden: true,
|
||||||
|
meta: {
|
||||||
|
title: '广告编辑',
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: 'jump',
|
path: 'jump',
|
||||||
component: () => import('@/views/ad/jump'), // Parent router-view
|
component: () => import('@/views/ad/jump'), // Parent router-view
|
||||||
@ -32,16 +43,6 @@ const adRouter = {
|
|||||||
title: 'AppID列表',
|
title: 'AppID列表',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
|
||||||
path: 'edit',
|
|
||||||
component: () => import('@/views/ad/edit'), // Parent router-view
|
|
||||||
name: 'adEdit',
|
|
||||||
hidden: true,
|
|
||||||
meta: {
|
|
||||||
title: '广告编辑',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,10 +5,12 @@ import Layout from '@/layout'
|
|||||||
const adminRouter = {
|
const adminRouter = {
|
||||||
path: '/admin',
|
path: '/admin',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
|
redirect: '/admin/user-list',
|
||||||
|
name: 'admin',
|
||||||
meta: {
|
meta: {
|
||||||
title: '系统管理',
|
title: '系统管理',
|
||||||
icon: 'system',
|
icon: 'system',
|
||||||
// roles: ['admin'],
|
roles: ['admin']
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
// {
|
// {
|
||||||
@ -25,6 +27,30 @@ const adminRouter = {
|
|||||||
title: '用户列表',
|
title: '用户列表',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
// {
|
||||||
|
// path: 'ad-list',
|
||||||
|
// component: () => import('@/views/admin/ad-list'), // Parent router-view
|
||||||
|
// name: 'adminAdList',
|
||||||
|
// meta: {
|
||||||
|
// title: '广告列表',
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// path: 'jump',
|
||||||
|
// component: () => import('@/views/admin/jump'), // Parent router-view
|
||||||
|
// name: 'adminAdJump',
|
||||||
|
// meta: {
|
||||||
|
// title: '互跳管理',
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// path: 'game-list',
|
||||||
|
// component: () => import('@/views/admin/game-list'), // Parent router-view
|
||||||
|
// name: 'adminGameList',
|
||||||
|
// meta: {
|
||||||
|
// title: 'AppID列表',
|
||||||
|
// },
|
||||||
|
// },
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ import errRouter from './error'
|
|||||||
export const constantRoutes = [
|
export const constantRoutes = [
|
||||||
{
|
{
|
||||||
path: '/',
|
path: '/',
|
||||||
redirect: '/ad/ad-list',
|
redirect: '/ad/list'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/login',
|
path: '/login',
|
||||||
@ -58,12 +58,10 @@ export const constantRoutes = [
|
|||||||
// dashboardRouter,
|
// dashboardRouter,
|
||||||
adRouter,
|
adRouter,
|
||||||
libRouter,
|
libRouter,
|
||||||
|
// comRouter,
|
||||||
|
// adminRouter,
|
||||||
errRouter,
|
errRouter,
|
||||||
userRouter,
|
userRouter,
|
||||||
adminRouter,
|
|
||||||
// comRouter,
|
|
||||||
// 404 page must be placed at the end !!!
|
|
||||||
{path: '*', redirect: '/404', hidden: true},
|
|
||||||
]
|
]
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -71,9 +69,9 @@ export const constantRoutes = [
|
|||||||
* the routes that need to be dynamically loaded based on user roles
|
* the routes that need to be dynamically loaded based on user roles
|
||||||
*/
|
*/
|
||||||
export const asyncRoutes = [
|
export const asyncRoutes = [
|
||||||
// adminRouter,
|
adminRouter,
|
||||||
// // 404 page must be placed at the end !!!
|
// 404 page must be placed at the end !!!
|
||||||
// {path: '*', redirect: '/404', hidden: true},
|
{path: '*', redirect: '/404', hidden: true},
|
||||||
]
|
]
|
||||||
|
|
||||||
const createRouter = () =>
|
const createRouter = () =>
|
||||||
|
@ -5,6 +5,7 @@ import Layout from '@/layout'
|
|||||||
const libRouter = {
|
const libRouter = {
|
||||||
path: '/lib',
|
path: '/lib',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
|
name: 'lib',
|
||||||
meta: {
|
meta: {
|
||||||
title: '资源库',
|
title: '资源库',
|
||||||
icon: 'pic',
|
icon: 'pic',
|
||||||
|
@ -5,6 +5,7 @@ import Layout from '@/layout'
|
|||||||
const comRouter = {
|
const comRouter = {
|
||||||
path: '/user',
|
path: '/user',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
|
redirect: 'user',
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: '',
|
path: '',
|
||||||
|
@ -80,6 +80,10 @@
|
|||||||
size="mini"
|
size="mini"
|
||||||
@click="selectAllLocation"
|
@click="selectAllLocation"
|
||||||
>选择所有位置</el-button>
|
>选择所有位置</el-button>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
@click="deselectAllLocation"
|
||||||
|
>清空</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
label="广告头像"
|
label="广告头像"
|
||||||
@ -96,26 +100,24 @@
|
|||||||
:show-file-list="false"
|
:show-file-list="false"
|
||||||
:before-upload="beforeUpload"
|
:before-upload="beforeUpload"
|
||||||
>
|
>
|
||||||
<img
|
<span @click="openModal">
|
||||||
v-if="adForm.ad_image"
|
<img
|
||||||
:src="adForm.ad_image"
|
v-if="adForm.ad_image"
|
||||||
class="uploader-img"
|
:src="adForm.ad_image"
|
||||||
>
|
class="uploader-img"
|
||||||
<i
|
>
|
||||||
v-else
|
<i
|
||||||
class="el-icon-plus uploader-icon"
|
v-else
|
||||||
/>
|
class="el-icon-plus uploader-icon"
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
|
||||||
</el-upload>
|
</el-upload>
|
||||||
|
|
||||||
<span
|
<span
|
||||||
class="ipt-tip"
|
class="ipt-tip"
|
||||||
style="margin-top: 6px;"
|
style="margin-top: 6px;"
|
||||||
>只能上传小于 600k 的图片</span>
|
>只能上传小于 600k 的图片</span>
|
||||||
<el-button
|
|
||||||
type="primary"
|
|
||||||
size="mini"
|
|
||||||
@click="openModal"
|
|
||||||
:disabled="!writeable"
|
|
||||||
>选择图片</el-button>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
label="是否跳转"
|
label="是否跳转"
|
||||||
@ -208,6 +210,7 @@
|
|||||||
class="w100"
|
class="w100"
|
||||||
:disabled="!writeable"
|
:disabled="!writeable"
|
||||||
/>
|
/>
|
||||||
|
<span class="ipt-tip">当前最高优先级:{{this.sortList[this.sortList.length-1]}},最低优先级:{{this.sortList[0]}}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
label="广告标题"
|
label="广告标题"
|
||||||
@ -378,6 +381,7 @@ export default {
|
|||||||
modeList: {},
|
modeList: {},
|
||||||
uploadUrl: `${process.env.VUE_APP_UPLOAD}`,
|
uploadUrl: `${process.env.VUE_APP_UPLOAD}`,
|
||||||
targetList: [],
|
targetList: [],
|
||||||
|
sortList: [],
|
||||||
// form
|
// form
|
||||||
adForm: {
|
adForm: {
|
||||||
name: '',
|
name: '',
|
||||||
@ -425,13 +429,13 @@ export default {
|
|||||||
ad_sort: [
|
ad_sort: [
|
||||||
{type: 'number', message: '广告优先级必须是数值', trigger: 'blur'},
|
{type: 'number', message: '广告优先级必须是数值', trigger: 'blur'},
|
||||||
],
|
],
|
||||||
'ad_property.jump_param': [
|
// 'ad_property.jump_param': [
|
||||||
{
|
// {
|
||||||
required: true,
|
// required: true,
|
||||||
message: '请填写广告特征码(ad_channel)',
|
// message: '请填写广告特征码(ad_channel)',
|
||||||
trigger: 'blur',
|
// trigger: 'blur',
|
||||||
},
|
// },
|
||||||
],
|
// ],
|
||||||
'ad_property.appid': [
|
'ad_property.appid': [
|
||||||
{required: true, validator: validateAppId, trigger: 'blur'},
|
{required: true, validator: validateAppId, trigger: 'blur'},
|
||||||
],
|
],
|
||||||
@ -719,6 +723,20 @@ export default {
|
|||||||
platform_id: this.adForm.channelid,
|
platform_id: this.adForm.channelid,
|
||||||
})
|
})
|
||||||
this.targetList = targetList.result
|
this.targetList = targetList.result
|
||||||
|
|
||||||
|
// 获取投放游戏的优先级列表
|
||||||
|
if (this.adForm.gameid) {
|
||||||
|
const adsRes = await this.getAd({
|
||||||
|
gameid: this.adForm.gameid,
|
||||||
|
})
|
||||||
|
const ads = adsRes.message || []
|
||||||
|
this.sortList = ads.map(item => {
|
||||||
|
return item.ad_sort
|
||||||
|
})
|
||||||
|
this.sortList.sort(function(a, b) {
|
||||||
|
return a - b
|
||||||
|
})
|
||||||
|
}
|
||||||
},
|
},
|
||||||
changeTarget(val) {
|
changeTarget(val) {
|
||||||
this.adForm.ad_property.link = ''
|
this.adForm.ad_property.link = ''
|
||||||
@ -788,6 +806,9 @@ export default {
|
|||||||
})
|
})
|
||||||
this.adForm.locationid = locs
|
this.adForm.locationid = locs
|
||||||
},
|
},
|
||||||
|
deselectAllLocation() {
|
||||||
|
this.adForm.locationid = []
|
||||||
|
},
|
||||||
// modal
|
// modal
|
||||||
openModal() {
|
openModal() {
|
||||||
this.modalVisible = true
|
this.modalVisible = true
|
||||||
@ -815,5 +836,9 @@ export default {
|
|||||||
.scrollbar >>> .el-scrollbar__bar.is-horizontal {
|
.scrollbar >>> .el-scrollbar__bar.is-horizontal {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.scrollbar >>> .pics-wrap {
|
||||||
|
padding: 0 4px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
@ -297,7 +297,7 @@ import {Promise, reject} from 'q'
|
|||||||
import moment from 'moment'
|
import moment from 'moment'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AdminAdList',
|
name: 'adList',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// common
|
// common
|
||||||
|
Loading…
x
Reference in New Issue
Block a user