adActivityDialog.eea95c9c.js 11 KB

1
  1. import{d as Te,al as Ae,R as ne,r as u,k as j,Q as Ve,w as S,j as Ne,a9 as h,o as s,c as g,M as p,G as c,a as m,K as I,F as R,a0 as K,E as b,B as Re,L as k,J as E,u as D,W as ie,aq as Ee,ar as De}from"./vue.65d9dadc.js";import{b as qe,u as ze,c as Me}from"./api.8f29f7d3.js";import{u as Be}from"./index.5ce19447.js";import{_ as Le}from"./targetRuleDialog.vue_vue_type_script_setup_true_lang.a44fdcd9.js";import{v as Ue,E as M}from"./elementPlus.ff7602ba.js";import{_ as $e}from"./_plugin-vue_export-helper.c27b6911.js";import"./echarts.72dc8373.js";import"./enum.3476730f.js";const we=T=>(Ee("data-v-360b02c5"),T=T(),De(),T),Pe={class:"container"},Fe={class:"container-left"},Oe={class:"custom-inline"},Je={class:"flex-container"},je={key:1},Ke={key:0,class:"vxe-icon-square-minus-fill",style:{color:"#0d84ff"}},We={key:1,class:"vxe-icon-square-checked-fill",style:{color:"#0d84ff"}},He={key:2,class:"vxe-icon-checkbox-unchecked",style:{color:"#0d84ff"}},Qe=["onClick"],Xe={key:0,class:"vxe-icon-square-minus-fill",style:{color:"#0d84ff"}},Ye={key:1,class:"vxe-icon-square-checked-fill",style:{color:"#0d84ff"}},Ze=we(()=>m("i",{class:"vxe-icon-checkbox-unchecked",style:{color:"#0d84ff"}},null,-1)),ea={class:"pagination-container mt-4"},aa={class:"container-right"},la={key:1,class:"flex-container"},ta={class:"dialog-footer"},oa=Te({__name:"adActivityDialog",props:{templateId:{type:[String,Number],required:!0},activeModel:{type:String},modelValue:{type:Boolean,required:!0}},emits:["update:modelValue","confirmSuccess"],setup(T,{emit:ce}){const B=T,W=ce,se=Be(),{profile:L}=Ae(se),{templateId:U}=ne(B),{activeModel:f}=ne(B),C=u(!1),$=u(!1),A=u(null);u(0);let H=[];const V=u(""),q=u("sp"),N=u(""),z=u(""),de=[{value:"sb",label:"SB"},{value:"sp",label:"SP"},{value:"sd",label:"SD"}],Q=u([]),ue=[{value:0,label:"未存档"},{value:"ENABLED",label:"已启用"},{value:"PAUSED",label:"已暂停"}],v=u(1),w=u(25),X=u(0),P=u(!1),_=u(null),Y=u(null);let r=u([]);const re=j(()=>[{field:"campaignName",title:"广告活动",slots:{default:"campaignName_default"},treeNode:f.value=="specified"||f.value=="adGroup"},{title:"操作",width:100,align:"center",slots:{header:"header_operation",default:"default_operation"}}]),Z=j(()=>(f.value="specified",f.value==="adGroup"||f.value==="specified"?{rowField:"campaignId",childrenField:"campaignGroupInfo",expandAll:!0}:{})),G=Ve({border:"inner",height:500,rowConfig:{isHover:!0,keyField:"campaignId"},treeConfig:Z,checkboxConfig:{labelField:"name",reserve:!0,checkStrictly:!1,checkMethod:({row:e})=>f.value==="specified"?e.isSelected:!0},columns:j(()=>[{field:"campaignName",title:"广告活动",slots:{default:"campaignName_default"},treeNode:f.value=="specified"||f.value=="adGroup"},{type:"checkbox",width:55,fixed:"right",slots:f.value=="specified"?{header:"checkbox_header",checkbox:"checkbox_cell"}:""}]),data:[]});function pe(e){v.value=e,P.value=!0,y()}function fe(e){w.value=e,v.value=1,y()}function me(){localStorage.setItem("searchAdCampaign",JSON.stringify(V.value)),y()}async function y(){const e=localStorage.getItem("searchAdCampaign");e&&(V.value=JSON.parse(e));try{P.value=!0;const l=[...r.value],t=await qe({profileId:L.value.profile_id,templateId:U.value,campaignName:V.value,portfolioId:N.value,campaignStatus:z.value,campaignType:q.value,page:v.value,limit:w.value});G.data=t.data,X.value=t.total,v.value=t.page}catch{M.error("请求广告活动数据失败")}finally{P.value=!1}}function F({records:e,row:l,checked:t}){f.value==="specified"?l?t||(l.isSelected=!1,O()):(e.forEach(n=>{n.isSelected&&(n.isSelected=t)}),O()):f.value==="adGroup"?he({records:e}):ve({records:e})}function ge(e){f.value==="specified"?e.isSelected&&(_.value.setCheckboxRow(e,!1),F({records:[e],row:e,checked:!1})):_.value.toggleCheckboxRow(e)}function ve({records:e}){r.value=[...r.value.filter(l=>l.page!==v.value),...e.map(l=>({...l,page:v.value}))]}function O(){r.value=G.data.filter(e=>e.campaignGroupInfo&&e.campaignGroupInfo.some(l=>l.isSelected)).map(e=>({...e,campaignGroupInfo:e.campaignGroupInfo.filter(l=>l.isSelected),page:v.value})),console.log("selectedAds.value",r.value)}function he({records:e}){H=H.filter(n=>e.some(i=>i.adGroupId===n.adGroupId));let l=[];const t=new Map;e.forEach(n=>{if(n.adGroupId){const i=G.data.find(o=>o.campaignGroupInfo.some(d=>d.adGroupId===n.adGroupId));i&&(t.has(i.campaignId)?t.get(i.campaignId).campaignGroupInfo.push(n):t.set(i.campaignId,{campaignType:i.campaignType,campaignId:i.campaignId,campaignName:i.campaignName,campaignGroupInfo:[n]}))}}),l=Array.from(t.values()),r.value=[...l.map(n=>({...n,page:v.value}))]}function ee(e){const l=G.data.find(t=>t.campaignGroupInfo.some(n=>n.adGroupId===e.adGroupId));A.value={campaignType:l.campaignType,campaignId:l.campaignId,adGroupId:e.adGroupId,isSelected:e.isSelected||!1,keywordInfo:e.keywordInfo||[],campaignTargetInfo:e.campaignTargetInfo||[]},$.value=!0}function _e({campaignInfo:e,targetType:l}){var n,i;if(!A.value)return;const t=G.data.find(o=>o.campaignGroupInfo.some(d=>d.adGroupId===A.value.adGroupId));if(t){const o=t.campaignGroupInfo.find(d=>d.adGroupId===A.value.adGroupId);o&&(l==="keyword"?o.keywordInfo=e:l==="target"&&(o.campaignTargetInfo=e),o.isSelected=!0,o.targetLength=(((n=o.keywordInfo)==null?void 0:n.length)||0)+(((i=o.campaignTargetInfo)==null?void 0:i.length)||0)),o&&o.targetLength>0&&_.value&&_.value.toggleCheckboxRow(o,!0)}O()}const ye=async e=>{const l=Y.value;l&&(e.adGroupId?r.value=r.value.map(t=>t.campaignGroupInfo?{...t,campaignGroupInfo:t.campaignGroupInfo.filter(n=>n.adGroupId!==e.adGroupId)}:t).filter(t=>t.campaignGroupInfo&&t.campaignGroupInfo.length>0):r.value=r.value.filter(t=>t.campaignId!==e.campaignId),await l.remove(e)),_.value&&await _.value.toggleCheckboxRow(e)};function Ie(){r.value=[];const e=_.value;e&&e.clearCheckboxRow()}function ke(){C.value=!1}async function be(){const e=r.value.map(i=>({campaignId:i.campaignId,campaignType:i.campaignType}));let l=[],t=[];r.value.forEach(i=>{i.campaignGroupInfo.forEach(o=>{o.keywordInfo&&o.keywordInfo.length>0&&(l=l.concat(o.keywordInfo.map(d=>({keywordId:d.keywordId,adGroup_id:o.adGroupId,bid:d.bid})))),o.campaignTargetInfo&&o.campaignTargetInfo.length>0&&(t=t.concat(o.campaignTargetInfo.map(d=>({targetId:d.targetId,adGroup_id:o.adGroupId,bid:d.bid}))))})});const n={profileId:L.value.profile_id,templateId:U.value,campaignItems:e,adGroupInfo:[],campaignTargetInfo:t,campaignKeywordInfo:l};console.log("requestData",n);try{(await ze(n)).code===2e3&&(C.value=!1,W("confirmSuccess"),M({message:"创建成功",type:"success"}))}catch(i){console.error("API error:",i),M({message:"创建失败",type:"error"})}}async function ae(){try{const e=await Me({profileId:L.value.profile_id});Q.value=e.data.map(l=>({label:l.name,value:l.portfolioId}))}catch{M.error("请求失败")}}const le=e=>{if(e.rowIndex===0)return{backgroundColor:"rgba(245, 245, 245, 0.9)",fontWeight:"500"}},te=()=>({fontSize:"13px"});return S(q,()=>{y()}),S(N,e=>{e&&(N.value=e,y())}),S(z,()=>{y()}),S(U,()=>{y(),ae()}),S(()=>B.modelValue,e=>{C.value=e}),S(C,e=>{W("update:modelValue",e)}),Ne(()=>{ae(),y()}),(e,l)=>{const t=h("el-input"),n=h("el-option"),i=h("el-select"),o=h("el-tag"),d=h("el-button"),Ce=h("el-tooltip"),oe=h("vxe-grid"),Ge=h("el-pagination"),xe=h("CircleClose"),Se=h("el-dialog");return s(),g(R,null,[p(Se,{modelValue:C.value,"onUpdate:modelValue":l[7]||(l[7]=a=>C.value=a),style:{"border-radius":"10px"},title:"关联广告活动",width:"1158px"},{footer:c(()=>[m("div",ta,[p(d,{onClick:ke},{default:c(()=>[I("取消")]),_:1}),p(d,{type:"primary",onClick:be},{default:c(()=>[I("确定")]),_:1})])]),default:c(()=>[m("div",Pe,[m("div",Fe,[p(t,{modelValue:V.value,"onUpdate:modelValue":l[0]||(l[0]=a=>V.value=a),clearable:"",placeholder:"请输入广告活动",style:{width:"100%"},onChange:l[1]||(l[1]=a=>me())},null,8,["modelValue"]),m("div",Oe,[p(i,{modelValue:q.value,"onUpdate:modelValue":l[2]||(l[2]=a=>q.value=a),placeholder:"选择广告类型"},{default:c(()=>[(s(),g(R,null,K(de,a=>p(n,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),p(i,{modelValue:N.value,"onUpdate:modelValue":l[3]||(l[3]=a=>N.value=a),clearable:"",placeholder:"广告组合",style:{"margin-bottom":"10px"}},{default:c(()=>[(s(!0),g(R,null,K(Q.value,a=>(s(),b(n,{key:a.value,label:a.label,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),p(i,{modelValue:z.value,"onUpdate:modelValue":l[4]||(l[4]=a=>z.value=a),placeholder:"状态",style:{"margin-bottom":"10px"}},{default:c(()=>[(s(),g(R,null,K(ue,a=>p(n,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),p(oe,Re({ref_key:"xGridOne",ref:_,"cell-style":te,"header-cell-style":le},G,{onCheckboxChange:F,onCheckboxAll:F}),{campaignName_default:c(({row:a})=>[a.campaignType?(s(),b(o,{key:0,color:a.campaignType==="sb"?"#0163d2":a.campaignType==="sp"?"#ff7424":"#365672",class:"campaign-type","disable-transitions":"",round:""},{default:c(()=>[I(k(a.campaignType),1)]),_:2},1032,["color"])):E("",!0),m("span",null,k(a.campaignName),1),m("span",Je,[I(k(a.adGroupName)+" ",1),a.adGroupName&&D(f)==="specified"&&!a.isSelected?(s(),b(d,{key:0,class:"btn-link",link:"",onClick:x=>ee(a)},{default:c(()=>[I(" 选择定向 ")]),_:2},1032,["onClick"])):a.adGroupName?(s(),g("span",je,"已选择定向")):E("",!0)])]),checkbox_header:c(({checked:a,indeterminate:x})=>[m("span",{class:"custom-checkbox",onClick:l[5]||(l[5]=ie((...J)=>e.toggleAllCheckboxEvent&&e.toggleAllCheckboxEvent(...J),["stop"]))},[x?(s(),g("i",Ke)):a?(s(),g("i",We)):(s(),g("i",He))])]),checkbox_cell:c(({row:a,checked:x,indeterminate:J})=>[m("span",{class:"custom-checkbox",onClick:ie(na=>ge(a),["stop"])},[J?(s(),g("i",Xe)):x?(s(),g("i",Ye)):(s(),b(Ce,{key:2,class:"box-item",content:"请选择定向",effect:"dark",placement:"top"},{default:c(()=>[Ze]),_:1}))],8,Qe)]),_:1},16),m("div",ea,[p(Ge,{"current-page":v.value,"onUpdate:currentPage":l[6]||(l[6]=a=>v.value=a),"page-size":w.value,"page-sizes":[10,25,50,100,200],total:X.value,background:"",layout:"total,sizes,prev, next, jumper",small:"",onSizeChange:fe,onCurrentChange:pe},null,8,["current-page","page-size","total"])])]),m("div",aa,[m("h3",null,"已选择("+k(D(r).length)+")",1),p(oe,{ref_key:"xGridTwo",ref:Y,"cell-style":te,columns:re.value,data:D(r),"header-cell-style":le,"tree-config":Z.value,border:"inner",height:"484"},{campaignName_default:c(({row:a})=>[a.adGroupId?(s(),g("div",la,[m("span",null,k(a.adGroupName),1),a.isSelected?(s(),b(d,{key:0,icon:D(Ue),class:"btn-link",link:"",onClick:x=>ee(a)},{default:c(()=>[I(" 共"+k(a.targetLength)+"个定向规则 ",1)]),_:2},1032,["icon","onClick"])):E("",!0)])):(s(),g(R,{key:0},[a.campaignType?(s(),b(o,{key:0,color:a.campaignType==="sb"?"#0163d2":a.campaignType==="sp"?"#ff7424":"#365672",class:"campaign-type","disable-transitions":"",round:""},{default:c(()=>[I(k(a.campaignType),1)]),_:2},1032,["color"])):E("",!0),m("span",null,k(a.campaignName),1)],64))]),header_operation:c(()=>[p(d,{link:"",size:"default",style:{color:"#2077d7"},onClick:Ie},{default:c(()=>[I("删除全部")]),_:1})]),default_operation:c(({row:a})=>[p(d,{type:"text",onClick:x=>ye(a)},{default:c(()=>[p(xe,{style:{width:"16px",color:"#4b5765"}})]),_:2},1032,["onClick"])]),_:1},8,["columns","data","tree-config"])])])]),_:1},8,["modelValue"]),D(f)==="specified"?(s(),b(Le,{key:0,modelValue:$.value,"onUpdate:modelValue":l[8]||(l[8]=a=>$.value=a),selectedTargetedRow:A.value,"onConfirm:targetRule":_e},null,8,["modelValue","selectedTargetedRow"])):E("",!0)],64)}}});const ma=$e(oa,[["__scopeId","data-v-360b02c5"]]);export{ma as default};