target-rule-setting.1a1effe2.js 6.2 KB

1
  1. import{d as W,r as V,k as Y,a9 as r,o as i,c as p,a as d,F as x,a0 as T,L as C,u as v,E as m,G as s,M as o,J as h,H as Z,N as ee,K as D,aq as te,ar as le}from"./vue.65d9dadc.js";import{p as U}from"./elementPlus.ff7602ba.js";import{c as ae,u as oe}from"./index.2ce58424.js";import{I as F}from"./index.fef63074.js";import{R as N,A as ne}from"./enum.cd3ef671.js";import{X as B}from"./index.5ce19447.js";import{_ as se}from"./_plugin-vue_export-helper.c27b6911.js";import"./echarts.72dc8373.js";const ie=_=>(te("data-v-6910d4ee"),_=_(),le(),_),re=ie(()=>d("div",{class:"asj-h3"},[d("span",{class:"custom-title-icon"}),D(" 规则设置 ")],-1)),de={class:"rule-setting-container"},ue={class:"rule-setting-title"},ce={class:"asj-h3"},pe={class:"rule-setting-opration"},me={key:0},_e={class:"popver-content"},fe=["onClick"],ve=W({__name:"target-rule-setting",props:{rule:{},disabled:{type:Boolean}},setup(_,{expose:M}){const u=_,g=[{label:"曝光量",value:"impressions"},{label:"点击量",value:"clicks"},{label:"花费",value:"spend",prefix:"$"},{label:"点击率",value:"ctr",suffix:"%"},{label:"单次点击费用",value:"cpc",prefix:"$"},{label:"转化率",value:"cr",suffix:"%"},{label:"广告订单数",value:"order"},{label:"广告销售额",value:"sale",prefix:"$"},{label:"ACOS",value:"acos",suffix:"%"},{label:"定向匹配方式",value:"matchType",type:"array",options:[{label:"关键词-精确",value:"exect"},{label:"关键词-广泛",value:"broad"},{label:"关键词-词组",value:"phrase"},{label:"商品-品类",value:"category"},{label:"商品-单个商品",value:"asin"}]},{label:"关键词名称",value:"keywords",type:"array"}],{getSymbolOptions:A}=oe(g),R=V(),S=V(),k=V("bid-ratio"),I=Y(()=>{const e={increase:0,decrease:0,set:0,pause:0};for(const l of u.rule.conditions)e[l.actionType]=Math.max(e[l.actionType]||0,l.ordering);return e});function E(e,l,n){B.toNumber(l)<=0?n(new Error("请输入大于0的数值!")):n()}function $(e,l,n){B.toNumber(l)<=0?n(new Error("请输入大于0的数值!")):n()}function w(e,l=-1){const n=g[0].value,c=A(n)[0].value,y={action:{set:"",baseType:"",max:"",min:"",numType:"ratio"},actionType:e,conditions:[{key:Math.random().toString(36).substring(2),day:1,exceptDay:0,items:[{dataType:n,dayType:c==="in"||c==="not_in"?"":"sum",symbol:c,num:"",ranges:[],values:[]}]}],day:"1",exceptDay:"",ordering:I.value[e]+1,show:!0};l===-1?u.rule.conditions.push(y):u.rule.conditions.splice(l+1,0,y)}u.rule.conditions.length===0&&(u.rule.campaignType="sp",u.rule.activeModel="campaign",w("increase",-1));function L(e){u.rule.conditions.splice(e,1)}function O(e){const[l,n]=k.value.split("-");e.baseType=l,e.numType=n,e.set=""}async function j(){const e=[];for(const l of S.value)e.push(await l.validate());for(const l of e)if(l.includes(!1))return!1;return!0}async function X(){const e=[];for(const l of R.value)await l.validate(n=>{e.push(n)});return!e.includes(!1)}async function q(){const e=await X(),l=await j();return e&&l}return M({validateForm:q}),(e,l)=>{const n=r("el-icon"),c=r("el-tooltip"),y=r("DeleteFilled"),G=r("ArrowDown"),H=r("el-option"),J=r("el-select"),f=r("el-form-item"),K=r("el-input"),z=r("el-form"),P=r("el-button"),Q=r("el-popover");return i(),p("div",null,[re,d("div",de,[(i(!0),p(x,null,T(e.rule.conditions,(t,b)=>(i(),p("div",{class:"rule-setting-item",key:t.actionType+t.ordering},[d("div",ue,[d("div",ce,C(v(N)[t.actionType])+" - 规则"+C(t.ordering),1),d("div",pe,[e.disabled?h("",!0):(i(),m(c,{key:0,content:"添加规则",placement:"top",effect:"dark"},{default:s(()=>[o(n,{onClick:a=>w(t.actionType,b),disabled:e.disabled},{default:s(()=>[o(v(U))]),_:2},1032,["onClick","disabled"])]),_:2},1024)),e.rule.conditions.length!==1&&!e.disabled?(i(),m(c,{key:1,content:"删除规则",placement:"top",effect:"dark"},{default:s(()=>[o(n,{onClick:a=>L(b)},{default:s(()=>[o(y)]),_:2},1032,["onClick"])]),_:2},1024)):h("",!0),o(c,{content:"收起/展开规则",placement:"top",effect:"dark"},{default:s(()=>[o(n,{onClick:a=>t.show=!t.show},{default:s(()=>[o(G)]),_:2},1032,["onClick"])]),_:2},1024)])]),Z(d("div",null,[o(z,{inline:!0,model:t.action,ref_for:!0,ref_key:"ruleFormRef",ref:R,disabled:e.disabled},{default:s(()=>[t.actionType==="increase"||t.actionType==="decrease"?(i(),p("div",me,[o(f,null,{default:s(()=>[o(J,{modelValue:k.value,"onUpdate:modelValue":l[0]||(l[0]=a=>k.value=a),onChange:a=>O(t.action),style:{width:"250px"}},{default:s(()=>[(i(!0),p(x,null,T(v(ne),a=>(i(),m(H,{key:a.value,value:a.value,label:a.label.replace("_",t.actionType==="increase"?"升高":"降低")},null,8,["value","label"]))),128))]),_:2},1032,["modelValue","onChange"])]),_:2},1024),o(f,{prop:"set",rules:{validator:E}},{default:s(()=>[o(F,{modelValue:t.action.set,"onUpdate:modelValue":a=>t.action.set=a,prefix:t.action.numType==="num"?"$":"",suffix:t.action.numType==="ratio"?"%":"",style:{width:"120px"}},null,8,["modelValue","onUpdate:modelValue","prefix","suffix"])]),_:2},1032,["rules"]),t.actionType==="increase"?(i(),m(f,{key:0,label:"最大值",prop:"max",rules:{validator:$}},{default:s(()=>[o(F,{modelValue:t.action.max,"onUpdate:modelValue":a=>t.action.max=a,style:{width:"120px"},prefix:"$"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["rules"])):(i(),m(f,{key:1,label:"最小值",prop:"min",rules:{validator:$}},{default:s(()=>[o(F,{modelValue:t.action.min,"onUpdate:modelValue":a=>t.action.min=a,style:{width:"120px"},prefix:"$"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1032,["rules"]))])):h("",!0),t.actionType==="set"?(i(),m(f,{key:1,prop:"set"},{default:s(()=>[o(K,{modelValue:t.action.set,"onUpdate:modelValue":a=>t.action.set=a},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)):h("",!0)]),_:2},1032,["model","disabled"]),o(ae,{data:t.conditions,"candidate-fields":g,ref_for:!0,ref_key:"condiBuilderRef",ref:S,disabled:e.disabled},null,8,["data","disabled"])],512),[[ee,t.show]])]))),128)),o(Q,{placement:"bottom-start",trigger:"hover",disabled:e.disabled},{reference:s(()=>[o(P,{icon:v(U),type:"warning",disabled:e.disabled},{default:s(()=>[D("添加规则")]),_:1},8,["icon","disabled"])]),default:s(()=>[d("div",_e,[(i(!0),p(x,null,T(Object.entries(v(N)),([t,b])=>(i(),p("span",{class:"popver-content-item",onClick:a=>w(t)},C(b),9,fe))),256))])]),_:1},8,["disabled"])])])}}});const Te=se(ve,[["__scopeId","data-v-6910d4ee"]]);export{Te as default};