ray-template/assets/index-53d0550e.js
XiaoDaiGua-Ray 7b2acc25c4 mock build
2023-08-11 22:29:50 +08:00

2 lines
9.8 KiB
JavaScript

import{e as H,d as v,j as U,n as E}from"./index-8b362559.js";import{V as X}from"./vuedraggable@4.1.0_vue@3.3.4-c9b779ee.js";import{s as Y}from"./pinia@2.1.4_typescript@5.0.2_vue@3.3.4-ab93b4ec.js";import{V as R,N as q,R as y,a7 as L,g as K,P as I,a8 as G,a9 as J,p as Q}from"./naive-ui@2.34.4_vue@3.3.4-eacf875e.js";import{k,i as N,b as t,E as M,A as C,z as W,f as Z,F as ee,n as te}from"./@vue_runtime-core@3.3.4-073fad6e.js";import{k as g,h as ie,v as ne}from"./@vue_reactivity@3.3.4-2b3a1c4e.js";import{s as z}from"./screenfull@6.0.2-b3e6dc1f.js";import{p as ae}from"./print-js@1.6.0-31e6d2b4.js";import{u as w,w as le}from"./xlsx@0.18.5-65d3fcd1.js";import{d as se}from"./dayjs@1.11.7-adc18375.js";const oe=e=>e.map(n=>(n.fixed&&(n.fixed==="right"?n.rightFixedActivated=!0:n.leftFixedActivated=!0),n.resizable&&(n.resizeColumnActivated=!0),n)),re=k({name:"TableSetting",emits:["columnsUpdate"],setup(e,{emit:i}){const n=N("tableSettingProvider",{}),l=H(),a=g(oe(n.modelColumns.value)),m=g(!0),{themeValue:o}=Y(l);return{settingOptions:a,handleDraggableEnd:()=>{i("columnsUpdate",a.value)},handleFixedClick:(u,r)=>{const p=`${u}FixedActivated`,d=a.value[r];p==="leftFixedActivated"?d.rightFixedActivated=!1:p==="rightFixedActivated"&&(d.leftFixedActivated=!1),d[p]=!d[p],d[p]?d.fixed=u:d.fixed=void 0,a.value[r]=d,i("columnsUpdate",a.value)},disableDraggable:m,FixedPopoverIcon:u=>{const{element:r,name:p,tooltip:d,fn:_,index:P,fixed:F,key:A}=u;return t(y,null,{trigger:()=>t(v,{customClassName:`draggable-item__icon ray-table-icon ${r[A]?"draggable-item__icon--actived":""}`,name:p,size:"18",onClick:_.bind(this,F,P)},null),default:()=>d})},handleResizeColumnClick:u=>{const r=a.value[u];r.resizeColumnActivated=!r.resizeColumnActivated,r.resizable=r.resizeColumnActivated,a.value[u]=r,i("columnsUpdate",a.value)},themeValue:o}},render(){return t(y,{trigger:"click",placement:"bottom",showArrow:!1,raw:!0},{trigger:()=>t(v,{customClassName:"ray-table__setting",name:"setting",size:"18"},null),default:()=>t(R,{bordered:!1,class:"table-setting__card"},{default:()=>t(X,M({class:["ray-table__setting-option--draggable"],modelValue:this.settingOptions,"onUpdate:modelValue":e=>this.settingOptions=e,itemKey:"key"},{disabled:!this.disableDraggable,onEnd:this.handleDraggableEnd.bind(this)}),{item:({element:e,index:i})=>t("div",{class:["draggable-item",this.themeValue?"draggable-item--dark":""]},[t(v,{customClassName:"draggable-item__d--icon",name:"draggable",size:"18"},null),t(q,null,{default:()=>[t("span",null,[e.title])]}),this.FixedPopoverIcon({element:e,name:"left_arrow",tooltip:"左固定",fn:this.handleFixedClick,index:i,fixed:"left",key:"leftFixedActivated"}),t(y,null,{trigger:()=>t(v,{customClassName:`draggable-item__icon ${e.resizeColumnActivated?"draggable-item__icon--actived":""}`,name:"resize_h",size:"18",onClick:this.handleResizeColumnClick.bind(this,i)},null),default:()=>"修改列宽"}),this.FixedPopoverIcon({element:e,name:"right_arrow",tooltip:"右固定",fn:this.handleFixedClick,index:i,fixed:"right",key:"rightFixedActivated"})])})})})}}),O=k({name:"TableAction",props:{tooltip:{type:String,required:!0},negativeText:{type:String,default:"取消"},positiveText:{type:String,default:"确认"},icon:{type:String,required:!0},iconSize:{type:Number,default:18},popoverContent:{type:String,required:!0}},emits:["positive","negative"],setup(e,{emit:i}){const n=g(!1);return{handleEmit:a=>{i(a==="positive"?"positive":"negative"),n.value=!1},showPopoconfirm:n}},render(){return t(y,null,{trigger:()=>t(L,{show:this.showPopoconfirm,"onUpdate:show":e=>this.showPopoconfirm=e,showArrow:!0},{trigger:()=>t(v,{name:this.icon,size:this.iconSize,customClassName:"ray-table-icon"},null),default:()=>this.tooltip,action:()=>t(K,null,{default:()=>[t(I,{size:"small",ghost:!0,onClick:this.handleEmit.bind(this,"negative")},{default:()=>[this.negativeText]}),t(I,{size:"small",ghost:!0,type:"info",onClick:this.handleEmit.bind(this,"positive")},{default:()=>[this.positiveText]})]})}),default:()=>this.popoverContent})}});const de=k({name:"TableSize",props:{onChangeSize:{type:[Function,Array],default:null}},emits:["changeSize"],setup(e){const i=N("tableSettingProvider",{}),n=g(!1),l=C({get:()=>i.size,set:o=>{const{onChangeSize:c}=e;c&&U(c,o)}}),a=g([{label:"默认",key:"medium"},{label:"紧凑",key:"small"},{label:"宽松",key:"large"}]);return{size:l,sizeOptions:a,handleDropdownClick:o=>{a.value.forEach(c=>{c.key===o&&(l.value=o,n.value=!1)})},popoverShow:n}},render(){return t(y,{show:this.popoverShow,"onUpdate:show":e=>this.popoverShow=e,trigger:"click",placement:"bottom",showArrow:!1,raw:!0},{trigger:()=>t(y,null,{trigger:()=>t(v,{name:"adjustment",size:"18",customClassName:"ray-table-icon"},null),default:()=>"表格密度"}),default:()=>t(R,{bordered:!1,class:"ray-table__table-size ray-table__table-size--dark ray-table__table-size--light"},{default:()=>[t("div",{class:"table-size__dropdown"},[t("div",{class:"table-size__dropdown-wrapper"},[this.sizeOptions.map(e=>t("div",{class:["dropdown-item",e.key===this.size?"dropdown-item--active":""],key:e.key,onClick:this.handleDropdownClick.bind(this,e.key)},[t("div",{class:"drop-item__label"},[e.label])]))])])]})})}});const ce=k({name:"TableScreenfull",setup(){const e=N("tableSettingProvider",{}),i=C(()=>e.rayTableUUID);let n=z.isFullscreen;return{handleScreenfull:()=>{const a=document.getElementById(i.value);n=!n,a&&z.isEnabled&&n?z.request(a):z.exit()}}},render(){return t(y,null,{trigger:()=>t(v,{name:"fullscreen",size:"18",customClassName:"ray-table-icon tay-table-icon__screenfull",onClick:this.handleScreenfull.bind(this)},null),default:()=>"全屏表格"})}}),ue={...G,rightClickOptions:{type:Array,default:()=>[]},onRightMenuClick:{type:[Function,Array],default:null},"onUpdate:rightMenuClick":{type:[Function,Array],default:null},title:{type:[String,Object],default:null},action:{type:Boolean,default:!0},actionExtra:{type:Object,default:()=>({})},showMenu:{type:Boolean,default:!0},exportTooltip:{type:String,default:"是否导出为Excel表格?"},exportType:{type:String,default:"xlsx"},exportPositiveText:{type:String,default:"确认"},exportNegativeText:{type:String,default:"取消"},exportFilename:{type:String,default:""},printPositiveText:{type:String,default:"确认"},printNegativeText:{type:String,default:"取消"},printTooltip:{type:String,default:"是否打印该表格?"},printType:{type:String,default:"html"},printOptions:{type:Object,default:()=>({})},printIcon:{type:String,default:"print"},exportExcelIcon:{type:String,default:"export_excel"},tableHeaderSpace:{type:String,default:"10px"},bordered:{type:Boolean,default:!1}},he=e=>e.reduce((n,l)=>(n[l.key]=l.title,n),{}),pe=(e,i,n)=>{for(let l=e.s.c;l<=e.e.c;l++){const a=w.encode_col(l)+"1";i[a].v=n[i[a].v]}},ge=async(e,i,n={})=>{await new Promise((l,a)=>{if(Array.isArray(e))if(e.length){const m=he(i??[]),o=w.json_to_sheet(e),c=w.book_new(),h=n.filename?n.filename+".xlsx":se().format("YYYY-MM-DD")+"导出表格.xlsx";w.book_append_sheet(c,o,"Data");const x=w.decode_range(o["!ref"]);i!=null&&i.length&&pe(x,o,m),le(c,h),l()}else l();else a()})},ke=k({name:"RayTable",props:ue,emits:["update:columns","exportSuccess","exportError"],setup(e,{emit:i,expose:n}){const l=g(),a=E(16),m=E(16),o=C(()=>e.rightClickOptions),c=C({get:()=>e.columns,set:s=>{i("update:columns",s)}}),h=ie({x:0,y:0,showMenu:!1});let x=-1;const D=C(()=>({"--ray-table-header-space":e.tableHeaderSpace})),u=g(e.size),r=g();W("tableSettingProvider",{modelRightClickMenu:o,modelColumns:c,size:u,rayTableUUID:m});const p=s=>{c.value=s},d=(s,f)=>{const{onRightMenuClick:S,"onUpdate:rightMenuClick":b}=e;S&&U(S,s,x,f),b&&U(b,s,x,f),h.showMenu=!1},_=(s,f)=>{var b;return{...(b=e.rowProps)==null?void 0:b.call(e,s,f),onContextmenu:T=>{T.preventDefault(),x=f,h.showMenu=!1,te().then(()=>{h.showMenu=!0,h.x=T.clientX,h.y=T.clientY})}}},P=async()=>{if(e.data.length&&e.columns.length)try{await ge(e.data,e.columns,{filename:e.exportFilename}),i("exportSuccess")}catch{i("exportError")}},F=()=>{const s=Object.assign({},e.printOptions,{printable:a,type:e.printType,documentTitle:e.printOptions.documentTitle?e.printOptions.documentTitle:"表格"});ae(s)},A=s=>{u.value=s},V=s=>{const{clearFilters:f,clearSorter:S,filters:b,page:T,scrollTo:j,sort:$,filter:B}=s;r.value={clearFilters:f,clearSorter:S,filters:b,page:T,scrollTo:j,sort:$,filter:B}};return n({tableMethods:C(()=>r.value)}),Z(()=>{V(l.value)}),{tableUUID:a,rayTableUUID:m,handleColumnsUpdate:p,...ne(h),handleRowProps:_,handleRightMenuSelect:d,handleExportPositive:P,handlePrintPositive:F,cssVars:D,handleChangeTableSize:A,tableSize:u,rayTableInstance:l,modelRightClickMenu:o}},render(){return this.action,t(R,M({class:"ray-table",bordered:this.bordered,style:[this.cssVars]},{id:this.rayTableUUID}),{default:()=>t(ee,null,[t(J,M({ref:"rayTableInstance"},{id:this.tableUUID},this.$props,{rowProps:this.handleRowProps.bind(this),size:this.tableSize}),{...this.$slots}),this.showMenu?t(Q,{show:this.showMenu,placement:"bottom-start",trigger:"manual",x:this.x,y:this.y,options:this.modelRightClickMenu,onClickoutside:()=>this.showMenu=!1,onSelect:this.handleRightMenuSelect.bind(this)},null):""]),header:()=>this.title||t("div",{style:"display: none;"},null),"header-extra":()=>this.action?t("div",{class:"ray-table-header-extra__space"},[t(O,{icon:this.printIcon,tooltip:this.printTooltip,popoverContent:"打印表格",positiveText:this.printPositiveText,negativeText:this.printNegativeText,onPositive:this.handlePrintPositive.bind(this)},null),t(O,{icon:this.exportExcelIcon,tooltip:this.exportTooltip,popoverContent:"导出表格",positiveText:this.exportPositiveText,negativeText:this.exportNegativeText,onPositive:this.handleExportPositive.bind(this)},null),t(de,{onChangeSize:this.handleChangeTableSize.bind(this)},null),t(ce,null,null),t(re,{onColumnsUpdate:this.handleColumnsUpdate.bind(this)},null)]):"",footer:()=>{var e,i;return(i=(e=this.$slots).tableFooter)==null?void 0:i.call(e)}})}});export{ke as R};