DataTable.BEekLqM3.js 8.1 KB

1
  1. import{d as to,r as d,Z as eo,E as io,j as lo,ai as c,o as x,c as so,U as i,aa as ao,a8 as mo,O as l,u as e,K as co,am as po,M as w,D as N,R as z,F as uo,B as fo,a as f,S as g,a2 as go}from"./vue.1RczIYhx.js";import{A as ro,C as _o,x as bo,y as Co,q as xo,z as vo,h}from"./elementPlus.CXoFsoPv.js";import{u as So,a as wo}from"./useTableData.YE2EVtgg.js";import{u as H}from"./useResponse.DqThFJSa.js";import{a as M}from"./Columns.BYkYSZQL.js";import No from"./DataTableSlot.D8BJucgh.js";import{_ as T}from"./index.vue_vue_type_script_setup_true_lang.DMuK7_mb.js";import{_ as ho}from"./index.vue_vue_type_script_setup_true_lang.BL75ogMS.js";import{V as $}from"./index.DhA83F-e.js";import ko from"./EditDrawer.Bzu8BLxj.js";import Ao from"./CreateDialog.CzdsNZkx.js";import{g as Do,u as Vo,e as zo,b as Eo,d as Ro}from"./api.CqjzLtD5.js";import{i as Ho}from"./index.DYFzjhQc.js";import Mo from"./index.DGOo71lV.js";import{u as To}from"./useDownload.CfLLoz9t.js";import{_ as $o}from"./_plugin-vue_export-helper.DlAUqK2U.js";import"./countryInfo.Df1X6FZ-.js";import"./useTagColor.B-JXlmrE.js";import"./ProductInfo.vue_vue_type_script_setup_true_lang.dNf7YIIF.js";import"./useCopyText.DjRNgLW4.js";/* empty css */import"./ProgressBar.vue_vue_type_script_setup_true_lang.B_vg-SpV.js";import"./hasPermission.DeKomFvI.js";import"./api.NNHyd1Di.js";import"./PriceChart.Csco56st.js";import"./echarts.DoXO02ct.js";import"./api.BZqNGhCa.js";import"./DataTable.DJhCZr7i.js";import"./ChangeValue.DR3-V82t.js";const Bo={class:"flex gap-2"},Fo={class:"custom-el-input"},Uo={class:"flex items-center"},Oo=to({__name:"DataTable",setup(Lo,{expose:B}){const o=fo("query-parameter"),{tableOptions:k,handlePageChange:F}=So(u),E=d(),a=eo({id:"competitor-monitor-table",keepSource:!0,size:"mini",border:!1,round:!0,stripe:!0,showHeader:!0,currentRowHighLight:!0,height:"100%",customConfig:{storage:!0},sortConfig:{remote:!0},toolbarConfig:{size:"large",custom:!0,slots:{buttons:"toolbar_buttons",tools:"toolbar_tools"}},rowConfig:{isHover:!0},columnConfig:{resizable:!0},pagerConfig:{total:k.value.total,page:k.value.page,limit:k.value.limit},loading:!1,loadingConfig:{icon:"vxe-icon-indicator roll",text:"正在拼命加载中..."},columns:M,data:""}),p=d(new Set),r=d(!1),_=d(!1),b=d({}),A=d(""),D=d("monitor"),U=d(!1),C=d(!1);io(()=>{a.pagerConfig.limit=10}),lo(()=>{u()});async function u(t=!1){var m;t&&(a.pagerConfig.page=1),a.data=[];const n={country_code:o==null?void 0:o.country,goods__brand:o==null?void 0:o.brand,goods__tag:o==null?void 0:o.group,status:o==null?void 0:o.status,shop:o==null?void 0:o.shop,asin:o==null?void 0:o.asin,goods__sku:o==null?void 0:o.sku,platform_number:o==null?void 0:o.platformId,minScoreNumber:o==null?void 0:o.minScoreNumber,maxScoreNumber:o==null?void 0:o.maxScoreNumber,minCommentNumber:o==null?void 0:o.minCommentNumber,maxCommentNumber:o==null?void 0:o.maxCommentNumber,minScore:o==null?void 0:o.minScore,maxScore:o==null?void 0:o.maxScore,minAsinScore:o==null?void 0:o.minAsinScore,maxAsinScore:o==null?void 0:o.maxAsinScore,minAsinCommentNumber:o==null?void 0:o.minAsinCommentNumber,maxAsinCommentNumber:o==null?void 0:o.maxAsinCommentNumber,ordering:A.value};await wo(Do,n,a),a.showHeader=!!((m=a.data)!=null&&m.length)}function v(){u()}async function O(){a.loading=!0;try{await To({apiMethod:zo,queryParams:{country_code:o==null?void 0:o.country,goods__brand:o==null?void 0:o.brand,goods__tag:o==null?void 0:o.group,status:o==null?void 0:o.status,shop:o==null?void 0:o.shop,asin:o==null?void 0:o.asin,goods__sku:o==null?void 0:o.sku,platform_number:o==null?void 0:o.platformId,minScoreNumber:o==null?void 0:o.minScoreNumber,maxScoreNumber:o==null?void 0:o.maxScoreNumber,minCommentNumber:o==null?void 0:o.minCommentNumber,maxCommentNumber:o==null?void 0:o.maxCommentNumber,minScore:o==null?void 0:o.minScore,maxScore:o==null?void 0:o.maxScore,minAsinScore:o==null?void 0:o.minAsinScore,maxAsinScore:o==null?void 0:o.maxAsinScore,minAsinCommentNumber:o==null?void 0:o.minAsinCommentNumber,maxAsinCommentNumber:o==null?void 0:o.maxAsinCommentNumber,ordering:A.value},fileName:"竞品监控数据.xlsx",successMessage:()=>h.success("数据导出成功!"),errorMessage:()=>h.error("数据导出失败,请重试!")})}finally{a.loading=!1}}async function L(){const t=Array.from(p.value),n=await H(Eo,{keys:t});p.value.clear(),n.code===2e3&&(h.error({message:"选中项已删除!",plain:!0,icon:"Delete"}),v())}function I({checked:t,row:n}){t?p.value.add(n.id):p.value.delete(n.id)}function j({checked:t}){const n=E.value;if(n){const m=n.getData();t?m.forEach(V=>{p.value.add(V.id)}):p.value.clear()}}function G(t){r.value=!0,b.value=t}async function K(t){(await H(Ro,t)).code===2e3&&(h.error({message:"已删除!",plain:!0,icon:"Delete"}),v())}function Y(){_.value=!0}function Z(t){U.value=!0,b.value=t}function J(t){C.value=!0,b.value=t}function Q(){Ho({url:"/api/choice/competitor_monitor/import_data/",method:"GET",filename:"竞品监控模板.xlsx"})}const W={custom({type:t}){t=="confirm"&&u()}};function X({field:t,order:n}){const m=n==="desc"?"-":"";A.value=["reviews","ratings","score"].includes(t)?`${m}${t}`:`${m}goods__${t}`,u(t)}return B({fetchList:u}),(t,n)=>{const m=c("el-button"),V=c("el-popconfirm"),y=c("el-option"),P=c("el-select"),R=c("el-icon"),q=c("vxe-pager"),oo=c("el-empty"),no=c("vxe-grid");return x(),so(uo,null,[i(no,co({ref_key:"gridRef",ref:E},e(a),po(W),{onCheckboxChange:I,onSortChange:X,onCheckboxAll:j}),ao({toolbar_buttons:l(()=>[f("div",Bo,[f("div",null,[i(V,{icon:e(ro),"icon-color":"#626AEF",title:"你确定要删除此项吗?",width:"220",onConfirm:L},{reference:l(()=>[i(T,{disabled:!e(p).size,icon:e(_o),plain:"",round:"",type:"danger"},{default:l(()=>n[6]||(n[6]=[g(" 批量删除 ")])),_:1},8,["disabled","icon"])]),actions:l(({confirm:s,cancel:S})=>[i(m,{size:"small",onClick:S},{default:l(()=>n[7]||(n[7]=[g("No!")])),_:2},1032,["onClick"]),i(m,{size:"small",type:"danger",onClick:s},{default:l(()=>n[8]||(n[8]=[g(" Yes? ")])),_:2},1032,["onClick"])]),_:1},8,["icon"])]),f("div",null,[i(T,{icon:e(bo),plain:"",round:"",type:"primary",onClick:Y},{default:l(()=>n[9]||(n[9]=[g("新 增")])),_:1},8,["icon"])]),f("div",Fo,[i(P,{modelValue:e(D),"onUpdate:modelValue":n[0]||(n[0]=s=>N(D)?D.value=s:null),placeholder:"Select",style:{width:"190px"}},{prefix:l(()=>[f("div",Uo,[i(m,{size:"small",style:{"margin-left":"-7px","font-size":"14px","border-radius":"29px"},text:"",type:"success",onClick:go(Q,["stop"])},{default:l(()=>n[10]||(n[10]=[g("下载 ")])),_:1}),i($,{style:{"margin-left":"7px"}})])]),default:l(()=>[i(y,{label:"竞品监控模板",value:"monitor"})]),_:1},8,["modelValue"])]),i($,{class:"px-1",style:{"margin-left":"7px"}}),i(ho,{icon:e(Co),uploadFunction:Vo,bg:"",text:""},{default:l(()=>n[11]||(n[11]=[g("导 入")])),_:1},8,["icon","uploadFunction"])])]),toolbar_tools:l(()=>[i(m,{circle:"",class:"toolbar-btn",onClick:v},{default:l(()=>[i(R,null,{default:l(()=>[i(e(xo))]),_:1})]),_:1}),i(m,{circle:"",class:"toolbar-btn",onClick:O,style:{"margin-right":"12px"}},{default:l(()=>[i(R,null,{default:l(()=>[i(e(vo))]),_:1})]),_:1})]),top:l(()=>[n[12]||(n[12]=f("div",{class:"mb-2"},null,-1))]),pager:l(()=>[i(q,{currentPage:e(a).pagerConfig.page,"onUpdate:currentPage":n[1]||(n[1]=s=>e(a).pagerConfig.page=s),pageSize:e(a).pagerConfig.limit,"onUpdate:pageSize":n[2]||(n[2]=s=>e(a).pagerConfig.limit=s),total:e(a).pagerConfig.total,class:"mt-1.5",onPageChange:e(F)},null,8,["currentPage","pageSize","total","onPageChange"])]),empty:l(()=>[i(oo,{description:"暂无数据"})]),_:2},[mo(e(M),s=>({name:`${s.field}`,fn:l(({row:S})=>[(x(),w(No,{key:S.id,field:s.field,row:S,onEditRow:G,onHandleDelete:K,onShowComment:Z,onShowHistory:J},null,8,["field","row"]))])}))]),1040),e(r)?(x(),w(ko,{key:0,modelValue:e(r),"onUpdate:modelValue":n[3]||(n[3]=s=>N(r)?r.value=s:null),"row-data":e(b),onRefresh:v},null,8,["modelValue","row-data"])):z("",!0),e(_)?(x(),w(Ao,{key:1,modelValue:e(_),"onUpdate:modelValue":n[4]||(n[4]=s=>N(_)?_.value=s:null),onRefresh:u},null,8,["modelValue"])):z("",!0),e(C)?(x(),w(Mo,{key:2,modelValue:e(C),"onUpdate:modelValue":n[5]||(n[5]=s=>N(C)?C.value=s:null),"row-data":e(b).goods,title:"竞品监控"},null,8,["modelValue","row-data"])):z("",!0)],64)}}}),bn=$o(Oo,[["__scopeId","data-v-50309f50"]]);export{bn as default};