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