@robot-admin/naive-ui-components 0.9.3 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +82 -76
- package/LICENSE +21 -0
- package/README.md +314 -294
- package/dist/C_AvatarGroup.cjs +1 -1
- package/dist/C_AvatarGroup.d.cts +1 -1
- package/dist/C_AvatarGroup.d.ts +1 -1
- package/dist/C_AvatarGroup.js +1 -1
- package/dist/C_Cascade-CmCrLVft.css.map +1 -0
- package/dist/C_Cascade-U6A5AJJb.css.map +1 -0
- package/dist/C_Cascade.css +3 -3
- package/dist/C_Cascade.d.cts +2 -2
- package/dist/C_Cascade.d.ts +2 -2
- package/dist/C_Cascade.js.map +1 -1
- package/dist/C_Cascade2.js +1 -1
- package/dist/C_Cascade2.js.map +1 -1
- package/dist/{C_Form-SCq-DZaZ.css.map → C_Form-B_2ql62V.css.map} +1 -1
- package/dist/{C_Form-mcd1nKvF.css.map → C_Form-CX-7xsz3.css.map} +1 -1
- package/dist/C_Form.css +60 -60
- package/dist/C_Form.d.cts +2 -2
- package/dist/C_Form.d.ts +2 -2
- package/dist/C_Form.js.map +1 -1
- package/dist/C_Form2.js +1 -1
- package/dist/C_Form2.js.map +1 -1
- package/dist/C_FullCalendar.js.map +1 -1
- package/dist/C_FullCalendar2.js +1 -1
- package/dist/C_FullCalendar2.js.map +1 -1
- package/dist/C_Icon.d.cts +1 -1
- package/dist/C_Icon.d.ts +1 -1
- package/dist/C_Icon.js.map +1 -1
- package/dist/C_Icon2.js.map +1 -1
- package/dist/C_Language.d.cts +1 -1
- package/dist/C_Language.d.ts +1 -1
- package/dist/C_Language.js.map +1 -1
- package/dist/C_Language2.js.map +1 -1
- package/dist/C_Steps-27Exh7PM.css.map +1 -0
- package/dist/C_Steps-DU9ZsFrs.css.map +1 -0
- package/dist/C_Steps.css +38 -38
- package/dist/C_Steps.d.cts +1 -1
- package/dist/C_Steps.d.ts +1 -1
- package/dist/C_Steps.js.map +1 -1
- package/dist/C_Steps2.js +1 -1
- package/dist/C_Steps2.js.map +1 -1
- package/dist/C_Table.js.map +1 -1
- package/dist/C_Table2.js +3 -3
- package/dist/C_Table2.js.map +1 -1
- package/dist/{C_TagsView-COjGNM9h.css.map → C_TagsView-BN8vMRsY.css.map} +1 -1
- package/dist/{C_TagsView-zUDj9S06.css.map → C_TagsView-s1dnSJAV.css.map} +1 -1
- package/dist/C_TagsView.css +36 -36
- package/dist/C_TagsView.d.cts +1 -1
- package/dist/C_TagsView.d.ts +1 -1
- package/dist/C_TagsView.js.map +1 -1
- package/dist/C_TagsView2.js +1 -1
- package/dist/C_TagsView2.js.map +1 -1
- package/dist/C_Theme.d.cts +1 -1
- package/dist/C_Theme.d.ts +1 -1
- package/dist/C_Theme.js.map +1 -1
- package/dist/C_Theme2.js.map +1 -1
- package/dist/C_Timeline.cjs +1 -1
- package/dist/C_Timeline.d.cts +1 -1
- package/dist/C_Timeline.d.ts +1 -1
- package/dist/C_Timeline.js +1 -1
- package/dist/constants.d.ts +2 -2
- package/dist/constants2.d.ts +2 -2
- package/dist/constants3.d.ts +2 -2
- package/dist/constants4.d.ts +5 -5
- package/dist/data.d.ts +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +9 -9
- package/dist/index.d.ts +9 -9
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.vue.d.ts +1 -1
- package/dist/index10.vue.d.ts +2 -2
- package/dist/index11.vue.d.ts +3 -3
- package/dist/index12.vue.d.ts +1 -1
- package/dist/index13.vue.d.ts +1 -1
- package/dist/index14.vue.d.ts +2 -2
- package/dist/index15.vue.d.ts +29 -9
- package/dist/index16.vue.d.ts +11 -4
- package/dist/index17.vue.d.ts +1 -1
- package/dist/index18.vue.d.ts +2 -2
- package/dist/index2.vue.d.ts +1 -1
- package/dist/index20.vue.d.ts +1 -1
- package/dist/index21.vue.d.ts +1 -1
- package/dist/index22.vue.d.ts +3 -3
- package/dist/index23.vue.d.ts +15 -4
- package/dist/index24.vue.d.ts +13 -4
- package/dist/index25.vue.d.ts +4 -2
- package/dist/index26.vue.d.ts +2 -2
- package/dist/index27.vue.d.ts +3 -3
- package/dist/index28.vue.d.ts +4 -4
- package/dist/index3.vue.d.ts +2 -2
- package/dist/index4.vue.d.ts +4 -4
- package/dist/index7.vue.d.ts +7 -5
- package/dist/index8.vue.d.ts +1 -1
- package/dist/resolver.cjs +1 -1
- package/dist/resolver.cjs.map +1 -1
- package/dist/resolver.d.cts +2 -21
- package/dist/resolver.d.ts +2 -21
- package/dist/resolver.js +1 -1
- package/dist/resolver.js.map +1 -1
- package/dist/style.css +141 -141
- package/dist/useCalendarEvents.d.ts +8 -5
- package/dist/useCollapsePanel.d.ts +4 -4
- package/dist/useCropperCore.d.ts +7 -7
- package/dist/useDraggableLayout.d.ts +4 -4
- package/dist/useDynamicFormState.d.ts +29 -3724
- package/dist/useEdgeInteraction.d.ts +1 -1
- package/dist/useFullscreen.d.ts +2 -2
- package/dist/useInfiniteScroll.d.ts +1 -1
- package/dist/useModalEdit.d.ts +5 -5
- package/dist/useQRCode.d.ts +4 -4
- package/dist/useSignatureHistory.d.ts +1 -1
- package/dist/useSplitResize.d.ts +7 -7
- package/dist/useTimeSelection.d.ts +3 -3
- package/dist/useTreeOperations.d.ts +7 -7
- package/dist/useWorkflowValidation.d.ts +2 -2
- package/package.json +9 -1
- package/dist/C_Cascade-BE7t1OX5.css.map +0 -1
- package/dist/C_Cascade-CpDiau1y.css.map +0 -1
- package/dist/C_Steps-Buyg7Axn.css.map +0 -1
- package/dist/C_Steps-DNY91VbQ.css.map +0 -1
package/dist/C_Table2.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{t as n}from"./C_Form2.js";import{NButton as r,NDatePicker as i,NDropdown as a,NInput as o,NInputNumber as s,NSelect as c,NSpace as l,NSwitch as u,useDialog as d,useMessage as f}from"naive-ui";import{Fragment as p,computed as m,createBlock as h,createCommentVNode as g,createElementBlock as _,createElementVNode as v,createSlots as y,createTextVNode as b,createVNode as x,defineComponent as S,h as C,inject as w,isRef as T,mergeProps as E,nextTick as D,normalizeClass as O,normalizeStyle as ee,onBeforeUnmount as k,onMounted as te,openBlock as A,ref as j,renderList as ne,renderSlot as re,resolveDynamicComponent as ie,toDisplayString as M,unref as N,watch as P,watchEffect as F,withCtx as I}from"vue";import L from"html2canvas";import{NButton as R,NButtonGroup as z,NCheckbox as ae,NDataTable as oe,NDrawer as se,NDrawerContent as ce,NDropdown as le,NInput as B,NModal as ue,NPagination as de,NSpace as V,NSpin as H,NSwitch as fe,NTag as pe,NText as U,NTooltip as W,useMessage as me}from"naive-ui/es";import he from"print-js";const ge={editable:!1,editMode:`none`,showRowActions:!1,modalTitle:`编辑数据`,modalWidth:600},G=e=>e===!1||e===void 0?ge:e===!0?{editable:!0,editMode:`modal`,showRowActions:!0,modalTitle:`编辑数据`,modalWidth:600}:{editable:e.enabled!==!1&&e.mode!==`none`,editMode:e.mode||`modal`,showRowActions:e.showRowActions!==!1&&e.mode!==`none`,modalTitle:e.modalTitle||`编辑数据`,modalWidth:e.modalWidth||600},_e=e=>e?e===!0?{expandable:!0,defaultExpandedKeys:void 0,onLoadExpandData:void 0,renderExpandContent:void 0,rowExpandable:void 0}:{expandable:e.enabled!==!1,defaultExpandedKeys:e.defaultExpandedKeys,onLoadExpandData:e.onLoadData,renderExpandContent:e.renderContent,rowExpandable:e.rowExpandable}:{expandable:!1,defaultExpandedKeys:void 0,onLoadExpandData:void 0,renderExpandContent:void 0,rowExpandable:void 0},ve=e=>{if(!e)return{enableSelection:!1,defaultCheckedKeys:void 0,rowCheckable:void 0,maxSelection:void 0,enableChildSelection:!1,childRowCheckable:void 0,enableParentChildLink:!1,parentChildLinkMode:`loose`};if(e===!0)return{enableSelection:!0,defaultCheckedKeys:void 0,rowCheckable:void 0,maxSelection:void 0,enableChildSelection:!1,childRowCheckable:void 0,enableParentChildLink:!1,parentChildLinkMode:`loose`};let t=e.childSelection||{},n=e.parentChildLink||{};return{enableSelection:e.enabled!==!1,defaultCheckedKeys:e.defaultCheckedKeys,rowCheckable:e.rowCheckable,maxSelection:e.maxSelection,enableChildSelection:t.enabled||!1,childRowCheckable:t.childRowCheckable,enableParentChildLink:n.enabled||!1,parentChildLinkMode:n.mode||`loose`}},ye=e=>{let t={enabled:!0,page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};return e===!1?{pagination:null}:e===!0||e===void 0?{pagination:t}:{pagination:{...t,...e}}},be=e=>e?e===!0?{dynamicRows:{enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0}}:{dynamicRows:e}:{dynamicRows:void 0},K={striped:!0,bordered:!0,singleLine:!0,size:`medium`,maxHeight:void 0,scrollX:void 0,columnWidth:180};function xe(e){return e?{striped:e.striped??K.striped,bordered:e.bordered??K.bordered,singleLine:e.singleLine??K.singleLine,size:e.size??K.size,maxHeight:e.maxHeight,scrollX:e.scrollX,columnWidth:e.columnWidth??K.columnWidth}:{...K}}const q=e=>({showToolbar:e?.show!==!1,enableColumnSettings:e?.columnSettings!==!1}),J=e=>e?e===!0?{virtualScroll:!0,virtualItemHeight:34,virtualMaxHeight:600}:{virtualScroll:e.enabled!==!1,virtualItemHeight:e.itemHeight??34,virtualMaxHeight:e.maxHeight??600}:{virtualScroll:!1,virtualItemHeight:34,virtualMaxHeight:600},Se=e=>e?{summaryPosition:e.position??`bottom`,summaryRender:e.render}:{summaryPosition:void 0,summaryRender:void 0},Ce=e=>e?e===!0?{enableColumnDrag:!0,columnDragHandleClass:`drag-handle`,columnDragAnimationDuration:150}:{enableColumnDrag:e.enabled!==!1,columnDragHandleClass:e.handleClass??`drag-handle`,columnDragAnimationDuration:e.animationDuration??150}:{enableColumnDrag:!1,columnDragHandleClass:`drag-handle`,columnDragAnimationDuration:150},we=e=>e?e===!0?{treeEnabled:!0,treeChildrenKey:`children`,treeIndent:16,treeDefaultExpandAll:!1}:{treeEnabled:e.enabled!==!1,treeChildrenKey:e.childrenKey??`children`,treeIndent:e.indent??16,treeDefaultExpandAll:e.defaultExpandAll??!1}:{treeEnabled:!1,treeChildrenKey:`children`,treeIndent:16,treeDefaultExpandAll:!1},Y=e=>e?e===!0?{rowDrag:{enabled:!0}}:{rowDrag:e.enabled===!1?void 0:e}:{rowDrag:void 0},Te=e=>e?e===!0?{crossPageSelection:{enabled:!0}}:{crossPageSelection:e.enabled===!1?void 0:e}:{crossPageSelection:void 0};function Ee(e={}){return{...G(e.edit),..._e(e.expand),...ve(e.selection),...ye(e.pagination),...be(e.dynamicRows),...xe(e.display),...q(e.toolbar),...J(e.virtualScroll),...Se(e.summary),...Ce(e.columnDrag),...we(e.tree),...Y(e.rowDrag),...Te(e.crossPageSelection),exportConfig:e.export,persistKey:e.persistKey,formatterConfig:e.formatterConfig,error:e.error,batchActions:e.batchActions}}const De=e=>({isNonEditable:t=>!e.editable||t.editable===!1||e.editMode===`none`,isRowEditMode:()=>[`row`,`both`].includes(e.editMode),isCellEditMode:()=>[`cell`,`both`].includes(e.editMode)});async function Oe(e,t,n){let r=typeof e.message==`function`?e.message():e.message;if(e.required&&(t==null||t===``))return r||`${n}不能为空`;if(e.validator)try{await e.validator(e,t,()=>{},{},{})}catch(e){return e?.message||`${n}校验失败`}return null}function ke(e){let t=j(null),n=j({}),r=j([]),i=e=>t.value===e,a=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},o=e=>{let r=a(e);r&&(t.value=e,n.value[e]={...r})},s=async()=>{if(!t.value)return;let r=e.data();if(!r||!Array.isArray(r))return;let i=r.findIndex(n=>e.rowKey(n)===t.value);i>-1&&await e.onCancel?.(r[i],i),t.value=null,n.value={}},c=async()=>{if(r.value=[],!t.value)return!0;let i=e.columns?.()||[],a=n.value[t.value];if(!a)return!0;let o=i.filter(e=>e.editable!==!1&&e.editProps?.rules?.length).map(e=>{let t=e.key;if(!t)return null;let n=e.title||t,r=a[t];return Promise.all(e.editProps.rules.map(e=>Oe(e,r,n))).then(e=>{let n=e.find(Boolean);return n?{field:t,message:n}:null})}).filter(Boolean),s=(await Promise.all(o)).filter(Boolean);return r.value=s,s.length===0};return{editingRowKey:t,isEditingRow:i,startEditRow:o,cancelEditRow:s,saveEditRow:async()=>{if(!t.value||!await c())return;let r=t.value,i=e.data();if(!i||!Array.isArray(i))return;let a=i.findIndex(t=>e.rowKey(t)===r);if(a===-1)return;let o=n.value[r];if(o)return await e.onSave?.(o,a),t.value=null,n.value={},{updatedData:o,rowIndex:a}},validateRow:c,validationErrors:r,getEditingRowData:e=>n.value[e],updateEditingRowData:(e,t,r)=>{n.value[e]&&(n.value[e][t]=r)},findRowData:a}}async function Ae(e,t,n){let r=typeof e.message==`function`?e.message():e.message;if(e.required&&(t==null||t===``))return r||`${n}不能为空`;if(e.validator)try{await e.validator(e,t,()=>{},{},{})}catch(e){return e?.message||`${n}校验失败`}return null}function X(e){let t=j({rowKey:null,columnKey:null}),n=j({}),r=j(null),i=(e,n)=>t.value.rowKey===e&&t.value.columnKey===n,a=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},o=(e,r)=>{let i=a(e);i&&(t.value={rowKey:e,columnKey:r},n.value[`${e}-${r}`]=i[r])},s=async()=>{r.value=null;let{rowKey:i,columnKey:a}=t.value;if(!i||!a)return!0;let o=(e.columns?.()||[]).find(e=>e.key===a);if(!o||!o.editProps?.rules)return!0;let s=`${i}-${a}`,c=n.value[s],l=o.title||a,u=(await Promise.all(o.editProps.rules.map(e=>Ae(e,c,l)))).find(Boolean);return u?(r.value=u,!1):!0};return{editingCell:t,isEditingCell:i,startEditCell:o,saveEditCell:async()=>{let{rowKey:r,columnKey:i}=t.value;if(!r||!i||!await s())return;let a=e.data();if(!a||!Array.isArray(a))return;let o=a.findIndex(t=>e.rowKey(t)===r);if(o===-1)return;let c=`${r}-${i}`,l=n.value[c],u={...a[o],[i]:l};return await e.onSave?.(u,o,i),t.value={rowKey:null,columnKey:null},delete n.value[c],{updatedData:u,rowIndex:o,columnKey:i}},cancelEditCell:()=>{let{rowKey:e,columnKey:r}=t.value;e&&r&&delete n.value[`${e}-${r}`],t.value={rowKey:null,columnKey:null}},validateCell:s,cellValidationError:r,getEditingCellValue:(e,t)=>n.value[`${e}-${t}`],updateEditingCellValue:(e,t,r)=>{n.value[`${e}-${t}`]=r},findRowData:a}}function Z(e){let t=j(!1),n=j(null),r=j({}),i=m(()=>{if(!n.value)return-1;let t=e.data();return!t||!Array.isArray(t)?-1:t.findIndex(t=>e.rowKey(t)===n.value)}),a=()=>{n.value=null,r.value={}};return{isModalVisible:t,editingData:r,editingRowKey:n,editingRowIndex:i,startEdit:i=>{console.log(`🚀 开始编辑:`,i);let a=e.data();if(!a||!Array.isArray(a)){console.warn(`数据源为空或不是数组`);return}let o=a.findIndex(t=>e.rowKey(t)===i);if(o===-1){console.warn(`未找到对应的行数据:`,i);return}let s=a[o];console.log(`找到行数据:`,s),n.value=i,r.value=JSON.parse(JSON.stringify(s)),console.log(`编辑数据已准备:`,r.value),t.value=!0},saveEdit:async o=>{let s=o||r.value,c=i.value;if(console.log(`💾 保存编辑:`,{rowKey:n.value,index:c,data:s}),c===-1){console.warn(`无法找到编辑行的索引`);return}try{await e.onSave?.(s,c),t.value=!1,a(),console.log(`✅ 保存成功`)}catch(e){throw console.error(`❌ 保存失败:`,e),e}},cancelEdit:async()=>{console.log(`🚫 取消编辑`);try{let t=i.value;if(n.value&&t>-1){let n=e.data();n&&n[t]&&await e.onCancel?.(n[t],t)}}finally{t.value=!1,a()}},updateEditingData:e=>{r.value={...e}},resetEditingState:a,isEditingRow:e=>n.value===e&&t.value,getEditingRowData:e=>n.value===e?r.value:null}}const je=e=>({expandedKeys:j([...e.defaultExpandedKeys||[]]),expandDataMap:j(new Map),loadingMap:j(new Map),checkedKeys:e.enableSelection?j([...e.defaultCheckedKeys||[]]):j([]),childSelections:(e.enableChildSelection,j(new Map))}),Me=e=>{let t=m(()=>N(e.data)),n=e.rowKey;return{data:t,getRowKey:n,getChildRowKey:e.childRowKey||(e=>e.id),findRow:e=>t.value.find(t=>n(t)===e),isRowExpandable:e.rowExpandable||(()=>!0),isRowCheckable:e.rowCheckable||(()=>!0),isChildRowCheckable:e.childRowCheckable||(()=>!0)}},Ne=(e,t,n)=>{let r=async r=>{if(!n.onLoadData)return[];let i=t.getRowKey(r),a=e.expandDataMap.value.get(i);if(a)return a;e.loadingMap.value.set(i,!0);try{let t=await n.onLoadData(r)||[];return e.expandDataMap.value.set(i,t),n.enableChildSelection&&!e.childSelections.value.has(i)&&e.childSelections.value.set(i,[]),t}catch(e){return console.error(`加载展开数据失败:`,e),[]}finally{e.loadingMap.value.set(i,!1)}};return{loadData:r,handleRowExpand:async(i,a)=>{let o=t.getRowKey(i);a?(await r(i),e.expandedKeys.value.includes(o)||(e.expandedKeys.value=[...e.expandedKeys.value,o])):e.expandedKeys.value=e.expandedKeys.value.filter(e=>e!==o),n.onExpandChange?.(e.expandedKeys.value)},expandAll:async()=>{let i=t.data.value.filter(t.isRowExpandable);await Promise.allSettled(i.map(r)),e.expandedKeys.value=i.map(t.getRowKey),n.onExpandChange?.(e.expandedKeys.value)},collapseAll:()=>{e.expandedKeys.value=[],e.childSelections.value.clear(),n.onExpandChange?.(e.expandedKeys.value)},handleExpandChange:async i=>{let a=i.filter(t=>!e.expandedKeys.value.includes(t)),o=e.expandedKeys.value.filter(e=>!i.includes(e));await Promise.all(a.map(async e=>{let n=t.findRow(e);n&&await r(n)}));for(let t of o)e.childSelections.value.delete(t);e.expandedKeys.value=i,n.onExpandChange?.(i)}}},Pe=(e,t,n)=>{let r=m(()=>t.data.value.filter(t.isRowCheckable));return{selectAll:()=>{if(!n.enableSelection)return;let i=r.value.map(t.getRowKey),a=n.maxSelection?i.slice(0,n.maxSelection):i;e.checkedKeys.value=a;let o=r.value.filter(e=>a.includes(t.getRowKey(e)));n.onSelectionChange?.(a,o,e.childSelections.value)},clearSelection:()=>{n.enableSelection&&(e.checkedKeys.value=[],n.onSelectionChange?.([],[],e.childSelections.value))},handleSelectionChange:r=>{if(!n.enableSelection)return;e.checkedKeys.value=r;let i=t.data.value.filter(e=>r.includes(t.getRowKey(e)));n.onSelectionChange?.(r,i,e.childSelections.value)},selectedRowsCount:m(()=>e.checkedKeys.value.length),selectableRows:r}},Fe=(e,t)=>{let n=!!(t.enableParentChildLink&&t.enableSelection&&t.enableChildSelection);return{handleParentChildLink:(r,i,a)=>{if(!n)return;let o=t.parentChildLinkMode===`strict`?i.length===a&&a>0:i.length>0,s=[...e.checkedKeys.value],c=s.includes(r);o&&!c?e.checkedKeys.value=[...s,r]:!o&&c&&(e.checkedKeys.value=s.filter(e=>e!==r))},isLinkEnabled:n}},Ie=(e,t,n,r)=>({totalChildSelections:m(()=>r.enableChildSelection?Array.from(e.childSelections.value.values()).reduce((e,t)=>e+t.length,0):0),clearAllSelections:()=>{e.checkedKeys.value=[],e.childSelections.value.clear(),r.onSelectionChange?.([],[],e.childSelections.value)},handleChildSelectionChange:(i,a)=>{if(!r.enableChildSelection)return;e.childSelections.value.set(i,a);let o=e.expandDataMap.value.get(i)||[],s=o.filter(e=>a.includes(t.getChildRowKey(e)));r.onChildSelectionChange?.(i,a,s),n.isLinkEnabled&&n.handleParentChildLink(i,a,o.length)}}),Le=(e,t,n,r,i)=>{if(!i.enableChildSelection)return;let a=t.childSelections.value.get(e)||[],o=t.expandDataMap.value.get(e)||[],s=n.findRow(e);if(!s)return;let c=o.filter(e=>n.isChildRowCheckable(e,s));return{selectedKeys:a,isAllChecked:c.length>0&&c.every(e=>a.includes(n.getChildRowKey(e))),selectAll:()=>{let t=c.map(e=>n.getChildRowKey(e));r.handleChildSelectionChange(e,t)},clearAll:()=>{r.handleChildSelectionChange(e,[])}}},Re=()=>C(`div`,{class:`flex justify-center items-center py-8`},[C(H,{size:`small`}),C(`span`,{class:`ml-2 text-gray-500`},`加载中...`)]),ze=()=>C(`div`,{class:`text-center py-8 text-gray-400`},`暂无数据`),Be=e=>{if(!e.length)return[];let t=e[0];return!t||typeof t!=`object`?[]:[{title:`序号`,key:`_index`,width:60,render:(e,t)=>t+1},...Object.keys(t).filter(e=>![`id`,`key`].includes(e)).map(e=>({key:e,title:e.charAt(0).toUpperCase()+e.slice(1),width:120,ellipsis:{tooltip:!0}}))]},Ve=(e,t,n,r,i,a)=>{let o=[];return a.enableChildSelection&&o.push({type:`selection`,multiple:!0}),o.push(...Be(t)),C(`div`,{class:`p-4 bg-gray-50`},[C(`div`,{class:`mb-2 text-sm text-gray-600`},`详细信息 (${t.length} 条)`),C(oe,{data:t,columns:o,size:`small`,striped:!0,checkedRowKeys:n?.selectedKeys||[],rowKey:e=>r.getChildRowKey(e),onUpdateCheckedRowKeys:a.enableChildSelection?t=>{i.handleChildSelectionChange(e,t)}:void 0})])},He=(e,t,n,r,i)=>{let a=a=>{let o=t.getRowKey(a),s=e.expandDataMap.value.get(o)||[],c=e.loadingMap.value.get(o)||!1;!s.length&&!c&&e.expandedKeys.value.includes(o)&&D(()=>{r.loadData(a)});let l=Le(o,e,t,n,i);return i.renderContent?i.renderContent(a,s,c,l):c?Re():s.length?Ve(o,s,l,t,n,i):ze()};return{getTableColumns:e=>e.map(e=>e.type===`selection`&&i.enableSelection?{type:`selection`,disabled:e=>!t.isRowCheckable(e),multiple:!i.maxSelection||i.maxSelection>1}:e.type===`expand`&&(i.onLoadData||i.renderContent)?{type:`expand`,expandable:t.isRowExpandable,renderExpand:a}:e)}};function Ue(e){let t=je(e),n=Me(e),r=Ne(t,n,e),i=Pe(t,n,e),a=Ie(t,n,Fe(t,e),e),o=He(t,n,a,r,e);return e.onSelectionChange&&e.enableSelection&&F(()=>{if(!e.onSelectionChange)return;let r=n.data.value.filter(e=>t.checkedKeys.value.includes(n.getRowKey(e))),i=t.checkedKeys.value.length>0,a=n.data.value.length>0;(i||!a)&&e.onSelectionChange(t.checkedKeys.value,r,t.childSelections.value)}),e.defaultExpandedKeys?.length&&D(async()=>{let i=e.defaultExpandedKeys||[];if(i.length===0)return;let a=i.map(async e=>{let i=n.findRow(e);i&&!t.expandDataMap.value.has(e)&&await r.loadData(i)});await Promise.allSettled(a)}),{expandedKeys:t.expandedKeys,checkedKeys:t.checkedKeys,childSelections:t.childSelections,selectedRowsCount:i.selectedRowsCount,totalChildSelections:a.totalChildSelections,expandAll:r.expandAll,collapseAll:r.collapseAll,expandRow:async i=>{if(t.expandedKeys.value.includes(i))return;let a=n.findRow(i);a&&(await r.loadData(a),t.expandedKeys.value=[...t.expandedKeys.value,i],e.onExpandChange?.(t.expandedKeys.value,a,!0))},handleExpandChange:r.handleExpandChange,selectAll:i.selectAll,clearSelection:i.clearSelection,clearAllSelections:a.clearAllSelections,handleSelectionChange:i.handleSelectionChange,getTableColumns:o.getTableColumns,expandDataMap:t.expandDataMap,loadingMap:t.loadingMap}}const We={text:`Robot Admin`,textSize:16,textColor:`rgba(128, 128, 128, 0.3)`,font:`Microsoft JhengHei`,opacity:.3,rotate:-20,position:`repeat`,xGap:200,yGap:120},Ge={scale:1,quality:.92,format:`png`,backgroundColor:`#ffffff`,logging:!1,allowTaint:!0,useCORS:!0},Ke={orientation:`portrait`,paperSize:`A4`,margin:`10mm 10mm 0 10mm`,style:`@page { margin: 10mm 10mm 0 10mm; } @media print { body { margin: 0; } }`,header:``,footer:``,showModal:!1,modalMessage:`正在准备打印...`,onLoadingStart:()=>{},onLoadingEnd:()=>{},onPrintDialogClose:()=>{}};function qe(e,t,n,r){e.save(),e.translate(t/2,n/2),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()}function Je(e,t,n,r){[[50,50],[t-50,50],[50,n-50],[t-50,n-50]].forEach(([t,n])=>{e.save(),e.translate(t,n),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()})}function Ye(e,t,n,r){let i=Math.sqrt(t*t+n*n),a=t/2,o=n/2;e.save(),e.translate(a,o),e.rotate(Math.atan2(n,t));let s=Math.floor(i/r.xGap),c=-i/2;for(let t=0;t<=s;t++){let n=c+t*r.xGap;e.fillText(r.text,n,0)}e.restore()}function Xe(e,t,n,r){let i=Math.ceil(t/r.xGap)+1,a=Math.ceil(n/r.yGap)+1;for(let t=0;t<a;t++)for(let n=0;n<i;n++){let i=n*r.xGap+r.xGap/2,a=t*r.yGap+r.yGap/2;e.save(),e.translate(i,a),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()}}function Ze(e,t){let n=e.getContext(`2d`);if(!n)return e;let r={...We,...t},{width:i,height:a}=e;n.save(),n.globalAlpha=r.opacity,n.font=`${r.textSize}px ${r.font}`,n.fillStyle=r.textColor,n.textAlign=`center`,n.textBaseline=`middle`;let o={center:qe,corner:Je,diagonal:Ye,repeat:Xe};return(o[r.position]||o.repeat)(n,i,a,r),n.restore(),e}async function Qe(e,t={}){let n={...Ge,...t};return await L(e,{logging:n.logging,scale:n.scale,allowTaint:n.allowTaint,useCORS:n.useCORS,backgroundColor:n.backgroundColor,onclone:e=>{let t=e.body;t.style.transform=`scale(1)`}})}function Q(e,t=`png`,n=.92){let r=`image/${t}`;return t===`png`?e.toDataURL(r):e.toDataURL(r,n)}function $e(e,t=`screenshot-${new Date().toISOString().slice(0,10)}.png`,n=`png`){let r=Q(e,n),i=document.createElement(`a`);i.download=t,i.href=r,document.body.appendChild(i),i.click(),document.body.removeChild(i)}let et=null;function tt(){et=setInterval(()=>{window.dispatchEvent(new Event(`focus`))},500)}function nt(){et&&=(clearInterval(et),null)}function rt(e,t={}){let n={...Ke,...t};return new Promise((t,r)=>{try{tt(),n.onLoadingStart?.(),he({printable:e,type:`image`,style:n.style,showModal:n.showModal,modalMessage:n.modalMessage,onLoadingEnd:n.onLoadingEnd,onPrintDialogClose:()=>{nt(),n.onPrintDialogClose?.(),t()}})}catch(e){nt(),r(e)}})}function it(e,t,n){let r=0,i=0;e.forEach(e=>{let{width:n,height:a}=e;t===`horizontal`?(r+=n,i=Math.max(i,a)):(r=Math.max(r,n),i+=a)});let a=(e.length-1)*n;return t===`horizontal`?r+=a:i+=a,{totalWidth:r,totalHeight:i}}function at(e,t){let{orientation:n,spacing:r,backgroundColor:i,totalWidth:a,totalHeight:o}=t,s=document.createElement(`canvas`);s.width=a,s.height=o;let c=s.getContext(`2d`);if(!c)throw Error(`无法创建画布上下文`);c.fillStyle=i,c.fillRect(0,0,a,o);let l=0,u=0;return e.forEach(e=>{c.drawImage(e,l,u),n===`horizontal`?l+=e.width+r:u+=e.height+r}),s}function ot(e,t,n){return e.length?{orientation:t.orientation||`vertical`,spacing:t.spacing||20,backgroundColor:t.backgroundColor||`#ffffff`}:(n.warning(`没有要打印的元素`),null)}async function st(e,t,n,r){let{orientation:i,spacing:a,backgroundColor:o}=n;r(10);let s=await Promise.all(e.map(e=>Qe(e,t.capture)));r(50);let{totalWidth:c,totalHeight:l}=it(s,i,a);return r(60),at(s,{orientation:i,spacing:a,backgroundColor:o,totalWidth:c,totalHeight:l})}async function ct(e,t,n,r,i){r(70),t.watermark&&Ze(e,t.watermark),r(90),await rt(Q(e,t.capture?.format,t.capture?.quality),t.print),r(100),i.success(`合并打印完成,共合并 ${n} 个元素`)}function lt(){let e;try{e=f()}catch{e={success:e=>console.log(`[PrintWatermark]`,e),error:e=>console.error(`[PrintWatermark]`,e),warning:e=>console.warn(`[PrintWatermark]`,e)}}let t=j(!1),n=j(0),r=e=>{n.value=Math.max(0,Math.min(100,e))},i=async(e,t={})=>{try{r(0),r(30);let n=await Qe(e,t.capture);r(60),t.watermark&&Ze(n,t.watermark),r(90);let i=Q(n,t.capture?.format||`png`,t.capture?.quality||.92);return r(100),i}catch(e){throw console.error(`截图失败:`,e),Error(`截图失败: ${e instanceof Error?e.message:`未知错误`}`)}},a=async(n,a={})=>{t.value=!0,r(0);try{await D();let t=await i(n,a);r(95),await rt(t,a.print),r(100),e.success(`打印完成`)}catch(t){throw console.error(`打印失败:`,t),e.error(`打印失败: ${t instanceof Error?t.message:`未知错误`}`),t}finally{t.value=!1,r(0)}},o=async(n,r,i={})=>{t.value=!0;try{await D();let t=await Qe(n,i.capture);i.watermark&&Ze(t,i.watermark);let a=i.capture?.format||`png`,o=`screenshot-${new Date().toISOString().slice(0,19).replace(/:/g,`-`)}.${a}`;$e(t,r||o,a),e.success(`下载完成`)}catch(t){throw console.error(`下载失败:`,t),e.error(`下载失败`),t}finally{t.value=!1}},s=async(e,t=`Robot Admin`)=>a(e,{watermark:{text:t,position:`repeat`,textColor:`rgba(128, 128, 128, 0.3)`}}),c=async(e,t={})=>{let n=e.length;r(10);let a=e.map(async(e,a)=>{let o=await i(e,t);return r(10+(a+1)/n*70),o});return Promise.all(a)},l=async(e,t={})=>{await e.reduce(async(n,r,i)=>{await n,await rt(r,t),i<e.length-1&&await new Promise(e=>{setTimeout(()=>e(),1e3)})},Promise.resolve())};return{loading:t,progress:n,captureWithWatermark:i,printWithWatermark:a,downloadScreenshot:o,quickPrint:s,batchCapture:c,batchPrint:async(n,i={})=>{if(!n.length){e.warning(`没有要打印的元素`);return}t.value=!0;try{r(0);let t=await c(n,i);r(80),await l(t,i.print),r(100),e.success(`批量打印完成,共 ${n.length} 个元素`)}catch(t){throw console.error(`批量打印失败:`,t),e.error(`批量打印失败`),t}finally{t.value=!1,r(0)}},mergePrint:async(n,i={},a={})=>{let o=ot(n,a,e);if(o){t.value=!0;try{await ct(await st(n,i,o,r),i,n.length,r,e)}catch(t){throw console.error(`合并打印失败:`,t),e.error(`合并打印失败`),t}finally{t.value=!1,r(0)}}},createPreset:(e,t)=>({use:e=>a(e,t),download:(e,n)=>o(e,n,t)}),updateProgress:r,utils:{captureElement:Qe,drawWatermark:Ze,canvasToDataURL:Q,downloadCanvas:$e,printImage:rt}}}const ut={table:{watermark:{text:`Robot Admin - 数据表格`,position:`repeat`,textColor:`rgba(100, 100, 100, 0.25)`,textSize:14,xGap:250,yGap:120},capture:{scale:1.2},print:{orientation:`landscape`,style:`@page { margin: 8mm; } body { font-family: Arial, sans-serif; }`}},form:{watermark:{text:`Robot Admin - 表单数据`,position:`diagonal`,textColor:`rgba(150, 150, 150, 0.2)`,textSize:16},print:{orientation:`portrait`}},report:{watermark:{text:`Robot Admin - 机密报告`,position:`center`,textColor:`rgba(200, 50, 50, 0.15)`,textSize:24},capture:{quality:.95,format:`png`}}};function dt(){return`row_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function ft(e,t){return typeof t==`function`?t(e):e[t]}function pt(e,t){let n=e?.()||{},r=typeof t==`string`?t:`id`;return{...n,[r]:dt()}}function mt(t,n={}){let r=me(),i={rowKey:`id`,enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0,confirmDelete:!0,deleteConfirmText:`确定要删除选中的行吗?此操作不可撤销。`,printPreset:`table`,printTargetSelector:`.c-table-wrapper`,defaultRowData:()=>({}),...n},a=j(null),o=j(!1),s=m(()=>a.value===null?null:t.value.find(e=>ft(e,i.rowKey)===a.value)||null),c=m(()=>s.value?t.value.findIndex(e=>e===s.value):-1),l=m(()=>c.value>0),u=m(()=>c.value>=0&&c.value<t.value.length-1),{loading:d,progress:f,printWithWatermark:p,downloadScreenshot:h,quickPrint:g}=lt(),_=()=>{if(i.printOptions)return i.printOptions;let e=ut[i.printPreset||`table`];return i.printWatermarkText&&e.watermark?{...e,watermark:{...e.watermark,text:i.printWatermarkText}}:e},v=e=>{t.value=e,i.onRowChange?.(e)},y=()=>{if(!i.enableAdd)return;let e=pt(i.defaultRowData,i.rowKey);v([...t.value,e]),i.onRowAdd?.(e),r.success(`添加行成功`)},b=()=>{if(!i.enableInsert||!s.value){r.warning(`请先选择一行数据`);return}let e=pt(i.defaultRowData,i.rowKey),n=[...t.value];n.splice(c.value+1,0,e),v(n),i.onRowAdd?.(e),r.success(`插入行成功`)},x=()=>{if(!i.enableDelete||!s.value){r.warning(`请先选择要删除的行`);return}i.confirmDelete?o.value=!0:S()},S=()=>{if(!s.value)return;let e=s.value,n=c.value;v(t.value.filter((e,t)=>t!==n)),a.value=null,i.onSelectionChange?.(null,null),i.onRowDelete?.(e,n),r.success(`删除行成功`),o.value=!1},w=()=>{if(!i.enableCopy||!s.value){r.warning(`请先选择要复制的行`);return}let e=s.value,n=typeof i.rowKey==`string`?i.rowKey:`id`,{[n]:a,...o}=e,c={...o,[n]:dt()};v([...t.value,c]),i.onRowCopy?.(e,c),r.success(`复制行成功`)},T=()=>{if(!i.enableMove||!l.value)return;let e=c.value,n=[...t.value],a=n[e];[n[e],n[e-1]]=[n[e-1],n[e]],v(n),i.onRowMove?.(a,e,e-1),r.success(`行已上移`)},E=()=>{if(!i.enableMove||!u.value)return;let e=c.value,n=[...t.value],a=n[e];[n[e],n[e+1]]=[n[e+1],n[e]],v(n),i.onRowMove?.(a,e,e+1),r.success(`行已下移`)},D=e=>{let n=t.value.find(t=>ft(t,i.rowKey)===e);n&&(a.value=e,i.onSelectionChange?.(e,n))},O=()=>{a.value=null,i.onSelectionChange?.(null,null)},ee=async e=>{if(!e.value){r.error(`打印元素未找到`);return}let t=_();await p(e.value,t)};return k(()=>{a.value=null,o.value=!1}),{selectedRowKey:a,selectedRowData:s,selectedRowIndex:c,canMoveUp:l,canMoveDown:u,deleteConfirmVisible:o,printLoading:d,printProgress:f,addRow:y,insertRow:b,deleteRow:x,confirmDelete:S,copyRow:w,moveRowUp:T,moveRowDown:E,selectRow:D,clearSelection:O,handlePrint:ee,handleDownload:async(e,t)=>{if(!e.value){r.error(`下载元素未找到`);return}let n=_();await h(e.value,t,n)},handleQuickPrint:async e=>{if(!e.value){r.error(`打印元素未找到`);return}let t=i.printWatermarkText||`Robot Admin`;await g(e.value,t)},enhanceColumns:e=>{let t=[...e];return i.enableRadioSelection&&t.unshift({key:`_radio_selection`,title:`选择`,width:80,align:`center`,editable:!1,render:e=>{let t=ft(e,i.rowKey);return C(`div`,{class:`flex justify-center`},[C(`input`,{type:`radio`,name:`table-radio-selection`,checked:a.value===t,class:`cursor-pointer accent-blue-500 scale-110`,onChange:e=>{e.target.checked&&D(t)}})])}}),t},renderToolbar:()=>{let t=[];i.enablePrint&&t.push(C(R,{loading:d.value,type:`primary`,ghost:!0,onClick:async()=>{try{let e=document.querySelector(i.printTargetSelector);e?await ee(j(e)):console.warn(`未找到表格容器元素`)}catch(e){console.error(`打印失败:`,e)}}},{icon:()=>C(e,{name:`mdi:printer`,title:`打印`}),default:()=>`打印`}));let n=[];return i.enableAdd&&n.push(C(R,{onClick:y,type:`primary`},{icon:()=>C(e,{name:`mdi:plus`,title:`增行`}),default:()=>`增行`})),i.enableInsert&&n.push(C(W,{disabled:!!s.value},{trigger:()=>C(R,{onClick:b,disabled:!s.value,type:`primary`,ghost:!0},{icon:()=>C(e,{name:`mdi:table-row-plus-after`,title:`插行`}),default:()=>`插行`}),default:()=>`请先选择一行数据`})),i.enableDelete&&n.push(C(W,{disabled:!!s.value},{trigger:()=>C(R,{onClick:x,disabled:!s.value,type:`error`,ghost:!0},{icon:()=>C(e,{name:`mdi:delete`,title:`删除行`}),default:()=>`删除行`}),default:()=>`请先选择要删除的行`})),i.enableCopy&&n.push(C(W,{disabled:!!s.value},{trigger:()=>C(R,{onClick:w,disabled:!s.value,type:`info`,ghost:!0},{icon:()=>C(e,{name:`mdi:content-copy`,title:`复制行`}),default:()=>`复制行`}),default:()=>`请先选择要复制的行`})),i.enableMove&&n.push(C(W,{disabled:l.value},{trigger:()=>C(R,{onClick:T,disabled:!l.value,type:`warning`,ghost:!0},{icon:()=>C(e,{name:`mdi:arrow-up`,title:`上移`}),default:()=>`上移`}),default:()=>s.value?`已经是第一行`:`请先选择数据`}),C(W,{disabled:u.value},{trigger:()=>C(R,{onClick:E,disabled:!u.value,type:`warning`,ghost:!0},{icon:()=>C(e,{name:`mdi:arrow-down`,title:`下移`}),default:()=>`下移`}),default:()=>s.value?`已经是最后一行`:`请先选择数据`})),n.length>0&&t.push(C(z,{},()=>n)),C(`div`,{class:`dynamic-rows-toolbar mb-4 flex justify-end`},[C(V,{},()=>t)])},renderConfirmModal:()=>C(ue,{show:o.value,"onUpdate:show":e=>{o.value=e},preset:`dialog`,title:`确认删除`,content:i.deleteConfirmText,positiveText:`确认删除`,negativeText:`取消`,onPositiveClick:S})}}function ht(e){let{config:t,data:n,rowKey:r,emit:i}=e,a={onSave:async(e,t,r)=>{if(!e||t<0||t>=n().length)return;let a=[...n()];a[t]={...a[t],...e},i(`update:data`,a),await D(),i(`save`,a[t],t,r)},onCancel:(e,t)=>{i(`cancel`,e,t)},onExpandChange:(e,t,n)=>{i(`expand-change`,e,t,n)},onSelectionChange:(e,t,n)=>{i(`selection-change`,e,t,n)},onChildSelectionChange:(e,t,n)=>{i(`child-selection-change`,e,t,n)},onRowChange:e=>{i(`update:data`,e),t.dynamicRows?.onRowChange?.(e)},onRowSelectionChange:(e,n)=>{i(`row-selection-change`,e,n),t.dynamicRows?.onSelectionChange?.(e,n)},onRowAdd:e=>{i(`row-add`,e),t.dynamicRows?.onRowAdd?.(e)},onRowDelete:(e,n)=>{i(`row-delete`,e,n),t.dynamicRows?.onRowDelete?.(e,n)},onRowCopy:(e,n)=>{i(`row-copy`,e,n),t.dynamicRows?.onRowCopy?.(e,n)},onRowMove:(e,n,r)=>{i(`row-move`,e,n,r),t.dynamicRows?.onRowMove?.(e,n,r)}},o=()=>({rowEdit:ke({data:n,rowKey:r,onSave:a.onSave,onCancel:a.onCancel,columns:e.columns}),cellEdit:X({data:n,rowKey:r,onSave:a.onSave,columns:e.columns}),modalEdit:Z({data:n,rowKey:r,onSave:a.onSave,onCancel:a.onCancel})}),s=()=>t.expandable||t.enableSelection||t.enableChildSelection?Ue({data:m(()=>n()),rowKey:r,childRowKey:e=>e.id,defaultExpandedKeys:t.defaultExpandedKeys,onLoadData:t.onLoadExpandData,renderContent:t.renderExpandContent,rowExpandable:t.rowExpandable,enableSelection:t.enableSelection,defaultCheckedKeys:t.defaultCheckedKeys,rowCheckable:t.rowCheckable,maxSelection:t.maxSelection,enableChildSelection:t.enableChildSelection,childRowCheckable:t.childRowCheckable,enableParentChildLink:t.enableParentChildLink,parentChildLinkMode:t.parentChildLinkMode,onExpandChange:a.onExpandChange,onSelectionChange:a.onSelectionChange,onChildSelectionChange:a.onChildSelectionChange}):null,c=()=>{if(!t.dynamicRows)return null;let e={...t.dynamicRows,onRowChange:a.onRowChange,onSelectionChange:a.onRowSelectionChange,onRowAdd:a.onRowAdd,onRowDelete:a.onRowDelete,onRowCopy:a.onRowCopy,onRowMove:a.onRowMove};return mt(m(()=>n()),e)},l=o(),u=s(),d=c();return{editStates:l,expandState:u,dynamicRowsState:d,stateManager:{edit:{start(e,n){let r=t.editMode;r===`modal`?l.modalEdit.startEdit(e):r===`cell`&&n?l.cellEdit.startEditCell(e,n):(r===`row`||r===`both`)&&l.rowEdit.startEditRow(e)},cancel(){l.modalEdit.isModalVisible.value?l.modalEdit.cancelEdit():l.cellEdit.editingCell.value.rowKey?l.cellEdit.cancelEditCell():l.rowEdit.editingRowKey.value&&l.rowEdit.cancelEditRow()},async save(){l.modalEdit.isModalVisible.value?await l.modalEdit.saveEdit():l.cellEdit.editingCell.value.rowKey?await l.cellEdit.saveEditCell():l.rowEdit.editingRowKey.value&&await l.rowEdit.saveEditRow()},isEditing(e,n){return t.editMode===`modal`?l.modalEdit.isEditingRow(e):n?l.cellEdit.isEditingCell(e,n):l.rowEdit.isEditingRow(e)},getEditingData(){return l.modalEdit.isModalVisible.value?l.modalEdit.editingData:l.rowEdit.editingRowKey.value?l.rowEdit.getEditingRowData(l.rowEdit.editingRowKey.value):null}},expand:{async row(e){if(u){let t=[...u.expandedKeys.value];t.includes(e)||(t.push(e),u.handleExpandChange(t))}},collapse(e){if(u){let t=u.expandedKeys.value.filter(t=>t!==e);u.handleExpandChange(t)}},async toggle(e){u?.expandedKeys.value.includes(e)?this.collapse(e):await this.row(e)},async all(){await u?.expandAll()},collapseAll(){u?.collapseAll()},isExpanded(e){return u?.expandedKeys.value.includes(e)??!1}},selection:{select(e){if(u?.checkedKeys.value&&!u.checkedKeys.value.includes(e)){let t=[...u.checkedKeys.value,e];u.handleSelectionChange(t)}},unselect(e){if(u?.checkedKeys.value){let t=u.checkedKeys.value.filter(t=>t!==e);u.handleSelectionChange(t)}},all(){u?.selectAll()},clear(){u?.clearSelection()},isSelected(e){return u?.checkedKeys.value.includes(e)??!1},getSelected(){return u?.checkedKeys.value?n().filter(e=>u.checkedKeys.value.includes(r(e))):[]}},childSelection:{select(e,t){if(u?.childSelections.value){let n=u.childSelections.value.get(e)||[];if(!n.includes(t)){let r=[...n,t];u.childSelections.value.set(e,r),i(`child-selection-change`,e,r,[])}}},unselect(e,t){if(u?.childSelections.value){let n=(u.childSelections.value.get(e)||[]).filter(e=>e!==t);u.childSelections.value.set(e,n),i(`child-selection-change`,e,n,[])}},selectAll(e){if(u?.childSelections.value&&u.expandDataMap?.value){let t=u.expandDataMap.value.get(e)||[],n=t.map(e=>e.id);u.childSelections.value.set(e,n),i(`child-selection-change`,e,n,t)}},clear(e){u?.childSelections.value&&(u.childSelections.value.set(e,[]),i(`child-selection-change`,e,[],[]))},getSelected(e){if(!u?.childSelections.value||!u.expandDataMap?.value)return[];let t=u.childSelections.value.get(e)||[];return(u.expandDataMap.value.get(e)||[]).filter(e=>t.includes(e.id))}},dynamicRows:{add(){d?.addRow()},insert(){d?.insertRow()},delete(){d?.deleteRow()},copy(){d?.copyRow()},moveUp(){d?.moveRowUp()},moveDown(){d?.moveRowDown()},clearSelection(){d?.clearSelection()},getSelected(){return d?.selectedRowData.value||null},async print(e){d&&e&&await d.handlePrint(j(e))},async download(e,t){d&&e&&await d.handleDownload(j(e),t)}},clearAllSelections(){u?.clearAllSelections()}},expandedKeys:m(()=>u?.expandedKeys.value??[]),checkedKeys:m(()=>u?.checkedKeys.value??[]),eventHandlers:a}}const $={enabled:!0,page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};function gt(e){let{data:t,config:n,emit:r}=e,i=j(1),a=j(10),o=m(()=>typeof t==`function`?t()||[]:N(t)||[]),s=m(()=>{if(!n.value?.enabled)return o.value;let e=(i.value-1)*a.value,t=e+a.value;return o.value.slice(e,t)}),c=m(()=>n.value?.enabled?{page:i.value,pageSize:a.value,itemCount:o.value.length,showSizePicker:n.value.showSizePicker??$.showSizePicker,showQuickJumper:n.value.showQuickJumper??$.showQuickJumper,pageSizes:n.value.pageSizes??$.pageSizes,simple:n.value.simple??$.simple,size:n.value.size??$.size,prefix:e=>`共 ${e.itemCount} 条`,suffix:e=>`第 ${e.startIndex+1}-${e.endIndex} 条`,"onUpdate:page":l,"onUpdate:pageSize":u}:null),l=e=>{i.value=e,r?.(`pagination-change`,e,a.value)},u=e=>{a.value=e,i.value=1,r?.(`pagination-change`,1,e)};return F(()=>{n.value?.enabled&&(i.value=n.value.page??$.page,a.value=n.value.pageSize??$.pageSize)}),P(()=>o.value.length,e=>{if(n.value?.enabled&&i.value>1){let t=Math.ceil(e/a.value);i.value>t&&(i.value=Math.max(1,t))}}),{currentPage:i,currentPageSize:a,paginatedData:s,paginationConfig:c,handlePageChange:l,handlePageSizeChange:u,resetToFirstPage:()=>{i.value!==1&&l(1)},getTotalPages:()=>!n.value?.enabled||a.value===0?1:Math.ceil(o.value.length/a.value)}}function _t(t){let{actions:n,config:i,tableManager:o,rowKey:s,emit:c,onViewDetail:u}=t,p=f(),m=d(),h=e=>n.value?.[e]!==!1,g=e=>e!==!1&&typeof e==`function`,_=e=>e&&typeof e==`object`&&`data`in e?e.data:e,v=(t,n,i=`primary`,a)=>C(r,{size:`small`,type:i,quaternary:!0,onClick:a},()=>[C(e,{name:t,size:14,title:n})]),y=(e,t)=>{let r=s(e),a=n.value?.edit;i.value.editMode===`modal`?o.editStates.modalEdit.startEdit(r,{...e},a):o.editStates.rowEdit.startEditRow(r,a)},b=async(e,t,n)=>{try{await e(t,n),p.success(`删除成功`),c(`row-delete`,t,n)}catch(e){throw console.error(`删除失败:`,e),p.error(`删除失败`),e}},x=(e,t)=>{let r=n.value?.delete;g(r)&&m.warning({title:`确认删除`,content:`确定要删除这条记录吗?`,positiveText:`确定`,negativeText:`取消`,onPositiveClick:()=>b(r,e,t)})},S=async(e,t)=>{let r=n.value?.detail;if(!g(r)){u?.(e);return}try{let n=_(await r(e,t));u?.(n||e)}catch(t){console.error(`获取详情失败:`,t),p.error(`获取详情失败`),u?.(e)}},w=e=>o.editStates.rowEdit.isEditingRow(e)?[v(`mdi:check`,`保存`,`primary`,()=>o.editStates.rowEdit.saveEditRow()),v(`mdi:close`,`取消`,`default`,()=>o.editStates.rowEdit.cancelEditRow())]:[v(`mdi:pencil`,`编辑`,`warning`,()=>o.editStates.rowEdit.startEditRow(e))],T=(e,t)=>{let n=[];return h(`detail`)&&n.push(v(`mdi:eye`,`详情`,`info`,()=>S(e,t))),i.value.editMode===`modal`&&(h(`edit`)||i.value.editable)&&n.push(v(`mdi:pencil`,`编辑`,`warning`,()=>y(e,t))),h(`delete`)&&n.push(v(`mdi:delete`,`删除`,`error`,()=>x(e,t))),n},E=(t,r)=>{let i=n.value?.custom;if(!i?.length)return null;let o=i.filter(e=>e.show?e.show(t,r):!0);return o.length?C(a,{options:o.map(n=>{let i=typeof n.label==`function`?n.label(t,r):n.label,a=typeof n.icon==`function`?n.icon(t,r):n.icon;return{label:i,key:n.key,icon:()=>C(e,{name:a,size:14}),disabled:n.disabled?.(t,r)||!1}}),onSelect:e=>{let n=o.find(t=>t.key===e);if(n)try{n.onClick(t,r)}catch(e){console.error(`操作"${n.label}"执行失败:`,e),p.error(`${n.label}失败`)}}},()=>v(`mdi:dots-horizontal`,`更多操作`,`default`,()=>{})):null};return{renderActions:(e,t)=>{if(n.value?.render)return n.value.render(e,t);let r=s(e),a=[`row`,`both`].includes(i.value.editMode);if(a&&o.editStates.rowEdit.isEditingRow(r))return C(l,{size:2,wrap:!1},()=>w(r));let c=[...a?w(r):[],...T(e,t)],u=E(e,t);return u&&c.push(u),C(l,{size:2,wrap:!1},()=>c)},isActionEnabled:h}}const vt=Symbol(`C_TABLE_GLOBAL_CONFIG`),yt={date:{format:`YYYY-MM-DD`},datetime:{format:`YYYY-MM-DD HH:mm:ss`},currency:{prefix:`¥`,precision:2},percent:{precision:2,suffix:`%`},number:{precision:0}};function bt(e,t){if(e==null||e===``)return`-`;let n=new Date(typeof e==`number`?e:String(e));if(Number.isNaN(n.getTime()))return String(e);let r=e=>String(e).padStart(2,`0`);return t.replace(`YYYY`,String(n.getFullYear())).replace(`MM`,r(n.getMonth()+1)).replace(`DD`,r(n.getDate())).replace(`HH`,r(n.getHours())).replace(`mm`,r(n.getMinutes())).replace(`ss`,r(n.getSeconds()))}function xt(e,t){if(e==null||e===``)return`-`;let n=Number(e);return Number.isNaN(n)?String(e):n.toLocaleString(`zh-CN`,{minimumFractionDigits:t,maximumFractionDigits:t})}const St={date:(e,t)=>bt(e,t.format??`YYYY-MM-DD`),datetime:(e,t)=>bt(e,t.format??`YYYY-MM-DD HH:mm:ss`),currency:(e,t)=>{let n=xt(e,t.precision??2);return n===`-`?`-`:`${t.prefix??`¥`}${n}${t.suffix??``}`},percent:(e,t)=>{if(e==null||e===``)return`-`;let n=Number(e);return Number.isNaN(n)?String(e):`${(n*100).toFixed(t.precision??2)}${t.suffix??`%`}`},number:(e,t)=>xt(e,t.precision??0)};function Ct(e,t,n,r){if(n.fn)return n.fn(e,t);if(n.type===`enum`)return n.mapping?n.mapping[String(e)]??String(e??`-`):String(e??`-`);let i=n.type&&St[n.type];return i?i(e,{...{...yt,...r}[n.type],...n.config}):String(e??`-`)}function wt(){return w(vt,{})}function Tt(e,t){let n={...e};if(t.display&&(n.display=e.display?{...t.display,...e.display}:t.display),t.pageSize&&e.pagination!==!1){let r=typeof e.pagination==`object`?e.pagination:{};r.pageSize||(n.pagination={...r,pageSize:t.pageSize})}return n}const Et={number:s,switch:u,input:o,email:o,mobile:o,date:e=>C(i,{...e,type:`date`,format:`yyyy-MM-dd`}),select:e=>C(c,{...e,options:e.options||[]}),textarea:e=>C(o,{...e,type:`textarea`,rows:3})},Dt={number:`inputNumber`,date:`datePicker`,textarea:`textarea`,select:`select`,switch:`switch`},Ot=e=>e.map(e=>{let t=e.required?[{required:!0,message:`请输入${e.title}`,trigger:[`blur`,`input`],validator:async(t,n)=>{if(!n&&n!==0&&n!==!1)throw Error(`请输入${e.title}`)}}]:[];return{prop:e.key,label:e.title||e.key,type:Dt[e.editType||`input`]||`input`,placeholder:`请输入${e.title}`,rules:t,attrs:e.editProps||{},layout:{span:1},show:!0}});function kt(e,t,n){if(e.editRender)return e.editRender(t,{},0);let r=e,i={value:t,"onUpdate:value":n,placeholder:`请输入${r.title??``}`,style:{width:`100%`},...e.editProps};return C(Et[e.editType||`input`]||Et.input,i)}function At(e,t,n,r,i){return e.render?e.render(t,n)??String(r??``):e.formatter?Ct(r,t,e.formatter,i):String(r??``)}function jt(t,n,r,i,a){let o=(t,n,r)=>C(`button`,{class:`cell-action-btn cell-action-${t}`,title:n,type:`button`,onClick:e=>{e.stopPropagation(),e.preventDefault(),r(e)}},[C(e,{name:`mdi:${t===`save`?`check`:`close`}`,title:t===`save`?`保存`:`取消`,size:12})]);return C(`div`,{class:`cell-editing-container`},[C(`div`,{class:`cell-editing-input`},[kt(t,n,r)]),C(`div`,{class:`cell-editing-actions`},[o(`save`,`保存`,i),o(`cancel`,`取消`,a)])])}function Mt(t,n,r,i,a,o){let s;return s=t.render?t.render(n,r)??String(i??``):t.formatter?Ct(i,n,t.formatter,o):String(i??``),C(`div`,{class:`cell-edit-wrapper`},[C(`span`,{class:`cell-value`},s),C(e,{name:`mdi:square-edit-outline`,title:`编辑`,class:`cell-edit-icon`,size:14,clickable:!0,onClick:e=>{e.stopPropagation(),a()}})])}function Nt(e){let{rawColumns:t,config:n,columnWidth:r,rowKey:i,tableManager:a,actionsRenderer:o,editModeChecker:s}=e,c=j([]),l=j(!1),u=e=>{let t=c.value.find(e=>e.key===`_actions`);c.value=[...e,t||{key:`_actions`,title:`操作`,width:180,editable:!1,visible:!0,fixed:`right`}]};P(t,e=>{e?.length&&u(e)},{deep:!0,immediate:!0});let d=(e,t,r,i)=>{let o=e.key??``,s=t[o],{isEditingCell:c,getEditingCellValue:l,updateEditingCellValue:u,saveEditCell:d,cancelEditCell:f,startEditCell:p}=a.editStates.cellEdit;return c(i,o)?jt(e,l(i,o)??s,e=>u(i,o,e),()=>d(),()=>f()):Mt(e,t,r,s,()=>p(i,o),n.value.formatterConfig)},f=(e,t,r)=>{let o=e.key??``,c=t[o],l=i(t),u=s.value;return u.isNonEditable(e)?At(e,t,r,c,n.value.formatterConfig):u.isRowEditMode()&&a.editStates.rowEdit.isEditingRow(l)?kt(e,a.editStates.rowEdit.getEditingRowData(l)?.[o]??c,e=>a.editStates.rowEdit.updateEditingRowData(l,o,e)):u.isCellEditMode()?d(e,t,r,l):At(e,t,r,c,n.value.formatterConfig)},p=e=>{let t=e.width||r||180;return typeof t==`number`?t:180},h=e=>{let t=e;return{key:`_index`,title:t.title||`序号`,width:typeof(t.width||50)==`number`&&t.width||50,titleAlign:`center`,align:`center`,render:(e,t)=>t+1,fixed:e.fixed}},g=e=>{let t=e,n={...t,width:p(e),titleAlign:t.titleAlign||`center`,align:t.align||`center`,render:e.render||((t,n)=>f(e,t,n))};return e.fixed&&(n.fixed=e.fixed),e.resizable&&typeof n.width==`number`&&(n.resizable=!0,n.minWidth=e.minWidth||80,n.maxWidth=e.maxWidth||500),n};return{reactiveColumns:c,showSettingsPanel:l,computedColumns:m(()=>{let e=c.value.filter(e=>{let t=e;return t.visible!==!1&&t.key!==`_actions`}).map(e=>e.type===`index`?h(e):g(e));a.dynamicRowsState&&(e=a.dynamicRowsState.enhanceColumns(e)),a.expandState&&(n.value.expandable||n.value.enableSelection)&&(e=a.expandState.getTableColumns(e));let t=c.value.find(e=>e.key===`_actions`);return e.push({key:`_actions`,title:`操作`,align:`center`,titleAlign:`center`,render:o,fixed:t?.fixed}),e}),computedScrollX:m(()=>{if(e.scrollX!==void 0)return e.scrollX;if(c.value.some(e=>{let t=e;return t.fixed&&t.visible!==!1}))return c.value.filter(e=>e.visible!==!1).reduce((e,t)=>e+p(t),0)+200}),handleColumnChange:e=>{c.value=e.map(e=>{let t=e;return{...e,visible:t.visible!==!1,fixed:e.fixed,width:t.width||r,align:t.align||`center`,titleAlign:t.titleAlign||`center`}})}}}function Pt(e){let{data:t,config:n,onReorder:r,onSort:i}=e,a=j(!1),o=null,s=async e=>{if(!(!n.enabled||!e))try{let{default:s}=await import(`sortablejs`),c=e.querySelector(`.n-data-table-tbody`);if(!c)return;o=new s(c,{animation:n.animationDuration??150,handle:n.handleSelector,ghostClass:n.ghostClass??`row-drag-ghost`,chosenClass:n.chosenClass??`row-drag-chosen`,onStart:()=>{a.value=!0},onEnd:e=>{if(a.value=!1,e.oldIndex==null||e.newIndex==null||e.oldIndex===e.newIndex)return;let n=[...t.value],[o]=n.splice(e.oldIndex,1);n.splice(e.newIndex,0,o),r?.(n),i?.(o,e.oldIndex,e.newIndex)}})}catch{}},c=()=>{o&&=(o.destroy(),null)};return k(c),{initRowDrag:s,destroyRowDrag:c,isDragging:a}}function Ft(e){let{allData:t,rowKey:n,config:r}=e,i=j(new Set),a=m(()=>i.value.size);return P(t,e=>{let t=new Set(e.map(e=>n(e))),r=new Set([...i.value].filter(e=>t.has(e)));r.size!==i.value.size&&(i.value=r)}),{selectedKeys:i,selectedCount:a,getPageCheckedKeys:e=>e.map(e=>n(e)).filter(e=>i.value.has(e)),handlePageSelectionChange:(e,t)=>{let a=new Set(i.value);for(let e of t)a.delete(n(e));for(let t of e){if(r.maxSelection&&a.size>=r.maxSelection)break;a.add(t)}i.value=a},selectAll:()=>{let e=t.value.map(e=>n(e));i.value=new Set(r.maxSelection?e.slice(0,r.maxSelection):e)},clearAll:()=>{i.value=new Set},getSelectedRows:()=>t.value.filter(e=>i.value.has(n(e))),isSelected:e=>i.value.has(e)}}function It(e,t){return e.filter(e=>!e.key||e.key.startsWith(`_`)||e.type===`selection`||e.type===`expand`?!1:t?.length?t.includes(e.key):e.visible!==!1)}function Lt(e,t,n){let r=e[t.key];return t.formatter?Ct(r,e,t.formatter,n):r==null?``:typeof r==`boolean`?r?`是`:`否`:String(r)}function Rt(e,t){return e.includes(t)||e.includes(`"`)||e.includes(`
|
|
2
|
-
`)?`"${e.replace(/"/g,`""`)}"`:e}function
|
|
3
|
-
`)],{type:`text/csv;charset=utf-8;`}),`${n.filename||`export`}.csv`)}async function Bt(e,t,n){let r=It(t,n.columnKeys);try{let t=await import(`xlsx`),i=r.map(e=>e.title??e.key??``),a=e.map(e=>r.map(t=>Lt(e,t,n.formatterConfig))),o=n.includeHeader===!1?a:[i,...a],s=t.utils.aoa_to_sheet(o),c=t.utils.book_new();t.utils.book_append_sheet(c,s,`Sheet1`),t.writeFile(c,`${n.filename||`export`}.xlsx`)}catch{console.warn(`[C_Table] xlsx 库未安装,已自动降级为 CSV 导出`),zt(e,t,{...n,format:`csv`})}}function Vt(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.style.display=`none`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}async function Ht(e,t,n={}){n.format===`xlsx`?await Bt(e,t,n):zt(e,t,n)}const Ut=e=>[{label:e.fixed?`✓ 取消固定`:`不固定`,key:`none`,disabled:!e.fixed},{label:e.fixed===`left`?`✓ 固定左侧`:`固定左侧`,key:`left`,disabled:!1},{label:e.fixed===`right`?`✓ 固定右侧`:`固定右侧`,key:`right`,disabled:!1}],Wt=[`_actions`],Gt=[`selection`,`expand`],Kt=e=>Wt.includes(e.key)||Gt.includes(e.type),qt={class:`column-management-tab`},Jt={class:`search-row`},Yt={class:`resizable-control`},Xt={class:`top-actions-bar`},Zt={class:`stats-info`},Qt={class:`quick-actions`},$t=[`draggable`,`onDragstart`,`onDragover`,`onDrop`],en={class:`column-info`},tn={class:`column-controls`},nn={class:`column-details`},rn={class:`column-actions`},an={class:`drag-controls`};var on=t(S({name:`ColumnSettings`,__name:`index`,props:{columns:{},persistKey:{}},emits:[`change`],setup(t,{emit:n}){let r=t,i=n,a=e=>{if(!r.persistKey)return[...e];try{let t=localStorage.getItem(`c_table_cols_${r.persistKey}`);if(!t)return[...e];let n=JSON.parse(t),i=new Map(n.map((e,t)=>[e.key,{...e,order:t}])),a=e.map(e=>{let t=i.get(e.key);return t?{...e,visible:t.visible??e.visible,width:t.width??e.width,fixed:t.fixed??e.fixed}:{...e}});return a.sort((e,t)=>(i.get(e.key)?.order??999)-(i.get(t.key)?.order??999)),a}catch{return[...e]}},o=e=>{if(r.persistKey)try{let t=e.map(e=>({key:e.key,visible:e.visible,width:e.width,fixed:e.fixed}));localStorage.setItem(`c_table_cols_${r.persistKey}`,JSON.stringify(t))}catch{}},s=j(a(r.columns)),c=j(``),l=j(),u=j(null),d=j(null),f=j(!1);te(()=>{f.value=s.value.some(e=>e.resizable===!0),r.persistKey&&i(`change`,[...s.value])});let y=m(()=>{if(!c.value)return s.value;let e=c.value.toLowerCase();return s.value.filter(t=>t.title?.toLowerCase().includes(e)||t.key?.toLowerCase().includes(e))}),S=m(()=>s.value.filter(e=>e.visible!==!1).length),C=m(()=>s.value.length),w=e=>{s.value.forEach(t=>{t.key!==`_actions`&&(t.visible=e)}),P()},T=()=>w(!0),E=()=>w(!1),D=e=>{let t=y.value[e];return s.value.findIndex(e=>e.key===t.key)},k=(e,t)=>{let n=D(e);n!==-1&&(t(s.value[n]),P())},re=(e,t)=>{k(e,e=>{e.visible=t})},ie=(e,t)=>{k(e,e=>{e.fixed=t===`none`?void 0:t})},P=()=>{o(s.value),i(`change`,[...s.value])},F=()=>{s.value=[...r.columns],P()},L=e=>{s.value.forEach(t=>{Kt(t)||(t.resizable=e,e&&(t.minWidth=t.minWidth||80,t.maxWidth=t.maxWidth||500))}),P()},z=(e,t)=>{let n=D(e),r=D(t);if(n!==-1&&r!==-1){let[e]=s.value.splice(n,1);s.value.splice(r,0,e),P()}},oe=(e,t)=>{if(y.value[e].key===`_actions`){t.preventDefault();return}u.value=e,t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`)},se=(e,t)=>{t.preventDefault(),!(u.value===null||y.value[e].key===`_actions`)&&(d.value=e,t.dataTransfer&&(t.dataTransfer.dropEffect=`move`))},ce=e=>{u.value===null||y.value[e].key===`_actions`||(z(u.value,e),u.value=null,d.value=null)},ue=()=>{u.value=null,d.value=null};return(t,n)=>(A(),_(`div`,qt,[g(` 搜索框和列宽调整开关 `),v(`div`,Jt,[x(N(B),{value:c.value,"onUpdate:value":n[0]||=e=>c.value=e,placeholder:`搜索列名...`,clearable:``,class:`search-input`},{prefix:I(()=>[x(e,{name:`mdi:magnify`})]),_:1},8,[`value`]),v(`div`,Yt,[x(e,{name:`mdi:arrow-split-vertical`,size:`14`,title:f.value?`开启后可拖拽列边界调整宽度`:`允许调整列宽`},null,8,[`title`]),x(N(U),{style:{fontSize:`12px`,marginLeft:`4px`}},{default:I(()=>n[2]||=[b(` 列宽调整 `,-1)]),_:1,__:[2]}),x(N(fe),{value:f.value,"onUpdate:value":[n[1]||=e=>f.value=e,L],size:`small`,style:{"margin-left":`6px`}},null,8,[`value`])])]),g(` 顶部操作栏:统计信息和快捷操作按钮 `),v(`div`,Xt,[v(`div`,Zt,[x(N(U),{depth:`3`,style:{fontSize:`13px`}},{default:I(()=>[b(` 已选 `+M(S.value)+` / 总共 `+M(C.value)+` 列 `,1)]),_:1})]),v(`div`,Qt,[x(N(V),{size:6},{default:I(()=>[x(N(R),{size:`tiny`,onClick:T},{default:I(()=>n[3]||=[b(` 全选 `,-1)]),_:1,__:[3]}),x(N(R),{size:`tiny`,onClick:E},{default:I(()=>n[4]||=[b(` 全不选 `,-1)]),_:1,__:[4]}),x(N(R),{size:`tiny`,onClick:F},{default:I(()=>n[5]||=[b(` 重置 `,-1)]),_:1,__:[5]})]),_:1})])]),g(` 列列表 `),v(`div`,{ref_key:`listRef`,ref:l,class:`column-list`},[(A(!0),_(p,null,ne(y.value,(t,r)=>(A(),_(`div`,{key:t.key,class:O([`column-item`,{disabled:t.key===`_actions`,"fixed-left":t.fixed===`left`,"fixed-right":t.fixed===`right`}]),draggable:t.key!==`_actions`,onDragstart:e=>oe(r,e),onDragover:e=>se(r,e),onDragend:ue,onDrop:e=>ce(r)},[v(`div`,en,[v(`div`,tn,[x(e,{name:`mdi:drag`,size:`16`,class:O([`drag-handle`,{disabled:t.key===`_actions`}])},null,8,[`class`]),x(N(ae),{checked:t.visible!==!1,disabled:t.key===`_actions`,"onUpdate:checked":e=>re(r,e)},null,8,[`checked`,`disabled`,`onUpdate:checked`])]),v(`div`,nn,[x(N(V),{align:`center`,size:6},{default:I(()=>[x(N(U),{strong:``,style:{fontSize:`13px`}},{default:I(()=>[b(M(t.title||t.key),1)]),_:2},1024),t.fixed===`left`?(A(),h(N(pe),{key:0,size:`tiny`,type:`info`},{default:I(()=>n[6]||=[b(` 左固定 `,-1)]),_:1,__:[6]})):g(`v-if`,!0),t.fixed===`right`?(A(),h(N(pe),{key:1,size:`tiny`,type:`warning`},{default:I(()=>n[7]||=[b(` 右固定 `,-1)]),_:1,__:[7]})):g(`v-if`,!0)]),_:2},1024),x(N(U),{depth:`3`,style:{fontSize:`11px`}},{default:I(()=>[b(M(t.key),1)]),_:2},1024)])]),v(`div`,rn,[v(`div`,an,[x(e,{name:`mdi:chevron-up`,size:`14`,title:`上移`,clickable:r!==0,class:O({disabled:r===0}),onClick:e=>r!==0&&z(r,r-1)},null,8,[`clickable`,`class`,`onClick`]),x(e,{name:`mdi:chevron-down`,size:`14`,title:`下移`,clickable:r!==y.value.length-1,class:O({disabled:r===y.value.length-1}),onClick:e=>r!==y.value.length-1&&z(r,r+1)},null,8,[`clickable`,`class`,`onClick`])]),x(N(le),{options:N(Ut)(t),onSelect:e=>ie(r,e)},{default:I(()=>[x(e,{name:`mdi:pin`,size:`14`,title:`固定列`,clickable:``,style:ee({color:t.fixed?`var(--n-primary-color)`:void 0})},null,8,[`style`])]),_:2},1032,[`options`,`onSelect`])])],42,$t))),128))],512)]))}}),[[`__scopeId`,`data-v-f6d19462`]]);const sn={key:1,class:`table-toolbar`},cn={class:`toolbar-left`},ln={class:`toolbar-right`},un={key:2,class:`batch-actions-bar`},dn={class:`batch-info`},fn={key:3,class:`table-error-state`},pn={class:`error-content`},mn={class:`error-message`};var hn=t(S({name:`C_Table`,inheritAttrs:!1,__name:`index`,props:{columns:{},data:{},loading:{},rowKey:{type:Function,default:e=>e.id},config:{default:()=>({})},crud:{}},emits:[`pagination-change`,`row-delete`,`expand-change`,`selection-change`,`child-selection-change`,`parent-child-link-change`,`update:data`,`save`,`cancel`,`row-add`,`row-copy`,`row-move`,`row-selection-change`,`view-detail`,`column-change`],setup(t,{expose:r,emit:i}){let a=t,o=i,s=(e,...t)=>{o(e,...t),a.crud&&{save:a.crud.save,cancel:a.crud.handleCancel,"pagination-change":a.crud.handlePaginationChange,"row-delete":a.crud.handleRowDelete,"view-detail":a.crud.detail?.show}[e]?.(...t)},c=wt(),l=m(()=>{let e=a.config||{};if(a.crud){let t={};a.crud.actions&&(t.actions=a.crud.actions.value),a.crud.pagination&&(t.pagination=a.crud.pagination.value??void 0),e={...t,...e}}return Tt(e,c)}),u=m(()=>a.columns??a.crud?.columns.value??[]),d=m(()=>Ee(l.value)),f=m(()=>De(d.value)),S=e=>e&&typeof e==`object`&&`value`in e?e.value:e,C=m(()=>S(a.data)??a.crud?.data.value??[]),w=m(()=>S(a.loading)??a.crud?.loading.value??!1),D=gt({data:C,config:m(()=>d.value.pagination),emit:s}),O=ht({config:d.value,data:()=>C.value,rowKey:a.rowKey,emit:s,columns:()=>u.value}),ee=_t({actions:m(()=>l.value.actions||{}),config:d,tableManager:O,rowKey:a.rowKey,emit:s,onViewDetail:e=>s(`view-detail`,e)}),F=Nt({rawColumns:u,config:d,columnWidth:d.value.columnWidth,scrollX:d.value.scrollX,rowKey:a.rowKey,tableManager:O,actionsRenderer:ee.renderActions,editModeChecker:f}),{showSettingsPanel:L,reactiveColumns:z,computedColumns:ae,computedScrollX:le}=F,B=d.value.rowDrag?.enabled?Pt({data:C,rowKey:a.rowKey,config:d.value.rowDrag,onReorder:e=>s(`update:data`,e),onSort:(e,t,n)=>o(`row-move`,e,t,n)}):null,H=d.value.crossPageSelection?.enabled?Ft({allData:C,rowKey:a.rowKey,config:d.value.crossPageSelection}):null,fe=m(()=>H?H.selectedCount.value:O.checkedKeys?.value?.length??0),pe=async e=>{let t=H?[...H.selectedKeys.value]:O.checkedKeys?.value??[],n=H?H.getSelectedRows():C.value.filter(e=>t.includes(a.rowKey(e)));await e.onClick(t,n)},U=()=>{H?H.clearAll():O.stateManager.selection.clear()},W=m(()=>H?H.getPageCheckedKeys(C.value):null),me=e=>{H&&H.handlePageSelectionChange(e,C.value),O.expandState?.handleSelectionChange?.(e)},he=async()=>{let e=d.value.exportConfig??{};await Ht(C.value,u.value,{...e,formatterConfig:d.value.formatterConfig})},ge=m(()=>{let e=d.value;if(e.summaryRender)return t=>{let n=e.summaryRender(t);return ae.value.map(e=>{let t=n[e.key];return t?{value:t.value,colSpan:t.colSpan??1}:{value:``}})}}),G=j(),_e=null,ve=async()=>{if(!(!d.value.enableColumnDrag||!G.value))try{let{default:e}=await import(`sortablejs`),t=G.value.querySelector(`.n-data-table-thead tr`);if(!t)return;_e=new e(t,{animation:d.value.columnDragAnimationDuration,handle:`.${d.value.columnDragHandleClass}`,ghostClass:`column-drag-ghost`,onEnd:e=>{if(e.oldIndex==null||e.newIndex==null)return;let t=[...z.value],[n]=t.splice(e.oldIndex,1);t.splice(e.newIndex,0,n),F.handleColumnChange(t),o(`column-change`,t)}})}catch{}},ye=j(),be=m(()=>({striped:d.value.striped,bordered:d.value.bordered,singleLine:d.value.singleLine,size:d.value.size,maxHeight:d.value.maxHeight})),K=j(),xe=j(!1),q=j({}),J=m({get:()=>O.editStates.modalEdit.isModalVisible.value,set:e=>{O.editStates.modalEdit.isModalVisible.value=e}}),Se=m(()=>u.value.filter(e=>e.editable!==!1)),Ce=m(()=>`edit-form-${O.editStates.modalEdit.editingRowKey.value||`new`}`),we=m(()=>Ot(Se.value));P(()=>O.editStates.modalEdit.editingData.value,e=>{e&&Object.keys(e).length>0&&(q.value=JSON.parse(JSON.stringify(e)))},{immediate:!0,deep:!0});let Y=null;P(J,e=>{e||(Y=setTimeout(()=>{q.value={},Y=null},300))});let Te=async()=>{if(K.value){xe.value=!0;try{await K.value.validate(),await O.editStates.modalEdit.saveEdit(q.value)}catch{}finally{xe.value=!1}}},Oe=()=>{q.value={},O.editStates.modalEdit.cancelEdit()},ke=e=>{F.handleColumnChange(e),o(`column-change`,F.reactiveColumns.value)},{edit:Ae,expand:X,selection:Z,dynamicRows:je}=O.stateManager,Me={startEdit:Ae.start,expandAll:X.all,collapseAll:X.collapseAll,selectAll:Z.all,clearSelection:Z.clear,clearAllSelections:O.stateManager.clearAllSelections,clearRowSelection:je?.clearSelection,resetToFirstPage:D.resetToFirstPage,getSelectedRows:Z.getSelected,getEditingData:Ae.getEditingData,isEditing:Ae.isEditing,isExpanded:X.isExpanded,getManager:()=>O.stateManager,exportData:he,crossPageSelection:H?{selectedKeys:H.selectedKeys,selectedCount:H.selectedCount,selectAll:H.selectAll,clearAll:H.clearAll,getSelectedRows:H.getSelectedRows}:void 0};return r(Me),te(()=>{let e=a.crud?.tableRef;e&&(e.value=Me),ve(),B&&G.value&&B.initRowDrag(G.value)}),k(()=>{Y&&clearTimeout(Y),_e&&_e.destroy(),B?.destroyRowDrag()}),(t,r)=>(A(),_(`div`,{ref_key:`tableWrapperRef`,ref:G,class:`c-table-wrapper`},[g(` 动态行工具栏 `),N(O).dynamicRowsState?(A(),h(ie(N(O).dynamicRowsState.renderToolbar()),{key:0})):g(`v-if`,!0),g(` 表格工具栏 `),d.value.showToolbar?(A(),_(`div`,sn,[v(`div`,cn,[re(t.$slots,`toolbar-left`,{},void 0,!0)]),v(`div`,ln,[re(t.$slots,`toolbar-right`,{},void 0,!0),d.value.exportConfig?(A(),h(e,{key:0,name:`mdi:download`,size:`18`,title:`导出`,clickable:``,class:`column-settings-btn`,onClick:r[0]||=e=>he()})):g(`v-if`,!0),d.value.enableColumnSettings?(A(),h(e,{key:1,name:`mdi:cog`,size:`18`,title:`表格设置`,clickable:``,class:`column-settings-btn`,onClick:r[1]||=e=>L.value=!0})):g(`v-if`,!0)])])):g(`v-if`,!0),g(` 批量操作栏 `),d.value.batchActions?.enabled&&fe.value>0?(A(),_(`div`,un,[v(`span`,dn,`已选择 `+M(fe.value)+` 项`,1),x(N(V),{size:8},{default:I(()=>[(A(!0),_(p,null,ne(d.value.batchActions.actions||[],t=>(A(),h(N(R),{key:t.key,type:t.type||`default`,size:`small`,onClick:e=>pe(t)},y({default:I(()=>[b(` `+M(t.label),1)]),_:2},[t.icon?{name:`icon`,fn:I(()=>[x(e,{name:t.icon,size:`14`},null,8,[`name`])]),key:`0`}:void 0]),1032,[`type`,`onClick`]))),128)),x(N(R),{size:`small`,onClick:U},{default:I(()=>r[5]||=[b(`取消选择`,-1)]),_:1,__:[5]})]),_:1})])):g(`v-if`,!0),g(` 错误状态 `),d.value.error?.show?(A(),_(`div`,fn,[re(t.$slots,`error`,{error:d.value.error},()=>[v(`div`,pn,[x(e,{name:`mdi:alert-circle-outline`,size:`48`}),v(`p`,mn,M(d.value.error.message||`数据加载失败`),1),d.value.error.onRetry?(A(),h(N(R),{key:0,type:`primary`,size:`small`,onClick:d.value.error.onRetry},{default:I(()=>r[6]||=[b(` 重试 `,-1)]),_:1,__:[6]},8,[`onClick`])):g(`v-if`,!0)])],!0)])):g(`v-if`,!0),g(` 表格主体 `),d.value.error?.show?g(`v-if`,!0):(A(),h(N(oe),E({key:4,ref_key:`tableRef`,ref:ye},{...be.value,...t.$attrs},{columns:N(ae),data:C.value,loading:w.value,"row-key":t.rowKey,"expanded-row-keys":N(O).expandedKeys.value,"checked-row-keys":W.value??N(O).checkedKeys.value,"onUpdate:expandedRowKeys":N(O).expandState?.handleExpandChange,"onUpdate:checkedRowKeys":me,"scroll-x":N(le),"virtual-scroll":d.value.virtualScroll,"virtual-scroll-item-size":d.value.virtualScroll?d.value.virtualItemHeight:void 0,"max-height":d.value.virtualScroll?d.value.virtualMaxHeight:d.value.maxHeight,summary:ge.value,"summary-placement":d.value.summaryPosition,"children-key":d.value.treeEnabled?d.value.treeChildrenKey:void 0,indent:d.value.treeEnabled?d.value.treeIndent:void 0,"default-expand-all":d.value.treeEnabled?d.value.treeDefaultExpandAll:void 0,style:{width:`100%`}}),null,16,[`columns`,`data`,`loading`,`row-key`,`expanded-row-keys`,`checked-row-keys`,`onUpdate:expandedRowKeys`,`scroll-x`,`virtual-scroll`,`virtual-scroll-item-size`,`max-height`,`summary`,`summary-placement`,`children-key`,`indent`,`default-expand-all`])),g(` 分页 `),N(D).paginationConfig.value?(A(),h(N(de),E({key:5},N(D).paginationConfig.value,{class:`pagination-wrapper`}),null,16)):g(`v-if`,!0),g(` 编辑弹窗 `),d.value.editMode===`modal`||d.value.editMode===`both`?(A(),h(N(ue),{key:6,show:J.value,"onUpdate:show":r[3]||=e=>J.value=e,title:d.value.modalTitle,width:d.value.modalWidth,preset:`card`,"mask-closable":!1,"close-on-esc":!1,class:`w60%`,closable:!1},{action:I(()=>[x(N(V),{justify:`end`},{default:I(()=>[x(N(R),{onClick:Oe},{default:I(()=>r[7]||=[b(`取消`,-1)]),_:1,__:[7]}),x(N(R),{type:`primary`,loading:xe.value,onClick:Te},{default:I(()=>r[8]||=[b(` 保存 `,-1)]),_:1,__:[8]},8,[`loading`])]),_:1})]),default:I(()=>[J.value&&we.value.length?(A(),h(n,{ref_key:`editFormRef`,ref:K,key:Ce.value,modelValue:q.value,"onUpdate:modelValue":r[2]||=e=>q.value=e,options:we.value,config:{layout:`grid`,grid:{cols:2,xGap:16,yGap:16},showActions:!1}},null,8,[`modelValue`,`options`])):g(`v-if`,!0)]),_:1},8,[`show`,`title`,`width`])):g(`v-if`,!0),g(` 动态行确认删除弹窗 `),N(O).dynamicRowsState?(A(),h(ie(N(O).dynamicRowsState.renderConfirmModal()),{key:7})):g(`v-if`,!0),g(` 列设置抽屉 `),x(N(se),{show:N(L),"onUpdate:show":r[4]||=e=>T(L)?L.value=e:null,width:420,placement:`right`,"mask-closable":!0},{default:I(()=>[x(N(ce),{title:`列设置`,closable:``},{default:I(()=>[x(on,{columns:N(z),"persist-key":d.value.persistKey,onChange:ke},null,8,[`columns`,`persist-key`])]),_:1})]),_:1},8,[`show`])],512))}}),[[`__scopeId`,`data-v-21d6283f`]]);export{Z as _,Nt as a,De as b,Tt as c,gt as d,ht as f,Ue as g,lt as h,Pt as i,wt as l,ut as m,Ht as n,vt as o,mt as p,Ft as r,Ct as s,hn as t,_t as u,X as v,Ee as x,ke as y};
|
|
1
|
+
import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{t as n}from"./C_Form2.js";import{NButton as r,NDatePicker as i,NDropdown as a,NInput as o,NInputNumber as s,NSelect as c,NSpace as l,NSwitch as u,useDialog as d,useMessage as f}from"naive-ui";import{Fragment as p,computed as m,createBlock as h,createCommentVNode as g,createElementBlock as _,createElementVNode as v,createSlots as y,createTextVNode as b,createVNode as x,defineComponent as S,h as C,inject as w,isRef as T,mergeProps as E,nextTick as D,normalizeClass as O,normalizeStyle as ee,onBeforeUnmount as k,onMounted as te,openBlock as A,ref as j,renderList as ne,renderSlot as re,resolveDynamicComponent as ie,shallowRef as M,toDisplayString as N,unref as P,watch as F,watchEffect as I,withCtx as L}from"vue";import R from"html2canvas";import{NButton as z,NButtonGroup as B,NCheckbox as ae,NDataTable as oe,NDrawer as se,NDrawerContent as ce,NDropdown as V,NInput as H,NModal as le,NPagination as ue,NSpace as U,NSpin as de,NSwitch as fe,NTag as pe,NText as W,NTooltip as G,useMessage as me}from"naive-ui/es";import he from"print-js";const K={editable:!1,editMode:`none`,showRowActions:!1,modalTitle:`编辑数据`,modalWidth:600},ge=e=>e===!1||e===void 0?K:e===!0?{editable:!0,editMode:`modal`,showRowActions:!0,modalTitle:`编辑数据`,modalWidth:600}:{editable:e.enabled!==!1&&e.mode!==`none`,editMode:e.mode||`modal`,showRowActions:e.showRowActions!==!1&&e.mode!==`none`,modalTitle:e.modalTitle||`编辑数据`,modalWidth:e.modalWidth||600},_e=e=>e?e===!0?{expandable:!0,defaultExpandedKeys:void 0,onLoadExpandData:void 0,renderExpandContent:void 0,rowExpandable:void 0}:{expandable:e.enabled!==!1,defaultExpandedKeys:e.defaultExpandedKeys,onLoadExpandData:e.onLoadData,renderExpandContent:e.renderContent,rowExpandable:e.rowExpandable}:{expandable:!1,defaultExpandedKeys:void 0,onLoadExpandData:void 0,renderExpandContent:void 0,rowExpandable:void 0},ve=e=>{if(!e)return{enableSelection:!1,defaultCheckedKeys:void 0,rowCheckable:void 0,maxSelection:void 0,enableChildSelection:!1,childRowCheckable:void 0,enableParentChildLink:!1,parentChildLinkMode:`loose`};if(e===!0)return{enableSelection:!0,defaultCheckedKeys:void 0,rowCheckable:void 0,maxSelection:void 0,enableChildSelection:!1,childRowCheckable:void 0,enableParentChildLink:!1,parentChildLinkMode:`loose`};let t=e.childSelection||{},n=e.parentChildLink||{};return{enableSelection:e.enabled!==!1,defaultCheckedKeys:e.defaultCheckedKeys,rowCheckable:e.rowCheckable,maxSelection:e.maxSelection,enableChildSelection:t.enabled||!1,childRowCheckable:t.childRowCheckable,enableParentChildLink:n.enabled||!1,parentChildLinkMode:n.mode||`loose`}},ye=e=>{let t={enabled:!0,page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};return e===!1?{pagination:null}:e===!0||e===void 0?{pagination:t}:{pagination:{...t,...e}}},be=e=>e?e===!0?{dynamicRows:{enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0}}:{dynamicRows:e}:{dynamicRows:void 0},q={striped:!0,bordered:!0,singleLine:!0,size:`medium`,maxHeight:void 0,scrollX:void 0,columnWidth:180};function J(e){return e?{striped:e.striped??q.striped,bordered:e.bordered??q.bordered,singleLine:e.singleLine??q.singleLine,size:e.size??q.size,maxHeight:e.maxHeight,scrollX:e.scrollX,columnWidth:e.columnWidth??q.columnWidth}:{...q}}const Y=e=>({showToolbar:e?.show!==!1,enableColumnSettings:e?.columnSettings!==!1}),xe=e=>e?e===!0?{virtualScroll:!0,virtualItemHeight:34,virtualMaxHeight:600}:{virtualScroll:e.enabled!==!1,virtualItemHeight:e.itemHeight??34,virtualMaxHeight:e.maxHeight??600}:{virtualScroll:!1,virtualItemHeight:34,virtualMaxHeight:600},Se=e=>e?{summaryPosition:e.position??`bottom`,summaryRender:e.render}:{summaryPosition:void 0,summaryRender:void 0},Ce=e=>e?e===!0?{enableColumnDrag:!0,columnDragHandleClass:`drag-handle`,columnDragAnimationDuration:150}:{enableColumnDrag:e.enabled!==!1,columnDragHandleClass:e.handleClass??`drag-handle`,columnDragAnimationDuration:e.animationDuration??150}:{enableColumnDrag:!1,columnDragHandleClass:`drag-handle`,columnDragAnimationDuration:150},X=e=>e?e===!0?{treeEnabled:!0,treeChildrenKey:`children`,treeIndent:16,treeDefaultExpandAll:!1}:{treeEnabled:e.enabled!==!1,treeChildrenKey:e.childrenKey??`children`,treeIndent:e.indent??16,treeDefaultExpandAll:e.defaultExpandAll??!1}:{treeEnabled:!1,treeChildrenKey:`children`,treeIndent:16,treeDefaultExpandAll:!1},we=e=>e?e===!0?{rowDrag:{enabled:!0}}:{rowDrag:e.enabled===!1?void 0:e}:{rowDrag:void 0},Te=e=>e?e===!0?{crossPageSelection:{enabled:!0}}:{crossPageSelection:e.enabled===!1?void 0:e}:{crossPageSelection:void 0};function Ee(e={}){return{...ge(e.edit),..._e(e.expand),...ve(e.selection),...ye(e.pagination),...be(e.dynamicRows),...J(e.display),...Y(e.toolbar),...xe(e.virtualScroll),...Se(e.summary),...Ce(e.columnDrag),...X(e.tree),...we(e.rowDrag),...Te(e.crossPageSelection),exportConfig:e.export,persistKey:e.persistKey,formatterConfig:e.formatterConfig,error:e.error,batchActions:e.batchActions}}const De=e=>({isNonEditable:t=>!e.editable||t.editable===!1||e.editMode===`none`,isRowEditMode:()=>[`row`,`both`].includes(e.editMode),isCellEditMode:()=>[`cell`,`both`].includes(e.editMode)});async function Oe(e,t,n){let r=typeof e.message==`function`?e.message():e.message;if(e.required&&(t==null||t===``))return r||`${n}不能为空`;if(e.validator)try{await e.validator(e,t,()=>{},{},{})}catch(e){return e?.message||`${n}校验失败`}return null}function Z(e){let t=j(null),n=j({}),r=j([]),i=e=>t.value===e,a=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},o=e=>{let r=a(e);r&&(t.value=e,n.value[e]={...r})},s=async()=>{if(!t.value)return;let r=e.data();if(!r||!Array.isArray(r))return;let i=r.findIndex(n=>e.rowKey(n)===t.value);i>-1&&await e.onCancel?.(r[i],i),t.value=null,n.value={}},c=async()=>{if(r.value=[],!t.value)return!0;let i=e.columns?.()||[],a=n.value[t.value];if(!a)return!0;let o=i.filter(e=>e.editable!==!1&&e.editProps?.rules?.length).map(e=>{let t=e.key;if(!t)return null;let n=e.title||t,r=a[t];return Promise.all(e.editProps.rules.map(e=>Oe(e,r,n))).then(e=>{let n=e.find(Boolean);return n?{field:t,message:n}:null})}).filter(Boolean),s=(await Promise.all(o)).filter(Boolean);return r.value=s,s.length===0};return{editingRowKey:t,isEditingRow:i,startEditRow:o,cancelEditRow:s,saveEditRow:async()=>{if(!t.value||!await c())return;let r=t.value,i=e.data();if(!i||!Array.isArray(i))return;let a=i.findIndex(t=>e.rowKey(t)===r);if(a===-1)return;let o=n.value[r];if(o)return await e.onSave?.(o,a),t.value=null,n.value={},{updatedData:o,rowIndex:a}},validateRow:c,validationErrors:r,getEditingRowData:e=>n.value[e],updateEditingRowData:(e,t,r)=>{n.value[e]&&(n.value[e][t]=r)},findRowData:a}}async function ke(e,t,n){let r=typeof e.message==`function`?e.message():e.message;if(e.required&&(t==null||t===``))return r||`${n}不能为空`;if(e.validator)try{await e.validator(e,t,()=>{},{},{})}catch(e){return e?.message||`${n}校验失败`}return null}function Q(e){let t=j({rowKey:null,columnKey:null}),n=j({}),r=j(null),i=(e,n)=>t.value.rowKey===e&&t.value.columnKey===n,a=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},o=(e,r)=>{let i=a(e);i&&(t.value={rowKey:e,columnKey:r},n.value[`${e}-${r}`]=i[r])},s=async()=>{r.value=null;let{rowKey:i,columnKey:a}=t.value;if(!i||!a)return!0;let o=(e.columns?.()||[]).find(e=>e.key===a);if(!o||!o.editProps?.rules)return!0;let s=`${i}-${a}`,c=n.value[s],l=o.title||a,u=(await Promise.all(o.editProps.rules.map(e=>ke(e,c,l)))).find(Boolean);return u?(r.value=u,!1):!0};return{editingCell:t,isEditingCell:i,startEditCell:o,saveEditCell:async()=>{let{rowKey:r,columnKey:i}=t.value;if(!r||!i||!await s())return;let a=e.data();if(!a||!Array.isArray(a))return;let o=a.findIndex(t=>e.rowKey(t)===r);if(o===-1)return;let c=`${r}-${i}`,l=n.value[c],u={...a[o],[i]:l};return await e.onSave?.(u,o,i),t.value={rowKey:null,columnKey:null},delete n.value[c],{updatedData:u,rowIndex:o,columnKey:i}},cancelEditCell:()=>{let{rowKey:e,columnKey:r}=t.value;e&&r&&delete n.value[`${e}-${r}`],t.value={rowKey:null,columnKey:null}},validateCell:s,cellValidationError:r,getEditingCellValue:(e,t)=>n.value[`${e}-${t}`],updateEditingCellValue:(e,t,r)=>{n.value[`${e}-${t}`]=r},findRowData:a}}function Ae(e){let t=j(!1),n=j(null),r=j({}),i=m(()=>{if(!n.value)return-1;let t=e.data();return!t||!Array.isArray(t)?-1:t.findIndex(t=>e.rowKey(t)===n.value)}),a=()=>{n.value=null,r.value={}};return{isModalVisible:t,editingData:r,editingRowKey:n,editingRowIndex:i,startEdit:i=>{console.log(`🚀 开始编辑:`,i);let a=e.data();if(!a||!Array.isArray(a)){console.warn(`数据源为空或不是数组`);return}let o=a.findIndex(t=>e.rowKey(t)===i);if(o===-1){console.warn(`未找到对应的行数据:`,i);return}let s=a[o];console.log(`找到行数据:`,s),n.value=i,r.value=JSON.parse(JSON.stringify(s)),console.log(`编辑数据已准备:`,r.value),t.value=!0},saveEdit:async o=>{let s=o||r.value,c=i.value;if(console.log(`💾 保存编辑:`,{rowKey:n.value,index:c,data:s}),c===-1){console.warn(`无法找到编辑行的索引`);return}try{await e.onSave?.(s,c),t.value=!1,a(),console.log(`✅ 保存成功`)}catch(e){throw console.error(`❌ 保存失败:`,e),e}},cancelEdit:async()=>{console.log(`🚫 取消编辑`);try{let t=i.value;if(n.value&&t>-1){let n=e.data();n&&n[t]&&await e.onCancel?.(n[t],t)}}finally{t.value=!1,a()}},updateEditingData:e=>{r.value={...e}},resetEditingState:a,isEditingRow:e=>n.value===e&&t.value,getEditingRowData:e=>n.value===e?r.value:null}}const je=e=>({expandedKeys:j([...e.defaultExpandedKeys||[]]),expandDataMap:j(new Map),loadingMap:j(new Map),checkedKeys:e.enableSelection?j([...e.defaultCheckedKeys||[]]):j([]),childSelections:(e.enableChildSelection,j(new Map))}),Me=e=>{let t=m(()=>P(e.data)),n=e.rowKey;return{data:t,getRowKey:n,getChildRowKey:e.childRowKey||(e=>e.id),findRow:e=>t.value.find(t=>n(t)===e),isRowExpandable:e.rowExpandable||(()=>!0),isRowCheckable:e.rowCheckable||(()=>!0),isChildRowCheckable:e.childRowCheckable||(()=>!0)}},Ne=(e,t,n)=>{let r=async r=>{if(!n.onLoadData)return[];let i=t.getRowKey(r),a=e.expandDataMap.value.get(i);if(a)return a;e.loadingMap.value.set(i,!0);try{let t=await n.onLoadData(r)||[];return e.expandDataMap.value.set(i,t),n.enableChildSelection&&!e.childSelections.value.has(i)&&e.childSelections.value.set(i,[]),t}catch(e){return console.error(`加载展开数据失败:`,e),[]}finally{e.loadingMap.value.set(i,!1)}};return{loadData:r,handleRowExpand:async(i,a)=>{let o=t.getRowKey(i);a?(await r(i),e.expandedKeys.value.includes(o)||(e.expandedKeys.value=[...e.expandedKeys.value,o])):e.expandedKeys.value=e.expandedKeys.value.filter(e=>e!==o),n.onExpandChange?.(e.expandedKeys.value)},expandAll:async()=>{let i=t.data.value.filter(t.isRowExpandable);await Promise.allSettled(i.map(r)),e.expandedKeys.value=i.map(t.getRowKey),n.onExpandChange?.(e.expandedKeys.value)},collapseAll:()=>{e.expandedKeys.value=[],e.childSelections.value.clear(),n.onExpandChange?.(e.expandedKeys.value)},handleExpandChange:async i=>{let a=i.filter(t=>!e.expandedKeys.value.includes(t)),o=e.expandedKeys.value.filter(e=>!i.includes(e));await Promise.all(a.map(async e=>{let n=t.findRow(e);n&&await r(n)}));for(let t of o)e.childSelections.value.delete(t);e.expandedKeys.value=i,n.onExpandChange?.(i)}}},Pe=(e,t,n)=>{let r=m(()=>t.data.value.filter(t.isRowCheckable));return{selectAll:()=>{if(!n.enableSelection)return;let i=r.value.map(t.getRowKey),a=n.maxSelection?i.slice(0,n.maxSelection):i;e.checkedKeys.value=a;let o=r.value.filter(e=>a.includes(t.getRowKey(e)));n.onSelectionChange?.(a,o,e.childSelections.value)},clearSelection:()=>{n.enableSelection&&(e.checkedKeys.value=[],n.onSelectionChange?.([],[],e.childSelections.value))},handleSelectionChange:r=>{if(!n.enableSelection)return;e.checkedKeys.value=r;let i=t.data.value.filter(e=>r.includes(t.getRowKey(e)));n.onSelectionChange?.(r,i,e.childSelections.value)},selectedRowsCount:m(()=>e.checkedKeys.value.length),selectableRows:r}},Fe=(e,t)=>{let n=!!(t.enableParentChildLink&&t.enableSelection&&t.enableChildSelection);return{handleParentChildLink:(r,i,a)=>{if(!n)return;let o=t.parentChildLinkMode===`strict`?i.length===a&&a>0:i.length>0,s=[...e.checkedKeys.value],c=s.includes(r);o&&!c?e.checkedKeys.value=[...s,r]:!o&&c&&(e.checkedKeys.value=s.filter(e=>e!==r))},isLinkEnabled:n}},Ie=(e,t,n,r)=>({totalChildSelections:m(()=>r.enableChildSelection?Array.from(e.childSelections.value.values()).reduce((e,t)=>e+t.length,0):0),clearAllSelections:()=>{e.checkedKeys.value=[],e.childSelections.value.clear(),r.onSelectionChange?.([],[],e.childSelections.value)},handleChildSelectionChange:(i,a)=>{if(!r.enableChildSelection)return;e.childSelections.value.set(i,a);let o=e.expandDataMap.value.get(i)||[],s=o.filter(e=>a.includes(t.getChildRowKey(e)));r.onChildSelectionChange?.(i,a,s),n.isLinkEnabled&&n.handleParentChildLink(i,a,o.length)}}),Le=(e,t,n,r,i)=>{if(!i.enableChildSelection)return;let a=t.childSelections.value.get(e)||[],o=t.expandDataMap.value.get(e)||[],s=n.findRow(e);if(!s)return;let c=o.filter(e=>n.isChildRowCheckable(e,s));return{selectedKeys:a,isAllChecked:c.length>0&&c.every(e=>a.includes(n.getChildRowKey(e))),selectAll:()=>{let t=c.map(e=>n.getChildRowKey(e));r.handleChildSelectionChange(e,t)},clearAll:()=>{r.handleChildSelectionChange(e,[])}}},Re=()=>C(`div`,{class:`flex justify-center items-center py-8`},[C(de,{size:`small`}),C(`span`,{class:`ml-2 text-gray-500`},`加载中...`)]),ze=()=>C(`div`,{class:`text-center py-8 text-gray-400`},`暂无数据`),Be=e=>{if(!e.length)return[];let t=e[0];return!t||typeof t!=`object`?[]:[{title:`序号`,key:`_index`,width:60,render:(e,t)=>t+1},...Object.keys(t).filter(e=>![`id`,`key`].includes(e)).map(e=>({key:e,title:e.charAt(0).toUpperCase()+e.slice(1),width:120,ellipsis:{tooltip:!0}}))]},Ve=(e,t,n,r,i,a)=>{let o=[];return a.enableChildSelection&&o.push({type:`selection`,multiple:!0}),o.push(...Be(t)),C(`div`,{class:`p-4 bg-gray-50`},[C(`div`,{class:`mb-2 text-sm text-gray-600`},`详细信息 (${t.length} 条)`),C(oe,{data:t,columns:o,size:`small`,striped:!0,checkedRowKeys:n?.selectedKeys||[],rowKey:e=>r.getChildRowKey(e),onUpdateCheckedRowKeys:a.enableChildSelection?t=>{i.handleChildSelectionChange(e,t)}:void 0})])},He=(e,t,n,r,i)=>{let a=a=>{let o=t.getRowKey(a),s=e.expandDataMap.value.get(o)||[],c=e.loadingMap.value.get(o)||!1;!s.length&&!c&&e.expandedKeys.value.includes(o)&&D(()=>{r.loadData(a)});let l=Le(o,e,t,n,i);return i.renderContent?i.renderContent(a,s,c,l):c?Re():s.length?Ve(o,s,l,t,n,i):ze()};return{getTableColumns:e=>e.map(e=>e.type===`selection`&&i.enableSelection?{type:`selection`,disabled:e=>!t.isRowCheckable(e),multiple:!i.maxSelection||i.maxSelection>1}:e.type===`expand`&&(i.onLoadData||i.renderContent)?{type:`expand`,expandable:t.isRowExpandable,renderExpand:a}:e)}};function Ue(e){let t=je(e),n=Me(e),r=Ne(t,n,e),i=Pe(t,n,e),a=Ie(t,n,Fe(t,e),e),o=He(t,n,a,r,e);return e.onSelectionChange&&e.enableSelection&&I(()=>{if(!e.onSelectionChange)return;let r=n.data.value.filter(e=>t.checkedKeys.value.includes(n.getRowKey(e))),i=t.checkedKeys.value.length>0,a=n.data.value.length>0;(i||!a)&&e.onSelectionChange(t.checkedKeys.value,r,t.childSelections.value)}),e.defaultExpandedKeys?.length&&D(async()=>{let i=e.defaultExpandedKeys||[];if(i.length===0)return;let a=i.map(async e=>{let i=n.findRow(e);i&&!t.expandDataMap.value.has(e)&&await r.loadData(i)});await Promise.allSettled(a)}),{expandedKeys:t.expandedKeys,checkedKeys:t.checkedKeys,childSelections:t.childSelections,selectedRowsCount:i.selectedRowsCount,totalChildSelections:a.totalChildSelections,expandAll:r.expandAll,collapseAll:r.collapseAll,expandRow:async i=>{if(t.expandedKeys.value.includes(i))return;let a=n.findRow(i);a&&(await r.loadData(a),t.expandedKeys.value=[...t.expandedKeys.value,i],e.onExpandChange?.(t.expandedKeys.value,a,!0))},handleExpandChange:r.handleExpandChange,selectAll:i.selectAll,clearSelection:i.clearSelection,clearAllSelections:a.clearAllSelections,handleSelectionChange:i.handleSelectionChange,getTableColumns:o.getTableColumns,expandDataMap:t.expandDataMap,loadingMap:t.loadingMap}}const We={text:`Robot Admin`,textSize:16,textColor:`rgba(128, 128, 128, 0.3)`,font:`Microsoft JhengHei`,opacity:.3,rotate:-20,position:`repeat`,xGap:200,yGap:120},Ge={scale:1,quality:.92,format:`png`,backgroundColor:`#ffffff`,logging:!1,allowTaint:!0,useCORS:!0},Ke={orientation:`portrait`,paperSize:`A4`,margin:`10mm 10mm 0 10mm`,style:`@page { margin: 10mm 10mm 0 10mm; } @media print { body { margin: 0; } }`,header:``,footer:``,showModal:!1,modalMessage:`正在准备打印...`,onLoadingStart:()=>{},onLoadingEnd:()=>{},onPrintDialogClose:()=>{}};function qe(e,t,n,r){e.save(),e.translate(t/2,n/2),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()}function Je(e,t,n,r){[[50,50],[t-50,50],[50,n-50],[t-50,n-50]].forEach(([t,n])=>{e.save(),e.translate(t,n),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()})}function Ye(e,t,n,r){let i=Math.sqrt(t*t+n*n),a=t/2,o=n/2;e.save(),e.translate(a,o),e.rotate(Math.atan2(n,t));let s=Math.floor(i/r.xGap),c=-i/2;for(let t=0;t<=s;t++){let n=c+t*r.xGap;e.fillText(r.text,n,0)}e.restore()}function Xe(e,t,n,r){let i=Math.ceil(t/r.xGap)+1,a=Math.ceil(n/r.yGap)+1;for(let t=0;t<a;t++)for(let n=0;n<i;n++){let i=n*r.xGap+r.xGap/2,a=t*r.yGap+r.yGap/2;e.save(),e.translate(i,a),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()}}function Ze(e,t){let n=e.getContext(`2d`);if(!n)return e;let r={...We,...t},{width:i,height:a}=e;n.save(),n.globalAlpha=r.opacity,n.font=`${r.textSize}px ${r.font}`,n.fillStyle=r.textColor,n.textAlign=`center`,n.textBaseline=`middle`;let o={center:qe,corner:Je,diagonal:Ye,repeat:Xe};return(o[r.position]||o.repeat)(n,i,a,r),n.restore(),e}async function Qe(e,t={}){let n={...Ge,...t};return await R(e,{logging:n.logging,scale:n.scale,allowTaint:n.allowTaint,useCORS:n.useCORS,backgroundColor:n.backgroundColor,onclone:e=>{let t=e.body;t.style.transform=`scale(1)`}})}function $e(e,t=`png`,n=.92){let r=`image/${t}`;return t===`png`?e.toDataURL(r):e.toDataURL(r,n)}function et(e,t=`screenshot-${new Date().toISOString().slice(0,10)}.png`,n=`png`){let r=$e(e,n),i=document.createElement(`a`);i.download=t,i.href=r,document.body.appendChild(i),i.click(),document.body.removeChild(i)}let tt=null;function nt(){tt=setInterval(()=>{window.dispatchEvent(new Event(`focus`))},500)}function rt(){tt&&=(clearInterval(tt),null)}function it(e,t={}){let n={...Ke,...t};return new Promise((t,r)=>{try{nt(),n.onLoadingStart?.(),he({printable:e,type:`image`,style:n.style,showModal:n.showModal,modalMessage:n.modalMessage,onLoadingEnd:n.onLoadingEnd,onPrintDialogClose:()=>{rt(),n.onPrintDialogClose?.(),t()}})}catch(e){rt(),r(e)}})}function at(e,t,n){let r=0,i=0;e.forEach(e=>{let{width:n,height:a}=e;t===`horizontal`?(r+=n,i=Math.max(i,a)):(r=Math.max(r,n),i+=a)});let a=(e.length-1)*n;return t===`horizontal`?r+=a:i+=a,{totalWidth:r,totalHeight:i}}function ot(e,t){let{orientation:n,spacing:r,backgroundColor:i,totalWidth:a,totalHeight:o}=t,s=document.createElement(`canvas`);s.width=a,s.height=o;let c=s.getContext(`2d`);if(!c)throw Error(`无法创建画布上下文`);c.fillStyle=i,c.fillRect(0,0,a,o);let l=0,u=0;return e.forEach(e=>{c.drawImage(e,l,u),n===`horizontal`?l+=e.width+r:u+=e.height+r}),s}function st(e,t,n){return e.length?{orientation:t.orientation||`vertical`,spacing:t.spacing||20,backgroundColor:t.backgroundColor||`#ffffff`}:(n.warning(`没有要打印的元素`),null)}async function ct(e,t,n,r){let{orientation:i,spacing:a,backgroundColor:o}=n;r(10);let s=await Promise.all(e.map(e=>Qe(e,t.capture)));r(50);let{totalWidth:c,totalHeight:l}=at(s,i,a);return r(60),ot(s,{orientation:i,spacing:a,backgroundColor:o,totalWidth:c,totalHeight:l})}async function lt(e,t,n,r,i){r(70),t.watermark&&Ze(e,t.watermark),r(90),await it($e(e,t.capture?.format,t.capture?.quality),t.print),r(100),i.success(`合并打印完成,共合并 ${n} 个元素`)}function ut(){let e;try{e=f()}catch{e={success:e=>console.log(`[PrintWatermark]`,e),error:e=>console.error(`[PrintWatermark]`,e),warning:e=>console.warn(`[PrintWatermark]`,e)}}let t=j(!1),n=j(0),r=e=>{n.value=Math.max(0,Math.min(100,e))},i=async(e,t={})=>{try{r(0),r(30);let n=await Qe(e,t.capture);r(60),t.watermark&&Ze(n,t.watermark),r(90);let i=$e(n,t.capture?.format||`png`,t.capture?.quality||.92);return r(100),i}catch(e){throw console.error(`截图失败:`,e),Error(`截图失败: ${e instanceof Error?e.message:`未知错误`}`)}},a=async(n,a={})=>{t.value=!0,r(0);try{await D();let t=await i(n,a);r(95),await it(t,a.print),r(100),e.success(`打印完成`)}catch(t){throw console.error(`打印失败:`,t),e.error(`打印失败: ${t instanceof Error?t.message:`未知错误`}`),t}finally{t.value=!1,r(0)}},o=async(n,r,i={})=>{t.value=!0;try{await D();let t=await Qe(n,i.capture);i.watermark&&Ze(t,i.watermark);let a=i.capture?.format||`png`,o=`screenshot-${new Date().toISOString().slice(0,19).replace(/:/g,`-`)}.${a}`;et(t,r||o,a),e.success(`下载完成`)}catch(t){throw console.error(`下载失败:`,t),e.error(`下载失败`),t}finally{t.value=!1}},s=async(e,t=`Robot Admin`)=>a(e,{watermark:{text:t,position:`repeat`,textColor:`rgba(128, 128, 128, 0.3)`}}),c=async(e,t={})=>{let n=e.length;r(10);let a=e.map(async(e,a)=>{let o=await i(e,t);return r(10+(a+1)/n*70),o});return Promise.all(a)},l=async(e,t={})=>{await e.reduce(async(n,r,i)=>{await n,await it(r,t),i<e.length-1&&await new Promise(e=>{setTimeout(()=>e(),1e3)})},Promise.resolve())};return{loading:t,progress:n,captureWithWatermark:i,printWithWatermark:a,downloadScreenshot:o,quickPrint:s,batchCapture:c,batchPrint:async(n,i={})=>{if(!n.length){e.warning(`没有要打印的元素`);return}t.value=!0;try{r(0);let t=await c(n,i);r(80),await l(t,i.print),r(100),e.success(`批量打印完成,共 ${n.length} 个元素`)}catch(t){throw console.error(`批量打印失败:`,t),e.error(`批量打印失败`),t}finally{t.value=!1,r(0)}},mergePrint:async(n,i={},a={})=>{let o=st(n,a,e);if(o){t.value=!0;try{await lt(await ct(n,i,o,r),i,n.length,r,e)}catch(t){throw console.error(`合并打印失败:`,t),e.error(`合并打印失败`),t}finally{t.value=!1,r(0)}}},createPreset:(e,t)=>({use:e=>a(e,t),download:(e,n)=>o(e,n,t)}),updateProgress:r,utils:{captureElement:Qe,drawWatermark:Ze,canvasToDataURL:$e,downloadCanvas:et,printImage:it}}}const dt={table:{watermark:{text:`Robot Admin - 数据表格`,position:`repeat`,textColor:`rgba(100, 100, 100, 0.25)`,textSize:14,xGap:250,yGap:120},capture:{scale:1.2},print:{orientation:`landscape`,style:`@page { margin: 8mm; } body { font-family: Arial, sans-serif; }`}},form:{watermark:{text:`Robot Admin - 表单数据`,position:`diagonal`,textColor:`rgba(150, 150, 150, 0.2)`,textSize:16},print:{orientation:`portrait`}},report:{watermark:{text:`Robot Admin - 机密报告`,position:`center`,textColor:`rgba(200, 50, 50, 0.15)`,textSize:24},capture:{quality:.95,format:`png`}}};function ft(){return`row_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function pt(e,t){return typeof t==`function`?t(e):e[t]}function mt(e,t){let n=e?.()||{},r=typeof t==`string`?t:`id`;return{...n,[r]:ft()}}function ht(t,n={}){let r=me(),i={rowKey:`id`,enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0,confirmDelete:!0,deleteConfirmText:`确定要删除选中的行吗?此操作不可撤销。`,printPreset:`table`,printTargetSelector:`.c-table-wrapper`,defaultRowData:()=>({}),...n},a=j(null),o=j(!1),s=m(()=>a.value===null?null:t.value.find(e=>pt(e,i.rowKey)===a.value)||null),c=m(()=>s.value?t.value.findIndex(e=>e===s.value):-1),l=m(()=>c.value>0),u=m(()=>c.value>=0&&c.value<t.value.length-1),{loading:d,progress:f,printWithWatermark:p,downloadScreenshot:h,quickPrint:g}=ut(),_=()=>{if(i.printOptions)return i.printOptions;let e=dt[i.printPreset||`table`];return i.printWatermarkText&&e.watermark?{...e,watermark:{...e.watermark,text:i.printWatermarkText}}:e},v=e=>{t.value=e,i.onRowChange?.(e)},y=()=>{if(!i.enableAdd)return;let e=mt(i.defaultRowData,i.rowKey);v([...t.value,e]),i.onRowAdd?.(e),r.success(`添加行成功`)},b=()=>{if(!i.enableInsert||!s.value){r.warning(`请先选择一行数据`);return}let e=mt(i.defaultRowData,i.rowKey),n=[...t.value];n.splice(c.value+1,0,e),v(n),i.onRowAdd?.(e),r.success(`插入行成功`)},x=()=>{if(!i.enableDelete||!s.value){r.warning(`请先选择要删除的行`);return}i.confirmDelete?o.value=!0:S()},S=()=>{if(!s.value)return;let e=s.value,n=c.value;v(t.value.filter((e,t)=>t!==n)),a.value=null,i.onSelectionChange?.(null,null),i.onRowDelete?.(e,n),r.success(`删除行成功`),o.value=!1},w=()=>{if(!i.enableCopy||!s.value){r.warning(`请先选择要复制的行`);return}let e=s.value,n=typeof i.rowKey==`string`?i.rowKey:`id`,{[n]:a,...o}=e,c={...o,[n]:ft()};v([...t.value,c]),i.onRowCopy?.(e,c),r.success(`复制行成功`)},T=()=>{if(!i.enableMove||!l.value)return;let e=c.value,n=[...t.value],a=n[e];[n[e],n[e-1]]=[n[e-1],n[e]],v(n),i.onRowMove?.(a,e,e-1),r.success(`行已上移`)},E=()=>{if(!i.enableMove||!u.value)return;let e=c.value,n=[...t.value],a=n[e];[n[e],n[e+1]]=[n[e+1],n[e]],v(n),i.onRowMove?.(a,e,e+1),r.success(`行已下移`)},D=e=>{let n=t.value.find(t=>pt(t,i.rowKey)===e);n&&(a.value=e,i.onSelectionChange?.(e,n))},O=()=>{a.value=null,i.onSelectionChange?.(null,null)},ee=async e=>{if(!e.value){r.error(`打印元素未找到`);return}let t=_();await p(e.value,t)};return k(()=>{a.value=null,o.value=!1}),{selectedRowKey:a,selectedRowData:s,selectedRowIndex:c,canMoveUp:l,canMoveDown:u,deleteConfirmVisible:o,printLoading:d,printProgress:f,addRow:y,insertRow:b,deleteRow:x,confirmDelete:S,copyRow:w,moveRowUp:T,moveRowDown:E,selectRow:D,clearSelection:O,handlePrint:ee,handleDownload:async(e,t)=>{if(!e.value){r.error(`下载元素未找到`);return}let n=_();await h(e.value,t,n)},handleQuickPrint:async e=>{if(!e.value){r.error(`打印元素未找到`);return}let t=i.printWatermarkText||`Robot Admin`;await g(e.value,t)},enhanceColumns:e=>{let t=[...e];return i.enableRadioSelection&&t.unshift({key:`_radio_selection`,title:`选择`,width:80,align:`center`,editable:!1,render:e=>{let t=pt(e,i.rowKey);return C(`div`,{class:`flex justify-center`},[C(`input`,{type:`radio`,name:`table-radio-selection`,checked:a.value===t,class:`cursor-pointer accent-blue-500 scale-110`,onChange:e=>{e.target.checked&&D(t)}})])}}),t},renderToolbar:()=>{let t=[];i.enablePrint&&t.push(C(z,{loading:d.value,type:`primary`,ghost:!0,onClick:async()=>{try{let e=document.querySelector(i.printTargetSelector);e?await ee(M(e)):console.warn(`未找到表格容器元素`)}catch(e){console.error(`打印失败:`,e)}}},{icon:()=>C(e,{name:`mdi:printer`,title:`打印`}),default:()=>`打印`}));let n=[];return i.enableAdd&&n.push(C(z,{onClick:y,type:`primary`},{icon:()=>C(e,{name:`mdi:plus`,title:`增行`}),default:()=>`增行`})),i.enableInsert&&n.push(C(G,{disabled:!!s.value},{trigger:()=>C(z,{onClick:b,disabled:!s.value,type:`primary`,ghost:!0},{icon:()=>C(e,{name:`mdi:table-row-plus-after`,title:`插行`}),default:()=>`插行`}),default:()=>`请先选择一行数据`})),i.enableDelete&&n.push(C(G,{disabled:!!s.value},{trigger:()=>C(z,{onClick:x,disabled:!s.value,type:`error`,ghost:!0},{icon:()=>C(e,{name:`mdi:delete`,title:`删除行`}),default:()=>`删除行`}),default:()=>`请先选择要删除的行`})),i.enableCopy&&n.push(C(G,{disabled:!!s.value},{trigger:()=>C(z,{onClick:w,disabled:!s.value,type:`info`,ghost:!0},{icon:()=>C(e,{name:`mdi:content-copy`,title:`复制行`}),default:()=>`复制行`}),default:()=>`请先选择要复制的行`})),i.enableMove&&n.push(C(G,{disabled:l.value},{trigger:()=>C(z,{onClick:T,disabled:!l.value,type:`warning`,ghost:!0},{icon:()=>C(e,{name:`mdi:arrow-up`,title:`上移`}),default:()=>`上移`}),default:()=>s.value?`已经是第一行`:`请先选择数据`}),C(G,{disabled:u.value},{trigger:()=>C(z,{onClick:E,disabled:!u.value,type:`warning`,ghost:!0},{icon:()=>C(e,{name:`mdi:arrow-down`,title:`下移`}),default:()=>`下移`}),default:()=>s.value?`已经是最后一行`:`请先选择数据`})),n.length>0&&t.push(C(B,{},()=>n)),C(`div`,{class:`dynamic-rows-toolbar mb-4 flex justify-end`},[C(U,{},()=>t)])},renderConfirmModal:()=>C(le,{show:o.value,"onUpdate:show":e=>{o.value=e},preset:`dialog`,title:`确认删除`,content:i.deleteConfirmText,positiveText:`确认删除`,negativeText:`取消`,onPositiveClick:S})}}function gt(e){let{config:t,data:n,rowKey:r,emit:i}=e,a={onSave:async(e,t,r)=>{if(!e||t<0||t>=n().length)return;let a=[...n()];a[t]={...a[t],...e},i(`update:data`,a),await D(),i(`save`,a[t],t,r)},onCancel:(e,t)=>{i(`cancel`,e,t)},onExpandChange:(e,t,n)=>{i(`expand-change`,e,t,n)},onSelectionChange:(e,t,n)=>{i(`selection-change`,e,t,n)},onChildSelectionChange:(e,t,n)=>{i(`child-selection-change`,e,t,n)},onRowChange:e=>{i(`update:data`,e),t.dynamicRows?.onRowChange?.(e)},onRowSelectionChange:(e,n)=>{i(`row-selection-change`,e,n),t.dynamicRows?.onSelectionChange?.(e,n)},onRowAdd:e=>{i(`row-add`,e),t.dynamicRows?.onRowAdd?.(e)},onRowDelete:(e,n)=>{i(`row-delete`,e,n),t.dynamicRows?.onRowDelete?.(e,n)},onRowCopy:(e,n)=>{i(`row-copy`,e,n),t.dynamicRows?.onRowCopy?.(e,n)},onRowMove:(e,n,r)=>{i(`row-move`,e,n,r),t.dynamicRows?.onRowMove?.(e,n,r)}},o=()=>({rowEdit:Z({data:n,rowKey:r,onSave:a.onSave,onCancel:a.onCancel,columns:e.columns}),cellEdit:Q({data:n,rowKey:r,onSave:a.onSave,columns:e.columns}),modalEdit:Ae({data:n,rowKey:r,onSave:a.onSave,onCancel:a.onCancel})}),s=()=>t.expandable||t.enableSelection||t.enableChildSelection?Ue({data:m(()=>n()),rowKey:r,childRowKey:e=>e.id,defaultExpandedKeys:t.defaultExpandedKeys,onLoadData:t.onLoadExpandData,renderContent:t.renderExpandContent,rowExpandable:t.rowExpandable,enableSelection:t.enableSelection,defaultCheckedKeys:t.defaultCheckedKeys,rowCheckable:t.rowCheckable,maxSelection:t.maxSelection,enableChildSelection:t.enableChildSelection,childRowCheckable:t.childRowCheckable,enableParentChildLink:t.enableParentChildLink,parentChildLinkMode:t.parentChildLinkMode,onExpandChange:a.onExpandChange,onSelectionChange:a.onSelectionChange,onChildSelectionChange:a.onChildSelectionChange}):null,c=()=>{if(!t.dynamicRows)return null;let e={...t.dynamicRows,onRowChange:a.onRowChange,onSelectionChange:a.onRowSelectionChange,onRowAdd:a.onRowAdd,onRowDelete:a.onRowDelete,onRowCopy:a.onRowCopy,onRowMove:a.onRowMove};return ht(m(()=>n()),e)},l=o(),u=s(),d=c();return{editStates:l,expandState:u,dynamicRowsState:d,stateManager:{edit:{start(e,n){let r=t.editMode;r===`modal`?l.modalEdit.startEdit(e):r===`cell`&&n?l.cellEdit.startEditCell(e,n):(r===`row`||r===`both`)&&l.rowEdit.startEditRow(e)},cancel(){l.modalEdit.isModalVisible.value?l.modalEdit.cancelEdit():l.cellEdit.editingCell.value.rowKey?l.cellEdit.cancelEditCell():l.rowEdit.editingRowKey.value&&l.rowEdit.cancelEditRow()},async save(){l.modalEdit.isModalVisible.value?await l.modalEdit.saveEdit():l.cellEdit.editingCell.value.rowKey?await l.cellEdit.saveEditCell():l.rowEdit.editingRowKey.value&&await l.rowEdit.saveEditRow()},isEditing(e,n){return t.editMode===`modal`?l.modalEdit.isEditingRow(e):n?l.cellEdit.isEditingCell(e,n):l.rowEdit.isEditingRow(e)},getEditingData(){return l.modalEdit.isModalVisible.value?l.modalEdit.editingData:l.rowEdit.editingRowKey.value?l.rowEdit.getEditingRowData(l.rowEdit.editingRowKey.value):null}},expand:{async row(e){if(u){let t=[...u.expandedKeys.value];t.includes(e)||(t.push(e),u.handleExpandChange(t))}},collapse(e){if(u){let t=u.expandedKeys.value.filter(t=>t!==e);u.handleExpandChange(t)}},async toggle(e){u?.expandedKeys.value.includes(e)?this.collapse(e):await this.row(e)},async all(){await u?.expandAll()},collapseAll(){u?.collapseAll()},isExpanded(e){return u?.expandedKeys.value.includes(e)??!1}},selection:{select(e){if(u?.checkedKeys.value&&!u.checkedKeys.value.includes(e)){let t=[...u.checkedKeys.value,e];u.handleSelectionChange(t)}},unselect(e){if(u?.checkedKeys.value){let t=u.checkedKeys.value.filter(t=>t!==e);u.handleSelectionChange(t)}},all(){u?.selectAll()},clear(){u?.clearSelection()},isSelected(e){return u?.checkedKeys.value.includes(e)??!1},getSelected(){return u?.checkedKeys.value?n().filter(e=>u.checkedKeys.value.includes(r(e))):[]}},childSelection:{select(e,t){if(u?.childSelections.value){let n=u.childSelections.value.get(e)||[];if(!n.includes(t)){let r=[...n,t];u.childSelections.value.set(e,r),i(`child-selection-change`,e,r,[])}}},unselect(e,t){if(u?.childSelections.value){let n=(u.childSelections.value.get(e)||[]).filter(e=>e!==t);u.childSelections.value.set(e,n),i(`child-selection-change`,e,n,[])}},selectAll(e){if(u?.childSelections.value&&u.expandDataMap?.value){let t=u.expandDataMap.value.get(e)||[],n=t.map(e=>e.id);u.childSelections.value.set(e,n),i(`child-selection-change`,e,n,t)}},clear(e){u?.childSelections.value&&(u.childSelections.value.set(e,[]),i(`child-selection-change`,e,[],[]))},getSelected(e){if(!u?.childSelections.value||!u.expandDataMap?.value)return[];let t=u.childSelections.value.get(e)||[];return(u.expandDataMap.value.get(e)||[]).filter(e=>t.includes(e.id))}},dynamicRows:{add(){d?.addRow()},insert(){d?.insertRow()},delete(){d?.deleteRow()},copy(){d?.copyRow()},moveUp(){d?.moveRowUp()},moveDown(){d?.moveRowDown()},clearSelection(){d?.clearSelection()},getSelected(){return d?.selectedRowData.value||null},async print(e){d&&e&&await d.handlePrint(M(e))},async download(e,t){d&&e&&await d.handleDownload(M(e),t)}},clearAllSelections(){u?.clearAllSelections()}},expandedKeys:m(()=>u?.expandedKeys.value??[]),checkedKeys:m(()=>u?.checkedKeys.value??[]),eventHandlers:a}}const $={enabled:!0,page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};function _t(e){let{data:t,config:n,emit:r}=e,i=j(1),a=j(10),o=m(()=>typeof t==`function`?t()||[]:P(t)||[]),s=m(()=>{if(!n.value?.enabled)return o.value;let e=(i.value-1)*a.value,t=e+a.value;return o.value.slice(e,t)}),c=m(()=>n.value?.enabled?{page:i.value,pageSize:a.value,itemCount:o.value.length,showSizePicker:n.value.showSizePicker??$.showSizePicker,showQuickJumper:n.value.showQuickJumper??$.showQuickJumper,pageSizes:n.value.pageSizes??$.pageSizes,simple:n.value.simple??$.simple,size:n.value.size??$.size,prefix:e=>`共 ${e.itemCount} 条`,suffix:e=>`第 ${e.startIndex+1}-${e.endIndex} 条`,"onUpdate:page":l,"onUpdate:pageSize":u}:null),l=e=>{i.value=e,r?.(`pagination-change`,e,a.value)},u=e=>{a.value=e,i.value=1,r?.(`pagination-change`,1,e)};return I(()=>{n.value?.enabled&&(i.value=n.value.page??$.page,a.value=n.value.pageSize??$.pageSize)}),F(()=>o.value.length,e=>{if(n.value?.enabled&&i.value>1){let t=Math.ceil(e/a.value);i.value>t&&(i.value=Math.max(1,t))}}),{currentPage:i,currentPageSize:a,paginatedData:s,paginationConfig:c,handlePageChange:l,handlePageSizeChange:u,resetToFirstPage:()=>{i.value!==1&&l(1)},getTotalPages:()=>!n.value?.enabled||a.value===0?1:Math.ceil(o.value.length/a.value)}}function vt(t){let{actions:n,config:i,tableManager:o,rowKey:s,emit:c,onViewDetail:u}=t,p=f(),m=d(),h=e=>n.value?.[e]!==!1,g=e=>e!==!1&&typeof e==`function`,_=e=>e&&typeof e==`object`&&`data`in e?e.data:e,v=(t,n,i=`primary`,a)=>C(r,{size:`small`,type:i,quaternary:!0,onClick:a},()=>[C(e,{name:t,size:14,title:n})]),y=(e,t)=>{let r=s(e),a=n.value?.edit;i.value.editMode===`modal`?o.editStates.modalEdit.startEdit(r,{...e},a):o.editStates.rowEdit.startEditRow(r,a)},b=async(e,t,n)=>{try{await e(t,n),p.success(`删除成功`),c(`row-delete`,t,n)}catch(e){throw console.error(`删除失败:`,e),p.error(`删除失败`),e}},x=(e,t)=>{let r=n.value?.delete;g(r)&&m.warning({title:`确认删除`,content:`确定要删除这条记录吗?`,positiveText:`确定`,negativeText:`取消`,onPositiveClick:()=>b(r,e,t)})},S=async(e,t)=>{let r=n.value?.detail;if(!g(r)){u?.(e);return}try{let n=_(await r(e,t));u?.(n||e)}catch(t){console.error(`获取详情失败:`,t),p.error(`获取详情失败`),u?.(e)}},w=e=>o.editStates.rowEdit.isEditingRow(e)?[v(`mdi:check`,`保存`,`primary`,()=>o.editStates.rowEdit.saveEditRow()),v(`mdi:close`,`取消`,`default`,()=>o.editStates.rowEdit.cancelEditRow())]:[v(`mdi:pencil`,`编辑`,`warning`,()=>o.editStates.rowEdit.startEditRow(e))],T=(e,t)=>{let n=[];return h(`detail`)&&n.push(v(`mdi:eye`,`详情`,`info`,()=>S(e,t))),i.value.editMode===`modal`&&(h(`edit`)||i.value.editable)&&n.push(v(`mdi:pencil`,`编辑`,`warning`,()=>y(e,t))),h(`delete`)&&n.push(v(`mdi:delete`,`删除`,`error`,()=>x(e,t))),n},E=(t,r)=>{let i=n.value?.custom;if(!i?.length)return null;let o=i.filter(e=>e.show?e.show(t,r):!0);return o.length?C(a,{options:o.map(n=>{let i=typeof n.label==`function`?n.label(t,r):n.label,a=typeof n.icon==`function`?n.icon(t,r):n.icon;return{label:i,key:n.key,icon:()=>C(e,{name:a,size:14}),disabled:n.disabled?.(t,r)||!1}}),onSelect:e=>{let n=o.find(t=>t.key===e);if(n)try{n.onClick(t,r)}catch(e){console.error(`操作"${n.label}"执行失败:`,e),p.error(`${n.label}失败`)}}},()=>v(`mdi:dots-horizontal`,`更多操作`,`default`,()=>{})):null};return{renderActions:(e,t)=>{if(n.value?.render)return n.value.render(e,t);let r=s(e),a=[`row`,`both`].includes(i.value.editMode);if(a&&o.editStates.rowEdit.isEditingRow(r))return C(l,{size:2,wrap:!1},()=>w(r));let c=[...a?w(r):[],...T(e,t)],u=E(e,t);return u&&c.push(u),C(l,{size:2,wrap:!1},()=>c)},isActionEnabled:h}}const yt=Symbol(`C_TABLE_GLOBAL_CONFIG`),bt={date:{format:`YYYY-MM-DD`},datetime:{format:`YYYY-MM-DD HH:mm:ss`},currency:{prefix:`¥`,precision:2},percent:{precision:2,suffix:`%`},number:{precision:0}};function xt(e,t){if(e==null||e===``)return`-`;let n=new Date(typeof e==`number`?e:String(e));if(Number.isNaN(n.getTime()))return String(e);let r=e=>String(e).padStart(2,`0`);return t.replace(`YYYY`,String(n.getFullYear())).replace(`MM`,r(n.getMonth()+1)).replace(`DD`,r(n.getDate())).replace(`HH`,r(n.getHours())).replace(`mm`,r(n.getMinutes())).replace(`ss`,r(n.getSeconds()))}function St(e,t){if(e==null||e===``)return`-`;let n=Number(e);return Number.isNaN(n)?String(e):n.toLocaleString(`zh-CN`,{minimumFractionDigits:t,maximumFractionDigits:t})}const Ct={date:(e,t)=>xt(e,t.format??`YYYY-MM-DD`),datetime:(e,t)=>xt(e,t.format??`YYYY-MM-DD HH:mm:ss`),currency:(e,t)=>{let n=St(e,t.precision??2);return n===`-`?`-`:`${t.prefix??`¥`}${n}${t.suffix??``}`},percent:(e,t)=>{if(e==null||e===``)return`-`;let n=Number(e);return Number.isNaN(n)?String(e):`${(n*100).toFixed(t.precision??2)}${t.suffix??`%`}`},number:(e,t)=>St(e,t.precision??0)};function wt(e,t,n,r){if(n.fn)return n.fn(e,t);if(n.type===`enum`)return n.mapping?n.mapping[String(e)]??String(e??`-`):String(e??`-`);let i=n.type&&Ct[n.type];return i?i(e,{...{...bt,...r}[n.type],...n.config}):String(e??`-`)}function Tt(){return w(yt,{})}function Et(e,t){let n={...e};if(t.display&&(n.display=e.display?{...t.display,...e.display}:t.display),t.pageSize&&e.pagination!==!1){let r=typeof e.pagination==`object`?e.pagination:{};r.pageSize||(n.pagination={...r,pageSize:t.pageSize})}return n}const Dt={number:s,switch:u,input:o,email:o,mobile:o,date:e=>C(i,{...e,type:`date`,format:`yyyy-MM-dd`}),select:e=>C(c,{...e,options:e.options||[]}),textarea:e=>C(o,{...e,type:`textarea`,rows:3})},Ot={number:`inputNumber`,date:`datePicker`,textarea:`textarea`,select:`select`,switch:`switch`},kt=e=>e.map(e=>{let t=e.required?[{required:!0,message:`请输入${e.title}`,trigger:[`blur`,`input`],validator:async(t,n)=>{if(!n&&n!==0&&n!==!1)throw Error(`请输入${e.title}`)}}]:[];return{prop:e.key,label:e.title||e.key,type:Ot[e.editType||`input`]||`input`,placeholder:`请输入${e.title}`,rules:t,attrs:e.editProps||{},layout:{span:1},show:!0}});function At(e,t,n){if(e.editRender)return e.editRender(t,{},0);let r=e,i={value:t,"onUpdate:value":n,placeholder:`请输入${r.title??``}`,style:{width:`100%`},...e.editProps};return C(Dt[e.editType||`input`]||Dt.input,i)}function jt(e,t,n,r,i){return e.render?e.render(t,n)??String(r??``):e.formatter?wt(r,t,e.formatter,i):String(r??``)}function Mt(t,n,r,i,a){let o=(t,n,r)=>C(`button`,{class:`cell-action-btn cell-action-${t}`,title:n,type:`button`,onClick:e=>{e.stopPropagation(),e.preventDefault(),r(e)}},[C(e,{name:`mdi:${t===`save`?`check`:`close`}`,title:t===`save`?`保存`:`取消`,size:12})]);return C(`div`,{class:`cell-editing-container`},[C(`div`,{class:`cell-editing-input`},[At(t,n,r)]),C(`div`,{class:`cell-editing-actions`},[o(`save`,`保存`,i),o(`cancel`,`取消`,a)])])}function Nt(t,n,r,i,a,o){let s;return s=t.render?t.render(n,r)??String(i??``):t.formatter?wt(i,n,t.formatter,o):String(i??``),C(`div`,{class:`cell-edit-wrapper`},[C(`span`,{class:`cell-value`},s),C(e,{name:`mdi:square-edit-outline`,title:`编辑`,class:`cell-edit-icon`,size:14,clickable:!0,onClick:e=>{e.stopPropagation(),a()}})])}function Pt(e){let{rawColumns:t,config:n,columnWidth:r,rowKey:i,tableManager:a,actionsRenderer:o,editModeChecker:s}=e,c=j([]),l=j(!1),u=e=>{let t=c.value.find(e=>e.key===`_actions`);c.value=[...e,t||{key:`_actions`,title:`操作`,width:180,editable:!1,visible:!0,fixed:`right`}]};F(t,e=>{e?.length&&u(e)},{deep:!0,immediate:!0});let d=(e,t,r,i)=>{let o=e.key??``,s=t[o],{isEditingCell:c,getEditingCellValue:l,updateEditingCellValue:u,saveEditCell:d,cancelEditCell:f,startEditCell:p}=a.editStates.cellEdit;return c(i,o)?Mt(e,l(i,o)??s,e=>u(i,o,e),()=>d(),()=>f()):Nt(e,t,r,s,()=>p(i,o),n.value.formatterConfig)},f=(e,t,r)=>{let o=e.key??``,c=t[o],l=i(t),u=s.value;return u.isNonEditable(e)?jt(e,t,r,c,n.value.formatterConfig):u.isRowEditMode()&&a.editStates.rowEdit.isEditingRow(l)?At(e,a.editStates.rowEdit.getEditingRowData(l)?.[o]??c,e=>a.editStates.rowEdit.updateEditingRowData(l,o,e)):u.isCellEditMode()?d(e,t,r,l):jt(e,t,r,c,n.value.formatterConfig)},p=e=>{let t=e.width||r||180;return typeof t==`number`?t:180},h=e=>{let t=e;return{key:`_index`,title:t.title||`序号`,width:typeof(t.width||50)==`number`&&t.width||50,titleAlign:`center`,align:`center`,render:(e,t)=>t+1,fixed:e.fixed}},g=e=>{let t=e,n={...t,width:p(e),titleAlign:t.titleAlign||`center`,align:t.align||`center`,render:e.render||((t,n)=>f(e,t,n))};return e.fixed&&(n.fixed=e.fixed),e.resizable&&typeof n.width==`number`&&(n.resizable=!0,n.minWidth=e.minWidth||80,n.maxWidth=e.maxWidth||500),n};return{reactiveColumns:c,showSettingsPanel:l,computedColumns:m(()=>{let e=c.value.filter(e=>{let t=e;return t.visible!==!1&&t.key!==`_actions`}).map(e=>e.type===`index`?h(e):g(e));a.dynamicRowsState&&(e=a.dynamicRowsState.enhanceColumns(e)),a.expandState&&(n.value.expandable||n.value.enableSelection)&&(e=a.expandState.getTableColumns(e));let t=c.value.find(e=>e.key===`_actions`);return e.push({key:`_actions`,title:`操作`,align:`center`,titleAlign:`center`,render:o,fixed:t?.fixed}),e}),computedScrollX:m(()=>{if(e.scrollX!==void 0)return e.scrollX;if(c.value.some(e=>{let t=e;return t.fixed&&t.visible!==!1}))return c.value.filter(e=>e.visible!==!1).reduce((e,t)=>e+p(t),0)+200}),handleColumnChange:e=>{c.value=e.map(e=>{let t=e;return{...e,visible:t.visible!==!1,fixed:e.fixed,width:t.width||r,align:t.align||`center`,titleAlign:t.titleAlign||`center`}})}}}function Ft(e){let{data:t,config:n,onReorder:r,onSort:i}=e,a=j(!1),o=null,s=async e=>{if(!(!n.enabled||!e))try{let{default:s}=await import(`sortablejs`),c=e.querySelector(`.n-data-table-tbody`);if(!c)return;o=new s(c,{animation:n.animationDuration??150,handle:n.handleSelector,ghostClass:n.ghostClass??`row-drag-ghost`,chosenClass:n.chosenClass??`row-drag-chosen`,onStart:()=>{a.value=!0},onEnd:e=>{if(a.value=!1,e.oldIndex==null||e.newIndex==null||e.oldIndex===e.newIndex)return;let n=[...t.value],[o]=n.splice(e.oldIndex,1);n.splice(e.newIndex,0,o),r?.(n),i?.(o,e.oldIndex,e.newIndex)}})}catch{}},c=()=>{o&&=(o.destroy(),null)};return k(c),{initRowDrag:s,destroyRowDrag:c,isDragging:a}}function It(e){let{allData:t,rowKey:n,config:r}=e,i=j(new Set),a=m(()=>i.value.size);return F(t,e=>{let t=new Set(e.map(e=>n(e))),r=new Set([...i.value].filter(e=>t.has(e)));r.size!==i.value.size&&(i.value=r)}),{selectedKeys:i,selectedCount:a,getPageCheckedKeys:e=>e.map(e=>n(e)).filter(e=>i.value.has(e)),handlePageSelectionChange:(e,t)=>{let a=new Set(i.value);for(let e of t)a.delete(n(e));for(let t of e){if(r.maxSelection&&a.size>=r.maxSelection)break;a.add(t)}i.value=a},selectAll:()=>{let e=t.value.map(e=>n(e));i.value=new Set(r.maxSelection?e.slice(0,r.maxSelection):e)},clearAll:()=>{i.value=new Set},getSelectedRows:()=>t.value.filter(e=>i.value.has(n(e))),isSelected:e=>i.value.has(e)}}function Lt(e,t){return e.filter(e=>!e.key||e.key.startsWith(`_`)||e.type===`selection`||e.type===`expand`?!1:t?.length?t.includes(e.key):e.visible!==!1)}function Rt(e,t,n){let r=e[t.key];return t.formatter?wt(r,e,t.formatter,n):r==null?``:typeof r==`boolean`?r?`是`:`否`:String(r)}function zt(e,t){return e.includes(t)||e.includes(`"`)||e.includes(`
|
|
2
|
+
`)?`"${e.replace(/"/g,`""`)}"`:e}function Bt(e,t,n){let r=n.csvSeparator??`,`,i=Lt(t,n.columnKeys),a=[];n.includeHeader!==!1&&a.push(i.map(e=>zt(e.title??``,r)).join(r));for(let t of e){let e=i.map(e=>zt(Rt(t,e,n.formatterConfig),r));a.push(e.join(r))}Ht(new Blob([``+a.join(`
|
|
3
|
+
`)],{type:`text/csv;charset=utf-8;`}),`${n.filename||`export`}.csv`)}async function Vt(e,t,n){let r=Lt(t,n.columnKeys);try{let t=await import(`xlsx`),i=r.map(e=>e.title??e.key??``),a=e.map(e=>r.map(t=>Rt(e,t,n.formatterConfig))),o=n.includeHeader===!1?a:[i,...a],s=t.utils.aoa_to_sheet(o),c=t.utils.book_new();t.utils.book_append_sheet(c,s,`Sheet1`),t.writeFile(c,`${n.filename||`export`}.xlsx`)}catch{console.warn(`[C_Table] xlsx 库未安装,已自动降级为 CSV 导出`),Bt(e,t,{...n,format:`csv`})}}function Ht(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.style.display=`none`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}async function Ut(e,t,n={}){n.format===`xlsx`?await Vt(e,t,n):Bt(e,t,n)}const Wt=e=>[{label:e.fixed?`✓ 取消固定`:`不固定`,key:`none`,disabled:!e.fixed},{label:e.fixed===`left`?`✓ 固定左侧`:`固定左侧`,key:`left`,disabled:!1},{label:e.fixed===`right`?`✓ 固定右侧`:`固定右侧`,key:`right`,disabled:!1}],Gt=[`_actions`],Kt=[`selection`,`expand`],qt=e=>Gt.includes(e.key)||Kt.includes(e.type),Jt={class:`column-management-tab`},Yt={class:`search-row`},Xt={class:`resizable-control`},Zt={class:`top-actions-bar`},Qt={class:`stats-info`},$t={class:`quick-actions`},en=[`draggable`,`onDragstart`,`onDragover`,`onDrop`],tn={class:`column-info`},nn={class:`column-controls`},rn={class:`column-details`},an={class:`column-actions`},on={class:`drag-controls`};var sn=t(S({name:`ColumnSettings`,__name:`index`,props:{columns:{},persistKey:{}},emits:[`change`],setup(t,{emit:n}){let r=t,i=n,a=e=>{if(!r.persistKey)return[...e];try{let t=localStorage.getItem(`c_table_cols_${r.persistKey}`);if(!t)return[...e];let n=JSON.parse(t),i=new Map(n.map((e,t)=>[e.key,{...e,order:t}])),a=e.map(e=>{let t=i.get(e.key);return t?{...e,visible:t.visible??e.visible,width:t.width??e.width,fixed:t.fixed??e.fixed}:{...e}});return a.sort((e,t)=>(i.get(e.key)?.order??999)-(i.get(t.key)?.order??999)),a}catch{return[...e]}},o=e=>{if(r.persistKey)try{let t=e.map(e=>({key:e.key,visible:e.visible,width:e.width,fixed:e.fixed}));localStorage.setItem(`c_table_cols_${r.persistKey}`,JSON.stringify(t))}catch{}},s=j(a(r.columns)),c=j(``),l=j(),u=j(null),d=j(null),f=j(!1);te(()=>{f.value=s.value.some(e=>e.resizable===!0),r.persistKey&&i(`change`,[...s.value])});let y=m(()=>{if(!c.value)return s.value;let e=c.value.toLowerCase();return s.value.filter(t=>t.title?.toLowerCase().includes(e)||t.key?.toLowerCase().includes(e))}),S=m(()=>s.value.filter(e=>e.visible!==!1).length),C=m(()=>s.value.length),w=e=>{s.value.forEach(t=>{t.key!==`_actions`&&(t.visible=e)}),M()},T=()=>w(!0),E=()=>w(!1),D=e=>{let t=y.value[e];return s.value.findIndex(e=>e.key===t.key)},k=(e,t)=>{let n=D(e);n!==-1&&(t(s.value[n]),M())},re=(e,t)=>{k(e,e=>{e.visible=t})},ie=(e,t)=>{k(e,e=>{e.fixed=t===`none`?void 0:t})},M=()=>{o(s.value),i(`change`,[...s.value])},F=()=>{s.value=[...r.columns],M()},I=e=>{s.value.forEach(t=>{qt(t)||(t.resizable=e,e&&(t.minWidth=t.minWidth||80,t.maxWidth=t.maxWidth||500))}),M()},R=(e,t)=>{let n=D(e),r=D(t);if(n!==-1&&r!==-1){let[e]=s.value.splice(n,1);s.value.splice(r,0,e),M()}},B=(e,t)=>{if(y.value[e].key===`_actions`){t.preventDefault();return}u.value=e,t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`)},oe=(e,t)=>{t.preventDefault(),!(u.value===null||y.value[e].key===`_actions`)&&(d.value=e,t.dataTransfer&&(t.dataTransfer.dropEffect=`move`))},se=e=>{u.value===null||y.value[e].key===`_actions`||(R(u.value,e),u.value=null,d.value=null)},ce=()=>{u.value=null,d.value=null};return(t,n)=>(A(),_(`div`,Jt,[g(` 搜索框和列宽调整开关 `),v(`div`,Yt,[x(P(H),{value:c.value,"onUpdate:value":n[0]||=e=>c.value=e,placeholder:`搜索列名...`,clearable:``,class:`search-input`},{prefix:L(()=>[x(e,{name:`mdi:magnify`})]),_:1},8,[`value`]),v(`div`,Xt,[x(e,{name:`mdi:arrow-split-vertical`,size:`14`,title:f.value?`开启后可拖拽列边界调整宽度`:`允许调整列宽`},null,8,[`title`]),x(P(W),{style:{fontSize:`12px`,marginLeft:`4px`}},{default:L(()=>n[2]||=[b(` 列宽调整 `,-1)]),_:1,__:[2]}),x(P(fe),{value:f.value,"onUpdate:value":[n[1]||=e=>f.value=e,I],size:`small`,style:{"margin-left":`6px`}},null,8,[`value`])])]),g(` 顶部操作栏:统计信息和快捷操作按钮 `),v(`div`,Zt,[v(`div`,Qt,[x(P(W),{depth:`3`,style:{fontSize:`13px`}},{default:L(()=>[b(` 已选 `+N(S.value)+` / 总共 `+N(C.value)+` 列 `,1)]),_:1})]),v(`div`,$t,[x(P(U),{size:6},{default:L(()=>[x(P(z),{size:`tiny`,onClick:T},{default:L(()=>n[3]||=[b(` 全选 `,-1)]),_:1,__:[3]}),x(P(z),{size:`tiny`,onClick:E},{default:L(()=>n[4]||=[b(` 全不选 `,-1)]),_:1,__:[4]}),x(P(z),{size:`tiny`,onClick:F},{default:L(()=>n[5]||=[b(` 重置 `,-1)]),_:1,__:[5]})]),_:1})])]),g(` 列列表 `),v(`div`,{ref_key:`listRef`,ref:l,class:`column-list`},[(A(!0),_(p,null,ne(y.value,(t,r)=>(A(),_(`div`,{key:t.key,class:O([`column-item`,{disabled:t.key===`_actions`,"fixed-left":t.fixed===`left`,"fixed-right":t.fixed===`right`}]),draggable:t.key!==`_actions`,onDragstart:e=>B(r,e),onDragover:e=>oe(r,e),onDragend:ce,onDrop:e=>se(r)},[v(`div`,tn,[v(`div`,nn,[x(e,{name:`mdi:drag`,size:`16`,class:O([`drag-handle`,{disabled:t.key===`_actions`}])},null,8,[`class`]),x(P(ae),{checked:t.visible!==!1,disabled:t.key===`_actions`,"onUpdate:checked":e=>re(r,e)},null,8,[`checked`,`disabled`,`onUpdate:checked`])]),v(`div`,rn,[x(P(U),{align:`center`,size:6},{default:L(()=>[x(P(W),{strong:``,style:{fontSize:`13px`}},{default:L(()=>[b(N(t.title||t.key),1)]),_:2},1024),t.fixed===`left`?(A(),h(P(pe),{key:0,size:`tiny`,type:`info`},{default:L(()=>n[6]||=[b(` 左固定 `,-1)]),_:1,__:[6]})):g(`v-if`,!0),t.fixed===`right`?(A(),h(P(pe),{key:1,size:`tiny`,type:`warning`},{default:L(()=>n[7]||=[b(` 右固定 `,-1)]),_:1,__:[7]})):g(`v-if`,!0)]),_:2},1024),x(P(W),{depth:`3`,style:{fontSize:`11px`}},{default:L(()=>[b(N(t.key),1)]),_:2},1024)])]),v(`div`,an,[v(`div`,on,[x(e,{name:`mdi:chevron-up`,size:`14`,title:`上移`,clickable:r!==0,class:O({disabled:r===0}),onClick:e=>r!==0&&R(r,r-1)},null,8,[`clickable`,`class`,`onClick`]),x(e,{name:`mdi:chevron-down`,size:`14`,title:`下移`,clickable:r!==y.value.length-1,class:O({disabled:r===y.value.length-1}),onClick:e=>r!==y.value.length-1&&R(r,r+1)},null,8,[`clickable`,`class`,`onClick`])]),x(P(V),{options:P(Wt)(t),onSelect:e=>ie(r,e)},{default:L(()=>[x(e,{name:`mdi:pin`,size:`14`,title:`固定列`,clickable:``,style:ee({color:t.fixed?`var(--n-primary-color)`:void 0})},null,8,[`style`])]),_:2},1032,[`options`,`onSelect`])])],42,en))),128))],512)]))}}),[[`__scopeId`,`data-v-f6d19462`]]);const cn={key:1,class:`table-toolbar`},ln={class:`toolbar-left`},un={class:`toolbar-right`},dn={key:2,class:`batch-actions-bar`},fn={class:`batch-info`},pn={key:3,class:`table-error-state`},mn={class:`error-content`},hn={class:`error-message`};var gn=t(S({name:`C_Table`,inheritAttrs:!1,__name:`index`,props:{columns:{},data:{},loading:{},rowKey:{type:Function,default:e=>e.id},config:{default:()=>({})},crud:{}},emits:[`pagination-change`,`row-delete`,`expand-change`,`selection-change`,`child-selection-change`,`parent-child-link-change`,`update:data`,`save`,`cancel`,`row-add`,`row-copy`,`row-move`,`row-selection-change`,`view-detail`,`column-change`],setup(t,{expose:r,emit:i}){let a=t,o=i,s=(e,...t)=>{o(e,...t),a.crud&&{save:a.crud.save,cancel:a.crud.handleCancel,"pagination-change":a.crud.handlePaginationChange,"row-delete":a.crud.handleRowDelete,"view-detail":a.crud.detail?.show}[e]?.(...t)},c=Tt(),l=m(()=>{let e=a.config||{};if(a.crud){let t={};a.crud.actions&&(t.actions=a.crud.actions.value),a.crud.pagination&&(t.pagination=a.crud.pagination.value??void 0),e={...t,...e}}return Et(e,c)}),u=m(()=>a.columns??a.crud?.columns.value??[]),d=m(()=>Ee(l.value)),f=m(()=>De(d.value)),S=e=>e&&typeof e==`object`&&`value`in e?e.value:e,C=m(()=>S(a.data)??a.crud?.data.value??[]),w=m(()=>S(a.loading)??a.crud?.loading.value??!1),D=_t({data:C,config:m(()=>d.value.pagination),emit:s}),O=gt({config:d.value,data:()=>C.value,rowKey:a.rowKey,emit:s,columns:()=>u.value}),ee=vt({actions:m(()=>l.value.actions||{}),config:d,tableManager:O,rowKey:a.rowKey,emit:s,onViewDetail:e=>s(`view-detail`,e)}),M=Pt({rawColumns:u,config:d,columnWidth:d.value.columnWidth,scrollX:d.value.scrollX,rowKey:a.rowKey,tableManager:O,actionsRenderer:ee.renderActions,editModeChecker:f}),{showSettingsPanel:I,reactiveColumns:R,computedColumns:B,computedScrollX:ae}=M,V=d.value.rowDrag?.enabled?Ft({data:C,rowKey:a.rowKey,config:d.value.rowDrag,onReorder:e=>s(`update:data`,e),onSort:(e,t,n)=>o(`row-move`,e,t,n)}):null,H=d.value.crossPageSelection?.enabled?It({allData:C,rowKey:a.rowKey,config:d.value.crossPageSelection}):null,de=m(()=>H?H.selectedCount.value:O.checkedKeys?.value?.length??0),fe=async e=>{let t=H?[...H.selectedKeys.value]:O.checkedKeys?.value??[],n=H?H.getSelectedRows():C.value.filter(e=>t.includes(a.rowKey(e)));await e.onClick(t,n)},pe=()=>{H?H.clearAll():O.stateManager.selection.clear()},W=m(()=>H?H.getPageCheckedKeys(C.value):null),G=e=>{H&&H.handlePageSelectionChange(e,C.value),O.expandState?.handleSelectionChange?.(e)},me=async()=>{let e=d.value.exportConfig??{};await Ut(C.value,u.value,{...e,formatterConfig:d.value.formatterConfig})},he=m(()=>{let e=d.value;if(e.summaryRender)return t=>{let n=e.summaryRender(t);return B.value.map(e=>{let t=n[e.key];return t?{value:t.value,colSpan:t.colSpan??1}:{value:``}})}}),K=j(),ge=null,_e=async()=>{if(!(!d.value.enableColumnDrag||!K.value))try{let{default:e}=await import(`sortablejs`),t=K.value.querySelector(`.n-data-table-thead tr`);if(!t)return;ge=new e(t,{animation:d.value.columnDragAnimationDuration,handle:`.${d.value.columnDragHandleClass}`,ghostClass:`column-drag-ghost`,onEnd:e=>{if(e.oldIndex==null||e.newIndex==null)return;let t=[...R.value],[n]=t.splice(e.oldIndex,1);t.splice(e.newIndex,0,n),M.handleColumnChange(t),o(`column-change`,t)}})}catch{}},ve=j(),ye=m(()=>({striped:d.value.striped,bordered:d.value.bordered,singleLine:d.value.singleLine,size:d.value.size,maxHeight:d.value.maxHeight})),be=j(),q=j(!1),J=j({}),Y=m({get:()=>O.editStates.modalEdit.isModalVisible.value,set:e=>{O.editStates.modalEdit.isModalVisible.value=e}}),xe=m(()=>u.value.filter(e=>e.editable!==!1)),Se=m(()=>`edit-form-${O.editStates.modalEdit.editingRowKey.value||`new`}`),Ce=m(()=>kt(xe.value));F(()=>O.editStates.modalEdit.editingData.value,e=>{e&&Object.keys(e).length>0&&(J.value=JSON.parse(JSON.stringify(e)))},{immediate:!0,deep:!0});let X=null;F(Y,e=>{e||(X=setTimeout(()=>{J.value={},X=null},300))});let we=async()=>{if(be.value){q.value=!0;try{await be.value.validate(),await O.editStates.modalEdit.saveEdit(J.value)}catch{}finally{q.value=!1}}},Te=()=>{J.value={},O.editStates.modalEdit.cancelEdit()},Oe=e=>{M.handleColumnChange(e),o(`column-change`,M.reactiveColumns.value)},{edit:Z,expand:ke,selection:Q,dynamicRows:Ae}=O.stateManager,je={startEdit:Z.start,expandAll:ke.all,collapseAll:ke.collapseAll,selectAll:Q.all,clearSelection:Q.clear,clearAllSelections:O.stateManager.clearAllSelections,clearRowSelection:Ae?.clearSelection,resetToFirstPage:D.resetToFirstPage,getSelectedRows:Q.getSelected,getEditingData:Z.getEditingData,isEditing:Z.isEditing,isExpanded:ke.isExpanded,getManager:()=>O.stateManager,exportData:me,crossPageSelection:H?{selectedKeys:H.selectedKeys,selectedCount:H.selectedCount,selectAll:H.selectAll,clearAll:H.clearAll,getSelectedRows:H.getSelectedRows}:void 0};return r(je),te(()=>{let e=a.crud?.tableRef;e&&(e.value=je),_e(),V&&K.value&&V.initRowDrag(K.value)}),k(()=>{X&&clearTimeout(X),ge&&ge.destroy(),V?.destroyRowDrag()}),(t,r)=>(A(),_(`div`,{ref_key:`tableWrapperRef`,ref:K,class:`c-table-wrapper`},[g(` 动态行工具栏 `),P(O).dynamicRowsState?(A(),h(ie(P(O).dynamicRowsState.renderToolbar()),{key:0})):g(`v-if`,!0),g(` 表格工具栏 `),d.value.showToolbar?(A(),_(`div`,cn,[v(`div`,ln,[re(t.$slots,`toolbar-left`,{},void 0,!0)]),v(`div`,un,[re(t.$slots,`toolbar-right`,{},void 0,!0),d.value.exportConfig?(A(),h(e,{key:0,name:`mdi:download`,size:`18`,title:`导出`,clickable:``,class:`column-settings-btn`,onClick:r[0]||=e=>me()})):g(`v-if`,!0),d.value.enableColumnSettings?(A(),h(e,{key:1,name:`mdi:cog`,size:`18`,title:`表格设置`,clickable:``,class:`column-settings-btn`,onClick:r[1]||=e=>I.value=!0})):g(`v-if`,!0)])])):g(`v-if`,!0),g(` 批量操作栏 `),d.value.batchActions?.enabled&&de.value>0?(A(),_(`div`,dn,[v(`span`,fn,`已选择 `+N(de.value)+` 项`,1),x(P(U),{size:8},{default:L(()=>[(A(!0),_(p,null,ne(d.value.batchActions.actions||[],t=>(A(),h(P(z),{key:t.key,type:t.type||`default`,size:`small`,onClick:e=>fe(t)},y({default:L(()=>[b(` `+N(t.label),1)]),_:2},[t.icon?{name:`icon`,fn:L(()=>[x(e,{name:t.icon,size:`14`},null,8,[`name`])]),key:`0`}:void 0]),1032,[`type`,`onClick`]))),128)),x(P(z),{size:`small`,onClick:pe},{default:L(()=>r[5]||=[b(`取消选择`,-1)]),_:1,__:[5]})]),_:1})])):g(`v-if`,!0),g(` 错误状态 `),d.value.error?.show?(A(),_(`div`,pn,[re(t.$slots,`error`,{error:d.value.error},()=>[v(`div`,mn,[x(e,{name:`mdi:alert-circle-outline`,size:`48`}),v(`p`,hn,N(d.value.error.message||`数据加载失败`),1),d.value.error.onRetry?(A(),h(P(z),{key:0,type:`primary`,size:`small`,onClick:d.value.error.onRetry},{default:L(()=>r[6]||=[b(` 重试 `,-1)]),_:1,__:[6]},8,[`onClick`])):g(`v-if`,!0)])],!0)])):g(`v-if`,!0),g(` 表格主体 `),d.value.error?.show?g(`v-if`,!0):(A(),h(P(oe),E({key:4,ref_key:`tableRef`,ref:ve},{...ye.value,...t.$attrs},{columns:P(B),data:C.value,loading:w.value,"row-key":t.rowKey,"expanded-row-keys":P(O).expandedKeys.value,"checked-row-keys":W.value??P(O).checkedKeys.value,"onUpdate:expandedRowKeys":P(O).expandState?.handleExpandChange,"onUpdate:checkedRowKeys":G,"scroll-x":P(ae),"virtual-scroll":d.value.virtualScroll,"virtual-scroll-item-size":d.value.virtualScroll?d.value.virtualItemHeight:void 0,"max-height":d.value.virtualScroll?d.value.virtualMaxHeight:d.value.maxHeight,summary:he.value,"summary-placement":d.value.summaryPosition,"children-key":d.value.treeEnabled?d.value.treeChildrenKey:void 0,indent:d.value.treeEnabled?d.value.treeIndent:void 0,"default-expand-all":d.value.treeEnabled?d.value.treeDefaultExpandAll:void 0,style:{width:`100%`}}),null,16,[`columns`,`data`,`loading`,`row-key`,`expanded-row-keys`,`checked-row-keys`,`onUpdate:expandedRowKeys`,`scroll-x`,`virtual-scroll`,`virtual-scroll-item-size`,`max-height`,`summary`,`summary-placement`,`children-key`,`indent`,`default-expand-all`])),g(` 分页 `),P(D).paginationConfig.value?(A(),h(P(ue),E({key:5},P(D).paginationConfig.value,{class:`pagination-wrapper`}),null,16)):g(`v-if`,!0),g(` 编辑弹窗 `),d.value.editMode===`modal`||d.value.editMode===`both`?(A(),h(P(le),{key:6,show:Y.value,"onUpdate:show":r[3]||=e=>Y.value=e,title:d.value.modalTitle,width:d.value.modalWidth,preset:`card`,"mask-closable":!1,"close-on-esc":!1,class:`w60%`,closable:!1},{action:L(()=>[x(P(U),{justify:`end`},{default:L(()=>[x(P(z),{onClick:Te},{default:L(()=>r[7]||=[b(`取消`,-1)]),_:1,__:[7]}),x(P(z),{type:`primary`,loading:q.value,onClick:we},{default:L(()=>r[8]||=[b(` 保存 `,-1)]),_:1,__:[8]},8,[`loading`])]),_:1})]),default:L(()=>[Y.value&&Ce.value.length?(A(),h(n,{ref_key:`editFormRef`,ref:be,key:Se.value,modelValue:J.value,"onUpdate:modelValue":r[2]||=e=>J.value=e,options:Ce.value,config:{layout:`grid`,grid:{cols:2,xGap:16,yGap:16},showActions:!1}},null,8,[`modelValue`,`options`])):g(`v-if`,!0)]),_:1},8,[`show`,`title`,`width`])):g(`v-if`,!0),g(` 动态行确认删除弹窗 `),P(O).dynamicRowsState?(A(),h(ie(P(O).dynamicRowsState.renderConfirmModal()),{key:7})):g(`v-if`,!0),g(` 列设置抽屉 `),x(P(se),{show:P(I),"onUpdate:show":r[4]||=e=>T(I)?I.value=e:null,width:420,placement:`right`,"mask-closable":!0},{default:L(()=>[x(P(ce),{title:`列设置`,closable:``},{default:L(()=>[x(sn,{columns:P(R),"persist-key":d.value.persistKey,onChange:Oe},null,8,[`columns`,`persist-key`])]),_:1})]),_:1},8,[`show`])],512))}}),[[`__scopeId`,`data-v-21d6283f`]]);export{Ae as _,Pt as a,De as b,Et as c,_t as d,gt as f,Ue as g,ut as h,Ft as i,Tt as l,dt as m,Ut as n,yt as o,ht as p,It as r,wt as s,gn as t,vt as u,Q as v,Ee as x,Z as y};
|
|
4
4
|
//# sourceMappingURL=C_Table2.js.map
|