|
|
@@ -67,13 +67,34 @@
|
|
|
|
|
|
<template #tableBeforeButtons>
|
|
|
<a-button
|
|
|
- size="mini"
|
|
|
type="primary"
|
|
|
@click="addApk"
|
|
|
- :disabled="selecteds.length != 1"
|
|
|
+ :disabled="selecteds.length === 0"
|
|
|
>
|
|
|
APK打包
|
|
|
</a-button>
|
|
|
+ <a-button
|
|
|
+ type="primary"
|
|
|
+ status="warning"
|
|
|
+ @click="addGdt"
|
|
|
+ :disabled="selecteds.length === 0"
|
|
|
+ >广点通分包</a-button
|
|
|
+ >
|
|
|
+
|
|
|
+ <a-button
|
|
|
+ type="primary"
|
|
|
+ status="success"
|
|
|
+ @click="addKs"
|
|
|
+ :disabled="selecteds.length === 0"
|
|
|
+ >快手分包</a-button
|
|
|
+ >
|
|
|
+ <a-button
|
|
|
+ type="primary"
|
|
|
+ status="danger"
|
|
|
+ @click="addTt"
|
|
|
+ :disabled="selecteds.length === 0"
|
|
|
+ >头条推送</a-button
|
|
|
+ >
|
|
|
</template>
|
|
|
|
|
|
<!-- Table 自定义渲染 -->
|
|
|
@@ -83,17 +104,28 @@
|
|
|
|
|
|
<!-- 打包新增 -->
|
|
|
<add-apk-form ref="addApkRef" @success="refresh" />
|
|
|
+
|
|
|
+ <!-- 快手分包 -->
|
|
|
+ <ks-pac-form ref="ksPacRef" @success="refresh" />
|
|
|
+
|
|
|
+ <!-- 广点通分包 -->
|
|
|
+ <gdt-pac-form ref="gdtPacRef" @success="refresh" />
|
|
|
+
|
|
|
+ <!-- 头条推送(新) -->
|
|
|
+ <tt-pac-form ref="ttPacRef" @success="refresh" />
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
import { onMounted, ref, reactive } from "vue";
|
|
|
-import { Message } from "@arco-design/web-vue";
|
|
|
+import { Message, Modal } from "@arco-design/web-vue";
|
|
|
import advertCommonApi from "../../api/advert/common";
|
|
|
import editForm from "./edit.vue";
|
|
|
import addApkForm from "../../gameLog/gamePackageLog/edit.vue";
|
|
|
import api from "../../api/advert/agentSite";
|
|
|
-
|
|
|
+import ksPacForm from "./ks_pac.vue";
|
|
|
+import gdtPacForm from "./gdt_pac.vue";
|
|
|
+import ttPacForm from "./tt_pac.vue";
|
|
|
// 引用定义
|
|
|
const crudRef = ref();
|
|
|
const viewRef = ref();
|
|
|
@@ -102,6 +134,9 @@ const mediaOptions = ref([]);
|
|
|
const agentOptions = ref([]);
|
|
|
const authOptions = ref([]);
|
|
|
const editRef = ref();
|
|
|
+const ksPacRef = ref();
|
|
|
+const gdtPacRef = ref();
|
|
|
+const ttPacRef = ref();
|
|
|
const selecteds = ref([]);
|
|
|
|
|
|
// 搜索表单
|
|
|
@@ -146,9 +181,9 @@ const options = reactive({
|
|
|
|
|
|
// SaTable 列配置
|
|
|
const columns = reactive([
|
|
|
+ { title: "广告位ID", dataIndex: "id", width: 120 },
|
|
|
{ title: "广告位名称", dataIndex: "name", width: 180 },
|
|
|
- { title: "媒体ID", dataIndex: "media_id", width: 180 },
|
|
|
- { title: "媒体名", dataIndex: "media_name", width: 180 },
|
|
|
+ { title: "媒体类型", dataIndex: "media_name", width: 180 },
|
|
|
{ title: "渠道ID", dataIndex: "agent_id", width: 180 },
|
|
|
{ title: "渠道名", dataIndex: "agent_name", width: 180 },
|
|
|
{ title: "负责人", dataIndex: "auth_name", width: 180 },
|
|
|
@@ -193,14 +228,96 @@ const getAdvertSiteDetail = async () => {
|
|
|
|
|
|
// 打包新增
|
|
|
const addApk = async () => {
|
|
|
- let id = selecteds.value[0];
|
|
|
- const siteDetail = await getAdvertSiteDetail(id);
|
|
|
- let data = {
|
|
|
- site_id: siteDetail.id, // 广告位
|
|
|
- agent_id: siteDetail.agent_id, // 渠道
|
|
|
- };
|
|
|
+ let data = [];
|
|
|
+ let tableData = crudRef.value?.getTableData();
|
|
|
+ for (let i = 0; i < selecteds.value.length; i++) {
|
|
|
+ let id = selecteds.value[i];
|
|
|
+ let row = tableData.find((item) => item.id == id);
|
|
|
+ data.push({
|
|
|
+ site_id: row.id, // 广告位
|
|
|
+ agent_id: row.agent_id, // 渠道
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
addApkRef.value?.open();
|
|
|
- addApkRef.value?.setFormData(data);
|
|
|
+ addApkRef.value?.setBatchData(data);
|
|
|
+};
|
|
|
+
|
|
|
+// 广点通分包
|
|
|
+const addGdt = async () => {
|
|
|
+ let tableData = crudRef.value?.getTableData();
|
|
|
+ for (let i = 0; i < selecteds.value.length; i++) {
|
|
|
+ // media_id 必须都是1, 否则不给打包
|
|
|
+ let row = tableData.find((item) => item.id == selecteds.value[i]);
|
|
|
+ if (row.media_id != 2) {
|
|
|
+ Modal.error({
|
|
|
+ title: "提示",
|
|
|
+ content: `广告位ID:${row.id},媒体类型不是广点通,不能分包!`,
|
|
|
+ });
|
|
|
+
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let data = [];
|
|
|
+ for (let i = 0; i < selecteds.value.length; i++) {
|
|
|
+ let row = tableData.find((item) => item.id == selecteds.value[i]);
|
|
|
+ data.push({
|
|
|
+ site_id: row.id, // 广告位
|
|
|
+ agent_id: row.agent_id, // 渠道
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ gdtPacRef.value?.open();
|
|
|
+ gdtPacRef.value?.setBatchData(data);
|
|
|
+};
|
|
|
+
|
|
|
+// 快手分包
|
|
|
+const addKs = async () => {
|
|
|
+ let tableData = crudRef.value?.getTableData();
|
|
|
+ for (let i = 0; i < selecteds.value.length; i++) {
|
|
|
+ let row = tableData.find((item) => item.id == selecteds.value[i]);
|
|
|
+ if (row.media_id != 3) {
|
|
|
+ Modal.error({
|
|
|
+ title: "提示",
|
|
|
+ content: `广告位ID:${row.id},媒体类型不是快手,不能分包!`,
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let data = [];
|
|
|
+ for (let i = 0; i < selecteds.value.length; i++) {
|
|
|
+ let row = tableData.find((item) => item.id == selecteds.value[i]);
|
|
|
+ data.push({
|
|
|
+ site_id: row.id, // 广告位
|
|
|
+ agent_id: row.agent_id, // 渠道
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ ksPacRef.value?.open();
|
|
|
+ ksPacRef.value?.setBatchData(data);
|
|
|
+};
|
|
|
+
|
|
|
+// 头条推送(新)
|
|
|
+const addTt = async () => {
|
|
|
+ let tableData = crudRef.value?.getTableData();
|
|
|
+ for (let i = 0; i < selecteds.value.length; i++) {
|
|
|
+ let row = tableData.find((item) => item.id == selecteds.value[i]);
|
|
|
+ if (row.media_id != 1) {
|
|
|
+ Modal.error({
|
|
|
+ title: "提示",
|
|
|
+ content: `广告位ID:${row.id},媒体类型不是头条,不能推送!`,
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let siteIds = [];
|
|
|
+ for (let i = 0; i < selecteds.value.length; i++) {
|
|
|
+ let row = tableData.find((item) => item.id == selecteds.value[i]);
|
|
|
+ siteIds.push(row.id);
|
|
|
+ }
|
|
|
+
|
|
|
+ ttPacRef.value?.open();
|
|
|
+ ttPacRef.value?.setSiteIds(siteIds.join(","));
|
|
|
};
|
|
|
|
|
|
// 页面数据初始化
|