|
@@ -1,11 +1,11 @@
|
|
<template>
|
|
<template>
|
|
<div class="group-select">
|
|
<div class="group-select">
|
|
<a-form
|
|
<a-form
|
|
- ref="formCheck"
|
|
|
|
:label-col="{ span: 2 }"
|
|
:label-col="{ span: 2 }"
|
|
:wrapper-col="{ span: 8 }"
|
|
:wrapper-col="{ span: 8 }"
|
|
:rules="rules"
|
|
:rules="rules"
|
|
:model="form"
|
|
:model="form"
|
|
|
|
+ ref="formCheck"
|
|
>
|
|
>
|
|
<a-form-item label="创建方式">
|
|
<a-form-item label="创建方式">
|
|
<a-radio-group v-model:value="form.build_mode">
|
|
<a-radio-group v-model:value="form.build_mode">
|
|
@@ -89,6 +89,10 @@ import { defineComponent, reactive, toRefs, ref, createVNode } from "vue";
|
|
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
|
|
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
|
|
import { getAdCampaigns, createAdCampaign } from "@/api";
|
|
import { getAdCampaigns, createAdCampaign } from "@/api";
|
|
import { message, Modal } from "ant-design-vue";
|
|
import { message, Modal } from "ant-design-vue";
|
|
|
|
+import {
|
|
|
|
+ RuleObject,
|
|
|
|
+ ValidateErrorEntity,
|
|
|
|
+} from "ant-design-vue/es/form/interface";
|
|
import Bus from "@/utils/bus";
|
|
import Bus from "@/utils/bus";
|
|
|
|
|
|
const GroupSelect = defineComponent({
|
|
const GroupSelect = defineComponent({
|
|
@@ -117,6 +121,14 @@ const GroupSelect = defineComponent({
|
|
padding: "0 10px",
|
|
padding: "0 10px",
|
|
borderBottom: "1px solid rgb(230, 230, 230)",
|
|
borderBottom: "1px solid rgb(230, 230, 230)",
|
|
});
|
|
});
|
|
|
|
+ let checkBudget = async (rule: RuleObject, value: string | number) => {
|
|
|
|
+ if (value < 300) {
|
|
|
|
+ return Promise.reject("预算不得少于300元");
|
|
|
|
+ } else {
|
|
|
|
+ formCheck.value.validateField("checkPass");
|
|
|
|
+ return Promise.resolve();
|
|
|
|
+ }
|
|
|
|
+ };
|
|
const rules = {
|
|
const rules = {
|
|
build_mode: [
|
|
build_mode: [
|
|
{
|
|
{
|
|
@@ -155,34 +167,13 @@ const GroupSelect = defineComponent({
|
|
],
|
|
],
|
|
budget: [
|
|
budget: [
|
|
{
|
|
{
|
|
- required: true,
|
|
|
|
- message: "请输入广告组预算",
|
|
|
|
|
|
+ validator: checkBudget,
|
|
trigger: "blur",
|
|
trigger: "blur",
|
|
},
|
|
},
|
|
],
|
|
],
|
|
};
|
|
};
|
|
- // const check = () => {
|
|
|
|
- // // formCheck.value
|
|
|
|
- // // .validate()
|
|
|
|
- // // .then(() => {
|
|
|
|
- // // console.log("values");
|
|
|
|
- // // })
|
|
|
|
- // // .catch((error: any) => {
|
|
|
|
- // // console.log("error", error);
|
|
|
|
- // // });
|
|
|
|
- // console.log("Form", state.form);
|
|
|
|
- // if (state.form.build_mode === "1") {
|
|
|
|
- // // 请求创建广告主接口
|
|
|
|
- // let param: any = { ...state.form,advertiser_id: };
|
|
|
|
- // delete param.build_mode;
|
|
|
|
- // if (param.budget_mode === "BUDGET_MODE_INFINITE") delete param.budget;
|
|
|
|
- // }
|
|
|
|
|
|
|
|
- // // 返回处理
|
|
|
|
- // let data = { flag: false, campaign_id: 0 };
|
|
|
|
- // return data;
|
|
|
|
- // };
|
|
|
|
- return { ...toRefs(state), radioStyle, rules, formCheck };
|
|
|
|
|
|
+ return { ...toRefs(state), radioStyle, rules, formCheck, checkBudget };
|
|
},
|
|
},
|
|
beforeRouteLeave(to: any, from, next) {
|
|
beforeRouteLeave(to: any, from, next) {
|
|
console.log("离开", to);
|
|
console.log("离开", to);
|
|
@@ -218,11 +209,14 @@ const GroupSelect = defineComponent({
|
|
this.form = JSON.parse(
|
|
this.form = JSON.parse(
|
|
String(window.localStorage.getItem("plan-create-campaign"))
|
|
String(window.localStorage.getItem("plan-create-campaign"))
|
|
);
|
|
);
|
|
- console.log("REF", this.formCheck);
|
|
|
|
// this.getGroups();
|
|
// this.getGroups();
|
|
- Bus.$on("stepTwoCheck", () => {
|
|
|
|
- let data = this.check();
|
|
|
|
- console.log(data);
|
|
|
|
|
|
+ Bus.$on("stepTwoCheck", (val?: any) => {
|
|
|
|
+ let data: any = {};
|
|
|
|
+ if (val) {
|
|
|
|
+ data = val;
|
|
|
|
+ } else {
|
|
|
|
+ data = this.check();
|
|
|
|
+ }
|
|
if (data.flag) {
|
|
if (data.flag) {
|
|
window.localStorage.setItem(
|
|
window.localStorage.setItem(
|
|
"plan-create-campaign",
|
|
"plan-create-campaign",
|
|
@@ -239,13 +233,17 @@ const GroupSelect = defineComponent({
|
|
},
|
|
},
|
|
// step2创建广告组页面校验
|
|
// step2创建广告组页面校验
|
|
check() {
|
|
check() {
|
|
|
|
+ let flag = this.isObjEqual(
|
|
|
|
+ JSON.parse(String(window.localStorage.getItem("plan-create-campaign"))),
|
|
|
|
+ this.form
|
|
|
|
+ );
|
|
|
|
+ if (flag) {
|
|
|
|
+ return { flag: true, campaign_id: this.form.campaign_id };
|
|
|
|
+ }
|
|
let campaign_id = 0;
|
|
let campaign_id = 0;
|
|
- console.log("Form", this.form);
|
|
|
|
if (this.form.build_mode === "1") {
|
|
if (this.form.build_mode === "1") {
|
|
// 校验表单
|
|
// 校验表单
|
|
- let formV: any = this.$refs.formCheck;
|
|
|
|
- console.log("你们", this.$refs.formCheck);
|
|
|
|
- formV
|
|
|
|
|
|
+ this.formCheck
|
|
.validate()
|
|
.validate()
|
|
.then(() => {
|
|
.then(() => {
|
|
// 请求创建广告主接口
|
|
// 请求创建广告主接口
|
|
@@ -257,14 +255,19 @@ const GroupSelect = defineComponent({
|
|
delete param.campaign_id;
|
|
delete param.campaign_id;
|
|
if (param.budget_mode === "BUDGET_MODE_INFINITE")
|
|
if (param.budget_mode === "BUDGET_MODE_INFINITE")
|
|
delete param.budget;
|
|
delete param.budget;
|
|
- console.log(param);
|
|
|
|
|
|
+ console.log("创建广告组传递数据", param);
|
|
|
|
|
|
// 接口
|
|
// 接口
|
|
createAdCampaign(param)
|
|
createAdCampaign(param)
|
|
.then(({ data }) => {
|
|
.then(({ data }) => {
|
|
console.log("创建广告组返回", data);
|
|
console.log("创建广告组返回", data);
|
|
campaign_id = data.campaign_id;
|
|
campaign_id = data.campaign_id;
|
|
|
|
+ this.form.campaign_id = campaign_id;
|
|
message.success("广告组创建成功");
|
|
message.success("广告组创建成功");
|
|
|
|
+ Bus.$emit("stepTwoCheck", {
|
|
|
|
+ flag: true,
|
|
|
|
+ campaign_id,
|
|
|
|
+ });
|
|
})
|
|
})
|
|
.catch((error: any) => {
|
|
.catch((error: any) => {
|
|
console.log("error", error);
|
|
console.log("error", error);
|
|
@@ -274,7 +277,6 @@ const GroupSelect = defineComponent({
|
|
console.log("error", error);
|
|
console.log("error", error);
|
|
});
|
|
});
|
|
} else {
|
|
} else {
|
|
- console.log("逸轩广告组", this.form.campaign_id);
|
|
|
|
if (!this.form.campaign_id) {
|
|
if (!this.form.campaign_id) {
|
|
message.warning("请选择广告组");
|
|
message.warning("请选择广告组");
|
|
} else {
|
|
} else {
|
|
@@ -310,9 +312,8 @@ const GroupSelect = defineComponent({
|
|
});
|
|
});
|
|
let time = this.getNowFormatDate();
|
|
let time = this.getNowFormatDate();
|
|
this.form.campaign_name = `${marketingPurposeName}_${langdingTypeName}_${time}`;
|
|
this.form.campaign_name = `${marketingPurposeName}_${langdingTypeName}_${time}`;
|
|
- console.log(this.form.campaign_name);
|
|
|
|
},
|
|
},
|
|
- // 获取当前时间
|
|
|
|
|
|
+ // 工具函数 获取当前时间
|
|
getNowFormatDate() {
|
|
getNowFormatDate() {
|
|
var date = new Date();
|
|
var date = new Date();
|
|
var seperator1 = "-";
|
|
var seperator1 = "-";
|
|
@@ -353,6 +354,21 @@ const GroupSelect = defineComponent({
|
|
currentdate = currentdate.slice(5, 19);
|
|
currentdate = currentdate.slice(5, 19);
|
|
return currentdate;
|
|
return currentdate;
|
|
},
|
|
},
|
|
|
|
+ //工具函数 比较2个对象是否相同
|
|
|
|
+ isObjEqual(o1: any, o2: any) {
|
|
|
|
+ var props1 = Object.getOwnPropertyNames(o1);
|
|
|
|
+ var props2 = Object.getOwnPropertyNames(o2);
|
|
|
|
+ if (props1.length != props2.length) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ for (var i = 0, max = props1.length; i < max; i++) {
|
|
|
|
+ var propName = props1[i];
|
|
|
|
+ if (o1[propName] !== o2[propName]) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return true;
|
|
|
|
+ },
|
|
},
|
|
},
|
|
});
|
|
});
|
|
|
|
|