1 |
- import{d as me,r as g,k as _e,E as fe,w as ve,ai as d,o as i,c as r,a as m,M as k,O as o,U as a,u as f,S as V,R as v,F,a8 as R,T as b,P as be,V as ye,aF as he,aG as ge}from"./vue.adf17aba.js";import{i as ke,p as z,t as Ve,b as Te}from"./elementPlus.4833989a.js";import{c as we,u as Ce}from"./index.e05afc8c.js";import{I as D}from"./index.ec96ead5.js";import{R as A,A as G}from"./enum.cd3ef671.js";import{X as Ue}from"./index.34b03be2.js";import{_ as $e}from"./_plugin-vue_export-helper.c27b6911.js";import"./echarts.72dc8373.js";const Se=T=>(he("data-v-a540d5f6"),T=T(),ge(),T),Fe=Se(()=>m("div",{class:"asj-h3"},[m("span",{class:"custom-title-icon"}),V(" 规则设置 ")],-1)),Re={class:"tag-content"},De={class:"mt-5"},Be={key:0,class:"rule-setting-container"},Ie={class:"rule-setting-title"},Me={class:"asj-h3"},Ae={class:"rule-setting-opration"},Ne={key:0},Ee={class:"popver-content"},Oe=["onClick"],Le={key:1,class:"mt-2"},je={key:0},Xe={key:0},ze={class:"mt-3 pl-2"},Ge=me({__name:"target-rule-setting",props:{rule:{},disabled:{type:Boolean}},setup(T,{expose:P}){const s=T,B=[{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:"%"}],N=g(!0),U=g("edit"),{getSymbolOptions:q}=Ce(B),y=g([]),h=g([]),E=g(),O=g(),p=g([]);let $={};const x=_e(()=>{const e={increase:0,decrease:0,set:0,pause:0};for(const t of s.rule.conditions)e[t.actionType]=Math.max(e[t.actionType]||0,t.ordering);return e});fe(()=>{ve(()=>s.rule,e=>{$=e.conditions[0].action,p.value=e.conditions.map(t=>t.action.baseType+"-"+t.action.numType),p.value||(s.rule.campaignType="sp",s.rule.activeModel="campaign",S("increase",-1))}),s.rule.id?p.value=s.rule.conditions.map(e=>e.action.baseType+"-"+e.action.numType):(s.rule.campaignType="sp",s.rule.activeModel="campaign",S("increase",-1))});function H(e,t,c){Ue.toNumber(t)<=0?c(new Error("请输入大于0的数值!")):c()}async function S(e,t=-1){const c=B[0].value,_=q(c)[0].value,w={action:{set:"",baseType:"bid",max:"",min:"",numType:"ratio"},actionType:e,conditions:[{key:Math.random().toString(36).substring(2),day:1,exceptDay:0,items:[{dataType:c,dayType:_==="in"||_==="not_in"?"":"sum",symbol:_,num:"",ranges:[],values:[]}]}],day:"1",exceptDay:"",ordering:x.value[e]+1,show:!0};t===-1?(s.rule.conditions.push(w),e==="increase"?(p.value.push("bid-ratio"),y.value.push($.max!==""&&$.max!==void 0)):e==="decrease"&&(p.value.push("bid-ratio"),h.value.push($.min))):(s.rule.conditions.splice(t+1,0,w),y.value.splice(t+1,0,!1),p.value.splice(t+1,0,"bid-ratio"),h.value.splice(t+1,0,!1))}function J(e,t){s.rule.conditions.splice(t,1),e==="increase"?(y.value.splice(t,1),p.value.splice(t,1)):e==="decrease"&&(h.value.splice(t,1),p.value.splice(t,1))}function K(e,t){const[c,_]=e.split("-");t.baseType=c,t.numType=_,t.set=""}async function Q(){const e=[];for(const t of O.value)e.push(await t.validate());for(const t of e)if(t.includes(!1))return!1;return!0}async function W(){const e=[];for(const t of E.value)await t.validate(c=>{e.push(c)});return!e.includes(!1)}async function Y(){s.rule.conditions.forEach((c,_)=>{y.value[_]||(c.action.max=""),h.value[_]||(c.action.min="")});const e=await W(),t=await Q();return e&&t}function Z(){N.value=!1}function ee(e){if(e>0){const t=s.rule.conditions[e];s.rule.conditions[e]=s.rule.conditions[e-1],s.rule.conditions[e-1]=t,L()}}function te(e){if(e<s.rule.conditions.length-1){const t=s.rule.conditions[e];s.rule.conditions[e]=s.rule.conditions[e+1],s.rule.conditions[e+1]=t,L()}}function L(){s.rule.conditions.forEach((e,t)=>{e.ordering=t+1})}function le(e){const t=G.find(c=>c.value===e);return t?t.label:""}function ae(e){return e==="num"?"$":e==="ratio"?"%":""}return P({validateForm:Y}),(e,t)=>{const c=d("el-icon"),_=d("el-tag"),w=d("el-radio-button"),oe=d("el-radio-group"),I=d("el-tooltip"),ne=d("DeleteFilled"),se=d("ArrowDown"),ie=d("el-option"),ce=d("el-select"),C=d("el-form-item"),j=d("el-checkbox"),ue=d("el-form"),M=d("el-button"),de=d("el-popover"),re=d("el-card"),X=d("el-col"),pe=d("el-row");return i(),r("div",null,[Fe,m("div",null,[N.value?(i(),k(_,{key:0,class:"custom-tag",closable:"",color:"#e7edf4",onClose:Z},{default:o(()=>[m("div",Re,[a(c,{style:{color:"#0b52a7"}},{default:o(()=>[a(f(ke))]),_:1}),V(" 可设置多个规则,如果一个对象命中多个规则,系统只是执行优先级最高的规则 ")])]),_:1})):v("",!0)]),m("div",De,[a(oe,{modelValue:U.value,"onUpdate:modelValue":t[0]||(t[0]=l=>U.value=l),size:"small"},{default:o(()=>[a(w,{label:"编辑",value:"edit"}),a(w,{label:"排序",value:"order"})]),_:1},8,["modelValue"])]),U.value==="edit"?(i(),r("div",Be,[(i(!0),r(F,null,R(e.rule.conditions,(l,u)=>(i(),r("div",{key:l.actionType+l.ordering,class:"rule-setting-item"},[m("div",Ie,[m("div",Me,b(f(A)[l.actionType])+" - 规则"+b(l.ordering),1),m("div",Ae,[e.disabled?v("",!0):(i(),k(I,{key:0,content:"添加规则",effect:"dark",placement:"top"},{default:o(()=>[a(c,{disabled:e.disabled,onClick:n=>S(l.actionType,u)},{default:o(()=>[a(f(z))]),_:2},1032,["disabled","onClick"])]),_:2},1024)),e.rule.conditions.length!==1&&!e.disabled?(i(),k(I,{key:1,content:"删除规则",effect:"dark",placement:"top"},{default:o(()=>[a(c,{onClick:n=>J(l.actionType,u)},{default:o(()=>[a(ne)]),_:2},1032,["onClick"])]),_:2},1024)):v("",!0),a(I,{content:"收起/展开规则",effect:"dark",placement:"top"},{default:o(()=>[a(c,{onClick:n=>l.show=!l.show},{default:o(()=>[a(se)]),_:2},1032,["onClick"])]),_:2},1024)])]),be(m("div",null,[a(ue,{ref_for:!0,ref_key:"ruleFormRef",ref:E,disabled:e.disabled,inline:!0,model:l.action},{default:o(()=>[l.actionType==="increase"||l.actionType==="decrease"?(i(),r("div",Ne,[a(C,null,{default:o(()=>[a(ce,{modelValue:p.value[u],"onUpdate:modelValue":n=>p.value[u]=n,style:{width:"250px"},onChange:n=>K(p.value[u],l.action)},{default:o(()=>[(i(!0),r(F,null,R(f(G),n=>(i(),k(ie,{key:n.value,label:n.label.replace("_",l.actionType==="increase"?"升高":"降低"),value:n.value},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),_:2},1024),a(C,{rules:{validator:H},prop:"set"},{default:o(()=>[a(D,{modelValue:l.action.set,"onUpdate:modelValue":n=>l.action.set=n,prefix:l.action.numType==="num"?"$":"",suffix:l.action.numType==="ratio"?"%":"",style:{width:"120px"}},null,8,["modelValue","onUpdate:modelValue","prefix","suffix"])]),_:2},1032,["rules"]),l.actionType==="increase"?(i(),k(C,{key:0,label:"最大值",prop:"max"},{label:o(()=>[a(j,{modelValue:y.value[u],"onUpdate:modelValue":n=>y.value[u]=n},{default:o(()=>[V("最大值")]),_:2},1032,["modelValue","onUpdate:modelValue"])]),default:o(()=>[a(D,{modelValue:l.action.max,"onUpdate:modelValue":n=>l.action.max=n,disabled:!y.value[u],prefix:"$",style:{width:"120px"}},null,8,["modelValue","onUpdate:modelValue","disabled"])]),_:2},1024)):(i(),k(C,{key:1,label:"最小值",prop:"min"},{label:o(()=>[a(j,{modelValue:h.value[u],"onUpdate:modelValue":n=>h.value[u]=n},{default:o(()=>[V("最小值")]),_:2},1032,["modelValue","onUpdate:modelValue"])]),default:o(()=>[a(D,{modelValue:l.action.min,"onUpdate:modelValue":n=>l.action.min=n,disabled:!h.value[u],prefix:"$",style:{width:"120px"}},null,8,["modelValue","onUpdate:modelValue","disabled"])]),_:2},1024))])):v("",!0),l.actionType==="set"?(i(),k(C,{key:1,prop:"set"},{default:o(()=>[a(D,{modelValue:l.action.set,"onUpdate:modelValue":n=>l.action.set=n,prefix:"$",style:{width:"120px"}},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)):v("",!0)]),_:2},1032,["disabled","model"]),a(we,{ref_for:!0,ref_key:"condiBuilderRef",ref:O,"candidate-fields":B,data:l.conditions,disabled:e.disabled},null,8,["data","disabled"])],512),[[ye,l.show]])]))),128)),a(de,{disabled:e.disabled,placement:"bottom-start",trigger:"hover"},{reference:o(()=>[a(M,{disabled:e.disabled,icon:f(z),type:"warning"},{default:o(()=>[V("添加规则")]),_:1},8,["disabled","icon"])]),default:o(()=>[m("div",Ee,[(i(!0),r(F,null,R(Object.entries(f(A)),([l,u])=>(i(),r("span",{class:"popver-content-item",onClick:n=>S(l)},b(u),9,Oe))),256))])]),_:1},8,["disabled"])])):v("",!0),U.value==="order"?(i(),r("div",Le,[(i(!0),r(F,null,R(e.rule.conditions,(l,u)=>(i(),r("div",{key:l.actionType+l.ordering},[a(pe,null,{default:o(()=>[a(X,{span:20},{default:o(()=>[a(re,{"body-style":"padding: 12px 10px;",class:"rule-setting-item",shadow:"hover"},{default:o(()=>[V(b(f(A)[l.actionType])+" - 规则"+b(l.ordering)+" ",1),l.actionType==="increase"||l.actionType==="decrease"?(i(),r("span",je,[V(b(le(p.value[u]).replace("_",l.actionType==="increase"?"升高":"降低"))+" "+b(l.action.set)+" ",1),l.action.set&&l.action.numType?(i(),r("span",Xe,b(ae(l.action.numType)),1)):v("",!0)])):v("",!0)]),_:2},1024)]),_:2},1024),a(X,{span:4},{default:o(()=>[m("div",ze,[a(M,{disabled:u===0,icon:f(Ve),link:"",type:"primary",onClick:n=>ee(u)},null,8,["disabled","icon","onClick"]),a(M,{disabled:u===e.rule.conditions.length-1,icon:f(Te),link:"",type:"primary",onClick:n=>te(u)},null,8,["disabled","icon","onClick"])])]),_:2},1024)]),_:2},1024)]))),128))])):v("",!0)])}}});const Ye=$e(Ge,[["__scopeId","data-v-a540d5f6"]]);export{Ye as default};
|