@robot-admin/naive-ui-components 0.20.0 → 0.21.1

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 (179) hide show
  1. package/CHANGELOG.md +22 -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_Chat.css +90 -90
  9. package/dist/C_Chat2.cjs +1 -1
  10. package/dist/C_Chat2.js +1 -1
  11. package/dist/C_CollapsePanel2.cjs +1 -1
  12. package/dist/C_CollapsePanel2.js +1 -1
  13. package/dist/C_Draggable.css +53 -53
  14. package/dist/C_Draggable2.cjs +1 -1
  15. package/dist/C_Draggable2.js +1 -1
  16. package/dist/C_FilePreview.css +98 -98
  17. package/dist/C_FilePreview.d.cts +2 -2
  18. package/dist/C_FilePreview.d.ts +2 -2
  19. package/dist/C_FilePreview2.cjs +1 -1
  20. package/dist/C_FilePreview2.js +1 -1
  21. package/dist/C_Form.base.css +9 -9
  22. package/dist/C_Form.css +9 -9
  23. package/dist/C_FormSearch.css +52 -52
  24. package/dist/C_FormSearch2.cjs +1 -1
  25. package/dist/C_FormSearch2.js +1 -1
  26. package/dist/C_Language.css +2 -2
  27. package/dist/C_Language2.cjs +1 -1
  28. package/dist/C_Language2.js +1 -1
  29. package/dist/C_Login.css +79 -79
  30. package/dist/C_Login2.cjs +1 -1
  31. package/dist/C_Login2.js +1 -1
  32. package/dist/C_Markdown.css +1 -2
  33. package/dist/C_Menu.css +1 -1
  34. package/dist/C_Menu.d.cts +2 -2
  35. package/dist/C_Menu.d.ts +2 -2
  36. package/dist/C_Menu2.cjs +1 -1
  37. package/dist/C_Menu2.js +1 -1
  38. package/dist/C_NotificationCenter.css +124 -124
  39. package/dist/C_NotificationCenter.d.cts +2 -2
  40. package/dist/C_NotificationCenter.d.ts +2 -2
  41. package/dist/C_NotificationCenter2.cjs +1 -1
  42. package/dist/C_NotificationCenter2.js +1 -1
  43. package/dist/C_Skeleton.css +2 -2
  44. package/dist/C_Skeleton2.cjs +1 -1
  45. package/dist/C_Skeleton2.js +1 -1
  46. package/dist/C_SplitPane.css +66 -66
  47. package/dist/C_SplitPane2.cjs +1 -1
  48. package/dist/C_SplitPane2.js +1 -1
  49. package/dist/C_Table.base.css +9 -9
  50. package/dist/C_Table.css +9 -9
  51. package/dist/C_Table.d.ts +1 -0
  52. package/dist/C_Theme2.cjs +1 -1
  53. package/dist/C_Theme2.js +1 -1
  54. package/dist/C_Timeline.css +46 -46
  55. package/dist/C_Timeline2.cjs +1 -1
  56. package/dist/C_Timeline2.js +1 -1
  57. package/dist/C_Transfer.css +26 -26
  58. package/dist/C_Transfer2.cjs +1 -1
  59. package/dist/C_Transfer2.js +1 -1
  60. package/dist/C_Tree.css +23 -23
  61. package/dist/C_Tree.d.ts +1 -0
  62. package/dist/C_Tree2.cjs +1 -1
  63. package/dist/C_Tree2.js +1 -1
  64. package/dist/C_Upload2.cjs +1 -1
  65. package/dist/C_Upload2.js +1 -1
  66. package/dist/C_VideoPlayer.d.cts +2 -2
  67. package/dist/C_VideoPlayer.d.ts +2 -2
  68. package/dist/C_VideoPlayer2.cjs +2 -2
  69. package/dist/C_VideoPlayer2.js +2 -2
  70. package/dist/C_WaterFall.css +31 -29
  71. package/dist/C_WaterFall2.cjs +1 -1
  72. package/dist/C_WaterFall2.js +1 -1
  73. package/dist/C_WorkFlow.css +112 -111
  74. package/dist/C_WorkFlow2.cjs +1 -1
  75. package/dist/C_WorkFlow2.js +1 -1
  76. package/dist/config.cjs +1 -0
  77. package/dist/config.d.cts +8 -0
  78. package/dist/config.d.ts +8 -0
  79. package/dist/config.js +1 -0
  80. package/dist/constants.d.cts +1 -1
  81. package/dist/constants.d.ts +1 -1
  82. package/dist/constants2.d.cts +1 -1
  83. package/dist/constants2.d.ts +1 -1
  84. package/dist/constants3.d.cts +32 -9
  85. package/dist/constants3.d.ts +32 -9
  86. package/dist/constants4.d.cts +16 -5
  87. package/dist/constants4.d.ts +16 -5
  88. package/dist/constants5.d.cts +22 -18
  89. package/dist/constants5.d.ts +22 -18
  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 +7 -6
  100. package/dist/index.d.ts +8 -6
  101. package/dist/index.js +1 -1
  102. package/dist/index.vue.d.cts +5 -5
  103. package/dist/index.vue.d.ts +5 -5
  104. package/dist/index10.vue.d.cts +3 -3
  105. package/dist/index10.vue.d.ts +2 -2
  106. package/dist/index11.vue.d.cts +2 -2
  107. package/dist/index11.vue.d.ts +2 -2
  108. package/dist/index12.vue.d.cts +2 -2
  109. package/dist/index12.vue.d.ts +3 -3
  110. package/dist/index13.vue.d.cts +3 -3
  111. package/dist/index13.vue.d.ts +8 -8
  112. package/dist/index14.vue.d.cts +8 -8
  113. package/dist/index14.vue.d.ts +0 -1
  114. package/dist/index15.vue.d.cts +0 -1
  115. package/dist/index15.vue.d.ts +1 -1
  116. package/dist/index16.vue.d.cts +1 -1
  117. package/dist/index16.vue.d.ts +1 -1
  118. package/dist/index17.vue.d.cts +1 -1
  119. package/dist/index17.vue.d.ts +2 -2
  120. package/dist/index18.vue.d.cts +2 -2
  121. package/dist/index18.vue.d.ts +44 -40
  122. package/dist/index19.vue.d.cts +3 -3
  123. package/dist/index19.vue.d.ts +3 -3
  124. package/dist/index20.vue.d.cts +3 -3
  125. package/dist/index20.vue.d.ts +3 -3
  126. package/dist/index21.vue.d.cts +2 -2
  127. package/dist/index21.vue.d.ts +2 -2
  128. package/dist/index25.vue.d.cts +0 -1
  129. package/dist/index25.vue.d.ts +0 -1
  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 +3 -3
  133. package/dist/index3.vue.d.ts +3 -3
  134. package/dist/index4.vue.d.cts +44 -40
  135. package/dist/index6.vue.d.ts +0 -2
  136. package/dist/index7.vue.d.cts +0 -2
  137. package/dist/index8.vue.d.ts +3 -3
  138. package/dist/index9.vue.d.cts +3 -3
  139. package/dist/index9.vue.d.ts +3 -3
  140. package/dist/mapUtils.d.cts +2 -2
  141. package/dist/mapUtils.d.ts +2 -2
  142. package/dist/style.css +848 -846
  143. package/dist/useCalendarEvents.d.cts +1 -1
  144. package/dist/useCalendarEvents.d.ts +1 -1
  145. package/dist/useCollapsePanel.d.cts +3 -3
  146. package/dist/useCollapsePanel.d.ts +3 -3
  147. package/dist/useComponentLocale.cjs +1 -1
  148. package/dist/useComponentLocale.js +1 -1
  149. package/dist/useCropperCore.d.cts +8 -8
  150. package/dist/useCropperCore.d.ts +8 -8
  151. package/dist/useDraggableLayout.d.cts +1 -0
  152. package/dist/useDraggableLayout.d.ts +1 -0
  153. package/dist/useEdgeInteraction.d.cts +3 -3
  154. package/dist/useEdgeInteraction.d.ts +3 -3
  155. package/dist/useFullscreen.d.cts +41 -23
  156. package/dist/useFullscreen.d.ts +41 -23
  157. package/dist/useInfiniteScroll.d.cts +7 -5
  158. package/dist/useInfiniteScroll.d.ts +7 -5
  159. package/dist/useQRCode.d.cts +4 -4
  160. package/dist/useQRCode.d.ts +4 -4
  161. package/dist/useSignatureHistory.d.cts +4 -4
  162. package/dist/useSignatureHistory.d.ts +4 -4
  163. package/dist/useSplitResize.d.cts +3 -4
  164. package/dist/useSplitResize.d.ts +3 -4
  165. package/dist/useTableQuery.cjs +1 -1
  166. package/dist/useTableQuery.d.cts +8 -12
  167. package/dist/useTableQuery.d.ts +8 -12
  168. package/dist/useTableQuery.js +1 -1
  169. package/dist/useWorkflowValidation.d.cts +105 -97
  170. package/dist/useWorkflowValidation.d.ts +105 -97
  171. package/dist/verification.d.cts +6 -6
  172. package/dist/verification.d.ts +6 -6
  173. package/docs/architecture.en.md +3 -1
  174. package/docs/architecture.md +3 -1
  175. package/docs/guides/usage.en.md +16 -0
  176. package/docs/guides/usage.md +56 -0
  177. package/package.json +27 -10
  178. package/dist/context.cjs +0 -1
  179. package/dist/context.js +0 -1
@@ -1 +1 @@
1
- import{t as e}from"./density.js";import{t}from"./useComponentLocale.js";import{t as n}from"./feedback.js";import{t as r}from"./export-helper.js";import{t as i}from"./useActionTask.js";import{i as a,t as o}from"./storage.js";import{a as s,t as c}from"./data.js";import{Fragment as l,computed as u,createBlock as d,createCommentVNode as f,createElementBlock as p,createElementVNode as m,createTextVNode as h,createVNode as g,defineComponent as _,getCurrentScope as v,mergeProps as y,nextTick as b,normalizeClass as x,normalizeStyle as S,onMounted as C,onScopeDispose as w,openBlock as T,ref as E,renderList as D,toDisplayString as O,toValue as k,unref as A,watch as j,withCtx as M,withModifiers as N}from"vue";import{NButton as P,NCard as F,NDatePicker as I,NForm as L,NFormItem as R,NIcon as z,NInput as B,NSelect as V,NSpace as H,NTooltip as U}from"naive-ui";function W(e,t,n={}){let r=()=>k(n),i=u(()=>!!r().storageKey),s=t=>e.value.find(e=>e.prop===t),c=()=>{let{storageKey:t}=r();t&&a(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=o(e);t&&(Array.isArray(t)?t.map(e=>[e.prop,e.hisList]):Object.entries(t)).forEach(([e,t])=>{let n=s(e);n&&Array.isArray(t)&&(n.hisList=[...t])})},d=t=>{e.value.forEach(e=>{e.isFocus=!!(e.hisList&&e.prop===t)})},f=e=>{l(),d(e)},p=()=>d(),m=(e,n)=>{s(n)?.type===`input`&&(t.value[n]=e,p())},h=(e,t)=>{let n=s(e);n?.hisList&&(n.hisList.splice(t,1),n.hisList.length===0&&(n.isFocus=!1),c())},g=e=>{let t=s(e);t?.hisList&&(t.hisList=[],t.isFocus=!1,c())},_=(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:f,closeAllPanels:p,selectHistoryItem:m,deleteHistoryItem:h,clearAllHistory:g,saveCurrentInputs:()=>{i.value&&(Object.keys(t.value).forEach(e=>{let n=t.value[e];if(n==null||n===``)return;let r=s(e);if(r?.type!==`input`||!r.hisList)return;let i=String(n).trim();i&&_(r.hisList,i)}),p(),c())},restoreFromStorage:l}}function G(e,t){return e.defaultValue===void 0?e.type===`input`?``:e.type===`select`&&e.attrs?.multiple===!0?[]:e.type===`select`&&e.attrs?.clearable===!1?c(t):null:c(e.defaultValue)}function K(e,t,n){return t??(e.type===`input`?``:e.type===`select`&&e.attrs?.multiple===!0?[]:e.type===`select`&&e.attrs?.clearable===!1?G(e,n):null)}function q(e,r){let a=u(()=>k(r.config)??{}),o=n(()=>a.value.feedback),{t:l}=t(()=>a.value.locale),d=E(null),f=u(()=>a.value.foldThreshold??7),p=u(()=>a.value.requireValue??!0),m=E(c(r.formItemList)),h=E(c(r.formParams)),g=E(!1),_=i(),y=u(()=>_.isRunning(`search`)),x=!0;v()&&w(()=>{x=!1});let S=W(m,h,r.historyOptions),T=u(()=>m.value.filter(e=>e.show!==!1)),D=u(()=>T.value.filter((e,t)=>g.value||t<f.value)),O=u(()=>T.value.length>f.value),A=e=>e==null||e===``||Array.isArray(e)&&e.length===0,M=()=>{let e=h.value;m.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]=G(t,e[t.prop])))})},N=async()=>{try{return await d.value?.validate(),!0}catch{return!1}},P=e=>x&&!k(r.loading)&&s(h.value,e),F=async()=>{let t=c(h.value);if(!await N()||!P(t))return!1;if(p.value&&!Object.entries(t).filter(([e])=>e!==`pageNum`&&e!==`pageSize`).some(([,e])=>!A(e)))return o.warning(l(`search.valueRequired`)),!1;if(S.saveCurrentInputs(),e(`search`,c(t)),!P(t))return!1;if(!a.value.onSearch)return!0;try{return await a.value.onSearch(t),x}catch(e){return x&&o.error(l(`search.failed`),e),!1}},I=async()=>{let e=await _.run(`search`,F,()=>!k(r.loading));return e.executed&&e.value},L=t=>{e(`change-params`,c(t)),e(`update:modelValue`,c(t))},R=()=>{H=!0;let e=++U;b(()=>{e===U&&(H=!1)})},z=()=>{d.value?.restoreValidation();let t=c(h.value),n=t;m.value.forEach(e=>{e.show===!1||e.type===`spacer`||e.prop===`pageNum`||e.prop===`pageSize`||(n[e.prop]=G(e,n[e.prop]))}),R(),h.value=t,L(t),e(`reset`,c(t))},B=()=>{g.value=!g.value},V=(e,t)=>{R(),m.value=c(e),h.value=c(t),M()},H=!1,U=0;return M(),j(h,e=>{H||L(e)},{deep:!0}),C(()=>{S.restoreFromStorage()}),{formRef:d,fields:m,formParams:h,expanded:g,searching:y,visibleFields:D,hasExpandButton:O,history:S,searchFn:I,resetFn:z,toggleFold:B,syncFromProps:V}}const J=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 Y(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 X=[`onClick`],ee={class:`history-text`},te={key:0,class:`history-footer`},ne=[`onClick`],re={class:`form-search-item-box form-search-actions`},ie={class:`form-item-input`};var Z=r(_({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=u(()=>e(i.config?.density)),s=u(()=>i.size??o.value.size),c=u(()=>{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:_,formParams:v,expanded:b,searching:C,visibleFields:w,hasExpandButton:E,history:k,searchFn:W,resetFn:G,toggleFold:Z,syncFromProps:ae}=q(a,{formItemList:i.formItemList,formParams:i.modelValue??i.formParams,config:()=>i.config,loading:()=>i.loading,historyOptions:()=>({storageKey:i.formSearchInputHistoryString,maxItems:i.config?.historyMaxItems})}),Q=u(()=>new Map(w.value.filter(e=>e.type===`select`).map(e=>[e.prop,Y(e.list,v.value[e.prop])]))),oe=e=>{let t=v.value[e];return typeof t==`string`?t:null},se=(e,t)=>{$(e,Q.value.get(e)?.decode(t)??null)},$=(e,t)=>{let n=w.value.find(t=>t.prop===e),r=v.value;n&&(r[e]=K(n,t,r[e]))},ce=e=>{let t=J(v.value[e]);return t.mode===`formatted`?{formattedValue:t.value,"onUpdate:formattedValue":t=>$(e,t)}:{value:t.value,"onUpdate:value":t=>$(e,t)}};return j(()=>[i.formItemList,i.modelValue,i.formParams],([e,t,n])=>ae(e,t??n),{deep:!0}),n({formRef:_,formParams:v,searchFn:W,cleanFn:G,changeFoldState:Z}),(e,n)=>(T(),d(A(F),{class:x([`form-search-card custom-card`,t.config?.density&&`form-search-card--${t.config.density}`]),style:S(c.value),bordered:t.bordered},{default:M(()=>[g(A(L),{class:`form-search`,model:A(v),ref_key:`formRef`,ref:_,size:s.value,onSubmit:N(A(W),[`prevent`])},{default:M(()=>[(T(!0),p(l,null,D(A(w),(e,t)=>(T(),p(`div`,{class:`form-search-item-box`,key:e.prop||t},[e.type===`spacer`?f(`v-if`,!0):(T(),d(A(R),{key:0,class:`form-item-input`,path:e.prop,rule:e.rules,"show-feedback":!1,"show-label":!1},{default:M(()=>[e.type===`input`?(T(),d(A(B),y({key:0,clearable:``,size:s.value,value:oe(e.prop),"onUpdate:value":t=>$(e.prop,t),placeholder:e.placeholder},{ref_for:!0},e.attrs,{onFocus:t=>A(k).handleFocus(e.prop),onBlur:A(k).closeAllPanels}),null,16,[`size`,`value`,`onUpdate:value`,`placeholder`,`onFocus`,`onBlur`])):f(`v-if`,!0),e.isFocus?(T(),p(`div`,{key:1,class:`input-history`,onMousedown:n[0]||=N(()=>{},[`prevent`])},[(T(!0),p(l,null,D(e.hisList,(t,r)=>(T(),p(`div`,{class:`history-item`,onClick:n=>A(k).selectHistoryItem(t,e.prop),key:t},[m(`span`,ee,O(t),1),g(A(z),{class:`delete-icon`,size:`14`,onClick:N(t=>A(k).deleteHistoryItem(e.prop,r),[`stop`])},{default:M(()=>[...n[1]||=[m(`div`,{class:`i-mdi:close`},null,-1)]]),_:1},8,[`onClick`])],8,X))),128)),e.hisList&&e.hisList.length>0?(T(),p(`div`,te,[m(`span`,{class:`clear-all`,onClick:N(t=>A(k).clearAllHistory(e.prop),[`stop`])},` 清空历史记录 `,8,ne)])):f(`v-if`,!0)],32)):f(`v-if`,!0),e.type===`select`?(T(),d(A(V),y({key:2,value:Q.value.get(e.prop)?.value,"onUpdate:value":t=>se(e.prop,t),placeholder:e.placeholder||`请选择`,clearable:``,size:s.value,options:Q.value.get(e.prop)?.options},{ref_for:!0},e.attrs),null,16,[`value`,`onUpdate:value`,`placeholder`,`size`,`options`])):f(`v-if`,!0),e.type===`date-range`?(T(),d(A(I),y({key:3,type:`datetimerange`,size:s.value},{ref_for:!0},{...ce(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`])):f(`v-if`,!0)]),_:2},1032,[`path`,`rule`]))]))),128)),m(`div`,re,[m(`div`,ie,[n[6]||=m(`div`,{class:`button-label-placeholder`},null,-1),g(A(H),{size:t.config?.density?o.value.gap:8},{default:M(()=>[g(A(U),{trigger:`hover`},{trigger:M(()=>[g(A(P),{type:`primary`,size:s.value,"aria-label":`搜索`,onClick:A(W),loading:t.loading||A(C)},{icon:M(()=>[...n[2]||=[m(`div`,{class:`i-mdi:search w-4 h-4`},null,-1)]]),_:1},8,[`size`,`onClick`,`loading`])]),default:M(()=>[n[3]||=h(` 搜索 `,-1)]),_:1}),g(A(U),{trigger:`hover`},{trigger:M(()=>[g(A(P),{size:s.value,"aria-label":`重置`,onClick:A(G)},{icon:M(()=>[...n[4]||=[m(`div`,{class:`i-mdi:refresh w-4 h-4`},null,-1)]]),_:1},8,[`size`,`onClick`])]),default:M(()=>[n[5]||=h(` 重置 `,-1)]),_:1}),A(E)?(T(),d(A(U),{key:0,trigger:`hover`},{trigger:M(()=>[g(A(P),{size:s.value,"aria-label":A(b)?`收起搜索条件`:`展开搜索条件`,"aria-expanded":A(b),onClick:A(Z)},{icon:M(()=>[m(`div`,{class:x(A(b)?`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:M(()=>[h(` `+O(A(b)?`收起`:`展开`),1)]),_:1})):f(`v-if`,!0)]),_:1},8,[`size`])])])]),_:1},8,[`model`,`size`,`onSubmit`])]),_:1},8,[`class`,`style`,`bordered`]))}}),[[`__scopeId`,`data-v-af873fa0`]]);export{q as n,W as r,Z as t};
1
+ import{t as e}from"./density.js";import{t}from"./useComponentLocale.js";import{t as n}from"./feedback.js";import{t as r}from"./export-helper.js";import{t as i}from"./useActionTask.js";import{i as a,t as o}from"./storage.js";import{a as s,t as c}from"./data.js";import{Fragment as l,computed as u,createBlock as d,createCommentVNode as f,createElementBlock as p,createElementVNode as m,createTextVNode as h,createVNode as g,defineComponent as _,getCurrentScope as v,mergeProps as y,nextTick as b,normalizeClass as x,normalizeStyle as S,onMounted as C,onScopeDispose as w,openBlock as T,ref as E,renderList as D,toDisplayString as O,toValue as k,unref as A,vShow as j,watch as M,withCtx as N,withDirectives as P,withModifiers as F}from"vue";import{NButton as I,NCard as L,NDatePicker as R,NForm as z,NFormItem as B,NIcon as V,NInput as H,NSelect as U,NSpace as ee,NTooltip as W}from"naive-ui";function G(e,t,n={}){let r=()=>k(n),i=u(()=>!!r().storageKey),s=t=>e.value.find(e=>e.prop===t),c=()=>{let{storageKey:t}=r();t&&a(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=o(e);t&&(Array.isArray(t)?t.map(e=>[e.prop,e.hisList]):Object.entries(t)).forEach(([e,t])=>{let n=s(e);n&&Array.isArray(t)&&(n.hisList=[...t])})},d=t=>{e.value.forEach(e=>{e.isFocus=!!(e.hisList&&e.prop===t)})},f=e=>{l(),d(e)},p=()=>d(),m=(e,n)=>{s(n)?.type===`input`&&(t.value[n]=e,p())},h=(e,t)=>{let n=s(e);n?.hisList&&(n.hisList.splice(t,1),n.hisList.length===0&&(n.isFocus=!1),c())},g=e=>{let t=s(e);t?.hisList&&(t.hisList=[],t.isFocus=!1,c())},_=(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:f,closeAllPanels:p,selectHistoryItem:m,deleteHistoryItem:h,clearAllHistory:g,saveCurrentInputs:()=>{i.value&&(Object.keys(t.value).forEach(e=>{let n=t.value[e];if(n==null||n===``)return;let r=s(e);if(r?.type!==`input`||!r.hisList)return;let i=String(n).trim();i&&_(r.hisList,i)}),p(),c())},restoreFromStorage:l}}function K(e,t){return e.defaultValue===void 0?e.type===`input`?``:e.type===`select`&&e.attrs?.multiple===!0?[]:e.type===`select`&&e.attrs?.clearable===!1?c(t):null:c(e.defaultValue)}function q(e,t,n){return t??(e.type===`input`?``:e.type===`select`&&e.attrs?.multiple===!0?[]:e.type===`select`&&e.attrs?.clearable===!1?K(e,n):null)}function J(e,r){let a=u(()=>k(r.config)??{}),o=n(()=>a.value.feedback),{t:l}=t(()=>a.value.locale),d=E(null),f=u(()=>a.value.foldThreshold??7),p=u(()=>a.value.requireValue??!0),m=E(c(r.formItemList)),h=E(c(r.formParams)),g=E(!1),_=i(),y=u(()=>_.isRunning(`search`)),x=!0;v()&&w(()=>{x=!1});let S=G(m,h,r.historyOptions),T=u(()=>m.value.filter(e=>e.show!==!1)),D=u(()=>T.value.filter((e,t)=>g.value||t<f.value)),O=u(()=>T.value.length>f.value),A=e=>e==null||e===``||Array.isArray(e)&&e.length===0,j=()=>{let e=h.value;m.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]=K(t,e[t.prop])))})},N=async()=>{try{return await d.value?.validate(),!0}catch{return O.value&&(g.value=!0),!1}},P=e=>x&&!k(r.loading)&&s(h.value,e),F=async()=>{let t=c(h.value);if(!await N()||!P(t))return!1;if(p.value&&!Object.entries(t).filter(([e])=>e!==`pageNum`&&e!==`pageSize`).some(([,e])=>!A(e)))return o.warning(l(`search.valueRequired`)),!1;if(S.saveCurrentInputs(),e(`search`,c(t)),!P(t))return!1;if(!a.value.onSearch)return!0;try{return await a.value.onSearch(t),x}catch(e){return x&&o.error(l(`search.failed`),e),!1}},I=async()=>{let e=await _.run(`search`,F,()=>!k(r.loading));return e.executed&&e.value},L=t=>{e(`change-params`,c(t)),e(`update:modelValue`,c(t))},R=()=>{H=!0;let e=++U;b(()=>{e===U&&(H=!1)})},z=()=>{d.value?.restoreValidation();let t=c(h.value),n=t;m.value.forEach(e=>{e.show===!1||e.type===`spacer`||e.prop===`pageNum`||e.prop===`pageSize`||(n[e.prop]=K(e,n[e.prop]))}),R(),h.value=t,L(t),e(`reset`,c(t))},B=()=>{g.value=!g.value},V=(e,t)=>{R(),m.value=c(e),h.value=c(t),j()},H=!1,U=0;return j(),M(h,e=>{H||L(e)},{deep:!0}),C(()=>{S.restoreFromStorage()}),{formRef:d,fields:m,formParams:h,expanded:g,searching:y,visibleFields:D,availableFields:T,foldThreshold:f,hasExpandButton:O,history:S,searchFn:I,resetFn:z,toggleFold:B,syncFromProps:V}}const Y=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 te(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 ne=[`onClick`],re={class:`history-text`},ie={key:0,class:`history-footer`},ae=[`onClick`],oe={class:`form-search-item-box form-search-actions`},se={class:`form-item-input`};var X=r(_({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=u(()=>e(i.config?.density)),s=u(()=>i.size??o.value.size),c=u(()=>{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:_,formParams:v,expanded:b,searching:C,availableFields:w,foldThreshold:E,hasExpandButton:k,history:G,searchFn:K,resetFn:X,toggleFold:Z,syncFromProps:ce}=J(a,{formItemList:i.formItemList,formParams:i.modelValue??i.formParams,config:()=>i.config,loading:()=>i.loading,historyOptions:()=>({storageKey:i.formSearchInputHistoryString,maxItems:i.config?.historyMaxItems})}),Q=u(()=>new Map(w.value.filter(e=>e.type===`select`).map(e=>[e.prop,te(e.list,v.value[e.prop])]))),le=e=>{let t=v.value[e];return typeof t==`string`?t:null},ue=(e,t)=>{$(e,Q.value.get(e)?.decode(t)??null)},$=(e,t)=>{let n=w.value.find(t=>t.prop===e),r=v.value;n&&(r[e]=q(n,t,r[e]))},de=e=>{let t=Y(v.value[e]);return t.mode===`formatted`?{formattedValue:t.value,"onUpdate:formattedValue":t=>$(e,t)}:{value:t.value,"onUpdate:value":t=>$(e,t)}};return M(()=>[i.formItemList,i.modelValue,i.formParams],([e,t,n])=>ce(e,t??n),{deep:!0}),n({formRef:_,formParams:v,searchFn:K,cleanFn:X,changeFoldState:Z}),(e,n)=>(T(),d(A(L),{class:x([`form-search-card custom-card`,t.config?.density&&`form-search-card--${t.config.density}`]),style:S(c.value),bordered:t.bordered},{default:N(()=>[g(A(z),{class:`form-search`,model:A(v),ref_key:`formRef`,ref:_,size:s.value,onSubmit:F(A(K),[`prevent`])},{default:N(()=>[(T(!0),p(l,null,D(A(w),(e,t)=>P((T(),p(`div`,{class:`form-search-item-box`,key:e.prop||t},[e.type===`spacer`?f(`v-if`,!0):(T(),d(A(B),{key:0,class:`form-item-input`,path:e.prop,rule:e.rules,"show-feedback":!1,"show-label":!1},{default:N(()=>[e.type===`input`?(T(),d(A(H),y({key:0,clearable:``,size:s.value,value:le(e.prop),"onUpdate:value":t=>$(e.prop,t),placeholder:e.placeholder},{ref_for:!0},e.attrs,{onFocus:t=>A(G).handleFocus(e.prop),onBlur:A(G).closeAllPanels}),null,16,[`size`,`value`,`onUpdate:value`,`placeholder`,`onFocus`,`onBlur`])):f(`v-if`,!0),e.isFocus?(T(),p(`div`,{key:1,class:`input-history`,onMousedown:n[0]||=F(()=>{},[`prevent`])},[(T(!0),p(l,null,D(e.hisList,(t,r)=>(T(),p(`div`,{class:`history-item`,onClick:n=>A(G).selectHistoryItem(t,e.prop),key:t},[m(`span`,re,O(t),1),g(A(V),{class:`delete-icon`,size:`14`,onClick:F(t=>A(G).deleteHistoryItem(e.prop,r),[`stop`])},{default:N(()=>[...n[1]||=[m(`div`,{class:`i-mdi:close`},null,-1)]]),_:1},8,[`onClick`])],8,ne))),128)),e.hisList&&e.hisList.length>0?(T(),p(`div`,ie,[m(`span`,{class:`clear-all`,onClick:F(t=>A(G).clearAllHistory(e.prop),[`stop`])},` 清空历史记录 `,8,ae)])):f(`v-if`,!0)],32)):f(`v-if`,!0),e.type===`select`?(T(),d(A(U),y({key:2,value:Q.value.get(e.prop)?.value,"onUpdate:value":t=>ue(e.prop,t),placeholder:e.placeholder||`请选择`,clearable:``,size:s.value,options:Q.value.get(e.prop)?.options},{ref_for:!0},e.attrs),null,16,[`value`,`onUpdate:value`,`placeholder`,`size`,`options`])):f(`v-if`,!0),e.type===`date-range`?(T(),d(A(R),y({key:3,type:`datetimerange`,size:s.value},{ref_for:!0},{...de(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`])):f(`v-if`,!0)]),_:2},1032,[`path`,`rule`]))])),[[j,A(b)||t<A(E)]])),128)),m(`div`,oe,[m(`div`,se,[n[6]||=m(`div`,{class:`button-label-placeholder`},null,-1),g(A(ee),{size:t.config?.density?o.value.gap:8},{default:N(()=>[g(A(W),{trigger:`hover`},{trigger:N(()=>[g(A(I),{type:`primary`,size:s.value,"aria-label":`搜索`,onClick:A(K),loading:t.loading||A(C)},{icon:N(()=>[...n[2]||=[m(`div`,{class:`i-mdi:search w-4 h-4`},null,-1)]]),_:1},8,[`size`,`onClick`,`loading`])]),default:N(()=>[n[3]||=h(` 搜索 `,-1)]),_:1}),g(A(W),{trigger:`hover`},{trigger:N(()=>[g(A(I),{size:s.value,"aria-label":`重置`,onClick:A(X)},{icon:N(()=>[...n[4]||=[m(`div`,{class:`i-mdi:refresh w-4 h-4`},null,-1)]]),_:1},8,[`size`,`onClick`])]),default:N(()=>[n[5]||=h(` 重置 `,-1)]),_:1}),A(k)?(T(),d(A(W),{key:0,trigger:`hover`},{trigger:N(()=>[g(A(I),{size:s.value,"aria-label":A(b)?`收起搜索条件`:`展开搜索条件`,"aria-expanded":A(b),onClick:A(Z)},{icon:N(()=>[m(`div`,{class:x(A(b)?`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:N(()=>[h(` `+O(A(b)?`收起`:`展开`),1)]),_:1})):f(`v-if`,!0)]),_:1},8,[`size`])])])]),_:1},8,[`model`,`size`,`onSubmit`])]),_:1},8,[`class`,`style`,`bordered`]))}}),[[`__scopeId`,`data-v-da3c9bb6`]]);export{J as n,G as r,X as t};
@@ -67,5 +67,5 @@
67
67
 
68
68
 
69
69
  /* layer: default */
70
- .flex[data-v-423b9151]{display:flex;}
71
- .items-center[data-v-423b9151]{align-items:center;}
70
+ .flex[data-v-e04376a3]{display:flex;}
71
+ .items-center[data-v-e04376a3]{align-items:center;}
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`);const i={class:`flex items-center`},a=(0,n.defineComponent)({name:`C_Language`,__name:`index`,props:{modelValue:{default:`zh-cn`},options:{default:()=>[{key:`zh-cn`,label:`简体中文`,iconClass:`mdi:alpha-c`},{key:`en`,label:`English`,iconClass:`mdi:alpha-u`},{key:`ja`,label:`日本語`,iconClass:`mdi:alpha-j`},{key:`ko`,label:`한국어`,iconClass:`mdi:alpha-k`}]},tooltip:{default:`语言切换`}},emits:[`update:modelValue`,`change`],setup(t,{emit:a}){let o=t,s=a,c=(0,n.computed)(()=>o.options.find(e=>e.key===o.modelValue)?.label??o.modelValue),l=(0,n.computed)(()=>`${o.tooltip} (${c.value})`),u=(0,n.computed)(()=>o.options.map(t=>{let r=t.iconClass;return{key:t.key,label:t.label,icon:r?()=>(0,n.h)(e.t,{name:r,size:16}):void 0}})),d=e=>{e!==o.modelValue&&(s(`update:modelValue`,e),s(`change`,e))};return(a,o)=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.NDropdown),{size:`small`,trigger:`hover`,options:u.value,value:t.modelValue,onSelect:d},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{text:``},{default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,i,[(0,n.createVNode)(e.t,{name:`mdi:language`,size:18,title:l.value},null,8,[`title`])])]),_:1})]),_:1},8,[`options`,`value`]))}});var o=t.t(a,[[`__scopeId`,`data-v-423b9151`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
1
+ require(`./chunk.cjs`);const e=require(`./useComponentLocale.cjs`),t=require(`./C_Icon2.cjs`),n=require(`./export-helper.cjs`);let r=require(`vue`),i=require(`naive-ui`);const a={class:`flex items-center`},o=(0,r.defineComponent)({name:`C_Language`,__name:`index`,props:{modelValue:{default:`zh-cn`},options:{default:()=>[{key:`zh-cn`,label:`简体中文`,iconClass:`mdi:alpha-c`},{key:`en`,label:`English`,iconClass:`mdi:alpha-u`},{key:`ja`,label:`日本語`,iconClass:`mdi:alpha-j`},{key:`ko`,label:`한국어`,iconClass:`mdi:alpha-k`}]},tooltip:{}},emits:[`update:modelValue`,`change`],setup(n,{emit:o}){let{t:s}=e.t(),c=n,l=o,u=(0,r.computed)(()=>c.options.find(e=>e.key===c.modelValue)?.label??c.modelValue),d=(0,r.computed)(()=>`${c.tooltip??s(`language.switch`)} (${u.value})`),f=(0,r.computed)(()=>c.options.map(e=>{let n=e.iconClass;return{key:e.key,label:e.label,icon:n?()=>(0,r.h)(t.t,{name:n,size:16}):void 0}})),p=e=>{e!==c.modelValue&&(l(`update:modelValue`,e),l(`change`,e))};return(e,o)=>((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i.NDropdown),{size:`small`,trigger:`hover`,options:f.value,value:n.modelValue,onSelect:p},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.NButton),{text:``,"aria-label":d.value},{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,a,[(0,r.createVNode)(t.t,{name:`mdi:language`,size:18,title:d.value},null,8,[`title`])])]),_:1},8,[`aria-label`])]),_:1},8,[`options`,`value`]))}});var s=n.t(o,[[`__scopeId`,`data-v-e04376a3`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
@@ -1 +1 @@
1
- import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{computed as n,createBlock as r,createElementVNode as i,createVNode as a,defineComponent as o,h as s,openBlock as c,unref as l,withCtx as u}from"vue";import{NButton as d,NDropdown as f}from"naive-ui";const p={class:`flex items-center`};var m=t(o({name:`C_Language`,__name:`index`,props:{modelValue:{default:`zh-cn`},options:{default:()=>[{key:`zh-cn`,label:`简体中文`,iconClass:`mdi:alpha-c`},{key:`en`,label:`English`,iconClass:`mdi:alpha-u`},{key:`ja`,label:`日本語`,iconClass:`mdi:alpha-j`},{key:`ko`,label:`한국어`,iconClass:`mdi:alpha-k`}]},tooltip:{default:`语言切换`}},emits:[`update:modelValue`,`change`],setup(t,{emit:o}){let m=t,h=o,g=n(()=>m.options.find(e=>e.key===m.modelValue)?.label??m.modelValue),_=n(()=>`${m.tooltip} (${g.value})`),v=n(()=>m.options.map(t=>{let n=t.iconClass;return{key:t.key,label:t.label,icon:n?()=>s(e,{name:n,size:16}):void 0}})),y=e=>{e!==m.modelValue&&(h(`update:modelValue`,e),h(`change`,e))};return(n,o)=>(c(),r(l(f),{size:`small`,trigger:`hover`,options:v.value,value:t.modelValue,onSelect:y},{default:u(()=>[a(l(d),{text:``},{default:u(()=>[i(`div`,p,[a(e,{name:`mdi:language`,size:18,title:_.value},null,8,[`title`])])]),_:1})]),_:1},8,[`options`,`value`]))}}),[[`__scopeId`,`data-v-423b9151`]]);export{m as t};
1
+ import{t as e}from"./useComponentLocale.js";import{t}from"./C_Icon2.js";import{t as n}from"./export-helper.js";import{computed as r,createBlock as i,createElementVNode as a,createVNode as o,defineComponent as s,h as c,openBlock as l,unref as u,withCtx as d}from"vue";import{NButton as f,NDropdown as p}from"naive-ui";const m={class:`flex items-center`};var h=n(s({name:`C_Language`,__name:`index`,props:{modelValue:{default:`zh-cn`},options:{default:()=>[{key:`zh-cn`,label:`简体中文`,iconClass:`mdi:alpha-c`},{key:`en`,label:`English`,iconClass:`mdi:alpha-u`},{key:`ja`,label:`日本語`,iconClass:`mdi:alpha-j`},{key:`ko`,label:`한국어`,iconClass:`mdi:alpha-k`}]},tooltip:{}},emits:[`update:modelValue`,`change`],setup(n,{emit:s}){let{t:h}=e(),g=n,_=s,v=r(()=>g.options.find(e=>e.key===g.modelValue)?.label??g.modelValue),y=r(()=>`${g.tooltip??h(`language.switch`)} (${v.value})`),b=r(()=>g.options.map(e=>{let n=e.iconClass;return{key:e.key,label:e.label,icon:n?()=>c(t,{name:n,size:16}):void 0}})),x=e=>{e!==g.modelValue&&(_(`update:modelValue`,e),_(`change`,e))};return(e,r)=>(l(),i(u(p),{size:`small`,trigger:`hover`,options:b.value,value:n.modelValue,onSelect:x},{default:d(()=>[o(u(f),{text:``,"aria-label":y.value},{default:d(()=>[a(`div`,m,[o(t,{name:`mdi:language`,size:18,title:y.value},null,8,[`title`])])]),_:1},8,[`aria-label`])]),_:1},8,[`options`,`value`]))}}),[[`__scopeId`,`data-v-e04376a3`]]);export{h as t};
package/dist/C_Login.css CHANGED
@@ -348,7 +348,7 @@ to {
348
348
  * }
349
349
  */
350
350
  /* ===== CSS 变量默认值(暗色玻璃风格) ===== */
351
- .c-login-panel[data-v-00fdce30] {
351
+ .c-login-panel[data-v-f404fc8e] {
352
352
  /* 面板 */
353
353
  --cl-panel-bg: rgba(255, 255, 255, 0.1);
354
354
  --cl-panel-border: rgba(255, 255, 255, 0.18);
@@ -397,7 +397,7 @@ to {
397
397
  }
398
398
 
399
399
  /* ===== 面板容器 ===== */
400
- .c-login-panel[data-v-00fdce30] {
400
+ .c-login-panel[data-v-f404fc8e] {
401
401
  width: var(--cl-panel-width);
402
402
  background: var(--cl-panel-bg);
403
403
  border: 1px solid var(--cl-panel-border);
@@ -410,7 +410,7 @@ to {
410
410
  transition: box-shadow 0.3s ease;
411
411
  /* 顶部光泽线 */
412
412
  }
413
- .c-login-panel[data-v-00fdce30]::before {
413
+ .c-login-panel[data-v-f404fc8e]::before {
414
414
  content: "";
415
415
  position: absolute;
416
416
  top: 0;
@@ -420,10 +420,10 @@ to {
420
420
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.45) 50%, rgba(255, 255, 255, 0) 100%);
421
421
  pointer-events: none;
422
422
  }
423
- .c-login-panel[data-v-00fdce30] {
423
+ .c-login-panel[data-v-f404fc8e] {
424
424
  /* 玻璃内衬 */
425
425
  }
426
- .c-login-panel[data-v-00fdce30]::after {
426
+ .c-login-panel[data-v-f404fc8e]::after {
427
427
  content: "";
428
428
  position: absolute;
429
429
  inset: 0;
@@ -432,19 +432,19 @@ to {
432
432
  border-radius: inherit;
433
433
  z-index: 0;
434
434
  }
435
- .c-login-panel[data-v-00fdce30] > * {
435
+ .c-login-panel[data-v-f404fc8e] > * {
436
436
  position: relative;
437
437
  z-index: 1;
438
438
  }
439
439
 
440
440
  /* ===== Header ===== */
441
- .c-login__header[data-v-00fdce30] {
441
+ .c-login__header[data-v-f404fc8e] {
442
442
  text-align: center;
443
443
  margin-bottom: 10px;
444
444
  }
445
445
 
446
446
  /* ===== 返回按钮(登录/注册下方块级按钮) ===== */
447
- .c-login__back-btn[data-v-00fdce30] {
447
+ .c-login__back-btn[data-v-f404fc8e] {
448
448
  margin-top: 10px;
449
449
  height: var(--cl-btn-height) !important;
450
450
  border-radius: var(--cl-btn-radius) !important;
@@ -456,41 +456,41 @@ to {
456
456
  letter-spacing: 2px;
457
457
  transition: all 0.25s ease !important;
458
458
  }
459
- .c-login__back-btn[data-v-00fdce30]:hover {
459
+ .c-login__back-btn[data-v-f404fc8e]:hover {
460
460
  background: rgba(255, 255, 255, 0.06) !important;
461
461
  border-color: var(--cl-input-underline-hover) !important;
462
462
  color: var(--cl-text-primary) !important;
463
463
  }
464
- .c-login__logo[data-v-00fdce30] {
464
+ .c-login__logo[data-v-f404fc8e] {
465
465
  display: flex;
466
466
  justify-content: center;
467
467
  margin-bottom: 4px;
468
468
  }
469
- .c-login__logo .c-login__logo-icon[data-v-00fdce30] {
469
+ .c-login__logo .c-login__logo-icon[data-v-f404fc8e] {
470
470
  color: var(--cl-text-primary);
471
471
  filter: drop-shadow(0 2px 8px rgba(24, 89, 233, 0.4));
472
472
  }
473
- .c-login__title[data-v-00fdce30] {
473
+ .c-login__title[data-v-f404fc8e] {
474
474
  margin: 0 0 2px;
475
475
  font-size: 20px;
476
476
  font-weight: 600;
477
477
  color: var(--cl-text-primary);
478
478
  letter-spacing: 0.5px;
479
479
  }
480
- .c-login__subtitle[data-v-00fdce30] {
480
+ .c-login__subtitle[data-v-f404fc8e] {
481
481
  margin: 0;
482
482
  font-size: 13px;
483
483
  color: var(--cl-text-secondary);
484
484
  }
485
485
 
486
486
  /* ===== 登录方式切换(底部) ===== */
487
- .c-login__mode-switch[data-v-00fdce30] {
487
+ .c-login__mode-switch[data-v-f404fc8e] {
488
488
  margin-top: 14px;
489
489
  display: grid;
490
490
  grid-template-columns: 1fr 1fr;
491
491
  gap: 10px;
492
492
  }
493
- .c-login__mode-btn[data-v-00fdce30] {
493
+ .c-login__mode-btn[data-v-f404fc8e] {
494
494
  --n-border: none !important;
495
495
  --n-border-hover: none !important;
496
496
  --n-border-pressed: none !important;
@@ -503,51 +503,51 @@ to {
503
503
  color: var(--cl-text-secondary) !important;
504
504
  transition: all 0.2s ease !important;
505
505
  }
506
- .c-login__mode-btn[data-v-00fdce30]:hover {
506
+ .c-login__mode-btn[data-v-f404fc8e]:hover {
507
507
  background: rgba(255, 255, 255, 0.1) !important;
508
508
  color: var(--cl-text-primary) !important;
509
509
  }
510
- .c-login__mode-btn.is-active[data-v-00fdce30] {
510
+ .c-login__mode-btn.is-active[data-v-f404fc8e] {
511
511
  background: color-mix(in srgb, var(--cl-tab-bar) 22%, transparent) !important;
512
512
  color: var(--cl-tab-active) !important;
513
513
  }
514
514
 
515
515
  /* ===== 表单 ===== */
516
- .c-login__form[data-v-00fdce30] {
516
+ .c-login__form[data-v-f404fc8e] {
517
517
  margin-top: 6px;
518
518
  }
519
- .c-login__form-item[data-v-00fdce30] {
519
+ .c-login__form-item[data-v-f404fc8e] {
520
520
  margin-bottom: 6px !important;
521
521
  /* 彻底干掉 NaiveUI FormItem 内置间距 CSS 变量 */
522
522
  }
523
- .c-login__form-item[data-v-00fdce30] .n-form-item {
523
+ .c-login__form-item[data-v-f404fc8e] .n-form-item {
524
524
  --n-feedback-padding: 2px 0 0 0 !important;
525
525
  --n-feedback-height: 0 !important;
526
526
  --n-blank-height: 0 !important;
527
527
  --n-label-height: 0 !important;
528
528
  }
529
- .c-login__form-item[data-v-00fdce30] .n-form-item-label {
529
+ .c-login__form-item[data-v-f404fc8e] .n-form-item-label {
530
530
  display: none;
531
531
  }
532
- .c-login__form-item[data-v-00fdce30] {
532
+ .c-login__form-item[data-v-f404fc8e] {
533
533
  /* 校验信息减少占用 */
534
534
  }
535
- .c-login__form-item[data-v-00fdce30] .n-form-item-feedback-wrapper {
535
+ .c-login__form-item[data-v-f404fc8e] .n-form-item-feedback-wrapper {
536
536
  min-height: 0 !important;
537
537
  padding-top: 0 !important;
538
538
  line-height: 1.4;
539
539
  }
540
- .c-login__form-item[data-v-00fdce30] .n-form-item-feedback {
540
+ .c-login__form-item[data-v-f404fc8e] .n-form-item-feedback {
541
541
  font-size: 11px !important;
542
542
  line-height: 1.4;
543
543
  }
544
- .c-login__form-item[data-v-00fdce30] .n-form-item-blank {
544
+ .c-login__form-item[data-v-f404fc8e] .n-form-item-blank {
545
545
  min-height: 0 !important;
546
546
  }
547
- .c-login__form-item[data-v-00fdce30] {
547
+ .c-login__form-item[data-v-f404fc8e] {
548
548
  /* 底线风格输入框 */
549
549
  }
550
- .c-login__form-item[data-v-00fdce30] .n-input {
550
+ .c-login__form-item[data-v-f404fc8e] .n-input {
551
551
  --n-border: none !important;
552
552
  --n-border-hover: none !important;
553
553
  --n-border-focus: none !important;
@@ -563,58 +563,58 @@ to {
563
563
  padding: 5px 2px !important;
564
564
  transition: border-color 0.25s ease;
565
565
  }
566
- .c-login__form-item[data-v-00fdce30] .n-input:hover {
566
+ .c-login__form-item[data-v-f404fc8e] .n-input:hover {
567
567
  border-bottom-color: var(--cl-input-underline-hover) !important;
568
568
  }
569
- .c-login__form-item[data-v-00fdce30] .n-input:focus-within {
569
+ .c-login__form-item[data-v-f404fc8e] .n-input:focus-within {
570
570
  border-bottom-color: var(--cl-input-underline-focus) !important;
571
571
  }
572
- .c-login__form-item[data-v-00fdce30] .n-input .n-input__input-el {
572
+ .c-login__form-item[data-v-f404fc8e] .n-input .n-input__input-el {
573
573
  color: var(--cl-input-text) !important;
574
574
  }
575
- .c-login__form-item[data-v-00fdce30] .n-input .n-input__input-el::placeholder {
575
+ .c-login__form-item[data-v-f404fc8e] .n-input .n-input__input-el::placeholder {
576
576
  color: var(--cl-input-placeholder) !important;
577
577
  }
578
- .c-login__form-item[data-v-00fdce30] .n-input .n-input__prefix,
579
- .c-login__form-item[data-v-00fdce30] .n-input .n-input__suffix {
578
+ .c-login__form-item[data-v-f404fc8e] .n-input .n-input__prefix,
579
+ .c-login__form-item[data-v-f404fc8e] .n-input .n-input__suffix {
580
580
  color: var(--cl-input-icon) !important;
581
581
  }
582
582
 
583
583
  /* ===== 辅助行:记住我 + 忘记密码 ===== */
584
- .c-login__aux-row[data-v-00fdce30] {
584
+ .c-login__aux-row[data-v-f404fc8e] {
585
585
  display: flex;
586
586
  justify-content: space-between;
587
587
  align-items: center;
588
588
  margin-top: 8px;
589
589
  margin-bottom: 14px;
590
590
  }
591
- .c-login__remember[data-v-00fdce30] .n-checkbox__label {
591
+ .c-login__remember[data-v-f404fc8e] .n-checkbox__label {
592
592
  color: var(--cl-text-secondary) !important;
593
593
  font-size: 13px;
594
594
  }
595
- .c-login__remember[data-v-00fdce30] .n-checkbox-box {
595
+ .c-login__remember[data-v-f404fc8e] .n-checkbox-box {
596
596
  --n-border: 1px solid var(--cl-input-underline) !important;
597
597
  }
598
- .c-login__forgot[data-v-00fdce30] {
598
+ .c-login__forgot[data-v-f404fc8e] {
599
599
  font-size: 13px;
600
600
  color: var(--cl-link-color);
601
601
  cursor: pointer;
602
602
  transition: color 0.2s ease;
603
603
  }
604
- .c-login__forgot[data-v-00fdce30]:hover {
604
+ .c-login__forgot[data-v-f404fc8e]:hover {
605
605
  color: var(--cl-link-hover);
606
606
  }
607
607
 
608
608
  /* ===== 验证码行 ===== */
609
- .c-login__code-row[data-v-00fdce30] {
609
+ .c-login__code-row[data-v-f404fc8e] {
610
610
  display: flex;
611
611
  gap: 10px;
612
612
  width: 100%;
613
613
  }
614
- .c-login__code-input[data-v-00fdce30] {
614
+ .c-login__code-input[data-v-f404fc8e] {
615
615
  flex: 1;
616
616
  }
617
- .c-login__send-code-btn[data-v-00fdce30] {
617
+ .c-login__send-code-btn[data-v-f404fc8e] {
618
618
  flex-shrink: 0;
619
619
  white-space: nowrap;
620
620
  background: rgba(255, 255, 255, 0.08) !important;
@@ -624,13 +624,13 @@ to {
624
624
  font-size: 13px;
625
625
  transition: all 0.25s ease;
626
626
  }
627
- .c-login__send-code-btn[data-v-00fdce30]:not(:disabled):hover {
627
+ .c-login__send-code-btn[data-v-f404fc8e]:not(:disabled):hover {
628
628
  background: rgba(255, 255, 255, 0.16) !important;
629
629
  color: var(--cl-text-primary) !important;
630
630
  }
631
631
 
632
632
  /* ===== 登录按钮 ===== */
633
- .c-login__submit-btn[data-v-00fdce30] {
633
+ .c-login__submit-btn[data-v-f404fc8e] {
634
634
  height: var(--cl-btn-height) !important;
635
635
  background: var(--cl-btn-bg) !important;
636
636
  border: none !important;
@@ -645,7 +645,7 @@ to {
645
645
  margin-top: 14px;
646
646
  /* 光泽扫过动画 */
647
647
  }
648
- .c-login__submit-btn[data-v-00fdce30]::before {
648
+ .c-login__submit-btn[data-v-f404fc8e]::before {
649
649
  content: "";
650
650
  position: absolute;
651
651
  top: 0;
@@ -656,34 +656,34 @@ to {
656
656
  transform: skewX(-25deg);
657
657
  transition: left 0.6s ease;
658
658
  }
659
- .c-login__submit-btn[data-v-00fdce30]:not(:disabled):hover {
659
+ .c-login__submit-btn[data-v-f404fc8e]:not(:disabled):hover {
660
660
  background: var(--cl-btn-bg-hover) !important;
661
661
  transform: translateY(-1px);
662
662
  box-shadow: var(--cl-btn-shadow-hover) !important;
663
663
  }
664
- .c-login__submit-btn[data-v-00fdce30]:not(:disabled):hover::before {
664
+ .c-login__submit-btn[data-v-f404fc8e]:not(:disabled):hover::before {
665
665
  left: 150%;
666
666
  }
667
- .c-login__submit-btn[data-v-00fdce30]:active {
667
+ .c-login__submit-btn[data-v-f404fc8e]:active {
668
668
  transform: translateY(0) !important;
669
669
  }
670
670
 
671
671
  /* ===== 人机验证 ===== */
672
- .c-login__captcha-wrap[data-v-00fdce30] {
672
+ .c-login__captcha-wrap[data-v-f404fc8e] {
673
673
  margin-top: 10px;
674
674
  display: flex;
675
675
  justify-content: center;
676
676
  }
677
677
 
678
678
  /* ===== 扫码登录面板 ===== */
679
- .c-login__qr-panel[data-v-00fdce30] {
679
+ .c-login__qr-panel[data-v-f404fc8e] {
680
680
  display: flex;
681
681
  flex-direction: column;
682
682
  align-items: center;
683
683
  padding: 8px 0 4px;
684
684
  gap: 14px;
685
685
  }
686
- .c-login__qr-frame[data-v-00fdce30] {
686
+ .c-login__qr-frame[data-v-f404fc8e] {
687
687
  position: relative;
688
688
  width: 164px;
689
689
  height: 164px;
@@ -692,7 +692,7 @@ to {
692
692
  background: rgba(0, 0, 0, 0.35);
693
693
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.08), 0 8px 28px rgba(0, 0, 0, 0.4);
694
694
  }
695
- .c-login__qr-frame .c-login__qr-placeholder[data-v-00fdce30] {
695
+ .c-login__qr-frame .c-login__qr-placeholder[data-v-f404fc8e] {
696
696
  display: flex;
697
697
  align-items: center;
698
698
  justify-content: center;
@@ -702,10 +702,10 @@ to {
702
702
  font-size: 13px;
703
703
  text-align: center;
704
704
  }
705
- .c-login__qr-frame[data-v-00fdce30] {
705
+ .c-login__qr-frame[data-v-f404fc8e] {
706
706
  /* 扫描动画线 */
707
707
  }
708
- @keyframes qr-scan-00fdce30 {
708
+ @keyframes qr-scan-f404fc8e {
709
709
  0% {
710
710
  transform: translateY(0);
711
711
  opacity: 1;
@@ -721,12 +721,12 @@ to {
721
721
  }
722
722
 
723
723
  /* C_QRCode 居中在 frame 内 */
724
- .c-login__qr-frame[data-v-00fdce30] {
724
+ .c-login__qr-frame[data-v-f404fc8e] {
725
725
  display: flex;
726
726
  align-items: center;
727
727
  justify-content: center;
728
728
  }
729
- .c-login__qr-scan-line[data-v-00fdce30] {
729
+ .c-login__qr-scan-line[data-v-f404fc8e] {
730
730
  position: absolute;
731
731
  top: 10px;
732
732
  left: 10px;
@@ -735,12 +735,12 @@ to {
735
735
  background: linear-gradient(90deg, transparent 0%, rgba(24, 89, 233, 0.7) 30%, rgb(100, 160, 255) 50%, rgba(24, 89, 233, 0.7) 70%, transparent 100%);
736
736
  border-radius: 1px;
737
737
  box-shadow: 0 0 6px rgba(24, 89, 233, 0.8);
738
- animation: qr-scan-00fdce30 2.4s ease-in-out infinite;
738
+ animation: qr-scan-f404fc8e 2.4s ease-in-out infinite;
739
739
  pointer-events: none;
740
740
  }
741
741
 
742
742
  /* 四角刻度装饰 */
743
- .c-login__qr-corner[data-v-00fdce30] {
743
+ .c-login__qr-corner[data-v-f404fc8e] {
744
744
  position: absolute;
745
745
  width: 14px;
746
746
  height: 14px;
@@ -748,31 +748,31 @@ to {
748
748
  border-style: solid;
749
749
  pointer-events: none;
750
750
  }
751
- .c-login__qr-corner--tl[data-v-00fdce30] {
751
+ .c-login__qr-corner--tl[data-v-f404fc8e] {
752
752
  top: 6px;
753
753
  left: 6px;
754
754
  border-width: 2px 0 0 2px;
755
755
  border-radius: 3px 0 0 0;
756
756
  }
757
- .c-login__qr-corner--tr[data-v-00fdce30] {
757
+ .c-login__qr-corner--tr[data-v-f404fc8e] {
758
758
  top: 6px;
759
759
  right: 6px;
760
760
  border-width: 2px 2px 0 0;
761
761
  border-radius: 0 3px 0 0;
762
762
  }
763
- .c-login__qr-corner--bl[data-v-00fdce30] {
763
+ .c-login__qr-corner--bl[data-v-f404fc8e] {
764
764
  bottom: 6px;
765
765
  left: 6px;
766
766
  border-width: 0 0 2px 2px;
767
767
  border-radius: 0 0 0 3px;
768
768
  }
769
- .c-login__qr-corner--br[data-v-00fdce30] {
769
+ .c-login__qr-corner--br[data-v-f404fc8e] {
770
770
  bottom: 6px;
771
771
  right: 6px;
772
772
  border-width: 0 2px 2px 0;
773
773
  border-radius: 0 0 3px 0;
774
774
  }
775
- .c-login__qr-hint[data-v-00fdce30] {
775
+ .c-login__qr-hint[data-v-f404fc8e] {
776
776
  margin: 0;
777
777
  display: flex;
778
778
  align-items: center;
@@ -781,22 +781,22 @@ to {
781
781
  color: var(--cl-text-hint);
782
782
  letter-spacing: 0.3px;
783
783
  }
784
- .c-login__qr-refresh[data-v-00fdce30] {
784
+ .c-login__qr-refresh[data-v-f404fc8e] {
785
785
  color: var(--cl-text-secondary) !important;
786
786
  font-size: 11px !important;
787
787
  }
788
- .c-login__qr-refresh[data-v-00fdce30]:hover {
788
+ .c-login__qr-refresh[data-v-f404fc8e]:hover {
789
789
  color: var(--cl-tab-bar) !important;
790
790
  }
791
791
 
792
792
  /* ===== 分割线 ===== */
793
- .c-login__divider[data-v-00fdce30] {
793
+ .c-login__divider[data-v-f404fc8e] {
794
794
  margin: 12px 10px 10px !important;
795
795
  }
796
- .c-login__divider[data-v-00fdce30] .n-divider__line {
796
+ .c-login__divider[data-v-f404fc8e] .n-divider__line {
797
797
  background: var(--cl-divider-color) !important;
798
798
  }
799
- .c-login__divider[data-v-00fdce30] .n-divider__title {
799
+ .c-login__divider[data-v-f404fc8e] .n-divider__title {
800
800
  color: var(--cl-text-hint) !important;
801
801
  font-size: 12px;
802
802
  white-space: nowrap;
@@ -804,13 +804,13 @@ to {
804
804
  }
805
805
 
806
806
  /* ===== 社交登录 ===== */
807
- .c-login__social-row[data-v-00fdce30] {
807
+ .c-login__social-row[data-v-f404fc8e] {
808
808
  display: flex;
809
809
  justify-content: center;
810
810
  gap: 14px;
811
811
  margin-bottom: 6px;
812
812
  }
813
- .c-login__social-btn[data-v-00fdce30] {
813
+ .c-login__social-btn[data-v-f404fc8e] {
814
814
  width: var(--cl-social-size) !important;
815
815
  height: var(--cl-social-size) !important;
816
816
  background: var(--cl-social-btn-bg) !important;
@@ -818,38 +818,38 @@ to {
818
818
  color: var(--cl-text-secondary) !important;
819
819
  transition: all 0.25s ease !important;
820
820
  }
821
- .c-login__social-btn[data-v-00fdce30]:hover {
821
+ .c-login__social-btn[data-v-f404fc8e]:hover {
822
822
  background: var(--cl-social-btn-hover-bg) !important;
823
823
  color: var(--cl-text-primary) !important;
824
824
  transform: translateY(-2px);
825
825
  }
826
826
 
827
827
  /* ===== 注册 ===== */
828
- .c-login__register-row[data-v-00fdce30] {
828
+ .c-login__register-row[data-v-f404fc8e] {
829
829
  text-align: center;
830
830
  margin-top: 14px;
831
831
  font-size: 13px;
832
832
  }
833
- .c-login__register-hint[data-v-00fdce30] {
833
+ .c-login__register-hint[data-v-f404fc8e] {
834
834
  color: var(--cl-text-hint);
835
835
  }
836
- .c-login__register-link[data-v-00fdce30] {
836
+ .c-login__register-link[data-v-f404fc8e] {
837
837
  color: var(--cl-tab-bar);
838
838
  cursor: pointer;
839
839
  margin-left: 4px;
840
840
  transition: opacity 0.2s ease;
841
841
  }
842
- .c-login__register-link[data-v-00fdce30]:hover {
842
+ .c-login__register-link[data-v-f404fc8e]:hover {
843
843
  opacity: 0.8;
844
844
  }
845
845
 
846
846
  /* ===== 输入图标 ===== */
847
- .c-login__input-icon[data-v-00fdce30] {
847
+ .c-login__input-icon[data-v-f404fc8e] {
848
848
  color: var(--cl-input-icon);
849
849
  }
850
850
 
851
851
  /* ===== 亮色主题预设(父级加 .c-login--light 类可切换) ===== */
852
- .c-login--light .c-login-panel[data-v-00fdce30] {
852
+ .c-login--light .c-login-panel[data-v-f404fc8e] {
853
853
  --cl-panel-bg: rgba(255, 255, 255, 0.96);
854
854
  --cl-panel-border: rgba(0, 0, 0, 0.08);
855
855
  --cl-panel-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
@@ -872,6 +872,6 @@ to {
872
872
  }
873
873
 
874
874
  /* layer: default */
875
- .visible[data-v-00fdce30]{visibility:visible;}
876
- .block[data-v-00fdce30]{display:block;}
877
- .blur[data-v-00fdce30]{--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);}
875
+ .visible[data-v-f404fc8e]{visibility:visible;}
876
+ .block[data-v-f404fc8e]{display:block;}
877
+ .blur[data-v-f404fc8e]{--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);}