Commit b2002460 authored by lijin's avatar lijin

增加产品组管理

parent 1c8acfdb
import request from '@/utils/request'
const baseUrl = '/app-groups'
// 获取所有产品组
export function getAppGroupList(params) {
return request({
url: process.env.PUTIN_API + baseUrl,
method: 'get',
params
})
}
// 根据ID获取产品组
export function getAppGroupById(id) {
return request({
url: process.env.PUTIN_API + `${baseUrl}/${id}`,
method: 'get'
})
}
// 创建产品组
export function createAppGroup(data) {
return request({
url: process.env.PUTIN_API + baseUrl,
method: 'post',
data
})
}
// 更新产品组
export function updateAppGroup(data) {
return request({
url: process.env.PUTIN_API + `${baseUrl}/${data.id}`,
method: 'put',
data
})
}
// 删除产品组
export function deleteAppGroup(id) {
return request({
url: process.env.PUTIN_API + `${baseUrl}/${id}`,
method: 'delete'
})
}
// 获取所有APP列表
export function getAllApps() {
return request({
url: process.env.PUTIN_API + '/apps',
method: 'get'
})
}
<template>
<div class="app-transfer">
<el-transfer
v-model="selectedApps"
:data="appOptions"
:titles="['可选产品', '已选产品']"
:props="{
key: 'pkg',
label: 'appName'
}"
filterable
filter-placeholder="请输入产品名称"
@change="handleChange"
></el-transfer>
</div>
</template>
<script>
import { getAllApps } from '@/api/appGroup'
export default {
name: 'AppTransfer',
props: {
value: {
type: Array,
default: () => []
}
},
data() {
return {
appOptions: [],
selectedApps: []
}
},
watch: {
value: {
handler(newVal) {
this.selectedApps = newVal || []
},
immediate: true
}
},
created() {
this.fetchApps()
},
methods: {
async fetchApps() {
try {
const response = await getAllApps()
console.log('AppTransfer获取产品列表响应:', response)
if (response.status === 200 && response.result && response.result.data) {
// 确保数据格式正确
this.appOptions = response.result.data.map(app => ({
pkg: app.pkg,
appName: app.appName
}))
console.log('AppTransfer处理后的产品列表:', this.appOptions)
} else {
console.error('获取产品列表失败:', response)
}
} catch (error) {
console.error('获取产品列表失败:', error)
}
},
handleChange(value) {
this.$emit('input', value)
this.$emit('change', value)
}
}
}
</script>
<style scoped>
.app-transfer {
margin: 10px 0;
}
.el-transfer {
width: 100%;
}
.el-transfer-panel {
width: 45%;
}
</style>
......@@ -82,7 +82,8 @@ export const constantRouterMap = [
name: "intelligentDelivery.campaign-template",
component: () => import('@/views/campaignTemplate/CampaignTemplateManage'),
meta: { title: '计划模板管理' }
}
},
]
},
{
......@@ -100,6 +101,14 @@ export const constantRouterMap = [
component: () => import("@/views/createMaterial"),
meta: { title: "创意素材", icon: "chart" }
},
{
path: '/assetManagement/app-group',
name: "assetManagement.app-group",
component: () => import('@/views/appGroup/AppGroupManage'),
meta: { title: '产品组管理' }
},
{
path: "/tools/googleOauthYoutube",
name: "tools.youtubeacountrights",
......
This diff is collapsed.
......@@ -27,7 +27,7 @@
<el-submenu index="4">
<template slot="title">资产管理</template>
<el-menu-item index="/assetManagement/copywritingLibrary">文案管理</el-menu-item>
<el-menu-item index="/assetManagement/campaign-template">产品组</el-menu-item>
<el-menu-item index="/assetManagement/app-group">产品组管理</el-menu-item>
<el-menu-item index="/assetManagement/createDelivery">地域组</el-menu-item>
<el-menu-item index="/assetManagement/createDelivery">素材组</el-menu-item>
<el-menu-item index="/assetManagement/createDelivery">标题组</el-menu-item>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment