1 |
- import{d as L,r as D,k as P,a9 as g,o as u,c as v,a as w,F as y,a0 as T,E as V,G as p,L as M,M as o,K as B,w as Q,H as N,N as O,u as U,A as se,z as ue,aq as ne,ar as oe}from"./vue.65d9dadc.js";import{g as J,p as de}from"./elementPlus.ff7602ba.js";import{I as X}from"./index.fef63074.js";import{X as G}from"./index.5ce19447.js";import{_ as j}from"./_plugin-vue_export-helper.c27b6911.js";const re={class:"tags-input-wrapper"},ie={class:"tags-box"},pe={style:{color:"blue"}},me=L({__name:"index",props:{data:{},placeholder:{default:"请输入"},maxLength:{default:100},disabled:{type:Boolean}},emits:["update:modelValue"],setup(f,{emit:h}){const d=f,s=D(d.data),r=D(""),x=P(()=>{const m={};for(const t of s.value)m[t]=!0;return m}),c=()=>{const m=G.uniq(r.value.split(/[\r\n]/));for(const t of m)t!==""&&!x.value[t]&&s.value.length<d.maxLength&&s.value.push(t);r.value=""},k=m=>{s.value.splice(s.value.indexOf(m),1)},i=()=>{s.value.splice(0,s.value.length)};return(m,t)=>{const _=g("el-tag"),S=g("el-button"),$=g("el-popconfirm"),E=g("el-input");return u(),v("div",re,[w("div",ie,[(u(!0),v(y,null,T(s.value,C=>(u(),V(_,{key:C,color:"#F5F5F5",closable:!m.disabled,onClose:R=>k(C)},{default:p(()=>[w("span",pe,M(C),1)]),_:2},1032,["closable","onClose"]))),128)),o($,{title:"确定清空吗?",onConfirm:i,"hide-after":10,placement:"top"},{reference:p(()=>[o(S,{size:"small",disabled:s.value.length===0},{default:p(()=>[B(M(s.value.length)+"/"+M(m.maxLength),1)]),_:1},8,["disabled"])]),_:1})]),o(E,{type:"textarea",modelValue:r.value,"onUpdate:modelValue":t[0]||(t[0]=C=>r.value=C),onBlur:c,disabled:s.value.length>=m.maxLength,placeholder:m.placeholder,autosize:{minRows:3,maxRows:10}},null,8,["modelValue","disabled","placeholder"])])}}});const ve=j(me,[["__scopeId","data-v-f0af5540"]]),ce=w("span",null," ~ ",-1),fe=L({__name:"index",props:{ranges:{},prefix:{default:""},suffix:{default:""}},setup(f){const h=f;return h.ranges.length===0&&(h.ranges.push(""),h.ranges.push("")),(d,s)=>(u(),v("div",null,[o(X,{modelValue:d.ranges[0],"onUpdate:modelValue":s[0]||(s[0]=r=>d.ranges[0]=r),prefix:d.prefix,suffix:d.suffix,style:{width:"150px"}},null,8,["modelValue","prefix","suffix"]),ce,o(X,{modelValue:d.ranges[1],"onUpdate:modelValue":s[1]||(s[1]=r=>d.ranges[1]=r),prefix:d.prefix,suffix:d.suffix,style:{width:"150px"}},null,8,["modelValue","prefix","suffix"])]))}}),W=f=>{const h=[{label:"大于",value:"gt"},{label:"大于等于",value:"gte"},{label:"小于",value:"lt"},{label:"小于等于",value:"lte"},{label:"等于",value:"eq"},{label:"范围内",value:"between"},{label:"范围外",value:"not_between"}],d=r=>{const x=G.find(f,c=>c.value===r);if(x)return x};return{getSymbolOptions:r=>d(r).type==="array"?[{label:"包含",value:"in"},{label:"不包含",value:"not_in"}]:h,getFieldInfo:d}},be={class:"condition-group-item-wrap"},_e={key:0},ye={key:1,class:"and-span"},ge={style:{display:"flex","align-items":"center",gap:"10px","flex-wrap":"wrap"}},he={key:1,style:{width:"90%"}},xe=L({__name:"condition-group2",props:{candidateFields:{},data:{},showDelGroupBtn:{type:Boolean},disabled:{type:Boolean,default:!1}},emits:["deleteGroup"],setup(f,{expose:h,emit:d}){const s=d,r=[{label:"昨天",value:1},{label:"过去7天",value:7},{label:"过去14天",value:14},{label:"过去30天",value:30},{label:"过去60天",value:60},{label:"过去90天",value:90}],x=[{label:"不排除",value:0},{label:"昨天",value:1},{label:"最近2天",value:2},{label:"最近3天",value:3},{label:"最近7天",value:7},{label:"最近14天",value:14}],c=f,k=D(),i=D(c.data),{getSymbolOptions:m,getFieldInfo:t}=W(c.candidateFields),_=(l,a)=>["between","not_between"].includes(l.symbol)?`items[${a}].ranges`:["in","not_in"].includes(l.symbol)?`items[${a}].values`:`items[${a}].num`,S=l=>{const a=t(l.dataType);return a.options&&a.options.length>0?"change":"blur"},$=(l,a,b)=>{if(l.field.includes("num"))G.toNumber(a)<=0&&b(new Error("请输入大于0的数值!"));else if(l.field.includes("values"))a.length===0&&b(new Error("必填项"));else if(l.field.includes("ranges")){for(const F of a)if(G.toNumber(F)<=0){b(new Error("请输入大于0的数值!"));break}G.toNumber(a[0])>=G.toNumber(a[1])&&b(new Error("起始值必须小于终止值!"))}b()},E=async()=>{let l=!1;return await k.value.validate(a=>{l=a}),l},C=P(()=>i.value.items.length<c.candidateFields.length),R=P(()=>{const l={};for(const a of i.value.items)l[a.dataType]=!0;return l}),Y=l=>{const a=m(l)[0].value;return{dataType:l,dayType:a==="in"||a==="not_in"?"":"sum",symbol:a,num:"",ranges:[],values:[]}},Z=()=>{for(const l of c.candidateFields)if(!R.value[l.value]){i.value.items.push(Y(l.value));break}},I=l=>{l.symbol=m(l.dataType)[0].value,l.num="",l.ranges.splice(0,l.ranges.length),l.values.splice(0,l.values.length)},H=l=>c.candidateFields.find(a=>a.value===l).prefix??"",K=l=>c.candidateFields.find(a=>a.value===l).suffix??"",ee=l=>{i.value.items.splice(l,1)},le=()=>{s("deleteGroup")};return Q(()=>c.data,()=>{i.value=c.data},{deep:!0}),h({validate:E}),(l,a)=>{const b=g("el-option"),F=g("el-select"),q=g("el-form-item"),z=g("el-button"),ae=g("el-form"),te=g("el-divider");return u(),v(y,null,[w("div",be,[w("div",null,[o(ae,{model:i.value,ref_key:"formRef",ref:k,"label-suffix":":","label-position":"right","label-width":"100px",disabled:l.disabled},{default:p(()=>[o(q,{label:"数据周期",required:"",prop:"day"},{default:p(()=>[o(F,{modelValue:i.value.day,"onUpdate:modelValue":a[0]||(a[0]=e=>i.value.day=e),onChange:a[1]||(a[1]=e=>i.value.exceptDay=0)},{default:p(()=>[(u(),v(y,null,T(r,e=>o(b,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),o(q,{label:"排除",required:"",prop:"exceptDay"},{default:p(()=>[o(F,{modelValue:i.value.exceptDay,"onUpdate:modelValue":a[2]||(a[2]=e=>i.value.exceptDay=e)},{default:p(()=>[(u(),v(y,null,T(x,e=>o(b,{key:e.value,label:e.label,value:e.value,disabled:i.value.day<=e.value},null,8,["label","value","disabled"])),64))]),_:1},8,["modelValue"])]),_:1}),(u(!0),v(y,null,T(i.value.items,(e,A)=>(u(),V(q,{key:e.dataType,prop:_(e,A),rules:{validator:$,trigger:S(e)}},{label:p(()=>[A===0?(u(),v("span",_e,"条件:")):(u(),v("span",ye,"&"))]),default:p(()=>[w("div",ge,[o(F,{modelValue:e.dataType,"onUpdate:modelValue":n=>e.dataType=n,style:{width:"140px"},onChange:n=>I(e)},{default:p(()=>[(u(!0),v(y,null,T(l.candidateFields,n=>(u(),V(b,{key:n.value,disabled:!!R.value[n.value],label:n.label,value:n.value},null,8,["disabled","label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"]),N(o(F,{modelValue:e.dayType,"onUpdate:modelValue":n=>e.dayType=n,style:{width:"80px"}},{default:p(()=>[o(b,{label:"总计",value:"sum"}),o(b,{label:"均值",value:"avg"})]),_:2},1032,["modelValue","onUpdate:modelValue"]),[[O,e.symbol!=="in"&&e.symbol!=="not_in"]]),o(F,{modelValue:e.symbol,"onUpdate:modelValue":n=>e.symbol=n,style:{width:"120px"}},{default:p(()=>[(u(!0),v(y,null,T(U(m)(e.dataType),n=>(u(),V(b,{label:n.label,value:n.value,key:n.value},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"]),e.symbol==="in"||e.symbol==="not_in"?(u(),v(y,{key:0},[U(t)(e.dataType).options?(u(),V(F,{key:0,modelValue:e.values,"onUpdate:modelValue":n=>e.values=n,multiple:"","collapse-tags":""},{default:p(()=>[(u(!0),v(y,null,T(U(t)(e.dataType).options,n=>(u(),V(b,{label:n.label,value:n.value,key:n.value},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])):(u(),v("div",he,[o(ve,{data:e.values,placeholder:"请输入至少一个关键词,多个关键词用换行符分隔",disabled:l.disabled},null,8,["data","disabled"])]))],64)):e.symbol==="between"||e.symbol==="not_between"?(u(),V(fe,{key:1,ranges:e.ranges,prefix:H(e.dataType),suffix:K(e.dataType)},null,8,["ranges","prefix","suffix"])):(u(),V(X,{key:2,modelValue:e.num,"onUpdate:modelValue":n=>e.num=n,prefix:H(e.dataType),suffix:K(e.dataType),style:{width:"200px"}},null,8,["modelValue","onUpdate:modelValue","prefix","suffix"])),N(o(z,{onClick:n=>ee(A),type:"danger",icon:U(J),link:""},null,8,["onClick","icon"]),[[O,i.value.items.length>1]])])]),_:2},1032,["prop","rules"]))),128))]),_:1},8,["model","disabled"]),N(o(z,{link:"",type:"primary",onClick:Z,icon:U(de),style:se({"margin-left":"100px",color:l.disabled?"":"blue"}),disabled:l.disabled},{default:p(()=>[B(" 添加条件 ")]),_:1},8,["icon","style","disabled"]),[[O,C.value]])]),N(o(z,{type:"danger",onClick:le,icon:U(J)},{default:p(()=>[B("删除组")]),_:1},8,["icon"]),[[O,l.showDelGroupBtn]])]),o(te,{"border-style":"dashed",class:"condition-group-divider"},{default:p(()=>[B(" 或 ")]),_:1})],64)}}});const Ve=j(xe,[["__scopeId","data-v-8e888059"]]),we=f=>(ne("data-v-4b761d71"),f=f(),oe(),f),ke=we(()=>w("span",{class:"custom-title-icon"},null,-1)),Ce=L({__name:"index",props:{candidateFields:{default:()=>[{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:"%"}]},data:{},disabled:{type:Boolean,default:!1},titleClass:{default:"asj-h3"}},setup(f,{expose:h}){const d=f,s=D(d.data),r=D(),{getSymbolOptions:x}=W(d.candidateFields),c=()=>{const t=d.candidateFields[0].value,_=x(t)[0].value;return{key:Math.random().toString(36).substring(2),day:1,exceptDay:0,items:[{dataType:t,dayType:_==="in"||_==="not_in"?"":"sum",symbol:_,num:"",ranges:[],values:[]}]}},k=()=>{s.value.push(c())};s.value.length===0&&k();const i=t=>{G.remove(s.value,_=>_.key===t)},m=async()=>{const t=[];if(!r.value)return t;for(const _ of r.value)t.push(await _.validate());return t};return Q(()=>d.data,()=>{s.value=d.data},{deep:!0}),h({validate:m,addConditionGroup:k}),(t,_)=>{const S=g("el-button");return u(),v(y,null,[w("div",null,[w("div",{class:ue(t.titleClass)},[ke,B(" 条件 ")],2),(u(!0),v(y,null,T(s.value,($,E)=>(u(),V(Ve,{ref_for:!0,ref_key:"condiGroupRef",ref:r,disabled:t.disabled,"candidate-fields":t.candidateFields,data:$,key:$.key,showDelGroupBtn:s.value.length>1&&!t.disabled,onDeleteGroup:C=>i($.key)},null,8,["disabled","candidate-fields","data","showDelGroupBtn","onDeleteGroup"]))),128))]),o(S,{type:"success",onClick:k,style:{margin:"5px auto",display:"block"},disabled:t.disabled},{default:p(()=>[B("添加条件组")]),_:1},8,["disabled"])],64)}}});const Be=j(Ce,[["__scopeId","data-v-4b761d71"]]);export{Be as c,W as u};
|