@robot-admin/naive-ui-components 0.19.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +5 -5
  3. package/README_EN.md +5 -5
  4. package/SECURITY.md +39 -0
  5. package/dist/C_AntV.css +31 -31
  6. package/dist/C_AntV2.cjs +1 -1
  7. package/dist/C_AntV2.js +1 -1
  8. package/dist/C_Breadcrumb.css +308 -20
  9. package/dist/C_Breadcrumb.d.cts +2 -2
  10. package/dist/C_Breadcrumb.d.ts +2 -2
  11. package/dist/C_Breadcrumb2.cjs +1 -1
  12. package/dist/C_Breadcrumb2.js +1 -1
  13. package/dist/C_Chat.css +90 -90
  14. package/dist/C_Chat2.cjs +1 -1
  15. package/dist/C_Chat2.js +1 -1
  16. package/dist/C_CollapsePanel2.cjs +1 -1
  17. package/dist/C_CollapsePanel2.js +1 -1
  18. package/dist/C_Draggable.css +53 -53
  19. package/dist/C_Draggable2.cjs +1 -1
  20. package/dist/C_Draggable2.js +1 -1
  21. package/dist/C_FilePreview.css +98 -98
  22. package/dist/C_FilePreview.d.cts +2 -2
  23. package/dist/C_FilePreview.d.ts +2 -2
  24. package/dist/C_FilePreview2.cjs +1 -1
  25. package/dist/C_FilePreview2.js +1 -1
  26. package/dist/C_Form.base.css +9 -9
  27. package/dist/C_Form.css +9 -9
  28. package/dist/C_FormSearch.css +52 -52
  29. package/dist/C_FormSearch2.cjs +1 -1
  30. package/dist/C_FormSearch2.js +1 -1
  31. package/dist/C_Language.css +2 -2
  32. package/dist/C_Language2.cjs +1 -1
  33. package/dist/C_Language2.js +1 -1
  34. package/dist/C_Login.css +79 -79
  35. package/dist/C_Login2.cjs +1 -1
  36. package/dist/C_Login2.js +1 -1
  37. package/dist/C_Menu.css +1 -1
  38. package/dist/C_Menu.d.cts +2 -2
  39. package/dist/C_Menu.d.ts +2 -2
  40. package/dist/C_Menu2.cjs +1 -1
  41. package/dist/C_Menu2.js +1 -1
  42. package/dist/C_NotificationCenter.css +124 -124
  43. package/dist/C_NotificationCenter.d.cts +2 -2
  44. package/dist/C_NotificationCenter.d.ts +2 -2
  45. package/dist/C_NotificationCenter2.cjs +1 -1
  46. package/dist/C_NotificationCenter2.js +1 -1
  47. package/dist/C_Skeleton.css +2 -2
  48. package/dist/C_Skeleton2.cjs +1 -1
  49. package/dist/C_Skeleton2.js +1 -1
  50. package/dist/C_SplitPane.css +66 -66
  51. package/dist/C_SplitPane2.cjs +1 -1
  52. package/dist/C_SplitPane2.js +1 -1
  53. package/dist/C_Table.base.css +9 -9
  54. package/dist/C_Table.css +9 -9
  55. package/dist/C_Table.d.ts +1 -0
  56. package/dist/C_Theme2.cjs +1 -1
  57. package/dist/C_Theme2.js +1 -1
  58. package/dist/C_Timeline.css +46 -46
  59. package/dist/C_Timeline2.cjs +1 -1
  60. package/dist/C_Timeline2.js +1 -1
  61. package/dist/C_Transfer.css +26 -26
  62. package/dist/C_Transfer2.cjs +1 -1
  63. package/dist/C_Transfer2.js +1 -1
  64. package/dist/C_Tree.css +23 -23
  65. package/dist/C_Tree.d.ts +1 -0
  66. package/dist/C_Tree2.cjs +1 -1
  67. package/dist/C_Tree2.js +1 -1
  68. package/dist/C_Upload2.cjs +1 -1
  69. package/dist/C_Upload2.js +1 -1
  70. package/dist/C_VideoPlayer.d.cts +2 -2
  71. package/dist/C_VideoPlayer.d.ts +2 -2
  72. package/dist/C_VideoPlayer2.cjs +2 -2
  73. package/dist/C_VideoPlayer2.js +2 -2
  74. package/dist/C_WaterFall.css +31 -29
  75. package/dist/C_WaterFall2.cjs +1 -1
  76. package/dist/C_WaterFall2.js +1 -1
  77. package/dist/C_WorkFlow.css +111 -111
  78. package/dist/C_WorkFlow2.cjs +1 -1
  79. package/dist/C_WorkFlow2.js +1 -1
  80. package/dist/config.cjs +1 -0
  81. package/dist/config.d.cts +8 -0
  82. package/dist/config.d.ts +8 -0
  83. package/dist/config.js +1 -0
  84. package/dist/constants3.d.cts +34 -11
  85. package/dist/constants3.d.ts +34 -11
  86. package/dist/constants4.d.cts +14 -3
  87. package/dist/constants4.d.ts +14 -3
  88. package/dist/constants5.d.cts +24 -20
  89. package/dist/constants5.d.ts +24 -20
  90. package/dist/data.d.cts +6 -6
  91. package/dist/data.d.ts +6 -6
  92. package/dist/dateRange.d.cts +2 -0
  93. package/dist/dateRange.d.ts +2 -0
  94. package/dist/feedback.cjs +1 -1
  95. package/dist/feedback.js +1 -1
  96. package/dist/helpers.cjs +1 -1
  97. package/dist/helpers.js +1 -1
  98. package/dist/index.cjs +1 -1
  99. package/dist/index.d.cts +8 -7
  100. package/dist/index.d.ts +9 -7
  101. package/dist/index.js +1 -1
  102. package/dist/index.vue.d.cts +4 -4
  103. package/dist/index.vue.d.ts +4 -4
  104. package/dist/index10.vue.d.cts +5 -5
  105. package/dist/index10.vue.d.ts +3 -3
  106. package/dist/index11.vue.d.cts +3 -3
  107. package/dist/index12.vue.d.ts +2 -2
  108. package/dist/index13.vue.d.cts +2 -2
  109. package/dist/index13.vue.d.ts +6 -6
  110. package/dist/index14.vue.d.cts +6 -6
  111. package/dist/index14.vue.d.ts +0 -1
  112. package/dist/index15.vue.d.cts +0 -1
  113. package/dist/index16.vue.d.ts +2 -2
  114. package/dist/index17.vue.d.cts +2 -2
  115. package/dist/index17.vue.d.ts +1 -1
  116. package/dist/index18.vue.d.cts +1 -1
  117. package/dist/index18.vue.d.ts +44 -40
  118. package/dist/index19.vue.d.cts +2 -2
  119. package/dist/index19.vue.d.ts +2 -2
  120. package/dist/index2.vue.d.cts +1 -1
  121. package/dist/index2.vue.d.ts +1 -1
  122. package/dist/index20.vue.d.cts +1 -1
  123. package/dist/index20.vue.d.ts +1 -1
  124. package/dist/index21.vue.d.cts +1 -1
  125. package/dist/index21.vue.d.ts +1 -1
  126. package/dist/index22.vue.d.cts +2 -2
  127. package/dist/index22.vue.d.ts +2 -2
  128. package/dist/index25.vue.d.cts +2 -3
  129. package/dist/index25.vue.d.ts +2 -3
  130. package/dist/index26.vue.d.cts +3 -3
  131. package/dist/index26.vue.d.ts +3 -3
  132. package/dist/index3.vue.d.cts +4 -4
  133. package/dist/index3.vue.d.ts +4 -4
  134. package/dist/index4.vue.d.cts +44 -40
  135. package/dist/index4.vue.d.ts +26 -12
  136. package/dist/index5.vue.d.cts +26 -12
  137. package/dist/index6.vue.d.ts +0 -2
  138. package/dist/index7.vue.d.cts +0 -2
  139. package/dist/index8.vue.d.ts +4 -4
  140. package/dist/index9.vue.d.cts +4 -4
  141. package/dist/index9.vue.d.ts +5 -5
  142. package/dist/mapUtils.d.cts +3 -3
  143. package/dist/mapUtils.d.ts +3 -3
  144. package/dist/presets.d.cts +1 -1
  145. package/dist/presets.d.ts +1 -1
  146. package/dist/public.d.ts +3 -1
  147. package/dist/style.css +1154 -864
  148. package/dist/types.d.cts +3 -1
  149. package/dist/useCalendarEvents.d.cts +1 -1
  150. package/dist/useCalendarEvents.d.ts +1 -1
  151. package/dist/useCollapsePanel.d.cts +3 -3
  152. package/dist/useCollapsePanel.d.ts +3 -3
  153. package/dist/useComponentLocale.cjs +1 -1
  154. package/dist/useComponentLocale.js +1 -1
  155. package/dist/useCropperCore.d.cts +4 -4
  156. package/dist/useCropperCore.d.ts +4 -4
  157. package/dist/useDraggableLayout.d.cts +1 -0
  158. package/dist/useDraggableLayout.d.ts +1 -0
  159. package/dist/useEdgeInteraction.d.cts +2 -2
  160. package/dist/useEdgeInteraction.d.ts +2 -2
  161. package/dist/useFullscreen.d.cts +41 -23
  162. package/dist/useFullscreen.d.ts +41 -23
  163. package/dist/useInfiniteScroll.d.cts +6 -4
  164. package/dist/useInfiniteScroll.d.ts +6 -4
  165. package/dist/useQRCode.d.cts +4 -4
  166. package/dist/useQRCode.d.ts +4 -4
  167. package/dist/useSignatureHistory.d.cts +2 -2
  168. package/dist/useSignatureHistory.d.ts +2 -2
  169. package/dist/useSplitResize.d.cts +6 -7
  170. package/dist/useSplitResize.d.ts +6 -7
  171. package/dist/useTableQuery.cjs +1 -1
  172. package/dist/useTableQuery.d.cts +6 -10
  173. package/dist/useTableQuery.d.ts +6 -10
  174. package/dist/useTableQuery.js +1 -1
  175. package/dist/useWorkflowValidation.d.cts +11 -3
  176. package/dist/useWorkflowValidation.d.ts +11 -3
  177. package/dist/verification.d.cts +1 -1
  178. package/dist/verification.d.ts +1 -1
  179. package/docs/architecture.en.md +3 -1
  180. package/docs/architecture.md +3 -1
  181. package/docs/guides/usage.en.md +22 -0
  182. package/docs/guides/usage.md +73 -0
  183. package/package.json +27 -10
  184. package/dist/context.cjs +0 -1
  185. package/dist/context.js +0 -1
@@ -1 +1 @@
1
- const e=require(`./chunk.cjs`),t=require(`./C_Icon2.cjs`),n=require(`./export-helper.cjs`),r=require(`./html.cjs`);let i=require(`vue`),a=require(`naive-ui`),o=require(`xlsx`);o=e.t(o);let s=require(`mammoth`);s=e.t(s);const c={pdf:`pdf`,doc:`word`,docx:`word`,xls:`excel`,xlsx:`excel`},l={pdf:{tagType:`error`,icon:`ic:outline-picture-as-pdf`,color:`#dc2626`},word:{tagType:`info`,icon:`ic:outline-description`,color:`#2563eb`},excel:{tagType:`success`,icon:`ic:outline-grid-on`,color:`#16a34a`},unknown:{tagType:`default`,icon:`ic:outline-insert-drive-file`,color:`#6b7280`}},u={pdf:{min:.5,max:3,step:.25,default:1},word:{min:50,max:200,step:10,default:100}},d=[20,50,100,200],f=[`fullscreenchange`,`webkitfullscreenchange`,`mozfullscreenchange`,`MSFullscreenChange`],p=e=>{try{let t=e.split(`/`).pop()||e.split(`\\`).pop();if(t?.includes(`.`)){let n=decodeURIComponent(t.split(`?`)[0]);if(n&&n!==e)return n}}catch(e){console.warn(`解析URL文件名失败:`,e)}return`未知文件`},m=e=>{if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**+r).toFixed(1))+` `+n[r]},h=e=>{if(!e||e===`未知文件`)return`unknown`;let t=e.toLowerCase().split(`.`).pop();return t&&c[t]||`unknown`},g=e=>l[e]||l.unknown,_=(e,t)=>n=>{let{min:r,max:i,step:a,default:o}=t;switch(n){case`reset`:e.value=o;break;case`in`:e.value<i&&(e.value+=a);break;case`out`:e.value>r&&(e.value-=a);break}},v=e=>{let t=``;for(;e>=0;)t=String.fromCharCode(65+e%26)+t,e=Math.floor(e/26)-1;return t},y=e=>{if(e==null||e===``)return``;let t=String(e).trim();if(!isNaN(Number(t))&&t!==``&&t.length<15){let e=Number(t);return Number.isInteger(e)?e.toLocaleString():e.toLocaleString(void 0,{maximumFractionDigits:2})}return t},b=e=>{if(e==null||e===``)return`cell-empty`;let t=String(e).trim();return!isNaN(Number(t))&&t!==``?`cell-number`:t.match(/[■▬▪▫─━]/)?`cell-gantt`:t.match(/^\d{4}[-/]\d{2}[-/]\d{2}/)||t.match(/^\d{2}[-/]\d{2}[-/]\d{4}/)?`cell-date`:[`true`,`false`].includes(t.toLowerCase())?`cell-boolean`:t.length>20?`cell-text cell-long`:`cell-text`},x=(e,t)=>{let{c:n,r}=o.utils.decode_range(e[`!ref`]||`A1:A1`).e,i=Array.from({length:n+1},(t,n)=>{let r=e[o.utils.encode_cell({r:0,c:n})],i=r?String(r.v??``).trim():`列${n+1}`;return{title:i||`列${n+1}`,key:`col_${n}`,width:Math.min(Math.max(i.length*12,80),200)}}),a=new Map;return t.forEach(({s:{r:e,c:t},e:{r:n,c:r}})=>{for(let i=e;i<=n;i++)for(let o=t;o<=r;o++)a.set(`${i}-${o}`,{isMain:i===e&&o===t,rowspan:n-e+1,colspan:r-t+1})}),{data:Array.from({length:r+1},(t,r)=>{let i={};for(let t=0;t<=n;t++){let n=e[o.utils.encode_cell({r,c:t})],s=a.get(`${r}-${t}`);i[`col_${t}`]={value:n?n.v??``:``,merged:!!s,hidden:s&&!s.isMain,rowspan:s?.isMain?s.rowspan:1,colspan:s?.isMain?s.colspan:1}}return i}),columns:i}};async function S(e){return{url:URL.createObjectURL(e)+`#toolbar=1&navpanes=1&scrollbar=1&view=FitH`,totalPages:1}}async function C(e){let t=await e.arrayBuffer(),n=await s.default.convertToHtml({arrayBuffer:t,styleMap:[`p[style-name='Heading 1'] => h1:fresh`,`p[style-name='Heading 2'] => h2:fresh`,`p[style-name='Heading 3'] => h3:fresh`,`p[style-name='Title'] => h1.title:fresh`]}),i=[],a=document.createElement(`div`);a.innerHTML=r.t(n.value);let o=a.querySelectorAll(`h1, h2, h3, h4, h5, h6`);return Array.from(o).forEach((e,t)=>{let n=`heading-${t}`,r=parseInt(e.tagName.charAt(1)),a=e.textContent||``;e.id=n,i.push({id:n,text:a,level:r})}),{content:a.innerHTML,headings:i}}async function w(e){let t=await e.arrayBuffer(),n=o.read(t,{type:`array`,cellStyles:!0,cellFormula:!0,cellDates:!0});if(!n.SheetNames.length)throw Error(`Excel文件中没有找到工作表`);return{sheets:n.SheetNames.map(e=>{let t=n.Sheets[e],r=t[`!merges`]||[],{data:i,columns:a}=x(t,r);return{name:e,data:i,merges:r,columns:a}})}}const T={class:`file-container pdf-container`},E={class:`file-toolbar`},D={class:`file-viewer`},O=[`src`],k=(0,i.defineComponent)({name:`FilePreviewPdfViewer`,__name:`index`,props:{pdfUrl:{},totalPages:{}},setup(e){return(t,n)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,T,[(0,i.createElementVNode)(`div`,E,[n[1]||=(0,i.createElementVNode)(`span`,null,`PDF 阅读器 · 翻页、缩放与打印由浏览器提供`,-1),e.pdfUrl?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NButton),{key:0,tag:`a`,href:e.pdfUrl,target:`_blank`,rel:`noopener noreferrer`,size:`small`},{default:(0,i.withCtx)(()=>[...n[0]||=[(0,i.createTextVNode)(`在新标签页打开`,-1)]]),_:1},8,[`href`])):(0,i.createCommentVNode)(`v-if`,!0)]),(0,i.createElementVNode)(`div`,D,[e.pdfUrl?((0,i.openBlock)(),(0,i.createElementBlock)(`iframe`,{key:0,src:e.pdfUrl,title:`PDF预览`,class:`pdf-frame`},null,8,O)):(0,i.createCommentVNode)(`v-if`,!0)])]))}});var A=n.t(k,[[`__scopeId`,`data-v-db027bb4`]]);const j={class:`file-container word-container`},M={class:`file-toolbar`},N={class:`flex gap-2 items-center`},P={class:`text-sm text-gray-600 min-w-12 text-center`},F={class:`word-layout`},I={class:`word-main`},ee={key:0,class:`word-outline`},te={class:`outline-content`},ne=[`onClick`],re={class:`word-content`},ie=[`innerHTML`],ae=(0,i.defineComponent)({__name:`index`,props:{content:{},headings:{}},setup(e){let n=(0,i.ref)(!0),r=(0,i.ref)(100),o=_(r,u.word),s=e=>{document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`start`})};return(c,l)=>{let u=t.t;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,j,[(0,i.createElementVNode)(`div`,M,[(0,i.createElementVNode)(`div`,N,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:l[0]||=e=>n.value=!n.value},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-list`})]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)(n.value?`隐藏`:`显示`)+`目录 `,1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NDivider),{vertical:``}),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,disabled:r.value<=50,onClick:l[1]||=e=>(0,i.unref)(o)(`out`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-zoom-out`})]),_:1},8,[`disabled`]),(0,i.createElementVNode)(`span`,P,(0,i.toDisplayString)(r.value)+`% `,1),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,disabled:r.value>=200,onClick:l[2]||=e=>(0,i.unref)(o)(`in`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-zoom-in`})]),_:1},8,[`disabled`]),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:l[3]||=e=>(0,i.unref)(o)(`reset`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-fit-screen`})]),default:(0,i.withCtx)(()=>[l[4]||=(0,i.createTextVNode)(` 重置 `,-1)]),_:1})])]),(0,i.createElementVNode)(`div`,F,[(0,i.createElementVNode)(`div`,I,[(0,i.createCommentVNode)(` 侧边栏目录 `),n.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ee,[l[5]||=(0,i.createElementVNode)(`div`,{class:`outline-header`},[(0,i.createElementVNode)(`h3`,{class:`text-sm font-semibold`},`文档目录`)],-1),(0,i.createElementVNode)(`div`,te,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.headings,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t,class:(0,i.normalizeClass)([`outline-item`,`level-${e.level}`]),onClick:t=>s(e.id)},(0,i.toDisplayString)(e.text),11,ne))),128))])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 主要内容区域 `),(0,i.createElementVNode)(`div`,re,[(0,i.createElementVNode)(`div`,{class:`word-document`,style:(0,i.normalizeStyle)({transform:`scale(${r.value/100})`,transformOrigin:`top center`}),innerHTML:e.content},null,12,ie)])])])])}}});var L=n.t(ae,[[`__scopeId`,`data-v-dae08a5f`]]);const R={class:`file-container excel-container`},z={class:`file-toolbar`},B={class:`flex justify-between items-center`},V={class:`flex gap-2 items-center`},H={key:1,class:`text-sm text-gray-600`},U={class:`flex gap-2 items-center`},W={class:`excel-viewer`},G={key:0,class:`excel-info`},K={class:`excel-table-container`},q={key:0,class:`excel-table`},J={class:`header-content`},oe={class:`column-letter`},se={class:`column-title`},ce={class:`row-number`},le=[`rowspan`,`colspan`,`title`],ue={key:1,class:`excel-empty`},de={key:0,class:`excel-pagination`},fe=(0,i.defineComponent)({__name:`index`,props:{sheets:{}},emits:[`reload`],setup(e){let n=e,r=(0,i.ref)(``),o=(0,i.ref)(!1),s=(0,i.ref)(1),c=(0,i.ref)(50),l=(0,i.ref)([]),u=(0,i.ref)([]),f=(0,i.computed)(()=>Math.ceil(l.value.length/c.value)),p=(0,i.computed)(()=>{let e=(s.value-1)*c.value;return l.value.slice(e,e+c.value)}),m=e=>{c.value=e,s.value=1},h=e=>{let t=n.sheets.find(t=>t.name===e);t&&(l.value=t.data,u.value=t.columns,s.value=1)};return(0,i.watch)(r,e=>{h(e)}),(0,i.watch)(()=>n.sheets,e=>{if(e.length>0){let[t]=e;r.value=t.name,l.value=t.data,u.value=t.columns,s.value=1}},{immediate:!0}),(n,h)=>{let g=t.t;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,R,[(0,i.createCommentVNode)(` 工具栏 `),(0,i.createElementVNode)(`div`,z,[(0,i.createElementVNode)(`div`,B,[(0,i.createElementVNode)(`div`,V,[e.sheets.length>1?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NTabs),{key:0,value:r.value,"onUpdate:value":h[0]||=e=>r.value=e,type:`card`,size:`small`},{default:(0,i.withCtx)(()=>[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.sheets,e=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NTabPane),{key:e.name,name:e.name,tab:e.name},null,8,[`name`,`tab`]))),128))]),_:1},8,[`value`])):((0,i.openBlock)(),(0,i.createElementBlock)(`span`,H,` 工作表: `+(0,i.toDisplayString)(r.value),1))]),(0,i.createElementVNode)(`div`,U,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:h[1]||=e=>o.value=!o.value},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(g,{name:`ic:outline-format-paint`})]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)(o.value?`紧凑视图`:`完整格式`),1)]),_:1})])])]),(0,i.createElementVNode)(`div`,W,[(0,i.createCommentVNode)(` 信息面板 `),l.value.length>0?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,G,[(0,i.createVNode)((0,i.unref)(a.NText),{depth:`3`,class:`text-sm`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` 当前工作表: `+(0,i.toDisplayString)(r.value)+` | 总行数: `+(0,i.toDisplayString)(l.value.length)+` | 总列数: `+(0,i.toDisplayString)(u.value.length)+` | 当前页: `+(0,i.toDisplayString)(s.value)+`/`+(0,i.toDisplayString)(f.value),1)]),_:1})])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 表格 `),(0,i.createElementVNode)(`div`,K,[(0,i.createElementVNode)(`div`,{class:(0,i.normalizeClass)([`excel-table-wrapper`,{"simple-mode":!o.value}])},[l.value.length>0?((0,i.openBlock)(),(0,i.createElementBlock)(`table`,q,[(0,i.createElementVNode)(`thead`,null,[(0,i.createElementVNode)(`tr`,null,[h[4]||=(0,i.createElementVNode)(`th`,{class:`row-number`},`行号`,-1),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(u.value,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`th`,{key:e.key,class:`excel-header`,style:(0,i.normalizeStyle)({minWidth:e.width+`px`})},[(0,i.createElementVNode)(`div`,J,[(0,i.createElementVNode)(`span`,oe,(0,i.toDisplayString)((0,i.unref)(v)(t)),1),(0,i.createElementVNode)(`span`,se,(0,i.toDisplayString)(e.title),1)])],4))),128))])]),(0,i.createElementVNode)(`tbody`,null,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(p.value,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`tr`,{key:t,class:`excel-row`},[(0,i.createElementVNode)(`td`,ce,(0,i.toDisplayString)((s.value-1)*c.value+t+1),1),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(u.value,t=>(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)(`td`,{key:t.key,class:(0,i.normalizeClass)([`excel-cell`,[(0,i.unref)(b)(e[t.key]?.value),e[t.key]?.merged?`merged-cell`:``,o.value?``:`compact-cell`]]),rowspan:e[t.key]?.rowspan||1,colspan:e[t.key]?.colspan||1,title:e[t.key]?.value},(0,i.toDisplayString)((0,i.unref)(y)(e[t.key]?.value)),11,le)),[[i.vShow,!e[t.key]?.hidden]])),128))]))),128))])])):((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ue,[(0,i.createVNode)((0,i.unref)(a.NEmpty),{description:`该工作表没有数据或解析失败`},{extra:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:h[2]||=e=>n.$emit(`reload`)},{default:(0,i.withCtx)(()=>[...h[5]||=[(0,i.createTextVNode)(` 重新解析 `,-1)]]),_:1})]),_:1})]))],2),(0,i.createCommentVNode)(` 分页 `),f.value>1?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,de,[(0,i.createVNode)((0,i.unref)(a.NPagination),{page:s.value,"onUpdate:page":h[3]||=e=>s.value=e,"page-count":f.value,"page-size":c.value,"show-size-picker":``,"page-sizes":(0,i.unref)(d),"onUpdate:pageSize":m},null,8,[`page`,`page-count`,`page-size`,`page-sizes`])])):(0,i.createCommentVNode)(`v-if`,!0)])])])}}});var Y=n.t(fe,[[`__scopeId`,`data-v-c415f23c`]]);function X(e,t){if(!e.trim())return null;try{let n=new URL(t),r=new URL(e,n);if(r.username||r.password)return null;if(r.protocol===`https:`||r.protocol===`http:`&&r.origin===n.origin)return r.href}catch{}return null}function Z(e,t){let{file:n,url:r,fileName:a}=e,o=(0,i.ref)(!1),s=(0,i.ref)(``),c=(0,i.ref)(0),l=(0,i.ref)(!1),u=(0,i.ref)(``),d=(0,i.ref)(0),f=(0,i.ref)(``),m=(0,i.ref)([]),_=(0,i.ref)([]),v=0,y=null,b=!1,x=(e,t)=>e===v&&!b&&!t.signal.aborted,T=(0,i.computed)(()=>a.value&&a.value!==`未知文件`?a.value:n.value?.name?n.value.name:r.value?p(r.value):`未知文件`),E=(0,i.computed)(()=>h(T.value)),D=(0,i.computed)(()=>g(E.value)),O=(0,i.computed)(()=>!!(n.value||r.value)),k=()=>{let e=u.value;u.value=``,e.startsWith(`blob:`)&&URL.revokeObjectURL(e.split(`#`)[0])},A=()=>{s.value=``,o.value=!1,c.value=0,k(),d.value=0,f.value=``,m.value=[],_.value=[]},j=e=>{s.value=e,o.value=!1},M=()=>{v+=1,y?.abort(),y=null,A()},N=async e=>{let t=n.value,i=r.value;if(t)return t;if(i){let t=X(i,window.location.href);if(!t)throw Error(`不支持此文件地址`);let n=await fetch(t,{signal:e});if(!n.ok)throw Error(`HTTP ${n.status}: ${n.statusText}`);let r=await n.blob();return new File([r],T.value,{type:r.type})}throw Error(`未提供文件或URL`)},P=async(e,t,n)=>{switch(t){case`pdf`:{let t=await S(e);if(n!==v){URL.revokeObjectURL(t.url.split(`#`)[0]);return}u.value=t.url,d.value=t.totalPages;break}case`word`:{let t=await C(e);if(n!==v)return;f.value=t.content,m.value=t.headings;break}case`excel`:{let t=await w(e);if(n!==v)return;_.value=t.sheets;break}default:throw Error(`不支持的文件格式`)}},F=async()=>{if(b)return!1;let e=++v;y?.abort();let t=new AbortController;if(y=t,A(),!O.value)return y=null,!1;o.value=!0;try{let n=E.value,r=await N(t.signal);return e===v?(c.value=r.size,await P(r,n,e),x(e,t)):!1}catch(n){if(!x(e,t))return!1;let r=n instanceof Error?n.message:`未知错误`;return j(`${E.value.toUpperCase()}文件加载失败: ${r}`),!1}finally{e===v&&(o.value=!1,y=null)}};return(0,i.watch)([n,r],([e,t])=>{!e&&!t&&M()},{flush:`sync`}),(0,i.watch)(()=>n.value?.size,e=>{c.value=e||0},{immediate:!0}),(0,i.onUnmounted)(()=>{b=!0,M()}),{loading:o,error:s,fileSize:c,showModal:l,hasSource:O,pdfUrl:u,pdfTotalPages:d,wordContent:f,wordHeadings:m,excelSheets:_,displayFileName:T,fileType:E,fileConfig:D,loadFile:F,openPreview:async()=>{if(b)return;let e=n.value||r.value;l.value=!0,await F()&&e&&e===(n.value||r.value)&&!b&&t(`preview`,e)},downloadFile:()=>{let e=n.value||r.value;if(!(b||!e)){if(n.value){let e=URL.createObjectURL(n.value);Object.assign(document.createElement(`a`),{href:e,download:T.value}).click(),URL.revokeObjectURL(e)}else if(r.value){let e=X(r.value,window.location.href);if(!e){j(`不支持此文件地址`);return}window.open(e,`_blank`,`noopener,noreferrer`)}t(`download`,e)}},clearPreview:M}}function Q(e){let t=(0,i.ref)(!1),n=()=>{t.value=!!document.fullscreenElement},r=(e,t=0)=>t>=e.length?(console.warn(`无法切换全屏状态`),Promise.resolve()):e[t]().catch(()=>r(e,t+1));return(0,i.onMounted)(()=>{f.forEach(e=>document.addEventListener(e,n))}),(0,i.onUnmounted)(()=>{f.forEach(e=>document.removeEventListener(e,n))}),{isFullscreen:t,toggleFullscreen:async()=>{let t=e.value;t&&await r(document.fullscreenElement?[()=>document.exitFullscreen(),()=>document.webkitExitFullscreen(),()=>document.mozCancelFullScreen(),()=>document.msExitFullscreen()]:[()=>t.requestFullscreen(),()=>t.webkitRequestFullscreen(),()=>t.mozRequestFullScreen(),()=>t.msRequestFullscreen()])},exitFullscreen:async()=>{if(document.fullscreenElement)try{await document.exitFullscreen()}catch{}t.value=!1}}}const pe={class:`c-file-preview-wrapper`},me={key:0,class:`file-info-card`},he={class:`file-info`},ge={class:`file-icon`},_e={class:`file-details`},ve={class:`file-name`},ye={class:`file-meta`},be={class:`file-size`},xe={class:`file-actions`},Se={key:1,class:`c-file-preview-inline`},Ce={key:1,class:`status-container`,role:`status`},we={class:`modal-header`},Te={class:`modal-title`},Ee={class:`modal-actions`},De={class:`modal-content`},$={class:`preview-header`},Oe={class:`flex justify-between items-center`},ke={class:`flex items-center gap-3`},Ae={class:`text-sm text-gray-500`},je={class:`flex gap-2`},Me={class:`preview-content`},Ne={key:1,class:`status-container`},Pe=(0,i.defineComponent)({name:`C_FilePreview`,__name:`index`,props:{file:{},url:{},fileName:{default:`未知文件`},autoPreview:{type:Boolean,default:!1},inline:{type:Boolean,default:!1}},emits:[`preview`,`download`],setup(e,{emit:n}){let{file:r,url:o,fileName:s,autoPreview:c,inline:l}=(0,i.toRefs)(e),{loading:u,error:d,fileSize:f,showModal:p,hasSource:h,pdfUrl:g,pdfTotalPages:_,wordContent:v,wordHeadings:y,excelSheets:b,displayFileName:x,fileType:S,fileConfig:C,loadFile:w,openPreview:T,downloadFile:E}=Z({file:r,url:o,fileName:s},n),D=(0,i.ref)(),{isFullscreen:O,toggleFullscreen:k,exitFullscreen:j}=Q(D);return(0,i.watch)(p,e=>{e||j()}),(0,i.watch)([r,o,c,l,s],(e,t)=>{if(!(typeof window>`u`||!h.value)){if(l.value){w();return}if(p.value){[0,1,4].some(n=>e[n]!==t?.[n])&&w();return}c.value&&T()}},{immediate:!0}),(e,n)=>{let r=t.t;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,pe,[(0,i.createCommentVNode)(` 文件信息卡片模式 `),!(0,i.unref)(c)&&!(0,i.unref)(l)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,me,[(0,i.createElementVNode)(`div`,he,[(0,i.createElementVNode)(`div`,ge,[(0,i.createVNode)(r,{name:(0,i.unref)(C).icon,size:40,color:(0,i.unref)(C).color},null,8,[`name`,`color`])]),(0,i.createElementVNode)(`div`,_e,[(0,i.createElementVNode)(`div`,ve,[(0,i.createVNode)((0,i.unref)(a.NEllipsis),{style:{"max-width":`250px`}},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(x)),1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NTag),{type:(0,i.unref)(C).tagType,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(S).toUpperCase()),1)]),_:1},8,[`type`])]),(0,i.createElementVNode)(`div`,ye,[(0,i.createElementVNode)(`span`,be,(0,i.toDisplayString)((0,i.unref)(m)((0,i.unref)(f))),1)])]),(0,i.createElementVNode)(`div`,xe,[(0,i.createVNode)((0,i.unref)(a.NButton),{type:`primary`,onClick:(0,i.unref)(T)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-visibility`})]),default:(0,i.withCtx)(()=>[n[2]||=(0,i.createTextVNode)(` 预览 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{type:`tertiary`,onClick:(0,i.unref)(E)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-download`})]),default:(0,i.withCtx)(()=>[n[3]||=(0,i.createTextVNode)(` 下载 `,-1)]),_:1},8,[`onClick`])])])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.unref)(l)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Se,[(0,i.unref)(h)?(0,i.unref)(u)||(0,i.unref)(d)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Ce,[(0,i.unref)(u)?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NSpin),{key:0,size:`large`},{description:(0,i.withCtx)(()=>[...n[4]||=[(0,i.createTextVNode)(`正在加载文档…`,-1)]]),_:1})):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:1,status:`error`,title:`预览失败`,description:(0,i.unref)(d)},{footer:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:(0,i.unref)(w)},{default:(0,i.withCtx)(()=>[...n[5]||=[(0,i.createTextVNode)(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):(0,i.unref)(S)===`pdf`?((0,i.openBlock)(),(0,i.createBlock)(A,{key:2,"pdf-url":(0,i.unref)(g),"total-pages":(0,i.unref)(_)},null,8,[`pdf-url`,`total-pages`])):(0,i.unref)(S)===`word`?((0,i.openBlock)(),(0,i.createBlock)(L,{key:3,content:(0,i.unref)(v),headings:(0,i.unref)(y)},null,8,[`content`,`headings`])):(0,i.unref)(S)===`excel`?((0,i.openBlock)(),(0,i.createBlock)(Y,{key:4,sheets:(0,i.unref)(b),onReload:(0,i.unref)(w)},null,8,[`sheets`,`onReload`])):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:5,status:`warning`,title:`不支持的文件格式`,description:`支持 PDF、DOCX、XLSX 和 XLS 文件`})):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:0,status:`info`,title:`暂无预览文件`,description:`选择文件后即可预览`}))])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 模态框预览 `),(0,i.unref)(l)?(0,i.createCommentVNode)(`v-if`,!0):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NModal),{key:2,show:(0,i.unref)(p),"onUpdate:show":n[1]||=e=>(0,i.isRef)(p)?p.value=e:null,"mask-closable":!1,closable:!1,"auto-focus":!1,"transform-origin":`center`,style:{width:`85vw`,"max-width":`1200px`,"min-width":`800px`,height:`75vh`,"max-height":`700px`,"min-height":`500px`}},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,{ref_key:`modalContainer`,ref:D,class:`modal-container`},[(0,i.createCommentVNode)(` 自定义头部 `),(0,i.createElementVNode)(`div`,we,[(0,i.createElementVNode)(`div`,Te,[(0,i.createVNode)(r,{name:(0,i.unref)(C).icon,size:20,color:(0,i.unref)(C).color},null,8,[`name`,`color`]),(0,i.createElementVNode)(`span`,null,(0,i.toDisplayString)((0,i.unref)(x)),1)]),(0,i.createElementVNode)(`div`,Ee,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`tertiary`,onClick:(0,i.unref)(E)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-download`})]),default:(0,i.withCtx)(()=>[n[6]||=(0,i.createTextVNode)(` 下载 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`tertiary`,onClick:n[0]||=e=>p.value=!1},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-close`})]),_:1})])]),(0,i.createCommentVNode)(` 预览内容 `),(0,i.createElementVNode)(`div`,De,[(0,i.createCommentVNode)(` 文件信息头部 `),(0,i.createElementVNode)(`div`,$,[(0,i.createElementVNode)(`div`,Oe,[(0,i.createElementVNode)(`div`,ke,[(0,i.createVNode)((0,i.unref)(a.NTag),{type:(0,i.unref)(C).tagType,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:(0,i.unref)(C).icon},null,8,[`name`])]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)((0,i.unref)(S).toUpperCase()),1)]),_:1},8,[`type`]),(0,i.createVNode)((0,i.unref)(a.NEllipsis),{style:{"max-width":`300px`}},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(x)),1)]),_:1}),(0,i.createElementVNode)(`span`,Ae,(0,i.toDisplayString)((0,i.unref)(m)((0,i.unref)(f))),1)]),(0,i.createElementVNode)(`div`,je,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`tertiary`,disabled:(0,i.unref)(u),onClick:(0,i.unref)(w)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-refresh`})]),default:(0,i.withCtx)(()=>[n[7]||=(0,i.createTextVNode)(` 刷新 `,-1)]),_:1},8,[`disabled`,`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`primary`,onClick:(0,i.unref)(k)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:(0,i.unref)(O)?`ic:outline-fullscreen-exit`:`ic:outline-fullscreen`},null,8,[`name`])]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)((0,i.unref)(O)?`退出全屏`:`全屏`),1)]),_:1},8,[`onClick`])])])]),(0,i.createCommentVNode)(` 预览内容区域 `),(0,i.createElementVNode)(`div`,Me,[(0,i.createCommentVNode)(` 加载和错误状态 `),(0,i.unref)(h)?(0,i.unref)(u)||(0,i.unref)(d)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Ne,[(0,i.unref)(u)?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NSpin),{key:0,size:`large`},{description:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` 正在加载`+(0,i.toDisplayString)((0,i.unref)(S).toUpperCase())+`文件... `,1)]),_:1})):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:1,status:`error`,title:`预览失败`,description:(0,i.unref)(d)},{footer:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(w)},{default:(0,i.withCtx)(()=>[...n[8]||=[(0,i.createTextVNode)(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:2},[(0,i.createCommentVNode)(` 文件预览 — 委托给子组件 `),(0,i.unref)(S)===`pdf`?((0,i.openBlock)(),(0,i.createBlock)(A,{key:0,"pdf-url":(0,i.unref)(g),"total-pages":(0,i.unref)(_)},null,8,[`pdf-url`,`total-pages`])):(0,i.unref)(S)===`word`?((0,i.openBlock)(),(0,i.createBlock)(L,{key:1,content:(0,i.unref)(v),headings:(0,i.unref)(y)},null,8,[`content`,`headings`])):(0,i.unref)(S)===`excel`?((0,i.openBlock)(),(0,i.createBlock)(Y,{key:2,sheets:(0,i.unref)(b),onReload:(0,i.unref)(w)},null,8,[`sheets`,`onReload`])):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:3},[(0,i.createCommentVNode)(` 不支持的文件类型 `),(0,i.createVNode)((0,i.unref)(a.NResult),{status:`warning`,title:`不支持的文件格式`,description:`暂不支持预览 ${(0,i.unref)(S).toUpperCase()} 格式文件`},null,8,[`description`])],2112))],64)):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:0,status:`info`,title:`暂无预览文件`,description:`选择文件后即可预览`}))])])],512)]),_:1},8,[`show`]))])}}});var Fe=n.t(Pe,[[`__scopeId`,`data-v-15033e6f`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Fe}});
1
+ const e=require(`./chunk.cjs`),t=require(`./C_Icon2.cjs`),n=require(`./export-helper.cjs`),r=require(`./html.cjs`);let i=require(`vue`),a=require(`naive-ui`),o=require(`xlsx`);o=e.t(o);let s=require(`mammoth`);s=e.t(s);const c={pdf:`pdf`,doc:`word`,docx:`word`,xls:`excel`,xlsx:`excel`},l={pdf:{tagType:`error`,icon:`ic:outline-picture-as-pdf`,color:`#dc2626`},word:{tagType:`info`,icon:`ic:outline-description`,color:`#2563eb`},excel:{tagType:`success`,icon:`ic:outline-grid-on`,color:`#16a34a`},unknown:{tagType:`default`,icon:`ic:outline-insert-drive-file`,color:`#6b7280`}},u={pdf:{min:.5,max:3,step:.25,default:1},word:{min:50,max:200,step:10,default:100}},d=[20,50,100,200],f=[`fullscreenchange`,`webkitfullscreenchange`,`mozfullscreenchange`,`MSFullscreenChange`],p=e=>{try{let t=e.split(`/`).pop()||e.split(`\\`).pop();if(t?.includes(`.`)){let n=decodeURIComponent(t.split(`?`)[0]);if(n&&n!==e)return n}}catch(e){console.warn(`解析URL文件名失败:`,e)}return`未知文件`},m=e=>{if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**+r).toFixed(1))+` `+n[r]},h=e=>{if(!e||e===`未知文件`)return`unknown`;let t=e.toLowerCase().split(`.`).pop();return t&&c[t]||`unknown`},g=e=>l[e]||l.unknown,_=(e,t)=>n=>{let{min:r,max:i,step:a,default:o}=t;switch(n){case`reset`:e.value=o;break;case`in`:e.value<i&&(e.value+=a);break;case`out`:e.value>r&&(e.value-=a);break}},v=e=>{let t=``;for(;e>=0;)t=String.fromCharCode(65+e%26)+t,e=Math.floor(e/26)-1;return t},y=e=>e==null?``:String(e),b=1e5,x=e=>{if(e==null||e===``)return`cell-empty`;let t=String(e).trim();return!isNaN(Number(t))&&t!==``?`cell-number`:t.match(/[■▬▪▫─━]/)?`cell-gantt`:t.match(/^\d{4}[-/]\d{2}[-/]\d{2}/)||t.match(/^\d{2}[-/]\d{2}[-/]\d{4}/)?`cell-date`:[`true`,`false`].includes(t.toLowerCase())?`cell-boolean`:t.length>20?`cell-text cell-long`:`cell-text`};function S(e,t,n){if(e===void 0)return t;if(!Number.isSafeInteger(e)||e<=0)throw Error(`previewLimits.${n} 必须为有限正整数`);return e}function C(e,t){let n=t?.isMain?t:{rowspan:1,colspan:1};return{value:e?.v??``,displayValue:e?e.w??o.utils.format_cell(e):``,type:e?.t,merged:!!t,hidden:!!(t&&!t.isMain),rowspan:n.rowspan,colspan:n.colspan}}function w(e,t,n){let{s:r,e:i}=e;return[r.r,r.c,i.r,i.c].every(Number.isSafeInteger)&&r.r>=0&&r.c>=0&&i.r<=t&&i.c<=n&&i.r>=r.r&&i.c>=r.c}const T=(e,t,n=b)=>{let{c:r,r:i}=o.utils.decode_range(e[`!ref`]||`A1:A1`).e,a=(r+1)*(i+1);if(!Number.isSafeInteger(a)||a<1||a>S(n,b,`maxCells`))throw Error(`工作表范围超过 ${n.toLocaleString()} 个单元格的预览上限,请下载文件查看`);let s=Array.from({length:r+1},(t,n)=>{let r=e[o.utils.encode_cell({r:0,c:n})],i=r?String(r.v??``).trim():`列${n+1}`;return{title:i||`列${n+1}`,key:`col_${n}`,width:Math.min(Math.max(i.length*12,80),200)}}),c=new Map,l=0;return t.forEach(e=>{if(!w(e,i,r))return;let{s:{r:t,c:n},e:{r:o,c:s}}=e;if(l+=(o-t+1)*(s-n+1),!Number.isSafeInteger(l)||l>a)throw Error(`合并单元格累计范围超过预览上限,请下载文件查看`);for(let e=t;e<=o;e++)for(let r=n;r<=s;r++)c.set(`${e}-${r}`,{isMain:e===t&&r===n,rowspan:o-t+1,colspan:s-n+1})}),{data:Array.from({length:i+1},(t,n)=>{let i={};for(let t=0;t<=r;t++){let r=e[o.utils.encode_cell({r:n,c:t})],a=c.get(`${n}-${t}`);i[`col_${t}`]=C(r,a)}return i}),columns:s}};async function E(e){return{url:URL.createObjectURL(e)+`#toolbar=1&navpanes=1&scrollbar=1&view=FitH`,totalPages:1}}async function D(e){let t=await e.arrayBuffer(),n=await s.default.convertToHtml({arrayBuffer:t,styleMap:[`p[style-name='Heading 1'] => h1:fresh`,`p[style-name='Heading 2'] => h2:fresh`,`p[style-name='Heading 3'] => h3:fresh`,`p[style-name='Title'] => h1.title:fresh`]}),i=[],a=document.createElement(`div`);a.innerHTML=r.t(n.value);let o=a.querySelectorAll(`h1, h2, h3, h4, h5, h6`);return Array.from(o).forEach((e,t)=>{let n=`heading-${t}`,r=parseInt(e.tagName.charAt(1)),a=e.textContent||``;e.id=n,i.push({id:n,text:a,level:r})}),{content:a.innerHTML,headings:i}}async function O(e,t={}){let n=S(t.maxBytes,33554432,`maxBytes`),r=S(t.maxCells,b,`maxCells`);if(e.size>n)throw Error(`Excel 文件超过 ${m(n)} 的预览上限,请下载文件查看`);let i=await e.arrayBuffer(),a=o.read(i,{type:`array`,cellStyles:!0,cellFormula:!0,cellDates:!0});if(!a.SheetNames.length)throw Error(`Excel文件中没有找到工作表`);let s=a.SheetNames.map(e=>{let t=a.Sheets[e],n=t[`!merges`]||[];return{name:e,data:[],merges:n,columns:[],load:()=>T(t,n,r)}});return Object.assign(s[0],s[0].load?.()),{sheets:s}}const k={class:`file-container pdf-container`},A={class:`file-toolbar`},j={class:`file-viewer`},M=[`src`],N=(0,i.defineComponent)({name:`FilePreviewPdfViewer`,__name:`index`,props:{pdfUrl:{},totalPages:{}},setup(e){return(t,n)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,k,[(0,i.createElementVNode)(`div`,A,[n[1]||=(0,i.createElementVNode)(`span`,null,`PDF 阅读器 · 翻页、缩放与打印由浏览器提供`,-1),e.pdfUrl?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NButton),{key:0,tag:`a`,href:e.pdfUrl,target:`_blank`,rel:`noopener noreferrer`,size:`small`},{default:(0,i.withCtx)(()=>[...n[0]||=[(0,i.createTextVNode)(`在新标签页打开`,-1)]]),_:1},8,[`href`])):(0,i.createCommentVNode)(`v-if`,!0)]),(0,i.createElementVNode)(`div`,j,[e.pdfUrl?((0,i.openBlock)(),(0,i.createElementBlock)(`iframe`,{key:0,src:e.pdfUrl,title:`PDF预览`,class:`pdf-frame`},null,8,M)):(0,i.createCommentVNode)(`v-if`,!0)])]))}});var P=n.t(N,[[`__scopeId`,`data-v-db027bb4`]]);const F={class:`file-container word-container`},I={class:`file-toolbar`},L={class:`flex gap-2 items-center`},ee={class:`text-sm text-gray-600 min-w-12 text-center`},te={class:`word-layout`},ne={class:`word-main`},re={key:0,class:`word-outline`},ie={class:`outline-content`},ae=[`onClick`],R={class:`word-content`},z=[`innerHTML`],B=(0,i.defineComponent)({__name:`index`,props:{content:{},headings:{}},setup(e){let n=(0,i.ref)(!0),r=(0,i.ref)(100),o=_(r,u.word),s=e=>{document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`start`})};return(c,l)=>{let u=t.t;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,F,[(0,i.createElementVNode)(`div`,I,[(0,i.createElementVNode)(`div`,L,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:l[0]||=e=>n.value=!n.value},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-list`})]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)(n.value?`隐藏`:`显示`)+`目录 `,1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NDivider),{vertical:``}),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,disabled:r.value<=50,onClick:l[1]||=e=>(0,i.unref)(o)(`out`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-zoom-out`})]),_:1},8,[`disabled`]),(0,i.createElementVNode)(`span`,ee,(0,i.toDisplayString)(r.value)+`% `,1),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,disabled:r.value>=200,onClick:l[2]||=e=>(0,i.unref)(o)(`in`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-zoom-in`})]),_:1},8,[`disabled`]),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:l[3]||=e=>(0,i.unref)(o)(`reset`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-fit-screen`})]),default:(0,i.withCtx)(()=>[l[4]||=(0,i.createTextVNode)(` 重置 `,-1)]),_:1})])]),(0,i.createElementVNode)(`div`,te,[(0,i.createElementVNode)(`div`,ne,[(0,i.createCommentVNode)(` 侧边栏目录 `),n.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,re,[l[5]||=(0,i.createElementVNode)(`div`,{class:`outline-header`},[(0,i.createElementVNode)(`h3`,{class:`text-sm font-semibold`},`文档目录`)],-1),(0,i.createElementVNode)(`div`,ie,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.headings,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t,class:(0,i.normalizeClass)([`outline-item`,`level-${e.level}`]),onClick:t=>s(e.id)},(0,i.toDisplayString)(e.text),11,ae))),128))])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 主要内容区域 `),(0,i.createElementVNode)(`div`,R,[(0,i.createElementVNode)(`div`,{class:`word-document`,style:(0,i.normalizeStyle)({transform:`scale(${r.value/100})`,transformOrigin:`top center`}),innerHTML:e.content},null,12,z)])])])])}}});var V=n.t(B,[[`__scopeId`,`data-v-dae08a5f`]]);const H={class:`file-container excel-container`},U={class:`file-toolbar`},W={class:`flex justify-between items-center`},G={class:`flex gap-2 items-center`},K={key:1,class:`text-sm text-gray-600`},q={class:`flex gap-2 items-center`},J={class:`excel-viewer`},oe={key:0,class:`excel-info`},se={class:`excel-table-container`},ce={key:0,class:`excel-table`},le={class:`header-content`},ue={class:`column-letter`},de={class:`column-title`},fe={class:`row-number`},pe=[`rowspan`,`colspan`,`title`],me={key:1,class:`excel-empty`},he={key:0,class:`excel-pagination`},ge=(0,i.defineComponent)({__name:`index`,props:{sheets:{}},emits:[`reload`],setup(e){let n=e,r=(0,i.ref)(``),o=(0,i.ref)(``),s=(0,i.ref)(!1),c=(0,i.ref)(1),l=(0,i.ref)(50),u=(0,i.ref)([]),f=(0,i.ref)([]),p=(0,i.computed)(()=>Math.ceil(u.value.length/l.value)),m=(0,i.computed)(()=>{let e=(c.value-1)*l.value;return u.value.slice(e,e+l.value)}),h=e=>{l.value=e,c.value=1},g=e=>{o.value=``,u.value=[],f.value=[],c.value=1;let t=n.sheets.find(t=>t.name===e);if(t)try{let e=t.data.length>0?t:t.load?.()??t;u.value=e.data,f.value=e.columns}catch(e){o.value=e instanceof Error?e.message:`工作表解析失败`}};return(0,i.watch)(r,e=>{g(e)}),(0,i.watch)(()=>n.sheets,e=>{r.value=e[0]?.name??``,g(r.value)},{immediate:!0}),(n,g)=>{let _=t.t;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,H,[(0,i.createCommentVNode)(` 工具栏 `),(0,i.createElementVNode)(`div`,U,[(0,i.createElementVNode)(`div`,W,[(0,i.createElementVNode)(`div`,G,[e.sheets.length>1?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NTabs),{key:0,value:r.value,"onUpdate:value":g[0]||=e=>r.value=e,type:`card`,size:`small`},{default:(0,i.withCtx)(()=>[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.sheets,e=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NTabPane),{key:e.name,name:e.name,tab:e.name},null,8,[`name`,`tab`]))),128))]),_:1},8,[`value`])):((0,i.openBlock)(),(0,i.createElementBlock)(`span`,K,` 工作表: `+(0,i.toDisplayString)(r.value),1))]),(0,i.createElementVNode)(`div`,q,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:g[1]||=e=>s.value=!s.value},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(_,{name:`ic:outline-format-paint`})]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)(s.value?`紧凑视图`:`完整格式`),1)]),_:1})])])]),(0,i.createElementVNode)(`div`,J,[(0,i.createCommentVNode)(` 信息面板 `),u.value.length>0?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,oe,[(0,i.createVNode)((0,i.unref)(a.NText),{depth:`3`,class:`text-sm`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` 当前工作表: `+(0,i.toDisplayString)(r.value)+` | 总行数: `+(0,i.toDisplayString)(u.value.length)+` | 总列数: `+(0,i.toDisplayString)(f.value.length)+` | 当前页: `+(0,i.toDisplayString)(c.value)+`/`+(0,i.toDisplayString)(p.value),1)]),_:1})])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 表格 `),(0,i.createElementVNode)(`div`,se,[(0,i.createElementVNode)(`div`,{class:(0,i.normalizeClass)([`excel-table-wrapper`,{"simple-mode":!s.value}])},[u.value.length>0?((0,i.openBlock)(),(0,i.createElementBlock)(`table`,ce,[(0,i.createElementVNode)(`thead`,null,[(0,i.createElementVNode)(`tr`,null,[g[4]||=(0,i.createElementVNode)(`th`,{class:`row-number`},`行号`,-1),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(f.value,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`th`,{key:e.key,class:`excel-header`,style:(0,i.normalizeStyle)({minWidth:e.width+`px`})},[(0,i.createElementVNode)(`div`,le,[(0,i.createElementVNode)(`span`,ue,(0,i.toDisplayString)((0,i.unref)(v)(t)),1),(0,i.createElementVNode)(`span`,de,(0,i.toDisplayString)(e.title),1)])],4))),128))])]),(0,i.createElementVNode)(`tbody`,null,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(m.value,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`tr`,{key:t,class:`excel-row`},[(0,i.createElementVNode)(`td`,fe,(0,i.toDisplayString)((c.value-1)*l.value+t+1),1),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(f.value,t=>(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)(`td`,{key:t.key,class:(0,i.normalizeClass)([`excel-cell`,[(0,i.unref)(x)(e[t.key]?.value),e[t.key]?.merged?`merged-cell`:``,s.value?``:`compact-cell`]]),rowspan:e[t.key]?.rowspan||1,colspan:e[t.key]?.colspan||1,title:e[t.key]?.displayValue??(0,i.unref)(y)(e[t.key]?.value)},(0,i.toDisplayString)(e[t.key]?.displayValue??(0,i.unref)(y)(e[t.key]?.value)),11,pe)),[[i.vShow,!e[t.key]?.hidden]])),128))]))),128))])])):((0,i.openBlock)(),(0,i.createElementBlock)(`div`,me,[(0,i.createVNode)((0,i.unref)(a.NEmpty),{description:o.value||`该工作表没有数据或解析失败`},{extra:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:g[2]||=e=>n.$emit(`reload`)},{default:(0,i.withCtx)(()=>[...g[5]||=[(0,i.createTextVNode)(` 重新解析 `,-1)]]),_:1})]),_:1},8,[`description`])]))],2),(0,i.createCommentVNode)(` 分页 `),p.value>1?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,he,[(0,i.createVNode)((0,i.unref)(a.NPagination),{page:c.value,"onUpdate:page":g[3]||=e=>c.value=e,"page-count":p.value,"page-size":l.value,"show-size-picker":``,"page-sizes":(0,i.unref)(d),"onUpdate:pageSize":h},null,8,[`page`,`page-count`,`page-size`,`page-sizes`])])):(0,i.createCommentVNode)(`v-if`,!0)])])])}}});var Y=n.t(ge,[[`__scopeId`,`data-v-5ed6f50d`]]);function X(e,t){if(!e.trim())return null;try{let n=new URL(t),r=new URL(e,n);if(r.username||r.password)return null;if(r.protocol===`https:`||r.protocol===`http:`&&r.origin===n.origin)return r.href}catch{}return null}function Z(e,t){let{file:n,url:r,fileName:a,previewLimits:o}=e,s=(0,i.ref)(!1),c=(0,i.ref)(``),l=(0,i.ref)(0),u=(0,i.ref)(!1),d=(0,i.ref)(``),f=(0,i.ref)(0),m=(0,i.ref)(``),_=(0,i.ref)([]),v=(0,i.ref)([]),y=0,b=null,x=!1,S=(e,t)=>e===y&&!x&&!t.signal.aborted,C=(0,i.computed)(()=>a.value&&a.value!==`未知文件`?a.value:n.value?.name?n.value.name:r.value?p(r.value):`未知文件`),w=(0,i.computed)(()=>h(C.value)),T=(0,i.computed)(()=>g(w.value)),k=(0,i.computed)(()=>!!(n.value||r.value)),A=()=>{let e=d.value;d.value=``,e.startsWith(`blob:`)&&URL.revokeObjectURL(e.split(`#`)[0])},j=()=>{c.value=``,s.value=!1,l.value=0,A(),f.value=0,m.value=``,_.value=[],v.value=[]},M=e=>{c.value=e,s.value=!1},N=()=>{y+=1,b?.abort(),b=null,j()},P=async e=>{let t=n.value,i=r.value;if(t)return t;if(i){let t=X(i,window.location.href);if(!t)throw Error(`不支持此文件地址`);let n=await fetch(t,{signal:e});if(!n.ok)throw Error(`HTTP ${n.status}: ${n.statusText}`);let r=await n.blob();return new File([r],C.value,{type:r.type})}throw Error(`未提供文件或URL`)},F=async(e,t,n)=>{switch(t){case`pdf`:{let t=await E(e);if(n!==y){URL.revokeObjectURL(t.url.split(`#`)[0]);return}d.value=t.url,f.value=t.totalPages;break}case`word`:{let t=await D(e);if(n!==y)return;m.value=t.content,_.value=t.headings;break}case`excel`:{let t=await O(e,o?.value);if(n!==y)return;v.value=t.sheets;break}default:throw Error(`不支持的文件格式`)}},I=async()=>{if(x)return!1;let e=++y;b?.abort();let t=new AbortController;if(b=t,j(),!k.value)return b=null,!1;s.value=!0;try{let n=w.value,r=await P(t.signal);return e===y?(l.value=r.size,await F(r,n,e),S(e,t)):!1}catch(n){if(!S(e,t))return!1;let r=n instanceof Error?n.message:`未知错误`;return M(`${w.value.toUpperCase()}文件加载失败: ${r}`),!1}finally{e===y&&(s.value=!1,b=null)}};return(0,i.watch)([n,r],([e,t])=>{!e&&!t&&N()},{flush:`sync`}),(0,i.watch)(()=>n.value?.size,e=>{l.value=e||0},{immediate:!0}),(0,i.onUnmounted)(()=>{x=!0,N()}),{loading:s,error:c,fileSize:l,showModal:u,hasSource:k,pdfUrl:d,pdfTotalPages:f,wordContent:m,wordHeadings:_,excelSheets:v,displayFileName:C,fileType:w,fileConfig:T,loadFile:I,openPreview:async()=>{if(x)return;let e=n.value||r.value;u.value=!0,await I()&&e&&e===(n.value||r.value)&&!x&&t(`preview`,e)},downloadFile:()=>{let e=n.value||r.value;if(!(x||!e)){if(n.value){let e=URL.createObjectURL(n.value);Object.assign(document.createElement(`a`),{href:e,download:C.value}).click(),URL.revokeObjectURL(e)}else if(r.value){let e=X(r.value,window.location.href);if(!e){M(`不支持此文件地址`);return}window.open(e,`_blank`,`noopener,noreferrer`)}t(`download`,e)}},clearPreview:N}}function Q(e){let t=(0,i.ref)(!1),n=()=>{t.value=!!document.fullscreenElement},r=(e,t=0)=>t>=e.length?(console.warn(`无法切换全屏状态`),Promise.resolve()):e[t]().catch(()=>r(e,t+1));return(0,i.onMounted)(()=>{f.forEach(e=>document.addEventListener(e,n))}),(0,i.onUnmounted)(()=>{f.forEach(e=>document.removeEventListener(e,n))}),{isFullscreen:t,toggleFullscreen:async()=>{let t=e.value;t&&await r(document.fullscreenElement?[()=>document.exitFullscreen(),()=>document.webkitExitFullscreen(),()=>document.mozCancelFullScreen(),()=>document.msExitFullscreen()]:[()=>t.requestFullscreen(),()=>t.webkitRequestFullscreen(),()=>t.mozRequestFullScreen(),()=>t.msRequestFullscreen()])},exitFullscreen:async()=>{if(document.fullscreenElement)try{await document.exitFullscreen()}catch{}t.value=!1}}}const _e={class:`c-file-preview-wrapper`},ve={key:0,class:`file-info-card`},ye={class:`file-info`},be={class:`file-icon`},xe={class:`file-details`},Se={class:`file-name`},Ce={class:`file-meta`},we={class:`file-size`},Te={class:`file-actions`},Ee={key:1,class:`c-file-preview-inline`},De={key:1,class:`status-container`,role:`status`},$={class:`modal-header`},Oe={class:`modal-title`},ke={class:`modal-actions`},Ae={class:`modal-content`},je={class:`preview-header`},Me={class:`flex justify-between items-center`},Ne={class:`flex items-center gap-3`},Pe={class:`text-sm text-gray-500`},Fe={class:`flex gap-2`},Ie={class:`preview-content`},Le={key:1,class:`status-container`},Re=(0,i.defineComponent)({name:`C_FilePreview`,__name:`index`,props:{previewLimits:{},file:{},url:{},fileName:{default:`未知文件`},autoPreview:{type:Boolean,default:!1},inline:{type:Boolean,default:!1}},emits:[`preview`,`download`],setup(e,{emit:n}){let r=e,{file:o,url:s,fileName:c,autoPreview:l,inline:u,previewLimits:d}=(0,i.toRefs)(r),{loading:f,error:p,fileSize:h,showModal:g,hasSource:_,pdfUrl:v,pdfTotalPages:y,wordContent:b,wordHeadings:x,excelSheets:S,displayFileName:C,fileType:w,fileConfig:T,loadFile:E,openPreview:D,downloadFile:O}=Z({file:o,url:s,fileName:c,previewLimits:d},n),k=(0,i.ref)(),{isFullscreen:A,toggleFullscreen:j,exitFullscreen:M}=Q(k);return(0,i.watch)(g,e=>{e||M()}),(0,i.watch)([o,s,l,u,c,()=>r.previewLimits?.maxBytes,()=>r.previewLimits?.maxCells],(e,t)=>{if(!(typeof window>`u`||!_.value)){if(u.value){E();return}if(g.value){[0,1,4,5,6].some(n=>e[n]!==t?.[n])&&E();return}l.value&&D()}},{immediate:!0}),(e,n)=>{let r=t.t;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,_e,[(0,i.createCommentVNode)(` 文件信息卡片模式 `),!(0,i.unref)(l)&&!(0,i.unref)(u)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ve,[(0,i.createElementVNode)(`div`,ye,[(0,i.createElementVNode)(`div`,be,[(0,i.createVNode)(r,{name:(0,i.unref)(T).icon,size:40,color:(0,i.unref)(T).color},null,8,[`name`,`color`])]),(0,i.createElementVNode)(`div`,xe,[(0,i.createElementVNode)(`div`,Se,[(0,i.createVNode)((0,i.unref)(a.NEllipsis),{style:{"max-width":`250px`}},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(C)),1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NTag),{type:(0,i.unref)(T).tagType,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(w).toUpperCase()),1)]),_:1},8,[`type`])]),(0,i.createElementVNode)(`div`,Ce,[(0,i.createElementVNode)(`span`,we,(0,i.toDisplayString)((0,i.unref)(m)((0,i.unref)(h))),1)])]),(0,i.createElementVNode)(`div`,Te,[(0,i.createVNode)((0,i.unref)(a.NButton),{type:`primary`,onClick:(0,i.unref)(D)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-visibility`})]),default:(0,i.withCtx)(()=>[n[2]||=(0,i.createTextVNode)(` 预览 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{type:`tertiary`,onClick:(0,i.unref)(O)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-download`})]),default:(0,i.withCtx)(()=>[n[3]||=(0,i.createTextVNode)(` 下载 `,-1)]),_:1},8,[`onClick`])])])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.unref)(u)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Ee,[(0,i.unref)(_)?(0,i.unref)(f)||(0,i.unref)(p)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,De,[(0,i.unref)(f)?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NSpin),{key:0,size:`large`},{description:(0,i.withCtx)(()=>[...n[4]||=[(0,i.createTextVNode)(`正在加载文档…`,-1)]]),_:1})):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:1,status:`error`,title:`预览失败`,description:(0,i.unref)(p)},{footer:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:(0,i.unref)(E)},{default:(0,i.withCtx)(()=>[...n[5]||=[(0,i.createTextVNode)(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):(0,i.unref)(w)===`pdf`?((0,i.openBlock)(),(0,i.createBlock)(P,{key:2,"pdf-url":(0,i.unref)(v),"total-pages":(0,i.unref)(y)},null,8,[`pdf-url`,`total-pages`])):(0,i.unref)(w)===`word`?((0,i.openBlock)(),(0,i.createBlock)(V,{key:3,content:(0,i.unref)(b),headings:(0,i.unref)(x)},null,8,[`content`,`headings`])):(0,i.unref)(w)===`excel`?((0,i.openBlock)(),(0,i.createBlock)(Y,{key:4,sheets:(0,i.unref)(S),onReload:(0,i.unref)(E)},null,8,[`sheets`,`onReload`])):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:5,status:`warning`,title:`不支持的文件格式`,description:`支持 PDF、DOCX、XLSX 和 XLS 文件`})):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:0,status:`info`,title:`暂无预览文件`,description:`选择文件后即可预览`}))])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 模态框预览 `),(0,i.unref)(u)?(0,i.createCommentVNode)(`v-if`,!0):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NModal),{key:2,show:(0,i.unref)(g),"onUpdate:show":n[1]||=e=>(0,i.isRef)(g)?g.value=e:null,"mask-closable":!1,closable:!1,"auto-focus":!1,"transform-origin":`center`,style:{width:`85vw`,"max-width":`1200px`,"min-width":`800px`,height:`75vh`,"max-height":`700px`,"min-height":`500px`}},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,{ref_key:`modalContainer`,ref:k,class:`modal-container`},[(0,i.createCommentVNode)(` 自定义头部 `),(0,i.createElementVNode)(`div`,$,[(0,i.createElementVNode)(`div`,Oe,[(0,i.createVNode)(r,{name:(0,i.unref)(T).icon,size:20,color:(0,i.unref)(T).color},null,8,[`name`,`color`]),(0,i.createElementVNode)(`span`,null,(0,i.toDisplayString)((0,i.unref)(C)),1)]),(0,i.createElementVNode)(`div`,ke,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`tertiary`,onClick:(0,i.unref)(O)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-download`})]),default:(0,i.withCtx)(()=>[n[6]||=(0,i.createTextVNode)(` 下载 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`tertiary`,onClick:n[0]||=e=>g.value=!1},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-close`})]),_:1})])]),(0,i.createCommentVNode)(` 预览内容 `),(0,i.createElementVNode)(`div`,Ae,[(0,i.createCommentVNode)(` 文件信息头部 `),(0,i.createElementVNode)(`div`,je,[(0,i.createElementVNode)(`div`,Me,[(0,i.createElementVNode)(`div`,Ne,[(0,i.createVNode)((0,i.unref)(a.NTag),{type:(0,i.unref)(T).tagType,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:(0,i.unref)(T).icon},null,8,[`name`])]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)((0,i.unref)(w).toUpperCase()),1)]),_:1},8,[`type`]),(0,i.createVNode)((0,i.unref)(a.NEllipsis),{style:{"max-width":`300px`}},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(C)),1)]),_:1}),(0,i.createElementVNode)(`span`,Pe,(0,i.toDisplayString)((0,i.unref)(m)((0,i.unref)(h))),1)]),(0,i.createElementVNode)(`div`,Fe,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`tertiary`,disabled:(0,i.unref)(f),onClick:(0,i.unref)(E)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-refresh`})]),default:(0,i.withCtx)(()=>[n[7]||=(0,i.createTextVNode)(` 刷新 `,-1)]),_:1},8,[`disabled`,`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`primary`,onClick:(0,i.unref)(j)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:(0,i.unref)(A)?`ic:outline-fullscreen-exit`:`ic:outline-fullscreen`},null,8,[`name`])]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)((0,i.unref)(A)?`退出全屏`:`全屏`),1)]),_:1},8,[`onClick`])])])]),(0,i.createCommentVNode)(` 预览内容区域 `),(0,i.createElementVNode)(`div`,Ie,[(0,i.createCommentVNode)(` 加载和错误状态 `),(0,i.unref)(_)?(0,i.unref)(f)||(0,i.unref)(p)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Le,[(0,i.unref)(f)?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NSpin),{key:0,size:`large`},{description:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` 正在加载`+(0,i.toDisplayString)((0,i.unref)(w).toUpperCase())+`文件... `,1)]),_:1})):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:1,status:`error`,title:`预览失败`,description:(0,i.unref)(p)},{footer:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(E)},{default:(0,i.withCtx)(()=>[...n[8]||=[(0,i.createTextVNode)(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:2},[(0,i.createCommentVNode)(` 文件预览 — 委托给子组件 `),(0,i.unref)(w)===`pdf`?((0,i.openBlock)(),(0,i.createBlock)(P,{key:0,"pdf-url":(0,i.unref)(v),"total-pages":(0,i.unref)(y)},null,8,[`pdf-url`,`total-pages`])):(0,i.unref)(w)===`word`?((0,i.openBlock)(),(0,i.createBlock)(V,{key:1,content:(0,i.unref)(b),headings:(0,i.unref)(x)},null,8,[`content`,`headings`])):(0,i.unref)(w)===`excel`?((0,i.openBlock)(),(0,i.createBlock)(Y,{key:2,sheets:(0,i.unref)(S),onReload:(0,i.unref)(E)},null,8,[`sheets`,`onReload`])):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:3},[(0,i.createCommentVNode)(` 不支持的文件类型 `),(0,i.createVNode)((0,i.unref)(a.NResult),{status:`warning`,title:`不支持的文件格式`,description:`暂不支持预览 ${(0,i.unref)(w).toUpperCase()} 格式文件`},null,8,[`description`])],2112))],64)):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:0,status:`info`,title:`暂无预览文件`,description:`选择文件后即可预览`}))])])],512)]),_:1},8,[`show`]))])}}});var ze=n.t(Re,[[`__scopeId`,`data-v-3988cd59`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return ze}});
@@ -1 +1 @@
1
- import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{t as n}from"./html.js";import{Fragment as r,computed as i,createBlock as a,createCommentVNode as o,createElementBlock as s,createElementVNode as c,createTextVNode as l,createVNode as u,defineComponent as d,isRef as f,normalizeClass as p,normalizeStyle as m,onMounted as h,onUnmounted as g,openBlock as _,ref as v,renderList as y,resolveComponent as b,toDisplayString as x,toRefs as S,unref as C,vShow as w,watch as T,withCtx as E,withDirectives as D}from"vue";import{NButton as O,NDivider as k,NEllipsis as A,NEmpty as j,NModal as M,NPagination as N,NResult as P,NSpin as F,NTabPane as I,NTabs as L,NTag as R,NText as z}from"naive-ui";import*as B from"xlsx";import V from"mammoth";const H={pdf:`pdf`,doc:`word`,docx:`word`,xls:`excel`,xlsx:`excel`},U={pdf:{tagType:`error`,icon:`ic:outline-picture-as-pdf`,color:`#dc2626`},word:{tagType:`info`,icon:`ic:outline-description`,color:`#2563eb`},excel:{tagType:`success`,icon:`ic:outline-grid-on`,color:`#16a34a`},unknown:{tagType:`default`,icon:`ic:outline-insert-drive-file`,color:`#6b7280`}},W={pdf:{min:.5,max:3,step:.25,default:1},word:{min:50,max:200,step:10,default:100}},G=[20,50,100,200],K=[`fullscreenchange`,`webkitfullscreenchange`,`mozfullscreenchange`,`MSFullscreenChange`],q=e=>{try{let t=e.split(`/`).pop()||e.split(`\\`).pop();if(t?.includes(`.`)){let n=decodeURIComponent(t.split(`?`)[0]);if(n&&n!==e)return n}}catch(e){console.warn(`解析URL文件名失败:`,e)}return`未知文件`},J=e=>{if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**+r).toFixed(1))+` `+n[r]},Y=e=>{if(!e||e===`未知文件`)return`unknown`;let t=e.toLowerCase().split(`.`).pop();return t&&H[t]||`unknown`},ee=e=>U[e]||U.unknown,te=(e,t)=>n=>{let{min:r,max:i,step:a,default:o}=t;switch(n){case`reset`:e.value=o;break;case`in`:e.value<i&&(e.value+=a);break;case`out`:e.value>r&&(e.value-=a);break}},ne=e=>{let t=``;for(;e>=0;)t=String.fromCharCode(65+e%26)+t,e=Math.floor(e/26)-1;return t},re=e=>{if(e==null||e===``)return``;let t=String(e).trim();if(!isNaN(Number(t))&&t!==``&&t.length<15){let e=Number(t);return Number.isInteger(e)?e.toLocaleString():e.toLocaleString(void 0,{maximumFractionDigits:2})}return t},ie=e=>{if(e==null||e===``)return`cell-empty`;let t=String(e).trim();return!isNaN(Number(t))&&t!==``?`cell-number`:t.match(/[■▬▪▫─━]/)?`cell-gantt`:t.match(/^\d{4}[-/]\d{2}[-/]\d{2}/)||t.match(/^\d{2}[-/]\d{2}[-/]\d{4}/)?`cell-date`:[`true`,`false`].includes(t.toLowerCase())?`cell-boolean`:t.length>20?`cell-text cell-long`:`cell-text`},ae=(e,t)=>{let{c:n,r}=B.utils.decode_range(e[`!ref`]||`A1:A1`).e,i=Array.from({length:n+1},(t,n)=>{let r=e[B.utils.encode_cell({r:0,c:n})],i=r?String(r.v??``).trim():`列${n+1}`;return{title:i||`列${n+1}`,key:`col_${n}`,width:Math.min(Math.max(i.length*12,80),200)}}),a=new Map;return t.forEach(({s:{r:e,c:t},e:{r:n,c:r}})=>{for(let i=e;i<=n;i++)for(let o=t;o<=r;o++)a.set(`${i}-${o}`,{isMain:i===e&&o===t,rowspan:n-e+1,colspan:r-t+1})}),{data:Array.from({length:r+1},(t,r)=>{let i={};for(let t=0;t<=n;t++){let n=e[B.utils.encode_cell({r,c:t})],o=a.get(`${r}-${t}`);i[`col_${t}`]={value:n?n.v??``:``,merged:!!o,hidden:o&&!o.isMain,rowspan:o?.isMain?o.rowspan:1,colspan:o?.isMain?o.colspan:1}}return i}),columns:i}};async function oe(e){return{url:URL.createObjectURL(e)+`#toolbar=1&navpanes=1&scrollbar=1&view=FitH`,totalPages:1}}async function se(e){let t=await e.arrayBuffer(),r=await V.convertToHtml({arrayBuffer:t,styleMap:[`p[style-name='Heading 1'] => h1:fresh`,`p[style-name='Heading 2'] => h2:fresh`,`p[style-name='Heading 3'] => h3:fresh`,`p[style-name='Title'] => h1.title:fresh`]}),i=[],a=document.createElement(`div`);a.innerHTML=n(r.value);let o=a.querySelectorAll(`h1, h2, h3, h4, h5, h6`);return Array.from(o).forEach((e,t)=>{let n=`heading-${t}`,r=parseInt(e.tagName.charAt(1)),a=e.textContent||``;e.id=n,i.push({id:n,text:a,level:r})}),{content:a.innerHTML,headings:i}}async function ce(e){let t=await e.arrayBuffer(),n=B.read(t,{type:`array`,cellStyles:!0,cellFormula:!0,cellDates:!0});if(!n.SheetNames.length)throw Error(`Excel文件中没有找到工作表`);return{sheets:n.SheetNames.map(e=>{let t=n.Sheets[e],r=t[`!merges`]||[],{data:i,columns:a}=ae(t,r);return{name:e,data:i,merges:r,columns:a}})}}const le={class:`file-container pdf-container`},ue={class:`file-toolbar`},de={class:`file-viewer`},fe=[`src`];var X=t(d({name:`FilePreviewPdfViewer`,__name:`index`,props:{pdfUrl:{},totalPages:{}},setup(e){return(t,n)=>(_(),s(`div`,le,[c(`div`,ue,[n[1]||=c(`span`,null,`PDF 阅读器 · 翻页、缩放与打印由浏览器提供`,-1),e.pdfUrl?(_(),a(C(O),{key:0,tag:`a`,href:e.pdfUrl,target:`_blank`,rel:`noopener noreferrer`,size:`small`},{default:E(()=>[...n[0]||=[l(`在新标签页打开`,-1)]]),_:1},8,[`href`])):o(`v-if`,!0)]),c(`div`,de,[e.pdfUrl?(_(),s(`iframe`,{key:0,src:e.pdfUrl,title:`PDF预览`,class:`pdf-frame`},null,8,fe)):o(`v-if`,!0)])]))}}),[[`__scopeId`,`data-v-db027bb4`]]);const pe={class:`file-container word-container`},me={class:`file-toolbar`},he={class:`flex gap-2 items-center`},ge={class:`text-sm text-gray-600 min-w-12 text-center`},_e={class:`word-layout`},ve={class:`word-main`},ye={key:0,class:`word-outline`},be={class:`outline-content`},xe=[`onClick`],Se={class:`word-content`},Ce=[`innerHTML`];var Z=t(d({__name:`index`,props:{content:{},headings:{}},setup(t){let n=v(!0),i=v(100),a=te(i,W.word),d=e=>{document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`start`})};return(f,h)=>{let g=e;return _(),s(`div`,pe,[c(`div`,me,[c(`div`,he,[u(C(O),{size:`small`,onClick:h[0]||=e=>n.value=!n.value},{icon:E(()=>[u(g,{name:`ic:outline-list`})]),default:E(()=>[l(` `+x(n.value?`隐藏`:`显示`)+`目录 `,1)]),_:1}),u(C(k),{vertical:``}),u(C(O),{size:`small`,disabled:i.value<=50,onClick:h[1]||=e=>C(a)(`out`)},{icon:E(()=>[u(g,{name:`ic:outline-zoom-out`})]),_:1},8,[`disabled`]),c(`span`,ge,x(i.value)+`% `,1),u(C(O),{size:`small`,disabled:i.value>=200,onClick:h[2]||=e=>C(a)(`in`)},{icon:E(()=>[u(g,{name:`ic:outline-zoom-in`})]),_:1},8,[`disabled`]),u(C(O),{size:`small`,onClick:h[3]||=e=>C(a)(`reset`)},{icon:E(()=>[u(g,{name:`ic:outline-fit-screen`})]),default:E(()=>[h[4]||=l(` 重置 `,-1)]),_:1})])]),c(`div`,_e,[c(`div`,ve,[o(` 侧边栏目录 `),n.value?(_(),s(`div`,ye,[h[5]||=c(`div`,{class:`outline-header`},[c(`h3`,{class:`text-sm font-semibold`},`文档目录`)],-1),c(`div`,be,[(_(!0),s(r,null,y(t.headings,(e,t)=>(_(),s(`div`,{key:t,class:p([`outline-item`,`level-${e.level}`]),onClick:t=>d(e.id)},x(e.text),11,xe))),128))])])):o(`v-if`,!0),o(` 主要内容区域 `),c(`div`,Se,[c(`div`,{class:`word-document`,style:m({transform:`scale(${i.value/100})`,transformOrigin:`top center`}),innerHTML:t.content},null,12,Ce)])])])])}}}),[[`__scopeId`,`data-v-dae08a5f`]]);const we={class:`file-container excel-container`},Te={class:`file-toolbar`},Ee={class:`flex justify-between items-center`},De={class:`flex gap-2 items-center`},Oe={key:1,class:`text-sm text-gray-600`},ke={class:`flex gap-2 items-center`},Ae={class:`excel-viewer`},je={key:0,class:`excel-info`},Me={class:`excel-table-container`},Ne={key:0,class:`excel-table`},Pe={class:`header-content`},Fe={class:`column-letter`},Ie={class:`column-title`},Le={class:`row-number`},Re=[`rowspan`,`colspan`,`title`],ze={key:1,class:`excel-empty`},Be={key:0,class:`excel-pagination`};var Q=t(d({__name:`index`,props:{sheets:{}},emits:[`reload`],setup(t){let n=t,d=v(``),f=v(!1),h=v(1),g=v(50),b=v([]),S=v([]),k=i(()=>Math.ceil(b.value.length/g.value)),A=i(()=>{let e=(h.value-1)*g.value;return b.value.slice(e,e+g.value)}),M=e=>{g.value=e,h.value=1},P=e=>{let t=n.sheets.find(t=>t.name===e);t&&(b.value=t.data,S.value=t.columns,h.value=1)};return T(d,e=>{P(e)}),T(()=>n.sheets,e=>{if(e.length>0){let[t]=e;d.value=t.name,b.value=t.data,S.value=t.columns,h.value=1}},{immediate:!0}),(n,i)=>{let v=e;return _(),s(`div`,we,[o(` 工具栏 `),c(`div`,Te,[c(`div`,Ee,[c(`div`,De,[t.sheets.length>1?(_(),a(C(L),{key:0,value:d.value,"onUpdate:value":i[0]||=e=>d.value=e,type:`card`,size:`small`},{default:E(()=>[(_(!0),s(r,null,y(t.sheets,e=>(_(),a(C(I),{key:e.name,name:e.name,tab:e.name},null,8,[`name`,`tab`]))),128))]),_:1},8,[`value`])):(_(),s(`span`,Oe,` 工作表: `+x(d.value),1))]),c(`div`,ke,[u(C(O),{size:`small`,onClick:i[1]||=e=>f.value=!f.value},{icon:E(()=>[u(v,{name:`ic:outline-format-paint`})]),default:E(()=>[l(` `+x(f.value?`紧凑视图`:`完整格式`),1)]),_:1})])])]),c(`div`,Ae,[o(` 信息面板 `),b.value.length>0?(_(),s(`div`,je,[u(C(z),{depth:`3`,class:`text-sm`},{default:E(()=>[l(` 当前工作表: `+x(d.value)+` | 总行数: `+x(b.value.length)+` | 总列数: `+x(S.value.length)+` | 当前页: `+x(h.value)+`/`+x(k.value),1)]),_:1})])):o(`v-if`,!0),o(` 表格 `),c(`div`,Me,[c(`div`,{class:p([`excel-table-wrapper`,{"simple-mode":!f.value}])},[b.value.length>0?(_(),s(`table`,Ne,[c(`thead`,null,[c(`tr`,null,[i[4]||=c(`th`,{class:`row-number`},`行号`,-1),(_(!0),s(r,null,y(S.value,(e,t)=>(_(),s(`th`,{key:e.key,class:`excel-header`,style:m({minWidth:e.width+`px`})},[c(`div`,Pe,[c(`span`,Fe,x(C(ne)(t)),1),c(`span`,Ie,x(e.title),1)])],4))),128))])]),c(`tbody`,null,[(_(!0),s(r,null,y(A.value,(e,t)=>(_(),s(`tr`,{key:t,class:`excel-row`},[c(`td`,Le,x((h.value-1)*g.value+t+1),1),(_(!0),s(r,null,y(S.value,t=>D((_(),s(`td`,{key:t.key,class:p([`excel-cell`,[C(ie)(e[t.key]?.value),e[t.key]?.merged?`merged-cell`:``,f.value?``:`compact-cell`]]),rowspan:e[t.key]?.rowspan||1,colspan:e[t.key]?.colspan||1,title:e[t.key]?.value},x(C(re)(e[t.key]?.value)),11,Re)),[[w,!e[t.key]?.hidden]])),128))]))),128))])])):(_(),s(`div`,ze,[u(C(j),{description:`该工作表没有数据或解析失败`},{extra:E(()=>[u(C(O),{size:`small`,onClick:i[2]||=e=>n.$emit(`reload`)},{default:E(()=>[...i[5]||=[l(` 重新解析 `,-1)]]),_:1})]),_:1})]))],2),o(` 分页 `),k.value>1?(_(),s(`div`,Be,[u(C(N),{page:h.value,"onUpdate:page":i[3]||=e=>h.value=e,"page-count":k.value,"page-size":g.value,"show-size-picker":``,"page-sizes":C(G),"onUpdate:pageSize":M},null,8,[`page`,`page-count`,`page-size`,`page-sizes`])])):o(`v-if`,!0)])])])}}}),[[`__scopeId`,`data-v-c415f23c`]]);function $(e,t){if(!e.trim())return null;try{let n=new URL(t),r=new URL(e,n);if(r.username||r.password)return null;if(r.protocol===`https:`||r.protocol===`http:`&&r.origin===n.origin)return r.href}catch{}return null}function Ve(e,t){let{file:n,url:r,fileName:a}=e,o=v(!1),s=v(``),c=v(0),l=v(!1),u=v(``),d=v(0),f=v(``),p=v([]),m=v([]),h=0,_=null,y=!1,b=(e,t)=>e===h&&!y&&!t.signal.aborted,x=i(()=>a.value&&a.value!==`未知文件`?a.value:n.value?.name?n.value.name:r.value?q(r.value):`未知文件`),S=i(()=>Y(x.value)),C=i(()=>ee(S.value)),w=i(()=>!!(n.value||r.value)),E=()=>{let e=u.value;u.value=``,e.startsWith(`blob:`)&&URL.revokeObjectURL(e.split(`#`)[0])},D=()=>{s.value=``,o.value=!1,c.value=0,E(),d.value=0,f.value=``,p.value=[],m.value=[]},O=e=>{s.value=e,o.value=!1},k=()=>{h+=1,_?.abort(),_=null,D()},A=async e=>{let t=n.value,i=r.value;if(t)return t;if(i){let t=$(i,window.location.href);if(!t)throw Error(`不支持此文件地址`);let n=await fetch(t,{signal:e});if(!n.ok)throw Error(`HTTP ${n.status}: ${n.statusText}`);let r=await n.blob();return new File([r],x.value,{type:r.type})}throw Error(`未提供文件或URL`)},j=async(e,t,n)=>{switch(t){case`pdf`:{let t=await oe(e);if(n!==h){URL.revokeObjectURL(t.url.split(`#`)[0]);return}u.value=t.url,d.value=t.totalPages;break}case`word`:{let t=await se(e);if(n!==h)return;f.value=t.content,p.value=t.headings;break}case`excel`:{let t=await ce(e);if(n!==h)return;m.value=t.sheets;break}default:throw Error(`不支持的文件格式`)}},M=async()=>{if(y)return!1;let e=++h;_?.abort();let t=new AbortController;if(_=t,D(),!w.value)return _=null,!1;o.value=!0;try{let n=S.value,r=await A(t.signal);return e===h?(c.value=r.size,await j(r,n,e),b(e,t)):!1}catch(n){if(!b(e,t))return!1;let r=n instanceof Error?n.message:`未知错误`;return O(`${S.value.toUpperCase()}文件加载失败: ${r}`),!1}finally{e===h&&(o.value=!1,_=null)}};return T([n,r],([e,t])=>{!e&&!t&&k()},{flush:`sync`}),T(()=>n.value?.size,e=>{c.value=e||0},{immediate:!0}),g(()=>{y=!0,k()}),{loading:o,error:s,fileSize:c,showModal:l,hasSource:w,pdfUrl:u,pdfTotalPages:d,wordContent:f,wordHeadings:p,excelSheets:m,displayFileName:x,fileType:S,fileConfig:C,loadFile:M,openPreview:async()=>{if(y)return;let e=n.value||r.value;l.value=!0,await M()&&e&&e===(n.value||r.value)&&!y&&t(`preview`,e)},downloadFile:()=>{let e=n.value||r.value;if(!(y||!e)){if(n.value){let e=URL.createObjectURL(n.value);Object.assign(document.createElement(`a`),{href:e,download:x.value}).click(),URL.revokeObjectURL(e)}else if(r.value){let e=$(r.value,window.location.href);if(!e){O(`不支持此文件地址`);return}window.open(e,`_blank`,`noopener,noreferrer`)}t(`download`,e)}},clearPreview:k}}function He(e){let t=v(!1),n=()=>{t.value=!!document.fullscreenElement},r=(e,t=0)=>t>=e.length?(console.warn(`无法切换全屏状态`),Promise.resolve()):e[t]().catch(()=>r(e,t+1));return h(()=>{K.forEach(e=>document.addEventListener(e,n))}),g(()=>{K.forEach(e=>document.removeEventListener(e,n))}),{isFullscreen:t,toggleFullscreen:async()=>{let t=e.value;t&&await r(document.fullscreenElement?[()=>document.exitFullscreen(),()=>document.webkitExitFullscreen(),()=>document.mozCancelFullScreen(),()=>document.msExitFullscreen()]:[()=>t.requestFullscreen(),()=>t.webkitRequestFullscreen(),()=>t.mozRequestFullScreen(),()=>t.msRequestFullscreen()])},exitFullscreen:async()=>{if(document.fullscreenElement)try{await document.exitFullscreen()}catch{}t.value=!1}}}const Ue={class:`c-file-preview-wrapper`},We={key:0,class:`file-info-card`},Ge={class:`file-info`},Ke={class:`file-icon`},qe={class:`file-details`},Je={class:`file-name`},Ye={class:`file-meta`},Xe={class:`file-size`},Ze={class:`file-actions`},Qe={key:1,class:`c-file-preview-inline`},$e={key:1,class:`status-container`,role:`status`},et={class:`modal-header`},tt={class:`modal-title`},nt={class:`modal-actions`},rt={class:`modal-content`},it={class:`preview-header`},at={class:`flex justify-between items-center`},ot={class:`flex items-center gap-3`},st={class:`text-sm text-gray-500`},ct={class:`flex gap-2`},lt={class:`preview-content`},ut={key:1,class:`status-container`};var dt=t(d({name:`C_FilePreview`,__name:`index`,props:{file:{},url:{},fileName:{default:`未知文件`},autoPreview:{type:Boolean,default:!1},inline:{type:Boolean,default:!1}},emits:[`preview`,`download`],setup(t,{emit:n}){let{file:i,url:d,fileName:p,autoPreview:m,inline:h}=S(t),{loading:g,error:y,fileSize:b,showModal:w,hasSource:D,pdfUrl:k,pdfTotalPages:j,wordContent:N,wordHeadings:I,excelSheets:L,displayFileName:z,fileType:B,fileConfig:V,loadFile:H,openPreview:U,downloadFile:W}=Ve({file:i,url:d,fileName:p},n),G=v(),{isFullscreen:K,toggleFullscreen:q,exitFullscreen:Y}=He(G);return T(w,e=>{e||Y()}),T([i,d,m,h,p],(e,t)=>{if(!(typeof window>`u`||!D.value)){if(h.value){H();return}if(w.value){[0,1,4].some(n=>e[n]!==t?.[n])&&H();return}m.value&&U()}},{immediate:!0}),(t,n)=>{let i=e;return _(),s(`div`,Ue,[o(` 文件信息卡片模式 `),!C(m)&&!C(h)?(_(),s(`div`,We,[c(`div`,Ge,[c(`div`,Ke,[u(i,{name:C(V).icon,size:40,color:C(V).color},null,8,[`name`,`color`])]),c(`div`,qe,[c(`div`,Je,[u(C(A),{style:{"max-width":`250px`}},{default:E(()=>[l(x(C(z)),1)]),_:1}),u(C(R),{type:C(V).tagType,size:`small`},{default:E(()=>[l(x(C(B).toUpperCase()),1)]),_:1},8,[`type`])]),c(`div`,Ye,[c(`span`,Xe,x(C(J)(C(b))),1)])]),c(`div`,Ze,[u(C(O),{type:`primary`,onClick:C(U)},{icon:E(()=>[u(i,{name:`ic:outline-visibility`})]),default:E(()=>[n[2]||=l(` 预览 `,-1)]),_:1},8,[`onClick`]),u(C(O),{type:`tertiary`,onClick:C(W)},{icon:E(()=>[u(i,{name:`ic:outline-download`})]),default:E(()=>[n[3]||=l(` 下载 `,-1)]),_:1},8,[`onClick`])])])])):o(`v-if`,!0),C(h)?(_(),s(`div`,Qe,[C(D)?C(g)||C(y)?(_(),s(`div`,$e,[C(g)?(_(),a(C(F),{key:0,size:`large`},{description:E(()=>[...n[4]||=[l(`正在加载文档…`,-1)]]),_:1})):(_(),a(C(P),{key:1,status:`error`,title:`预览失败`,description:C(y)},{footer:E(()=>[u(C(O),{size:`small`,onClick:C(H)},{default:E(()=>[...n[5]||=[l(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):C(B)===`pdf`?(_(),a(X,{key:2,"pdf-url":C(k),"total-pages":C(j)},null,8,[`pdf-url`,`total-pages`])):C(B)===`word`?(_(),a(Z,{key:3,content:C(N),headings:C(I)},null,8,[`content`,`headings`])):C(B)===`excel`?(_(),a(Q,{key:4,sheets:C(L),onReload:C(H)},null,8,[`sheets`,`onReload`])):(_(),a(C(P),{key:5,status:`warning`,title:`不支持的文件格式`,description:`支持 PDF、DOCX、XLSX 和 XLS 文件`})):(_(),a(C(P),{key:0,status:`info`,title:`暂无预览文件`,description:`选择文件后即可预览`}))])):o(`v-if`,!0),o(` 模态框预览 `),C(h)?o(`v-if`,!0):(_(),a(C(M),{key:2,show:C(w),"onUpdate:show":n[1]||=e=>f(w)?w.value=e:null,"mask-closable":!1,closable:!1,"auto-focus":!1,"transform-origin":`center`,style:{width:`85vw`,"max-width":`1200px`,"min-width":`800px`,height:`75vh`,"max-height":`700px`,"min-height":`500px`}},{default:E(()=>[c(`div`,{ref_key:`modalContainer`,ref:G,class:`modal-container`},[o(` 自定义头部 `),c(`div`,et,[c(`div`,tt,[u(i,{name:C(V).icon,size:20,color:C(V).color},null,8,[`name`,`color`]),c(`span`,null,x(C(z)),1)]),c(`div`,nt,[u(C(O),{size:`small`,type:`tertiary`,onClick:C(W)},{icon:E(()=>[u(i,{name:`ic:outline-download`})]),default:E(()=>[n[6]||=l(` 下载 `,-1)]),_:1},8,[`onClick`]),u(C(O),{size:`small`,type:`tertiary`,onClick:n[0]||=e=>w.value=!1},{icon:E(()=>[u(i,{name:`ic:outline-close`})]),_:1})])]),o(` 预览内容 `),c(`div`,rt,[o(` 文件信息头部 `),c(`div`,it,[c(`div`,at,[c(`div`,ot,[u(C(R),{type:C(V).tagType,size:`small`},{icon:E(()=>[u(i,{name:C(V).icon},null,8,[`name`])]),default:E(()=>[l(` `+x(C(B).toUpperCase()),1)]),_:1},8,[`type`]),u(C(A),{style:{"max-width":`300px`}},{default:E(()=>[l(x(C(z)),1)]),_:1}),c(`span`,st,x(C(J)(C(b))),1)]),c(`div`,ct,[u(C(O),{size:`small`,type:`tertiary`,disabled:C(g),onClick:C(H)},{icon:E(()=>[u(i,{name:`ic:outline-refresh`})]),default:E(()=>[n[7]||=l(` 刷新 `,-1)]),_:1},8,[`disabled`,`onClick`]),u(C(O),{size:`small`,type:`primary`,onClick:C(q)},{icon:E(()=>[u(i,{name:C(K)?`ic:outline-fullscreen-exit`:`ic:outline-fullscreen`},null,8,[`name`])]),default:E(()=>[l(` `+x(C(K)?`退出全屏`:`全屏`),1)]),_:1},8,[`onClick`])])])]),o(` 预览内容区域 `),c(`div`,lt,[o(` 加载和错误状态 `),C(D)?C(g)||C(y)?(_(),s(`div`,ut,[C(g)?(_(),a(C(F),{key:0,size:`large`},{description:E(()=>[l(` 正在加载`+x(C(B).toUpperCase())+`文件... `,1)]),_:1})):(_(),a(C(P),{key:1,status:`error`,title:`预览失败`,description:C(y)},{footer:E(()=>[u(C(O),{onClick:C(H)},{default:E(()=>[...n[8]||=[l(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):(_(),s(r,{key:2},[o(` 文件预览 — 委托给子组件 `),C(B)===`pdf`?(_(),a(X,{key:0,"pdf-url":C(k),"total-pages":C(j)},null,8,[`pdf-url`,`total-pages`])):C(B)===`word`?(_(),a(Z,{key:1,content:C(N),headings:C(I)},null,8,[`content`,`headings`])):C(B)===`excel`?(_(),a(Q,{key:2,sheets:C(L),onReload:C(H)},null,8,[`sheets`,`onReload`])):(_(),s(r,{key:3},[o(` 不支持的文件类型 `),u(C(P),{status:`warning`,title:`不支持的文件格式`,description:`暂不支持预览 ${C(B).toUpperCase()} 格式文件`},null,8,[`description`])],2112))],64)):(_(),a(C(P),{key:0,status:`info`,title:`暂无预览文件`,description:`选择文件后即可预览`}))])])],512)]),_:1},8,[`show`]))])}}}),[[`__scopeId`,`data-v-15033e6f`]]);export{He as n,Ve as r,dt as t};
1
+ import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{t as n}from"./html.js";import{Fragment as r,computed as i,createBlock as a,createCommentVNode as o,createElementBlock as s,createElementVNode as c,createTextVNode as l,createVNode as u,defineComponent as d,isRef as f,normalizeClass as p,normalizeStyle as m,onMounted as h,onUnmounted as g,openBlock as _,ref as v,renderList as y,resolveComponent as b,toDisplayString as x,toRefs as S,unref as C,vShow as w,watch as T,withCtx as E,withDirectives as D}from"vue";import{NButton as O,NDivider as k,NEllipsis as A,NEmpty as j,NModal as M,NPagination as N,NResult as P,NSpin as F,NTabPane as I,NTabs as L,NTag as ee,NText as R}from"naive-ui";import*as z from"xlsx";import B from"mammoth";const V={pdf:`pdf`,doc:`word`,docx:`word`,xls:`excel`,xlsx:`excel`},H={pdf:{tagType:`error`,icon:`ic:outline-picture-as-pdf`,color:`#dc2626`},word:{tagType:`info`,icon:`ic:outline-description`,color:`#2563eb`},excel:{tagType:`success`,icon:`ic:outline-grid-on`,color:`#16a34a`},unknown:{tagType:`default`,icon:`ic:outline-insert-drive-file`,color:`#6b7280`}},U={pdf:{min:.5,max:3,step:.25,default:1},word:{min:50,max:200,step:10,default:100}},W=[20,50,100,200],G=[`fullscreenchange`,`webkitfullscreenchange`,`mozfullscreenchange`,`MSFullscreenChange`],K=e=>{try{let t=e.split(`/`).pop()||e.split(`\\`).pop();if(t?.includes(`.`)){let n=decodeURIComponent(t.split(`?`)[0]);if(n&&n!==e)return n}}catch(e){console.warn(`解析URL文件名失败:`,e)}return`未知文件`},q=e=>{if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**+r).toFixed(1))+` `+n[r]},J=e=>{if(!e||e===`未知文件`)return`unknown`;let t=e.toLowerCase().split(`.`).pop();return t&&V[t]||`unknown`},Y=e=>H[e]||H.unknown,X=(e,t)=>n=>{let{min:r,max:i,step:a,default:o}=t;switch(n){case`reset`:e.value=o;break;case`in`:e.value<i&&(e.value+=a);break;case`out`:e.value>r&&(e.value-=a);break}},te=e=>{let t=``;for(;e>=0;)t=String.fromCharCode(65+e%26)+t,e=Math.floor(e/26)-1;return t},Z=e=>e==null?``:String(e),Q=1e5,ne=e=>{if(e==null||e===``)return`cell-empty`;let t=String(e).trim();return!isNaN(Number(t))&&t!==``?`cell-number`:t.match(/[■▬▪▫─━]/)?`cell-gantt`:t.match(/^\d{4}[-/]\d{2}[-/]\d{2}/)||t.match(/^\d{2}[-/]\d{2}[-/]\d{4}/)?`cell-date`:[`true`,`false`].includes(t.toLowerCase())?`cell-boolean`:t.length>20?`cell-text cell-long`:`cell-text`};function $(e,t,n){if(e===void 0)return t;if(!Number.isSafeInteger(e)||e<=0)throw Error(`previewLimits.${n} 必须为有限正整数`);return e}function re(e,t){let n=t?.isMain?t:{rowspan:1,colspan:1};return{value:e?.v??``,displayValue:e?e.w??z.utils.format_cell(e):``,type:e?.t,merged:!!t,hidden:!!(t&&!t.isMain),rowspan:n.rowspan,colspan:n.colspan}}function ie(e,t,n){let{s:r,e:i}=e;return[r.r,r.c,i.r,i.c].every(Number.isSafeInteger)&&r.r>=0&&r.c>=0&&i.r<=t&&i.c<=n&&i.r>=r.r&&i.c>=r.c}const ae=(e,t,n=Q)=>{let{c:r,r:i}=z.utils.decode_range(e[`!ref`]||`A1:A1`).e,a=(r+1)*(i+1);if(!Number.isSafeInteger(a)||a<1||a>$(n,Q,`maxCells`))throw Error(`工作表范围超过 ${n.toLocaleString()} 个单元格的预览上限,请下载文件查看`);let o=Array.from({length:r+1},(t,n)=>{let r=e[z.utils.encode_cell({r:0,c:n})],i=r?String(r.v??``).trim():`列${n+1}`;return{title:i||`列${n+1}`,key:`col_${n}`,width:Math.min(Math.max(i.length*12,80),200)}}),s=new Map,c=0;return t.forEach(e=>{if(!ie(e,i,r))return;let{s:{r:t,c:n},e:{r:o,c:l}}=e;if(c+=(o-t+1)*(l-n+1),!Number.isSafeInteger(c)||c>a)throw Error(`合并单元格累计范围超过预览上限,请下载文件查看`);for(let e=t;e<=o;e++)for(let r=n;r<=l;r++)s.set(`${e}-${r}`,{isMain:e===t&&r===n,rowspan:o-t+1,colspan:l-n+1})}),{data:Array.from({length:i+1},(t,n)=>{let i={};for(let t=0;t<=r;t++){let r=e[z.utils.encode_cell({r:n,c:t})],a=s.get(`${n}-${t}`);i[`col_${t}`]=re(r,a)}return i}),columns:o}};async function oe(e){return{url:URL.createObjectURL(e)+`#toolbar=1&navpanes=1&scrollbar=1&view=FitH`,totalPages:1}}async function se(e){let t=await e.arrayBuffer(),r=await B.convertToHtml({arrayBuffer:t,styleMap:[`p[style-name='Heading 1'] => h1:fresh`,`p[style-name='Heading 2'] => h2:fresh`,`p[style-name='Heading 3'] => h3:fresh`,`p[style-name='Title'] => h1.title:fresh`]}),i=[],a=document.createElement(`div`);a.innerHTML=n(r.value);let o=a.querySelectorAll(`h1, h2, h3, h4, h5, h6`);return Array.from(o).forEach((e,t)=>{let n=`heading-${t}`,r=parseInt(e.tagName.charAt(1)),a=e.textContent||``;e.id=n,i.push({id:n,text:a,level:r})}),{content:a.innerHTML,headings:i}}async function ce(e,t={}){let n=$(t.maxBytes,33554432,`maxBytes`),r=$(t.maxCells,Q,`maxCells`);if(e.size>n)throw Error(`Excel 文件超过 ${q(n)} 的预览上限,请下载文件查看`);let i=await e.arrayBuffer(),a=z.read(i,{type:`array`,cellStyles:!0,cellFormula:!0,cellDates:!0});if(!a.SheetNames.length)throw Error(`Excel文件中没有找到工作表`);let o=a.SheetNames.map(e=>{let t=a.Sheets[e],n=t[`!merges`]||[];return{name:e,data:[],merges:n,columns:[],load:()=>ae(t,n,r)}});return Object.assign(o[0],o[0].load?.()),{sheets:o}}const le={class:`file-container pdf-container`},ue={class:`file-toolbar`},de={class:`file-viewer`},fe=[`src`];var pe=t(d({name:`FilePreviewPdfViewer`,__name:`index`,props:{pdfUrl:{},totalPages:{}},setup(e){return(t,n)=>(_(),s(`div`,le,[c(`div`,ue,[n[1]||=c(`span`,null,`PDF 阅读器 · 翻页、缩放与打印由浏览器提供`,-1),e.pdfUrl?(_(),a(C(O),{key:0,tag:`a`,href:e.pdfUrl,target:`_blank`,rel:`noopener noreferrer`,size:`small`},{default:E(()=>[...n[0]||=[l(`在新标签页打开`,-1)]]),_:1},8,[`href`])):o(`v-if`,!0)]),c(`div`,de,[e.pdfUrl?(_(),s(`iframe`,{key:0,src:e.pdfUrl,title:`PDF预览`,class:`pdf-frame`},null,8,fe)):o(`v-if`,!0)])]))}}),[[`__scopeId`,`data-v-db027bb4`]]);const me={class:`file-container word-container`},he={class:`file-toolbar`},ge={class:`flex gap-2 items-center`},_e={class:`text-sm text-gray-600 min-w-12 text-center`},ve={class:`word-layout`},ye={class:`word-main`},be={key:0,class:`word-outline`},xe={class:`outline-content`},Se=[`onClick`],Ce={class:`word-content`},we=[`innerHTML`];var Te=t(d({__name:`index`,props:{content:{},headings:{}},setup(t){let n=v(!0),i=v(100),a=X(i,U.word),d=e=>{document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`start`})};return(f,h)=>{let g=e;return _(),s(`div`,me,[c(`div`,he,[c(`div`,ge,[u(C(O),{size:`small`,onClick:h[0]||=e=>n.value=!n.value},{icon:E(()=>[u(g,{name:`ic:outline-list`})]),default:E(()=>[l(` `+x(n.value?`隐藏`:`显示`)+`目录 `,1)]),_:1}),u(C(k),{vertical:``}),u(C(O),{size:`small`,disabled:i.value<=50,onClick:h[1]||=e=>C(a)(`out`)},{icon:E(()=>[u(g,{name:`ic:outline-zoom-out`})]),_:1},8,[`disabled`]),c(`span`,_e,x(i.value)+`% `,1),u(C(O),{size:`small`,disabled:i.value>=200,onClick:h[2]||=e=>C(a)(`in`)},{icon:E(()=>[u(g,{name:`ic:outline-zoom-in`})]),_:1},8,[`disabled`]),u(C(O),{size:`small`,onClick:h[3]||=e=>C(a)(`reset`)},{icon:E(()=>[u(g,{name:`ic:outline-fit-screen`})]),default:E(()=>[h[4]||=l(` 重置 `,-1)]),_:1})])]),c(`div`,ve,[c(`div`,ye,[o(` 侧边栏目录 `),n.value?(_(),s(`div`,be,[h[5]||=c(`div`,{class:`outline-header`},[c(`h3`,{class:`text-sm font-semibold`},`文档目录`)],-1),c(`div`,xe,[(_(!0),s(r,null,y(t.headings,(e,t)=>(_(),s(`div`,{key:t,class:p([`outline-item`,`level-${e.level}`]),onClick:t=>d(e.id)},x(e.text),11,Se))),128))])])):o(`v-if`,!0),o(` 主要内容区域 `),c(`div`,Ce,[c(`div`,{class:`word-document`,style:m({transform:`scale(${i.value/100})`,transformOrigin:`top center`}),innerHTML:t.content},null,12,we)])])])])}}}),[[`__scopeId`,`data-v-dae08a5f`]]);const Ee={class:`file-container excel-container`},De={class:`file-toolbar`},Oe={class:`flex justify-between items-center`},ke={class:`flex gap-2 items-center`},Ae={key:1,class:`text-sm text-gray-600`},je={class:`flex gap-2 items-center`},Me={class:`excel-viewer`},Ne={key:0,class:`excel-info`},Pe={class:`excel-table-container`},Fe={key:0,class:`excel-table`},Ie={class:`header-content`},Le={class:`column-letter`},Re={class:`column-title`},ze={class:`row-number`},Be=[`rowspan`,`colspan`,`title`],Ve={key:1,class:`excel-empty`},He={key:0,class:`excel-pagination`};var Ue=t(d({__name:`index`,props:{sheets:{}},emits:[`reload`],setup(t){let n=t,d=v(``),f=v(``),h=v(!1),g=v(1),b=v(50),S=v([]),k=v([]),A=i(()=>Math.ceil(S.value.length/b.value)),M=i(()=>{let e=(g.value-1)*b.value;return S.value.slice(e,e+b.value)}),P=e=>{b.value=e,g.value=1},F=e=>{f.value=``,S.value=[],k.value=[],g.value=1;let t=n.sheets.find(t=>t.name===e);if(t)try{let e=t.data.length>0?t:t.load?.()??t;S.value=e.data,k.value=e.columns}catch(e){f.value=e instanceof Error?e.message:`工作表解析失败`}};return T(d,e=>{F(e)}),T(()=>n.sheets,e=>{d.value=e[0]?.name??``,F(d.value)},{immediate:!0}),(n,i)=>{let v=e;return _(),s(`div`,Ee,[o(` 工具栏 `),c(`div`,De,[c(`div`,Oe,[c(`div`,ke,[t.sheets.length>1?(_(),a(C(L),{key:0,value:d.value,"onUpdate:value":i[0]||=e=>d.value=e,type:`card`,size:`small`},{default:E(()=>[(_(!0),s(r,null,y(t.sheets,e=>(_(),a(C(I),{key:e.name,name:e.name,tab:e.name},null,8,[`name`,`tab`]))),128))]),_:1},8,[`value`])):(_(),s(`span`,Ae,` 工作表: `+x(d.value),1))]),c(`div`,je,[u(C(O),{size:`small`,onClick:i[1]||=e=>h.value=!h.value},{icon:E(()=>[u(v,{name:`ic:outline-format-paint`})]),default:E(()=>[l(` `+x(h.value?`紧凑视图`:`完整格式`),1)]),_:1})])])]),c(`div`,Me,[o(` 信息面板 `),S.value.length>0?(_(),s(`div`,Ne,[u(C(R),{depth:`3`,class:`text-sm`},{default:E(()=>[l(` 当前工作表: `+x(d.value)+` | 总行数: `+x(S.value.length)+` | 总列数: `+x(k.value.length)+` | 当前页: `+x(g.value)+`/`+x(A.value),1)]),_:1})])):o(`v-if`,!0),o(` 表格 `),c(`div`,Pe,[c(`div`,{class:p([`excel-table-wrapper`,{"simple-mode":!h.value}])},[S.value.length>0?(_(),s(`table`,Fe,[c(`thead`,null,[c(`tr`,null,[i[4]||=c(`th`,{class:`row-number`},`行号`,-1),(_(!0),s(r,null,y(k.value,(e,t)=>(_(),s(`th`,{key:e.key,class:`excel-header`,style:m({minWidth:e.width+`px`})},[c(`div`,Ie,[c(`span`,Le,x(C(te)(t)),1),c(`span`,Re,x(e.title),1)])],4))),128))])]),c(`tbody`,null,[(_(!0),s(r,null,y(M.value,(e,t)=>(_(),s(`tr`,{key:t,class:`excel-row`},[c(`td`,ze,x((g.value-1)*b.value+t+1),1),(_(!0),s(r,null,y(k.value,t=>D((_(),s(`td`,{key:t.key,class:p([`excel-cell`,[C(ne)(e[t.key]?.value),e[t.key]?.merged?`merged-cell`:``,h.value?``:`compact-cell`]]),rowspan:e[t.key]?.rowspan||1,colspan:e[t.key]?.colspan||1,title:e[t.key]?.displayValue??C(Z)(e[t.key]?.value)},x(e[t.key]?.displayValue??C(Z)(e[t.key]?.value)),11,Be)),[[w,!e[t.key]?.hidden]])),128))]))),128))])])):(_(),s(`div`,Ve,[u(C(j),{description:f.value||`该工作表没有数据或解析失败`},{extra:E(()=>[u(C(O),{size:`small`,onClick:i[2]||=e=>n.$emit(`reload`)},{default:E(()=>[...i[5]||=[l(` 重新解析 `,-1)]]),_:1})]),_:1},8,[`description`])]))],2),o(` 分页 `),A.value>1?(_(),s(`div`,He,[u(C(N),{page:g.value,"onUpdate:page":i[3]||=e=>g.value=e,"page-count":A.value,"page-size":b.value,"show-size-picker":``,"page-sizes":C(W),"onUpdate:pageSize":P},null,8,[`page`,`page-count`,`page-size`,`page-sizes`])])):o(`v-if`,!0)])])])}}}),[[`__scopeId`,`data-v-5ed6f50d`]]);function We(e,t){if(!e.trim())return null;try{let n=new URL(t),r=new URL(e,n);if(r.username||r.password)return null;if(r.protocol===`https:`||r.protocol===`http:`&&r.origin===n.origin)return r.href}catch{}return null}function Ge(e,t){let{file:n,url:r,fileName:a,previewLimits:o}=e,s=v(!1),c=v(``),l=v(0),u=v(!1),d=v(``),f=v(0),p=v(``),m=v([]),h=v([]),_=0,y=null,b=!1,x=(e,t)=>e===_&&!b&&!t.signal.aborted,S=i(()=>a.value&&a.value!==`未知文件`?a.value:n.value?.name?n.value.name:r.value?K(r.value):`未知文件`),C=i(()=>J(S.value)),w=i(()=>Y(C.value)),E=i(()=>!!(n.value||r.value)),D=()=>{let e=d.value;d.value=``,e.startsWith(`blob:`)&&URL.revokeObjectURL(e.split(`#`)[0])},O=()=>{c.value=``,s.value=!1,l.value=0,D(),f.value=0,p.value=``,m.value=[],h.value=[]},k=e=>{c.value=e,s.value=!1},A=()=>{_+=1,y?.abort(),y=null,O()},j=async e=>{let t=n.value,i=r.value;if(t)return t;if(i){let t=We(i,window.location.href);if(!t)throw Error(`不支持此文件地址`);let n=await fetch(t,{signal:e});if(!n.ok)throw Error(`HTTP ${n.status}: ${n.statusText}`);let r=await n.blob();return new File([r],S.value,{type:r.type})}throw Error(`未提供文件或URL`)},M=async(e,t,n)=>{switch(t){case`pdf`:{let t=await oe(e);if(n!==_){URL.revokeObjectURL(t.url.split(`#`)[0]);return}d.value=t.url,f.value=t.totalPages;break}case`word`:{let t=await se(e);if(n!==_)return;p.value=t.content,m.value=t.headings;break}case`excel`:{let t=await ce(e,o?.value);if(n!==_)return;h.value=t.sheets;break}default:throw Error(`不支持的文件格式`)}},N=async()=>{if(b)return!1;let e=++_;y?.abort();let t=new AbortController;if(y=t,O(),!E.value)return y=null,!1;s.value=!0;try{let n=C.value,r=await j(t.signal);return e===_?(l.value=r.size,await M(r,n,e),x(e,t)):!1}catch(n){if(!x(e,t))return!1;let r=n instanceof Error?n.message:`未知错误`;return k(`${C.value.toUpperCase()}文件加载失败: ${r}`),!1}finally{e===_&&(s.value=!1,y=null)}};return T([n,r],([e,t])=>{!e&&!t&&A()},{flush:`sync`}),T(()=>n.value?.size,e=>{l.value=e||0},{immediate:!0}),g(()=>{b=!0,A()}),{loading:s,error:c,fileSize:l,showModal:u,hasSource:E,pdfUrl:d,pdfTotalPages:f,wordContent:p,wordHeadings:m,excelSheets:h,displayFileName:S,fileType:C,fileConfig:w,loadFile:N,openPreview:async()=>{if(b)return;let e=n.value||r.value;u.value=!0,await N()&&e&&e===(n.value||r.value)&&!b&&t(`preview`,e)},downloadFile:()=>{let e=n.value||r.value;if(!(b||!e)){if(n.value){let e=URL.createObjectURL(n.value);Object.assign(document.createElement(`a`),{href:e,download:S.value}).click(),URL.revokeObjectURL(e)}else if(r.value){let e=We(r.value,window.location.href);if(!e){k(`不支持此文件地址`);return}window.open(e,`_blank`,`noopener,noreferrer`)}t(`download`,e)}},clearPreview:A}}function Ke(e){let t=v(!1),n=()=>{t.value=!!document.fullscreenElement},r=(e,t=0)=>t>=e.length?(console.warn(`无法切换全屏状态`),Promise.resolve()):e[t]().catch(()=>r(e,t+1));return h(()=>{G.forEach(e=>document.addEventListener(e,n))}),g(()=>{G.forEach(e=>document.removeEventListener(e,n))}),{isFullscreen:t,toggleFullscreen:async()=>{let t=e.value;t&&await r(document.fullscreenElement?[()=>document.exitFullscreen(),()=>document.webkitExitFullscreen(),()=>document.mozCancelFullScreen(),()=>document.msExitFullscreen()]:[()=>t.requestFullscreen(),()=>t.webkitRequestFullscreen(),()=>t.mozRequestFullScreen(),()=>t.msRequestFullscreen()])},exitFullscreen:async()=>{if(document.fullscreenElement)try{await document.exitFullscreen()}catch{}t.value=!1}}}const qe={class:`c-file-preview-wrapper`},Je={key:0,class:`file-info-card`},Ye={class:`file-info`},Xe={class:`file-icon`},Ze={class:`file-details`},Qe={class:`file-name`},$e={class:`file-meta`},et={class:`file-size`},tt={class:`file-actions`},nt={key:1,class:`c-file-preview-inline`},rt={key:1,class:`status-container`,role:`status`},it={class:`modal-header`},at={class:`modal-title`},ot={class:`modal-actions`},st={class:`modal-content`},ct={class:`preview-header`},lt={class:`flex justify-between items-center`},ut={class:`flex items-center gap-3`},dt={class:`text-sm text-gray-500`},ft={class:`flex gap-2`},pt={class:`preview-content`},mt={key:1,class:`status-container`};var ht=t(d({name:`C_FilePreview`,__name:`index`,props:{previewLimits:{},file:{},url:{},fileName:{default:`未知文件`},autoPreview:{type:Boolean,default:!1},inline:{type:Boolean,default:!1}},emits:[`preview`,`download`],setup(t,{emit:n}){let i=t,{file:d,url:p,fileName:m,autoPreview:h,inline:g,previewLimits:y}=S(i),{loading:b,error:w,fileSize:D,showModal:k,hasSource:j,pdfUrl:N,pdfTotalPages:I,wordContent:L,wordHeadings:R,excelSheets:z,displayFileName:B,fileType:V,fileConfig:H,loadFile:U,openPreview:W,downloadFile:G}=Ge({file:d,url:p,fileName:m,previewLimits:y},n),K=v(),{isFullscreen:J,toggleFullscreen:Y,exitFullscreen:X}=Ke(K);return T(k,e=>{e||X()}),T([d,p,h,g,m,()=>i.previewLimits?.maxBytes,()=>i.previewLimits?.maxCells],(e,t)=>{if(!(typeof window>`u`||!j.value)){if(g.value){U();return}if(k.value){[0,1,4,5,6].some(n=>e[n]!==t?.[n])&&U();return}h.value&&W()}},{immediate:!0}),(t,n)=>{let i=e;return _(),s(`div`,qe,[o(` 文件信息卡片模式 `),!C(h)&&!C(g)?(_(),s(`div`,Je,[c(`div`,Ye,[c(`div`,Xe,[u(i,{name:C(H).icon,size:40,color:C(H).color},null,8,[`name`,`color`])]),c(`div`,Ze,[c(`div`,Qe,[u(C(A),{style:{"max-width":`250px`}},{default:E(()=>[l(x(C(B)),1)]),_:1}),u(C(ee),{type:C(H).tagType,size:`small`},{default:E(()=>[l(x(C(V).toUpperCase()),1)]),_:1},8,[`type`])]),c(`div`,$e,[c(`span`,et,x(C(q)(C(D))),1)])]),c(`div`,tt,[u(C(O),{type:`primary`,onClick:C(W)},{icon:E(()=>[u(i,{name:`ic:outline-visibility`})]),default:E(()=>[n[2]||=l(` 预览 `,-1)]),_:1},8,[`onClick`]),u(C(O),{type:`tertiary`,onClick:C(G)},{icon:E(()=>[u(i,{name:`ic:outline-download`})]),default:E(()=>[n[3]||=l(` 下载 `,-1)]),_:1},8,[`onClick`])])])])):o(`v-if`,!0),C(g)?(_(),s(`div`,nt,[C(j)?C(b)||C(w)?(_(),s(`div`,rt,[C(b)?(_(),a(C(F),{key:0,size:`large`},{description:E(()=>[...n[4]||=[l(`正在加载文档…`,-1)]]),_:1})):(_(),a(C(P),{key:1,status:`error`,title:`预览失败`,description:C(w)},{footer:E(()=>[u(C(O),{size:`small`,onClick:C(U)},{default:E(()=>[...n[5]||=[l(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):C(V)===`pdf`?(_(),a(pe,{key:2,"pdf-url":C(N),"total-pages":C(I)},null,8,[`pdf-url`,`total-pages`])):C(V)===`word`?(_(),a(Te,{key:3,content:C(L),headings:C(R)},null,8,[`content`,`headings`])):C(V)===`excel`?(_(),a(Ue,{key:4,sheets:C(z),onReload:C(U)},null,8,[`sheets`,`onReload`])):(_(),a(C(P),{key:5,status:`warning`,title:`不支持的文件格式`,description:`支持 PDF、DOCX、XLSX 和 XLS 文件`})):(_(),a(C(P),{key:0,status:`info`,title:`暂无预览文件`,description:`选择文件后即可预览`}))])):o(`v-if`,!0),o(` 模态框预览 `),C(g)?o(`v-if`,!0):(_(),a(C(M),{key:2,show:C(k),"onUpdate:show":n[1]||=e=>f(k)?k.value=e:null,"mask-closable":!1,closable:!1,"auto-focus":!1,"transform-origin":`center`,style:{width:`85vw`,"max-width":`1200px`,"min-width":`800px`,height:`75vh`,"max-height":`700px`,"min-height":`500px`}},{default:E(()=>[c(`div`,{ref_key:`modalContainer`,ref:K,class:`modal-container`},[o(` 自定义头部 `),c(`div`,it,[c(`div`,at,[u(i,{name:C(H).icon,size:20,color:C(H).color},null,8,[`name`,`color`]),c(`span`,null,x(C(B)),1)]),c(`div`,ot,[u(C(O),{size:`small`,type:`tertiary`,onClick:C(G)},{icon:E(()=>[u(i,{name:`ic:outline-download`})]),default:E(()=>[n[6]||=l(` 下载 `,-1)]),_:1},8,[`onClick`]),u(C(O),{size:`small`,type:`tertiary`,onClick:n[0]||=e=>k.value=!1},{icon:E(()=>[u(i,{name:`ic:outline-close`})]),_:1})])]),o(` 预览内容 `),c(`div`,st,[o(` 文件信息头部 `),c(`div`,ct,[c(`div`,lt,[c(`div`,ut,[u(C(ee),{type:C(H).tagType,size:`small`},{icon:E(()=>[u(i,{name:C(H).icon},null,8,[`name`])]),default:E(()=>[l(` `+x(C(V).toUpperCase()),1)]),_:1},8,[`type`]),u(C(A),{style:{"max-width":`300px`}},{default:E(()=>[l(x(C(B)),1)]),_:1}),c(`span`,dt,x(C(q)(C(D))),1)]),c(`div`,ft,[u(C(O),{size:`small`,type:`tertiary`,disabled:C(b),onClick:C(U)},{icon:E(()=>[u(i,{name:`ic:outline-refresh`})]),default:E(()=>[n[7]||=l(` 刷新 `,-1)]),_:1},8,[`disabled`,`onClick`]),u(C(O),{size:`small`,type:`primary`,onClick:C(Y)},{icon:E(()=>[u(i,{name:C(J)?`ic:outline-fullscreen-exit`:`ic:outline-fullscreen`},null,8,[`name`])]),default:E(()=>[l(` `+x(C(J)?`退出全屏`:`全屏`),1)]),_:1},8,[`onClick`])])])]),o(` 预览内容区域 `),c(`div`,pt,[o(` 加载和错误状态 `),C(j)?C(b)||C(w)?(_(),s(`div`,mt,[C(b)?(_(),a(C(F),{key:0,size:`large`},{description:E(()=>[l(` 正在加载`+x(C(V).toUpperCase())+`文件... `,1)]),_:1})):(_(),a(C(P),{key:1,status:`error`,title:`预览失败`,description:C(w)},{footer:E(()=>[u(C(O),{onClick:C(U)},{default:E(()=>[...n[8]||=[l(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):(_(),s(r,{key:2},[o(` 文件预览 — 委托给子组件 `),C(V)===`pdf`?(_(),a(pe,{key:0,"pdf-url":C(N),"total-pages":C(I)},null,8,[`pdf-url`,`total-pages`])):C(V)===`word`?(_(),a(Te,{key:1,content:C(L),headings:C(R)},null,8,[`content`,`headings`])):C(V)===`excel`?(_(),a(Ue,{key:2,sheets:C(z),onReload:C(U)},null,8,[`sheets`,`onReload`])):(_(),s(r,{key:3},[o(` 不支持的文件类型 `),u(C(P),{status:`warning`,title:`不支持的文件格式`,description:`暂不支持预览 ${C(V).toUpperCase()} 格式文件`},null,8,[`description`])],2112))],64)):(_(),a(C(P),{key:0,status:`info`,title:`暂无预览文件`,description:`选择文件后即可预览`}))])])],512)]),_:1},8,[`show`]))])}}}),[[`__scopeId`,`data-v-3988cd59`]]);export{Ke as n,Ge as r,ht as t};
@@ -1,12 +1,12 @@
1
1
  :root{--c-primary: var(--primary-color, #2080f0);--c-primary-hover: var(--primary-color-hover, #4098fc);--c-primary-pressed: var(--primary-color-pressed, #1060c9);--c-success: var(--success-color, #18a058);--c-warning: var(--warning-color, #f0a020);--c-error: var(--error-color, #d03050);--c-info: var(--info-color, #2080f0);--c-bg-body: var(--body-color, #ffffff);--c-bg-card: var(--card-color, #ffffff);--c-bg-surface: var(--popover-color, #ffffff);--c-text-1: var(--text-color-1, #262626);--c-text-2: var(--text-color-2, #525252);--c-text-3: var(--text-color-3, #a3a3a3);--c-text-4: var(--text-color-4, #c0c0c0);--c-border: var(--border-color, #e5e7eb);--c-radius-sm: var(--border-radius-small, 4px);--c-radius: var(--border-radius, 6px);--c-transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);--c-transition-base: 0.3s cubic-bezier(0.4, 0, 0.2, 1);--c-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);--c-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);--c-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1)}
2
2
 
3
- .c-form .c-form-actions[data-v-d94e0e8f] {
3
+ .c-form .c-form-actions[data-v-37ca39aa] {
4
4
  margin-top: var(--c-form-row-gap, 20px);
5
5
  }
6
- :is(.c-form--default[data-v-d94e0e8f], .c-form--compact[data-v-d94e0e8f], .c-form--comfortable[data-v-d94e0e8f]) .c-form-field .n-form-item-feedback-wrapper {
6
+ :is(.c-form--default[data-v-37ca39aa], .c-form--compact[data-v-37ca39aa], .c-form--comfortable[data-v-37ca39aa]) .c-form-field .n-form-item-feedback-wrapper {
7
7
  min-height: var(--c-form-item-gap);
8
8
  }
9
- :is(.c-form--default[data-v-d94e0e8f], .c-form--compact[data-v-d94e0e8f], .c-form--comfortable[data-v-d94e0e8f]) :is(
9
+ :is(.c-form--default[data-v-37ca39aa], .c-form--compact[data-v-37ca39aa], .c-form--comfortable[data-v-37ca39aa]) :is(
10
10
  .c-form-card > .n-card,
11
11
  .c-form-card > .form-content > .n-card,
12
12
  .c-form-steps > .steps-container > .steps-content,
@@ -19,12 +19,12 @@
19
19
  }
20
20
 
21
21
  /* layer: default */
22
- .visible[data-v-d94e0e8f]{visibility:visible;}
23
- .grid[data-v-d94e0e8f]{display:grid;}
24
- .inline[data-v-d94e0e8f]{display:inline;}
25
- .px[data-v-d94e0e8f]{padding-left:1rem;padding-right:1rem;}
26
- .blur[data-v-d94e0e8f]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
27
- .filter[data-v-d94e0e8f]{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
22
+ .visible[data-v-37ca39aa]{visibility:visible;}
23
+ .grid[data-v-37ca39aa]{display:grid;}
24
+ .inline[data-v-37ca39aa]{display:inline;}
25
+ .px[data-v-37ca39aa]{padding-left:1rem;padding-right:1rem;}
26
+ .blur[data-v-37ca39aa]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
27
+ .filter[data-v-37ca39aa]{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
28
28
 
29
29
  /* Card 布局样式 */
30
30
  .c-form-card[data-v-7818d397] {
package/dist/C_Form.css CHANGED
@@ -103,13 +103,13 @@
103
103
  .transition[data-v-b7a5de58]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
104
104
  .ease[data-v-b7a5de58]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
105
105
 
106
- .c-form .c-form-actions[data-v-d94e0e8f] {
106
+ .c-form .c-form-actions[data-v-37ca39aa] {
107
107
  margin-top: var(--c-form-row-gap, 20px);
108
108
  }
109
- :is(.c-form--default[data-v-d94e0e8f], .c-form--compact[data-v-d94e0e8f], .c-form--comfortable[data-v-d94e0e8f]) .c-form-field .n-form-item-feedback-wrapper {
109
+ :is(.c-form--default[data-v-37ca39aa], .c-form--compact[data-v-37ca39aa], .c-form--comfortable[data-v-37ca39aa]) .c-form-field .n-form-item-feedback-wrapper {
110
110
  min-height: var(--c-form-item-gap);
111
111
  }
112
- :is(.c-form--default[data-v-d94e0e8f], .c-form--compact[data-v-d94e0e8f], .c-form--comfortable[data-v-d94e0e8f]) :is(
112
+ :is(.c-form--default[data-v-37ca39aa], .c-form--compact[data-v-37ca39aa], .c-form--comfortable[data-v-37ca39aa]) :is(
113
113
  .c-form-card > .n-card,
114
114
  .c-form-card > .form-content > .n-card,
115
115
  .c-form-steps > .steps-container > .steps-content,
@@ -122,12 +122,12 @@
122
122
  }
123
123
 
124
124
  /* layer: default */
125
- .visible[data-v-d94e0e8f]{visibility:visible;}
126
- .grid[data-v-d94e0e8f]{display:grid;}
127
- .inline[data-v-d94e0e8f]{display:inline;}
128
- .px[data-v-d94e0e8f]{padding-left:1rem;padding-right:1rem;}
129
- .blur[data-v-d94e0e8f]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
130
- .filter[data-v-d94e0e8f]{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
125
+ .visible[data-v-37ca39aa]{visibility:visible;}
126
+ .grid[data-v-37ca39aa]{display:grid;}
127
+ .inline[data-v-37ca39aa]{display:inline;}
128
+ .px[data-v-37ca39aa]{padding-left:1rem;padding-right:1rem;}
129
+ .blur[data-v-37ca39aa]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
130
+ .filter[data-v-37ca39aa]{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
131
131
 
132
132
  /* Card 布局样式 */
133
133
  .c-form-card[data-v-7818d397] {
@@ -1,24 +1,24 @@
1
1
  :root{--c-primary: var(--primary-color, #2080f0);--c-primary-hover: var(--primary-color-hover, #4098fc);--c-primary-pressed: var(--primary-color-pressed, #1060c9);--c-success: var(--success-color, #18a058);--c-warning: var(--warning-color, #f0a020);--c-error: var(--error-color, #d03050);--c-info: var(--info-color, #2080f0);--c-bg-body: var(--body-color, #ffffff);--c-bg-card: var(--card-color, #ffffff);--c-bg-surface: var(--popover-color, #ffffff);--c-text-1: var(--text-color-1, #262626);--c-text-2: var(--text-color-2, #525252);--c-text-3: var(--text-color-3, #a3a3a3);--c-text-4: var(--text-color-4, #c0c0c0);--c-border: var(--border-color, #e5e7eb);--c-radius-sm: var(--border-radius-small, 4px);--c-radius: var(--border-radius, 6px);--c-transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);--c-transition-base: 0.3s cubic-bezier(0.4, 0, 0.2, 1);--c-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);--c-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);--c-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1)}
2
2
 
3
- .form-search-card[data-v-af873fa0] :is(.n-card-content, .n-card__content) {
3
+ .form-search-card[data-v-da3c9bb6] :is(.n-card-content, .n-card__content) {
4
4
  padding: var(--c-search-padding, 20px);
5
5
  }
6
- .form-search[data-v-af873fa0] {
6
+ .form-search[data-v-da3c9bb6] {
7
7
  display: flex;
8
8
  flex-wrap: wrap;
9
9
  align-items: end;
10
10
  gap: var(--c-search-row-gap, 20px) var(--c-search-gap, 32px);
11
11
  }
12
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] {
12
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] {
13
13
  position: relative;
14
14
  }
15
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-input,
16
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-select,
17
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-date-picker {
15
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-input,
16
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-select,
17
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-date-picker {
18
18
  width: 260px;
19
19
  max-width: 100%;
20
20
  }
21
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-space .n-button {
21
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-space .n-button {
22
22
  width: var(--n-height);
23
23
  padding: 0;
24
24
  display: flex;
@@ -26,14 +26,14 @@
26
26
  justify-content: center;
27
27
  transition: all 0.2s ease;
28
28
  }
29
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-space .n-button:hover {
29
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-space .n-button:hover {
30
30
  transform: translateY(-1px);
31
31
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
32
32
  }
33
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-space .n-button .n-button__icon {
33
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-space .n-button .n-button__icon {
34
34
  margin: 0;
35
35
  }
36
- .form-search .form-search-item-box .form-item-input .input-history[data-v-af873fa0] {
36
+ .form-search .form-search-item-box .form-item-input .input-history[data-v-da3c9bb6] {
37
37
  width: 100%;
38
38
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
39
39
  border: 1px solid var(--n-border-color);
@@ -49,7 +49,7 @@
49
49
  max-height: 240px;
50
50
  overflow-y: auto;
51
51
  }
52
- .form-search .form-search-item-box .form-item-input .input-history .history-item[data-v-af873fa0] {
52
+ .form-search .form-search-item-box .form-item-input .input-history .history-item[data-v-da3c9bb6] {
53
53
  padding: 10px 12px;
54
54
  display: flex;
55
55
  align-items: center;
@@ -60,24 +60,24 @@
60
60
  transition: all 0.2s ease;
61
61
  position: relative;
62
62
  }
63
- .form-search .form-search-item-box .form-item-input .input-history .history-item[data-v-af873fa0]:hover {
63
+ .form-search .form-search-item-box .form-item-input .input-history .history-item[data-v-da3c9bb6]:hover {
64
64
  background: var(--n-option-color-hover);
65
65
  }
66
- .form-search .form-search-item-box .form-item-input .input-history .history-item:hover .delete-icon[data-v-af873fa0] {
66
+ .form-search .form-search-item-box .form-item-input .input-history .history-item:hover .delete-icon[data-v-da3c9bb6] {
67
67
  opacity: 1;
68
68
  transform: scale(1);
69
69
  }
70
- .form-search .form-search-item-box .form-item-input .input-history .history-item[data-v-af873fa0]:not(:last-of-type) {
70
+ .form-search .form-search-item-box .form-item-input .input-history .history-item[data-v-da3c9bb6]:not(:last-of-type) {
71
71
  border-bottom: 1px solid var(--n-divider-color);
72
72
  }
73
- .form-search .form-search-item-box .form-item-input .input-history .history-item .history-text[data-v-af873fa0] {
73
+ .form-search .form-search-item-box .form-item-input .input-history .history-item .history-text[data-v-da3c9bb6] {
74
74
  flex: 1;
75
75
  overflow: hidden;
76
76
  text-overflow: ellipsis;
77
77
  white-space: nowrap;
78
78
  margin-right: 8px;
79
79
  }
80
- .form-search .form-search-item-box .form-item-input .input-history .history-item .delete-icon[data-v-af873fa0] {
80
+ .form-search .form-search-item-box .form-item-input .input-history .history-item .delete-icon[data-v-da3c9bb6] {
81
81
  opacity: 0;
82
82
  transform: scale(0.8);
83
83
  transition: all 0.2s ease;
@@ -89,100 +89,100 @@
89
89
  align-items: center;
90
90
  justify-content: center;
91
91
  }
92
- .form-search .form-search-item-box .form-item-input .input-history .history-item .delete-icon[data-v-af873fa0]:hover {
92
+ .form-search .form-search-item-box .form-item-input .input-history .history-item .delete-icon[data-v-da3c9bb6]:hover {
93
93
  background: var(--n-close-color-hover);
94
94
  color: var(--n-close-color-pressed);
95
95
  transform: scale(1.1);
96
96
  }
97
- .form-search .form-search-item-box .form-item-input .input-history .history-footer[data-v-af873fa0] {
97
+ .form-search .form-search-item-box .form-item-input .input-history .history-footer[data-v-da3c9bb6] {
98
98
  padding: 8px 12px;
99
99
  border-top: 1px solid var(--n-divider-color);
100
100
  background: var(--n-modal-color);
101
101
  }
102
- .form-search .form-search-item-box .form-item-input .input-history .history-footer .clear-all[data-v-af873fa0] {
102
+ .form-search .form-search-item-box .form-item-input .input-history .history-footer .clear-all[data-v-da3c9bb6] {
103
103
  color: var(--n-text-color-disabled);
104
104
  font-size: 12px;
105
105
  cursor: pointer;
106
106
  transition: all 0.2s ease;
107
107
  }
108
- .form-search .form-search-item-box .form-item-input .input-history .history-footer .clear-all[data-v-af873fa0]:hover {
108
+ .form-search .form-search-item-box .form-item-input .input-history .history-footer .clear-all[data-v-da3c9bb6]:hover {
109
109
  color: var(--n-error-color);
110
110
  }
111
- .form-search .form-search-item-box .form-item-input .input-history[data-v-af873fa0] {
111
+ .form-search .form-search-item-box .form-item-input .input-history[data-v-da3c9bb6] {
112
112
  /* custom scrollbar */
113
113
  }
114
- .form-search .form-search-item-box .form-item-input .input-history[data-v-af873fa0]::-webkit-scrollbar {
114
+ .form-search .form-search-item-box .form-item-input .input-history[data-v-da3c9bb6]::-webkit-scrollbar {
115
115
  width: 6px;
116
116
  }
117
- .form-search .form-search-item-box .form-item-input .input-history[data-v-af873fa0]::-webkit-scrollbar-track {
117
+ .form-search .form-search-item-box .form-item-input .input-history[data-v-da3c9bb6]::-webkit-scrollbar-track {
118
118
  background: transparent;
119
119
  }
120
- .form-search .form-search-item-box .form-item-input .input-history[data-v-af873fa0]::-webkit-scrollbar-thumb {
120
+ .form-search .form-search-item-box .form-item-input .input-history[data-v-da3c9bb6]::-webkit-scrollbar-thumb {
121
121
  background: var(--n-scrollbar-color);
122
122
  border-radius: 3px;
123
123
  }
124
- .form-search .form-search-item-box .form-item-input .input-history[data-v-af873fa0]::-webkit-scrollbar-thumb:hover {
124
+ .form-search .form-search-item-box .form-item-input .input-history[data-v-da3c9bb6]::-webkit-scrollbar-thumb:hover {
125
125
  background: var(--n-scrollbar-color-hover);
126
126
  }
127
127
 
128
128
  /* responsive */
129
129
  @media (max-width: 1400px) {
130
- .form-search[data-v-af873fa0] {
130
+ .form-search[data-v-da3c9bb6] {
131
131
  gap: var(--c-search-row-gap, 16px) var(--c-search-gap, 28px);
132
132
  }
133
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-input,
134
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-select,
135
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-date-picker {
133
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-input,
134
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-select,
135
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-date-picker {
136
136
  width: 240px;
137
137
  }
138
138
  }
139
139
  @media (max-width: 1200px) {
140
- .form-search[data-v-af873fa0] {
140
+ .form-search[data-v-da3c9bb6] {
141
141
  gap: var(--c-search-row-gap, 16px) var(--c-search-gap, 24px);
142
142
  }
143
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-input,
144
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-select,
145
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-date-picker {
143
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-input,
144
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-select,
145
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-date-picker {
146
146
  width: 220px;
147
147
  }
148
148
  }
149
149
  @media (max-width: 900px) {
150
- .form-search[data-v-af873fa0] {
150
+ .form-search[data-v-da3c9bb6] {
151
151
  gap: var(--c-search-row-gap, 12px) var(--c-search-gap, 20px);
152
152
  }
153
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-input,
154
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-select,
155
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-date-picker {
153
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-input,
154
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-select,
155
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-date-picker {
156
156
  width: 200px;
157
157
  }
158
158
  }
159
159
  @media (max-width: 600px) {
160
- .form-search-card[data-v-af873fa0] :is(.n-card-content, .n-card__content) {
160
+ .form-search-card[data-v-da3c9bb6] :is(.n-card-content, .n-card__content) {
161
161
  padding: var(--c-search-padding, 16px);
162
162
  }
163
- .form-search[data-v-af873fa0] {
163
+ .form-search[data-v-da3c9bb6] {
164
164
  gap: var(--c-search-row-gap, 12px) 0;
165
165
  }
166
- .form-search .form-search-item-box[data-v-af873fa0] {
166
+ .form-search .form-search-item-box[data-v-da3c9bb6] {
167
167
  width: 100%;
168
168
  }
169
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-input,
170
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-select,
171
- .form-search .form-search-item-box .form-item-input[data-v-af873fa0] .n-date-picker {
169
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-input,
170
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-select,
171
+ .form-search .form-search-item-box .form-item-input[data-v-da3c9bb6] .n-date-picker {
172
172
  width: 100%;
173
173
  }
174
- .form-search .form-search-item-box .form-item-input .input-history .history-item .delete-icon[data-v-af873fa0] {
174
+ .form-search .form-search-item-box .form-item-input .input-history .history-item .delete-icon[data-v-da3c9bb6] {
175
175
  opacity: 1;
176
176
  }
177
177
  }
178
178
 
179
179
  /* layer: icons */
180
- .i-mdi\:chevron-down[data-v-af873fa0]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M7.41 8.58L12 13.17l4.59-4.59L18 10l-6 6l-6-6z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1em;height:1em;}
181
- .i-mdi\:chevron-up[data-v-af873fa0]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6l-6 6z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1em;height:1em;}
182
- .i-mdi\:close[data-v-af873fa0]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1em;height:1em;}
183
- .i-mdi\:refresh[data-v-af873fa0]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M17.65 6.35A7.96 7.96 0 0 0 12 4a8 8 0 0 0-8 8a8 8 0 0 0 8 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18a6 6 0 0 1-6-6a6 6 0 0 1 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1em;height:1em;}
184
- .i-mdi\:search[data-v-af873fa0]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5l-1.5 1.5l-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16A6.5 6.5 0 0 1 3 9.5A6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14S14 12 14 9.5S12 5 9.5 5'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1em;height:1em;}
180
+ .i-mdi\:chevron-down[data-v-da3c9bb6]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M7.41 8.58L12 13.17l4.59-4.59L18 10l-6 6l-6-6z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1em;height:1em;}
181
+ .i-mdi\:chevron-up[data-v-da3c9bb6]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6l-6 6z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1em;height:1em;}
182
+ .i-mdi\:close[data-v-da3c9bb6]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1em;height:1em;}
183
+ .i-mdi\:refresh[data-v-da3c9bb6]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M17.65 6.35A7.96 7.96 0 0 0 12 4a8 8 0 0 0-8 8a8 8 0 0 0 8 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18a6 6 0 0 1-6-6a6 6 0 0 1 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1em;height:1em;}
184
+ .i-mdi\:search[data-v-da3c9bb6]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5l-1.5 1.5l-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16A6.5 6.5 0 0 1 3 9.5A6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14S14 12 14 9.5S12 5 9.5 5'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;width:1em;height:1em;}
185
185
  /* layer: default */
186
- .h-4[data-v-af873fa0]{height:1rem;}
187
- .w-4[data-v-af873fa0]{width:1rem;}
188
- .px[data-v-af873fa0]{padding-left:1rem;padding-right:1rem;}
186
+ .h-4[data-v-da3c9bb6]{height:1rem;}
187
+ .w-4[data-v-da3c9bb6]{width:1rem;}
188
+ .px[data-v-da3c9bb6]{padding-left:1rem;padding-right:1rem;}
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./density.cjs`),t=require(`./useComponentLocale.cjs`),n=require(`./feedback.cjs`),r=require(`./export-helper.cjs`),i=require(`./useActionTask.cjs`),a=require(`./storage.cjs`),o=require(`./data.cjs`);let s=require(`vue`),c=require(`naive-ui`);function l(e,t,n={}){let r=()=>(0,s.toValue)(n),i=(0,s.computed)(()=>!!r().storageKey),o=t=>e.value.find(e=>e.prop===t),c=()=>{let{storageKey:t}=r();t&&a.i(t,Object.fromEntries(e.value.filter(e=>e.hisList?.length).map(e=>[e.prop,e.hisList])))},l=()=>{let{storageKey:e}=r();if(!e)return;let t=a.t(e);t&&(Array.isArray(t)?t.map(e=>[e.prop,e.hisList]):Object.entries(t)).forEach(([e,t])=>{let n=o(e);n&&Array.isArray(t)&&(n.hisList=[...t])})},u=t=>{e.value.forEach(e=>{e.isFocus=!!(e.hisList&&e.prop===t)})},d=e=>{l(),u(e)},f=()=>u(),p=(e,n)=>{o(n)?.type===`input`&&(t.value[n]=e,f())},m=(e,t)=>{let n=o(e);n?.hisList&&(n.hisList.splice(t,1),n.hisList.length===0&&(n.isFocus=!1),c())},h=e=>{let t=o(e);t?.hisList&&(t.hisList=[],t.isFocus=!1,c())},g=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1),e.unshift(t);let i=Math.max(1,r().maxItems??5);return e.length>i&&(e.length=i),e};return{enabled:i,handleFocus:d,closeAllPanels:f,selectHistoryItem:p,deleteHistoryItem:m,clearAllHistory:h,saveCurrentInputs:()=>{i.value&&(Object.keys(t.value).forEach(e=>{let n=t.value[e];if(n==null||n===``)return;let r=o(e);if(r?.type!==`input`||!r.hisList)return;let i=String(n).trim();i&&g(r.hisList,i)}),f(),c())},restoreFromStorage:l}}function u(e,t){return e.defaultValue===void 0?e.type===`input`?``:e.type===`select`&&e.attrs?.multiple===!0?[]:e.type===`select`&&e.attrs?.clearable===!1?o.t(t):null:o.t(e.defaultValue)}function d(e,t,n){return t??(e.type===`input`?``:e.type===`select`&&e.attrs?.multiple===!0?[]:e.type===`select`&&e.attrs?.clearable===!1?u(e,n):null)}function f(e,r){let a=(0,s.computed)(()=>(0,s.toValue)(r.config)??{}),c=n.t(()=>a.value.feedback),{t:d}=t.t(()=>a.value.locale),f=(0,s.ref)(null),p=(0,s.computed)(()=>a.value.foldThreshold??7),m=(0,s.computed)(()=>a.value.requireValue??!0),h=(0,s.ref)(o.t(r.formItemList)),g=(0,s.ref)(o.t(r.formParams)),_=(0,s.ref)(!1),v=i.t(),y=(0,s.computed)(()=>v.isRunning(`search`)),b=!0;(0,s.getCurrentScope)()&&(0,s.onScopeDispose)(()=>{b=!1});let x=l(h,g,r.historyOptions),S=(0,s.computed)(()=>h.value.filter(e=>e.show!==!1)),C=(0,s.computed)(()=>S.value.filter((e,t)=>_.value||t<p.value)),w=(0,s.computed)(()=>S.value.length>p.value),T=e=>e==null||e===``||Array.isArray(e)&&e.length===0,E=()=>{let e=g.value;h.value.forEach(t=>{t.isFocus=!1,t.show!==!1&&(t.type===`select`&&!t.placeholder&&(t.placeholder=`请选择`),t.type!==`spacer`&&e[t.prop]===void 0&&(e[t.prop]=u(t,e[t.prop])))})},D=async()=>{try{return await f.value?.validate(),!0}catch{return!1}},O=e=>b&&!(0,s.toValue)(r.loading)&&o.a(g.value,e),k=async()=>{let t=o.t(g.value);if(!await D()||!O(t))return!1;if(m.value&&!Object.entries(t).filter(([e])=>e!==`pageNum`&&e!==`pageSize`).some(([,e])=>!T(e)))return c.warning(d(`search.valueRequired`)),!1;if(x.saveCurrentInputs(),e(`search`,o.t(t)),!O(t))return!1;if(!a.value.onSearch)return!0;try{return await a.value.onSearch(t),b}catch(e){return b&&c.error(d(`search.failed`),e),!1}},A=async()=>{let e=await v.run(`search`,k,()=>!(0,s.toValue)(r.loading));return e.executed&&e.value},j=t=>{e(`change-params`,o.t(t)),e(`update:modelValue`,o.t(t))},M=()=>{I=!0;let e=++L;(0,s.nextTick)(()=>{e===L&&(I=!1)})},N=()=>{f.value?.restoreValidation();let t=o.t(g.value),n=t;h.value.forEach(e=>{e.show===!1||e.type===`spacer`||e.prop===`pageNum`||e.prop===`pageSize`||(n[e.prop]=u(e,n[e.prop]))}),M(),g.value=t,j(t),e(`reset`,o.t(t))},P=()=>{_.value=!_.value},F=(e,t)=>{M(),h.value=o.t(e),g.value=o.t(t),E()},I=!1,L=0;return E(),(0,s.watch)(g,e=>{I||j(e)},{deep:!0}),(0,s.onMounted)(()=>{x.restoreFromStorage()}),{formRef:f,fields:h,formParams:g,expanded:_,searching:y,visibleFields:C,hasExpandButton:w,history:x,searchFn:A,resetFn:N,toggleFold:P,syncFromProps:F}}const p=e=>{if(Array.isArray(e)&&e.length===2){if(e.every(e=>typeof e==`string`))return{mode:`formatted`,value:[e[0],e[1]]};if(e.every(e=>typeof e==`number`&&Number.isFinite(e)))return{mode:`timestamp`,value:[e[0],e[1]]}}return{mode:`timestamp`,value:null}};function m(e,t){let n=e?.map(e=>e.value===void 0?e.label??e.labelDefault:e.value),r=Array.isArray(t)?t:[t],i=new Set([...n??[],...r]),a=new Map;for(let e of[!1,!0]){let t=`__c_form_search_boolean_${e}__`;for(;i.has(t);)t+=`_`;a.set(e,t),i.add(t)}let o=e=>typeof e==`boolean`?a.get(e):typeof e==`string`||typeof e==`number`?e:null,s=e=>e===a.get(!1)?!1:e===a.get(!0)?!0:e;return{options:e?.map((e,t)=>({...e,label:e.label??e.labelDefault??``,value:o(n[t])??void 0})),value:Array.isArray(t)?t.map(o).filter(e=>e!==null):o(t),decode:e=>Array.isArray(e)?e.map(s):e===null?null:s(e)}}const h=[`onClick`],g={class:`history-text`},_={key:0,class:`history-footer`},v=[`onClick`],y={class:`form-search-item-box form-search-actions`},b={class:`form-item-input`},x=(0,s.defineComponent)({name:`C_FormSearch`,__name:`index`,props:{bordered:{type:Boolean,default:!0},formItemList:{default:()=>[]},formParams:{default:()=>({})},modelValue:{},formSearchInputHistoryString:{},size:{},loading:{type:Boolean,default:!1},config:{}},emits:[`search`,`reset`,`change-params`,`update:modelValue`],setup(t,{expose:n,emit:r}){let i=t,a=r,o=(0,s.computed)(()=>e.t(i.config?.density)),l=(0,s.computed)(()=>i.size??o.value.size),u=(0,s.computed)(()=>{if(i.config?.density===void 0)return;let{gap:e,rowGap:t,padding:n}=o.value;return{"--c-search-gap":`${e}px`,"--c-search-row-gap":`${t}px`,"--c-search-padding":`${n}px`}}),{formRef:x,formParams:S,expanded:C,searching:w,visibleFields:T,hasExpandButton:E,history:D,searchFn:O,resetFn:k,toggleFold:A,syncFromProps:j}=f(a,{formItemList:i.formItemList,formParams:i.modelValue??i.formParams,config:()=>i.config,loading:()=>i.loading,historyOptions:()=>({storageKey:i.formSearchInputHistoryString,maxItems:i.config?.historyMaxItems})}),M=(0,s.computed)(()=>new Map(T.value.filter(e=>e.type===`select`).map(e=>[e.prop,m(e.list,S.value[e.prop])]))),N=e=>{let t=S.value[e];return typeof t==`string`?t:null},P=(e,t)=>{F(e,M.value.get(e)?.decode(t)??null)},F=(e,t)=>{let n=T.value.find(t=>t.prop===e),r=S.value;n&&(r[e]=d(n,t,r[e]))},I=e=>{let t=p(S.value[e]);return t.mode===`formatted`?{formattedValue:t.value,"onUpdate:formattedValue":t=>F(e,t)}:{value:t.value,"onUpdate:value":t=>F(e,t)}};return(0,s.watch)(()=>[i.formItemList,i.modelValue,i.formParams],([e,t,n])=>j(e,t??n),{deep:!0}),n({formRef:x,formParams:S,searchFn:O,cleanFn:k,changeFoldState:A}),(e,n)=>((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NCard),{class:(0,s.normalizeClass)([`form-search-card custom-card`,t.config?.density&&`form-search-card--${t.config.density}`]),style:(0,s.normalizeStyle)(u.value),bordered:t.bordered},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NForm),{class:`form-search`,model:(0,s.unref)(S),ref_key:`formRef`,ref:x,size:l.value,onSubmit:(0,s.withModifiers)((0,s.unref)(O),[`prevent`])},{default:(0,s.withCtx)(()=>[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)((0,s.unref)(T),(e,t)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{class:`form-search-item-box`,key:e.prop||t},[e.type===`spacer`?(0,s.createCommentVNode)(`v-if`,!0):((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NFormItem),{key:0,class:`form-item-input`,path:e.prop,rule:e.rules,"show-feedback":!1,"show-label":!1},{default:(0,s.withCtx)(()=>[e.type===`input`?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NInput),(0,s.mergeProps)({key:0,clearable:``,size:l.value,value:N(e.prop),"onUpdate:value":t=>F(e.prop,t),placeholder:e.placeholder},{ref_for:!0},e.attrs,{onFocus:t=>(0,s.unref)(D).handleFocus(e.prop),onBlur:(0,s.unref)(D).closeAllPanels}),null,16,[`size`,`value`,`onUpdate:value`,`placeholder`,`onFocus`,`onBlur`])):(0,s.createCommentVNode)(`v-if`,!0),e.isFocus?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:1,class:`input-history`,onMousedown:n[0]||=(0,s.withModifiers)(()=>{},[`prevent`])},[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(e.hisList,(t,r)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{class:`history-item`,onClick:n=>(0,s.unref)(D).selectHistoryItem(t,e.prop),key:t},[(0,s.createElementVNode)(`span`,g,(0,s.toDisplayString)(t),1),(0,s.createVNode)((0,s.unref)(c.NIcon),{class:`delete-icon`,size:`14`,onClick:(0,s.withModifiers)(t=>(0,s.unref)(D).deleteHistoryItem(e.prop,r),[`stop`])},{default:(0,s.withCtx)(()=>[...n[1]||=[(0,s.createElementVNode)(`div`,{class:`i-mdi:close`},null,-1)]]),_:1},8,[`onClick`])],8,h))),128)),e.hisList&&e.hisList.length>0?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,_,[(0,s.createElementVNode)(`span`,{class:`clear-all`,onClick:(0,s.withModifiers)(t=>(0,s.unref)(D).clearAllHistory(e.prop),[`stop`])},` 清空历史记录 `,8,v)])):(0,s.createCommentVNode)(`v-if`,!0)],32)):(0,s.createCommentVNode)(`v-if`,!0),e.type===`select`?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NSelect),(0,s.mergeProps)({key:2,value:M.value.get(e.prop)?.value,"onUpdate:value":t=>P(e.prop,t),placeholder:e.placeholder||`请选择`,clearable:``,size:l.value,options:M.value.get(e.prop)?.options},{ref_for:!0},e.attrs),null,16,[`value`,`onUpdate:value`,`placeholder`,`size`,`options`])):(0,s.createCommentVNode)(`v-if`,!0),e.type===`date-range`?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NDatePicker),(0,s.mergeProps)({key:3,type:`datetimerange`,size:l.value},{ref_for:!0},{...I(e.prop),...e.attrs},{format:`yyyy-MM-dd HH:mm`,"value-format":`yyyy-MM-dd HH:mm`,"start-placeholder":`开始时间`,"end-placeholder":`结束时间`,clearable:``}),null,16,[`size`])):(0,s.createCommentVNode)(`v-if`,!0)]),_:2},1032,[`path`,`rule`]))]))),128)),(0,s.createElementVNode)(`div`,y,[(0,s.createElementVNode)(`div`,b,[n[6]||=(0,s.createElementVNode)(`div`,{class:`button-label-placeholder`},null,-1),(0,s.createVNode)((0,s.unref)(c.NSpace),{size:t.config?.density?o.value.gap:8},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NTooltip),{trigger:`hover`},{trigger:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NButton),{type:`primary`,size:l.value,"aria-label":`搜索`,onClick:(0,s.unref)(O),loading:t.loading||(0,s.unref)(w)},{icon:(0,s.withCtx)(()=>[...n[2]||=[(0,s.createElementVNode)(`div`,{class:`i-mdi:search w-4 h-4`},null,-1)]]),_:1},8,[`size`,`onClick`,`loading`])]),default:(0,s.withCtx)(()=>[n[3]||=(0,s.createTextVNode)(` 搜索 `,-1)]),_:1}),(0,s.createVNode)((0,s.unref)(c.NTooltip),{trigger:`hover`},{trigger:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NButton),{size:l.value,"aria-label":`重置`,onClick:(0,s.unref)(k)},{icon:(0,s.withCtx)(()=>[...n[4]||=[(0,s.createElementVNode)(`div`,{class:`i-mdi:refresh w-4 h-4`},null,-1)]]),_:1},8,[`size`,`onClick`])]),default:(0,s.withCtx)(()=>[n[5]||=(0,s.createTextVNode)(` 重置 `,-1)]),_:1}),(0,s.unref)(E)?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NTooltip),{key:0,trigger:`hover`},{trigger:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NButton),{size:l.value,"aria-label":(0,s.unref)(C)?`收起搜索条件`:`展开搜索条件`,"aria-expanded":(0,s.unref)(C),onClick:(0,s.unref)(A)},{icon:(0,s.withCtx)(()=>[(0,s.createElementVNode)(`div`,{class:(0,s.normalizeClass)((0,s.unref)(C)?`i-mdi:chevron-up w-4 h-4`:`i-mdi:chevron-down w-4 h-4`)},null,2)]),_:1},8,[`size`,`aria-label`,`aria-expanded`,`onClick`])]),default:(0,s.withCtx)(()=>[(0,s.createTextVNode)(` `+(0,s.toDisplayString)((0,s.unref)(C)?`收起`:`展开`),1)]),_:1})):(0,s.createCommentVNode)(`v-if`,!0)]),_:1},8,[`size`])])])]),_:1},8,[`model`,`size`,`onSubmit`])]),_:1},8,[`class`,`style`,`bordered`]))}});var S=r.t(x,[[`__scopeId`,`data-v-af873fa0`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return S}});
1
+ require(`./chunk.cjs`);const e=require(`./density.cjs`),t=require(`./useComponentLocale.cjs`),n=require(`./feedback.cjs`),r=require(`./export-helper.cjs`),i=require(`./useActionTask.cjs`),a=require(`./storage.cjs`),o=require(`./data.cjs`);let s=require(`vue`),c=require(`naive-ui`);function l(e,t,n={}){let r=()=>(0,s.toValue)(n),i=(0,s.computed)(()=>!!r().storageKey),o=t=>e.value.find(e=>e.prop===t),c=()=>{let{storageKey:t}=r();t&&a.i(t,Object.fromEntries(e.value.filter(e=>e.hisList?.length).map(e=>[e.prop,e.hisList])))},l=()=>{let{storageKey:e}=r();if(!e)return;let t=a.t(e);t&&(Array.isArray(t)?t.map(e=>[e.prop,e.hisList]):Object.entries(t)).forEach(([e,t])=>{let n=o(e);n&&Array.isArray(t)&&(n.hisList=[...t])})},u=t=>{e.value.forEach(e=>{e.isFocus=!!(e.hisList&&e.prop===t)})},d=e=>{l(),u(e)},f=()=>u(),p=(e,n)=>{o(n)?.type===`input`&&(t.value[n]=e,f())},m=(e,t)=>{let n=o(e);n?.hisList&&(n.hisList.splice(t,1),n.hisList.length===0&&(n.isFocus=!1),c())},h=e=>{let t=o(e);t?.hisList&&(t.hisList=[],t.isFocus=!1,c())},g=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1),e.unshift(t);let i=Math.max(1,r().maxItems??5);return e.length>i&&(e.length=i),e};return{enabled:i,handleFocus:d,closeAllPanels:f,selectHistoryItem:p,deleteHistoryItem:m,clearAllHistory:h,saveCurrentInputs:()=>{i.value&&(Object.keys(t.value).forEach(e=>{let n=t.value[e];if(n==null||n===``)return;let r=o(e);if(r?.type!==`input`||!r.hisList)return;let i=String(n).trim();i&&g(r.hisList,i)}),f(),c())},restoreFromStorage:l}}function u(e,t){return e.defaultValue===void 0?e.type===`input`?``:e.type===`select`&&e.attrs?.multiple===!0?[]:e.type===`select`&&e.attrs?.clearable===!1?o.t(t):null:o.t(e.defaultValue)}function d(e,t,n){return t??(e.type===`input`?``:e.type===`select`&&e.attrs?.multiple===!0?[]:e.type===`select`&&e.attrs?.clearable===!1?u(e,n):null)}function f(e,r){let a=(0,s.computed)(()=>(0,s.toValue)(r.config)??{}),c=n.t(()=>a.value.feedback),{t:d}=t.t(()=>a.value.locale),f=(0,s.ref)(null),p=(0,s.computed)(()=>a.value.foldThreshold??7),m=(0,s.computed)(()=>a.value.requireValue??!0),h=(0,s.ref)(o.t(r.formItemList)),g=(0,s.ref)(o.t(r.formParams)),_=(0,s.ref)(!1),v=i.t(),y=(0,s.computed)(()=>v.isRunning(`search`)),b=!0;(0,s.getCurrentScope)()&&(0,s.onScopeDispose)(()=>{b=!1});let x=l(h,g,r.historyOptions),S=(0,s.computed)(()=>h.value.filter(e=>e.show!==!1)),C=(0,s.computed)(()=>S.value.filter((e,t)=>_.value||t<p.value)),w=(0,s.computed)(()=>S.value.length>p.value),T=e=>e==null||e===``||Array.isArray(e)&&e.length===0,E=()=>{let e=g.value;h.value.forEach(t=>{t.isFocus=!1,t.show!==!1&&(t.type===`select`&&!t.placeholder&&(t.placeholder=`请选择`),t.type!==`spacer`&&e[t.prop]===void 0&&(e[t.prop]=u(t,e[t.prop])))})},D=async()=>{try{return await f.value?.validate(),!0}catch{return w.value&&(_.value=!0),!1}},O=e=>b&&!(0,s.toValue)(r.loading)&&o.a(g.value,e),k=async()=>{let t=o.t(g.value);if(!await D()||!O(t))return!1;if(m.value&&!Object.entries(t).filter(([e])=>e!==`pageNum`&&e!==`pageSize`).some(([,e])=>!T(e)))return c.warning(d(`search.valueRequired`)),!1;if(x.saveCurrentInputs(),e(`search`,o.t(t)),!O(t))return!1;if(!a.value.onSearch)return!0;try{return await a.value.onSearch(t),b}catch(e){return b&&c.error(d(`search.failed`),e),!1}},A=async()=>{let e=await v.run(`search`,k,()=>!(0,s.toValue)(r.loading));return e.executed&&e.value},j=t=>{e(`change-params`,o.t(t)),e(`update:modelValue`,o.t(t))},M=()=>{I=!0;let e=++L;(0,s.nextTick)(()=>{e===L&&(I=!1)})},N=()=>{f.value?.restoreValidation();let t=o.t(g.value),n=t;h.value.forEach(e=>{e.show===!1||e.type===`spacer`||e.prop===`pageNum`||e.prop===`pageSize`||(n[e.prop]=u(e,n[e.prop]))}),M(),g.value=t,j(t),e(`reset`,o.t(t))},P=()=>{_.value=!_.value},F=(e,t)=>{M(),h.value=o.t(e),g.value=o.t(t),E()},I=!1,L=0;return E(),(0,s.watch)(g,e=>{I||j(e)},{deep:!0}),(0,s.onMounted)(()=>{x.restoreFromStorage()}),{formRef:f,fields:h,formParams:g,expanded:_,searching:y,visibleFields:C,availableFields:S,foldThreshold:p,hasExpandButton:w,history:x,searchFn:A,resetFn:N,toggleFold:P,syncFromProps:F}}const p=e=>{if(Array.isArray(e)&&e.length===2){if(e.every(e=>typeof e==`string`))return{mode:`formatted`,value:[e[0],e[1]]};if(e.every(e=>typeof e==`number`&&Number.isFinite(e)))return{mode:`timestamp`,value:[e[0],e[1]]}}return{mode:`timestamp`,value:null}};function m(e,t){let n=e?.map(e=>e.value===void 0?e.label??e.labelDefault:e.value),r=Array.isArray(t)?t:[t],i=new Set([...n??[],...r]),a=new Map;for(let e of[!1,!0]){let t=`__c_form_search_boolean_${e}__`;for(;i.has(t);)t+=`_`;a.set(e,t),i.add(t)}let o=e=>typeof e==`boolean`?a.get(e):typeof e==`string`||typeof e==`number`?e:null,s=e=>e===a.get(!1)?!1:e===a.get(!0)?!0:e;return{options:e?.map((e,t)=>({...e,label:e.label??e.labelDefault??``,value:o(n[t])??void 0})),value:Array.isArray(t)?t.map(o).filter(e=>e!==null):o(t),decode:e=>Array.isArray(e)?e.map(s):e===null?null:s(e)}}const h=[`onClick`],g={class:`history-text`},_={key:0,class:`history-footer`},v=[`onClick`],y={class:`form-search-item-box form-search-actions`},b={class:`form-item-input`},x=(0,s.defineComponent)({name:`C_FormSearch`,__name:`index`,props:{bordered:{type:Boolean,default:!0},formItemList:{default:()=>[]},formParams:{default:()=>({})},modelValue:{},formSearchInputHistoryString:{},size:{},loading:{type:Boolean,default:!1},config:{}},emits:[`search`,`reset`,`change-params`,`update:modelValue`],setup(t,{expose:n,emit:r}){let i=t,a=r,o=(0,s.computed)(()=>e.t(i.config?.density)),l=(0,s.computed)(()=>i.size??o.value.size),u=(0,s.computed)(()=>{if(i.config?.density===void 0)return;let{gap:e,rowGap:t,padding:n}=o.value;return{"--c-search-gap":`${e}px`,"--c-search-row-gap":`${t}px`,"--c-search-padding":`${n}px`}}),{formRef:x,formParams:S,expanded:C,searching:w,availableFields:T,foldThreshold:E,hasExpandButton:D,history:O,searchFn:k,resetFn:A,toggleFold:j,syncFromProps:M}=f(a,{formItemList:i.formItemList,formParams:i.modelValue??i.formParams,config:()=>i.config,loading:()=>i.loading,historyOptions:()=>({storageKey:i.formSearchInputHistoryString,maxItems:i.config?.historyMaxItems})}),N=(0,s.computed)(()=>new Map(T.value.filter(e=>e.type===`select`).map(e=>[e.prop,m(e.list,S.value[e.prop])]))),P=e=>{let t=S.value[e];return typeof t==`string`?t:null},F=(e,t)=>{I(e,N.value.get(e)?.decode(t)??null)},I=(e,t)=>{let n=T.value.find(t=>t.prop===e),r=S.value;n&&(r[e]=d(n,t,r[e]))},L=e=>{let t=p(S.value[e]);return t.mode===`formatted`?{formattedValue:t.value,"onUpdate:formattedValue":t=>I(e,t)}:{value:t.value,"onUpdate:value":t=>I(e,t)}};return(0,s.watch)(()=>[i.formItemList,i.modelValue,i.formParams],([e,t,n])=>M(e,t??n),{deep:!0}),n({formRef:x,formParams:S,searchFn:k,cleanFn:A,changeFoldState:j}),(e,n)=>((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NCard),{class:(0,s.normalizeClass)([`form-search-card custom-card`,t.config?.density&&`form-search-card--${t.config.density}`]),style:(0,s.normalizeStyle)(u.value),bordered:t.bordered},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NForm),{class:`form-search`,model:(0,s.unref)(S),ref_key:`formRef`,ref:x,size:l.value,onSubmit:(0,s.withModifiers)((0,s.unref)(k),[`prevent`])},{default:(0,s.withCtx)(()=>[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)((0,s.unref)(T),(e,t)=>(0,s.withDirectives)(((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{class:`form-search-item-box`,key:e.prop||t},[e.type===`spacer`?(0,s.createCommentVNode)(`v-if`,!0):((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NFormItem),{key:0,class:`form-item-input`,path:e.prop,rule:e.rules,"show-feedback":!1,"show-label":!1},{default:(0,s.withCtx)(()=>[e.type===`input`?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NInput),(0,s.mergeProps)({key:0,clearable:``,size:l.value,value:P(e.prop),"onUpdate:value":t=>I(e.prop,t),placeholder:e.placeholder},{ref_for:!0},e.attrs,{onFocus:t=>(0,s.unref)(O).handleFocus(e.prop),onBlur:(0,s.unref)(O).closeAllPanels}),null,16,[`size`,`value`,`onUpdate:value`,`placeholder`,`onFocus`,`onBlur`])):(0,s.createCommentVNode)(`v-if`,!0),e.isFocus?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:1,class:`input-history`,onMousedown:n[0]||=(0,s.withModifiers)(()=>{},[`prevent`])},[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(e.hisList,(t,r)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{class:`history-item`,onClick:n=>(0,s.unref)(O).selectHistoryItem(t,e.prop),key:t},[(0,s.createElementVNode)(`span`,g,(0,s.toDisplayString)(t),1),(0,s.createVNode)((0,s.unref)(c.NIcon),{class:`delete-icon`,size:`14`,onClick:(0,s.withModifiers)(t=>(0,s.unref)(O).deleteHistoryItem(e.prop,r),[`stop`])},{default:(0,s.withCtx)(()=>[...n[1]||=[(0,s.createElementVNode)(`div`,{class:`i-mdi:close`},null,-1)]]),_:1},8,[`onClick`])],8,h))),128)),e.hisList&&e.hisList.length>0?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,_,[(0,s.createElementVNode)(`span`,{class:`clear-all`,onClick:(0,s.withModifiers)(t=>(0,s.unref)(O).clearAllHistory(e.prop),[`stop`])},` 清空历史记录 `,8,v)])):(0,s.createCommentVNode)(`v-if`,!0)],32)):(0,s.createCommentVNode)(`v-if`,!0),e.type===`select`?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NSelect),(0,s.mergeProps)({key:2,value:N.value.get(e.prop)?.value,"onUpdate:value":t=>F(e.prop,t),placeholder:e.placeholder||`请选择`,clearable:``,size:l.value,options:N.value.get(e.prop)?.options},{ref_for:!0},e.attrs),null,16,[`value`,`onUpdate:value`,`placeholder`,`size`,`options`])):(0,s.createCommentVNode)(`v-if`,!0),e.type===`date-range`?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NDatePicker),(0,s.mergeProps)({key:3,type:`datetimerange`,size:l.value},{ref_for:!0},{...L(e.prop),...e.attrs},{format:`yyyy-MM-dd HH:mm`,"value-format":`yyyy-MM-dd HH:mm`,"start-placeholder":`开始时间`,"end-placeholder":`结束时间`,clearable:``}),null,16,[`size`])):(0,s.createCommentVNode)(`v-if`,!0)]),_:2},1032,[`path`,`rule`]))])),[[s.vShow,(0,s.unref)(C)||t<(0,s.unref)(E)]])),128)),(0,s.createElementVNode)(`div`,y,[(0,s.createElementVNode)(`div`,b,[n[6]||=(0,s.createElementVNode)(`div`,{class:`button-label-placeholder`},null,-1),(0,s.createVNode)((0,s.unref)(c.NSpace),{size:t.config?.density?o.value.gap:8},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NTooltip),{trigger:`hover`},{trigger:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NButton),{type:`primary`,size:l.value,"aria-label":`搜索`,onClick:(0,s.unref)(k),loading:t.loading||(0,s.unref)(w)},{icon:(0,s.withCtx)(()=>[...n[2]||=[(0,s.createElementVNode)(`div`,{class:`i-mdi:search w-4 h-4`},null,-1)]]),_:1},8,[`size`,`onClick`,`loading`])]),default:(0,s.withCtx)(()=>[n[3]||=(0,s.createTextVNode)(` 搜索 `,-1)]),_:1}),(0,s.createVNode)((0,s.unref)(c.NTooltip),{trigger:`hover`},{trigger:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NButton),{size:l.value,"aria-label":`重置`,onClick:(0,s.unref)(A)},{icon:(0,s.withCtx)(()=>[...n[4]||=[(0,s.createElementVNode)(`div`,{class:`i-mdi:refresh w-4 h-4`},null,-1)]]),_:1},8,[`size`,`onClick`])]),default:(0,s.withCtx)(()=>[n[5]||=(0,s.createTextVNode)(` 重置 `,-1)]),_:1}),(0,s.unref)(D)?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NTooltip),{key:0,trigger:`hover`},{trigger:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NButton),{size:l.value,"aria-label":(0,s.unref)(C)?`收起搜索条件`:`展开搜索条件`,"aria-expanded":(0,s.unref)(C),onClick:(0,s.unref)(j)},{icon:(0,s.withCtx)(()=>[(0,s.createElementVNode)(`div`,{class:(0,s.normalizeClass)((0,s.unref)(C)?`i-mdi:chevron-up w-4 h-4`:`i-mdi:chevron-down w-4 h-4`)},null,2)]),_:1},8,[`size`,`aria-label`,`aria-expanded`,`onClick`])]),default:(0,s.withCtx)(()=>[(0,s.createTextVNode)(` `+(0,s.toDisplayString)((0,s.unref)(C)?`收起`:`展开`),1)]),_:1})):(0,s.createCommentVNode)(`v-if`,!0)]),_:1},8,[`size`])])])]),_:1},8,[`model`,`size`,`onSubmit`])]),_:1},8,[`class`,`style`,`bordered`]))}});var S=r.t(x,[[`__scopeId`,`data-v-da3c9bb6`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return S}});