@robot-admin/naive-ui-components 0.24.2 → 0.24.3
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 +13 -0
- package/README.md +4 -2
- package/README_EN.md +4 -2
- package/SECURITY.md +12 -2
- package/dist/C_AntV2.cjs +1 -1
- package/dist/C_AntV2.js +3 -3
- package/dist/C_Form.base.css +40 -40
- package/dist/C_Form.css +40 -40
- package/dist/C_Map2.cjs +1 -1
- package/dist/C_Map2.js +1 -1
- package/dist/C_Table.base.css +150 -150
- package/dist/C_Table.css +110 -110
- package/dist/C_Table2.cjs +2 -2
- package/dist/C_Table2.js +2 -2
- package/dist/C_Upload2.cjs +1 -1
- package/dist/C_Upload2.js +1 -1
- package/dist/C_VideoPlayer.css +30 -20
- package/dist/C_VideoPlayer2.cjs +2 -2
- package/dist/C_VideoPlayer2.js +3 -3
- package/dist/Steps.cjs +1 -1
- package/dist/Steps.js +1 -1
- package/dist/Tabs.cjs +1 -1
- package/dist/Tabs.js +1 -1
- package/dist/constants2.d.cts +6 -6
- package/dist/constants2.d.ts +6 -6
- package/dist/constants3.d.cts +2 -2
- package/dist/constants3.d.ts +2 -2
- package/dist/data2.cjs +1 -1
- package/dist/data2.d.cts +4 -4
- package/dist/data2.d.ts +4 -4
- package/dist/data2.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/index.vue.d.cts +4 -4
- package/dist/index.vue.d.ts +4 -4
- package/dist/index10.vue.d.cts +2 -2
- package/dist/index10.vue.d.ts +5 -5
- package/dist/index11.vue.d.cts +5 -5
- package/dist/index13.vue.d.ts +3 -3
- package/dist/index14.vue.d.cts +3 -3
- package/dist/index15.vue.d.ts +8 -8
- package/dist/index16.vue.d.cts +8 -8
- package/dist/index16.vue.d.ts +1 -1
- package/dist/index17.vue.d.cts +1 -1
- package/dist/index17.vue.d.ts +1 -1
- package/dist/index18.vue.d.cts +1 -1
- package/dist/index18.vue.d.ts +2 -2
- package/dist/index19.vue.d.cts +2 -2
- package/dist/index19.vue.d.ts +1 -1
- package/dist/index2.vue.d.cts +2 -2
- package/dist/index2.vue.d.ts +2 -2
- package/dist/index20.vue.d.cts +1 -1
- package/dist/index22.vue.d.ts +2 -2
- package/dist/index23.vue.d.cts +2 -2
- package/dist/index26.vue.d.cts +4 -4
- package/dist/index26.vue.d.ts +4 -4
- package/dist/index28.vue.d.cts +2 -2
- package/dist/index28.vue.d.ts +2 -2
- package/dist/index29.vue.d.cts +2 -2
- package/dist/index29.vue.d.ts +2 -2
- package/dist/index3.vue.d.cts +3 -3
- package/dist/index3.vue.d.ts +3 -3
- package/dist/index9.vue.d.ts +2 -2
- package/dist/mapUtils.d.cts +1 -1
- package/dist/mapUtils.d.ts +1 -1
- package/dist/serializeSearch.cjs +1 -1
- package/dist/serializeSearch.js +1 -1
- package/dist/style.css +180 -170
- package/dist/useCollapsePanel.d.cts +2 -2
- package/dist/useCollapsePanel.d.ts +2 -2
- package/dist/useCropperCore.d.cts +6 -6
- package/dist/useCropperCore.d.ts +6 -6
- package/dist/useDictionary.cjs +1 -1
- package/dist/useDictionary.js +1 -1
- package/dist/useDynamicFormState.d.cts +2 -2
- package/dist/useDynamicFormState.d.ts +2 -2
- package/dist/useEdgeInteraction.d.cts +3 -3
- package/dist/useEdgeInteraction.d.ts +3 -3
- package/dist/useInfiniteScroll.d.cts +2 -2
- package/dist/useInfiniteScroll.d.ts +2 -2
- package/dist/useQRCode.d.cts +3 -3
- package/dist/useQRCode.d.ts +3 -3
- package/dist/useSignatureHistory.d.cts +4 -4
- package/dist/useSignatureHistory.d.ts +4 -4
- package/dist/useSplitResize.d.cts +6 -6
- package/dist/useSplitResize.d.ts +6 -6
- package/dist/useWorkflowValidation.d.cts +97 -97
- package/dist/useWorkflowValidation.d.ts +97 -97
- package/dist/verification.d.cts +2 -2
- package/dist/verification.d.ts +2 -2
- package/docs/engineering.en.md +1 -1
- package/docs/engineering.md +1 -1
- package/docs/stability-review-20261031.md +46 -0
- package/package.json +4 -2
package/dist/C_Table2.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{t as e}from"./density.js";import{n as t,o as n,r}from"./dictionary.js";import{a as i,t as a}from"./data2.js";import{t as o}from"./useComponentLocale.js";import{t as s}from"./feedback.js";import{t as c}from"./C_Icon2.js";import{t as l}from"./export-helper.js";import{t as u}from"./C_Loading2.js";import{t as d}from"./useActionTask.js";import{t as f}from"./C_ActionBar2.js";import{t as p}from"./useDictionary.js";import{i as m}from"./formValidation.js";import{i as h,n as g,r as _}from"./useTableGlobalConfig.js";import{Fragment as v,computed as y,createBlock as b,createCommentVNode as x,createElementBlock as S,createElementVNode as C,createSlots as w,createTextVNode as T,createVNode as E,defineAsyncComponent as ee,defineComponent as te,getCurrentScope as D,h as O,isRef as k,mergeProps as ne,nextTick as A,normalizeClass as re,normalizeStyle as ie,onBeforeUnmount as ae,onMounted as oe,onScopeDispose as se,openBlock as j,reactive as M,ref as N,renderList as ce,renderSlot as le,resolveDynamicComponent as ue,shallowReactive as de,shallowRef as P,toDisplayString as F,toValue as I,unref as L,useAttrs as fe,watch as R,withCtx as z}from"vue";import{NButton as B,NButtonGroup as pe,NCheckbox as V,NDataTable as me,NDrawer as he,NDrawerContent as ge,NDropdown as _e,NInput as ve,NInputNumber as ye,NModal as be,NPagination as xe,NSelect as Se,NSpace as Ce,NSpin as H,NSwitch as U,NTag as we,NText as Te,NTooltip as Ee}from"naive-ui";const De={editable:!1,editMode:`none`,showRowActions:!1,modalTitle:`编辑数据`,modalWidth:600,onEditSave:void 0,onEditCancel:void 0,onEditError:void 0},W=e=>{if(e===!1||e===void 0)return De;if(typeof e==`string`)return W({mode:e});if(e===!0)return{editable:!0,editMode:`modal`,showRowActions:!0,modalTitle:`编辑数据`,modalWidth:600,onEditSave:void 0,onEditCancel:void 0,onEditError:void 0};let t=e.enabled!==!1&&e.mode!==`none`;return{editable:t,editMode:e.mode||`modal`,showRowActions:t&&e.showRowActions!==!1,modalTitle:e.modalTitle||`编辑数据`,modalWidth:e.modalWidth||600,onEditSave:e.onSave,onEditCancel:e.onCancel,onEditError:e.onError}},Oe=e=>e?e===!0?{expandable:!0,defaultExpandedKeys:void 0,onLoadExpandData:void 0,onExpandError:void 0,renderExpandContent:void 0,rowExpandable:void 0}:{expandable:e.enabled!==!1,defaultExpandedKeys:e.defaultExpandedKeys,onLoadExpandData:e.onLoadData,onExpandError:e.onError,renderExpandContent:e.renderContent,rowExpandable:e.rowExpandable}:{expandable:!1,defaultExpandedKeys:void 0,onLoadExpandData:void 0,onExpandError:void 0,renderExpandContent:void 0,rowExpandable:void 0},ke=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`}},Ae=(t,n)=>{let r={enabled:!0,page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:n?e(n).size:`medium`};return t===!1?{pagination:null}:t===!0||t===void 0?{pagination:r}:{pagination:{...r,...t}}},je=e=>e?e===!0?{dynamicRows:{enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0}}:{dynamicRows:e}:{dynamicRows:void 0},G={striped:!0,bordered:!0,singleLine:!0,size:`medium`,maxHeight:void 0,scrollX:void 0,columnWidth:180};function Me(t,n){let{size:r}=e(n);return t?{striped:t.striped??G.striped,bordered:t.bordered??G.bordered,singleLine:t.singleLine??G.singleLine,size:t.size??r,maxHeight:t.maxHeight,scrollX:t.scrollX,columnWidth:t.columnWidth??G.columnWidth}:{...G,size:r}}const Ne=(t,n)=>({showToolbar:t?.show!==!1,enableColumnSettings:t?.columnSettings!==!1,toolbarActions:t?.actions??[],toolbarRightActions:t?.rightActions??[],toolbarActionBarConfig:{...n?{size:e(n).size,compact:n===`compact`}:{},...t?.actionBar}}),Pe=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},Fe=e=>e?{summaryPosition:e.position??`bottom`,summaryRender:e.render}:{summaryPosition:void 0,summaryRender:void 0},Ie=e=>e?e===!0?{enableColumnDrag:!0,columnDragHandleClass:void 0,columnDragAnimationDuration:150}:{enableColumnDrag:e.enabled!==!1,columnDragHandleClass:e.handleClass,columnDragAnimationDuration:e.animationDuration??150}:{enableColumnDrag:!1,columnDragHandleClass:void 0,columnDragAnimationDuration:150},K=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},Le=e=>e?e===!0?{rowDrag:{enabled:!0}}:{rowDrag:e.enabled===!1?void 0:e}:{rowDrag:void 0},Re=e=>e?e===!0?{crossPageSelection:{enabled:!0}}:{crossPageSelection:e.enabled===!1?void 0:e}:{crossPageSelection:void 0};function ze(t={}){return{density:t.density,controlSize:t.density?e(t.density).size:`small`,feedback:t.feedback,locale:t.locale,...W(t.edit),...Oe(t.expand),...ke(t.selection),...Ae(t.pagination,t.density),...je(t.dynamicRows),...Me(t.display,t.density),...Ne(t.toolbar,t.density),...Pe(t.virtualScroll),...Fe(t.summary),...Ie(t.columnDrag),...K(t.tree),...Le(t.rowDrag),...Re(t.crossPageSelection),exportConfig:t.export,persistKey:t.persistKey,formatterConfig:t.formatterConfig,error:t.error,batchActions:t.batchActions}}const Be=e=>({isNonEditable:t=>!e.editable||t.editable===!1||e.editMode===`none`,isRowEditMode:()=>[`row`,`both`].includes(e.editMode),isCellEditMode:()=>[`cell`,`both`].includes(e.editMode)});function Ve(e){return e.type===void 0&&e.editable!==!1&&e.key!==`_actions`&&String(e.key??``).trim().length>0}function He(e,t){if(!Ve(e))return[];let n=[...e.editProps?.rules??[]];return e.required&&!n.some(e=>e.required)&&n.unshift(m(e.title,`${e.title}不能为空`)),n.map(n=>{let r={...n};if(r.type===void 0&&(e.editType===`number`&&(r.type=`number`),e.editType===`switch`&&(r.type=`boolean`)),n.validator){let e=n.validator;r.validator=(n,r,i,a,o)=>{let s=!1;try{let c=e(n,r,e=>{s=!0,i(e)},t?.()??a,o);return c===void 0&&!s?!0:c}catch(e){return e instanceof Error?e:Error(String(e))}}}if(n.asyncValidator){let e=n.asyncValidator;r.asyncValidator=(n,r,i,a,o)=>new Promise((i,s)=>{e(n,r,e=>{e?s(e):i()},t?.()??a,o)?.then(i,s)})}return r})}async function Ue(e,t,n,r,i=e.key??`value`){if(e.level===`warning`)return null;let a=`${n}校验失败`;try{let n=(await import(`async-validator`)).default;return await new(`default`in n?n.default:n)({[i]:e}).validate({...r,[i]:t},{first:!0,suppressWarning:!0,suppressValidatorError:!0}),null}catch(e){return(e?.errors)?.[0]?.message??(e instanceof Error?e.message:a)}}function We(e){let t=0,n=N(null),r=N({}),i=N(!1),o=N([]),s=()=>{t++,n.value=null,r.value={},o.value=[]},c=e=>n.value===e,l=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},u=e=>{let t=l(e);return!t||i.value?!1:(n.value=e,r.value={[String(e)]:a(t)},o.value=[],!0)},d=async()=>{if(n.value===null||i.value)return;let t=e.data();if(!t||!Array.isArray(t))return;let a=t.findIndex(t=>e.rowKey(t)===n.value);i.value=!0;try{a>-1&&await e.onCancel?.(t[a],a),n.value=null,r.value={}}finally{i.value=!1}},f=async(r,i)=>{let a=t,s=(e.columns?.()||[]).filter(Ve).map(async e=>{let t=String(e.key);if(!t)return null;let n=(await Promise.all(He(e).map(n=>Ue(n,r[t],e.title||t,r,t)))).find(Boolean);return n?{field:t,message:n}:null}),c=(await Promise.all(s)).filter(Boolean);return t===a?(n.value===i&&(o.value=c),c.length===0):!1},p=async()=>{let e=n.value;if(e===null)return!0;let t=r.value[String(e)];return t?f(a(t),e):!0},m=async()=>{let o=n.value;if(o===null||i.value)return;let s=r.value[String(o)];if(!s)return;let c=a(s),u=t,d=l(o);i.value=!0;try{if(!await f(c,o)||t!==u)return;let i=e.data(),a=i.findIndex(t=>e.rowKey(t)===o);return a===-1||i[a]!==d||(await e.onSave?.(c,a,o),t!==u)?void 0:(n.value=null,r.value={},{updatedData:c,rowIndex:a})}finally{i.value=!1}},h=e=>{if(n.value===e)return r.value[String(e)]};return{editingRowKey:n,editingData:r,isSaving:i,isEditingRow:c,startEditRow:u,cancelEditRow:d,saveEditRow:m,validateRow:p,validationErrors:o,getEditingRowData:h,updateEditingRowData:(e,t,n)=>{let r=h(e);!r||i.value||(r[t]=a(n))},findRowData:l,invalidate:s}}function Ge(e,t){let n=String(e);return`${typeof e}:${n.length}:${n}|${t.length}:${t}`}function Ke(e){let t=0,n=N({rowKey:null,columnKey:null}),r=N({}),i=N(!1),o=N(null),s=()=>{t++,n.value={rowKey:null,columnKey:null},r.value={},o.value=null},c=(e,t)=>n.value.rowKey===e&&n.value.columnKey===t,l=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},u=(e,t)=>{let s=l(e);return!s||!t||i.value?!1:(n.value={rowKey:e,columnKey:t},r.value={[Ge(e,t)]:a(s[t])},o.value=null,!0)},d=t=>(e.columns?.()??[]).find(e=>String(e.key)===t),f=async()=>{let e=t;o.value=null;let{rowKey:i,columnKey:a}=n.value;if(i===null||a===null)return!0;let s=d(a);if(!s)return!0;let c=Ge(i,a),u=r.value[c],f=s.title||a,p={...l(i),[a]:u},m=await Promise.all(He(s).map(e=>Ue(e,u,f,p,a)));if(t!==e)return!1;let h=m.find(Boolean);return h?(o.value=h,!1):!0};return{editingCell:n,editingData:r,isSaving:i,isEditingCell:c,startEditCell:u,saveEditCell:async()=>{let{rowKey:o,columnKey:s}=n.value;if(o===null||s===null||i.value)return;let c=Ge(o,s),u=a(r.value[c]),d=t,p=l(o);i.value=!0;try{if(!await f()||t!==d)return;let i=e.data(),c=i.findIndex(t=>e.rowKey(t)===o);if(c===-1||i[c]!==p)return;let l={...i[c],[s]:u};return await e.onSave?.(a(l),c,s,o),t===d?(n.value={rowKey:null,columnKey:null},r.value={},{updatedData:l,rowIndex:c,columnKey:s}):void 0}finally{i.value=!1}},cancelEditCell:()=>{let{rowKey:e,columnKey:t}=n.value;i.value||(e!==null&&t!==null&&delete r.value[Ge(e,t)],n.value={rowKey:null,columnKey:null},o.value=null)},validateCell:f,cellValidationError:o,getEditingCellValue:(e,t)=>r.value[Ge(e,t)],updateEditingCellValue:(e,t,n)=>{!c(e,t)||i.value||(r.value[Ge(e,t)]=a(n))},findRowData:l,invalidate:s}}function qe(e){let t=0,n=N(!1),r=N(!1),i=N(null),o=N({}),s=()=>{t++,n.value=!1,i.value=null,o.value={}},c=y(()=>{if(i.value===null)return-1;let t=e.data();return Array.isArray(t)?t.findIndex(t=>e.rowKey(t)===i.value):-1});return{isModalVisible:n,isSaving:r,editingData:o,editingRowKey:i,editingRowIndex:c,startEdit:(s,c)=>{if(r.value)return!1;let l=e.data();if(!Array.isArray(l))return!1;let u=l.findIndex(t=>e.rowKey(t)===s);return u===-1?!1:(t++,i.value=s,o.value=a(c??l[u]),n.value=!0,!0)},saveEdit:async s=>{if(r.value||i.value===null)return;let l=c.value;if(l===-1)return;let u=i.value,d=t,f=a(s??o.value);r.value=!0;try{return await e.onSave?.(f,l,u),t===d?(n.value=!1,i.value=null,o.value={},{updatedData:f,rowIndex:l}):void 0}finally{r.value=!1}},cancelEdit:async()=>{if(r.value)return!1;let a=t,s=c.value;try{if(i.value!==null&&s>-1){let t=e.data();t[s]&&await e.onCancel?.(t[s],s)}}finally{t===a&&(n.value=!1,i.value=null,o.value={})}return!0},updateEditingData:e=>r.value?!1:(o.value=a(e),!0),resetEditingState:()=>r.value?!1:(i.value=null,o.value={},!0),isEditingRow:e=>i.value===e&&n.value,getEditingRowData:e=>i.value===e?o.value:null,invalidate:s}}function Je(e,t){try{let n=t(e);if(typeof n==`string`&&n!==``)return JSON.stringify([`string`,n]);if(typeof n==`number`&&Number.isFinite(n))return JSON.stringify([`number`,n])}catch{}}function q(e,t){if(!t)return e;let n=[],r=new WeakSet,i=[];for(let t=e.length-1;t>=0;t--)i.push(e[t]);for(;i.length;){let e=i.pop();if(r.has(e))continue;r.add(e),n.push(e);let a=e[t];if(Array.isArray(a))for(let e=a.length-1;e>=0;e--){let t=a[e];t&&typeof t==`object`&&i.push(t)}}return n}function J(e,t,n,r){let i=new WeakSet,a=e=>{if(e===t)return n;if(!r||i.has(e))return e;i.add(e);let o=e[r];if(!Array.isArray(o))return e;let s=o.map(e=>e&&typeof e==`object`?a(e):e);return s.some((e,t)=>e!==o[t])?{...e,[r]:s}:e};return e.map(a)}function Ye(e){return e}function Xe(e){return e}function Ze(e,t){let n=new Map,r=[];return e.forEach((e,i)=>{let a;try{a=t(e)}catch(t){r.push({type:`error`,row:e,index:i,cause:t});return}if(a==null||a===``){r.push({type:`missing`,row:e,index:i});return}let o=n.get(a);if(o!==void 0){r.push({type:`duplicate`,row:e,index:i,key:a,firstIndex:o});return}n.set(a,i)}),r}function Qe(e,t,n){let r=new Set,i=new WeakSet,a=[...e],o=e=>{try{return n(e)}catch{return}},s=e=>e!=null&&e!==``;for(;a.length;){let e=a.pop();if(i.has(e))continue;i.add(e);let n=e[t];if(!Array.isArray(n)||n.length===0)continue;let c=o(e);s(c)&&r.add(c);for(let e of n)e&&typeof e==`object`&&a.push(e)}return[...r]}const $e=e=>({expandedKeys:N([...e.defaultExpandedKeys||[]]),expandDataMap:N(new Map),loadingMap:N(new Map),errorMap:N(new Map),checkedKeys:e.enableSelection?N([...e.defaultCheckedKeys||[]]):N([]),childSelections:(e.enableChildSelection,N(new Map))}),et=e=>{let t=y(()=>q(L(e.data),e.childrenKey)),n=e.rowKey,r=y(()=>{let e=new Map;for(let r of t.value){let t=n(r);e.has(t)||e.set(t,r)}return e});return{data:t,getRowKey:n,getChildRowKey:e.childRowKey||(e=>e.id),findRow:e=>r.value.get(e),isRowExpandable:t=>e.rowExpandable?.(t)??!0,isRowCheckable:t=>e.rowCheckable?.(t)??!0,isChildRowCheckable:(t,n)=>e.childRowCheckable?.(t,n)??!0}},tt=(e,t,n)=>{let r=new Map,i=new Map,a=!1,o=0,s=new Set(n.defaultExpandedKeys||[]),c=t=>{let n=t===void 0?new Set([...e.expandDataMap.value.keys(),...e.errorMap.value.keys(),...r.keys()]):new Set([t]);for(let t of n)r.delete(t),i.delete(t),e.expandDataMap.value.delete(t),e.errorMap.value.delete(t),e.loadingMap.value.delete(t),e.childSelections.value.delete(t)},l=async o=>{if(!n.onLoadData||a)return[];let s=t.getRowKey(o);if(e.expandDataMap.value.has(s))return e.expandDataMap.value.get(s);if(e.errorMap.value.has(s))return[];let c=r.get(s);if(c)return c.promise;let l={};i.set(s,o),e.loadingMap.value.set(s,!0);let u=()=>!a&&r.get(s)?.token===l,d,f=new Promise(e=>{d=e});return r.set(s,{token:l,promise:f}),(async()=>{try{let t=await n.onLoadData(o),r=Array.isArray(t)?t:[];return u()?(e.expandDataMap.value.set(s,r),n.enableChildSelection&&!e.childSelections.value.has(s)&&e.childSelections.value.set(s,[]),r):[]}catch(t){return u()&&(e.errorMap.value.set(s,t),n.onError?.(t,o)),[]}finally{u()&&(r.delete(s),e.loadingMap.value.set(s,!1))}})().then(d,()=>d([])),f};return R(t.data,n=>{if(o+=1,i.size===0&&e.expandedKeys.value.length===0&&s.size===0)return;let r=new Map(n.map(e=>[t.getRowKey(e),e]));for(let[t,n]of i){let i=r.get(t);i!==n&&(c(t),i&&e.expandedKeys.value.includes(t)&&l(i),i||s.delete(t))}s=new Set([...s].filter(e=>r.has(e))),e.expandedKeys.value=e.expandedKeys.value.filter(e=>r.has(e))}),D()&&se(()=>{a=!0,o+=1,c()}),{loadData:l,retryExpand:async e=>{let n=t.findRow(e);n&&(c(e),await l(n))},invalidateExpand:c,handleRowExpand:async(r,i)=>{let c=t.getRowKey(r);if(o+=1,i){if(s.add(c),e.expandedKeys.value.includes(c)||(e.expandedKeys.value=[...e.expandedKeys.value,c]),await l(r),a||t.findRow(c)!==r||!s.has(c))return}else s.delete(c),e.expandedKeys.value=e.expandedKeys.value.filter(e=>e!==c);n.onExpandChange?.(e.expandedKeys.value,r,i)},expandAll:async()=>{if(a)return;let r=++o,i=t.data.value.filter(t.isRowExpandable);s=new Set(i.map(t.getRowKey)),e.expandedKeys.value=[...s],await Promise.allSettled(i.map(l)),!(a||r!==o)&&(e.expandedKeys.value=i.map(t.getRowKey),n.onExpandChange?.(e.expandedKeys.value))},collapseAll:()=>{o+=1,s.clear(),e.expandedKeys.value=[],e.childSelections.value.clear(),n.onExpandChange?.(e.expandedKeys.value)},handleExpandChange:async r=>{let i=++o;s=new Set(r);let c=new Set(e.expandedKeys.value),u=new Set(r),d=[...u].filter(e=>!c.has(e)),f=e.expandedKeys.value.filter(e=>!u.has(e));for(let t of f)e.childSelections.value.delete(t);e.expandedKeys.value=[...r],await Promise.all(d.map(async e=>{let n=t.findRow(e);n&&await l(n)})),!(a||i!==o)&&n.onExpandChange?.(r)}}},nt=(e,t,n)=>{let r=[],i=[],a=(t,a,o=!1)=>{let s=t.length===r.length&&t.every((e,t)=>e===r[t]),c=a.length===i.length&&a.every((e,t)=>e===i[t]);!o&&s&&c||(r=[...t],i=[...a],n.onSelectionChange?.(t,a,e.childSelections.value))},o=y(()=>t.data.value.filter(t.isRowCheckable)),s=y(()=>e.checkedKeys.value.length),c=(r,i=!1)=>{let s=new Set(o.value.map(e=>t.getRowKey(e))),c=[...new Set(r)].filter(e=>s.has(e)),l=n.maxSelection?c.slice(0,Math.max(0,n.maxSelection)):c;e.checkedKeys.value=l;let u=new Set(l);a(l,t.data.value.filter(e=>u.has(t.getRowKey(e))),i)},l=(e,t=!1)=>{n.enableSelection&&c(e,t)};return{commitSelection:c,selectAll:()=>{n.enableSelection&&l(o.value.map(t.getRowKey))},clearSelection:()=>{l([])},handleSelectionChange:l,selectedRowsCount:s,selectableRows:o}},rt=(e,t,n)=>{let r=()=>!!(t.enableParentChildLink&&t.enableSelection&&t.enableChildSelection);return{handleParentChildLink:(i,a,o)=>{if(!r())return;let s=t.parentChildLinkMode===`strict`?a.length===o&&o>0:a.length>0,c=[...e.checkedKeys.value],l=c.includes(i),u=s&&!l?[...c,i]:!s&&l?c.filter(e=>e!==i):c;n.handleSelectionChange(u,!0)},isLinkEnabled:r}},it=(e,t,n,r,i)=>({totalChildSelections:y(()=>i.enableChildSelection?Array.from(e.childSelections.value.values()).reduce((e,t)=>e+t.length,0):0),clearAllSelections:()=>{e.childSelections.value.clear(),r.commitSelection([],!0)},handleChildSelectionChange:(r,a)=>{if(!i.enableChildSelection)return;let o=t.findRow(r);if(!o)return;let s=(e.expandDataMap.value.get(r)||[]).filter(e=>t.isChildRowCheckable(e,o)),c=new Set(s.map(t.getChildRowKey)),l=[...new Set(a)].filter(e=>c.has(e)),u=e.childSelections.value.get(r)??[];if(u.length===l.length&&u.every((e,t)=>e===l[t]))return;e.childSelections.value.set(r,l);let d=new Set(l),f=s.filter(e=>d.has(t.getChildRowKey(e)));n.isLinkEnabled()&&n.handleParentChildLink(r,l,s.length),i.onChildSelectionChange?.(r,l,f)}}),at=(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,[])}}},Y=e=>O(`div`,{class:`flex justify-center items-center py-8`},e?[e()]:[O(H,{size:`small`}),O(`span`,{class:`ml-2 text-gray-500`},`加载中...`)]),ot=()=>O(`div`,{class:`text-center py-8 text-gray-400`},`暂无数据`),st=e=>{if(!e.length)return[];let t=e[0];return!t||typeof t!=`object`?[]:[{title:`序号`,key:`_index`,width:60,align:`center`,titleAlign:`center`,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,align:`center`,titleAlign:`center`,ellipsis:{tooltip:!0}}))]},ct=(e,t,n,r,i,a)=>{let o=[];return a.enableChildSelection&&o.push({type:`selection`,multiple:!0,disabled:t=>{let n=r.findRow(e);return!n||!r.isChildRowCheckable(t,n)}}),o.push(...st(t)),O(`div`,{class:`p-4 bg-gray-50`},[O(`div`,{class:`mb-2 text-sm text-gray-600`},`详细信息 (${t.length} 条)`),O(me,{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})])},lt=(e,t,n,r,i)=>{let{t:a}=o(()=>i.locale),s=o=>{let s=t.getRowKey(o),c=e.expandDataMap.value.get(s)||[],l=e.loadingMap.value.get(s)||!1,u=at(s,e,t,n,i);return i.renderContent?i.renderContent(o,c,l,u):l?Y(i.renderLoading):e.errorMap.value.has(s)?O(`div`,{class:`c-table-expand-error`,role:`alert`},[O(`span`,a(`table.loadFailed`)),O(B,{size:`small`,onClick:()=>r.retryExpand(s)},()=>a(`common.retry`))]):c.length?ct(s,c,u,t,n,i):ot()};return{getTableColumns:e=>e.map(e=>{if(e.type===`selection`&&i.enableSelection){let n=`disabled`in e?e.disabled:void 0,r=`multiple`in e?e.multiple:void 0;return{...e,type:`selection`,disabled:e=>!!n?.(e)||!t.isRowCheckable(e),multiple:i.maxSelection===1?!1:r??!0}}return e.type===`expand`&&(i.onLoadData||i.renderContent)?{...e,type:`expand`,expandable:n=>t.isRowExpandable(n)&&(!(`expandable`in e)||e.expandable?.(n)!==!1),renderExpand:s}:e})}};function ut(e){let t=$e(e),n=et(e),r=tt(t,n,e),i=nt(t,n,e),a=it(t,n,rt(t,e,i),i,e),o=lt(t,n,a,r,e);return R(n.data,()=>{!e.enableSelection||t.checkedKeys.value.length===0||i.handleSelectionChange(t.checkedKeys.value)}),e.defaultExpandedKeys?.length&&A(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 e=>{if(t.expandedKeys.value.includes(e)&&!t.loadingMap.value.get(e))return;let i=n.findRow(e);i&&await r.handleRowExpand(i,!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,errorMap:t.errorMap,retryExpand:r.retryExpand,invalidateExpand:r.invalidateExpand}}const dt={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},ft={scale:1,quality:.92,format:`png`,backgroundColor:`#ffffff`,logging:!1,allowTaint:!0,useCORS:!0},pt={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 mt(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 ht(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 gt(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 X(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 _t(e,t){let n=e.getContext(`2d`);if(!n)return e;let r={...dt,...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:mt,corner:ht,diagonal:gt,repeat:X};return(o[r.position]||o.repeat)(n,i,a,r),n.restore(),e}async function vt(e,t={}){if(typeof window>`u`)throw Error(`截图功能仅支持浏览器环境`);let n={...ft,...t},{default:r}=await import(`html2canvas`);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 yt(e,t=`png`,n=.92){let r=`image/${t}`;return t===`png`?e.toDataURL(r):e.toDataURL(r,n)}function bt(e,t=`screenshot-${new Date().toISOString().slice(0,10)}.png`,n=`png`){let r=yt(e,n),i=document.createElement(`a`);i.download=t,i.href=r,document.body.appendChild(i),i.click(),document.body.removeChild(i)}async function Z(e,t={}){if(typeof window>`u`)throw Error(`打印功能仅支持浏览器环境`);let n={...pt,...t},{default:r}=await import(`print-js`);return new Promise((t,i)=>{try{n.onLoadingStart?.(),r({printable:e,type:`image`,style:n.style,showModal:n.showModal,modalMessage:n.modalMessage,onLoadingEnd:n.onLoadingEnd,onPrintDialogClose:()=>{n.onPrintDialogClose?.(),t()}})}catch(e){i(e)}})}function xt(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 Q(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=>vt(e,t.capture)));r(50);let{totalWidth:c,totalHeight:l}=xt(s,i,a);return r(60),Q(s,{orientation:i,spacing:a,backgroundColor:o,totalWidth:c,totalHeight:l})}async function wt(e,t,n,r,i){r(70),t.watermark&&_t(e,t.watermark),r(90),await Z(yt(e,t.capture?.format,t.capture?.quality),t.print),r(100),i.success(`合并打印完成,共合并 ${n} 个元素`)}function Tt(){let e=s(),t=N(!1),n=N(0),r=e=>{n.value=Math.max(0,Math.min(100,e))},i=async(e,t={})=>{try{r(0),r(30);let n=await vt(e,t.capture);r(60),t.watermark&&_t(n,t.watermark),r(90);let i=yt(n,t.capture?.format||`png`,t.capture?.quality||.92);return r(100),i}catch(e){throw Error(`截图失败: ${e instanceof Error?e.message:`未知错误`}`)}},a=async(n,a={})=>{t.value=!0,r(0);try{await A();let t=await i(n,a);r(95),await Z(t,a.print),r(100),e.success(`打印完成`)}catch(t){throw e.error(`打印失败: ${t instanceof Error?t.message:`未知错误`}`,t),t}finally{t.value=!1,r(0)}},o=async(n,r,i={})=>{t.value=!0;try{await A();let t=await vt(n,i.capture);i.watermark&&_t(t,i.watermark);let a=i.capture?.format||`png`,o=`screenshot-${new Date().toISOString().slice(0,19).replace(/:/g,`-`)}.${a}`;bt(t,r||o,a),e.success(`下载完成`)}catch(t){throw e.error(`下载失败`,t),t}finally{t.value=!1}},c=async(e,t=`Robot Admin`)=>a(e,{watermark:{text:t,position:`repeat`,textColor:`rgba(128, 128, 128, 0.3)`}}),l=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)},u=async(e,t={})=>{await e.reduce(async(n,r,i)=>{await n,await Z(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:c,batchCapture:l,batchPrint:async(n,i={})=>{if(!n.length){e.warning(`没有要打印的元素`);return}t.value=!0;try{r(0);let t=await l(n,i);r(80),await u(t,i.print),r(100),e.success(`批量打印完成,共 ${n.length} 个元素`)}catch(t){throw e.error(`批量打印失败`,t),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 wt(await Ct(n,i,o,r),i,n.length,r,e)}catch(t){throw e.error(`合并打印失败`,t),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:vt,drawWatermark:_t,canvasToDataURL:yt,downloadCanvas:bt,printImage:Z}}}const Et={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 typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`row_${crypto.randomUUID()}`:`row_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function Ot(e,t){return typeof t==`function`?t(e):Reflect.get(e,t)}function kt(e,t,n){if(e){let r=e(n===void 0?void 0:a(n));if(!r||typeof r!=`object`||Array.isArray(r))return null;let i=a(r);return n&&typeof t==`string`?{...a(n),[t]:Reflect.get(i,t)}:i}return typeof t==`string`?{...n?a(n):{},[t]:Dt()}:null}function At(e,...t){let n=t[0]??{},r={enabled:!0,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`},i=M({...r,...I(n)});R(()=>I(n),e=>{let t=i;Object.keys(t).forEach(e=>delete t[e]),Object.assign(t,r,e)},{deep:!0});let a=s(()=>i.feedback),{t:l}=o(()=>i.locale),u=`c-table-radio-${Dt()}`,d=N(null),f=N(!1),p=y(()=>d.value===null?null:e.value.find(e=>Ot(e,i.rowKey)===d.value)||null),m=y(()=>p.value?e.value.findIndex(e=>e===p.value):-1),h=y(()=>m.value>0),g=y(()=>m.value>=0&&m.value<e.value.length-1),{loading:_,progress:v,printWithWatermark:b,downloadScreenshot:x,quickPrint:S}=Tt(),C=()=>{if(i.printOptions)return i.printOptions;let e=Et[i.printPreset||`table`];return i.printWatermarkText&&e.watermark?{...e,watermark:{...e.watermark,text:i.printWatermarkText}}:e},w=e=>{i.onRowChange?.(e)},T=t=>{let n=Ot(t,i.rowKey);return(typeof n==`string`&&n!==``||typeof n==`number`&&Number.isFinite(n))&&!e.value.some(e=>Ot(e,i.rowKey)===n)?!0:(a.warning(l(`table.invalidRowKeys`,{count:1})),!1)},E=e=>{try{let t=kt(i.defaultRowData,i.rowKey,e);if(t)return T(t)?t:null;a.warning(l(`table.invalidRowKeys`,{count:1}))}catch(t){a.error(l(`table.actionFailed`,{action:l(e?`table.copyRow`:`table.addRow`)}),t)}return null},ee=()=>{if(!i.enabled||!i.enableAdd)return;let t=E();t&&(w([...e.value,t]),i.onRowAdd?.(t),a.success(l(`table.addRowSuccess`)))},te=()=>{if(!i.enabled||!i.enableInsert||!p.value){a.warning(l(`table.selectRowFirst`));return}let t=E();if(!t)return;let n=[...e.value];n.splice(m.value+1,0,t),w(n),i.onRowAdd?.(t),a.success(l(`table.insertRowSuccess`))},k=()=>{if(!i.enabled||!i.enableDelete||!p.value){a.warning(l(`table.selectDeleteRowFirst`));return}i.confirmDelete?f.value=!0:ne()},ne=()=>{if(!p.value)return;let t=p.value,n=m.value;w(e.value.filter((e,t)=>t!==n)),d.value=null,i.onSelectionChange?.(null,null),i.onRowDelete?.(t,n),a.success(l(`table.deleteRowSuccess`)),f.value=!1},A=()=>{if(!i.enabled||!i.enableCopy||!p.value){a.warning(l(`table.selectCopyRowFirst`));return}let t=p.value,n=E(t);n&&(w([...e.value,n]),i.onRowCopy?.(t,n),a.success(l(`table.copyRowSuccess`)))},re=()=>{if(!i.enabled||!i.enableMove||!h.value)return;let t=m.value,n=[...e.value],r=n[t];[n[t],n[t-1]]=[n[t-1],n[t]],w(n),i.onRowMove?.(r,t,t-1),a.success(l(`table.moveUpSuccess`))},ie=()=>{if(!i.enabled||!i.enableMove||!g.value)return;let t=m.value,n=[...e.value],r=n[t];[n[t],n[t+1]]=[n[t+1],n[t]],w(n),i.onRowMove?.(r,t,t+1),a.success(l(`table.moveDownSuccess`))},ae=t=>{if(!i.enabled)return;let n=e.value.find(e=>Ot(e,i.rowKey)===t);n&&(d.value=t,i.onSelectionChange?.(t,n))},oe=()=>{d.value=null,i.onSelectionChange?.(null,null)},j=async e=>{if(!e.value){a.error(l(`table.printTargetMissing`));return}let t=C();await b(e.value,t)};return D()&&se(()=>{d.value=null,f.value=!1}),{selectedRowKey:d,selectedRowData:p,selectedRowIndex:m,canMoveUp:h,canMoveDown:g,deleteConfirmVisible:f,printLoading:_,printProgress:v,addRow:ee,insertRow:te,deleteRow:k,confirmDelete:ne,copyRow:A,moveRowUp:re,moveRowDown:ie,selectRow:ae,clearSelection:oe,handlePrint:j,handleDownload:async(e,t)=>{if(!e.value){a.error(l(`table.downloadTargetMissing`));return}let n=C();await x(e.value,t,n)},handleQuickPrint:async e=>{if(!e.value){a.error(l(`table.printTargetMissing`));return}let t=i.printWatermarkText||`Robot Admin`;await S(e.value,t)},enhanceColumns:e=>{if(!i.enabled)return e;let t=[...e];return i.enabled&&i.enableRadioSelection&&t.unshift({key:`_radio_selection`,title:l(`common.select`),width:80,align:`center`,editable:!1,render:e=>{let t=Ot(e,i.rowKey);return O(`div`,{class:`flex justify-center`},[O(`input`,{type:`radio`,name:u,"aria-label":l(`common.select`),checked:d.value===t,class:`cursor-pointer accent-blue-500 scale-110`,onChange:e=>{e.target.checked&&ae(t)}})])}}),t},renderToolbar:e=>{if(!i.enabled)return null;let t=[];i.enablePrint&&t.push(O(B,{loading:_.value,type:`primary`,ghost:!0,onClick:async()=>{try{let t=e??document.querySelector(i.printTargetSelector);t?await j(P(t)):a.warning(l(`table.printTargetMissing`))}catch(e){a.error(l(`table.printTargetMissing`),e)}}},{icon:()=>O(c,{name:`mdi:printer`,title:l(`common.print`)}),default:()=>l(`common.print`)}));let n=[];return i.enableAdd&&n.push(O(B,{onClick:ee,type:`primary`},{icon:()=>O(c,{name:`mdi:plus`,title:l(`table.addRow`)}),default:()=>l(`table.addRow`)})),i.enableInsert&&n.push(O(Ee,{disabled:!!p.value},{trigger:()=>O(B,{onClick:te,disabled:!p.value,type:`primary`,ghost:!0},{icon:()=>O(c,{name:`mdi:table-row-plus-after`,title:l(`table.insertRow`)}),default:()=>l(`table.insertRow`)}),default:()=>l(`table.selectRowFirst`)})),i.enableDelete&&n.push(O(Ee,{disabled:!!p.value},{trigger:()=>O(B,{onClick:k,disabled:!p.value,type:`error`,ghost:!0},{icon:()=>O(c,{name:`mdi:delete`,title:l(`table.deleteRow`)}),default:()=>l(`table.deleteRow`)}),default:()=>l(`table.selectDeleteRowFirst`)})),i.enableCopy&&n.push(O(Ee,{disabled:!!p.value},{trigger:()=>O(B,{onClick:A,disabled:!p.value,type:`info`,ghost:!0},{icon:()=>O(c,{name:`mdi:content-copy`,title:l(`table.copyRow`)}),default:()=>l(`table.copyRow`)}),default:()=>l(`table.selectCopyRowFirst`)})),i.enableMove&&n.push(O(Ee,{disabled:h.value},{trigger:()=>O(B,{onClick:re,disabled:!h.value,type:`warning`,ghost:!0},{icon:()=>O(c,{name:`mdi:arrow-up`,title:l(`table.moveUp`)}),default:()=>l(`table.moveUp`)}),default:()=>p.value?l(`table.firstRow`):l(`table.selectRowFirst`)}),O(Ee,{disabled:g.value},{trigger:()=>O(B,{onClick:ie,disabled:!g.value,type:`warning`,ghost:!0},{icon:()=>O(c,{name:`mdi:arrow-down`,title:l(`table.moveDown`)}),default:()=>l(`table.moveDown`)}),default:()=>p.value?l(`table.lastRow`):l(`table.selectRowFirst`)})),n.length>0&&t.push(O(pe,{},()=>n)),O(`div`,{class:`dynamic-rows-toolbar mb-4 flex justify-end`},[O(Ce,{},()=>t)])},renderConfirmModal:()=>O(be,{show:f.value,"onUpdate:show":e=>{f.value=e},preset:`dialog`,title:l(`table.deleteTitle`),content:i.deleteConfirmText||l(`table.deleteRowContent`),positiveText:l(`table.confirmDeleteRow`),negativeText:l(`common.cancel`),onPositiveClick:ne})}}function jt(e){let t=0,{data:n,rowKey:r,emit:i}=e,a=()=>I(e.config),c=()=>a().treeEnabled?a().treeChildrenKey??`children`:void 0,l=y(()=>q(n(),c())),u=()=>l.value,d=s(()=>a().feedback),{t:f}=o(()=>a().locale),p=(e,t,i)=>n()===e&&l.value.find(e=>r(e)===t)===i,m={onSave:async(e,o,s,u)=>{let d=n(),f=u??r(e),m=l.value.find(e=>r(e)===f);if(!m)return;let h=l.value.indexOf(m),g={...m,...e},_=t;if(a().editable)try{if(await a().onEditSave?.(g,h,s),t!==_||(await i(`save`,g,h,s),t!==_)||!p(d,f,m))return;i(`update:data`,J(n(),m,g,c()))}catch(e){throw a().onEditError?.(e),i(`edit-error`,e),e}},onCancel:async(e,n)=>{let r=t;try{if(await a().onEditCancel?.(e,n),t!==r)return;await i(`cancel`,e,n)}catch(e){throw a().onEditError?.(e),i(`edit-error`,e),e}},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),a().dynamicRows?.onRowChange?.(e)},onRowSelectionChange:(e,t)=>{i(`row-selection-change`,e,t),a().dynamicRows?.onSelectionChange?.(e,t)},onRowAdd:e=>{i(`row-add`,e),a().dynamicRows?.onRowAdd?.(e)},onRowDelete:(e,t)=>{i(`row-delete`,e,t),a().dynamicRows?.onRowDelete?.(e,t)},onRowCopy:(e,t)=>{i(`row-copy`,e,t),a().dynamicRows?.onRowCopy?.(e,t)},onRowMove:(e,t,n)=>{i(`row-move`,e,t,n),a().dynamicRows?.onRowMove?.(e,t,n)}},h=()=>({rowEdit:We({data:u,rowKey:r,onSave:(e,t,n)=>m.onSave(e,t,void 0,n),onCancel:m.onCancel,columns:e.columns}),cellEdit:Ke({data:u,rowKey:r,onSave:m.onSave,columns:e.columns}),modalEdit:qe({data:u,rowKey:r,onSave:(e,t,n)=>m.onSave(e,t,void 0,n),onCancel:m.onCancel})}),g=()=>ut({data:y(()=>n()),rowKey:r,get childrenKey(){return c()},childRowKey:e=>e.id,get locale(){return a().locale},renderLoading:e.renderLoading,get defaultExpandedKeys(){return a().defaultExpandedKeys},get onLoadData(){return a().onLoadExpandData},onError:(e,t)=>{let n=a().onExpandError;n?n(e,t):d.error(f(`table.loadFailed`),e)},get renderContent(){return a().renderExpandContent},get rowExpandable(){return a().rowExpandable},get enableSelection(){return a().enableSelection},get defaultCheckedKeys(){return a().defaultCheckedKeys},get rowCheckable(){return a().rowCheckable},get maxSelection(){return a().maxSelection},get enableChildSelection(){return a().enableChildSelection},get childRowCheckable(){return a().childRowCheckable},get enableParentChildLink(){return a().enableParentChildLink},get parentChildLinkMode(){return a().parentChildLinkMode},onExpandChange:m.onExpandChange,onSelectionChange:m.onSelectionChange,onChildSelectionChange:m.onChildSelectionChange}),_=()=>At(y(()=>n()),y(()=>({...a().dynamicRows,rowKey:a().dynamicRows?.rowKey??I(e.rowKeyField)??r,enabled:!!a().dynamicRows&&a().dynamicRows?.enabled!==!1,feedback:a().feedback,locale:a().locale,onRowChange:m.onRowChange,onSelectionChange:m.onRowSelectionChange,onRowAdd:m.onRowAdd,onRowDelete:m.onRowDelete,onRowCopy:m.onRowCopy,onRowMove:m.onRowMove}))),v=h();R(v.rowEdit.validationErrors,e=>{v.rowEdit.editingRowKey.value!==null&&e.length&&d.error(e[0].message)}),R(v.cellEdit.cellValidationError,e=>{v.cellEdit.editingCell.value.rowKey!==null&&e&&d.error(e)});let b=()=>{t++,v.rowEdit.invalidate(),v.cellEdit.invalidate(),v.modalEdit.invalidate()};R([()=>a().editable,()=>a().editMode],b,{flush:`sync`}),D()&&se(b);let x=g(),S=_();return{editStates:v,expandState:x,dynamicRowsState:S,stateManager:{edit:{start(e,t){if(!a().editable)return;let n=a().editMode;n===`modal`?v.modalEdit.startEdit(e):n===`cell`&&t?v.cellEdit.startEditCell(e,t):(n===`row`||n===`both`)&&v.rowEdit.startEditRow(e)},cancel(){v.modalEdit.isModalVisible.value?v.modalEdit.cancelEdit():v.cellEdit.editingCell.value.rowKey===null?v.rowEdit.editingRowKey.value!==null&&v.rowEdit.cancelEditRow():v.cellEdit.cancelEditCell()},async save(){v.modalEdit.isModalVisible.value?await v.modalEdit.saveEdit():v.cellEdit.editingCell.value.rowKey===null?v.rowEdit.editingRowKey.value!==null&&await v.rowEdit.saveEditRow():await v.cellEdit.saveEditCell()},isEditing(e,t){return a().editMode===`modal`?v.modalEdit.isEditingRow(e):t?v.cellEdit.isEditingCell(e,t):v.rowEdit.isEditingRow(e)},getEditingData(){return v.modalEdit.isModalVisible.value?v.modalEdit.editingData.value:v.rowEdit.editingRowKey.value===null?null:v.rowEdit.getEditingRowData(v.rowEdit.editingRowKey.value)}},expand:{async row(e){if(x){let t=[...x.expandedKeys.value];t.includes(e)||(t.push(e),x.handleExpandChange(t))}},collapse(e){if(x){let t=x.expandedKeys.value.filter(t=>t!==e);x.handleExpandChange(t)}},async toggle(e){x?.expandedKeys.value.includes(e)?this.collapse(e):await this.row(e)},async all(){await x?.expandAll()},collapseAll(){x?.collapseAll()},isExpanded(e){return x?.expandedKeys.value.includes(e)??!1}},selection:{select(e){if(x?.checkedKeys.value&&!x.checkedKeys.value.includes(e)){let t=[...x.checkedKeys.value,e];x.handleSelectionChange(t)}},unselect(e){if(x?.checkedKeys.value){let t=x.checkedKeys.value.filter(t=>t!==e);x.handleSelectionChange(t)}},all(){x?.selectAll()},clear(){x?.clearSelection()},isSelected(e){return x?.checkedKeys.value.includes(e)??!1},getSelected(){if(!x?.checkedKeys.value)return[];let e=new Set(x.checkedKeys.value);return l.value.filter(t=>e.has(r(t)))}},childSelection:{select(e,t){if(x?.childSelections.value){let n=x.childSelections.value.get(e)||[];if(!n.includes(t)){let r=[...n,t];x.childSelections.value.set(e,r),i(`child-selection-change`,e,r,[])}}},unselect(e,t){if(x?.childSelections.value){let n=(x.childSelections.value.get(e)||[]).filter(e=>e!==t);x.childSelections.value.set(e,n),i(`child-selection-change`,e,n,[])}},selectAll(e){if(x?.childSelections.value&&x.expandDataMap?.value){let t=x.expandDataMap.value.get(e)||[],n=t.map(e=>e.id);x.childSelections.value.set(e,n),i(`child-selection-change`,e,n,t)}},clear(e){x?.childSelections.value&&(x.childSelections.value.set(e,[]),i(`child-selection-change`,e,[],[]))},getSelected(e){if(!x?.childSelections.value||!x.expandDataMap?.value)return[];let t=x.childSelections.value.get(e)||[];return(x.expandDataMap.value.get(e)||[]).filter(e=>t.includes(e.id))}},dynamicRows:{add(){S?.addRow()},insert(){S?.insertRow()},delete(){S?.deleteRow()},copy(){S?.copyRow()},moveUp(){S?.moveRowUp()},moveDown(){S?.moveRowDown()},clearSelection(){S?.clearSelection()},getSelected(){return S?.selectedRowData.value||null},async print(e){S&&e&&await S.handlePrint(P(e))},async download(e,t){S&&e&&await S.handleDownload(P(e),t)}},clearAllSelections(){x?.clearAllSelections()}},expandedKeys:y(()=>x?.expandedKeys.value??[]),checkedKeys:y(()=>x?.checkedKeys.value??[]),eventHandlers:m}}const $={page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};function Mt(e,t){return!Number.isFinite(e)||(e??0)<=0?t:Math.max(1,Math.trunc(e))}function Nt(e){let{data:t,config:n,emit:r}=e,i=N($.page),a=N($.pageSize),o=y(()=>{let e=typeof t==`function`?t():L(t);return Array.isArray(e)?e:[]}),s=y(()=>{let e=n.value;return e?.remote?Math.max(0,Math.trunc(e.total??o.value.length)):o.value.length}),c=()=>n.value?.enabled?Math.max(1,Math.ceil(s.value/a.value)):1,l=(e,t)=>{let n=Math.min(Mt(e,1),c());i.value!==n&&(i.value=n,t&&r?.(`pagination-change`,n,a.value))},u=e=>l(e,!0),d=e=>{let t=Mt(e,$.pageSize),n=a.value!==t;a.value=t,i.value=1,n&&r?.(`pagination-change`,1,t)},f=()=>l(1,!0),p=y(()=>{let e=n.value;if(!e?.enabled||e.remote)return o.value;let t=(i.value-1)*a.value;return o.value.slice(t,t+a.value)}),m=y(()=>{let e=n.value;return e?.enabled?{page:i.value,pageSize:a.value,itemCount:s.value,showSizePicker:e.showSizePicker??$.showSizePicker,showQuickJumper:e.showQuickJumper??$.showQuickJumper,pageSizes:e.pageSizes??$.pageSizes,simple:e.simple??$.simple,size:e.size??$.size,prefix:e=>`共 ${e.itemCount??0} 条`,suffix:e=>(e.itemCount??0)>0?`第 ${e.startIndex+1}-${e.endIndex} 条`:`暂无数据`,"onUpdate:page":u,"onUpdate:pageSize":d}:null});return R(()=>[n.value?.page,n.value?.pageSize],([e,t])=>{a.value=Mt(t,$.pageSize),i.value=Math.min(Mt(e,$.page),c())},{immediate:!0}),R([s,a],()=>{let e=Math.min(i.value,c());e!==i.value&&(i.value=e,r?.(`pagination-change`,e,a.value))}),{currentPage:i,currentPageSize:a,paginatedData:p,paginationConfig:m,handlePageChange:u,handlePageSizeChange:d,resetToFirstPage:f,getTotalPages:c}}function Pt(e){return e.flatMap(e=>e.visible===!1?[]:`children`in e&&Array.isArray(e.children)?Pt(e.children):`type`in e&&e.type?[]:[e])}function Ft(e,t){return e==null?t==null?0:-1:t==null?1:typeof e==`number`&&typeof t==`number`?e-t:typeof e==`string`&&typeof t==`string`?e.localeCompare(t):0}function It(e,t,n){let{sorter:r}=e;return typeof r==`function`?r(t,n):r&&typeof r==`object`&&typeof r.compare==`function`?r.compare(t,n):r===`default`||typeof r==`object`&&r.compare===`default`?Ft(t[e.key],n[e.key]):0}function Lt(e,t,n){let r=Array.isArray(t)?t:[t];if(t==null||r.length===0)return!0;let{filter:i}=e,a=t=>t==null?!0:typeof i==`function`?i(t,n):i===`default`?String(n[e.key]).includes(String(t)):!0;return e.filterMode===`and`?r.every(a):r.some(a)}function Rt(e,t){return e.filterOptionValues===void 0?e.filterOptionValue===void 0?Object.prototype.hasOwnProperty.call(t,e.key)?t[e.key]:e.defaultFilterOptionValues??e.defaultFilterOptionValue:e.filterOptionValue:e.filterOptionValues}function zt(e){let t=P(),n=P({}),r=y(()=>Pt(I(e.columns))),i=y(()=>r.value.flatMap(e=>{if(e.filter!==`default`&&typeof e.filter!=`function`)return[];let t=Rt(e,n.value);return t==null||Array.isArray(t)&&t.length===0?[]:[{column:e,value:t}]})),a=y(()=>{let t=I(e.data);if(I(e.remote))return t;let n=i.value;return n.length?t.filter(e=>n.every(({column:t,value:n})=>Lt(t,n,e))):t}),o=y(()=>{let e=r.value.filter(e=>e.sortOrder===!1||e.sortOrder===`ascend`||e.sortOrder===`descend`);return e.length?e.map(e=>({columnKey:e.key,order:e.sortOrder})):t.value===void 0?r.value.map(e=>({columnKey:e.key,order:e.defaultSortOrder})):t.value?Array.isArray(t.value)?t.value:[t.value]:[]});return{processedData:y(()=>{if(I(e.remote))return I(e.data);let t=o.value.flatMap(e=>{let t=r.value.find(t=>t.key===e.columnKey);if(!t?.sorter||!e.order)return[];let n=typeof t.sorter==`object`?t.sorter.multiple??0:0;return[{column:t,direction:e.order===`ascend`?1:-1,priority:n}]}).sort((e,t)=>t.priority-e.priority);return t.length?a.value.slice().sort((e,n)=>{for(let r of t){let t=It(r.column,e,n)*r.direction;if(t)return t}return 0}):a.value}),setSorter:e=>{t.value=e},setFilters:e=>{n.value={...e}}}}const Bt=e=>e&&typeof e==`object`&&`error`in e?e.error:null;function Vt(e){let{actions:t,config:n,tableManager:r,rowKey:i,onRowDeleted:a,onViewDetail:l,isDeleteFeedbackHandled:u}=e,f=d(),p=!0;D()&&se(()=>{p=!1});let m=(e,t)=>JSON.stringify([typeof e,e,t]),h=s(()=>n.value.feedback),{t:g}=o(()=>n.value.locale),_=e=>e===`edit`?n.value.editable&&t.value?.edit!==!1:typeof t.value?.[e]==`function`,v=e=>e!==!1&&typeof e==`function`,y=e=>e&&typeof e==`object`&&`data`in e?e.data:e,b=(e,t,r=`primary`,i,a,o=!1)=>O(B,{size:n.value.controlSize??`small`,type:r,quaternary:!0,onClick:i,loading:o||(a?f.isRunning(a):!1),disabled:a?f.isRunning(a):!1},()=>[O(c,{name:e,size:14,title:t})]),x=async(e,a)=>{let o=i(e),s=t.value?.edit;if(v(s)){try{await s(e,a)}catch(e){h.error(g(`table.actionFailed`,{action:g(`common.edit`)}),e)}return}n.value.editMode===`modal`?r.editStates.modalEdit.startEdit(o,{...e}):r.editStates.rowEdit.startEditRow(o)},S=(e,t)=>{p&&!t&&h.error(g(`table.deleteFailed`),e)},C=async(e,t,n)=>{let r=u?.(e)===!0;try{let i=await e(t,n);if(!p)return;let o=Bt(i);if(o!=null){S(o,r);return}r||h.success(g(`table.deleteSuccess`)),a?.(t,n)}catch(e){throw S(e,r),e}},w=async(e,n)=>{let r=t.value?.delete;v(r)&&await h.confirm({title:g(`table.deleteTitle`),content:g(`table.deleteContent`),positiveText:g(`common.confirm`),negativeText:g(`common.cancel`),type:`warning`})&&p&&await C(r,e,n)},T=async(e,n)=>{let r=t.value?.detail;if(!v(r)){l?.(e);return}try{let t=await r(e,n);if(!p)return;let i=y(t);l?.(i||e)}catch(t){if(!p)return;h.error(g(`table.detailFailed`),t),l?.(e)}},E=(e,t)=>f.run(m(i(e),`edit`),()=>x(e,t)),ee=(e,t)=>f.run(m(i(e),`delete`),()=>w(e,t)),te=(e,t)=>f.run(m(i(e),`detail`),()=>T(e,t)),k=e=>r.editStates.rowEdit.isEditingRow(e)?[b(`mdi:check`,g(`common.save`),`primary`,()=>void f.run(m(e,`save`),()=>r.editStates.rowEdit.saveEditRow()).catch(e=>h.error(g(`table.actionFailed`,{action:g(`common.save`)}),e)),m(e,`save`)),b(`mdi:close`,g(`common.cancel`),`default`,()=>void f.run(m(e,`cancel`),()=>r.editStates.rowEdit.cancelEditRow()).catch(e=>h.error(g(`table.actionFailed`,{action:g(`common.cancel`)}),e)),m(e,`cancel`))]:[b(`mdi:pencil`,g(`common.edit`),`warning`,()=>r.editStates.rowEdit.startEditRow(e))],ne=(e,r)=>{let a=[];return _(`detail`)&&a.push(b(`mdi:eye`,g(`common.detail`),`info`,()=>void te(e,r),m(i(e),`detail`))),_(`edit`)&&(n.value.editMode===`modal`||v(t.value?.edit))&&a.push(b(`mdi:pencil`,g(`common.edit`),`warning`,()=>void E(e,r),m(i(e),`edit`))),_(`delete`)&&a.push(b(`mdi:delete`,g(`common.delete`),`error`,()=>void ee(e,r).catch(()=>void 0),m(i(e),`delete`))),a},A=(e,n)=>{let r=t.value?.custom;if(!r?.length)return null;let a=r.filter(t=>t.show?t.show(e,n):!0);return a.length?O(_e,{options:a.map(t=>{let r=typeof t.label==`function`?t.label(e,n):t.label,a=typeof t.icon==`function`?t.icon(e,n):t.icon;return{label:r,key:t.key,icon:()=>O(c,{name:a,size:14}),disabled:t.disabled?.(e,n)||f.isRunning(m(i(e),`custom:${t.key}`))}}),onSelect:t=>{let r=a.find(e=>e.key===t);if(!r)return;let o=typeof r.label==`function`?r.label(e,n):r.label;f.run(m(i(e),`custom:${r.key}`),()=>r.onClick(e,n),()=>!r.disabled?.(e,n)).catch(e=>h.error(g(`table.actionFailed`,{action:o}),e))}},()=>b(`mdi:dots-horizontal`,g(`table.moreActions`),`default`,()=>{},void 0,a.some(t=>f.isRunning(m(i(e),`custom:${t.key}`))))):null};return{renderActions:(e,a)=>{if(t.value?.render)return t.value.render(e,a);let o=i(e),s=n.value.editable&&[`row`,`both`].includes(n.value.editMode);if(s&&r.editStates.rowEdit.isEditingRow(o))return O(Ce,{size:2,wrap:!1},()=>k(o));let c=v(t.value?.edit),l=[...s&&!c?k(o):[],...ne(e,a)],u=A(e,a);return u&&l.push(u),O(Ce,{size:2,wrap:!1},()=>l)},isActionEnabled:_}}const Ht=[[/^(success|ok|done|complete|completed|normal|active|enabled|启用|正常|完成|已完成|运行|运行中|在线|生效|已发运)$/i,`success`],[/^(warning|warn|hold|pending|standby|待机|待审核|暂停|预警|部分完成|待下达|待复核|待发运)$/i,`warning`],[/^(error|fail|failed|danger|fault|offline|disabled|故障|失败|错误|异常|停用|离线|断开)$/i,`error`],[/^(info|processing|new|draft|进行中|新建|草稿|审批中|同步中|执行中|已下达|装车中)$/i,`info`]];function Ut(e,t,n){let r=typeof n==`object`&&Object.prototype.hasOwnProperty.call(n,String(e))?n[String(e)]:void 0,i=typeof r==`object`?r.label??t:t,a=typeof r==`string`?r:r?.color,o=Ht.find(([t])=>t.test(String(e))||t.test(i))?.[1]??`default`;return{label:i,color:a??o}}function Wt(){let e;return(t,n)=>{e===void 0&&(e=typeof document>`u`?null:document.createElement(`canvas`).getContext(`2d`));let r=t;return e?(e.font=n,e.measureText(r).width):Array.from(r).reduce((e,t)=>e+(t.charCodeAt(0)>255?13:7),0)}}const Gt=ee(()=>import(`./date-picker.js`)),Kt={number:ye,switch:U,input:ve,email:ve,mobile:ve,date:e=>O(Gt,{...e,type:`date`,format:`yyyy-MM-dd`}),select:Se,textarea:e=>O(ve,{...e,type:`textarea`,rows:3})},qt={number:`inputNumber`,date:`datePicker`,textarea:`textarea`,select:`select`,switch:`switch`},Jt=(e,t)=>e.filter(Ve).map(e=>{let n={...e.editProps};return delete n.rules,{prop:String(e.key),label:e.title||String(e.key),type:qt[e.editType??(e.dictionary===void 0?`input`:`select`)]??`input`,dictionary:e.dictionary,...e.dictionary!==void 0&&Array.isArray(e.editProps?.options)?{children:e.editProps.options.map(e=>({...e}))}:{},placeholder:e.editProps?.placeholder??`请输入${e.title}`,rules:He(e,t),attrs:n,layout:{span:1},show:!0}});function Yt(e,i,a,o){let s=e,c={value:i,"onUpdate:value":a,placeholder:`请输入${s.title??``}`,style:{width:`100%`},...o.size?{size:o.size}:{},...e.editProps,...o.busy?{disabled:!0}:{}};if(!o.dictionaryOptions||e.editProps?.options!==void 0||e.editType&&e.editType!==`select`)return c;let l=c[`onUpdate:value`];return c.value=r(i),c[`onUpdate:value`]=e=>l(t(e)),{...c,options:n(o.dictionaryOptions),fallbackOption:e=>({value:e,label:String(t(e)??``)})}}function Xt(e,t,n,r={},i=0,a,o=!1){if(e.editRender)return e.editRender(t,r,i,{onUpdate:n});let s=typeof a==`object`?a:{size:a,busy:o},c=Yt(e,t,n,s);return O(Kt[e.editType||(s.dictionaryOptions?`select`:`input`)]||Kt.input,c)}function Zt(e,t,n,r,i){if(e.render)return e.render(t,n)??String(r??``);let a=e.formatter?g(r,t,e.formatter,i):String(r??``);if(!e.status||r==null||r===``)return a;let o=Ut(r,a,e.status),s=o.color===`danger`?`error`:o.color===`neutral`?`default`:o.color,c=[`default`,`success`,`warning`,`error`,`info`,`primary`].includes(s);return O(we,{size:`small`,round:!0,bordered:!1,type:c?s:`default`,...c?{}:{color:{textColor:s,color:`color-mix(in srgb, ${s} 12%, transparent)`}}},()=>o.label)}function Qt(e,t,n,r,i,a={rowData:{},rowIndex:0}){let o=(e,t,n)=>O(`button`,{class:`cell-action-btn cell-action-${e}`,disabled:a.busy,"aria-busy":a.busy||void 0,title:t,type:`button`,onClick:e=>{e.stopPropagation(),e.preventDefault(),n(e)}},[O(c,{name:`mdi:${e===`save`?`check`:`close`}`,title:e===`save`?`保存`:`取消`,size:12})]);return O(`div`,{class:`cell-editing-container`},[O(`div`,{class:`cell-editing-input`},[Xt(e,t,n,a.rowData,a.rowIndex,a)]),O(`div`,{class:`cell-editing-actions`},[o(`save`,`保存`,r),o(`cancel`,`取消`,i)])])}function $t(e,t,n,r,i,a){let o;return o=e.render?e.render(t,n)??String(r??``):e.formatter?g(r,t,e.formatter,a):String(r??``),O(`div`,{class:`cell-edit-wrapper`},[O(`span`,{class:`cell-value`},o),O(c,{name:`mdi:square-edit-outline`,title:`编辑`,class:`cell-edit-icon`,size:14,clickable:!0,onClick:e=>{e.stopPropagation(),i()}})])}function en(e){let{rawColumns:t,config:n,rowKey:r,tableManager:i,actionsRenderer:a,editModeChecker:o,showActionsColumn:s}=e,c=N([]),l=N(!1),u=e=>{let t=e.find(e=>e.key===`_actions`),n=c.value.find(e=>e.key===`_actions`),r=e.filter(e=>e.key!==`_actions`);c.value=s.value?[...r,t||n||{key:`_actions`,title:`操作`,width:180,editable:!1,visible:!0,fixed:`right`}]:r};R([t,s],([e])=>{e?.length?u(e):c.value=[]},{deep:!0,immediate:!0});let d=p(()=>new Map(c.value.filter(e=>e.dictionary!==void 0).map(e=>[String(e.key),e.dictionary])),{onError:e=>n.value.feedback?.error?.(e instanceof Error?e.message:String(e),e)}),f=e=>e.dictionary===void 0?void 0:d.getOptions(String(e.key)),m=e=>e.dictionary!==void 0&&!e.formatter?{...e,formatter:{type:`enum`,fn:t=>d.getLabel(String(e.key),t)}}:e,h=(e,t,r,a)=>{let o=e.key??``,s=t[o],{isEditingCell:c,getEditingCellValue:l,updateEditingCellValue:u,saveEditCell:d,cancelEditCell:p,startEditCell:m}=i.editStates.cellEdit;return c(a,o)?Qt(e,l(a,o),e=>u(a,o,e),()=>d(),()=>p(),{rowData:t,rowIndex:r,busy:i.editStates.cellEdit.isSaving?.value,size:n.value.density?n.value.controlSize:void 0,dictionaryOptions:f(e)}):$t(e,t,r,s,()=>m(a,o),n.value.formatterConfig)},_=(e,t,a)=>{let s=e.key??``,c=t[s],l=r(t),u=o.value;if(u.isNonEditable(e))return Zt(e,t,a,c,n.value.formatterConfig);if(u.isRowEditMode()&&i.editStates.rowEdit.isEditingRow(l)){let r=i.editStates.rowEdit.getEditingRowData(l);return Xt(e,r?.[s],e=>i.editStates.rowEdit.updateEditingRowData(l,s,e),r??t,a,{size:n.value.density?n.value.controlSize:void 0,busy:i.editStates.rowEdit.isSaving?.value,dictionaryOptions:f(e)})}return u.isCellEditMode()?h(e,t,a,l):Zt(e,t,a,c,n.value.formatterConfig)},v=Wt(),b=t=>Math.ceil(v(t.title??String(t.key??``),e.getFont?.(!0)??`600 13px sans-serif`)+(t.sorter?20:0)+(t.filter?28:0)+28),x=t=>{let r=e.getFont?.()??`13px sans-serif`,i=m(t),a=b(t)-28,o=e.data?.value??[],s=Math.min(o.length,100);for(let e=0;e<s;e++){let c=o[s===1?0:Math.floor(e*(o.length-1)/(s-1))],l=c[String(t.key)],u=i.formatter?g(l,c,i.formatter,n.value.formatterConfig):String(l??``);t.status&&(u=Ut(l,u,t.status).label),a=Math.max(a,v(u.slice(0,128),r)+(t.status?16:0))}let c=t.minWidth??80;return Math.max(c,Math.min(Math.max(c,t.maxWidth??360),Math.ceil(a+28)))},S=t=>{if(t.type===`selection`||t.type===`expand`)return t.width??40;let n=t.width??(t.type===`index`?50:e.columnWidthExplicit||t.autoWidth===!1?e.columnWidth??180:x(t));return typeof n==`number`?Math.max(n,b(t)):n},C=e=>{let t=e;return{...t,type:void 0,key:`_index`,title:t.title??`序号`,width:S(e),className:[t.className,`c-table-index-column`].filter(Boolean).join(` `),titleAlign:t.titleAlign??`center`,align:t.align??`center`,render:(e,t)=>t+1,fixed:e.fixed}},w=t=>{let n=t,r=m(t),i=n.width===void 0&&!e.columnWidthExplicit&&n.autoWidth!==!1,a={...n,width:S(t),minWidth:Math.max(n.minWidth??(i?80:0),b(n)),maxWidth:n.maxWidth==null?void 0:Math.max(n.maxWidth,b(n)),ellipsis:n.ellipsis??(i?{tooltip:!0}:void 0),titleAlign:n.titleAlign||`center`,align:n.align||`center`,render:(e,t)=>_(r,e,t)};return t.fixed&&(a.fixed=t.fixed),t.resizable&&typeof a.width==`number`&&(a.resizable=!0,a.maxWidth=Math.max(a.minWidth,t.maxWidth??500)),a},T=y(()=>{let e=c.value.filter(e=>{let t=e;return t.visible!==!1&&t.key!==`_actions`}).map(e=>{let t=e;return e.type===`index`?C(e):e.type===`selection`||e.type===`expand`?{...t,width:S(e)}:w(e)});if(i.dynamicRowsState&&(e=i.dynamicRowsState.enhanceColumns(e)),i.expandState&&(n.value.expandable||n.value.enableSelection)&&(e=i.expandState.getTableColumns(e)),s.value){let t=c.value.find(e=>e.key===`_actions`);e.push({...t,type:void 0,key:`_actions`,title:t?.title??`操作`,width:S({...t,key:`_actions`,title:t?.title??`操作`,width:t?.width??180}),minWidth:Math.max(t?.minWidth??0,b(t??{key:`_actions`,title:`操作`})),maxWidth:t?.maxWidth==null?void 0:Math.max(t.maxWidth,b(t)),className:[t?.className,`c-table-actions-column`].filter(Boolean).join(` `),align:t?.align??`center`,titleAlign:t?.titleAlign??`center`,render:a,fixed:t?.fixed})}return e});return{reactiveColumns:c,showSettingsPanel:l,computedColumns:T,computedScrollX:y(()=>{if(e.scrollX!==void 0)return e.scrollX;let t=T.value.some(e=>e.fixed),n=c.value.some(t=>!t.type&&t.width===void 0&&!e.columnWidthExplicit&&t.autoWidth!==!1),r=c.value.some(e=>!e.type&&typeof e.width==`number`&&b(e)>e.width);if(!(!t&&!n&&!r))return T.value.reduce((e,t)=>{let{width:n}=t;return e+(typeof n==`number`?n:typeof n==`string`&&/^\s*\d+(?:\.\d+)?(?:px)?\s*$/.test(n)?Number.parseFloat(n):typeof t.minWidth==`number`?t.minWidth:180)},0)}),getDictionaryLabel:(e,t)=>d.getLabel(String(e.key),t),handleColumnChange:e=>{c.value=e.map(e=>{let t=e;return{...e,visible:t.visible!==!1,fixed:e.fixed,width:t.width??(t.type?S(e):void 0),align:t.align||`center`,titleAlign:t.titleAlign||`center`}})}}}function tn(e){let{data:t,onReorder:n,onSort:r}=e,i=N(!1),a=null,o=0,s=!1,c,l=null,u,d,f=null,p,m=t=>t.map(t=>Je(t,e.rowKey)),h=()=>{p?.parentNode!==l||!l||f&&f.parentNode!==l||l.insertBefore(p,f)},g=()=>{a?.destroy(),a=null,l=null,u=void 0,d=void 0,p=void 0,f=null,i.value=!1},_=(e,t,n)=>{if(!u||u.length!==e.length||u.some((t,n)=>t!==e[n])||t.some((e,t)=>e===void 0||e!==d?.[t])||n.length!==t.length||new Set(n).size!==t.length)return!1;let r=new Set(t);return n.every(e=>r.has(e))},v=e=>{i.value=!1;let{item:a}=e,o=a.getAttribute(`data-c-table-row-key`),s=[...t.value],c=m(s),g=l?[...l.children].map(e=>e.getAttribute(`data-c-table-row-key`)).filter(e=>e!==null):[],v=a===p&&_(s,c,g);if(h(),u=void 0,d=void 0,p=void 0,f=null,!v||!o)return;let y=c.indexOf(o),b=g.indexOf(o);if(y<0||b<0||y===b)return;let[x]=s.splice(y,1);s.splice(b,0,x),n?.(s),r?.(x,y,b)},y=async n=>{let r=++o;c?.disconnect(),c=void 0,g();let h=I(e.config);if(!(!h||h.enabled===!1||!n||s))try{let{default:e}=await import(`sortablejs`);if(s||r!==o)return;let _=()=>{if(s||r!==o)return;let c=n.querySelector(`.n-data-table-tbody`);c!==l&&(g(),c&&(l=c,a=new e(c,{animation:h.animationDuration??150,handle:h.handleSelector,draggable:`> tr[data-c-table-row-key]`,ghostClass:h.ghostClass??`row-drag-ghost`,chosenClass:h.chosenClass??`row-drag-chosen`,onMove:e=>e.related.hasAttribute(`data-c-table-row-key`),onStart:e=>{u=[...t.value],d=m(u),p=e.item,f=e.item.nextSibling,i.value=!0},onEnd:v})))};c=new MutationObserver(_),c.observe(n,{childList:!0,subtree:!0}),_()}catch{}},b=()=>{o+=1,c?.disconnect(),c=void 0,g()};return ae(()=>{s=!0,b()}),{initRowDrag:y,destroyRowDrag:b,isDragging:i}}function nn(e){let t=N(new Set),n=de(new Map),r=()=>I(e.config)?.enabled===!0,i=(t=e.allData.value)=>q(t,I(e.childrenKey)),a=y(()=>{let t=new Map,n=new Map;for(let r of i()){let i=e.rowKey(r),a=t.get(i);if(!a)t.set(i,r);else{let e=n.get(i);e?e.push(r):n.set(i,[a,r])}}return{index:t,duplicates:n}}),o=t=>e.rowCheckable?.(t)!==!1,s=()=>{let t=I(e.config)?.maxSelection;return Number.isFinite(t)&&(t??0)>0?Math.trunc(t):void 0},c=y(()=>t.value.size),l=()=>[...t.value].flatMap(e=>{let t=n.get(e);return t?[t]:[]}),u=e=>{let t=s(),n=new Set;for(let r of e){if(t&&n.size>=t)break;n.add(r)}return n},d=(r,i=[])=>{let a=u(r);for(let t of i){let r=e.rowKey(t);a.has(r)&&n.set(r,t)}for(let e of n.keys())a.has(e)||n.delete(e);let o=t.value;o.size===a.size&&[...o].every(e=>a.has(e))||(t.value=a,e.onSelectionChange?.([...a],l()))},f=n=>i(n).map(e.rowKey).filter(e=>t.value.has(e)),p=(n,a)=>{if(!r())return;let s=i(a),c=new Set(s.filter(o).map(e.rowKey)),l=new Set(t.value);s.forEach(t=>l.delete(e.rowKey(t))),n.forEach(e=>{c.has(e)&&l.add(e)}),d(l,s)},m=()=>{if(!r())return;let n=i().filter(o),a=n.map(e.rowKey);d(I(e.remote)?[...t.value,...a]:a,n)},h=e=>{if(!r())return!1;if(t.value.has(e))return!0;let{index:n,duplicates:i}=a.value,c=i.get(e),l=c?c.find(o):n.get(e);if(!l||!c&&!o(l))return!1;let u=s();return u&&t.value.size>=u?!1:(d([...t.value,e],[l]),!0)},g=e=>{if(!t.value.has(e))return;let n=new Set(t.value);n.delete(e),d(n)},_=()=>d([]);return R(e.allData,a=>{if(!r()||t.value.size===0)return;let o=i(a);if(I(e.remote)){for(let r of o){let i=e.rowKey(r);t.value.has(i)&&n.set(i,r)}return}let s=new Set(o.map(e.rowKey));d([...t.value].filter(e=>s.has(e)),o)}),R(()=>[r(),s()],([e])=>{e?d(t.value):_()}),{selectedKeys:t,selectedCount:c,getPageCheckedKeys:f,handlePageSelectionChange:p,selectAll:m,select:h,unselect:g,clearAll:_,getSelectedRows:l,isSelected:e=>t.value.has(e)}}function rn(e,t){return e.filter(e=>typeof e.key!=`string`||e.key.startsWith(`_`)||e.type===`selection`||e.type===`expand`?!1:t?.length?t.includes(e.key):e.visible!==!1)}function an(e,t,n){let r=e[t.key];return t.formatter?g(r,e,t.formatter,n):r==null?``:typeof r==`boolean`?r?`是`:`否`:String(r)}function on(e,t,n){let r=n&&/^[=+\-@\t\r]/.test(e)?`'${e}`:e;return r.includes(t)||r.includes(`"`)||r.includes(`
|
|
1
|
+
import{t as e}from"./density.js";import{n as t,o as n,r}from"./dictionary.js";import{a as i,t as a}from"./data2.js";import{t as o}from"./useComponentLocale.js";import{t as s}from"./feedback.js";import{t as c}from"./C_Icon2.js";import{t as l}from"./export-helper.js";import{t as u}from"./C_Loading2.js";import{t as d}from"./useActionTask.js";import{t as f}from"./C_ActionBar2.js";import{t as p}from"./useDictionary.js";import{i as m}from"./formValidation.js";import{i as h,n as g,r as _}from"./useTableGlobalConfig.js";import{Fragment as v,computed as y,createBlock as b,createCommentVNode as x,createElementBlock as S,createElementVNode as C,createSlots as w,createTextVNode as T,createVNode as E,defineAsyncComponent as ee,defineComponent as te,getCurrentScope as D,h as O,isRef as k,mergeProps as ne,nextTick as A,normalizeClass as re,normalizeStyle as ie,onBeforeUnmount as ae,onMounted as oe,onScopeDispose as j,openBlock as M,reactive as N,ref as P,renderList as se,renderSlot as ce,resolveDynamicComponent as le,shallowReactive as ue,shallowRef as F,toDisplayString as I,toValue as L,unref as R,useAttrs as de,watch as z,withCtx as B}from"vue";import{NButton as V,NButtonGroup as fe,NCheckbox as H,NDataTable as pe,NDrawer as me,NDrawerContent as he,NDropdown as ge,NInput as _e,NInputNumber as ve,NModal as ye,NPagination as be,NSelect as xe,NSpace as Se,NSpin as U,NSwitch as W,NTag as Ce,NText as we,NTooltip as Te}from"naive-ui";const Ee={editable:!1,editMode:`none`,showRowActions:!1,modalTitle:`编辑数据`,modalWidth:600,onEditSave:void 0,onEditCancel:void 0,onEditError:void 0},G=e=>{if(e===!1||e===void 0)return Ee;if(typeof e==`string`)return G({mode:e});if(e===!0)return{editable:!0,editMode:`modal`,showRowActions:!0,modalTitle:`编辑数据`,modalWidth:600,onEditSave:void 0,onEditCancel:void 0,onEditError:void 0};let t=e.enabled!==!1&&e.mode!==`none`;return{editable:t,editMode:e.mode||`modal`,showRowActions:t&&e.showRowActions!==!1,modalTitle:e.modalTitle||`编辑数据`,modalWidth:e.modalWidth||600,onEditSave:e.onSave,onEditCancel:e.onCancel,onEditError:e.onError}},De=e=>e?e===!0?{expandable:!0,defaultExpandedKeys:void 0,onLoadExpandData:void 0,onExpandError:void 0,renderExpandContent:void 0,rowExpandable:void 0}:{expandable:e.enabled!==!1,defaultExpandedKeys:e.defaultExpandedKeys,onLoadExpandData:e.onLoadData,onExpandError:e.onError,renderExpandContent:e.renderContent,rowExpandable:e.rowExpandable}:{expandable:!1,defaultExpandedKeys:void 0,onLoadExpandData:void 0,onExpandError:void 0,renderExpandContent:void 0,rowExpandable:void 0},Oe=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`}},ke=(t,n)=>{let r={enabled:!0,page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:n?e(n).size:`medium`};return t===!1?{pagination:null}:t===!0||t===void 0?{pagination:r}:{pagination:{...r,...t}}},Ae=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 je(t,n){let{size:r}=e(n);return t?{striped:t.striped??K.striped,bordered:t.bordered??K.bordered,singleLine:t.singleLine??K.singleLine,size:t.size??r,maxHeight:t.maxHeight,scrollX:t.scrollX,columnWidth:t.columnWidth??K.columnWidth}:{...K,size:r}}const Me=(t,n)=>({showToolbar:t?.show!==!1,enableColumnSettings:t?.columnSettings!==!1,toolbarActions:t?.actions??[],toolbarRightActions:t?.rightActions??[],toolbarActionBarConfig:{...n?{size:e(n).size,compact:n===`compact`}:{},...t?.actionBar}}),Ne=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},Pe=e=>e?{summaryPosition:e.position??`bottom`,summaryRender:e.render}:{summaryPosition:void 0,summaryRender:void 0},Fe=e=>e?e===!0?{enableColumnDrag:!0,columnDragHandleClass:void 0,columnDragAnimationDuration:150}:{enableColumnDrag:e.enabled!==!1,columnDragHandleClass:e.handleClass,columnDragAnimationDuration:e.animationDuration??150}:{enableColumnDrag:!1,columnDragHandleClass:void 0,columnDragAnimationDuration:150},q=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},Ie=e=>e?e===!0?{rowDrag:{enabled:!0}}:{rowDrag:e.enabled===!1?void 0:e}:{rowDrag:void 0},Le=e=>e?e===!0?{crossPageSelection:{enabled:!0}}:{crossPageSelection:e.enabled===!1?void 0:e}:{crossPageSelection:void 0};function Re(t={}){return{density:t.density,controlSize:t.density?e(t.density).size:`small`,feedback:t.feedback,locale:t.locale,...G(t.edit),...De(t.expand),...Oe(t.selection),...ke(t.pagination,t.density),...Ae(t.dynamicRows),...je(t.display,t.density),...Me(t.toolbar,t.density),...Ne(t.virtualScroll),...Pe(t.summary),...Fe(t.columnDrag),...q(t.tree),...Ie(t.rowDrag),...Le(t.crossPageSelection),exportConfig:t.export,persistKey:t.persistKey,formatterConfig:t.formatterConfig,error:t.error,batchActions:t.batchActions}}const ze=e=>({isNonEditable:t=>!e.editable||t.editable===!1||e.editMode===`none`,isRowEditMode:()=>[`row`,`both`].includes(e.editMode),isCellEditMode:()=>[`cell`,`both`].includes(e.editMode)});function Be(e){return e.type===void 0&&e.editable!==!1&&e.key!==`_actions`&&String(e.key??``).trim().length>0}function Ve(e,t){if(!Be(e))return[];let n=[...e.editProps?.rules??[]];return e.required&&!n.some(e=>e.required)&&n.unshift(m(e.title,`${e.title}不能为空`)),n.map(n=>{let r={...n};if(r.type===void 0&&(e.editType===`number`&&(r.type=`number`),e.editType===`switch`&&(r.type=`boolean`)),n.validator){let e=n.validator;r.validator=(n,r,i,a,o)=>{let s=!1;try{let c=e(n,r,e=>{s=!0,i(e)},t?.()??a,o);return c===void 0&&!s?!0:c}catch(e){return e instanceof Error?e:Error(String(e))}}}if(n.asyncValidator){let e=n.asyncValidator;r.asyncValidator=(n,r,i,a,o)=>new Promise((i,s)=>{e(n,r,e=>{e?s(e):i()},t?.()??a,o)?.then(i,s)})}return r})}async function He(e,t,n,r,i=e.key??`value`){if(e.level===`warning`)return null;let a=`${n}校验失败`;try{let n=(await import(`async-validator`)).default;return await new(`default`in n?n.default:n)({[i]:e}).validate({...r,[i]:t},{first:!0,suppressWarning:!0,suppressValidatorError:!0}),null}catch(e){return(e?.errors)?.[0]?.message??(e instanceof Error?e.message:a)}}function Ue(e){let t=0,n=P(null),r=P({}),i=P(!1),o=P([]),s=()=>{t++,n.value=null,r.value={},o.value=[]};D()&&j(s);let c=e=>n.value===e,l=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},u=e=>{let s=l(e);return!s||i.value?!1:(t++,n.value=e,r.value={[String(e)]:a(s)},o.value=[],!0)},d=async()=>{if(n.value===null||i.value)return;let a=e.data();if(!a||!Array.isArray(a))return;t++;let o=a.findIndex(t=>e.rowKey(t)===n.value);i.value=!0;try{o>-1&&await e.onCancel?.(a[o],o),n.value=null,r.value={}}finally{i.value=!1}},f=async(r,i)=>{let a=t,s=(e.columns?.()||[]).filter(Be).map(async e=>{let t=String(e.key);if(!t)return null;let n=(await Promise.all(Ve(e).map(n=>He(n,r[t],e.title||t,r,t)))).find(Boolean);return n?{field:t,message:n}:null}),c=(await Promise.all(s)).filter(Boolean);return t===a?(n.value===i&&(o.value=c),c.length===0):!1},p=async()=>{let e=n.value;if(e===null)return!0;let t=r.value[String(e)];return t?f(a(t),e):!0},m=async()=>{let o=n.value;if(o===null||i.value)return;let s=r.value[String(o)];if(!s)return;let c=a(s),u=t,d=l(o);i.value=!0;try{if(!await f(c,o)||t!==u)return;let i=e.data(),a=i.findIndex(t=>e.rowKey(t)===o);return a===-1||i[a]!==d||(await e.onSave?.(c,a,o),t!==u)?void 0:(n.value=null,r.value={},{updatedData:c,rowIndex:a})}finally{i.value=!1}},h=e=>{if(n.value===e)return r.value[String(e)]};return{editingRowKey:n,editingData:r,isSaving:i,isEditingRow:c,startEditRow:u,cancelEditRow:d,saveEditRow:m,validateRow:p,validationErrors:o,getEditingRowData:h,updateEditingRowData:(e,n,r)=>{let o=h(e);!o||i.value||(t++,o[n]=a(r))},findRowData:l,invalidate:s}}function We(e,t){let n=String(e);return`${typeof e}:${n.length}:${n}|${t.length}:${t}`}function Ge(e){let t=0,n=P({rowKey:null,columnKey:null}),r=P({}),i=P(!1),o=P(null),s=()=>{t++,n.value={rowKey:null,columnKey:null},r.value={},o.value=null};D()&&j(s);let c=(e,t)=>n.value.rowKey===e&&n.value.columnKey===t,l=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},u=(e,s)=>{let c=l(e);return!c||!s||i.value?!1:(t++,n.value={rowKey:e,columnKey:s},r.value={[We(e,s)]:a(c[s])},o.value=null,!0)},d=t=>(e.columns?.()??[]).find(e=>String(e.key)===t),f=async()=>{let e=t;o.value=null;let{rowKey:i,columnKey:a}=n.value;if(i===null||a===null)return!0;let s=d(a);if(!s)return!0;let c=We(i,a),u=r.value[c],f=s.title||a,p={...l(i),[a]:u},m=await Promise.all(Ve(s).map(e=>He(e,u,f,p,a)));if(t!==e)return!1;let h=m.find(Boolean);return h?(o.value=h,!1):!0};return{editingCell:n,editingData:r,isSaving:i,isEditingCell:c,startEditCell:u,saveEditCell:async()=>{let{rowKey:o,columnKey:s}=n.value;if(o===null||s===null||i.value)return;let c=We(o,s),u=a(r.value[c]),d=t,p=l(o);i.value=!0;try{if(!await f()||t!==d)return;let i=e.data(),c=i.findIndex(t=>e.rowKey(t)===o);if(c===-1||i[c]!==p)return;let l={...i[c],[s]:u};return await e.onSave?.(a(l),c,s,o),t===d?(n.value={rowKey:null,columnKey:null},r.value={},{updatedData:l,rowIndex:c,columnKey:s}):void 0}finally{i.value=!1}},cancelEditCell:()=>{let{rowKey:e,columnKey:a}=n.value;i.value||(t++,e!==null&&a!==null&&delete r.value[We(e,a)],n.value={rowKey:null,columnKey:null},o.value=null)},validateCell:f,cellValidationError:o,getEditingCellValue:(e,t)=>r.value[We(e,t)],updateEditingCellValue:(e,n,o)=>{!c(e,n)||i.value||(t++,r.value[We(e,n)]=a(o))},findRowData:l,invalidate:s}}function Ke(e){let t=0,n=P(!1),r=P(!1),i=P(null),o=P({}),s=()=>{t++,n.value=!1,i.value=null,o.value={}},c=y(()=>{if(i.value===null)return-1;let t=e.data();return Array.isArray(t)?t.findIndex(t=>e.rowKey(t)===i.value):-1});return{isModalVisible:n,isSaving:r,editingData:o,editingRowKey:i,editingRowIndex:c,startEdit:(s,c)=>{if(r.value)return!1;let l=e.data();if(!Array.isArray(l))return!1;let u=l.findIndex(t=>e.rowKey(t)===s);return u===-1?!1:(t++,i.value=s,o.value=a(c??l[u]),n.value=!0,!0)},saveEdit:async s=>{if(r.value||i.value===null)return;let l=c.value;if(l===-1)return;let u=i.value,d=t,f=a(s??o.value);r.value=!0;try{return await e.onSave?.(f,l,u),t===d?(n.value=!1,i.value=null,o.value={},{updatedData:f,rowIndex:l}):void 0}finally{r.value=!1}},cancelEdit:async()=>{if(r.value)return!1;let a=t,s=c.value;try{if(i.value!==null&&s>-1){let t=e.data();t[s]&&await e.onCancel?.(t[s],s)}}finally{t===a&&(n.value=!1,i.value=null,o.value={})}return!0},updateEditingData:e=>r.value?!1:(o.value=a(e),!0),resetEditingState:()=>r.value?!1:(i.value=null,o.value={},!0),isEditingRow:e=>i.value===e&&n.value,getEditingRowData:e=>i.value===e?o.value:null,invalidate:s}}function qe(e,t){try{let n=t(e);if(typeof n==`string`&&n!==``)return JSON.stringify([`string`,n]);if(typeof n==`number`&&Number.isFinite(n))return JSON.stringify([`number`,n])}catch{}}function J(e,t){if(!t)return e;let n=[],r=new WeakSet,i=[];for(let t=e.length-1;t>=0;t--)i.push(e[t]);for(;i.length;){let e=i.pop();if(r.has(e))continue;r.add(e),n.push(e);let a=e[t];if(Array.isArray(a))for(let e=a.length-1;e>=0;e--){let t=a[e];t&&typeof t==`object`&&i.push(t)}}return n}function Y(e,t,n,r){let i=new WeakSet,a=e=>{if(e===t)return n;if(!r||i.has(e))return e;i.add(e);let o=e[r];if(!Array.isArray(o))return e;let s=o.map(e=>e&&typeof e==`object`?a(e):e);return s.some((e,t)=>e!==o[t])?{...e,[r]:s}:e};return e.map(a)}function Je(e){return e}function Ye(e){return e}function Xe(e,t){let n=new Map,r=[];return e.forEach((e,i)=>{let a;try{a=t(e)}catch(t){r.push({type:`error`,row:e,index:i,cause:t});return}if(a==null||a===``){r.push({type:`missing`,row:e,index:i});return}let o=n.get(a);if(o!==void 0){r.push({type:`duplicate`,row:e,index:i,key:a,firstIndex:o});return}n.set(a,i)}),r}function Ze(e,t,n){let r=new Set,i=new WeakSet,a=[...e],o=e=>{try{return n(e)}catch{return}},s=e=>e!=null&&e!==``;for(;a.length;){let e=a.pop();if(i.has(e))continue;i.add(e);let n=e[t];if(!Array.isArray(n)||n.length===0)continue;let c=o(e);s(c)&&r.add(c);for(let e of n)e&&typeof e==`object`&&a.push(e)}return[...r]}const Qe=e=>({expandedKeys:P([...e.defaultExpandedKeys||[]]),expandDataMap:P(new Map),loadingMap:P(new Map),errorMap:P(new Map),checkedKeys:e.enableSelection?P([...e.defaultCheckedKeys||[]]):P([]),childSelections:(e.enableChildSelection,P(new Map))}),$e=e=>{let t=y(()=>J(R(e.data),e.childrenKey)),n=e.rowKey,r=y(()=>{let e=new Map;for(let r of t.value){let t=n(r);e.has(t)||e.set(t,r)}return e});return{data:t,getRowKey:n,getChildRowKey:e.childRowKey||(e=>e.id),findRow:e=>r.value.get(e),isRowExpandable:t=>e.rowExpandable?.(t)??!0,isRowCheckable:t=>e.rowCheckable?.(t)??!0,isChildRowCheckable:(t,n)=>e.childRowCheckable?.(t,n)??!0}},et=(e,t,n)=>{let r=new Map,i=new Map,a=!1,o=0,s=new Set(n.defaultExpandedKeys||[]),c=t=>{let n=t===void 0?new Set([...e.expandDataMap.value.keys(),...e.errorMap.value.keys(),...r.keys()]):new Set([t]);for(let t of n)r.delete(t),i.delete(t),e.expandDataMap.value.delete(t),e.errorMap.value.delete(t),e.loadingMap.value.delete(t),e.childSelections.value.delete(t)},l=async o=>{if(!n.onLoadData||a)return[];let s=t.getRowKey(o);if(e.expandDataMap.value.has(s))return e.expandDataMap.value.get(s);if(e.errorMap.value.has(s))return[];let c=r.get(s);if(c)return c.promise;let l={};i.set(s,o),e.loadingMap.value.set(s,!0);let u=()=>!a&&r.get(s)?.token===l,d,f=new Promise(e=>{d=e});return r.set(s,{token:l,promise:f}),(async()=>{try{let t=await n.onLoadData(o),r=Array.isArray(t)?t:[];return u()?(e.expandDataMap.value.set(s,r),n.enableChildSelection&&!e.childSelections.value.has(s)&&e.childSelections.value.set(s,[]),r):[]}catch(t){return u()&&(e.errorMap.value.set(s,t),n.onError?.(t,o)),[]}finally{u()&&(r.delete(s),e.loadingMap.value.set(s,!1))}})().then(d,()=>d([])),f};return z(t.data,n=>{if(o+=1,i.size===0&&e.expandedKeys.value.length===0&&s.size===0)return;let r=new Map(n.map(e=>[t.getRowKey(e),e]));for(let[t,n]of i){let i=r.get(t);i!==n&&(c(t),i&&e.expandedKeys.value.includes(t)&&l(i),i||s.delete(t))}s=new Set([...s].filter(e=>r.has(e))),e.expandedKeys.value=e.expandedKeys.value.filter(e=>r.has(e))}),D()&&j(()=>{a=!0,o+=1,c()}),{loadData:l,retryExpand:async e=>{let n=t.findRow(e);n&&(c(e),await l(n))},invalidateExpand:c,handleRowExpand:async(r,i)=>{let c=t.getRowKey(r);if(o+=1,i){if(s.add(c),e.expandedKeys.value.includes(c)||(e.expandedKeys.value=[...e.expandedKeys.value,c]),await l(r),a||t.findRow(c)!==r||!s.has(c))return}else s.delete(c),e.expandedKeys.value=e.expandedKeys.value.filter(e=>e!==c);n.onExpandChange?.(e.expandedKeys.value,r,i)},expandAll:async()=>{if(a)return;let r=++o,i=t.data.value.filter(t.isRowExpandable);s=new Set(i.map(t.getRowKey)),e.expandedKeys.value=[...s],await Promise.allSettled(i.map(l)),!(a||r!==o)&&(e.expandedKeys.value=i.map(t.getRowKey),n.onExpandChange?.(e.expandedKeys.value))},collapseAll:()=>{o+=1,s.clear(),e.expandedKeys.value=[],e.childSelections.value.clear(),n.onExpandChange?.(e.expandedKeys.value)},handleExpandChange:async r=>{let i=++o;s=new Set(r);let c=new Set(e.expandedKeys.value),u=new Set(r),d=[...u].filter(e=>!c.has(e)),f=e.expandedKeys.value.filter(e=>!u.has(e));for(let t of f)e.childSelections.value.delete(t);e.expandedKeys.value=[...r],await Promise.all(d.map(async e=>{let n=t.findRow(e);n&&await l(n)})),!(a||i!==o)&&n.onExpandChange?.(r)}}},tt=(e,t,n)=>{let r=[],i=[],a=(t,a,o=!1)=>{let s=t.length===r.length&&t.every((e,t)=>e===r[t]),c=a.length===i.length&&a.every((e,t)=>e===i[t]);!o&&s&&c||(r=[...t],i=[...a],n.onSelectionChange?.(t,a,e.childSelections.value))},o=y(()=>t.data.value.filter(t.isRowCheckable)),s=y(()=>e.checkedKeys.value.length),c=(r,i=!1)=>{let s=new Set(o.value.map(e=>t.getRowKey(e))),c=[...new Set(r)].filter(e=>s.has(e)),l=n.maxSelection?c.slice(0,Math.max(0,n.maxSelection)):c;e.checkedKeys.value=l;let u=new Set(l);a(l,t.data.value.filter(e=>u.has(t.getRowKey(e))),i)},l=(e,t=!1)=>{n.enableSelection&&c(e,t)};return{commitSelection:c,selectAll:()=>{n.enableSelection&&l(o.value.map(t.getRowKey))},clearSelection:()=>{l([])},handleSelectionChange:l,selectedRowsCount:s,selectableRows:o}},nt=(e,t,n)=>{let r=()=>!!(t.enableParentChildLink&&t.enableSelection&&t.enableChildSelection);return{handleParentChildLink:(i,a,o)=>{if(!r())return;let s=t.parentChildLinkMode===`strict`?a.length===o&&o>0:a.length>0,c=[...e.checkedKeys.value],l=c.includes(i),u=s&&!l?[...c,i]:!s&&l?c.filter(e=>e!==i):c;n.handleSelectionChange(u,!0)},isLinkEnabled:r}},rt=(e,t,n,r,i)=>({totalChildSelections:y(()=>i.enableChildSelection?Array.from(e.childSelections.value.values()).reduce((e,t)=>e+t.length,0):0),clearAllSelections:()=>{e.childSelections.value.clear(),r.commitSelection([],!0)},handleChildSelectionChange:(r,a)=>{if(!i.enableChildSelection)return;let o=t.findRow(r);if(!o)return;let s=(e.expandDataMap.value.get(r)||[]).filter(e=>t.isChildRowCheckable(e,o)),c=new Set(s.map(t.getChildRowKey)),l=[...new Set(a)].filter(e=>c.has(e)),u=e.childSelections.value.get(r)??[];if(u.length===l.length&&u.every((e,t)=>e===l[t]))return;e.childSelections.value.set(r,l);let d=new Set(l),f=s.filter(e=>d.has(t.getChildRowKey(e)));n.isLinkEnabled()&&n.handleParentChildLink(r,l,s.length),i.onChildSelectionChange?.(r,l,f)}}),it=(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,[])}}},X=e=>O(`div`,{class:`flex justify-center items-center py-8`},e?[e()]:[O(U,{size:`small`}),O(`span`,{class:`ml-2 text-gray-500`},`加载中...`)]),at=()=>O(`div`,{class:`text-center py-8 text-gray-400`},`暂无数据`),ot=e=>{if(!e.length)return[];let t=e[0];return!t||typeof t!=`object`?[]:[{title:`序号`,key:`_index`,width:60,align:`center`,titleAlign:`center`,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,align:`center`,titleAlign:`center`,ellipsis:{tooltip:!0}}))]},st=(e,t,n,r,i,a)=>{let o=[];return a.enableChildSelection&&o.push({type:`selection`,multiple:!0,disabled:t=>{let n=r.findRow(e);return!n||!r.isChildRowCheckable(t,n)}}),o.push(...ot(t)),O(`div`,{class:`p-4 bg-gray-50`},[O(`div`,{class:`mb-2 text-sm text-gray-600`},`详细信息 (${t.length} 条)`),O(pe,{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})])},ct=(e,t,n,r,i)=>{let{t:a}=o(()=>i.locale),s=o=>{let s=t.getRowKey(o),c=e.expandDataMap.value.get(s)||[],l=e.loadingMap.value.get(s)||!1,u=it(s,e,t,n,i);return i.renderContent?i.renderContent(o,c,l,u):l?X(i.renderLoading):e.errorMap.value.has(s)?O(`div`,{class:`c-table-expand-error`,role:`alert`},[O(`span`,a(`table.loadFailed`)),O(V,{size:`small`,onClick:()=>r.retryExpand(s)},()=>a(`common.retry`))]):c.length?st(s,c,u,t,n,i):at()};return{getTableColumns:e=>e.map(e=>{if(e.type===`selection`&&i.enableSelection){let n=`disabled`in e?e.disabled:void 0,r=`multiple`in e?e.multiple:void 0;return{...e,type:`selection`,disabled:e=>!!n?.(e)||!t.isRowCheckable(e),multiple:i.maxSelection===1?!1:r??!0}}return e.type===`expand`&&(i.onLoadData||i.renderContent)?{...e,type:`expand`,expandable:n=>t.isRowExpandable(n)&&(!(`expandable`in e)||e.expandable?.(n)!==!1),renderExpand:s}:e})}};function lt(e){let t=Qe(e),n=$e(e),r=et(t,n,e),i=tt(t,n,e),a=rt(t,n,nt(t,e,i),i,e),o=ct(t,n,a,r,e);return z(n.data,()=>{!e.enableSelection||t.checkedKeys.value.length===0||i.handleSelectionChange(t.checkedKeys.value)}),e.defaultExpandedKeys?.length&&A(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 e=>{if(t.expandedKeys.value.includes(e)&&!t.loadingMap.value.get(e))return;let i=n.findRow(e);i&&await r.handleRowExpand(i,!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,errorMap:t.errorMap,retryExpand:r.retryExpand,invalidateExpand:r.invalidateExpand}}const ut={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},dt={scale:1,quality:.92,format:`png`,backgroundColor:`#ffffff`,logging:!1,allowTaint:!0,useCORS:!0},ft={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 pt(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 mt(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 ht(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 gt(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 _t(e,t){let n=e.getContext(`2d`);if(!n)return e;let r={...ut,...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:pt,corner:mt,diagonal:ht,repeat:gt};return(o[r.position]||o.repeat)(n,i,a,r),n.restore(),e}async function Z(e,t={}){if(typeof window>`u`)throw Error(`截图功能仅支持浏览器环境`);let n={...dt,...t},{default:r}=await import(`html2canvas`);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 vt(e,t=`png`,n=.92){let r=`image/${t}`;return t===`png`?e.toDataURL(r):e.toDataURL(r,n)}function yt(e,t=`screenshot-${new Date().toISOString().slice(0,10)}.png`,n=`png`){let r=vt(e,n),i=document.createElement(`a`);i.download=t,i.href=r,document.body.appendChild(i),i.click(),document.body.removeChild(i)}async function bt(e,t={}){if(typeof window>`u`)throw Error(`打印功能仅支持浏览器环境`);let n={...ft,...t},{default:r}=await import(`print-js`);return new Promise((t,i)=>{try{n.onLoadingStart?.(),r({printable:e,type:`image`,style:n.style,showModal:n.showModal,modalMessage:n.modalMessage,onLoadingEnd:n.onLoadingEnd,onPrintDialogClose:()=>{n.onPrintDialogClose?.(),t()}})}catch(e){i(e)}})}function xt(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 St(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 Ct(e,t,n){return e.length?{orientation:t.orientation||`vertical`,spacing:t.spacing||20,backgroundColor:t.backgroundColor||`#ffffff`}:(n.warning(`没有要打印的元素`),null)}async function Q(e,t,n,r){let{orientation:i,spacing:a,backgroundColor:o}=n;r(10);let s=await Promise.all(e.map(e=>Z(e,t.capture)));r(50);let{totalWidth:c,totalHeight:l}=xt(s,i,a);return r(60),St(s,{orientation:i,spacing:a,backgroundColor:o,totalWidth:c,totalHeight:l})}async function wt(e,t,n,r,i){r(70),t.watermark&&_t(e,t.watermark),r(90),await bt(vt(e,t.capture?.format,t.capture?.quality),t.print),r(100),i.success(`合并打印完成,共合并 ${n} 个元素`)}function Tt(){let e=s(),t=P(!1),n=P(0),r=e=>{n.value=Math.max(0,Math.min(100,e))},i=async(e,t={})=>{try{r(0),r(30);let n=await Z(e,t.capture);r(60),t.watermark&&_t(n,t.watermark),r(90);let i=vt(n,t.capture?.format||`png`,t.capture?.quality||.92);return r(100),i}catch(e){throw Error(`截图失败: ${e instanceof Error?e.message:`未知错误`}`)}},a=async(n,a={})=>{t.value=!0,r(0);try{await A();let t=await i(n,a);r(95),await bt(t,a.print),r(100),e.success(`打印完成`)}catch(t){throw e.error(`打印失败: ${t instanceof Error?t.message:`未知错误`}`,t),t}finally{t.value=!1,r(0)}},o=async(n,r,i={})=>{t.value=!0;try{await A();let t=await Z(n,i.capture);i.watermark&&_t(t,i.watermark);let a=i.capture?.format||`png`,o=`screenshot-${new Date().toISOString().slice(0,19).replace(/:/g,`-`)}.${a}`;yt(t,r||o,a),e.success(`下载完成`)}catch(t){throw e.error(`下载失败`,t),t}finally{t.value=!1}},c=async(e,t=`Robot Admin`)=>a(e,{watermark:{text:t,position:`repeat`,textColor:`rgba(128, 128, 128, 0.3)`}}),l=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)},u=async(e,t={})=>{await e.reduce(async(n,r,i)=>{await n,await bt(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:c,batchCapture:l,batchPrint:async(n,i={})=>{if(!n.length){e.warning(`没有要打印的元素`);return}t.value=!0;try{r(0);let t=await l(n,i);r(80),await u(t,i.print),r(100),e.success(`批量打印完成,共 ${n.length} 个元素`)}catch(t){throw e.error(`批量打印失败`,t),t}finally{t.value=!1,r(0)}},mergePrint:async(n,i={},a={})=>{let o=Ct(n,a,e);if(o){t.value=!0;try{await wt(await Q(n,i,o,r),i,n.length,r,e)}catch(t){throw e.error(`合并打印失败`,t),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:Z,drawWatermark:_t,canvasToDataURL:vt,downloadCanvas:yt,printImage:bt}}}const Et={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 typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`row_${crypto.randomUUID()}`:`row_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function Ot(e,t){return typeof t==`function`?t(e):Reflect.get(e,t)}function kt(e,t,n){if(e){let r=e(n===void 0?void 0:a(n));if(!r||typeof r!=`object`||Array.isArray(r))return null;let i=a(r);return n&&typeof t==`string`?{...a(n),[t]:Reflect.get(i,t)}:i}return typeof t==`string`?{...n?a(n):{},[t]:Dt()}:null}function At(e,...t){let n=t[0]??{},r={enabled:!0,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`},i=N({...r,...L(n)});z(()=>L(n),e=>{let t=i;Object.keys(t).forEach(e=>delete t[e]),Object.assign(t,r,e)},{deep:!0});let a=s(()=>i.feedback),{t:l}=o(()=>i.locale),u=`c-table-radio-${Dt()}`,d=P(null),f=P(!1),p=y(()=>d.value===null?null:e.value.find(e=>Ot(e,i.rowKey)===d.value)||null),m=y(()=>p.value?e.value.findIndex(e=>e===p.value):-1),h=y(()=>m.value>0),g=y(()=>m.value>=0&&m.value<e.value.length-1),{loading:_,progress:v,printWithWatermark:b,downloadScreenshot:x,quickPrint:S}=Tt(),C=()=>{if(i.printOptions)return i.printOptions;let e=Et[i.printPreset||`table`];return i.printWatermarkText&&e.watermark?{...e,watermark:{...e.watermark,text:i.printWatermarkText}}:e},w=e=>{i.onRowChange?.(e)},T=t=>{let n=Ot(t,i.rowKey);return(typeof n==`string`&&n!==``||typeof n==`number`&&Number.isFinite(n))&&!e.value.some(e=>Ot(e,i.rowKey)===n)?!0:(a.warning(l(`table.invalidRowKeys`,{count:1})),!1)},E=e=>{try{let t=kt(i.defaultRowData,i.rowKey,e);if(t)return T(t)?t:null;a.warning(l(`table.invalidRowKeys`,{count:1}))}catch(t){a.error(l(`table.actionFailed`,{action:l(e?`table.copyRow`:`table.addRow`)}),t)}return null},ee=()=>{if(!i.enabled||!i.enableAdd)return;let t=E();t&&(w([...e.value,t]),i.onRowAdd?.(t),a.success(l(`table.addRowSuccess`)))},te=()=>{if(!i.enabled||!i.enableInsert||!p.value){a.warning(l(`table.selectRowFirst`));return}let t=E();if(!t)return;let n=[...e.value];n.splice(m.value+1,0,t),w(n),i.onRowAdd?.(t),a.success(l(`table.insertRowSuccess`))},k=()=>{if(!i.enabled||!i.enableDelete||!p.value){a.warning(l(`table.selectDeleteRowFirst`));return}i.confirmDelete?f.value=!0:ne()},ne=()=>{if(!p.value)return;let t=p.value,n=m.value;w(e.value.filter((e,t)=>t!==n)),d.value=null,i.onSelectionChange?.(null,null),i.onRowDelete?.(t,n),a.success(l(`table.deleteRowSuccess`)),f.value=!1},A=()=>{if(!i.enabled||!i.enableCopy||!p.value){a.warning(l(`table.selectCopyRowFirst`));return}let t=p.value,n=E(t);n&&(w([...e.value,n]),i.onRowCopy?.(t,n),a.success(l(`table.copyRowSuccess`)))},re=()=>{if(!i.enabled||!i.enableMove||!h.value)return;let t=m.value,n=[...e.value],r=n[t];[n[t],n[t-1]]=[n[t-1],n[t]],w(n),i.onRowMove?.(r,t,t-1),a.success(l(`table.moveUpSuccess`))},ie=()=>{if(!i.enabled||!i.enableMove||!g.value)return;let t=m.value,n=[...e.value],r=n[t];[n[t],n[t+1]]=[n[t+1],n[t]],w(n),i.onRowMove?.(r,t,t+1),a.success(l(`table.moveDownSuccess`))},ae=t=>{if(!i.enabled)return;let n=e.value.find(e=>Ot(e,i.rowKey)===t);n&&(d.value=t,i.onSelectionChange?.(t,n))},oe=()=>{d.value=null,i.onSelectionChange?.(null,null)},M=async e=>{if(!e.value){a.error(l(`table.printTargetMissing`));return}let t=C();await b(e.value,t)};return D()&&j(()=>{d.value=null,f.value=!1}),{selectedRowKey:d,selectedRowData:p,selectedRowIndex:m,canMoveUp:h,canMoveDown:g,deleteConfirmVisible:f,printLoading:_,printProgress:v,addRow:ee,insertRow:te,deleteRow:k,confirmDelete:ne,copyRow:A,moveRowUp:re,moveRowDown:ie,selectRow:ae,clearSelection:oe,handlePrint:M,handleDownload:async(e,t)=>{if(!e.value){a.error(l(`table.downloadTargetMissing`));return}let n=C();await x(e.value,t,n)},handleQuickPrint:async e=>{if(!e.value){a.error(l(`table.printTargetMissing`));return}let t=i.printWatermarkText||`Robot Admin`;await S(e.value,t)},enhanceColumns:e=>{if(!i.enabled)return e;let t=[...e];return i.enabled&&i.enableRadioSelection&&t.unshift({key:`_radio_selection`,title:l(`common.select`),width:80,align:`center`,editable:!1,render:e=>{let t=Ot(e,i.rowKey);return O(`div`,{class:`flex justify-center`},[O(`input`,{type:`radio`,name:u,"aria-label":l(`common.select`),checked:d.value===t,class:`cursor-pointer accent-blue-500 scale-110`,onChange:e=>{e.target.checked&&ae(t)}})])}}),t},renderToolbar:e=>{if(!i.enabled)return null;let t=[];i.enablePrint&&t.push(O(V,{loading:_.value,type:`primary`,ghost:!0,onClick:async()=>{try{let t=e??document.querySelector(i.printTargetSelector);t?await M(F(t)):a.warning(l(`table.printTargetMissing`))}catch(e){a.error(l(`table.printTargetMissing`),e)}}},{icon:()=>O(c,{name:`mdi:printer`,title:l(`common.print`)}),default:()=>l(`common.print`)}));let n=[];return i.enableAdd&&n.push(O(V,{onClick:ee,type:`primary`},{icon:()=>O(c,{name:`mdi:plus`,title:l(`table.addRow`)}),default:()=>l(`table.addRow`)})),i.enableInsert&&n.push(O(Te,{disabled:!!p.value},{trigger:()=>O(V,{onClick:te,disabled:!p.value,type:`primary`,ghost:!0},{icon:()=>O(c,{name:`mdi:table-row-plus-after`,title:l(`table.insertRow`)}),default:()=>l(`table.insertRow`)}),default:()=>l(`table.selectRowFirst`)})),i.enableDelete&&n.push(O(Te,{disabled:!!p.value},{trigger:()=>O(V,{onClick:k,disabled:!p.value,type:`error`,ghost:!0},{icon:()=>O(c,{name:`mdi:delete`,title:l(`table.deleteRow`)}),default:()=>l(`table.deleteRow`)}),default:()=>l(`table.selectDeleteRowFirst`)})),i.enableCopy&&n.push(O(Te,{disabled:!!p.value},{trigger:()=>O(V,{onClick:A,disabled:!p.value,type:`info`,ghost:!0},{icon:()=>O(c,{name:`mdi:content-copy`,title:l(`table.copyRow`)}),default:()=>l(`table.copyRow`)}),default:()=>l(`table.selectCopyRowFirst`)})),i.enableMove&&n.push(O(Te,{disabled:h.value},{trigger:()=>O(V,{onClick:re,disabled:!h.value,type:`warning`,ghost:!0},{icon:()=>O(c,{name:`mdi:arrow-up`,title:l(`table.moveUp`)}),default:()=>l(`table.moveUp`)}),default:()=>p.value?l(`table.firstRow`):l(`table.selectRowFirst`)}),O(Te,{disabled:g.value},{trigger:()=>O(V,{onClick:ie,disabled:!g.value,type:`warning`,ghost:!0},{icon:()=>O(c,{name:`mdi:arrow-down`,title:l(`table.moveDown`)}),default:()=>l(`table.moveDown`)}),default:()=>p.value?l(`table.lastRow`):l(`table.selectRowFirst`)})),n.length>0&&t.push(O(fe,{},()=>n)),O(`div`,{class:`dynamic-rows-toolbar mb-4 flex justify-end`},[O(Se,{},()=>t)])},renderConfirmModal:()=>O(ye,{show:f.value,"onUpdate:show":e=>{f.value=e},preset:`dialog`,title:l(`table.deleteTitle`),content:i.deleteConfirmText||l(`table.deleteRowContent`),positiveText:l(`table.confirmDeleteRow`),negativeText:l(`common.cancel`),onPositiveClick:ne})}}function jt(e){let t=0,{data:n,rowKey:r,emit:i}=e,a=()=>L(e.config),c=()=>a().treeEnabled?a().treeChildrenKey??`children`:void 0,l=y(()=>J(n(),c())),u=()=>l.value,d=s(()=>a().feedback),{t:f}=o(()=>a().locale),p=(e,t,i)=>n()===e&&l.value.find(e=>r(e)===t)===i,m={onSave:async(e,o,s,u)=>{let d=n(),f=u??r(e),m=l.value.find(e=>r(e)===f);if(!m)return;let h=l.value.indexOf(m),g={...m,...e},_=t;if(a().editable)try{if(await a().onEditSave?.(g,h,s),t!==_||(await i(`save`,g,h,s),t!==_)||!p(d,f,m))return;i(`update:data`,Y(n(),m,g,c()))}catch(e){throw a().onEditError?.(e),i(`edit-error`,e),e}},onCancel:async(e,n)=>{let r=t;try{if(await a().onEditCancel?.(e,n),t!==r)return;await i(`cancel`,e,n)}catch(e){throw a().onEditError?.(e),i(`edit-error`,e),e}},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),a().dynamicRows?.onRowChange?.(e)},onRowSelectionChange:(e,t)=>{i(`row-selection-change`,e,t),a().dynamicRows?.onSelectionChange?.(e,t)},onRowAdd:e=>{i(`row-add`,e),a().dynamicRows?.onRowAdd?.(e)},onRowDelete:(e,t)=>{i(`row-delete`,e,t),a().dynamicRows?.onRowDelete?.(e,t)},onRowCopy:(e,t)=>{i(`row-copy`,e,t),a().dynamicRows?.onRowCopy?.(e,t)},onRowMove:(e,t,n)=>{i(`row-move`,e,t,n),a().dynamicRows?.onRowMove?.(e,t,n)}},h=()=>({rowEdit:Ue({data:u,rowKey:r,onSave:(e,t,n)=>m.onSave(e,t,void 0,n),onCancel:m.onCancel,columns:e.columns}),cellEdit:Ge({data:u,rowKey:r,onSave:m.onSave,columns:e.columns}),modalEdit:Ke({data:u,rowKey:r,onSave:(e,t,n)=>m.onSave(e,t,void 0,n),onCancel:m.onCancel})}),g=()=>lt({data:y(()=>n()),rowKey:r,get childrenKey(){return c()},childRowKey:e=>e.id,get locale(){return a().locale},renderLoading:e.renderLoading,get defaultExpandedKeys(){return a().defaultExpandedKeys},get onLoadData(){return a().onLoadExpandData},onError:(e,t)=>{let n=a().onExpandError;n?n(e,t):d.error(f(`table.loadFailed`),e)},get renderContent(){return a().renderExpandContent},get rowExpandable(){return a().rowExpandable},get enableSelection(){return a().enableSelection},get defaultCheckedKeys(){return a().defaultCheckedKeys},get rowCheckable(){return a().rowCheckable},get maxSelection(){return a().maxSelection},get enableChildSelection(){return a().enableChildSelection},get childRowCheckable(){return a().childRowCheckable},get enableParentChildLink(){return a().enableParentChildLink},get parentChildLinkMode(){return a().parentChildLinkMode},onExpandChange:m.onExpandChange,onSelectionChange:m.onSelectionChange,onChildSelectionChange:m.onChildSelectionChange}),_=()=>At(y(()=>n()),y(()=>({...a().dynamicRows,rowKey:a().dynamicRows?.rowKey??L(e.rowKeyField)??r,enabled:!!a().dynamicRows&&a().dynamicRows?.enabled!==!1,feedback:a().feedback,locale:a().locale,onRowChange:m.onRowChange,onSelectionChange:m.onRowSelectionChange,onRowAdd:m.onRowAdd,onRowDelete:m.onRowDelete,onRowCopy:m.onRowCopy,onRowMove:m.onRowMove}))),v=h();z(v.rowEdit.validationErrors,e=>{v.rowEdit.editingRowKey.value!==null&&e.length&&d.error(e[0].message)}),z(v.cellEdit.cellValidationError,e=>{v.cellEdit.editingCell.value.rowKey!==null&&e&&d.error(e)});let b=()=>{t++,v.rowEdit.invalidate(),v.cellEdit.invalidate(),v.modalEdit.invalidate()};z([()=>a().editable,()=>a().editMode],b,{flush:`sync`}),D()&&j(b);let x=g(),S=_();return{editStates:v,expandState:x,dynamicRowsState:S,stateManager:{edit:{start(e,t){if(!a().editable)return;let n=a().editMode;n===`modal`?v.modalEdit.startEdit(e):n===`cell`&&t?v.cellEdit.startEditCell(e,t):(n===`row`||n===`both`)&&v.rowEdit.startEditRow(e)},cancel(){v.modalEdit.isModalVisible.value?v.modalEdit.cancelEdit():v.cellEdit.editingCell.value.rowKey===null?v.rowEdit.editingRowKey.value!==null&&v.rowEdit.cancelEditRow():v.cellEdit.cancelEditCell()},async save(){v.modalEdit.isModalVisible.value?await v.modalEdit.saveEdit():v.cellEdit.editingCell.value.rowKey===null?v.rowEdit.editingRowKey.value!==null&&await v.rowEdit.saveEditRow():await v.cellEdit.saveEditCell()},isEditing(e,t){return a().editMode===`modal`?v.modalEdit.isEditingRow(e):t?v.cellEdit.isEditingCell(e,t):v.rowEdit.isEditingRow(e)},getEditingData(){return v.modalEdit.isModalVisible.value?v.modalEdit.editingData.value:v.rowEdit.editingRowKey.value===null?null:v.rowEdit.getEditingRowData(v.rowEdit.editingRowKey.value)}},expand:{async row(e){if(x){let t=[...x.expandedKeys.value];t.includes(e)||(t.push(e),x.handleExpandChange(t))}},collapse(e){if(x){let t=x.expandedKeys.value.filter(t=>t!==e);x.handleExpandChange(t)}},async toggle(e){x?.expandedKeys.value.includes(e)?this.collapse(e):await this.row(e)},async all(){await x?.expandAll()},collapseAll(){x?.collapseAll()},isExpanded(e){return x?.expandedKeys.value.includes(e)??!1}},selection:{select(e){if(x?.checkedKeys.value&&!x.checkedKeys.value.includes(e)){let t=[...x.checkedKeys.value,e];x.handleSelectionChange(t)}},unselect(e){if(x?.checkedKeys.value){let t=x.checkedKeys.value.filter(t=>t!==e);x.handleSelectionChange(t)}},all(){x?.selectAll()},clear(){x?.clearSelection()},isSelected(e){return x?.checkedKeys.value.includes(e)??!1},getSelected(){if(!x?.checkedKeys.value)return[];let e=new Set(x.checkedKeys.value);return l.value.filter(t=>e.has(r(t)))}},childSelection:{select(e,t){if(x?.childSelections.value){let n=x.childSelections.value.get(e)||[];if(!n.includes(t)){let r=[...n,t];x.childSelections.value.set(e,r),i(`child-selection-change`,e,r,[])}}},unselect(e,t){if(x?.childSelections.value){let n=(x.childSelections.value.get(e)||[]).filter(e=>e!==t);x.childSelections.value.set(e,n),i(`child-selection-change`,e,n,[])}},selectAll(e){if(x?.childSelections.value&&x.expandDataMap?.value){let t=x.expandDataMap.value.get(e)||[],n=t.map(e=>e.id);x.childSelections.value.set(e,n),i(`child-selection-change`,e,n,t)}},clear(e){x?.childSelections.value&&(x.childSelections.value.set(e,[]),i(`child-selection-change`,e,[],[]))},getSelected(e){if(!x?.childSelections.value||!x.expandDataMap?.value)return[];let t=x.childSelections.value.get(e)||[];return(x.expandDataMap.value.get(e)||[]).filter(e=>t.includes(e.id))}},dynamicRows:{add(){S?.addRow()},insert(){S?.insertRow()},delete(){S?.deleteRow()},copy(){S?.copyRow()},moveUp(){S?.moveRowUp()},moveDown(){S?.moveRowDown()},clearSelection(){S?.clearSelection()},getSelected(){return S?.selectedRowData.value||null},async print(e){S&&e&&await S.handlePrint(F(e))},async download(e,t){S&&e&&await S.handleDownload(F(e),t)}},clearAllSelections(){x?.clearAllSelections()}},expandedKeys:y(()=>x?.expandedKeys.value??[]),checkedKeys:y(()=>x?.checkedKeys.value??[]),eventHandlers:m}}const $={page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};function Mt(e,t){return!Number.isFinite(e)||(e??0)<=0?t:Math.max(1,Math.trunc(e))}function Nt(e){let{data:t,config:n,emit:r}=e,i=P($.page),a=P($.pageSize),o=y(()=>{let e=typeof t==`function`?t():R(t);return Array.isArray(e)?e:[]}),s=y(()=>{let e=n.value;return e?.remote?Math.max(0,Math.trunc(e.total??o.value.length)):o.value.length}),c=()=>n.value?.enabled?Math.max(1,Math.ceil(s.value/a.value)):1,l=(e,t)=>{let n=Math.min(Mt(e,1),c());i.value!==n&&(i.value=n,t&&r?.(`pagination-change`,n,a.value))},u=e=>l(e,!0),d=e=>{let t=Mt(e,$.pageSize),n=a.value!==t;a.value=t,i.value=1,n&&r?.(`pagination-change`,1,t)},f=()=>l(1,!0),p=y(()=>{let e=n.value;if(!e?.enabled||e.remote)return o.value;let t=(i.value-1)*a.value;return o.value.slice(t,t+a.value)}),m=y(()=>{let e=n.value;return e?.enabled?{page:i.value,pageSize:a.value,itemCount:s.value,showSizePicker:e.showSizePicker??$.showSizePicker,showQuickJumper:e.showQuickJumper??$.showQuickJumper,pageSizes:e.pageSizes??$.pageSizes,simple:e.simple??$.simple,size:e.size??$.size,prefix:e=>`共 ${e.itemCount??0} 条`,suffix:e=>(e.itemCount??0)>0?`第 ${e.startIndex+1}-${e.endIndex} 条`:`暂无数据`,"onUpdate:page":u,"onUpdate:pageSize":d}:null});return z(()=>[n.value?.page,n.value?.pageSize],([e,t])=>{a.value=Mt(t,$.pageSize),i.value=Math.min(Mt(e,$.page),c())},{immediate:!0}),z([s,a],()=>{let e=Math.min(i.value,c());e!==i.value&&(i.value=e,r?.(`pagination-change`,e,a.value))}),{currentPage:i,currentPageSize:a,paginatedData:p,paginationConfig:m,handlePageChange:u,handlePageSizeChange:d,resetToFirstPage:f,getTotalPages:c}}function Pt(e){return e.flatMap(e=>e.visible===!1?[]:`children`in e&&Array.isArray(e.children)?Pt(e.children):`type`in e&&e.type?[]:[e])}function Ft(e,t){return e==null?t==null?0:-1:t==null?1:typeof e==`number`&&typeof t==`number`?e-t:typeof e==`string`&&typeof t==`string`?e.localeCompare(t):0}function It(e,t,n){let{sorter:r}=e;return typeof r==`function`?r(t,n):r&&typeof r==`object`&&typeof r.compare==`function`?r.compare(t,n):r===`default`||typeof r==`object`&&r.compare===`default`?Ft(t[e.key],n[e.key]):0}function Lt(e,t,n){let r=Array.isArray(t)?t:[t];if(t==null||r.length===0)return!0;let{filter:i}=e,a=t=>t==null?!0:typeof i==`function`?i(t,n):i===`default`?String(n[e.key]).includes(String(t)):!0;return e.filterMode===`and`?r.every(a):r.some(a)}function Rt(e,t){return e.filterOptionValues===void 0?e.filterOptionValue===void 0?Object.prototype.hasOwnProperty.call(t,e.key)?t[e.key]:e.defaultFilterOptionValues??e.defaultFilterOptionValue:e.filterOptionValue:e.filterOptionValues}function zt(e){let t=F(),n=F({}),r=y(()=>Pt(L(e.columns))),i=y(()=>r.value.flatMap(e=>{if(e.filter!==`default`&&typeof e.filter!=`function`)return[];let t=Rt(e,n.value);return t==null||Array.isArray(t)&&t.length===0?[]:[{column:e,value:t}]})),a=y(()=>{let t=L(e.data);if(L(e.remote))return t;let n=i.value;return n.length?t.filter(e=>n.every(({column:t,value:n})=>Lt(t,n,e))):t}),o=y(()=>{let e=r.value.filter(e=>e.sortOrder===!1||e.sortOrder===`ascend`||e.sortOrder===`descend`);return e.length?e.map(e=>({columnKey:e.key,order:e.sortOrder})):t.value===void 0?r.value.map(e=>({columnKey:e.key,order:e.defaultSortOrder})):t.value?Array.isArray(t.value)?t.value:[t.value]:[]});return{processedData:y(()=>{if(L(e.remote))return L(e.data);let t=o.value.flatMap(e=>{let t=r.value.find(t=>t.key===e.columnKey);if(!t?.sorter||!e.order)return[];let n=typeof t.sorter==`object`?t.sorter.multiple??0:0;return[{column:t,direction:e.order===`ascend`?1:-1,priority:n}]}).sort((e,t)=>t.priority-e.priority);return t.length?a.value.slice().sort((e,n)=>{for(let r of t){let t=It(r.column,e,n)*r.direction;if(t)return t}return 0}):a.value}),setSorter:e=>{t.value=e},setFilters:e=>{n.value={...e}}}}const Bt=e=>e&&typeof e==`object`&&`error`in e?e.error:null;function Vt(e){let{actions:t,config:n,tableManager:r,rowKey:i,onRowDeleted:a,onViewDetail:l,isDeleteFeedbackHandled:u}=e,f=d(),p=!0;D()&&j(()=>{p=!1});let m=(e,t)=>JSON.stringify([typeof e,e,t]),h=s(()=>n.value.feedback),{t:g}=o(()=>n.value.locale),_=e=>e===`edit`?n.value.editable&&t.value?.edit!==!1:typeof t.value?.[e]==`function`,v=e=>e!==!1&&typeof e==`function`,y=e=>e&&typeof e==`object`&&`data`in e?e.data:e,b=(e,t,r=`primary`,i,a,o=!1)=>O(V,{size:n.value.controlSize??`small`,type:r,quaternary:!0,onClick:i,loading:o||(a?f.isRunning(a):!1),disabled:a?f.isRunning(a):!1},()=>[O(c,{name:e,size:14,title:t})]),x=async(e,a)=>{let o=i(e),s=t.value?.edit;if(v(s)){try{await s(e,a)}catch(e){h.error(g(`table.actionFailed`,{action:g(`common.edit`)}),e)}return}n.value.editMode===`modal`?r.editStates.modalEdit.startEdit(o,{...e}):r.editStates.rowEdit.startEditRow(o)},S=(e,t)=>{p&&!t&&h.error(g(`table.deleteFailed`),e)},C=async(e,t,n)=>{let r=u?.(e)===!0;try{let i=await e(t,n);if(!p)return;let o=Bt(i);if(o!=null){S(o,r);return}r||h.success(g(`table.deleteSuccess`)),a?.(t,n)}catch(e){throw S(e,r),e}},w=async(e,n)=>{let r=t.value?.delete;v(r)&&await h.confirm({title:g(`table.deleteTitle`),content:g(`table.deleteContent`),positiveText:g(`common.confirm`),negativeText:g(`common.cancel`),type:`warning`})&&p&&await C(r,e,n)},T=async(e,n)=>{let r=t.value?.detail;if(!v(r)){l?.(e);return}try{let t=await r(e,n);if(!p)return;let i=y(t);l?.(i||e)}catch(t){if(!p)return;h.error(g(`table.detailFailed`),t),l?.(e)}},E=(e,t)=>f.run(m(i(e),`edit`),()=>x(e,t)),ee=(e,t)=>f.run(m(i(e),`delete`),()=>w(e,t)),te=(e,t)=>f.run(m(i(e),`detail`),()=>T(e,t)),k=e=>r.editStates.rowEdit.isEditingRow(e)?[b(`mdi:check`,g(`common.save`),`primary`,()=>void f.run(m(e,`save`),()=>r.editStates.rowEdit.saveEditRow()).catch(e=>h.error(g(`table.actionFailed`,{action:g(`common.save`)}),e)),m(e,`save`)),b(`mdi:close`,g(`common.cancel`),`default`,()=>void f.run(m(e,`cancel`),()=>r.editStates.rowEdit.cancelEditRow()).catch(e=>h.error(g(`table.actionFailed`,{action:g(`common.cancel`)}),e)),m(e,`cancel`))]:[b(`mdi:pencil`,g(`common.edit`),`warning`,()=>r.editStates.rowEdit.startEditRow(e))],ne=(e,r)=>{let a=[];return _(`detail`)&&a.push(b(`mdi:eye`,g(`common.detail`),`info`,()=>void te(e,r),m(i(e),`detail`))),_(`edit`)&&(n.value.editMode===`modal`||v(t.value?.edit))&&a.push(b(`mdi:pencil`,g(`common.edit`),`warning`,()=>void E(e,r),m(i(e),`edit`))),_(`delete`)&&a.push(b(`mdi:delete`,g(`common.delete`),`error`,()=>void ee(e,r).catch(()=>void 0),m(i(e),`delete`))),a},A=(e,n)=>{let r=t.value?.custom;if(!r?.length)return null;let a=r.filter(t=>t.show?t.show(e,n):!0);return a.length?O(ge,{options:a.map(t=>{let r=typeof t.label==`function`?t.label(e,n):t.label,a=typeof t.icon==`function`?t.icon(e,n):t.icon;return{label:r,key:t.key,icon:()=>O(c,{name:a,size:14}),disabled:t.disabled?.(e,n)||f.isRunning(m(i(e),`custom:${t.key}`))}}),onSelect:t=>{let r=a.find(e=>e.key===t);if(!r)return;let o=typeof r.label==`function`?r.label(e,n):r.label;f.run(m(i(e),`custom:${r.key}`),()=>r.onClick(e,n),()=>!r.disabled?.(e,n)).catch(e=>h.error(g(`table.actionFailed`,{action:o}),e))}},()=>b(`mdi:dots-horizontal`,g(`table.moreActions`),`default`,()=>{},void 0,a.some(t=>f.isRunning(m(i(e),`custom:${t.key}`))))):null};return{renderActions:(e,a)=>{if(t.value?.render)return t.value.render(e,a);let o=i(e),s=n.value.editable&&[`row`,`both`].includes(n.value.editMode);if(s&&r.editStates.rowEdit.isEditingRow(o))return O(Se,{size:2,wrap:!1},()=>k(o));let c=v(t.value?.edit),l=[...s&&!c?k(o):[],...ne(e,a)],u=A(e,a);return u&&l.push(u),O(Se,{size:2,wrap:!1},()=>l)},isActionEnabled:_}}const Ht=[[/^(success|ok|done|complete|completed|normal|active|enabled|启用|正常|完成|已完成|运行|运行中|在线|生效|已发运)$/i,`success`],[/^(warning|warn|hold|pending|standby|待机|待审核|暂停|预警|部分完成|待下达|待复核|待发运)$/i,`warning`],[/^(error|fail|failed|danger|fault|offline|disabled|故障|失败|错误|异常|停用|离线|断开)$/i,`error`],[/^(info|processing|new|draft|进行中|新建|草稿|审批中|同步中|执行中|已下达|装车中)$/i,`info`]];function Ut(e,t,n){let r=typeof n==`object`&&Object.prototype.hasOwnProperty.call(n,String(e))?n[String(e)]:void 0,i=typeof r==`object`?r.label??t:t,a=typeof r==`string`?r:r?.color,o=Ht.find(([t])=>t.test(String(e))||t.test(i))?.[1]??`default`;return{label:i,color:a??o}}function Wt(){let e;return(t,n)=>{e===void 0&&(e=typeof document>`u`?null:document.createElement(`canvas`).getContext(`2d`));let r=t;return e?(e.font=n,e.measureText(r).width):Array.from(r).reduce((e,t)=>e+(t.charCodeAt(0)>255?13:7),0)}}const Gt=ee(()=>import(`./date-picker.js`)),Kt={number:ve,switch:W,input:_e,email:_e,mobile:_e,date:e=>O(Gt,{...e,type:`date`,format:`yyyy-MM-dd`}),select:xe,textarea:e=>O(_e,{...e,type:`textarea`,rows:3})},qt={number:`inputNumber`,date:`datePicker`,textarea:`textarea`,select:`select`,switch:`switch`},Jt=(e,t)=>e.filter(Be).map(e=>{let n={...e.editProps};return delete n.rules,{prop:String(e.key),label:e.title||String(e.key),type:qt[e.editType??(e.dictionary===void 0?`input`:`select`)]??`input`,dictionary:e.dictionary,...e.dictionary!==void 0&&Array.isArray(e.editProps?.options)?{children:e.editProps.options.map(e=>({...e}))}:{},placeholder:e.editProps?.placeholder??`请输入${e.title}`,rules:Ve(e,t),attrs:n,layout:{span:1},show:!0}});function Yt(e,i,a,o){let s=e,c={value:i,"onUpdate:value":a,placeholder:`请输入${s.title??``}`,style:{width:`100%`},...o.size?{size:o.size}:{},...e.editProps,...o.busy?{disabled:!0}:{}};if(!o.dictionaryOptions||e.editProps?.options!==void 0||e.editType&&e.editType!==`select`)return c;let l=c[`onUpdate:value`];return c.value=r(i),c[`onUpdate:value`]=e=>l(t(e)),{...c,options:n(o.dictionaryOptions),fallbackOption:e=>({value:e,label:String(t(e)??``)})}}function Xt(e,t,n,r={},i=0,a,o=!1){if(e.editRender)return e.editRender(t,r,i,{onUpdate:n});let s=typeof a==`object`?a:{size:a,busy:o},c=Yt(e,t,n,s);return O(Kt[e.editType||(s.dictionaryOptions?`select`:`input`)]||Kt.input,c)}function Zt(e,t,n,r,i){if(e.render)return e.render(t,n)??String(r??``);let a=e.formatter?g(r,t,e.formatter,i):String(r??``);if(!e.status||r==null||r===``)return a;let o=Ut(r,a,e.status),s=o.color===`danger`?`error`:o.color===`neutral`?`default`:o.color,c=[`default`,`success`,`warning`,`error`,`info`,`primary`].includes(s);return O(Ce,{size:`small`,round:!0,bordered:!1,type:c?s:`default`,...c?{}:{color:{textColor:s,color:`color-mix(in srgb, ${s} 12%, transparent)`}}},()=>o.label)}function Qt(e,t,n,r,i,a={rowData:{},rowIndex:0}){let o=(e,t,n)=>O(`button`,{class:`cell-action-btn cell-action-${e}`,disabled:a.busy,"aria-busy":a.busy||void 0,title:t,type:`button`,onClick:e=>{e.stopPropagation(),e.preventDefault(),n(e)}},[O(c,{name:`mdi:${e===`save`?`check`:`close`}`,title:e===`save`?`保存`:`取消`,size:12})]);return O(`div`,{class:`cell-editing-container`},[O(`div`,{class:`cell-editing-input`},[Xt(e,t,n,a.rowData,a.rowIndex,a)]),O(`div`,{class:`cell-editing-actions`},[o(`save`,`保存`,r),o(`cancel`,`取消`,i)])])}function $t(e,t,n,r,i,a){return O(`div`,{class:`cell-edit-wrapper`},[O(`span`,{class:`cell-value`},[Zt(e,t,n,r,a)]),O(c,{name:`mdi:square-edit-outline`,title:`编辑`,class:`cell-edit-icon`,size:14,clickable:!0,onClick:e=>{e.stopPropagation(),i()}})])}function en(e){let{rawColumns:t,config:n,rowKey:r,tableManager:i,actionsRenderer:a,editModeChecker:o,showActionsColumn:s}=e,c=P([]),l=P(!1),u=e=>{let t=e.find(e=>e.key===`_actions`),n=c.value.find(e=>e.key===`_actions`),r=e.filter(e=>e.key!==`_actions`);c.value=s.value?[...r,t||n||{key:`_actions`,title:`操作`,width:180,editable:!1,visible:!0,fixed:`right`}]:r};z([t,s],([e])=>{e?.length?u(e):c.value=[]},{deep:!0,immediate:!0});let d=p(()=>new Map(c.value.filter(e=>e.dictionary!==void 0).map(e=>[String(e.key),e.dictionary])),{onError:e=>n.value.feedback?.error?.(e instanceof Error?e.message:String(e),e)}),f=e=>e.dictionary===void 0?void 0:d.getOptions(String(e.key)),m=e=>e.dictionary!==void 0&&!e.formatter?{...e,formatter:{type:`enum`,fn:t=>d.getLabel(String(e.key),t)}}:e,h=(e,t,r,a)=>{let o=e.key??``,s=t[o],{isEditingCell:c,getEditingCellValue:l,updateEditingCellValue:u,saveEditCell:d,cancelEditCell:p,startEditCell:m}=i.editStates.cellEdit;return c(a,o)?Qt(e,l(a,o),e=>u(a,o,e),()=>d(),()=>p(),{rowData:t,rowIndex:r,busy:i.editStates.cellEdit.isSaving?.value,size:n.value.density?n.value.controlSize:void 0,dictionaryOptions:f(e)}):$t(e,t,r,s,()=>m(a,o),n.value.formatterConfig)},_=(e,t,a)=>{let s=e.key??``,c=t[s],l=r(t),u=o.value;if(u.isNonEditable(e))return Zt(e,t,a,c,n.value.formatterConfig);if(u.isRowEditMode()&&i.editStates.rowEdit.isEditingRow(l)){let r=i.editStates.rowEdit.getEditingRowData(l);return Xt(e,r?.[s],e=>i.editStates.rowEdit.updateEditingRowData(l,s,e),r??t,a,{size:n.value.density?n.value.controlSize:void 0,busy:i.editStates.rowEdit.isSaving?.value,dictionaryOptions:f(e)})}return u.isCellEditMode()?h(e,t,a,l):Zt(e,t,a,c,n.value.formatterConfig)},v=Wt(),b=t=>Math.ceil(v(t.title??String(t.key??``),e.getFont?.(!0)??`600 13px sans-serif`)+(t.sorter?20:0)+(t.filter?28:0)+28),x=t=>{let r=e.getFont?.()??`13px sans-serif`,i=m(t),a=b(t)-28,o=e.data?.value??[],s=Math.min(o.length,100);for(let e=0;e<s;e++){let c=o[s===1?0:Math.floor(e*(o.length-1)/(s-1))],l=c[String(t.key)],u=i.formatter?g(l,c,i.formatter,n.value.formatterConfig):String(l??``);t.status&&(u=Ut(l,u,t.status).label),a=Math.max(a,v(u.slice(0,128),r)+(t.status?16:0))}let c=t.minWidth??80;return Math.max(c,Math.min(Math.max(c,t.maxWidth??360),Math.ceil(a+28)))},S=t=>{if(t.type===`selection`||t.type===`expand`)return t.width??40;let n=t.width??(t.type===`index`?50:e.columnWidthExplicit||t.autoWidth===!1?e.columnWidth??180:x(t));return typeof n==`number`?Math.max(n,b(t)):n},C=e=>{let t=e;return{...t,type:void 0,key:`_index`,title:t.title??`序号`,width:S(e),className:[t.className,`c-table-index-column`].filter(Boolean).join(` `),titleAlign:t.titleAlign??`center`,align:t.align??`center`,render:(e,t)=>t+1,fixed:e.fixed}},w=t=>{let n=t,r=m(t),i=n.width===void 0&&!e.columnWidthExplicit&&n.autoWidth!==!1,a={...n,width:S(t),minWidth:Math.max(n.minWidth??(i?80:0),b(n)),maxWidth:n.maxWidth==null?void 0:Math.max(n.maxWidth,b(n)),ellipsis:n.ellipsis??(i?{tooltip:!0}:void 0),titleAlign:n.titleAlign||`center`,align:n.align||`center`,render:(e,t)=>_(r,e,t)};return t.fixed&&(a.fixed=t.fixed),t.resizable&&typeof a.width==`number`&&(a.resizable=!0,a.maxWidth=Math.max(a.minWidth,t.maxWidth??500)),a},T=y(()=>{let e=c.value.filter(e=>{let t=e;return t.visible!==!1&&t.key!==`_actions`}).map(e=>{let t=e;return e.type===`index`?C(e):e.type===`selection`||e.type===`expand`?{...t,width:S(e)}:w(e)});if(i.dynamicRowsState&&(e=i.dynamicRowsState.enhanceColumns(e)),i.expandState&&(n.value.expandable||n.value.enableSelection)&&(e=i.expandState.getTableColumns(e)),s.value){let t=c.value.find(e=>e.key===`_actions`);e.push({...t,type:void 0,key:`_actions`,title:t?.title??`操作`,width:S({...t,key:`_actions`,title:t?.title??`操作`,width:t?.width??180}),minWidth:Math.max(t?.minWidth??0,b(t??{key:`_actions`,title:`操作`})),maxWidth:t?.maxWidth==null?void 0:Math.max(t.maxWidth,b(t)),className:[t?.className,`c-table-actions-column`].filter(Boolean).join(` `),align:t?.align??`center`,titleAlign:t?.titleAlign??`center`,render:a,fixed:t?.fixed})}return e});return{reactiveColumns:c,showSettingsPanel:l,computedColumns:T,computedScrollX:y(()=>{if(e.scrollX!==void 0)return e.scrollX;let t=T.value.some(e=>e.fixed),n=c.value.some(t=>!t.type&&t.width===void 0&&!e.columnWidthExplicit&&t.autoWidth!==!1),r=c.value.some(e=>!e.type&&typeof e.width==`number`&&b(e)>e.width);if(!(!t&&!n&&!r))return T.value.reduce((e,t)=>{let{width:n}=t;return e+(typeof n==`number`?n:typeof n==`string`&&/^\s*\d+(?:\.\d+)?(?:px)?\s*$/.test(n)?Number.parseFloat(n):typeof t.minWidth==`number`?t.minWidth:180)},0)}),getDictionaryLabel:(e,t)=>d.getLabel(String(e.key),t),handleColumnChange:e=>{c.value=e.map(e=>{let t=e;return{...e,visible:t.visible!==!1,fixed:e.fixed,width:t.width??(t.type?S(e):void 0),align:t.align||`center`,titleAlign:t.titleAlign||`center`}})}}}function tn(e){let{data:t,onReorder:n,onSort:r}=e,i=P(!1),a=null,o=0,s=!1,c,l=null,u,d,f=null,p,m=t=>t.map(t=>qe(t,e.rowKey)),h=()=>{p?.parentNode!==l||!l||f&&f.parentNode!==l||l.insertBefore(p,f)},g=()=>{a?.destroy(),a=null,l=null,u=void 0,d=void 0,p=void 0,f=null,i.value=!1},_=(e,t,n)=>{if(!u||u.length!==e.length||u.some((t,n)=>t!==e[n])||t.some((e,t)=>e===void 0||e!==d?.[t])||n.length!==t.length||new Set(n).size!==t.length)return!1;let r=new Set(t);return n.every(e=>r.has(e))},v=e=>{i.value=!1;let{item:a}=e,o=a.getAttribute(`data-c-table-row-key`),s=[...t.value],c=m(s),g=l?[...l.children].map(e=>e.getAttribute(`data-c-table-row-key`)).filter(e=>e!==null):[],v=a===p&&_(s,c,g);if(h(),u=void 0,d=void 0,p=void 0,f=null,!v||!o)return;let y=c.indexOf(o),b=g.indexOf(o);if(y<0||b<0||y===b)return;let[x]=s.splice(y,1);s.splice(b,0,x),n?.(s),r?.(x,y,b)},y=async n=>{let r=++o;c?.disconnect(),c=void 0,g();let h=L(e.config);if(!(!h||h.enabled===!1||!n||s))try{let{default:e}=await import(`sortablejs`);if(s||r!==o)return;let _=()=>{if(s||r!==o)return;let c=n.querySelector(`.n-data-table-tbody`);c!==l&&(g(),c&&(l=c,a=new e(c,{animation:h.animationDuration??150,handle:h.handleSelector,draggable:`> tr[data-c-table-row-key]`,ghostClass:h.ghostClass??`row-drag-ghost`,chosenClass:h.chosenClass??`row-drag-chosen`,onMove:e=>e.related.hasAttribute(`data-c-table-row-key`),onStart:e=>{u=[...t.value],d=m(u),p=e.item,f=e.item.nextSibling,i.value=!0},onEnd:v})))};c=new MutationObserver(_),c.observe(n,{childList:!0,subtree:!0}),_()}catch{}},b=()=>{o+=1,c?.disconnect(),c=void 0,g()};return ae(()=>{s=!0,b()}),{initRowDrag:y,destroyRowDrag:b,isDragging:i}}function nn(e){let t=P(new Set),n=ue(new Map),r=()=>L(e.config)?.enabled===!0,i=(t=e.allData.value)=>J(t,L(e.childrenKey)),a=y(()=>{let t=new Map,n=new Map;for(let r of i()){let i=e.rowKey(r),a=t.get(i);if(!a)t.set(i,r);else{let e=n.get(i);e?e.push(r):n.set(i,[a,r])}}return{index:t,duplicates:n}}),o=t=>e.rowCheckable?.(t)!==!1,s=()=>{let t=L(e.config)?.maxSelection;return Number.isFinite(t)&&(t??0)>0?Math.trunc(t):void 0},c=y(()=>t.value.size),l=()=>[...t.value].flatMap(e=>{let t=n.get(e);return t?[t]:[]}),u=e=>{let t=s(),n=new Set;for(let r of e){if(t&&n.size>=t)break;n.add(r)}return n},d=(r,i=[])=>{let a=u(r);for(let t of i){let r=e.rowKey(t);a.has(r)&&n.set(r,t)}for(let e of n.keys())a.has(e)||n.delete(e);let o=t.value;o.size===a.size&&[...o].every(e=>a.has(e))||(t.value=a,e.onSelectionChange?.([...a],l()))},f=n=>i(n).map(e.rowKey).filter(e=>t.value.has(e)),p=(n,a)=>{if(!r())return;let s=i(a),c=new Set(s.filter(o).map(e.rowKey)),l=new Set(t.value);s.forEach(t=>l.delete(e.rowKey(t))),n.forEach(e=>{c.has(e)&&l.add(e)}),d(l,s)},m=()=>{if(!r())return;let n=i().filter(o),a=n.map(e.rowKey);d(L(e.remote)?[...t.value,...a]:a,n)},h=e=>{if(!r())return!1;if(t.value.has(e))return!0;let{index:n,duplicates:i}=a.value,c=i.get(e),l=c?c.find(o):n.get(e);if(!l||!c&&!o(l))return!1;let u=s();return u&&t.value.size>=u?!1:(d([...t.value,e],[l]),!0)},g=e=>{if(!t.value.has(e))return;let n=new Set(t.value);n.delete(e),d(n)},_=()=>d([]);return z(e.allData,a=>{if(!r()||t.value.size===0)return;let o=i(a);if(L(e.remote)){for(let r of o){let i=e.rowKey(r);t.value.has(i)&&n.set(i,r)}return}let s=new Set(o.map(e.rowKey));d([...t.value].filter(e=>s.has(e)),o)}),z(()=>[r(),s()],([e])=>{e?d(t.value):_()}),{selectedKeys:t,selectedCount:c,getPageCheckedKeys:f,handlePageSelectionChange:p,selectAll:m,select:h,unselect:g,clearAll:_,getSelectedRows:l,isSelected:e=>t.value.has(e)}}function rn(e,t){return e.filter(e=>typeof e.key!=`string`||e.key.startsWith(`_`)||e.type===`selection`||e.type===`expand`?!1:t?.length?t.includes(e.key):e.visible!==!1)}function an(e,t,n){let r=e[t.key];return t.formatter?g(r,e,t.formatter,n):r==null?``:typeof r==`boolean`?r?`是`:`否`:String(r)}function on(e,t,n){let r=n&&/^[=+\-@\t\r]/.test(e)?`'${e}`:e;return r.includes(t)||r.includes(`"`)||r.includes(`
|
|
2
2
|
`)||r.includes(`\r`)?`"${r.replace(/"/g,`""`)}"`:r}function sn(e){return[...e||`export`].map(e=>e.charCodeAt(0)<32||`<>:"/\\|?*`.includes(e)?`_`:e).join(``).trim()||`export`}function cn(e,t,n){let r=n.csvSeparator??`,`,i=n.preventFormulaInjection!==!1,a=rn(t,n.columnKeys),o=[];n.includeHeader!==!1&&o.push(a.map(e=>on(e.title??``,r,i)).join(r));for(let t of e){let e=a.map(e=>on(an(t,e,n.formatterConfig),r,i));o.push(e.join(r))}un(new Blob([``+o.join(`
|
|
3
|
-
`)],{type:`text/csv;charset=utf-8;`}),`${sn(n.filename)}.csv`)}async function ln(e,t,n){let r=rn(t,n.columnKeys),i;try{i=await import(`./xlsx.js`).then(e=>e.r)}catch(r){n.onFallback?.(`xlsx`,`csv`,r),cn(e,t,{...n,format:`csv`});return}let a=r.map(e=>e.title??e.key??``),o=e.map(e=>r.map(t=>an(e,t,n.formatterConfig))),s=n.includeHeader===!1?o:[a,...o],c=i.utils.aoa_to_sheet(s),l=i.utils.book_new();i.utils.book_append_sheet(l,c,`Sheet1`),i.writeFile(l,`${sn(n.filename)}.xlsx`)}function un(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),setTimeout(()=>URL.revokeObjectURL(n),0)}async function dn(e,t,n={}){n.format===`xlsx`?await ln(e,t,n):cn(e,t,n)}const fn=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}],pn=[`_actions`],mn=[`selection`,`expand`],hn=e=>pn.includes(e.key)||mn.includes(e.type),gn=e=>typeof e==`string`||typeof e==`number`&&Number.isFinite(e),_n=e=>typeof e==`number`&&Number.isFinite(e)&&e>=0||typeof e==`string`&&e.trim().length>0&&e.length<=128,vn=e=>e.map(e=>({...e})),yn=e=>{let t;try{t=JSON.parse(e)}catch{return[]}return Array.isArray(t)?t.flatMap((e,t)=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let n=e;return gn(n.key)?[{key:n.key,order:t,...typeof n.visible==`boolean`&&{visible:n.visible},..._n(n.width)&&{width:n.width},...(n.fixed===`left`||n.fixed===`right`)&&{fixed:n.fixed}}]:[]}):[]},bn=(e,t)=>{let n=new Map(yn(t).map(e=>[e.key,e]));return vn(e).map(e=>{let t=gn(e.key)?n.get(e.key):void 0;return t?{...e,visible:t.visible??e.visible,width:t.width??e.width,fixed:t.fixed??e.fixed}:e}).sort((e,t)=>{let r=gn(e.key)?n.get(e.key)?.order:void 0,i=gn(t.key)?n.get(t.key)?.order:void 0;return(r??1/0)-(i??1/0)})},xn=e=>JSON.stringify(e.filter(e=>gn(e.key)).map(e=>({key:e.key,visible:e.visible,width:e.width,fixed:e.fixed}))),Sn={class:`column-management-tab`},Cn={class:`search-row`},wn={class:`resizable-control`},Tn={class:`top-actions-bar`},En={class:`stats-info`},Dn={class:`quick-actions`},On=[`draggable`,`onDragstart`,`onDragover`,`onDrop`],kn={class:`column-info`},An={class:`column-controls`},jn={class:`column-details`},Mn={class:`column-actions`},Nn={class:`drag-controls`};var Pn=l(te({name:`ColumnSettings`,__name:`index`,props:{columns:{},persistKey:{}},emits:[`change`],setup(e,{emit:t}){let n=e,r=t,i=e=>{if(!n.persistKey)return vn(e);try{let t=localStorage.getItem(`c_table_cols_${n.persistKey}`);return t?bn(e,t):vn(e)}catch{return vn(e)}},a=e=>{if(n.persistKey)try{localStorage.setItem(`c_table_cols_${n.persistKey}`,xn(e))}catch{}},o=N(i(n.columns)),s=N(``),l=N(),u=N(null),d=N(null),f=N(!1);oe(()=>{f.value=o.value.some(e=>e.resizable===!0),n.persistKey&&r(`change`,[...o.value])}),R(()=>n.columns,e=>{o.value=i(e),f.value=o.value.some(e=>e.resizable===!0)},{deep:!0});let p=y(()=>{if(!s.value)return o.value;let e=s.value.toLowerCase();return o.value.filter(t=>String(t.title??``).toLowerCase().includes(e)||String(t.key??``).toLowerCase().includes(e))}),m=y(()=>o.value.filter(e=>e.visible!==!1).length),h=y(()=>o.value.length),g=e=>{o.value.forEach(t=>{t.key!==`_actions`&&(t.visible=e)}),k()},_=()=>g(!0),w=()=>g(!1),ee=e=>{let t=p.value[e];return o.value.findIndex(e=>e.key===t.key)},te=(e,t)=>{let n=ee(e);n!==-1&&(t(o.value[n]),k())},D=(e,t)=>{te(e,e=>{e.visible=t})},O=(e,t)=>{te(e,e=>{e.fixed=t===`none`?void 0:t})},k=()=>{a(o.value),r(`change`,[...o.value])},ne=()=>{o.value=vn(n.columns),k()},A=e=>{o.value.forEach(t=>{hn(t)||(t.resizable=e,e&&(t.minWidth=t.minWidth||80,t.maxWidth=t.maxWidth||500))}),k()},ae=(e,t)=>{let n=ee(e),r=ee(t);if(n!==-1&&r!==-1){let[e]=o.value.splice(n,1);o.value.splice(r,0,e),k()}},se=(e,t)=>{if(p.value[e].key===`_actions`){t.preventDefault();return}u.value=e,t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`)},M=(e,t)=>{t.preventDefault(),!(u.value===null||p.value[e].key===`_actions`)&&(d.value=e,t.dataTransfer&&(t.dataTransfer.dropEffect=`move`))},le=e=>{u.value===null||p.value[e].key===`_actions`||(ae(u.value,e),u.value=null,d.value=null)},ue=()=>{u.value=null,d.value=null};return(e,t)=>(j(),S(`div`,Sn,[x(` 搜索框和列宽调整开关 `),C(`div`,Cn,[E(L(ve),{value:s.value,"onUpdate:value":t[0]||=e=>s.value=e,placeholder:`搜索列名...`,clearable:``,class:`search-input`},{prefix:z(()=>[E(c,{name:`mdi:magnify`})]),_:1},8,[`value`]),C(`div`,wn,[E(c,{name:`mdi:arrow-split-vertical`,size:`14`,title:f.value?`开启后可拖拽列边界调整宽度`:`允许调整列宽`},null,8,[`title`]),E(L(Te),{style:{fontSize:`12px`,marginLeft:`4px`}},{default:z(()=>[...t[2]||=[T(` 列宽调整 `,-1)]]),_:1}),E(L(U),{value:f.value,"onUpdate:value":[t[1]||=e=>f.value=e,A],size:`small`,style:{"margin-left":`6px`}},null,8,[`value`])])]),x(` 顶部操作栏:统计信息和快捷操作按钮 `),C(`div`,Tn,[C(`div`,En,[E(L(Te),{depth:`3`,style:{fontSize:`13px`}},{default:z(()=>[T(` 已选 `+F(m.value)+` / 总共 `+F(h.value)+` 列 `,1)]),_:1})]),C(`div`,Dn,[E(L(Ce),{size:6},{default:z(()=>[E(L(B),{size:`tiny`,onClick:_},{default:z(()=>[...t[3]||=[T(` 全选 `,-1)]]),_:1}),E(L(B),{size:`tiny`,onClick:w},{default:z(()=>[...t[4]||=[T(` 全不选 `,-1)]]),_:1}),E(L(B),{size:`tiny`,onClick:ne},{default:z(()=>[...t[5]||=[T(` 重置 `,-1)]]),_:1})]),_:1})])]),x(` 列列表 `),C(`div`,{ref_key:`listRef`,ref:l,class:`column-list`},[(j(!0),S(v,null,ce(p.value,(e,n)=>(j(),S(`div`,{key:e.key,class:re([`column-item`,{disabled:e.key===`_actions`,"fixed-left":e.fixed===`left`,"fixed-right":e.fixed===`right`}]),draggable:e.key!==`_actions`,onDragstart:e=>se(n,e),onDragover:e=>M(n,e),onDragend:ue,onDrop:e=>le(n)},[C(`div`,kn,[C(`div`,An,[E(c,{name:`mdi:drag`,size:`16`,class:re([`drag-handle`,{disabled:e.key===`_actions`}])},null,8,[`class`]),E(L(V),{checked:e.visible!==!1,disabled:e.key===`_actions`,"onUpdate:checked":e=>D(n,e)},null,8,[`checked`,`disabled`,`onUpdate:checked`])]),C(`div`,jn,[E(L(Ce),{align:`center`,size:6},{default:z(()=>[E(L(Te),{strong:``,style:{fontSize:`13px`}},{default:z(()=>[T(F(e.title||e.key),1)]),_:2},1024),e.fixed===`left`?(j(),b(L(we),{key:0,size:`tiny`,type:`info`},{default:z(()=>[...t[6]||=[T(` 左固定 `,-1)]]),_:1})):x(`v-if`,!0),e.fixed===`right`?(j(),b(L(we),{key:1,size:`tiny`,type:`warning`},{default:z(()=>[...t[7]||=[T(` 右固定 `,-1)]]),_:1})):x(`v-if`,!0)]),_:2},1024),E(L(Te),{depth:`3`,style:{fontSize:`11px`}},{default:z(()=>[T(F(e.key),1)]),_:2},1024)])]),C(`div`,Mn,[C(`div`,Nn,[E(c,{name:`mdi:chevron-up`,size:`14`,title:`上移`,clickable:n!==0,class:re({disabled:n===0}),onClick:e=>n!==0&&ae(n,n-1)},null,8,[`clickable`,`class`,`onClick`]),E(c,{name:`mdi:chevron-down`,size:`14`,title:`下移`,clickable:n!==p.value.length-1,class:re({disabled:n===p.value.length-1}),onClick:e=>n!==p.value.length-1&&ae(n,n+1)},null,8,[`clickable`,`class`,`onClick`])]),E(L(_e),{options:L(fn)(e),onSelect:e=>O(n,e)},{default:z(()=>[E(c,{name:`mdi:pin`,size:`14`,title:`固定列`,clickable:``,style:ie({color:e.fixed?`var(--n-primary-color)`:void 0})},null,8,[`style`])]),_:2},1032,[`options`,`onSelect`])])],42,On))),128))],512)]))}}),[[`__scopeId`,`data-v-92119048`]]);const Fn=[`aria-busy`],In={key:1,class:`table-toolbar`},Ln={class:`toolbar-left`},Rn={class:`toolbar-right`},zn={key:2,class:`batch-actions-bar`},Bn={class:`batch-info`},Vn={key:3,class:`table-error-state`},Hn={class:`error-content`},Un={class:`error-message`};var Wn=l(te({name:`C_Table`,inheritAttrs:!1,__name:`index`,props:{columns:{},data:{},loading:{},rowKey:{},config:{default:()=>({})},crud:{},pagination:{type:[Object,Boolean],default:void 0},remote:{type:Boolean,default:void 0},virtualScrollX:{type:Boolean},wrapperClass:{},flexHeight:{type:Boolean}},emits:[`pagination-change`,`row-delete`,`batch-action-error`,`row-key-error`,`row-add`,`row-copy`,`row-move`,`row-selection-change`,`view-detail`,`column-change`,`expand-change`,`selection-change`,`child-selection-change`,`parent-child-link-change`,`update:data`,`save`,`cancel`,`edit-error`],setup(e,{expose:t,emit:n}){let r=ee(()=>import(`./C_Form.js`).then(e=>e.C_Form)),l=e,p=n,m=N(null),g=(...e)=>{p(...e);let{crud:t}=l;if(t)switch(e[0]){case`save`:return t.save?.(e[1],e[2],e[3]);case`cancel`:return t.handleCancel?.();case`pagination-change`:return t.handlePaginationChange?.(e[1],e[2]);case`row-delete`:return t.handleRowDelete?.(e[1],e[2]);case`view-detail`:return t.detail?.show(e[1])}},te=h(),D=e=>{let t=l.rowKey??`id`;return typeof t==`function`?t(e):e[t]},ie=y(()=>{let e=l.config||{};if(l.crud){let t={};if(l.crud.actions){let e=l.crud.actions.value;t.actions={...e,...l.crud.save&&typeof e.edit==`function`?{edit:void 0}:{}}}l.crud.pagination&&(t.pagination=l.crud.pagination.value??void 0),e={...t,...e}}return _(e,te)}),se=y(()=>l.columns??l.crud?.columns.value??[]),M=y(()=>ze(ie.value)),de=s(()=>M.value.feedback),{t:P}=o(()=>M.value.locale),I=y(()=>Be(M.value)),pe=e=>e&&typeof e==`object`&&`value`in e?e.value:e,V=y(()=>pe(l.data)??l.crud?.data.value??[]),_e=y(()=>pe(l.loading)??l.crud?.loading.value??!1),ve=y(()=>M.value.treeEnabled&&M.value.treeDefaultExpandAll?Qe(V.value,M.value.treeChildrenKey,D):[]),ye=y(()=>({...M.value,defaultExpandedKeys:[...new Set([...M.value.defaultExpandedKeys??[],...ve.value])]})),Se=``;R(()=>ie.value.validateRowKeys===!1?[]:V.value.map(e=>{try{return D(e)}catch{return}}),()=>{if(ie.value.validateRowKeys===!1){Se=``;return}let e=Ze(V.value,D);if(e.length===0){Se=``;return}let t=e.map(e=>[e.type,e.index,e.firstIndex,String(e.key)].join(`:`)).join(`|`);t!==Se&&(Se=t,de.warning(P(`table.invalidRowKeys`,{count:e.length})),p(`row-key-error`,e))},{immediate:!0});let H=y(()=>l.pagination!==void 0),U=y(()=>l.remote??M.value.pagination?.remote??!1),we=N((e=>{if(!e)return 10;if(e.defaultPageSize!==void 0)return e.defaultPageSize;let t=e.pageSizes?.[0];return typeof t==`number`?t:t?.value||10})(l.pagination)),Te=N(l.pagination?l.pagination.defaultPage??1:1),Ee=e=>{Te.value=e},De=e=>{we.value=e},W=jt({config:ye,data:()=>V.value,rowKey:D,rowKeyField:()=>typeof l.rowKey==`function`?void 0:l.rowKey??`id`,emit:g,columns:()=>se.value,renderLoading:()=>O(u,{size:32,label:P(`table.loading`)})}),Oe=new Set;R(ve,e=>{if(!M.value.treeEnabled||!M.value.treeDefaultExpandAll){Oe.clear();return}let t=e.filter(e=>!Oe.has(e));e.forEach(e=>Oe.add(e));let n=W.expandedKeys.value,r=t.filter(e=>!n.includes(e));r.length&&W.expandState?.handleExpandChange([...n,...r])},{immediate:!0});let ke=Vt({actions:y(()=>ie.value.actions||{}),config:M,tableManager:W,rowKey:D,onRowDeleted:(e,t)=>p(`row-delete`,e,t),isDeleteFeedbackHandled:e=>l.crud?.actions?.value.delete===e,onViewDetail:e=>g(`view-detail`,e)}),Ae=y(()=>{let{actions:e}=ie.value;return!!(M.value.showRowActions||e?.delete||e?.detail||e?.custom?.length||e?.render)}),je=en({rawColumns:se,data:V,getFont:(e=!1)=>{let t=Y.value,n=e?t?.querySelector(`.n-data-table-th`)??t:t;return n&&getComputedStyle(n).font||`600 13px sans-serif`},config:M,get columnWidth(){return M.value.columnWidth},get columnWidthExplicit(){return ie.value.display?.columnWidth!==void 0},get scrollX(){return M.value.scrollX},rowKey:D,tableManager:W,actionsRenderer:ke.renderActions,editModeChecker:I,showActionsColumn:Ae}),{showSettingsPanel:G,reactiveColumns:Me,computedColumns:Ne,computedScrollX:Pe}=je,Fe=zt({data:V,columns:Me,remote:()=>H.value||M.value.pagination?.remote===!0}),Ie=zt({data:V,columns:Me,remote:U}),K=Nt({data:Fe.processedData,config:y(()=>H.value?null:M.value.pagination),emit:g}),Le=y(()=>{if(H.value){let e=m.value?.getCurrentPageData?.();if(e)return e;let t=Ie.processedData.value;if(!l.pagination||U.value)return t;let n=l.pagination.pageSize??we.value,r=Math.max(1,Math.min(l.pagination.page??Te.value,Math.ceil(t.length/Math.max(1,n))));return t.slice((r-1)*n,r*n)}return K.paginatedData.value}),Re=e=>{Fe.setSorter(e),Ie.setSorter(e)},Ve=e=>{Fe.setFilters(e),Ie.setFilters(e),!H.value&&!M.value.pagination?.remote&&K.resetToFirstPage()},He=fe(),Ue=y(()=>M.value.rowDrag!==void 0&&M.value.rowDrag.enabled!==!1&&!M.value.virtualScroll&&l.virtualScrollX!==!0),We=y(()=>{let e=Le.value,t=e.map(e=>[Je(e,D),e]),n=new Set(t.map(([e])=>e));return t.some(([e])=>e===void 0)||n.size!==e.length?new Map:new Map(t)}),Ge=(e,t)=>{let n=He.rowProps??He[`row-props`],r=typeof n==`function`?n(e,t):void 0;if(!Ue.value)return r;let i=Je(e,D);return{...r,"data-c-table-row-key":i!==void 0&&We.value.get(i)===e?i:void 0}},Ke,qe=tn({data:Le,rowKey:D,config:y(()=>Ue.value?M.value.rowDrag:void 0),onReorder:e=>{let t=new Map(V.value.map((e,t)=>[D(e),t]));if(Ke=Le.value.map(e=>t.get(D(e))),H.value?U.value:M.value.pagination?.remote===!0){g(`update:data`,e);return}let n=[...V.value];Ke.forEach((t,r)=>{t!==void 0&&(n[t]=e[r])}),g(`update:data`,n)},onSort:(e,t,n)=>{let r=Ke?.[t]??t,i=Ke?.[n]??n;Ke=void 0,p(`row-move`,e,r,i)}}),q=nn({allData:V,rowKey:D,config:y(()=>M.value.crossPageSelection),remote:()=>H.value?U.value:M.value.pagination?.remote===!0,childrenKey:()=>M.value.treeEnabled?M.value.treeChildrenKey:void 0,rowCheckable:e=>M.value.rowCheckable?.(e)??!0,onSelectionChange:(e,t)=>p(`selection-change`,e,t,new Map)}),J=y(()=>M.value.crossPageSelection?.enabled===!0),Ye=y(()=>J.value?q.selectedCount.value:W.checkedKeys?.value?.length??0),Xe=d(),$e=async e=>{if(Xe.isRunning(e.key))return;let t=J.value?[...q.selectedKeys.value]:W.checkedKeys?.value??[],n=new Set(t),r=J.value?q.getSelectedRows():V.value.filter(e=>n.has(D(e)));try{if(!(await Xe.run(e.key,()=>e.onClick(t,r))).executed)return;M.value.batchActions?.clearSelectionOnSuccess&&et()}catch(t){M.value.batchActions?.onError?.(t,e.key),p(`batch-action-error`,t,e.key)}},et=()=>{J.value?q.clearAll():W.stateManager.selection.clear()},tt=y(()=>J.value?q.getPageCheckedKeys(Le.value):null),nt=e=>{if(J.value){q.handlePageSelectionChange(e,Le.value);return}W.expandState?.handleSelectionChange?.(e)},rt=d(),it=async()=>{let e=M.value.exportConfig??{};await rt.run(`export`,async()=>{let t=()=>J.value?q.getSelectedRows():W.stateManager.selection.getSelected(),n=e.scope===`page`?Le.value:V.value;await dn(e.requestData?await e.requestData():e.scope===`selected`?t():n,(e.scope&&e.scope!==`source`?Me.value:se.value).map(e=>e.dictionary!==void 0&&!e.formatter?{...e,formatter:{type:`enum`,fn:t=>je.getDictionaryLabel(e,t)}}:e),{...e,formatterConfig:M.value.formatterConfig})})},at=y(()=>M.value.summaryRender),Y=N(),ot=null,st=0,ct=()=>{st+=1,ot?.destroy(),ot=null},lt=async()=>{let e=++st;if(ot?.destroy(),ot=null,!(!M.value.enableColumnDrag||!Y.value))try{let{default:t}=await import(`sortablejs`);if(e!==st||!Y.value)return;let n=Y.value.querySelector(`.n-data-table-thead tr`);if(!n)return;ot=new t(n,{animation:M.value.columnDragAnimationDuration,handle:M.value.columnDragHandleClass?`.${M.value.columnDragHandleClass}`:void 0,filter:`.c-table-actions-column`,preventOnFilter:!0,ghostClass:`column-drag-ghost`,onEnd:e=>{if(e.oldIndex==null||e.newIndex==null)return;let t=[...Me.value],n=t.filter(e=>e.visible!==!1&&e.key!==`_actions`),r=n[e.oldIndex],i=n[e.newIndex];if(!r||!i||r===i)return;let a=t.indexOf(r),o=t.indexOf(i);t.splice(a,1),t.splice(o,0,r),je.handleColumnChange(t),p(`column-change`,t)}})}catch{}},ut=y(()=>({striped:M.value.striped,bordered:M.value.bordered,singleLine:M.value.singleLine,size:M.value.size,maxHeight:M.value.maxHeight,tableLayout:Pe.value===void 0?void 0:`fixed`})),dt=N(),ft=N(!1),pt=N({}),mt=y({get:()=>W.editStates.modalEdit.isModalVisible.value,set:e=>{W.editStates.modalEdit.isModalVisible.value=e}}),ht=y(()=>`edit-form-${W.editStates.modalEdit.editingRowKey.value??`new`}`),gt=y(()=>Jt(se.value,()=>pt.value));R(()=>W.editStates.modalEdit.editingData.value,e=>{e&&Object.keys(e).length>0&&(pt.value=a(e))},{immediate:!0,deep:!0});let X=null;R(mt,e=>{e&&X&&(clearTimeout(X),X=null),e||(X&&clearTimeout(X),X=setTimeout(()=>{pt.value={},X=null},300))});let _t=async()=>{if(!dt.value||ft.value)return;let e=W.editStates.modalEdit.editingRowKey.value,t=a(pt.value);ft.value=!0;try{try{await dt.value.validate()}catch{return}if(e!==W.editStates.modalEdit.editingRowKey.value||!i(t,pt.value))return;await W.editStates.modalEdit.saveEdit(t)}finally{ft.value=!1}},vt=()=>{pt.value={},W.editStates.modalEdit.cancelEdit()},yt=e=>{je.handleColumnChange(e),p(`column-change`,je.reactiveColumns.value)},{edit:bt,expand:Z,selection:xt,dynamicRows:Q}=W.stateManager,St=()=>m.value?.getFilteredAndSortedData?.().length??Ie.processedData.value.length,Ct={startEdit:bt.start,cancelEdit:bt.cancel,saveEdit:()=>W.editStates.modalEdit.isModalVisible.value?_t():bt.save(),expandRow:Z.row,collapseRow:Z.collapse,toggleExpand:Z.toggle,retryExpand:e=>W.expandState.retryExpand(e),invalidateExpand:e=>W.expandState.invalidateExpand(e),expandAll:Z.all,collapseAll:Z.collapseAll,selectRow:e=>J.value?q.select(e):(xt.select(e),xt.isSelected(e)),unselectRow:e=>{J.value?q.unselect(e):xt.unselect(e)},selectAll:()=>{J.value?q.selectAll():xt.all()},clearSelection:et,isRowSelected:e=>J.value?q.isSelected(e):xt.isSelected(e),clearAllSelections:()=>{q.clearAll(),W.stateManager.clearAllSelections()},selectChildRow:W.stateManager.childSelection.select,unselectChildRow:W.stateManager.childSelection.unselect,selectAllChildren:W.stateManager.childSelection.selectAll,clearChildrenSelection:W.stateManager.childSelection.clear,getChildSelectedRows:W.stateManager.childSelection.getSelected,addRow:Q.add,insertRow:Q.insert,deleteRow:Q.delete,copyRow:Q.copy,moveRowUp:Q.moveUp,moveRowDown:Q.moveDown,clearRowSelection:Q?.clearSelection,getSelectedRowData:Q.getSelected,printTable:e=>Q.print(e??Y.value),downloadTableScreenshot:(e,t)=>Q.download(e??Y.value,t),resetToFirstPage:()=>{H.value?(Te.value=1,m.value?.page(1)):K.resetToFirstPage()},getTotalPages:()=>{if(!H.value)return K.getTotalPages();let e=l.pagination;if(!e)return 1;if(U.value&&e.itemCount===void 0&&e.pageCount!==void 0)return Math.max(1,e.pageCount);let t=U.value?e.itemCount??V.value.length:St(),n=e.pageSize??we.value;return Math.max(1,Math.ceil(t/Math.max(1,n)))},getSelectedRows:()=>J.value?q.getSelectedRows():xt.getSelected(),getEditingData:()=>bt.getEditingData()??null,isEditing:bt.isEditing,isExpanded:Z.isExpanded,getManager:()=>W.stateManager,exportData:it,crossPageSelection:{enabled:J,selectedKeys:q.selectedKeys,selectedCount:q.selectedCount,select:q.select,unselect:q.unselect,selectAll:q.selectAll,clearAll:q.clearAll,getSelectedRows:q.getSelectedRows}};return t(Ct),oe(()=>{let e=l.crud?.tableRef;e&&(e.value=Ct),lt(),Y.value&&qe.initRowDrag(Y.value)}),R([()=>M.value.enableColumnDrag,()=>M.value.columnDragHandleClass,()=>_e.value,()=>Ne.value.length],async()=>{await A(),await lt()},{immediate:!0,flush:`post`}),R([()=>M.value.rowDrag,Ue,()=>_e.value,()=>Le.value.length,()=>K.currentPage.value],async()=>{await A(),Y.value&&await qe.initRowDrag(Y.value)},{immediate:!0,deep:!0,flush:`post`}),ae(()=>{X&&clearTimeout(X),ct(),qe.destroyRowDrag()}),(t,n)=>(j(),S(`div`,{ref_key:`tableWrapperRef`,ref:Y,class:re([`c-table-wrapper`,[e.wrapperClass,{"c-table-wrapper--flex":e.flexHeight},M.value.density&&`c-table-wrapper--${M.value.density}`]]),"aria-busy":_e.value},[x(` 动态行工具栏 `),M.value.dynamicRows&&L(W).dynamicRowsState?(j(),b(ue(L(W).dynamicRowsState.renderToolbar(Y.value)),{key:0})):x(`v-if`,!0),x(` 表格工具栏 `),M.value.showToolbar?(j(),S(`div`,In,[C(`div`,Ln,[le(t.$slots,`toolbar-left`,{},void 0,!0),M.value.toolbarActions.length?(j(),b(f,{key:0,actions:M.value.toolbarActions,config:{...M.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):x(`v-if`,!0)]),C(`div`,Rn,[le(t.$slots,`toolbar-right`,{},void 0,!0),M.value.toolbarRightActions.length?(j(),b(f,{key:0,actions:M.value.toolbarRightActions,config:{align:`right`,...M.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):x(`v-if`,!0),M.value.exportConfig?(j(),b(c,{key:1,name:`mdi:download`,size:`18`,title:L(P)(`table.export`),clickable:``,class:`column-settings-btn`,onClick:n[0]||=e=>it()},null,8,[`title`])):x(`v-if`,!0),M.value.enableColumnSettings?(j(),b(c,{key:2,name:`mdi:cog`,size:`18`,title:L(P)(`table.settings`),clickable:``,class:`column-settings-btn`,onClick:n[1]||=e=>G.value=!0},null,8,[`title`])):x(`v-if`,!0)])])):x(`v-if`,!0),x(` 批量操作栏 `),M.value.batchActions?.enabled&&Ye.value>0?(j(),S(`div`,zn,[C(`span`,Bn,F(L(P)(`table.selectedCount`,{count:Ye.value})),1),E(L(Ce),{size:8},{default:z(()=>[(j(!0),S(v,null,ce(M.value.batchActions.actions||[],e=>(j(),b(L(B),{key:e.key,type:e.type||`default`,size:M.value.controlSize,loading:L(Xe).isRunning(e.key),disabled:L(Xe).isRunning(e.key),onClick:t=>$e(e)},w({default:z(()=>[T(` `+F(e.label),1)]),_:2},[e.icon?{name:`icon`,fn:z(()=>[E(c,{name:e.icon,size:`14`},null,8,[`name`])]),key:`0`}:void 0]),1032,[`type`,`size`,`loading`,`disabled`,`onClick`]))),128)),E(L(B),{size:M.value.controlSize,onClick:et},{default:z(()=>[T(F(L(P)(`table.cancelSelection`)),1)]),_:1},8,[`size`])]),_:1})])):x(`v-if`,!0),x(` 错误状态 `),M.value.error?.show?(j(),S(`div`,Vn,[le(t.$slots,`error`,{error:M.value.error},()=>[C(`div`,Hn,[E(c,{name:`mdi:alert-circle-outline`,size:`48`}),C(`p`,Un,F(M.value.error.message||L(P)(`table.loadFailed`)),1),M.value.error.onRetry?(j(),b(L(B),{key:0,type:`primary`,size:M.value.controlSize,onClick:M.value.error.onRetry},{default:z(()=>[T(F(L(P)(`common.retry`)),1)]),_:1},8,[`size`,`onClick`])):x(`v-if`,!0)])],!0)])):x(`v-if`,!0),x(` 表格主体 `),M.value.error?.show?x(`v-if`,!0):(j(),b(L(me),ne({key:4,ref_key:`tableRef`,ref:m},{...ut.value,...t.$attrs},{"flex-height":e.flexHeight,columns:L(Ne),data:H.value?V.value:L(K).paginatedData.value,pagination:H.value?l.pagination:!1,remote:H.value?U.value:!0,"onUpdate:sorter":Re,"onUpdate:filters":Ve,"onUpdate:pageSize":De,"onUpdate:page":Ee,loading:_e.value,"row-key":D,"row-props":Ge,"expanded-row-keys":L(W).expandedKeys.value,"checked-row-keys":tt.value??L(W).checkedKeys.value,"onUpdate:expandedRowKeys":L(W).expandState?.handleExpandChange,"onUpdate:checkedRowKeys":nt,"scroll-x":L(Pe),"virtual-scroll":M.value.virtualScroll,"virtual-scroll-x":l.virtualScrollX,"min-row-height":M.value.virtualScroll?M.value.virtualItemHeight:void 0,"max-height":M.value.virtualScroll?M.value.virtualMaxHeight:M.value.maxHeight,summary:at.value,"summary-placement":M.value.summaryPosition,"children-key":M.value.treeEnabled?M.value.treeChildrenKey:void 0,indent:M.value.treeEnabled?M.value.treeIndent:void 0,"default-expand-all":M.value.treeEnabled?M.value.treeDefaultExpandAll:void 0,style:{width:`100%`}}),w({loading:z(()=>[le(t.$slots,`loading`,{},()=>[E(L(u),{label:L(P)(`table.loading`)},null,8,[`label`])],!0)]),_:2},[t.$slots.empty?{name:`empty`,fn:z(()=>[le(t.$slots,`empty`,{},void 0,!0)]),key:`0`}:void 0]),1040,[`flex-height`,`columns`,`data`,`pagination`,`remote`,`loading`,`expanded-row-keys`,`checked-row-keys`,`onUpdate:expandedRowKeys`,`scroll-x`,`virtual-scroll`,`virtual-scroll-x`,`min-row-height`,`max-height`,`summary`,`summary-placement`,`children-key`,`indent`,`default-expand-all`])),x(` 分页 `),!H.value&&L(K).paginationConfig.value?(j(),b(L(xe),ne({key:5},L(K).paginationConfig.value,{class:`pagination-wrapper`}),null,16)):x(`v-if`,!0),x(` 编辑弹窗 `),M.value.editMode===`modal`||M.value.editMode===`both`?(j(),b(L(be),{key:6,show:mt.value,"onUpdate:show":n[3]||=e=>mt.value=e,title:M.value.modalTitle,width:M.value.modalWidth,preset:`card`,"mask-closable":!1,"close-on-esc":!1,class:`w60%`,closable:!1},{action:z(()=>[E(L(Ce),{justify:`end`},{default:z(()=>[E(L(B),{size:M.value.density?M.value.controlSize:`medium`,disabled:ft.value,onClick:vt},{default:z(()=>[T(F(L(P)(`common.cancel`)),1)]),_:1},8,[`size`,`disabled`]),E(L(B),{type:`primary`,size:M.value.density?M.value.controlSize:`medium`,disabled:!dt.value||ft.value,loading:ft.value,onClick:_t},{default:z(()=>[T(F(L(P)(`common.save`)),1)]),_:1},8,[`size`,`disabled`,`loading`])]),_:1})]),default:z(()=>[mt.value&>.value.length?(j(),b(L(r),{ref_key:`editFormRef`,ref:dt,key:ht.value,modelValue:pt.value,"onUpdate:modelValue":n[2]||=e=>pt.value=e,options:gt.value,config:{layout:`grid`,density:M.value.density,grid:{cols:2,...M.value.density?{}:{xGap:16,yGap:16}},showActions:!1}},null,8,[`modelValue`,`options`,`config`])):x(`v-if`,!0)]),_:1},8,[`show`,`title`,`width`])):x(`v-if`,!0),x(` 动态行确认删除弹窗 `),M.value.dynamicRows&&L(W).dynamicRowsState?(j(),b(ue(L(W).dynamicRowsState.renderConfirmModal()),{key:7})):x(`v-if`,!0),x(` 列设置抽屉 `),E(L(he),{show:L(G),"onUpdate:show":n[4]||=e=>k(G)?G.value=e:null,width:420,placement:`right`,"mask-closable":!0},{default:z(()=>[E(L(ge),{title:L(P)(`table.columnSettings`),closable:``},{default:z(()=>[E(Pn,{columns:L(Me),"persist-key":M.value.persistKey,onChange:yt},null,8,[`columns`,`persist-key`])]),_:1},8,[`title`])]),_:1},8,[`show`])],10,Fn))}}),[[`__scopeId`,`data-v-a8be53d0`]]);export{Ke as _,en as a,ze as b,jt as c,Tt as d,ut as f,qe as g,Ze as h,tn as i,At as l,Xe as m,dn as n,Vt as o,Ye as p,nn as r,Nt as s,Wn as t,Et as u,We as v,Be as y};
|
|
3
|
+
`)],{type:`text/csv;charset=utf-8;`}),`${sn(n.filename)}.csv`)}async function ln(e,t,n){let r=rn(t,n.columnKeys),i;try{i=await import(`./xlsx.js`).then(e=>e.r)}catch(r){n.onFallback?.(`xlsx`,`csv`,r),cn(e,t,{...n,format:`csv`});return}let a=r.map(e=>e.title??e.key??``),o=e.map(e=>r.map(t=>an(e,t,n.formatterConfig))),s=n.includeHeader===!1?o:[a,...o],c=i.utils.aoa_to_sheet(s),l=i.utils.book_new();i.utils.book_append_sheet(l,c,`Sheet1`),i.writeFile(l,`${sn(n.filename)}.xlsx`)}function un(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),setTimeout(()=>URL.revokeObjectURL(n),0)}async function dn(e,t,n={}){n.format===`xlsx`?await ln(e,t,n):cn(e,t,n)}const fn=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}],pn=[`_actions`],mn=[`selection`,`expand`],hn=e=>pn.includes(e.key)||mn.includes(e.type),gn=e=>typeof e==`string`||typeof e==`number`&&Number.isFinite(e),_n=e=>typeof e==`number`&&Number.isFinite(e)&&e>=0||typeof e==`string`&&e.trim().length>0&&e.length<=128,vn=e=>e.map(e=>({...e})),yn=e=>{let t;try{t=JSON.parse(e)}catch{return[]}return Array.isArray(t)?t.flatMap((e,t)=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let n=e;return gn(n.key)?[{key:n.key,order:t,...typeof n.visible==`boolean`&&{visible:n.visible},..._n(n.width)&&{width:n.width},...(n.fixed===`left`||n.fixed===`right`)&&{fixed:n.fixed}}]:[]}):[]},bn=(e,t)=>{let n=new Map(yn(t).map(e=>[e.key,e]));return vn(e).map(e=>{let t=gn(e.key)?n.get(e.key):void 0;return t?{...e,visible:t.visible??e.visible,width:t.width??e.width,fixed:t.fixed??e.fixed}:e}).sort((e,t)=>{let r=gn(e.key)?n.get(e.key)?.order:void 0,i=gn(t.key)?n.get(t.key)?.order:void 0;return(r??1/0)-(i??1/0)})},xn=e=>JSON.stringify(e.filter(e=>gn(e.key)).map(e=>({key:e.key,visible:e.visible,width:e.width,fixed:e.fixed}))),Sn={class:`column-management-tab`},Cn={class:`search-row`},wn={class:`resizable-control`},Tn={class:`top-actions-bar`},En={class:`stats-info`},Dn={class:`quick-actions`},On=[`draggable`,`onDragstart`,`onDragover`,`onDrop`],kn={class:`column-info`},An={class:`column-controls`},jn={class:`column-details`},Mn={class:`column-actions`},Nn={class:`drag-controls`};var Pn=l(te({name:`ColumnSettings`,__name:`index`,props:{columns:{},persistKey:{}},emits:[`change`],setup(e,{emit:t}){let n=e,r=t,i=e=>{if(!n.persistKey)return vn(e);try{let t=localStorage.getItem(`c_table_cols_${n.persistKey}`);return t?bn(e,t):vn(e)}catch{return vn(e)}},a=e=>{if(n.persistKey)try{localStorage.setItem(`c_table_cols_${n.persistKey}`,xn(e))}catch{}},o=P(i(n.columns)),s=P(``),l=P(),u=P(null),d=P(null),f=P(!1);oe(()=>{f.value=o.value.some(e=>e.resizable===!0),n.persistKey&&r(`change`,[...o.value])}),z(()=>n.columns,e=>{o.value=i(e),f.value=o.value.some(e=>e.resizable===!0)},{deep:!0});let p=y(()=>{if(!s.value)return o.value;let e=s.value.toLowerCase();return o.value.filter(t=>String(t.title??``).toLowerCase().includes(e)||String(t.key??``).toLowerCase().includes(e))}),m=y(()=>o.value.filter(e=>e.visible!==!1).length),h=y(()=>o.value.length),g=e=>{o.value.forEach(t=>{t.key!==`_actions`&&(t.visible=e)}),k()},_=()=>g(!0),w=()=>g(!1),ee=e=>{let t=p.value[e];return o.value.findIndex(e=>e.key===t.key)},te=(e,t)=>{let n=ee(e);n!==-1&&(t(o.value[n]),k())},D=(e,t)=>{te(e,e=>{e.visible=t})},O=(e,t)=>{te(e,e=>{e.fixed=t===`none`?void 0:t})},k=()=>{a(o.value),r(`change`,[...o.value])},ne=()=>{o.value=vn(n.columns),k()},A=e=>{o.value.forEach(t=>{hn(t)||(t.resizable=e,e&&(t.minWidth=t.minWidth||80,t.maxWidth=t.maxWidth||500))}),k()},ae=(e,t)=>{let n=ee(e),r=ee(t);if(n!==-1&&r!==-1){let[e]=o.value.splice(n,1);o.value.splice(r,0,e),k()}},j=(e,t)=>{if(p.value[e].key===`_actions`){t.preventDefault();return}u.value=e,t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`)},N=(e,t)=>{t.preventDefault(),!(u.value===null||p.value[e].key===`_actions`)&&(d.value=e,t.dataTransfer&&(t.dataTransfer.dropEffect=`move`))},ce=e=>{u.value===null||p.value[e].key===`_actions`||(ae(u.value,e),u.value=null,d.value=null)},le=()=>{u.value=null,d.value=null};return(e,t)=>(M(),S(`div`,Sn,[x(` 搜索框和列宽调整开关 `),C(`div`,Cn,[E(R(_e),{value:s.value,"onUpdate:value":t[0]||=e=>s.value=e,placeholder:`搜索列名...`,clearable:``,class:`search-input`},{prefix:B(()=>[E(c,{name:`mdi:magnify`})]),_:1},8,[`value`]),C(`div`,wn,[E(c,{name:`mdi:arrow-split-vertical`,size:`14`,title:f.value?`开启后可拖拽列边界调整宽度`:`允许调整列宽`},null,8,[`title`]),E(R(we),{style:{fontSize:`12px`,marginLeft:`4px`}},{default:B(()=>[...t[2]||=[T(` 列宽调整 `,-1)]]),_:1}),E(R(W),{value:f.value,"onUpdate:value":[t[1]||=e=>f.value=e,A],size:`small`,style:{"margin-left":`6px`}},null,8,[`value`])])]),x(` 顶部操作栏:统计信息和快捷操作按钮 `),C(`div`,Tn,[C(`div`,En,[E(R(we),{depth:`3`,style:{fontSize:`13px`}},{default:B(()=>[T(` 已选 `+I(m.value)+` / 总共 `+I(h.value)+` 列 `,1)]),_:1})]),C(`div`,Dn,[E(R(Se),{size:6},{default:B(()=>[E(R(V),{size:`tiny`,onClick:_},{default:B(()=>[...t[3]||=[T(` 全选 `,-1)]]),_:1}),E(R(V),{size:`tiny`,onClick:w},{default:B(()=>[...t[4]||=[T(` 全不选 `,-1)]]),_:1}),E(R(V),{size:`tiny`,onClick:ne},{default:B(()=>[...t[5]||=[T(` 重置 `,-1)]]),_:1})]),_:1})])]),x(` 列列表 `),C(`div`,{ref_key:`listRef`,ref:l,class:`column-list`},[(M(!0),S(v,null,se(p.value,(e,n)=>(M(),S(`div`,{key:e.key,class:re([`column-item`,{disabled:e.key===`_actions`,"fixed-left":e.fixed===`left`,"fixed-right":e.fixed===`right`}]),draggable:e.key!==`_actions`,onDragstart:e=>j(n,e),onDragover:e=>N(n,e),onDragend:le,onDrop:e=>ce(n)},[C(`div`,kn,[C(`div`,An,[E(c,{name:`mdi:drag`,size:`16`,class:re([`drag-handle`,{disabled:e.key===`_actions`}])},null,8,[`class`]),E(R(H),{checked:e.visible!==!1,disabled:e.key===`_actions`,"onUpdate:checked":e=>D(n,e)},null,8,[`checked`,`disabled`,`onUpdate:checked`])]),C(`div`,jn,[E(R(Se),{align:`center`,size:6},{default:B(()=>[E(R(we),{strong:``,style:{fontSize:`13px`}},{default:B(()=>[T(I(e.title||e.key),1)]),_:2},1024),e.fixed===`left`?(M(),b(R(Ce),{key:0,size:`tiny`,type:`info`},{default:B(()=>[...t[6]||=[T(` 左固定 `,-1)]]),_:1})):x(`v-if`,!0),e.fixed===`right`?(M(),b(R(Ce),{key:1,size:`tiny`,type:`warning`},{default:B(()=>[...t[7]||=[T(` 右固定 `,-1)]]),_:1})):x(`v-if`,!0)]),_:2},1024),E(R(we),{depth:`3`,style:{fontSize:`11px`}},{default:B(()=>[T(I(e.key),1)]),_:2},1024)])]),C(`div`,Mn,[C(`div`,Nn,[E(c,{name:`mdi:chevron-up`,size:`14`,title:`上移`,clickable:n!==0,class:re({disabled:n===0}),onClick:e=>n!==0&&ae(n,n-1)},null,8,[`clickable`,`class`,`onClick`]),E(c,{name:`mdi:chevron-down`,size:`14`,title:`下移`,clickable:n!==p.value.length-1,class:re({disabled:n===p.value.length-1}),onClick:e=>n!==p.value.length-1&&ae(n,n+1)},null,8,[`clickable`,`class`,`onClick`])]),E(R(ge),{options:R(fn)(e),onSelect:e=>O(n,e)},{default:B(()=>[E(c,{name:`mdi:pin`,size:`14`,title:`固定列`,clickable:``,style:ie({color:e.fixed?`var(--n-primary-color)`:void 0})},null,8,[`style`])]),_:2},1032,[`options`,`onSelect`])])],42,On))),128))],512)]))}}),[[`__scopeId`,`data-v-92119048`]]);const Fn=[`aria-busy`],In={key:1,class:`table-toolbar`},Ln={class:`toolbar-left`},Rn={class:`toolbar-right`},zn={key:2,class:`batch-actions-bar`},Bn={class:`batch-info`},Vn={key:3,class:`table-error-state`},Hn={class:`error-content`},Un={class:`error-message`};var Wn=l(te({name:`C_Table`,inheritAttrs:!1,__name:`index`,props:{columns:{},data:{},loading:{},rowKey:{},config:{default:()=>({})},crud:{},pagination:{type:[Object,Boolean],default:void 0},remote:{type:Boolean,default:void 0},virtualScrollX:{type:Boolean},wrapperClass:{},flexHeight:{type:Boolean}},emits:[`pagination-change`,`row-delete`,`batch-action-error`,`row-key-error`,`row-add`,`row-copy`,`row-move`,`row-selection-change`,`view-detail`,`column-change`,`expand-change`,`selection-change`,`child-selection-change`,`parent-child-link-change`,`update:data`,`save`,`cancel`,`edit-error`],setup(e,{expose:t,emit:n}){let r=ee(()=>import(`./C_Form.js`).then(e=>e.C_Form)),l=e,p=n,m=P(null),g=(...e)=>{p(...e);let{crud:t}=l;if(t)switch(e[0]){case`save`:return t.save?.(e[1],e[2],e[3]);case`cancel`:return t.handleCancel?.();case`pagination-change`:return t.handlePaginationChange?.(e[1],e[2]);case`row-delete`:return t.handleRowDelete?.(e[1],e[2]);case`view-detail`:return t.detail?.show(e[1])}},te=h(),D=e=>{let t=l.rowKey??`id`;return typeof t==`function`?t(e):e[t]},ie=y(()=>{let e=l.config||{};if(l.crud){let t={};if(l.crud.actions){let e=l.crud.actions.value;t.actions={...e,...l.crud.save&&typeof e.edit==`function`?{edit:void 0}:{}}}l.crud.pagination&&(t.pagination=l.crud.pagination.value??void 0),e={...t,...e}}return _(e,te)}),j=y(()=>l.columns??l.crud?.columns.value??[]),N=y(()=>Re(ie.value)),ue=s(()=>N.value.feedback),{t:F}=o(()=>N.value.locale),L=y(()=>ze(N.value)),fe=e=>e&&typeof e==`object`&&`value`in e?e.value:e,H=y(()=>fe(l.data)??l.crud?.data.value??[]),ge=y(()=>fe(l.loading)??l.crud?.loading.value??!1),_e=y(()=>N.value.treeEnabled&&N.value.treeDefaultExpandAll?Ze(H.value,N.value.treeChildrenKey,D):[]),ve=y(()=>({...N.value,defaultExpandedKeys:[...new Set([...N.value.defaultExpandedKeys??[],..._e.value])]})),xe=``;z(()=>ie.value.validateRowKeys===!1?[]:H.value.map(e=>{try{return D(e)}catch{return}}),()=>{if(ie.value.validateRowKeys===!1){xe=``;return}let e=Xe(H.value,D);if(e.length===0){xe=``;return}let t=e.map(e=>[e.type,e.index,e.firstIndex,String(e.key)].join(`:`)).join(`|`);t!==xe&&(xe=t,ue.warning(F(`table.invalidRowKeys`,{count:e.length})),p(`row-key-error`,e))},{immediate:!0});let U=y(()=>l.pagination!==void 0),W=y(()=>l.remote??N.value.pagination?.remote??!1),Ce=P((e=>{if(!e)return 10;if(e.defaultPageSize!==void 0)return e.defaultPageSize;let t=e.pageSizes?.[0];return typeof t==`number`?t:t?.value||10})(l.pagination)),we=P(l.pagination?l.pagination.defaultPage??1:1),Te=e=>{we.value=e},Ee=e=>{Ce.value=e},G=jt({config:ve,data:()=>H.value,rowKey:D,rowKeyField:()=>typeof l.rowKey==`function`?void 0:l.rowKey??`id`,emit:g,columns:()=>j.value,renderLoading:()=>O(u,{size:32,label:F(`table.loading`)})}),De=new Set;z(_e,e=>{if(!N.value.treeEnabled||!N.value.treeDefaultExpandAll){De.clear();return}let t=e.filter(e=>!De.has(e));e.forEach(e=>De.add(e));let n=G.expandedKeys.value,r=t.filter(e=>!n.includes(e));r.length&&G.expandState?.handleExpandChange([...n,...r])},{immediate:!0});let Oe=Vt({actions:y(()=>ie.value.actions||{}),config:N,tableManager:G,rowKey:D,onRowDeleted:(e,t)=>p(`row-delete`,e,t),isDeleteFeedbackHandled:e=>l.crud?.actions?.value.delete===e,onViewDetail:e=>g(`view-detail`,e)}),ke=y(()=>{let{actions:e}=ie.value;return!!(N.value.showRowActions||e?.delete||e?.detail||e?.custom?.length||e?.render)}),Ae=en({rawColumns:j,data:H,getFont:(e=!1)=>{let t=X.value,n=e?t?.querySelector(`.n-data-table-th`)??t:t;return n&&getComputedStyle(n).font||`600 13px sans-serif`},config:N,get columnWidth(){return N.value.columnWidth},get columnWidthExplicit(){return ie.value.display?.columnWidth!==void 0},get scrollX(){return N.value.scrollX},rowKey:D,tableManager:G,actionsRenderer:Oe.renderActions,editModeChecker:L,showActionsColumn:ke}),{showSettingsPanel:K,reactiveColumns:je,computedColumns:Me,computedScrollX:Ne}=Ae,Pe=zt({data:H,columns:je,remote:()=>U.value||N.value.pagination?.remote===!0}),Fe=zt({data:H,columns:je,remote:W}),q=Nt({data:Pe.processedData,config:y(()=>U.value?null:N.value.pagination),emit:g}),Ie=y(()=>{if(U.value){let e=m.value?.getCurrentPageData?.();if(e)return e;let t=Fe.processedData.value;if(!l.pagination||W.value)return t;let n=l.pagination.pageSize??Ce.value,r=Math.max(1,Math.min(l.pagination.page??we.value,Math.ceil(t.length/Math.max(1,n))));return t.slice((r-1)*n,r*n)}return q.paginatedData.value}),Le=e=>{Pe.setSorter(e),Fe.setSorter(e)},Be=e=>{Pe.setFilters(e),Fe.setFilters(e),!U.value&&!N.value.pagination?.remote&&q.resetToFirstPage()},Ve=de(),He=y(()=>N.value.rowDrag!==void 0&&N.value.rowDrag.enabled!==!1&&!N.value.virtualScroll&&l.virtualScrollX!==!0),Ue=y(()=>{let e=Ie.value,t=e.map(e=>[qe(e,D),e]),n=new Set(t.map(([e])=>e));return t.some(([e])=>e===void 0)||n.size!==e.length?new Map:new Map(t)}),We=(e,t)=>{let n=Ve.rowProps??Ve[`row-props`],r=typeof n==`function`?n(e,t):void 0;if(!He.value)return r;let i=qe(e,D);return{...r,"data-c-table-row-key":i!==void 0&&Ue.value.get(i)===e?i:void 0}},Ge,Ke=tn({data:Ie,rowKey:D,config:y(()=>He.value?N.value.rowDrag:void 0),onReorder:e=>{let t=new Map(H.value.map((e,t)=>[D(e),t]));if(Ge=Ie.value.map(e=>t.get(D(e))),U.value?W.value:N.value.pagination?.remote===!0){g(`update:data`,e);return}let n=[...H.value];Ge.forEach((t,r)=>{t!==void 0&&(n[t]=e[r])}),g(`update:data`,n)},onSort:(e,t,n)=>{let r=Ge?.[t]??t,i=Ge?.[n]??n;Ge=void 0,p(`row-move`,e,r,i)}}),J=nn({allData:H,rowKey:D,config:y(()=>N.value.crossPageSelection),remote:()=>U.value?W.value:N.value.pagination?.remote===!0,childrenKey:()=>N.value.treeEnabled?N.value.treeChildrenKey:void 0,rowCheckable:e=>N.value.rowCheckable?.(e)??!0,onSelectionChange:(e,t)=>p(`selection-change`,e,t,new Map)}),Y=y(()=>N.value.crossPageSelection?.enabled===!0),Je=y(()=>Y.value?J.selectedCount.value:G.checkedKeys?.value?.length??0),Ye=d(),Qe=async e=>{if(Ye.isRunning(e.key))return;let t=Y.value?[...J.selectedKeys.value]:G.checkedKeys?.value??[],n=new Set(t),r=Y.value?J.getSelectedRows():H.value.filter(e=>n.has(D(e)));try{if(!(await Ye.run(e.key,()=>e.onClick(t,r))).executed)return;N.value.batchActions?.clearSelectionOnSuccess&&$e()}catch(t){N.value.batchActions?.onError?.(t,e.key),p(`batch-action-error`,t,e.key)}},$e=()=>{Y.value?J.clearAll():G.stateManager.selection.clear()},et=y(()=>Y.value?J.getPageCheckedKeys(Ie.value):null),tt=e=>{if(Y.value){J.handlePageSelectionChange(e,Ie.value);return}G.expandState?.handleSelectionChange?.(e)},nt=d(),rt=async()=>{let e=N.value.exportConfig??{};await nt.run(`export`,async()=>{let t=()=>Y.value?J.getSelectedRows():G.stateManager.selection.getSelected(),n=e.scope===`page`?Ie.value:H.value;await dn(e.requestData?await e.requestData():e.scope===`selected`?t():n,(e.scope&&e.scope!==`source`?je.value:j.value).map(e=>e.dictionary!==void 0&&!e.formatter?{...e,formatter:{type:`enum`,fn:t=>Ae.getDictionaryLabel(e,t)}}:e),{...e,formatterConfig:N.value.formatterConfig})})},it=y(()=>N.value.summaryRender),X=P(),at=y(()=>new Map(je.value.filter(e=>!e.type&&e.key!==`_actions`).map(e=>[e.key,e]))),ot=null,st=0,ct,lt=()=>{st+=1,ct?.(),ct=void 0,ot?.destroy(),ot=null},ut=async()=>{let e=st;if(!(!N.value.enableColumnDrag||!X.value))try{let{default:t}=await import(`sortablejs`);if(e!==st||!X.value)return;let n=X.value.querySelector(`.n-data-table-thead tr`);if(!n)return;let r=e=>e&&!e.type?at.value.get(e.key):void 0,i=e=>[...n.children].indexOf(e.closest(`[data-col-key]`)),a=(e,t,n=Me.value)=>e>=0&&t>=0&&n.slice(Math.min(e,t),Math.max(e,t)+1).every(e=>!!r(e)),o=(e,t)=>{e.parentNode===n&&(t&&t.parentNode!==n||n.insertBefore(e,t))},s;ot=new t(n,{animation:N.value.columnDragAnimationDuration,handle:N.value.columnDragHandleClass?`.${N.value.columnDragHandleClass}`:void 0,filter:(e,t)=>!r(Me.value[i(t)]),preventOnFilter:!0,ghostClass:`column-drag-ghost`,onMove:e=>a(s?.fromIndex??i(e.dragged),i(e.related),s?.rendered),onStart:e=>{s={columns:[...je.value],rendered:Me.value,fromIndex:i(e.item),nextSibling:e.item.nextSibling},ct=()=>{s&&o(e.item,s.nextSibling),s=void 0}},onEnd:e=>{let t=s;if(!t)return;let n=i(e.item);ct?.(),ct=void 0;let o=[...je.value];if(t.rendered!==Me.value||o.length!==t.columns.length||o.some((e,n)=>e!==t.columns[n])||!a(t.fromIndex,n,t.rendered))return;let c=r(t.rendered[t.fromIndex]),l=r(t.rendered[n]);if(!c||!l||c===l)return;let u=o.indexOf(c),d=o.indexOf(l);o.splice(u,1),o.splice(d,0,c),Ae.handleColumnChange(o),p(`column-change`,o)}})}catch{}},dt=y(()=>({striped:N.value.striped,bordered:N.value.bordered,singleLine:N.value.singleLine,size:N.value.size,maxHeight:N.value.maxHeight,tableLayout:Ne.value===void 0?void 0:`fixed`})),ft=P(),pt=P(!1),mt=P({}),ht=y({get:()=>G.editStates.modalEdit.isModalVisible.value,set:e=>{G.editStates.modalEdit.isModalVisible.value=e}}),gt=y(()=>`edit-form-${G.editStates.modalEdit.editingRowKey.value??`new`}`),_t=y(()=>Jt(j.value,()=>mt.value));z(()=>G.editStates.modalEdit.editingData.value,e=>{e&&Object.keys(e).length>0&&(mt.value=a(e))},{immediate:!0,deep:!0});let Z=null;z(ht,e=>{e&&Z&&(clearTimeout(Z),Z=null),e||(Z&&clearTimeout(Z),Z=setTimeout(()=>{mt.value={},Z=null},300))});let vt=async()=>{if(!ft.value||pt.value)return;let e=G.editStates.modalEdit.editingRowKey.value,t=a(mt.value);pt.value=!0;try{try{await ft.value.validate()}catch{return}if(e!==G.editStates.modalEdit.editingRowKey.value||!i(t,mt.value))return;await G.editStates.modalEdit.saveEdit(t)}finally{pt.value=!1}},yt=()=>{mt.value={},G.editStates.modalEdit.cancelEdit()},bt=e=>{Ae.handleColumnChange(e),p(`column-change`,Ae.reactiveColumns.value)},{edit:xt,expand:St,selection:Ct,dynamicRows:Q}=G.stateManager,wt=()=>m.value?.getFilteredAndSortedData?.().length??Fe.processedData.value.length,Tt={startEdit:xt.start,cancelEdit:xt.cancel,saveEdit:()=>G.editStates.modalEdit.isModalVisible.value?vt():xt.save(),expandRow:St.row,collapseRow:St.collapse,toggleExpand:St.toggle,retryExpand:e=>G.expandState.retryExpand(e),invalidateExpand:e=>G.expandState.invalidateExpand(e),expandAll:St.all,collapseAll:St.collapseAll,selectRow:e=>Y.value?J.select(e):(Ct.select(e),Ct.isSelected(e)),unselectRow:e=>{Y.value?J.unselect(e):Ct.unselect(e)},selectAll:()=>{Y.value?J.selectAll():Ct.all()},clearSelection:$e,isRowSelected:e=>Y.value?J.isSelected(e):Ct.isSelected(e),clearAllSelections:()=>{J.clearAll(),G.stateManager.clearAllSelections()},selectChildRow:G.stateManager.childSelection.select,unselectChildRow:G.stateManager.childSelection.unselect,selectAllChildren:G.stateManager.childSelection.selectAll,clearChildrenSelection:G.stateManager.childSelection.clear,getChildSelectedRows:G.stateManager.childSelection.getSelected,addRow:Q.add,insertRow:Q.insert,deleteRow:Q.delete,copyRow:Q.copy,moveRowUp:Q.moveUp,moveRowDown:Q.moveDown,clearRowSelection:Q?.clearSelection,getSelectedRowData:Q.getSelected,printTable:e=>Q.print(e??X.value),downloadTableScreenshot:(e,t)=>Q.download(e??X.value,t),resetToFirstPage:()=>{U.value?(we.value=1,m.value?.page(1)):q.resetToFirstPage()},getTotalPages:()=>{if(!U.value)return q.getTotalPages();let e=l.pagination;if(!e)return 1;if(W.value&&e.itemCount===void 0&&e.pageCount!==void 0)return Math.max(1,e.pageCount);let t=W.value?e.itemCount??H.value.length:wt(),n=e.pageSize??Ce.value;return Math.max(1,Math.ceil(t/Math.max(1,n)))},getSelectedRows:()=>Y.value?J.getSelectedRows():Ct.getSelected(),getEditingData:()=>xt.getEditingData()??null,isEditing:xt.isEditing,isExpanded:St.isExpanded,getManager:()=>G.stateManager,exportData:rt,crossPageSelection:{enabled:Y,selectedKeys:J.selectedKeys,selectedCount:J.selectedCount,select:J.select,unselect:J.unselect,selectAll:J.selectAll,clearAll:J.clearAll,getSelectedRows:J.getSelectedRows}};return t(Tt),oe(()=>{let e=l.crud?.tableRef;e&&(e.value=Tt),X.value&&Ke.initRowDrag(X.value)}),z(()=>N.value.enableColumnDrag?JSON.stringify([Me.value.map(e=>[`key`in e?e.key:void 0,e.type]),N.value.columnDragHandleClass,N.value.columnDragAnimationDuration,ge.value,N.value.error?.show]):void 0,async()=>{lt();let e=st;await A(),e===st&&await ut()},{immediate:!0,flush:`sync`}),z([()=>N.value.rowDrag,He,()=>ge.value,()=>Ie.value.length,()=>q.currentPage.value],async()=>{await A(),X.value&&await Ke.initRowDrag(X.value)},{immediate:!0,deep:!0,flush:`post`}),ae(()=>{Z&&clearTimeout(Z),lt(),Ke.destroyRowDrag()}),(t,n)=>(M(),S(`div`,{ref_key:`tableWrapperRef`,ref:X,class:re([`c-table-wrapper`,[e.wrapperClass,{"c-table-wrapper--flex":e.flexHeight},N.value.density&&`c-table-wrapper--${N.value.density}`]]),"aria-busy":ge.value},[x(` 动态行工具栏 `),N.value.dynamicRows&&R(G).dynamicRowsState?(M(),b(le(R(G).dynamicRowsState.renderToolbar(X.value)),{key:0})):x(`v-if`,!0),x(` 表格工具栏 `),N.value.showToolbar?(M(),S(`div`,In,[C(`div`,Ln,[ce(t.$slots,`toolbar-left`,{},void 0,!0),N.value.toolbarActions.length?(M(),b(f,{key:0,actions:N.value.toolbarActions,config:{...N.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):x(`v-if`,!0)]),C(`div`,Rn,[ce(t.$slots,`toolbar-right`,{},void 0,!0),N.value.toolbarRightActions.length?(M(),b(f,{key:0,actions:N.value.toolbarRightActions,config:{align:`right`,...N.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):x(`v-if`,!0),N.value.exportConfig?(M(),b(c,{key:1,name:`mdi:download`,size:`18`,title:R(F)(`table.export`),clickable:``,class:`column-settings-btn`,onClick:n[0]||=e=>rt()},null,8,[`title`])):x(`v-if`,!0),N.value.enableColumnSettings?(M(),b(c,{key:2,name:`mdi:cog`,size:`18`,title:R(F)(`table.settings`),clickable:``,class:`column-settings-btn`,onClick:n[1]||=e=>K.value=!0},null,8,[`title`])):x(`v-if`,!0)])])):x(`v-if`,!0),x(` 批量操作栏 `),N.value.batchActions?.enabled&&Je.value>0?(M(),S(`div`,zn,[C(`span`,Bn,I(R(F)(`table.selectedCount`,{count:Je.value})),1),E(R(Se),{size:8},{default:B(()=>[(M(!0),S(v,null,se(N.value.batchActions.actions||[],e=>(M(),b(R(V),{key:e.key,type:e.type||`default`,size:N.value.controlSize,loading:R(Ye).isRunning(e.key),disabled:R(Ye).isRunning(e.key),onClick:t=>Qe(e)},w({default:B(()=>[T(` `+I(e.label),1)]),_:2},[e.icon?{name:`icon`,fn:B(()=>[E(c,{name:e.icon,size:`14`},null,8,[`name`])]),key:`0`}:void 0]),1032,[`type`,`size`,`loading`,`disabled`,`onClick`]))),128)),E(R(V),{size:N.value.controlSize,onClick:$e},{default:B(()=>[T(I(R(F)(`table.cancelSelection`)),1)]),_:1},8,[`size`])]),_:1})])):x(`v-if`,!0),x(` 错误状态 `),N.value.error?.show?(M(),S(`div`,Vn,[ce(t.$slots,`error`,{error:N.value.error},()=>[C(`div`,Hn,[E(c,{name:`mdi:alert-circle-outline`,size:`48`}),C(`p`,Un,I(N.value.error.message||R(F)(`table.loadFailed`)),1),N.value.error.onRetry?(M(),b(R(V),{key:0,type:`primary`,size:N.value.controlSize,onClick:N.value.error.onRetry},{default:B(()=>[T(I(R(F)(`common.retry`)),1)]),_:1},8,[`size`,`onClick`])):x(`v-if`,!0)])],!0)])):x(`v-if`,!0),x(` 表格主体 `),N.value.error?.show?x(`v-if`,!0):(M(),b(R(pe),ne({key:4,ref_key:`tableRef`,ref:m},{...dt.value,...t.$attrs},{"flex-height":e.flexHeight,columns:R(Me),data:U.value?H.value:R(q).paginatedData.value,pagination:U.value?l.pagination:!1,remote:U.value?W.value:!0,"onUpdate:sorter":Le,"onUpdate:filters":Be,"onUpdate:pageSize":Ee,"onUpdate:page":Te,loading:ge.value,"row-key":D,"row-props":We,"expanded-row-keys":R(G).expandedKeys.value,"checked-row-keys":et.value??R(G).checkedKeys.value,"onUpdate:expandedRowKeys":R(G).expandState?.handleExpandChange,"onUpdate:checkedRowKeys":tt,"scroll-x":R(Ne),"virtual-scroll":N.value.virtualScroll,"virtual-scroll-x":l.virtualScrollX,"min-row-height":N.value.virtualScroll?N.value.virtualItemHeight:void 0,"max-height":N.value.virtualScroll?N.value.virtualMaxHeight:N.value.maxHeight,summary:it.value,"summary-placement":N.value.summaryPosition,"children-key":N.value.treeEnabled?N.value.treeChildrenKey:void 0,indent:N.value.treeEnabled?N.value.treeIndent:void 0,"default-expand-all":N.value.treeEnabled?N.value.treeDefaultExpandAll:void 0,style:{width:`100%`}}),w({loading:B(()=>[ce(t.$slots,`loading`,{},()=>[E(R(u),{label:R(F)(`table.loading`)},null,8,[`label`])],!0)]),_:2},[t.$slots.empty?{name:`empty`,fn:B(()=>[ce(t.$slots,`empty`,{},void 0,!0)]),key:`0`}:void 0]),1040,[`flex-height`,`columns`,`data`,`pagination`,`remote`,`loading`,`expanded-row-keys`,`checked-row-keys`,`onUpdate:expandedRowKeys`,`scroll-x`,`virtual-scroll`,`virtual-scroll-x`,`min-row-height`,`max-height`,`summary`,`summary-placement`,`children-key`,`indent`,`default-expand-all`])),x(` 分页 `),!U.value&&R(q).paginationConfig.value?(M(),b(R(be),ne({key:5},R(q).paginationConfig.value,{class:`pagination-wrapper`}),null,16)):x(`v-if`,!0),x(` 编辑弹窗 `),N.value.editMode===`modal`||N.value.editMode===`both`?(M(),b(R(ye),{key:6,show:ht.value,"onUpdate:show":n[3]||=e=>ht.value=e,title:N.value.modalTitle,width:N.value.modalWidth,preset:`card`,"mask-closable":!1,"close-on-esc":!1,class:`w60%`,closable:!1},{action:B(()=>[E(R(Se),{justify:`end`},{default:B(()=>[E(R(V),{size:N.value.density?N.value.controlSize:`medium`,disabled:pt.value,onClick:yt},{default:B(()=>[T(I(R(F)(`common.cancel`)),1)]),_:1},8,[`size`,`disabled`]),E(R(V),{type:`primary`,size:N.value.density?N.value.controlSize:`medium`,disabled:!ft.value||pt.value,loading:pt.value,onClick:vt},{default:B(()=>[T(I(R(F)(`common.save`)),1)]),_:1},8,[`size`,`disabled`,`loading`])]),_:1})]),default:B(()=>[ht.value&&_t.value.length?(M(),b(R(r),{ref_key:`editFormRef`,ref:ft,key:gt.value,modelValue:mt.value,"onUpdate:modelValue":n[2]||=e=>mt.value=e,options:_t.value,config:{layout:`grid`,density:N.value.density,grid:{cols:2,...N.value.density?{}:{xGap:16,yGap:16}},showActions:!1}},null,8,[`modelValue`,`options`,`config`])):x(`v-if`,!0)]),_:1},8,[`show`,`title`,`width`])):x(`v-if`,!0),x(` 动态行确认删除弹窗 `),N.value.dynamicRows&&R(G).dynamicRowsState?(M(),b(le(R(G).dynamicRowsState.renderConfirmModal()),{key:7})):x(`v-if`,!0),x(` 列设置抽屉 `),E(R(me),{show:R(K),"onUpdate:show":n[4]||=e=>k(K)?K.value=e:null,width:420,placement:`right`,"mask-closable":!0},{default:B(()=>[E(R(he),{title:R(F)(`table.columnSettings`),closable:``},{default:B(()=>[E(Pn,{columns:R(je),"persist-key":N.value.persistKey,onChange:bt},null,8,[`columns`,`persist-key`])]),_:1},8,[`title`])]),_:1},8,[`show`])],10,Fn))}}),[[`__scopeId`,`data-v-9f320de0`]]);export{Ge as _,en as a,Re as b,jt as c,Tt as d,lt as f,Ke as g,Xe as h,tn as i,At as l,Ye as m,dn as n,Vt as o,Je as p,nn as r,Nt as s,Wn as t,Et as u,Ue as v,ze as y};
|
package/dist/C_Upload2.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./chunk.cjs`),t=require(`./C_Icon2.cjs`),n=require(`./export-helper.cjs`);let r=require(`vue`),i=require(`naive-ui`),a=require(`spark-md5`);a=e.n(a);const o=2*1024*1024,s={pending:`等待上传`,validating:`校验文件…`,hashing:`计算校验…`,uploading:`上传中…`,success:`上传成功`,error:`上传失败`,paused:`已暂停`,instant:`秒传成功`},c={pending:`default`,validating:`info`,hashing:`info`,uploading:`info`,success:`success`,error:`error`,paused:`warning`,instant:`success`},l={"image/":`mdi:file-image-outline`,"video/":`mdi:file-video-outline`,"audio/":`mdi:file-music-outline`,"application/pdf":`mdi:file-pdf-box`,"application/zip":`mdi:folder-zip-outline`,"application/x-rar":`mdi:folder-zip-outline`,"application/vnd.ms-excel":`mdi:file-excel-outline`,"application/vnd.openxmlformats-officedocument.spreadsheetml":`mdi:file-excel-outline`,"application/msword":`mdi:file-word-outline`,"application/vnd.openxmlformats-officedocument.wordprocessingml":`mdi:file-word-outline`,"text/":`mdi:file-document-outline`,default:`mdi:file-outline`};function u(e){for(let[t,n]of Object.entries(l))if(t!==`default`&&e.startsWith(t))return n;return l.default}function d(e){if(e===0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=Math.floor(Math.log(e)/Math.log(1024));return`${(e/1024**n).toFixed(n>0?1:0)} ${t[n]}`}function f(e){let t=[],n=new Set,i=0,a=!1,o=()=>{if(!a){a=!0;try{let n=Math.max(1,Math.trunc(e.value)||1);for(;i<n&&t.length;)t.shift()()}finally{a=!1}}};return(0,r.watch)(e,o),Object.assign((e,r)=>{let a=!1,s=!1,c,l=(e=!0)=>a?!1:(a=!0,n.delete(d),s&&--i,e&&o(),!0),u=()=>{if(!a){s=!0,i+=1;try{c=e({...r,onProgress:e=>{a||r.onProgress?.(e)},onSuccess:e=>{l()&&r.onSuccess?.(e)},onError:e=>{l()&&r.onError?.(e)}})}catch(e){l()&&r.onError?.(e instanceof Error?e:Error(String(e)))}}},d=()=>{let e=t.indexOf(u);if(e>=0&&t.splice(e,1),l(!1))try{c?.abort()}catch{}finally{o()}};return n.add(d),t.push(u),o(),{abort:d}},{abortAll(){let e=a;a=!0,t.length=0;try{for(let e of n)e()}finally{a=e}}})}const p=e=>new Promise((t,n)=>{let r,i,a=()=>{e?.removeEventListener(`abort`,o),r!==void 0&&cancelAnimationFrame(r),i!==void 0&&clearTimeout(i)},o=()=>{a(),n(e?.reason??new DOMException(`Hash cancelled`,`AbortError`))},s=()=>{a(),t()};if(e?.addEventListener(`abort`,o,{once:!0}),e?.aborted){o();return}typeof requestAnimationFrame==`function`?r=requestAnimationFrame(s):i=setTimeout(s,0)});function m(e){let t=(0,r.ref)(0),n=(0,r.ref)(0),i=(0,r.computed)(()=>t.value>0),o=Promise.resolve();async function s(e,t,n){let r=o,i;o=new Promise(e=>{i=e}),await r;try{return await c(e,t,n)}finally{i()}}async function c(r,i,o){o?.throwIfAborted(),t.value+=1,n.value=0,i?.(0);let s=new a.default.ArrayBuffer,c=Math.max(1,Math.trunc(Number(e.value)||1)),l=Math.max(1,Math.ceil(r.size/c));try{for(let e=0;e<l;e+=1){o?.throwIfAborted();let t=e*c,a=await r.slice(t,t+c).arrayBuffer();o?.throwIfAborted(),s.append(a),n.value=Math.round((e+1)/l*100),i?.(n.value),await p(o)}return o?.throwIfAborted(),s.end()}finally{t.value=Math.max(0,t.value-1)}}return{hashing:i,hashProgress:(0,r.readonly)(n),calculateHash:s}}function h(e){let t=new Map,n=new Map;function r(t){let n=Math.max(1,Math.trunc(Number(e.chunkSize.value)||1)),r=[],i=0,a=0;for(;a<t.size;){let e=Math.min(a+n,t.size);r.push({index:i,blob:t.slice(a,e),size:e-a,uploaded:!1}),a=e,i++}return r}async function i(t,n){if(e.uploadedChunksQuery?.value)try{let r=await e.uploadedChunksQuery.value(t);for(let e of r){let t=n[e];t&&(t.uploaded=!0)}}catch{}}function a(t){return new Promise((n,r)=>{let i=!1,a=()=>{i||(i=!0,n())},o=e=>{i||(i=!0,t.setError(),r(e instanceof Error?e:Error(String(e))))},s={action:e.action.value,headers:e.headers.value,data:{...e.data.value,hash:t.hash,chunkIndex:t.chunk.index,totalChunks:t.totalChunks,filename:t.file.name},file:t.chunk.blob,filename:t.file.name,hash:t.hash,chunkIndex:t.chunk.index,totalChunks:t.totalChunks,onProgress:()=>{},onSuccess:()=>{if(!i){if(t.isCancelled()){a();return}t.chunk.uploaded=!0,t.setUploadedBytes(t.chunk.size),t.onProgress({uploadedChunks:t.chunks.filter(e=>e.uploaded).length,totalChunks:t.totalChunks,uploadedBytes:t.chunks.filter(e=>e.uploaded).reduce((e,t)=>e+t.size,0),totalBytes:t.totalBytes}),a()}},onError:o};try{let n=e.customRequest?.value??g,r=e.scheduler?e.scheduler(n,s):n(s);t.abortControllers.push(()=>{try{r.abort()}catch{}finally{a()}})}catch(e){o(e)}})}async function o(o){let{uid:c,file:l,hash:u,onProgress:d,onSuccess:f,onError:p,isPaused:m}=o,h=Symbol(c);n.set(c,h);let g=()=>n.get(c)!==h,_=()=>{g()||n.delete(c)},v=r(l),y=v.length,b=l.size,x=0;if(await i(u,v),g()||m()){_();return}x=v.filter(e=>e.uploaded).reduce((e,t)=>e+t.size,0),d({uploadedChunks:v.filter(e=>e.uploaded).length,totalChunks:y,uploadedBytes:x,totalBytes:b});let S=v.filter(e=>!e.uploaded);if(S.length===0){try{g()||await s(u,l.name,y,f,p,g)}finally{_()}return}let C=[];t.set(c,C);let w=Math.max(1,Math.trunc(Number(e.concurrency.value)||1)),T=0,E=!1;async function D(){for(;T<S.length&&!E&&!m()&&!g();){let e=S[T++];await a({chunk:e,hash:u,file:l,totalChunks:y,chunks:v,totalBytes:b,abortControllers:C,onProgress:e=>{g()||d(e)},setUploadedBytes:e=>{x+=e},setError:()=>{E=!0},isCancelled:g})}}let O=Array.from({length:Math.min(w,S.length)},()=>D());try{let e=(await Promise.allSettled(O)).find(e=>e.status===`rejected`);e&&!g()?p(e.reason instanceof Error?e.reason:Error(String(e.reason))):!E&&!m()&&!g()&&await s(u,l.name,y,f,p,g)}finally{g()||t.delete(c),_()}}async function s(t,n,r,i,a,o){if(e.mergeChunks?.value)try{let a=await e.mergeChunks.value(t,n,r);o()||i(a)}catch(e){o()||a(e instanceof Error?e:Error(`分片合并失败`))}else o()||i({message:`分片上传完成(未配置合并函数)`})}function c(e){n.delete(e),t.get(e)?.forEach(e=>e()),t.delete(e)}function l(){n.clear(),t.forEach(e=>{e.forEach(e=>e())}),t.clear()}return{createChunks:r,uploadChunks:o,abortUpload:c,abortAll:l}}function g(e){let t=new XMLHttpRequest;t.open(`POST`,e.action),e.headers&&Object.entries(e.headers).forEach(([e,n])=>{t.setRequestHeader(e,n)}),t.upload.addEventListener(`progress`,t=>{t.lengthComputable&&e.onProgress?.(Math.round(t.loaded/t.total*100))}),t.addEventListener(`load`,()=>{if(t.status>=200&&t.status<300){let n;try{n=JSON.parse(t.responseText)}catch{n=t.responseText}e.onSuccess?.(n)}else e.onError?.(Error(`上传失败: HTTP ${t.status}`))}),t.addEventListener(`error`,()=>{e.onError?.(Error(`网络错误`))}),t.addEventListener(`abort`,()=>{e.onError?.(new DOMException(`上传已取消`,`AbortError`))});let n=new FormData;return n.append(`file`,e.file,e.filename),e.data&&Object.entries(e.data).forEach(([e,t])=>{n.append(e,String(t))}),t.send(n),{abort:()=>t.abort()}}function _(e){return e instanceof Error?e:Error(String(e))}function v(e){let t=[],n=(0,r.ref)(0),i=new Map,a=()=>{n.value=i.size},o=()=>Math.max(1,Math.trunc(Number(e.concurrency.value)||1));function s(){for(;i.size<o()&&t.length>0;){let n=t.shift(),{file:r}=n;if(!r.raw||i.has(r.uid))continue;let o=!1,c=e=>{o||(o=!0,i.delete(r.uid),a(),e?.error?n.onError(r.uid,e.error):e&&`response`in e&&n.onSuccess(r.uid,e.response),s())},l={action:e.action.value,headers:e.headers.value,data:e.data.value,file:r.raw,filename:r.name,onProgress:e=>n.onProgress(r.uid,e),onSuccess:e=>c({response:e}),onError:e=>c({error:e})};i.set(r.uid,{abort:()=>void 0,settle:c}),a();try{let t=e.customRequest?.value??y,n=e.scheduler?e.scheduler(t,l):t(l),a=i.get(r.uid);a&&(a.abort=n.abort)}catch(e){c({error:_(e)})}}}function c(e,n,r,i){l(e.uid),t.push({file:e,onProgress:n,onSuccess:r,onError:i}),s()}function l(e){for(let n=t.length-1;n>=0;--n)t[n].file.uid===e&&t.splice(n,1);let n=i.get(e);if(n){n.settle();try{n.abort()}catch{}}}function u(){t.length=0;let e=[...i.values()];i.clear(),a(),e.forEach(e=>{e.settle();try{e.abort()}catch{}})}return(0,r.watch)(e.concurrency,s),{activeCount:(0,r.readonly)(n),enqueue:c,abort:l,abortAll:u}}function y(e){let t=new XMLHttpRequest;t.open(`POST`,e.action),Object.entries(e.headers??{}).forEach(([e,n])=>{t.setRequestHeader(e,n)}),t.upload.addEventListener(`progress`,t=>{t.lengthComputable&&e.onProgress?.(Math.round(t.loaded/t.total*100))}),t.addEventListener(`load`,()=>{if(t.status>=200&&t.status<300){let n=t.responseText;try{n=JSON.parse(t.responseText)}catch{}e.onSuccess?.(n)}else e.onError?.(Error(`上传失败: HTTP ${t.status}`))}),t.addEventListener(`error`,()=>e.onError?.(Error(`网络错误`)));let n=new FormData;return n.append(`file`,e.file,e.filename),Object.entries(e.data??{}).forEach(([e,t])=>{n.append(e,String(t))}),t.send(n),{abort:()=>t.abort()}}function b(e){let t=(0,r.computed)(()=>e.action??``),n=(0,r.computed)(()=>e.headers??{}),i=(0,r.computed)(()=>e.data??{}),a=(0,r.computed)(()=>{let t=Math.trunc(Number(e.chunkSize));return Number.isFinite(t)&&t>0?t:o}),s=(0,r.computed)(()=>{let t=Math.trunc(Number(e.concurrency));return Number.isFinite(t)&&t>0?t:3}),c=(0,r.computed)(()=>e.customRequest),l=(0,r.computed)(()=>e.instantCheck),u=(0,r.computed)(()=>e.uploadedChunksQuery),d=(0,r.computed)(()=>e.mergeChunks),p=(0,r.ref)((e.defaultFileList??[]).map(e=>({...e}))),g=(0,r.reactive)(new Set),_=new Map,y=new Set,{hashing:b,hashProgress:x,calculateHash:S}=m(a),C=f(s),w=new Map,T=e=>{w.get(e)?.abort(),w.delete(e)},E=()=>{w.forEach(e=>e.abort()),w.clear()},D=h({scheduler:C,chunkSize:a,concurrency:s,action:t,headers:n,data:i,customRequest:c,uploadedChunksQuery:u,mergeChunks:d}),O=v({scheduler:C,concurrency:s,action:t,headers:n,data:i,customRequest:c}),k=(0,r.computed)(()=>{let e=p.value;if(e.length===0)return 0;let t=e.reduce((e,t)=>e+t.percent,0);return Math.round(t/e.length)});function A(){return typeof crypto<`u`&&`randomUUID`in crypto?`upload-${crypto.randomUUID()}`:`upload-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function j(e){if(e.type.startsWith(`image/`)){let t=URL.createObjectURL(e);return y.add(t),t}}function M(t){let n=[];for(let r of t){if(Number.isFinite(e.maxCount)&&(e.maxCount??0)>0&&p.value.length+n.length>=Math.trunc(e.maxCount))break;let t={uid:A(),name:r.name,size:r.size,type:r.type,status:`pending`,percent:0,raw:r,thumbUrl:j(r)};n.push(t)}return p.value.push(...n),n}function N(e,t){let n=p.value.find(t=>t.uid===e);n&&Object.assign(n,t)}function P(e){T(e),_.set(e,Symbol(e)),D.abortUpload(e),O.abort(e),g.delete(e);let t=p.value.findIndex(t=>t.uid===e);if(t!==-1){let e=p.value[t];L(e.thumbUrl),p.value.splice(t,1)}}function F(){C.abortAll(),E(),D.abortAll(),O.abortAll(),g.clear(),p.value.forEach(e=>{L(e.thumbUrl)}),p.value=[],_.clear()}async function I(t){if((e.maxSize??0)>0&&t.size>e.maxSize)return null;if(e.beforeUpload){let n=await e.beforeUpload(t);if(n===!1)return null;if(n instanceof File)return(e.maxSize??0)>0&&n.size>e.maxSize?null:n}return t}function L(e){!e||!y.has(e)||(URL.revokeObjectURL(e),y.delete(e))}function R(e,t){return _.get(e)===t&&!g.has(e)&&p.value.some(t=>t.uid===e)}async function z(e,t){T(e.uid);let n=new AbortController;w.set(e.uid,n);try{return await S(e.raw,n=>{R(e.uid,t)&&N(e.uid,{percent:n})},n.signal)}finally{w.get(e.uid)===n&&w.delete(e.uid)}}async function B(n){if(!n.raw)return;let r=Symbol(n.uid);_.set(n.uid,r),N(n.uid,{status:`validating`,error:void 0});let i;try{i=await I(n.raw)}catch(e){R(n.uid,r)&&N(n.uid,{status:`error`,error:e instanceof Error?e.message:`文件校验失败`});return}if(R(n.uid,r)){if(!i){N(n.uid,{status:`error`,error:`文件校验未通过`});return}if(i!==n.raw&&(L(n.thumbUrl),Object.assign(n,{raw:i,name:i.name,size:i.size,type:i.type,hash:void 0,chunkProgress:void 0,thumbUrl:j(i)})),!c.value&&!t.value.trim()){N(n.uid,{status:`error`,error:`未配置上传地址`});return}if(l.value&&!n.hash){N(n.uid,{status:`hashing`});try{let e=await z(n,r);if(!R(n.uid,r))return;N(n.uid,{hash:e});let t=await l.value(e,n.raw.name);if(!R(n.uid,r))return;if(t.exists){N(n.uid,{status:`instant`,percent:100,url:t.url});return}}catch{if(!R(n.uid,r))return}}e.chunked&&n.raw.size>a.value?await V(n,r):H(n,r)}}async function V(e,t){let n=e.raw,{hash:r}=e;if(!r){N(e.uid,{status:`hashing`});try{if(r=await z(e,t),!R(e.uid,t))return;N(e.uid,{hash:r})}catch{R(e.uid,t)&&N(e.uid,{status:`error`,error:`Hash 计算失败`});return}}N(e.uid,{status:`uploading`,percent:0}),await D.uploadChunks({uid:e.uid,file:n,hash:r,onProgress:n=>{if(!R(e.uid,t))return;let r=Math.round(n.uploadedBytes/n.totalBytes*100);N(e.uid,{percent:r,chunkProgress:n})},onSuccess:n=>{R(e.uid,t)&&N(e.uid,{status:`success`,percent:100,response:n})},onError:n=>{R(e.uid,t)&&N(e.uid,{status:`error`,error:n.message})},isPaused:()=>g.has(e.uid)})}function H(e,t){N(e.uid,{status:`uploading`,percent:0}),O.enqueue(e,(e,n)=>{R(e,t)&&N(e,{percent:n})},(e,n)=>{R(e,t)&&N(e,{status:`success`,percent:100,response:n})},(e,n)=>{R(e,t)&&N(e,{status:`error`,error:n.message})})}function U(){p.value.filter(e=>e.status===`pending`).forEach(e=>void B(e))}function W(){C.abortAll(),p.value.forEach(e=>{(e.status===`uploading`||e.status===`hashing`||e.status===`validating`)&&(T(e.uid),g.add(e.uid),_.set(e.uid,Symbol(e.uid)),D.abortUpload(e.uid),O.abort(e.uid),N(e.uid,{status:`paused`}))})}function G(){p.value.forEach(e=>{e.status===`paused`&&(g.delete(e.uid),N(e.uid,{status:`pending`}))}),U()}function K(e){let t=p.value.find(t=>t.uid===e);t&&t.status===`error`&&(N(e,{status:`pending`,percent:0,error:void 0}),B(t))}function q(){return p.value.filter(e=>e.status===`success`||e.status===`instant`)}return(0,r.onBeforeUnmount)(()=>{C.abortAll(),E(),D.abortAll(),O.abortAll(),_.clear(),p.value.forEach(e=>{L(e.thumbUrl)})}),{fileList:p,totalPercent:k,hashing:b,hashProgress:x,addFiles:M,removeFile:P,clearAll:F,startUpload:U,pauseAll:W,resumeAll:G,retryFile:K,processFile:B,getSuccessList:q}}function x(e,t,n,i,a){let o=(0,r.ref)(!1),s=null,c=!1;function l(e){t.value&&(e.preventDefault(),o.value=!0)}function u(e){t.value&&(e.preventDefault(),o.value=!0)}function d(n){if(!t.value)return;n.preventDefault();let r=e.value;r&&!r.contains(n.relatedTarget)&&(o.value=!1)}async function f(e){if(!t.value)return;e.preventDefault(),o.value=!1;let n=e.dataTransfer?.items;if(!n)return;let r=await S(n,e.dataTransfer);if(c||!t.value)return;let s=w(r,i.value);s.length>0&&a(s)}function p(e){if(!n.value)return;let t=e.clipboardData?.items;if(!t)return;let r=[];for(let e=0;e<t.length;e++){let n=t[e];if(n.kind===`file`){let e=n.getAsFile();e&&r.push(e)}}let o=w(r,i.value);o.length>0&&(e.preventDefault(),a(o))}function m(){let t=e.value;!t||s===t||(s=t,t.addEventListener(`dragenter`,l),t.addEventListener(`dragover`,u),t.addEventListener(`dragleave`,d),t.addEventListener(`drop`,f),n.value&&t.addEventListener(`paste`,p))}function h(){let e=s;e&&(e.removeEventListener(`dragenter`,l),e.removeEventListener(`dragover`,u),e.removeEventListener(`dragleave`,d),e.removeEventListener(`drop`,f)),e?.removeEventListener(`paste`,p),s=null}return(0,r.onMounted)(()=>{c=!1,m()}),(0,r.onBeforeUnmount)(()=>{c=!0,h()}),(0,r.watch)([e,t,n],()=>{h(),m()}),{isDragOver:(0,r.readonly)(o)}}async function S(e,t){let n=[];for(let t=0;t<e.length;t++){let r=e[t].webkitGetAsEntry?.();r&&n.push(r)}if(n.length>0)return(await Promise.all(n.map(C))).flat();let r=[],i=t?.files;if(i)for(let e=0;e<i.length;e++)r.push(i[e]);return r}async function C(e){if(e.isFile)return new Promise(t=>{e.file(e=>t([e]),()=>t([]))});if(e.isDirectory){let t=e.createReader(),n=[];for(;;){let e=await new Promise(e=>{t.readEntries(t=>e(t),()=>e([]))});if(e.length===0)break;n.push(...e)}return(await Promise.all(n.map(C))).flat()}return[]}function w(e,t){if(!t)return e;let n=t.split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean);return n.length===0?e:e.filter(e=>n.some(t=>{if(t.startsWith(`.`))return e.name.toLowerCase().endsWith(t);if(t.endsWith(`/*`)){let n=t.replace(`/*`,``);return e.type.toLowerCase().startsWith(`${n}/`)}return e.type.toLowerCase()===t}))}const T=[`tabindex`,`aria-disabled`,`onKeydown`],E=[`accept`,`multiple`,`webkitdirectory`,`disabled`],D={class:`upload-area__default`},O={class:`upload-area__text`},k={key:0},A={key:1},j={key:0,class:`upload-area__tip`},M=(0,r.defineComponent)({__name:`UploadArea`,props:{accept:{default:``},multiple:{type:Boolean,default:!1},directory:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},pasteable:{type:Boolean,default:!1},tip:{default:``}},emits:[`files`],setup(e,{expose:n,emit:i}){let a=e,o=i,s=(0,r.ref)(),c=(0,r.ref)(),{isDragOver:l}=x(s,(0,r.computed)(()=>a.draggable&&!a.disabled),(0,r.computed)(()=>a.pasteable&&!a.disabled),(0,r.computed)(()=>a.accept),e=>o(`files`,e));function u(){a.disabled||c.value?.click()}function d(e){let t=e.target,n=a.disabled?[]:w(Array.from(t.files??[]),a.accept);n.length>0&&o(`files`,n),t.value=``}return n({triggerSelect:u}),(n,i)=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{ref_key:`areaRef`,ref:s,class:(0,r.normalizeClass)([`upload-area`,{"upload-area--drag-over":(0,r.unref)(l),"upload-area--disabled":e.disabled}]),role:`button`,tabindex:e.disabled?-1:0,"aria-disabled":e.disabled,onClick:u,onKeydown:[(0,r.withKeys)((0,r.withModifiers)(u,[`prevent`]),[`enter`]),(0,r.withKeys)((0,r.withModifiers)(u,[`prevent`]),[`space`])]},[(0,r.createElementVNode)(`input`,{ref_key:`inputRef`,ref:c,type:`file`,class:`upload-area__input`,accept:e.accept,multiple:e.multiple,webkitdirectory:e.directory||void 0,disabled:e.disabled,onClick:i[0]||=(0,r.withModifiers)(()=>{},[`stop`]),onChange:d},null,40,E),(0,r.renderSlot)(n.$slots,`default`,{},()=>[(0,r.createElementVNode)(`div`,D,[(0,r.createVNode)(t.t,{name:(0,r.unref)(l)?`mdi:cloud-download-outline`:`mdi:cloud-upload-outline`,class:`upload-area__icon`},null,8,[`name`]),(0,r.createElementVNode)(`div`,O,[(0,r.unref)(l)?((0,r.openBlock)(),(0,r.createElementBlock)(`span`,k,`释放文件到此处`)):((0,r.openBlock)(),(0,r.createElementBlock)(`span`,A,[i[4]||=(0,r.createTextVNode)(` 点击或拖拽文件到此区域上传 `,-1),e.pasteable?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:0},[i[1]||=(0,r.createTextVNode)(` ,支持 `,-1),i[2]||=(0,r.createElementVNode)(`kbd`,null,`Ctrl+V`,-1),i[3]||=(0,r.createTextVNode)(` 粘贴 `,-1)],64)):(0,r.createCommentVNode)(`v-if`,!0)]))]),e.tip?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,j,(0,r.toDisplayString)(e.tip),1)):(0,r.createCommentVNode)(`v-if`,!0)])],!0)],42,T))}});var N=n.t(M,[[`__scopeId`,`data-v-705892ab`]]);const P={class:`file-list__thumb`},F=[`src`,`alt`],I={class:`file-list__info`},L={class:`file-list__name`},R={class:`file-list__meta`},z={class:`file-list__size`},B={key:0,class:`file-list__instant`},V={key:1,class:`file-list__chunk-info`},H={key:2,class:`file-list__error`},U={class:`file-list__actions`},W=(0,r.defineComponent)({__name:`FileList`,props:{fileList:{},showThumbnail:{type:Boolean}},emits:[`remove`,`retry`],setup(e,{emit:n}){let a=n;return(n,o)=>((0,r.openBlock)(),(0,r.createBlock)(r.TransitionGroup,{name:`file-list`,tag:`div`,class:`file-list`},{default:(0,r.withCtx)(()=>[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(e.fileList,n=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:n.uid,class:(0,r.normalizeClass)([`file-list__item`,`file-list__item--${n.status}`])},[(0,r.createCommentVNode)(` 缩略图 / 图标 `),(0,r.createElementVNode)(`div`,P,[e.showThumbnail&&n.thumbUrl?((0,r.openBlock)(),(0,r.createElementBlock)(`img`,{key:0,src:n.thumbUrl,alt:n.name,class:`file-list__thumb-img`},null,8,F)):((0,r.openBlock)(),(0,r.createBlock)(t.t,{key:1,name:(0,r.unref)(u)(n.type),class:`file-list__thumb-icon`},null,8,[`name`]))]),(0,r.createCommentVNode)(` 文件信息 `),(0,r.createElementVNode)(`div`,I,[(0,r.createElementVNode)(`div`,L,[(0,r.createVNode)((0,r.unref)(i.NEllipsis),{"line-clamp":1},{default:(0,r.withCtx)(()=>[(0,r.createTextVNode)((0,r.toDisplayString)(n.name),1)]),_:2},1024)]),(0,r.createElementVNode)(`div`,R,[(0,r.createElementVNode)(`span`,z,(0,r.toDisplayString)((0,r.unref)(d)(n.size)),1),(0,r.createVNode)((0,r.unref)(i.NTag),{type:(0,r.unref)(c)[n.status]||`default`,size:`tiny`,bordered:!1},{default:(0,r.withCtx)(()=>[(0,r.createTextVNode)((0,r.toDisplayString)((0,r.unref)(s)[n.status]||n.status),1)]),_:2},1032,[`type`]),n.status===`instant`?((0,r.openBlock)(),(0,r.createElementBlock)(`span`,B,` ⚡ `)):(0,r.createCommentVNode)(`v-if`,!0)]),(0,r.createCommentVNode)(` 进度条 `),n.status===`uploading`||n.status===`hashing`?((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i.NProgress),{key:0,percentage:n.percent,height:4,"border-radius":2,"show-indicator":!1,status:n.status===`hashing`?`info`:`success`},null,8,[`percentage`,`status`])):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 分片进度描述 `),n.chunkProgress&&n.status===`uploading`?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,V,` 分片 `+(0,r.toDisplayString)(n.chunkProgress.uploadedChunks)+`/`+(0,r.toDisplayString)(n.chunkProgress.totalChunks),1)):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 错误信息 `),n.status===`error`&&n.error?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,H,(0,r.toDisplayString)(n.error),1)):(0,r.createCommentVNode)(`v-if`,!0)]),(0,r.createCommentVNode)(` 操作按钮 `),(0,r.createElementVNode)(`div`,U,[n.status===`error`?((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i.NButton),{key:0,text:``,type:`warning`,size:`tiny`,"aria-label":`重试上传`,onClick:e=>a(`retry`,n.uid)},{icon:(0,r.withCtx)(()=>[(0,r.createVNode)(t.t,{name:`mdi:refresh`})]),_:1},8,[`onClick`])):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createVNode)((0,r.unref)(i.NButton),{text:``,type:`error`,size:`tiny`,"aria-label":`移除文件`,onClick:e=>a(`remove`,n.uid)},{icon:(0,r.withCtx)(()=>[(0,r.createVNode)(t.t,{name:`mdi:close`})]),_:1},8,[`onClick`])])],2))),128))]),_:1}))}});var G=n.t(W,[[`__scopeId`,`data-v-04f26012`]]);const K={key:0,class:`image-preview`},q=[`src`,`alt`],J={class:`image-preview__overlay`},Y={key:0,class:`image-preview__progress`},X={class:`image-preview__actions`},Z={class:`image-preview__name`},Q=(0,r.defineComponent)({__name:`ImagePreview`,props:{fileList:{}},emits:[`remove`,`retry`],setup(e,{emit:n}){let a=e,o=n,s=(0,r.computed)(()=>a.fileList.filter(e=>e.type?.startsWith(`image/`)));return(e,n)=>s.value.length>0?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,K,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(s.value,e=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:e.uid,class:(0,r.normalizeClass)([`image-preview__item`,`image-preview__item--${e.status}`])},[e.thumbUrl?((0,r.openBlock)(),(0,r.createElementBlock)(`img`,{key:0,src:e.thumbUrl,alt:e.name,class:`image-preview__img`},null,8,q)):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 遮罩层 `),(0,r.createElementVNode)(`div`,J,[(0,r.createCommentVNode)(` 上传中进度 `),e.status===`uploading`||e.status===`hashing`?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,Y,[(0,r.createVNode)((0,r.unref)(i.NProgress),{type:`circle`,percentage:e.percent,"stroke-width":3,style:{width:`40px`}},null,8,[`percentage`])])):e.status===`success`||e.status===`instant`?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:1},[(0,r.createCommentVNode)(` 状态图标 `),(0,r.createVNode)(t.t,{name:`mdi:check-circle`,class:`image-preview__status-icon image-preview__status-icon--success`})],2112)):e.status===`error`?((0,r.openBlock)(),(0,r.createBlock)(t.t,{key:2,name:`mdi:alert-circle`,class:`image-preview__status-icon image-preview__status-icon--error`})):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 操作 `),(0,r.createElementVNode)(`div`,X,[e.status===`error`?((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i.NButton),{key:0,circle:``,size:`tiny`,type:`warning`,"aria-label":`重试上传`,onClick:t=>o(`retry`,e.uid)},{icon:(0,r.withCtx)(()=>[(0,r.createVNode)(t.t,{name:`mdi:refresh`})]),_:1},8,[`onClick`])):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createVNode)((0,r.unref)(i.NButton),{circle:``,size:`tiny`,type:`error`,"aria-label":`移除文件`,onClick:t=>o(`remove`,e.uid)},{icon:(0,r.withCtx)(()=>[(0,r.createVNode)(t.t,{name:`mdi:close`})]),_:1},8,[`onClick`])])]),(0,r.createCommentVNode)(` 文件名 `),(0,r.createElementVNode)(`div`,Z,[(0,r.createVNode)((0,r.unref)(i.NEllipsis),{"line-clamp":1},{default:(0,r.withCtx)(()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.name),1)]),_:2},1024)])],2))),128))])):(0,r.createCommentVNode)(`v-if`,!0)}});var $=n.t(Q,[[`__scopeId`,`data-v-32d39ae9`]]);const ee={class:`c-upload`},te={key:0,class:`c-upload__total-progress`},ne={class:`c-upload__total-label`},re=(0,r.defineComponent)({__name:`index`,props:{action:{default:``},headers:{default:()=>({})},data:{default:()=>({})},multiple:{type:Boolean,default:!1},directory:{type:Boolean,default:!1},accept:{default:``},maxSize:{default:0},maxCount:{default:0},disabled:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},pasteable:{type:Boolean,default:!1},chunked:{type:Boolean,default:!1},chunkSize:{default:o},concurrency:{default:3},showFileList:{type:Boolean,default:!0},listType:{default:`text`},showThumbnail:{type:Boolean,default:!0},customRequest:{},instantCheck:{},uploadedChunksQuery:{},mergeChunks:{},beforeUpload:{},tip:{default:``},defaultFileList:{default:()=>[]}},emits:[`change`,`success`,`error`,`progress`,`remove`,`finish`,`exceed`],setup(e,{expose:t,emit:n}){let a=e,o=n,s=(0,r.ref)(),{fileList:c,totalPercent:l,addFiles:u,removeFile:d,clearAll:f,startUpload:p,pauseAll:m,resumeAll:h,retryFile:g,processFile:_,getSuccessList:v}=b(a),y=(0,r.computed)(()=>c.value.some(e=>e.status===`uploading`||e.status===`hashing`||e.status===`validating`)),x=e=>({...e}),S=()=>c.value.map(x);function C(e){let t=Math.max(0,Math.trunc(Number(a.maxCount)||0));if(t>0&&c.value.length+e.length>t){o(`exceed`,e,S());let n=t-c.value.length;if(n<=0)return;e=e.slice(0,n)}let n=u(e);o(`change`,S()),n.forEach(e=>void _(e))}function w(e){let t=c.value.find(t=>t.uid===e);t&&(o(`remove`,x(t)),d(e),o(`change`,S()))}function T(e){g(e)}let E=new Map,D=!1;return(0,r.watch)(c,e=>{let t=new Set(e.map(e=>e.uid));E.forEach((e,n)=>{t.has(n)||E.delete(n)}),e.forEach(e=>{let t=E.get(e.uid);t&&t.percent!==e.percent&&o(`progress`,x(e),e.percent),t&&t.status!==e.status&&(e.status===`success`||e.status===`instant`)&&o(`success`,x(e),e.response),t&&t.status!==`error`&&e.status===`error`&&o(`error`,x(e),Error(e.error||`上传失败`)),E.set(e.uid,{status:e.status,percent:e.percent})}),e.length>0&&e.every(e=>e.status===`success`||e.status===`instant`||e.status===`error`)?(D||o(`finish`,S()),D=!0):D=!1,o(`change`,S())},{deep:!0}),t({selectFiles:()=>s.value?.triggerSelect(),startUpload:p,pauseAll:m,resumeAll:h,clearAll:()=>{f(),o(`change`,S())},removeFile:e=>{w(e)},retryFile:g,getFileList:S,getSuccessList:()=>v().map(x),get totalPercent(){return l.value}}),(e,t)=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,ee,[(0,r.createCommentVNode)(` 上传区域 `),(0,r.createVNode)(N,{ref_key:`uploadAreaRef`,ref:s,accept:a.accept,multiple:a.multiple,directory:a.directory,disabled:a.disabled,draggable:a.draggable,pasteable:a.pasteable,tip:a.tip,onFiles:C},{default:(0,r.withCtx)(()=>[(0,r.renderSlot)(e.$slots,`area`,{},void 0,!0)]),_:3},8,[`accept`,`multiple`,`directory`,`disabled`,`draggable`,`pasteable`,`tip`]),(0,r.createCommentVNode)(` 总进度条 `),y.value?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,te,[(0,r.createElementVNode)(`div`,ne,[t[0]||=(0,r.createElementVNode)(`span`,null,`总进度`,-1),(0,r.createElementVNode)(`span`,null,(0,r.toDisplayString)((0,r.unref)(l))+`%`,1)]),(0,r.createVNode)((0,r.unref)(i.NProgress),{percentage:(0,r.unref)(l),height:6,"border-radius":3,"show-indicator":!1,status:`success`},null,8,[`percentage`])])):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 图片预览模式 `),a.listType===`image`?((0,r.openBlock)(),(0,r.createBlock)($,{key:1,"file-list":(0,r.unref)(c),onRemove:w,onRetry:T},null,8,[`file-list`])):a.showFileList&&(0,r.unref)(c).length>0?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:2},[(0,r.createCommentVNode)(` 文件列表模式 `),(0,r.createVNode)(G,{"file-list":(0,r.unref)(c),"show-thumbnail":a.showThumbnail,onRemove:w,onRetry:T},null,8,[`file-list`,`show-thumbnail`])],2112)):(0,r.createCommentVNode)(`v-if`,!0)]))}});var ie=n.t(re,[[`__scopeId`,`data-v-58ca8e42`]]);Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return ie}});
|
|
1
|
+
const e=require(`./chunk.cjs`),t=require(`./C_Icon2.cjs`),n=require(`./export-helper.cjs`);let r=require(`vue`),i=require(`naive-ui`),a=require(`spark-md5`);a=e.n(a);const o=2*1024*1024,s={pending:`等待上传`,validating:`校验文件…`,hashing:`计算校验…`,uploading:`上传中…`,success:`上传成功`,error:`上传失败`,paused:`已暂停`,instant:`秒传成功`},c={pending:`default`,validating:`info`,hashing:`info`,uploading:`info`,success:`success`,error:`error`,paused:`warning`,instant:`success`},l={"image/":`mdi:file-image-outline`,"video/":`mdi:file-video-outline`,"audio/":`mdi:file-music-outline`,"application/pdf":`mdi:file-pdf-box`,"application/zip":`mdi:folder-zip-outline`,"application/x-rar":`mdi:folder-zip-outline`,"application/vnd.ms-excel":`mdi:file-excel-outline`,"application/vnd.openxmlformats-officedocument.spreadsheetml":`mdi:file-excel-outline`,"application/msword":`mdi:file-word-outline`,"application/vnd.openxmlformats-officedocument.wordprocessingml":`mdi:file-word-outline`,"text/":`mdi:file-document-outline`,default:`mdi:file-outline`};function u(e){for(let[t,n]of Object.entries(l))if(t!==`default`&&e.startsWith(t))return n;return l.default}function d(e){if(e===0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=Math.floor(Math.log(e)/Math.log(1024));return`${(e/1024**n).toFixed(n>0?1:0)} ${t[n]}`}function f(e){let t=[],n=new Set,i=0,a=!1,o=()=>{if(!a){a=!0;try{let n=Math.max(1,Math.trunc(e.value)||1);for(;i<n&&t.length;)t.shift()()}finally{a=!1}}};return(0,r.watch)(e,o),Object.assign((e,r)=>{let a=!1,s=!1,c,l=(e=!0)=>a?!1:(a=!0,n.delete(d),s&&--i,e&&o(),!0),u=()=>{if(!a){s=!0,i+=1;try{c=e({...r,onProgress:e=>{a||r.onProgress?.(e)},onSuccess:e=>{l()&&r.onSuccess?.(e)},onError:e=>{l()&&r.onError?.(e)}})}catch(e){l()&&r.onError?.(e instanceof Error?e:Error(String(e)))}}},d=()=>{let e=t.indexOf(u);if(e>=0&&t.splice(e,1),l(!1))try{c?.abort()}catch{}finally{o()}};return n.add(d),t.push(u),o(),{abort:d}},{abortAll(){let e=a;a=!0,t.length=0;try{for(let e of n)e()}finally{a=e}}})}const p=e=>new Promise((t,n)=>{let r,i,a=()=>{e?.removeEventListener(`abort`,o),r!==void 0&&cancelAnimationFrame(r),i!==void 0&&clearTimeout(i)},o=()=>{a(),n(e?.reason??new DOMException(`Hash cancelled`,`AbortError`))},s=()=>{a(),t()};if(e?.addEventListener(`abort`,o,{once:!0}),e?.aborted){o();return}typeof requestAnimationFrame==`function`?r=requestAnimationFrame(s):i=setTimeout(s,0)});function m(e){let t=(0,r.ref)(0),n=(0,r.ref)(0),i=(0,r.computed)(()=>t.value>0),o=Promise.resolve();async function s(e,t,n){let r=o,i;o=new Promise(e=>{i=e}),await r;try{return await c(e,t,n)}finally{i()}}async function c(r,i,o){o?.throwIfAborted(),t.value+=1,n.value=0,i?.(0);let s=new a.default.ArrayBuffer,c=Math.max(1,Math.trunc(Number(e.value)||1)),l=Math.max(1,Math.ceil(r.size/c));try{for(let e=0;e<l;e+=1){o?.throwIfAborted();let t=e*c,a=await r.slice(t,t+c).arrayBuffer();o?.throwIfAborted(),s.append(a),n.value=Math.round((e+1)/l*100),i?.(n.value),await p(o)}return o?.throwIfAborted(),s.end()}finally{t.value=Math.max(0,t.value-1)}}return{hashing:i,hashProgress:(0,r.readonly)(n),calculateHash:s}}function h(e){let t=new Map,n=new Map;function r(t){let n=Math.max(1,Math.trunc(Number(e.chunkSize.value)||1)),r=[],i=0,a=0;for(;a<t.size;){let e=Math.min(a+n,t.size);r.push({index:i,blob:t.slice(a,e),size:e-a,uploaded:!1}),a=e,i++}return r}async function i(t,n){if(e.uploadedChunksQuery?.value)try{let r=await e.uploadedChunksQuery.value(t);for(let e of r){let t=n[e];t&&(t.uploaded=!0)}}catch{}}function a(t){return new Promise((n,r)=>{let i=!1,a=()=>{i||(i=!0,n())},o=e=>{i||(i=!0,t.setError(),r(e instanceof Error?e:Error(String(e))))},s={action:e.action.value,headers:e.headers.value,data:{...e.data.value,hash:t.hash,chunkIndex:t.chunk.index,totalChunks:t.totalChunks,filename:t.file.name},file:t.chunk.blob,filename:t.file.name,hash:t.hash,chunkIndex:t.chunk.index,totalChunks:t.totalChunks,onProgress:()=>{},onSuccess:()=>{if(!i){if(t.isCancelled()){a();return}t.chunk.uploaded=!0,t.setUploadedBytes(t.chunk.size),t.onProgress({uploadedChunks:t.chunks.filter(e=>e.uploaded).length,totalChunks:t.totalChunks,uploadedBytes:t.chunks.filter(e=>e.uploaded).reduce((e,t)=>e+t.size,0),totalBytes:t.totalBytes}),a()}},onError:o};try{let n=e.customRequest?.value??g,r=e.scheduler?e.scheduler(n,s):n(s);t.abortControllers.push(()=>{try{r.abort()}catch{}finally{a()}})}catch(e){o(e)}})}async function o(o){let{uid:c,file:l,hash:u,onProgress:d,onSuccess:f,onError:p,isPaused:m}=o,h=Symbol(c);n.set(c,h);let g=()=>n.get(c)!==h,_=()=>{g()||n.delete(c)},v=r(l),y=v.length,b=l.size,x=0;if(await i(u,v),g()||m()){_();return}x=v.filter(e=>e.uploaded).reduce((e,t)=>e+t.size,0),d({uploadedChunks:v.filter(e=>e.uploaded).length,totalChunks:y,uploadedBytes:x,totalBytes:b});let S=v.filter(e=>!e.uploaded);if(S.length===0){try{g()||await s(u,l.name,y,f,p,g)}finally{_()}return}let C=[];t.set(c,C);let w=Math.max(1,Math.trunc(Number(e.concurrency.value)||1)),T=0,E=!1;async function D(){for(;T<S.length&&!E&&!m()&&!g();){let e=S[T++];await a({chunk:e,hash:u,file:l,totalChunks:y,chunks:v,totalBytes:b,abortControllers:C,onProgress:e=>{g()||d(e)},setUploadedBytes:e=>{x+=e},setError:()=>{E=!0},isCancelled:g})}}let O=Array.from({length:Math.min(w,S.length)},()=>D());try{let e=(await Promise.allSettled(O)).find(e=>e.status===`rejected`);e&&!g()?p(e.reason instanceof Error?e.reason:Error(String(e.reason))):!E&&!m()&&!g()&&await s(u,l.name,y,f,p,g)}finally{g()||t.delete(c),_()}}async function s(t,n,r,i,a,o){if(e.mergeChunks?.value)try{let a=await e.mergeChunks.value(t,n,r);o()||i(a)}catch(e){o()||a(e instanceof Error?e:Error(`分片合并失败`))}else o()||i({message:`分片上传完成(未配置合并函数)`})}function c(e){n.delete(e),t.get(e)?.forEach(e=>e()),t.delete(e)}function l(){n.clear(),t.forEach(e=>{e.forEach(e=>e())}),t.clear()}return{createChunks:r,uploadChunks:o,abortUpload:c,abortAll:l}}function g(e){let t=new XMLHttpRequest;t.open(`POST`,e.action),e.headers&&Object.entries(e.headers).forEach(([e,n])=>{t.setRequestHeader(e,n)}),t.upload.addEventListener(`progress`,t=>{t.lengthComputable&&e.onProgress?.(Math.round(t.loaded/t.total*100))}),t.addEventListener(`load`,()=>{if(t.status>=200&&t.status<300){let n;try{n=JSON.parse(t.responseText)}catch{n=t.responseText}e.onSuccess?.(n)}else e.onError?.(Error(`上传失败: HTTP ${t.status}`))}),t.addEventListener(`error`,()=>{e.onError?.(Error(`网络错误`))}),t.addEventListener(`abort`,()=>{e.onError?.(new DOMException(`上传已取消`,`AbortError`))});let n=new FormData;return n.append(`file`,e.file,e.filename),e.data&&Object.entries(e.data).forEach(([e,t])=>{n.append(e,String(t))}),t.send(n),{abort:()=>t.abort()}}function _(e){return e instanceof Error?e:Error(String(e))}function v(e){let t=[],n=(0,r.ref)(0),i=new Map,a=()=>{n.value=i.size},o=()=>Math.max(1,Math.trunc(Number(e.concurrency.value)||1));function s(){for(;i.size<o()&&t.length>0;){let n=t.shift(),{file:r}=n;if(!r.raw||i.has(r.uid))continue;let o=!1,c=e=>{o||(o=!0,i.delete(r.uid),a(),e?.error?n.onError(r.uid,e.error):e&&`response`in e&&n.onSuccess(r.uid,e.response),s())},l={action:e.action.value,headers:e.headers.value,data:e.data.value,file:r.raw,filename:r.name,onProgress:e=>n.onProgress(r.uid,e),onSuccess:e=>c({response:e}),onError:e=>c({error:e})};i.set(r.uid,{abort:()=>void 0,settle:c}),a();try{let t=e.customRequest?.value??y,n=e.scheduler?e.scheduler(t,l):t(l),a=i.get(r.uid);a&&(a.abort=n.abort)}catch(e){c({error:_(e)})}}}function c(e,n,r,i){l(e.uid),t.push({file:e,onProgress:n,onSuccess:r,onError:i}),s()}function l(e){for(let n=t.length-1;n>=0;--n)t[n].file.uid===e&&t.splice(n,1);let n=i.get(e);if(n){n.settle();try{n.abort()}catch{}}}function u(){t.length=0;let e=[...i.values()];i.clear(),a(),e.forEach(e=>{e.settle();try{e.abort()}catch{}})}return(0,r.watch)(e.concurrency,s),{activeCount:(0,r.readonly)(n),enqueue:c,abort:l,abortAll:u}}function y(e){let t=new XMLHttpRequest;t.open(`POST`,e.action),Object.entries(e.headers??{}).forEach(([e,n])=>{t.setRequestHeader(e,n)}),t.upload.addEventListener(`progress`,t=>{t.lengthComputable&&e.onProgress?.(Math.round(t.loaded/t.total*100))}),t.addEventListener(`load`,()=>{if(t.status>=200&&t.status<300){let n=t.responseText;try{n=JSON.parse(t.responseText)}catch{}e.onSuccess?.(n)}else e.onError?.(Error(`上传失败: HTTP ${t.status}`))}),t.addEventListener(`error`,()=>e.onError?.(Error(`网络错误`)));let n=new FormData;return n.append(`file`,e.file,e.filename),Object.entries(e.data??{}).forEach(([e,t])=>{n.append(e,String(t))}),t.send(n),{abort:()=>t.abort()}}function b(e){let t=(0,r.computed)(()=>e.action??``),n=(0,r.computed)(()=>e.headers??{}),i=(0,r.computed)(()=>e.data??{}),a=(0,r.computed)(()=>{let t=Math.trunc(Number(e.chunkSize));return Number.isFinite(t)&&t>0?t:o}),s=(0,r.computed)(()=>{let t=Math.trunc(Number(e.concurrency));return Number.isFinite(t)&&t>0?t:3}),c=(0,r.computed)(()=>e.customRequest),l=(0,r.computed)(()=>e.instantCheck),u=(0,r.computed)(()=>e.uploadedChunksQuery),d=(0,r.computed)(()=>e.mergeChunks),p=(0,r.ref)((e.defaultFileList??[]).map(e=>({...e}))),g=(0,r.reactive)(new Set),_=new Map,y=new Set,{hashing:b,hashProgress:x,calculateHash:S}=m(a),C=f(s),w=new Map,T=e=>{w.get(e)?.abort(),w.delete(e)},E=()=>{w.forEach(e=>e.abort()),w.clear()},D=h({scheduler:C,chunkSize:a,concurrency:s,action:t,headers:n,data:i,customRequest:c,uploadedChunksQuery:u,mergeChunks:d}),O=v({scheduler:C,concurrency:s,action:t,headers:n,data:i,customRequest:c}),k=(0,r.computed)(()=>{let e=p.value;if(e.length===0)return 0;let t=e.reduce((e,t)=>e+t.percent,0);return Math.round(t/e.length)});function A(){return typeof crypto<`u`&&`randomUUID`in crypto?`upload-${crypto.randomUUID()}`:`upload-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function j(e){if(e.type.startsWith(`image/`)){let t=URL.createObjectURL(e);return y.add(t),t}}function M(t){let n=[];for(let r of t){if(Number.isFinite(e.maxCount)&&(e.maxCount??0)>0&&p.value.length+n.length>=Math.trunc(e.maxCount))break;let t={uid:A(),name:r.name,size:r.size,type:r.type,status:`pending`,percent:0,raw:r,thumbUrl:j(r)};n.push(t)}return p.value.push(...n),n}function N(e,t){let n=p.value.find(t=>t.uid===e);n&&Object.assign(n,t)}function P(e){T(e),_.delete(e),D.abortUpload(e),O.abort(e),g.delete(e);let t=p.value.findIndex(t=>t.uid===e);if(t!==-1){let e=p.value[t];L(e.thumbUrl),p.value.splice(t,1)}}function F(){C.abortAll(),E(),D.abortAll(),O.abortAll(),g.clear(),p.value.forEach(e=>{L(e.thumbUrl)}),p.value=[],_.clear()}async function I(t){if((e.maxSize??0)>0&&t.size>e.maxSize)return null;if(e.beforeUpload){let n=await e.beforeUpload(t);if(n===!1)return null;if(n instanceof File)return(e.maxSize??0)>0&&n.size>e.maxSize?null:n}return t}function L(e){!e||!y.has(e)||(URL.revokeObjectURL(e),y.delete(e))}function R(e,t){return _.get(e)===t&&!g.has(e)&&p.value.some(t=>t.uid===e)}async function z(e,t){T(e.uid);let n=new AbortController;w.set(e.uid,n);try{return await S(e.raw,n=>{R(e.uid,t)&&N(e.uid,{percent:n})},n.signal)}finally{w.get(e.uid)===n&&w.delete(e.uid)}}async function B(n){if(!n.raw)return;let r=Symbol(n.uid);_.set(n.uid,r),N(n.uid,{status:`validating`,error:void 0});let i;try{i=await I(n.raw)}catch(e){R(n.uid,r)&&N(n.uid,{status:`error`,error:e instanceof Error?e.message:`文件校验失败`});return}if(R(n.uid,r)){if(!i){N(n.uid,{status:`error`,error:`文件校验未通过`});return}if(i!==n.raw&&(L(n.thumbUrl),Object.assign(n,{raw:i,name:i.name,size:i.size,type:i.type,hash:void 0,chunkProgress:void 0,thumbUrl:j(i)})),!c.value&&!t.value.trim()){N(n.uid,{status:`error`,error:`未配置上传地址`});return}if(l.value&&!n.hash){N(n.uid,{status:`hashing`});try{let e=await z(n,r);if(!R(n.uid,r))return;N(n.uid,{hash:e});let t=await l.value(e,n.raw.name);if(!R(n.uid,r))return;if(t.exists){N(n.uid,{status:`instant`,percent:100,url:t.url});return}}catch{if(!R(n.uid,r))return}}e.chunked&&n.raw.size>a.value?await V(n,r):H(n,r)}}async function V(e,t){let n=e.raw,{hash:r}=e;if(!r){N(e.uid,{status:`hashing`});try{if(r=await z(e,t),!R(e.uid,t))return;N(e.uid,{hash:r})}catch{R(e.uid,t)&&N(e.uid,{status:`error`,error:`Hash 计算失败`});return}}N(e.uid,{status:`uploading`,percent:0}),await D.uploadChunks({uid:e.uid,file:n,hash:r,onProgress:n=>{if(!R(e.uid,t))return;let r=Math.round(n.uploadedBytes/n.totalBytes*100);N(e.uid,{percent:r,chunkProgress:n})},onSuccess:n=>{R(e.uid,t)&&N(e.uid,{status:`success`,percent:100,response:n})},onError:n=>{R(e.uid,t)&&N(e.uid,{status:`error`,error:n.message})},isPaused:()=>g.has(e.uid)})}function H(e,t){N(e.uid,{status:`uploading`,percent:0}),O.enqueue(e,(e,n)=>{R(e,t)&&N(e,{percent:n})},(e,n)=>{R(e,t)&&N(e,{status:`success`,percent:100,response:n})},(e,n)=>{R(e,t)&&N(e,{status:`error`,error:n.message})})}function U(){p.value.filter(e=>e.status===`pending`).forEach(e=>void B(e))}function W(){C.abortAll(),p.value.forEach(e=>{(e.status===`uploading`||e.status===`hashing`||e.status===`validating`)&&(T(e.uid),g.add(e.uid),_.set(e.uid,Symbol(e.uid)),D.abortUpload(e.uid),O.abort(e.uid),N(e.uid,{status:`paused`}))})}function G(){p.value.forEach(e=>{e.status===`paused`&&(g.delete(e.uid),N(e.uid,{status:`pending`}))}),U()}function K(e){let t=p.value.find(t=>t.uid===e);t&&t.status===`error`&&(N(e,{status:`pending`,percent:0,error:void 0}),B(t))}function q(){return p.value.filter(e=>e.status===`success`||e.status===`instant`)}return(0,r.onBeforeUnmount)(()=>{C.abortAll(),E(),D.abortAll(),O.abortAll(),_.clear(),p.value.forEach(e=>{L(e.thumbUrl)})}),{fileList:p,totalPercent:k,hashing:b,hashProgress:x,addFiles:M,removeFile:P,clearAll:F,startUpload:U,pauseAll:W,resumeAll:G,retryFile:K,processFile:B,getSuccessList:q}}function x(e,t,n,i,a){let o=(0,r.ref)(!1),s=null,c=!1;function l(e){t.value&&(e.preventDefault(),o.value=!0)}function u(e){t.value&&(e.preventDefault(),o.value=!0)}function d(n){if(!t.value)return;n.preventDefault();let r=e.value;r&&!r.contains(n.relatedTarget)&&(o.value=!1)}async function f(e){if(!t.value)return;e.preventDefault(),o.value=!1;let n=e.dataTransfer?.items;if(!n)return;let r=await S(n,e.dataTransfer);if(c||!t.value)return;let s=w(r,i.value);s.length>0&&a(s)}function p(e){if(!n.value)return;let t=e.clipboardData?.items;if(!t)return;let r=[];for(let e=0;e<t.length;e++){let n=t[e];if(n.kind===`file`){let e=n.getAsFile();e&&r.push(e)}}let o=w(r,i.value);o.length>0&&(e.preventDefault(),a(o))}function m(){let t=e.value;!t||s===t||(s=t,t.addEventListener(`dragenter`,l),t.addEventListener(`dragover`,u),t.addEventListener(`dragleave`,d),t.addEventListener(`drop`,f),n.value&&t.addEventListener(`paste`,p))}function h(){let e=s;e&&(e.removeEventListener(`dragenter`,l),e.removeEventListener(`dragover`,u),e.removeEventListener(`dragleave`,d),e.removeEventListener(`drop`,f)),e?.removeEventListener(`paste`,p),s=null}return(0,r.onMounted)(()=>{c=!1,m()}),(0,r.onBeforeUnmount)(()=>{c=!0,h()}),(0,r.watch)([e,t,n],()=>{h(),m()}),{isDragOver:(0,r.readonly)(o)}}async function S(e,t){let n=[];for(let t=0;t<e.length;t++){let r=e[t].webkitGetAsEntry?.();r&&n.push(r)}if(n.length>0)return(await Promise.all(n.map(C))).flat();let r=[],i=t?.files;if(i)for(let e=0;e<i.length;e++)r.push(i[e]);return r}async function C(e){if(e.isFile)return new Promise(t=>{e.file(e=>t([e]),()=>t([]))});if(e.isDirectory){let t=e.createReader(),n=[];for(;;){let e=await new Promise(e=>{t.readEntries(t=>e(t),()=>e([]))});if(e.length===0)break;n.push(...e)}return(await Promise.all(n.map(C))).flat()}return[]}function w(e,t){if(!t)return e;let n=t.split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean);return n.length===0?e:e.filter(e=>n.some(t=>{if(t.startsWith(`.`))return e.name.toLowerCase().endsWith(t);if(t.endsWith(`/*`)){let n=t.replace(`/*`,``);return e.type.toLowerCase().startsWith(`${n}/`)}return e.type.toLowerCase()===t}))}const T=[`tabindex`,`aria-disabled`,`onKeydown`],E=[`accept`,`multiple`,`webkitdirectory`,`disabled`],D={class:`upload-area__default`},O={class:`upload-area__text`},k={key:0},A={key:1},j={key:0,class:`upload-area__tip`},M=(0,r.defineComponent)({__name:`UploadArea`,props:{accept:{default:``},multiple:{type:Boolean,default:!1},directory:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},pasteable:{type:Boolean,default:!1},tip:{default:``}},emits:[`files`],setup(e,{expose:n,emit:i}){let a=e,o=i,s=(0,r.ref)(),c=(0,r.ref)(),{isDragOver:l}=x(s,(0,r.computed)(()=>a.draggable&&!a.disabled),(0,r.computed)(()=>a.pasteable&&!a.disabled),(0,r.computed)(()=>a.accept),e=>o(`files`,e));function u(){a.disabled||c.value?.click()}function d(e){let t=e.target,n=a.disabled?[]:w(Array.from(t.files??[]),a.accept);n.length>0&&o(`files`,n),t.value=``}return n({triggerSelect:u}),(n,i)=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{ref_key:`areaRef`,ref:s,class:(0,r.normalizeClass)([`upload-area`,{"upload-area--drag-over":(0,r.unref)(l),"upload-area--disabled":e.disabled}]),role:`button`,tabindex:e.disabled?-1:0,"aria-disabled":e.disabled,onClick:u,onKeydown:[(0,r.withKeys)((0,r.withModifiers)(u,[`prevent`]),[`enter`]),(0,r.withKeys)((0,r.withModifiers)(u,[`prevent`]),[`space`])]},[(0,r.createElementVNode)(`input`,{ref_key:`inputRef`,ref:c,type:`file`,class:`upload-area__input`,accept:e.accept,multiple:e.multiple,webkitdirectory:e.directory||void 0,disabled:e.disabled,onClick:i[0]||=(0,r.withModifiers)(()=>{},[`stop`]),onChange:d},null,40,E),(0,r.renderSlot)(n.$slots,`default`,{},()=>[(0,r.createElementVNode)(`div`,D,[(0,r.createVNode)(t.t,{name:(0,r.unref)(l)?`mdi:cloud-download-outline`:`mdi:cloud-upload-outline`,class:`upload-area__icon`},null,8,[`name`]),(0,r.createElementVNode)(`div`,O,[(0,r.unref)(l)?((0,r.openBlock)(),(0,r.createElementBlock)(`span`,k,`释放文件到此处`)):((0,r.openBlock)(),(0,r.createElementBlock)(`span`,A,[i[4]||=(0,r.createTextVNode)(` 点击或拖拽文件到此区域上传 `,-1),e.pasteable?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:0},[i[1]||=(0,r.createTextVNode)(` ,支持 `,-1),i[2]||=(0,r.createElementVNode)(`kbd`,null,`Ctrl+V`,-1),i[3]||=(0,r.createTextVNode)(` 粘贴 `,-1)],64)):(0,r.createCommentVNode)(`v-if`,!0)]))]),e.tip?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,j,(0,r.toDisplayString)(e.tip),1)):(0,r.createCommentVNode)(`v-if`,!0)])],!0)],42,T))}});var N=n.t(M,[[`__scopeId`,`data-v-705892ab`]]);const P={class:`file-list__thumb`},F=[`src`,`alt`],I={class:`file-list__info`},L={class:`file-list__name`},R={class:`file-list__meta`},z={class:`file-list__size`},B={key:0,class:`file-list__instant`},V={key:1,class:`file-list__chunk-info`},H={key:2,class:`file-list__error`},U={class:`file-list__actions`},W=(0,r.defineComponent)({__name:`FileList`,props:{fileList:{},showThumbnail:{type:Boolean}},emits:[`remove`,`retry`],setup(e,{emit:n}){let a=n;return(n,o)=>((0,r.openBlock)(),(0,r.createBlock)(r.TransitionGroup,{name:`file-list`,tag:`div`,class:`file-list`},{default:(0,r.withCtx)(()=>[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(e.fileList,n=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:n.uid,class:(0,r.normalizeClass)([`file-list__item`,`file-list__item--${n.status}`])},[(0,r.createCommentVNode)(` 缩略图 / 图标 `),(0,r.createElementVNode)(`div`,P,[e.showThumbnail&&n.thumbUrl?((0,r.openBlock)(),(0,r.createElementBlock)(`img`,{key:0,src:n.thumbUrl,alt:n.name,class:`file-list__thumb-img`},null,8,F)):((0,r.openBlock)(),(0,r.createBlock)(t.t,{key:1,name:(0,r.unref)(u)(n.type),class:`file-list__thumb-icon`},null,8,[`name`]))]),(0,r.createCommentVNode)(` 文件信息 `),(0,r.createElementVNode)(`div`,I,[(0,r.createElementVNode)(`div`,L,[(0,r.createVNode)((0,r.unref)(i.NEllipsis),{"line-clamp":1},{default:(0,r.withCtx)(()=>[(0,r.createTextVNode)((0,r.toDisplayString)(n.name),1)]),_:2},1024)]),(0,r.createElementVNode)(`div`,R,[(0,r.createElementVNode)(`span`,z,(0,r.toDisplayString)((0,r.unref)(d)(n.size)),1),(0,r.createVNode)((0,r.unref)(i.NTag),{type:(0,r.unref)(c)[n.status]||`default`,size:`tiny`,bordered:!1},{default:(0,r.withCtx)(()=>[(0,r.createTextVNode)((0,r.toDisplayString)((0,r.unref)(s)[n.status]||n.status),1)]),_:2},1032,[`type`]),n.status===`instant`?((0,r.openBlock)(),(0,r.createElementBlock)(`span`,B,` ⚡ `)):(0,r.createCommentVNode)(`v-if`,!0)]),(0,r.createCommentVNode)(` 进度条 `),n.status===`uploading`||n.status===`hashing`?((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i.NProgress),{key:0,percentage:n.percent,height:4,"border-radius":2,"show-indicator":!1,status:n.status===`hashing`?`info`:`success`},null,8,[`percentage`,`status`])):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 分片进度描述 `),n.chunkProgress&&n.status===`uploading`?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,V,` 分片 `+(0,r.toDisplayString)(n.chunkProgress.uploadedChunks)+`/`+(0,r.toDisplayString)(n.chunkProgress.totalChunks),1)):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 错误信息 `),n.status===`error`&&n.error?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,H,(0,r.toDisplayString)(n.error),1)):(0,r.createCommentVNode)(`v-if`,!0)]),(0,r.createCommentVNode)(` 操作按钮 `),(0,r.createElementVNode)(`div`,U,[n.status===`error`?((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i.NButton),{key:0,text:``,type:`warning`,size:`tiny`,"aria-label":`重试上传`,onClick:e=>a(`retry`,n.uid)},{icon:(0,r.withCtx)(()=>[(0,r.createVNode)(t.t,{name:`mdi:refresh`})]),_:1},8,[`onClick`])):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createVNode)((0,r.unref)(i.NButton),{text:``,type:`error`,size:`tiny`,"aria-label":`移除文件`,onClick:e=>a(`remove`,n.uid)},{icon:(0,r.withCtx)(()=>[(0,r.createVNode)(t.t,{name:`mdi:close`})]),_:1},8,[`onClick`])])],2))),128))]),_:1}))}});var G=n.t(W,[[`__scopeId`,`data-v-04f26012`]]);const K={key:0,class:`image-preview`},q=[`src`,`alt`],J={class:`image-preview__overlay`},Y={key:0,class:`image-preview__progress`},X={class:`image-preview__actions`},Z={class:`image-preview__name`},Q=(0,r.defineComponent)({__name:`ImagePreview`,props:{fileList:{}},emits:[`remove`,`retry`],setup(e,{emit:n}){let a=e,o=n,s=(0,r.computed)(()=>a.fileList.filter(e=>e.type?.startsWith(`image/`)));return(e,n)=>s.value.length>0?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,K,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(s.value,e=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:e.uid,class:(0,r.normalizeClass)([`image-preview__item`,`image-preview__item--${e.status}`])},[e.thumbUrl?((0,r.openBlock)(),(0,r.createElementBlock)(`img`,{key:0,src:e.thumbUrl,alt:e.name,class:`image-preview__img`},null,8,q)):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 遮罩层 `),(0,r.createElementVNode)(`div`,J,[(0,r.createCommentVNode)(` 上传中进度 `),e.status===`uploading`||e.status===`hashing`?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,Y,[(0,r.createVNode)((0,r.unref)(i.NProgress),{type:`circle`,percentage:e.percent,"stroke-width":3,style:{width:`40px`}},null,8,[`percentage`])])):e.status===`success`||e.status===`instant`?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:1},[(0,r.createCommentVNode)(` 状态图标 `),(0,r.createVNode)(t.t,{name:`mdi:check-circle`,class:`image-preview__status-icon image-preview__status-icon--success`})],2112)):e.status===`error`?((0,r.openBlock)(),(0,r.createBlock)(t.t,{key:2,name:`mdi:alert-circle`,class:`image-preview__status-icon image-preview__status-icon--error`})):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 操作 `),(0,r.createElementVNode)(`div`,X,[e.status===`error`?((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i.NButton),{key:0,circle:``,size:`tiny`,type:`warning`,"aria-label":`重试上传`,onClick:t=>o(`retry`,e.uid)},{icon:(0,r.withCtx)(()=>[(0,r.createVNode)(t.t,{name:`mdi:refresh`})]),_:1},8,[`onClick`])):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createVNode)((0,r.unref)(i.NButton),{circle:``,size:`tiny`,type:`error`,"aria-label":`移除文件`,onClick:t=>o(`remove`,e.uid)},{icon:(0,r.withCtx)(()=>[(0,r.createVNode)(t.t,{name:`mdi:close`})]),_:1},8,[`onClick`])])]),(0,r.createCommentVNode)(` 文件名 `),(0,r.createElementVNode)(`div`,Z,[(0,r.createVNode)((0,r.unref)(i.NEllipsis),{"line-clamp":1},{default:(0,r.withCtx)(()=>[(0,r.createTextVNode)((0,r.toDisplayString)(e.name),1)]),_:2},1024)])],2))),128))])):(0,r.createCommentVNode)(`v-if`,!0)}});var $=n.t(Q,[[`__scopeId`,`data-v-32d39ae9`]]);const ee={class:`c-upload`},te={key:0,class:`c-upload__total-progress`},ne={class:`c-upload__total-label`},re=(0,r.defineComponent)({__name:`index`,props:{action:{default:``},headers:{default:()=>({})},data:{default:()=>({})},multiple:{type:Boolean,default:!1},directory:{type:Boolean,default:!1},accept:{default:``},maxSize:{default:0},maxCount:{default:0},disabled:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},pasteable:{type:Boolean,default:!1},chunked:{type:Boolean,default:!1},chunkSize:{default:o},concurrency:{default:3},showFileList:{type:Boolean,default:!0},listType:{default:`text`},showThumbnail:{type:Boolean,default:!0},customRequest:{},instantCheck:{},uploadedChunksQuery:{},mergeChunks:{},beforeUpload:{},tip:{default:``},defaultFileList:{default:()=>[]}},emits:[`change`,`success`,`error`,`progress`,`remove`,`finish`,`exceed`],setup(e,{expose:t,emit:n}){let a=e,o=n,s=(0,r.ref)(),{fileList:c,totalPercent:l,addFiles:u,removeFile:d,clearAll:f,startUpload:p,pauseAll:m,resumeAll:h,retryFile:g,processFile:_,getSuccessList:v}=b(a),y=(0,r.computed)(()=>c.value.some(e=>e.status===`uploading`||e.status===`hashing`||e.status===`validating`)),x=e=>({...e}),S=()=>c.value.map(x);function C(e){let t=Math.max(0,Math.trunc(Number(a.maxCount)||0));if(t>0&&c.value.length+e.length>t){o(`exceed`,e,S());let n=t-c.value.length;if(n<=0)return;e=e.slice(0,n)}let n=u(e);o(`change`,S()),n.forEach(e=>void _(e))}function w(e){let t=c.value.find(t=>t.uid===e);t&&(o(`remove`,x(t)),d(e),o(`change`,S()))}function T(e){g(e)}let E=new Map,D=!1;return(0,r.watch)(c,e=>{let t=new Set(e.map(e=>e.uid));E.forEach((e,n)=>{t.has(n)||E.delete(n)}),e.forEach(e=>{let t=E.get(e.uid);t&&t.percent!==e.percent&&o(`progress`,x(e),e.percent),t&&t.status!==e.status&&(e.status===`success`||e.status===`instant`)&&o(`success`,x(e),e.response),t&&t.status!==`error`&&e.status===`error`&&o(`error`,x(e),Error(e.error||`上传失败`)),E.set(e.uid,{status:e.status,percent:e.percent})}),e.length>0&&e.every(e=>e.status===`success`||e.status===`instant`||e.status===`error`)?(D||o(`finish`,S()),D=!0):D=!1,o(`change`,S())},{deep:!0}),t({selectFiles:()=>s.value?.triggerSelect(),startUpload:p,pauseAll:m,resumeAll:h,clearAll:()=>{f(),o(`change`,S())},removeFile:e=>{w(e)},retryFile:g,getFileList:S,getSuccessList:()=>v().map(x),get totalPercent(){return l.value}}),(e,t)=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,ee,[(0,r.createCommentVNode)(` 上传区域 `),(0,r.createVNode)(N,{ref_key:`uploadAreaRef`,ref:s,accept:a.accept,multiple:a.multiple,directory:a.directory,disabled:a.disabled,draggable:a.draggable,pasteable:a.pasteable,tip:a.tip,onFiles:C},{default:(0,r.withCtx)(()=>[(0,r.renderSlot)(e.$slots,`area`,{},void 0,!0)]),_:3},8,[`accept`,`multiple`,`directory`,`disabled`,`draggable`,`pasteable`,`tip`]),(0,r.createCommentVNode)(` 总进度条 `),y.value?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,te,[(0,r.createElementVNode)(`div`,ne,[t[0]||=(0,r.createElementVNode)(`span`,null,`总进度`,-1),(0,r.createElementVNode)(`span`,null,(0,r.toDisplayString)((0,r.unref)(l))+`%`,1)]),(0,r.createVNode)((0,r.unref)(i.NProgress),{percentage:(0,r.unref)(l),height:6,"border-radius":3,"show-indicator":!1,status:`success`},null,8,[`percentage`])])):(0,r.createCommentVNode)(`v-if`,!0),(0,r.createCommentVNode)(` 图片预览模式 `),a.listType===`image`?((0,r.openBlock)(),(0,r.createBlock)($,{key:1,"file-list":(0,r.unref)(c),onRemove:w,onRetry:T},null,8,[`file-list`])):a.showFileList&&(0,r.unref)(c).length>0?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:2},[(0,r.createCommentVNode)(` 文件列表模式 `),(0,r.createVNode)(G,{"file-list":(0,r.unref)(c),"show-thumbnail":a.showThumbnail,onRemove:w,onRetry:T},null,8,[`file-list`,`show-thumbnail`])],2112)):(0,r.createCommentVNode)(`v-if`,!0)]))}});var ie=n.t(re,[[`__scopeId`,`data-v-58ca8e42`]]);Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return ie}});
|