mirror of
https://github.com/XiaoDaiGua-Ray/ray-template.git
synced 2025-06-11 02:09:18 +08:00
2 lines
14 KiB
JavaScript
2 lines
14 KiB
JavaScript
import{s as U}from"./pinia.04532b5d.js";import{u as V,R as x}from"./index.eb23cf1a.js";import{V as G}from"./vuedraggable.69650ee3.js";import{K as h,N as O,Q as k,p as C,G as v,R as $,S as j,P as L,x as Y,q as R,T as X,U as H,V as E,W as I,X as q,F as T,Y as J,C as K,y as Q}from"./naive-ui.df1bccd0.js";import{e as D,i as W,r as g,ao as e,l as A,E as Z,p as ee,M as te,F as N,x as le,n as ae,c as o,q as B}from"./@vue.6f9b3ecc.js";import{p as ue}from"./print-js.47d9cc28.js";import{u as ie}from"./hook.746076e4.js";import{u as b,w as ne}from"./xlsx.842cb549.js";import{d as se}from"./dayjs.9ac94883.js";import"./vue-demi.b3a9cad9.js";import"./pinia-plugin-persistedstate.c449c8e7.js";import"./vue-i18n.715a0b35.js";import"./@intlify.c1495d3a.js";import"./vue-router.e6f2912b.js";import"./@vueuse.a0b06385.js";import"./screenfull.c1f291d3.js";import"./date-fns.03faffa8.js";import"./vueuc.feb70412.js";import"./evtd.9eee5233.js";import"./seemly.786de437.js";import"./@css-render.66179467.js";import"./vooks.d8957d1b.js";import"./vdirs.9b78243b.js";import"./@juggle.32c34d6c.js";import"./css-render.20ab466e.js";import"./@emotion.6322e2ae.js";import"./lodash-es.16993470.js";import"./treemate.80cdf2c2.js";import"./date-fns-tz.974adeb4.js";import"./async-validator.fb49d0f5.js";import"./vue.3e1409f3.js";import"./sortablejs.95e4fa30.js";const oe=t=>t.map(a=>(a.fixed&&(a.fixed==="right"?a.rightFixedActivated=!0:a.leftFixedActivated=!0),a.resizable&&(a.resizeColumnActivated=!0),a)),re=D({name:"TableSetting",emits:["columnsUpdate"],setup(t,{emit:l}){const a=V(),u=W("tableSettingProvider",{}),i=g(oe(u.modelColumns.value)),r=g(!0),{themeValue:p}=U(a);return{settingOptions:i,handleDraggableEnd:()=>{l("columnsUpdate",i.value)},handleFixedClick:(m,c)=>{const n=`${m}FixedActivated`,s=i.value[c];n==="leftFixedActivated"?s.rightFixedActivated=!1:n==="rightFixedActivated"&&(s.leftFixedActivated=!1),s[n]=!s[n],s[n]?s.fixed=m:s.fixed=void 0,i.value[c]=s,l("columnsUpdate",i.value)},disableDraggable:r,FixedPopoverIcon:m=>{const{element:c,name:n,tooltip:s,fn:_,index:w,fixed:y,key:z}=m;return e(k,null,{trigger:()=>e(x,{customClassName:`draggable-item__icon ${c[z]?"draggable-item__icon--actived":""}`,name:n,size:"18",onClick:_.bind(this,y,w)},null),default:()=>s})},handleResizeColumnClick:m=>{const c=i.value[m];c.resizeColumnActivated=!c.resizeColumnActivated,c.resizable=c.resizeColumnActivated,i.value[m]=c,l("columnsUpdate",i.value)},themeValue:p}},render(){return e(k,{trigger:"click",placement:"bottom",showArrow:!1,raw:!0},{trigger:()=>e(x,{customClassName:"ray-table__setting",name:"setting",size:"18"},null),default:()=>e(h,{bordered:!1,class:"table-setting__card"},{default:()=>e(G,{class:["ray-table__setting-option--draggable"],modelValue:this.settingOptions,"onUpdate:modelValue":t=>this.settingOptions=t,itemKey:"key",disabled:!this.disableDraggable,onEnd:this.handleDraggableEnd.bind(this)},{item:({element:t,index:l})=>e("div",{class:["draggable-item",this.themeValue?"draggable-item--dark":""]},[e(x,{customClassName:"draggable-item__d--icon",name:"draggable",size:"18"},null),e(O,null,{default:()=>[e("span",null,[t.title])]}),this.FixedPopoverIcon({element:t,name:"left_arrow",tooltip:"\u5DE6\u56FA\u5B9A",fn:this.handleFixedClick,index:l,fixed:"left",key:"leftFixedActivated"}),e(k,null,{trigger:()=>e(x,{customClassName:`draggable-item__icon ${t.resizeColumnActivated?"draggable-item__icon--actived":""}`,name:"resize_h",size:"18",onClick:this.handleResizeColumnClick.bind(this,l)},null),default:()=>"\u4FEE\u6539\u5217\u5BBD"}),this.FixedPopoverIcon({element:t,name:"right_arrow",tooltip:"\u53F3\u56FA\u5B9A",fn:this.handleFixedClick,index:l,fixed:"right",key:"rightFixedActivated"})])})})})}}),M=D({name:"TableAction",props:{tooltip:{type:String,required:!0},negativeText:{type:String,default:"\u53D6\u6D88"},positiveText:{type:String,default:"\u786E\u8BA4"},icon:{type:String,required:!0},iconSize:{type:Number,default:18}},emits:["positive","negative"],setup(t,{emit:l}){const a=g(!1);return{handleEmit:i=>{l(i==="positive"?"positive":"negative"),a.value=!1},showPopoconfirm:a}},render(){return e($,{show:this.showPopoconfirm,"onUpdate:show":t=>this.showPopoconfirm=t,showArrow:!0},{trigger:()=>e(x,{name:this.icon,size:this.iconSize,customClassName:"ray-table-icon"},null),default:()=>this.tooltip,action:()=>e(C,null,{default:()=>[e(v,{size:"small",ghost:!0,onClick:this.handleEmit.bind(this,"negative")},{default:()=>[this.negativeText]}),e(v,{size:"small",ghost:!0,type:"info",onClick:this.handleEmit.bind(this,"positive")},{default:()=>[this.positiveText]})]})})}}),de={...j,rightClickMenu:{type:Array,default:()=>[]},title:{type:[String,Object],default:""},action:{type:Boolean,default:!0},actionExtra:{type:Object,default:()=>({})},showMenu:{type:Boolean,default:!0},exportTooltip:{type:String,default:"\u662F\u5426\u5BFC\u51FA\u4E3AExcel\u8868\u683C?"},exportType:{type:String,default:"xlsx"},exportPositiveText:{type:String,default:"\u786E\u8BA4"},exportNegativeText:{type:String,default:"\u53D6\u6D88"},exportFilename:{type:String,default:""},printPositiveText:{type:String,default:"\u786E\u8BA4"},printNegativeText:{type:String,default:"\u53D6\u6D88"},printTooltip:{type:String,default:"\u662F\u5426\u6253\u5370\u8BE5\u8868\u683C?"},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:!0}},ce=t=>t.reduce((a,u)=>(a[u.key]=u.title,a),{}),pe=(t,l,a)=>{for(let u=t.s.c;u<=t.e.c;u++){const i=b.encode_col(u)+"1";l[i].v=a[l[i].v]}},me=async(t,l,a={})=>{await new Promise((u,i)=>{if(t!=null&&t.length){const r=ce(l!=null?l:[]),p=b.json_to_sheet(t),d=b.book_new(),f=a.filename?a.filename+".xlsx":se().format("YYYY-MM-DD")+"\u5BFC\u51FA\u8868\u683C.xlsx";b.book_append_sheet(d,p,"Data");const F=b.decode_range(p["!ref"]);l!=null&&l.length&&pe(F,p,r),ne(d,f),u()}else i()})},S=D({name:"RayTable",props:de,emits:["update:columns","menuSelect","exportSuccess","exportError"],setup(t,{emit:l}){const a=ie(),u=A(()=>t.rightClickMenu),i=A({get:()=>t.columns,set:n=>{l("update:columns",n)}}),r=Z({x:0,y:0,showMenu:!1});let p=-1;const d=A(()=>({"--ray-table-header-space":t.tableHeaderSpace}));ee("tableSettingProvider",{modelRightClickMenu:u,modelColumns:i});const f=n=>{i.value=n},F=(n,s)=>{l("menuSelect",n,p,s),r.showMenu=!1},P=(n,s)=>{var w;return{...(w=t.rowProps)==null?void 0:w.call(t,n,s),onContextmenu:y=>{y.preventDefault(),p=s,r.showMenu=!1,ae().then(()=>{r.showMenu=!0,r.x=y.clientX,r.y=y.clientY})}}},m=async()=>{if(t.data.length&&t.columns.length)try{await me(t.data,t.columns,{filename:t.exportFilename}),l("exportSuccess")}catch{l("exportError")}},c=()=>{const n=Object.assign({},t.printOptions,{printable:a,type:t.printType,documentTitle:t.printOptions.documentTitle?t.printOptions.documentTitle:"\u8868\u683C"});ue(n)};return{tableUUID:a,handleColumnsUpdate:f,...te(r),handleRowProps:P,handleRightMenuSelect:F,handleExportPositive:m,handlePrintPositive:c,cssVars:d}},render(){return e(h,{class:"ray-table",bordered:this.bordered,style:[this.cssVars]},{default:()=>e(N,null,[e(L,le({id:this.tableUUID},this.$props,{rowProps:this.handleRowProps.bind(this)}),{empty:()=>{var t,l;return(l=(t=this.$slots)==null?void 0:t.empty)==null?void 0:l.call(t)},loading:()=>{var t,l;return(l=(t=this.$slots)==null?void 0:t.loading)==null?void 0:l.call(t)}}),this.showMenu?e(Y,{show:this.showMenu,placement:"bottom-start",trigger:"manual",x:this.x,y:this.y,options:this.rightClickMenu,onClickoutside:()=>this.showMenu=!1,onSelect:this.handleRightMenuSelect.bind(this)},null):""]),header:()=>this.title,"header-extra":()=>this.action?e("div",{class:"ray-table-header-extra__space"},[e(M,{icon:this.printIcon,tooltip:this.printTooltip,positiveText:this.printPositiveText,negativeText:this.printNegativeText,onPositive:this.handlePrintPositive.bind(this)},null),e(R,{vertical:!0},null),e(M,{icon:this.exportExcelIcon,tooltip:this.exportTooltip,positiveText:this.exportPositiveText,negativeText:this.exportNegativeText,onPositive:this.handleExportPositive.bind(this)},null),e(R,{vertical:!0},null),e(re,{onColumnsUpdate:this.handleColumnsUpdate.bind(this)},null)]):"",footer:()=>{var t,l;return(l=(t=this.$slots).tableFooter)==null?void 0:l.call(t)}})}});const he={value:{type:Boolean,default:!0},collapseToggleText:{type:Array,default:()=>["\u5C55\u5F00","\u6536\u8D77"]},bordered:{type:Boolean,default:!0},...X},ge=D({name:"RayCollapseGrid",props:he,emits:["updateValue"],setup(t,{emit:l}){const a=g(t.value),u=()=>{a.value=!a.value,l("updateValue",a.value)};return{modelCollapsed:a,handleCollapse:u,CollapseIcon:()=>e("div",{class:"collapse-icon",onClick:u.bind(this)},[e("span",null,[a.value?t.collapseToggleText[0]:t.collapseToggleText[1]]),e(x,{customClassName:`collapse-icon--arrow ${a.value?"":"collapse-icon--arrow__expanded"}`,name:"expanded",size:"14"},null)])}},render(){return e(h,{bordered:this.bordered},{default:()=>e(H,{class:"ray-collapse-grid",collapsed:this.modelCollapsed,xGap:this.xGap||12,yGap:this.yGap||18,cols:this.cols,collapsedRows:this.collapsedRows},{default:()=>{var t,l;return[(l=(t=this.$slots).default)==null?void 0:l.call(t),e(E,{suffix:!0,class:"ray-collapse-grid__suffix--btn"},{default:()=>[e(C,{justify:"end"},{default:()=>{var a,u;return[(u=(a=this.$slots).action)==null?void 0:u.call(a),this.CollapseIcon()]}})]})]}})})}}),qe=D({name:"TableView",setup(){const t=[{title:"Name",key:"name"},{title:"Age",key:"age"},{title:"Address",key:"address"},{title:"Tags",key:"tags",render:d=>d.tags.map(F=>B(Q,{style:{marginRight:"6px"},type:"info",bordered:!1},{default:()=>F}))},{title:"Action",key:"actions",render:d=>B(v,{size:"small"},{default:()=>"Send Email"})}],l=g([...t].map(d=>({...d,width:400}))),a=g([{key:0,name:"John Brown",age:32,address:"New York No. 1 Lake Park",tags:["nice","developer"]},{key:1,name:"Jim Green",age:42,address:"London No. 1 Lake Park",tags:["wow"]},{key:2,name:"Joe Black",age:32,address:"Sidney No. 1 Lake Park",tags:["cool","teacher"]}]),u=[{label:"\u7F16\u8F91",key:"edit"},{label:()=>B("span",{style:{color:"red"}},"\u5220\u9664"),key:"delete"}],i=g(4),r=g(1);return{tableData:a,actionColumns:l,baseColumns:t,tableMenuOptions:u,handleMenuSelect:(d,f)=>{d==="delete"&&a.value.splice(f,1)},gridItemCount:i,gridCollapsedRows:r}},render(){return e(K,null,{default:()=>[e(h,{title:"RayTable"},{default:()=>[e("p",null,[o("\u8BE5\u7EC4\u4EF6\u57FA\u4E8E Naive UI DataTable \u7EC4\u4EF6\u5C01\u88C5. \u5B9E\u73B0\u53F3\u952E\u83DC\u5355, \u8868\u683C\u6807\u9898, \u5BFC\u51FA\u4E3A excel \u64CD\u4F5C\u680F\u7B49\u529F\u80FD")]),e("p",null,[o("RayTable \u5B8C\u5168\u7EE7\u627F DataTable \u7684\u6240\u6709\u5C5E\u6027\u4E0E\u65B9\u6CD5")]),e("p",null,[o("\u76F8\u5173\u62D3\u5C55 props \u5C5E\u6027, \u53EF\u4EE5\u5728\u6E90\u7801\u4F4D\u7F6E src/components/RayTable/src/props.ts \u4E2D\u67E5\u770B\u76F8\u5173\u4EE3\u7801\u4E0E\u6CE8\u91CA")]),e("p",null,[o("\u8BE5\u7EC4\u4EF6\u53EF\u4EE5\u914D\u5408 RayCollapseGird \u7EC4\u4EF6\u4F7F\u7528\u5B9E\u73B0\u53EF\u6298\u53E0\u641C\u7D22\u680F")])]}),e(h,{style:["margin-top: 18px"]},{default:()=>e(C,{vertical:!0},{default:()=>[e(C,{style:["margin-top: 18px"]},{default:()=>[o("\u8BE5\u7EC4\u4EF6\u57FA\u4E8E NGird \u5B9E\u73B0, \u4F46\u662F\u7531\u4E8E css grid \u9650\u5236, \u4E0D\u80FD\u5BF9\u4E8E NGridItem \u7EC4\u4EF6\u8FDB\u884C\u4E8C\u6B21\u5C01\u88C5, \u6240\u4EE5\u4F7F\u7528\u65F6\u5FC5\u987B\u914D\u5408 NGridItem \u4F7F\u7528\u624D\u80FD\u5B9E\u73B0\u793A\u4F8B\u6548\u679C(\u4F7F\u7528 NGridItem \u5305\u88F9\u5143\u7D20\u5373\u53EF).")]}),e(C,{style:["margin-top: 18px"]},{default:()=>[e(C,{align:"center"},{default:()=>[o("\u6570\u91CF "),e(I,{value:this.gridItemCount,"onUpdate:value":t=>this.gridItemCount=t},null)]}),e(C,{align:"center"},{default:()=>[o("\u884C\u6570 "),e(I,{value:this.gridCollapsedRows,"onUpdate:value":t=>this.gridCollapsedRows=t},null)]})]}),e(ge,{collapsedRows:this.gridCollapsedRows,cols:this.gridItemCount,onUpdateValue:t=>window.$message.info(`\u6211\u662F RayCollapseGrid \u7EC4\u4EF6${t?"\u6536\u8D77":"\u5C55\u5F00"}\u7684\u56DE\u8C03\u51FD\u6570`)},{action:()=>e(N,null,[e(v,null,{default:()=>[o("\u641C\u7D22")]}),e(v,null,{default:()=>[o("\u91CD\u7F6E")]})]),default:()=>e(N,null,[e(E,null,{default:()=>[e(q,null,null)]}),e(E,null,{default:()=>[e(T,null,null)]}),e(E,null,{default:()=>[e(J,{type:"datetimerange",clearable:!0},null)]}),e(E,null,{default:()=>[e(T,null,null)]}),e(E,null,{default:()=>[e(T,null,null)]})])})]})}),e(h,{title:"\u57FA\u7840\u4F7F\u7528",style:["margin-top: 18px"]},{default:()=>[e(S,{title:"\u57FA\u7840\u4F7F\u7528",data:this.tableData,columns:this.baseColumns,action:!1,pagination:{pageSize:10}},{tableFooter:()=>"\u8868\u683C\u7684\u5E95\u90E8\u5185\u5BB9\u533A\u57DF\uFF0C\u6709\u65F6\u5019\u4F60\u53EF\u80FD\u4F1A\u7528\u4E0A"})]}),e(h,{style:["margin-top: 18px"]},{header:()=>e("div",null,[e("p",null,[o("\u4F7F\u7528\u54CD\u5E94\u5F0F\u65B9\u6CD5\u4EE3\u7406 columns \u5E76\u4E14\u6253\u5F00 action \u5219\u53EF\u4EE5\u542F\u7528\u64CD\u4F5C\u680F(v-model:columns)")]),e("p",null,[o("\u62D6\u62FD\u64CD\u4F5C\u680F\u52A8\u6001\u5207\u6362\u8868\u683C\u5217")]),e("p",null,[o("\u70B9\u51FB\u5DE6\u53F3\u56FA\u5B9A\u6309\u94AE, \u5373\u53EF\u52A8\u6001\u56FA\u5B9A\u5217")]),e("p",null,[o("\u70B9\u51FB\u4FEE\u6539\u5217\u5BBD\u5EA6, \u5373\u53EF\u62D6\u52A8\u5217\u4FEE\u6539\u5BBD\u5EA6")]),e("p",null,[o("\u70B9\u51FB\u5BFC\u51FA\u6309\u94AE\u5373\u53EF\u5BFC\u51FA excel \u8868\u683C, \u9ED8\u8BA4\u4EE5\u5217\u4E3A\u8868\u5934\u8F93\u51FA")]),e("p",null,[o("\u70B9\u51FB\u6253\u5370\u6309\u94AE\u5373\u53EF\u6253\u5370\u8BE5\u8868\u683C")])]),default:()=>e(S,{title:B(T,{placeholder:"\u8BF7\u8F93\u5165\u68C0\u7D22\u6761\u4EF6",style:["width: 200px"]}),data:this.tableData,columns:this.actionColumns,"onUpdate:columns":t=>this.actionColumns=t},null)}),e(h,{title:"\u53F3\u952E\u83DC\u5355",style:["margin-top: 18px"]},{default:()=>[e(S,{title:"\u53F3\u952E\u83DC\u5355\u8868\u683C",action:!1,data:this.tableData,columns:this.baseColumns,rightClickMenu:this.tableMenuOptions,onMenuSelect:this.handleMenuSelect.bind(this)},null)]})]})}});export{qe as default};
|