|
@@ -2,21 +2,10 @@
|
|
<div class="page-wrap page-wrap-account">
|
|
<div class="page-wrap page-wrap-account">
|
|
<tool-bar
|
|
<tool-bar
|
|
:text="['account_name', 'email', 'ad_name', 'campaign_name']"
|
|
:text="['account_name', 'email', 'ad_name', 'campaign_name']"
|
|
- :label="['账户名', '邮箱', '计划名称', '广告组名称']"
|
|
|
|
|
|
+ :label="['账户名', '邮箱', '计划名称(或ID)', '广告组名称']"
|
|
v-model:loading="inSearching"
|
|
v-model:loading="inSearching"
|
|
@confirm="onSearch"
|
|
@confirm="onSearch"
|
|
>
|
|
>
|
|
- <!-- <template #picker>
|
|
|
|
- <p class="label">日期</p>
|
|
|
|
- <a-range-picker
|
|
|
|
- v-model:value="picker"
|
|
|
|
- :ranges="{
|
|
|
|
- 本周: [moment(), moment().endOf('week')],
|
|
|
|
- 本月: [moment(), moment().endOf('month')],
|
|
|
|
- }"
|
|
|
|
- format="YYYY/MM/DD"
|
|
|
|
- />
|
|
|
|
- </template> -->
|
|
|
|
<div class="tool-bar-item" v-if="optionList.length > 0">
|
|
<div class="tool-bar-item" v-if="optionList.length > 0">
|
|
<p class="label">计划状态</p>
|
|
<p class="label">计划状态</p>
|
|
<a-select class="full-width" v-model:value="currentSelect">
|
|
<a-select class="full-width" v-model:value="currentSelect">
|
|
@@ -40,9 +29,9 @@
|
|
format="YYYY/MM/DD"
|
|
format="YYYY/MM/DD"
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
- <a-button type="primary">
|
|
|
|
- 回本数据
|
|
|
|
- </a-button>
|
|
|
|
|
|
+ <a-button type="primary" @click="openBackDrawer">
|
|
|
|
+ 回本数据
|
|
|
|
+ </a-button>
|
|
</div>
|
|
</div>
|
|
<a-table
|
|
<a-table
|
|
:columns="columns"
|
|
:columns="columns"
|
|
@@ -90,6 +79,14 @@
|
|
>
|
|
>
|
|
<put-data></put-data>
|
|
<put-data></put-data>
|
|
</a-drawer>
|
|
</a-drawer>
|
|
|
|
+ <a-drawer
|
|
|
|
+ title="回本数据"
|
|
|
|
+ placement="right"
|
|
|
|
+ :closable="false"
|
|
|
|
+ v-model:visible="visible1"
|
|
|
|
+ >
|
|
|
|
+ <put-count :ids="ids"></put-count>
|
|
|
|
+ </a-drawer>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -98,9 +95,10 @@ import { defineComponent, reactive, toRefs, ref, unref } from "vue";
|
|
import moment from "moment";
|
|
import moment from "moment";
|
|
import ToolBar from "@/components/tool-bar/index.vue";
|
|
import ToolBar from "@/components/tool-bar/index.vue";
|
|
import PutData from "@/views/put/put-log.vue";
|
|
import PutData from "@/views/put/put-log.vue";
|
|
|
|
+import PutCount from "@/views/put/put-ad-count.vue";
|
|
import EditableCell from "@/components/edit-cell/index.vue";
|
|
import EditableCell from "@/components/edit-cell/index.vue";
|
|
import usePagination from "@/hooks/usePagination";
|
|
import usePagination from "@/hooks/usePagination";
|
|
-import {picker} from "@/helper/config/range";
|
|
|
|
|
|
+import { picker } from "@/helper/config/range";
|
|
|
|
|
|
import {
|
|
import {
|
|
TableColumnOfPutAdPlan,
|
|
TableColumnOfPutAdPlan,
|
|
@@ -123,6 +121,7 @@ const PutAdPlan = defineComponent({
|
|
ToolBar,
|
|
ToolBar,
|
|
EditableCell,
|
|
EditableCell,
|
|
PutData,
|
|
PutData,
|
|
|
|
+ PutCount,
|
|
},
|
|
},
|
|
setup() {
|
|
setup() {
|
|
let { loading, meta, tablePageOptions } = usePagination();
|
|
let { loading, meta, tablePageOptions } = usePagination();
|
|
@@ -136,43 +135,36 @@ const PutAdPlan = defineComponent({
|
|
currentSelect: "AD_STATUS_DELIVERY_OK",
|
|
currentSelect: "AD_STATUS_DELIVERY_OK",
|
|
picker: [],
|
|
picker: [],
|
|
visible: false,
|
|
visible: false,
|
|
- pickerFilter: [],
|
|
|
|
|
|
+ visible1: false,
|
|
|
|
+ pickerFilter: [moment(), moment()],
|
|
tablePageOptions,
|
|
tablePageOptions,
|
|
columns: list,
|
|
columns: list,
|
|
|
|
+ ids: "",
|
|
optionList: opList,
|
|
optionList: opList,
|
|
defaultColumns: TableColumnOfPutAdPlan,
|
|
defaultColumns: TableColumnOfPutAdPlan,
|
|
fields: {},
|
|
fields: {},
|
|
- rangePick:picker
|
|
|
|
|
|
+ rangePick: picker,
|
|
});
|
|
});
|
|
getAddStatus().then((res) => {
|
|
getAddStatus().then((res) => {
|
|
|
|
+ res.data.unshift({
|
|
|
|
+ name: "",
|
|
|
|
+ desc: "不限",
|
|
|
|
+ });
|
|
state.optionList = res.data;
|
|
state.optionList = res.data;
|
|
});
|
|
});
|
|
const onSearch = async (fields: Record<string, string>) => {
|
|
const onSearch = async (fields: Record<string, string>) => {
|
|
try {
|
|
try {
|
|
const { email, account_name, ad_name, status, campaign_name } = fields;
|
|
const { email, account_name, ad_name, status, campaign_name } = fields;
|
|
-
|
|
|
|
- const { pickerFilter } = state;
|
|
|
|
- let [begin_dates, end_dates] = pickerFilter;
|
|
|
|
- let begin_date = moment(begin_dates).format("YYYY-MM-DD");
|
|
|
|
- let end_date = moment(end_dates).format("YYYY-MM-DD");
|
|
|
|
-
|
|
|
|
- const { data } = await getADPlanlist({
|
|
|
|
|
|
+ state.fields = fields;
|
|
|
|
+ const data = {
|
|
email,
|
|
email,
|
|
account_name,
|
|
account_name,
|
|
ad_name,
|
|
ad_name,
|
|
- begin_date,
|
|
|
|
- end_date,
|
|
|
|
status: state.currentSelect,
|
|
status: state.currentSelect,
|
|
campaign_name,
|
|
campaign_name,
|
|
page: 1,
|
|
page: 1,
|
|
- });
|
|
|
|
- let newList: any[] = data.list.map((item) => {
|
|
|
|
- item.enable = item.is_enable == 1 ? true : false;
|
|
|
|
- return item;
|
|
|
|
- });
|
|
|
|
- state.list = newList;
|
|
|
|
- meta.value = data.meta;
|
|
|
|
- state.fields = fields;
|
|
|
|
|
|
+ };
|
|
|
|
+ getData(data);
|
|
} catch (e) {
|
|
} catch (e) {
|
|
console.log(e);
|
|
console.log(e);
|
|
} finally {
|
|
} finally {
|
|
@@ -184,13 +176,22 @@ const PutAdPlan = defineComponent({
|
|
onSearch(state.fields);
|
|
onSearch(state.fields);
|
|
};
|
|
};
|
|
|
|
|
|
- getADPlanlist().then((res) => {
|
|
|
|
- let newList: any[] = res.data.list.map((item) => {
|
|
|
|
- item.enable = item.is_enable == 1 ? true : false;
|
|
|
|
- return item;
|
|
|
|
|
|
+ const getData = (query?: any) => {
|
|
|
|
+ const { pickerFilter } = state;
|
|
|
|
+ let [begin_dates, end_dates] = pickerFilter;
|
|
|
|
+ let begin_date = moment(begin_dates).format("YYYY-MM-DD");
|
|
|
|
+ let end_date = moment(end_dates).format("YYYY-MM-DD");
|
|
|
|
+ let data = Object.assign({ page: 1,status:'AD_STATUS_DELIVERY_OK',...state.fields},query || {}, {begin_date, end_date,status: state.currentSelect});
|
|
|
|
+ getADPlanlist(data).then((res) => {
|
|
|
|
+ let newList: any[] = res.data.list.map((item) => {
|
|
|
|
+ item.enable = item.is_enable == 1 ? true : false;
|
|
|
|
+ return item;
|
|
|
|
+ });
|
|
|
|
+ state.list = newList;
|
|
|
|
+ meta.value = res.data.meta;
|
|
|
|
+ state.inSearching = false;
|
|
});
|
|
});
|
|
- state.list = newList;
|
|
|
|
- });
|
|
|
|
|
|
+ };
|
|
|
|
|
|
getCustomColumn().then((res) => {
|
|
getCustomColumn().then((res) => {
|
|
let columns: any[] = [];
|
|
let columns: any[] = [];
|
|
@@ -228,16 +229,11 @@ const PutAdPlan = defineComponent({
|
|
|
|
|
|
const handleTableChange = (pagination: PageOptions) => {
|
|
const handleTableChange = (pagination: PageOptions) => {
|
|
const { current, pageSize, total } = pagination;
|
|
const { current, pageSize, total } = pagination;
|
|
- getADPlanlist({ page: current }).then((res) => {
|
|
|
|
- let newList: any[] = res.data.list.map((item) => {
|
|
|
|
- item.enable = item.is_enable == 1 ? true : false;
|
|
|
|
- return item;
|
|
|
|
- });
|
|
|
|
- state.list = newList;
|
|
|
|
- meta.value = res.data.meta;
|
|
|
|
- });
|
|
|
|
|
|
+ getData({ page: current });
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ getData();
|
|
|
|
+
|
|
return { ...toRefs(state), handleTableChange, onSearch, switchDate };
|
|
return { ...toRefs(state), handleTableChange, onSearch, switchDate };
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
@@ -280,6 +276,14 @@ const PutAdPlan = defineComponent({
|
|
this.$message.success("修改广告状态成功!");
|
|
this.$message.success("修改广告状态成功!");
|
|
});
|
|
});
|
|
},
|
|
},
|
|
|
|
+ openBackDrawer() {
|
|
|
|
+ let ids = "";
|
|
|
|
+ this.list.map((item: ADPlanItem) => {
|
|
|
|
+ ids = ids + `,${item.ad_id}`;
|
|
|
|
+ });
|
|
|
|
+ this.ids = ids.substring(1);
|
|
|
|
+ this.visible1 = true;
|
|
|
|
+ },
|
|
},
|
|
},
|
|
});
|
|
});
|
|
|
|
|
|
@@ -295,7 +299,7 @@ export default PutAdPlan;
|
|
.ant-drawer-content-wrapper {
|
|
.ant-drawer-content-wrapper {
|
|
width: 80vw !important;
|
|
width: 80vw !important;
|
|
}
|
|
}
|
|
-.item-right{
|
|
|
|
- margin-right:10px;
|
|
|
|
|
|
+.item-right {
|
|
|
|
+ margin-right: 10px;
|
|
}
|
|
}
|
|
</style>
|
|
</style>
|