@robot-admin/naive-ui-components 0.17.3 → 0.17.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/dist/C_Form.cjs +1 -1
- package/dist/C_Form.js +1 -1
- package/dist/C_FormModal2.cjs +1 -1
- package/dist/C_FormModal2.js +1 -1
- package/dist/C_FormSearch.css +52 -52
- package/dist/C_FormSearch2.cjs +1 -1
- package/dist/C_FormSearch2.js +1 -1
- package/dist/C_Table.base.css +155 -145
- package/dist/C_Table.css +155 -145
- package/dist/C_Table.d.cts +1 -1
- package/dist/C_Table.d.ts +1 -1
- package/dist/C_Time.css +4 -4
- package/dist/C_Time2.cjs +1 -1
- package/dist/C_Time2.js +1 -1
- package/dist/C_Tree.css +23 -23
- package/dist/C_Tree2.cjs +1 -1
- package/dist/C_Tree2.js +1 -1
- package/dist/C_WorkFlow.css +39 -39
- package/dist/C_WorkFlow2.cjs +1 -1
- package/dist/C_WorkFlow2.js +1 -1
- package/dist/constants.d.cts +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants3.d.cts +1 -1
- package/dist/constants3.d.ts +1 -1
- package/dist/constants4.d.cts +6 -6
- package/dist/constants4.d.ts +6 -6
- package/dist/constants5.d.cts +2 -2
- package/dist/constants5.d.ts +2 -2
- package/dist/data.d.cts +8 -8
- package/dist/data.d.ts +8 -8
- package/dist/formValidation.cjs +1 -0
- package/dist/formValidation.js +1 -0
- package/dist/helpers.cjs +1 -1
- package/dist/helpers.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.vue.d.cts +2 -2
- package/dist/index.vue.d.ts +2 -2
- package/dist/index10.vue.d.cts +5 -5
- package/dist/index10.vue.d.ts +2 -2
- package/dist/index11.vue.d.cts +2 -2
- package/dist/index11.vue.d.ts +3 -3
- package/dist/index12.vue.d.cts +3 -3
- package/dist/index12.vue.d.ts +2 -2
- package/dist/index13.vue.d.cts +2 -2
- package/dist/index13.vue.d.ts +3 -3
- package/dist/index14.vue.d.cts +3 -3
- package/dist/index14.vue.d.ts +8 -8
- package/dist/index15.vue.d.cts +8 -8
- package/dist/index15.vue.d.ts +1 -1
- package/dist/index16.vue.d.cts +1 -1
- package/dist/index17.vue.d.ts +1 -1
- package/dist/index18.vue.d.cts +1 -1
- package/dist/index18.vue.d.ts +5 -5
- package/dist/index19.vue.d.cts +5 -5
- package/dist/index19.vue.d.ts +5 -4
- package/dist/index2.vue.d.cts +2 -2
- package/dist/index2.vue.d.ts +2 -2
- package/dist/index20.vue.d.cts +2 -2
- package/dist/index20.vue.d.ts +2 -2
- package/dist/index21.vue.d.cts +2 -2
- package/dist/index21.vue.d.ts +2 -2
- package/dist/index22.vue.d.cts +2 -2
- package/dist/index22.vue.d.ts +2 -2
- package/dist/index25.vue.d.cts +4 -4
- package/dist/index25.vue.d.ts +4 -4
- package/dist/index26.vue.d.cts +1 -1
- package/dist/index26.vue.d.ts +1 -1
- package/dist/index27.vue.d.cts +4 -4
- package/dist/index27.vue.d.ts +4 -4
- package/dist/index28.vue.d.cts +2 -2
- package/dist/index28.vue.d.ts +2 -2
- package/dist/index3.vue.d.cts +4 -4
- package/dist/index3.vue.d.ts +4 -4
- package/dist/index4.vue.d.cts +5 -4
- package/dist/index8.vue.d.ts +3 -3
- package/dist/index9.vue.d.cts +3 -3
- package/dist/index9.vue.d.ts +5 -5
- package/dist/mapUtils.d.cts +2 -2
- package/dist/mapUtils.d.ts +2 -2
- package/dist/style.css +274 -264
- package/dist/useCalendarEvents.d.cts +1 -1
- package/dist/useCalendarEvents.d.ts +1 -1
- package/dist/useCollapsePanel.d.cts +4 -4
- package/dist/useCollapsePanel.d.ts +4 -4
- package/dist/useCropperCore.d.cts +6 -6
- package/dist/useCropperCore.d.ts +6 -6
- package/dist/useDraggableLayout.d.cts +6 -6
- package/dist/useDraggableLayout.d.ts +6 -6
- package/dist/useDynamicFormState.d.cts +4 -3
- package/dist/useDynamicFormState.d.ts +4 -3
- package/dist/useEdgeInteraction.d.cts +2 -2
- package/dist/useEdgeInteraction.d.ts +2 -2
- package/dist/useInfiniteScroll.d.cts +2 -2
- package/dist/useInfiniteScroll.d.ts +2 -2
- package/dist/useQRCode.d.cts +3 -3
- package/dist/useQRCode.d.ts +3 -3
- package/dist/useSearchState.d.cts +2 -2
- package/dist/useSearchState.d.ts +2 -2
- package/dist/useSignatureHistory.d.cts +4 -4
- package/dist/useSignatureHistory.d.ts +4 -4
- package/dist/useSplitResize.d.cts +11 -11
- package/dist/useSplitResize.d.ts +11 -11
- package/dist/useTableQuery.cjs +3 -3
- package/dist/useTableQuery.d.cts +535 -509
- package/dist/useTableQuery.d.ts +535 -509
- package/dist/useTableQuery.js +3 -3
- package/dist/useTimeSelection.d.cts +11 -6
- package/dist/useTimeSelection.d.ts +11 -6
- package/dist/useWorkflowValidation.d.cts +5 -5
- package/dist/useWorkflowValidation.d.ts +5 -5
- package/dist/verification.d.cts +4 -4
- package/dist/verification.d.ts +4 -4
- package/docs/guides/usage.en.md +16 -0
- package/docs/guides/usage.md +38 -0
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @robot-admin/naive-ui-components
|
|
2
2
|
|
|
3
|
+
## 0.17.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 统一表格弹窗、行编辑和单元格编辑的列规则提取:必填、自定义、类型、嵌套、转换与异步校验使用 Naive 同源的 async-validator;保留 false、0 与异步保存的状态隔离。功能列与只读列不再进入编辑表单,数字字段键继续有效。
|
|
8
|
+
- 表格字段转换复用 C_Form 公开类型,移除重复字段结构和宽泛断言;修正 C_Time / C_Menu 公开实例的 Ref 解包类型,内部组合函数仍保留响应式 Ref。
|
|
9
|
+
- 工作流配置弹窗和整体校验复用同一条件完整性判断,拒绝空白字段和无效操作符。质量门禁改为 AST 统计显式 any,并收紧总量及核心组件回退预算。
|
|
10
|
+
- 增加真实组件组合、各类规则、异步回调及发布包消费者类型回归,保持现有配置入口、按需加载和兼容路径。
|
|
11
|
+
|
|
12
|
+
## 0.17.4
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- 修复搜索选择字段的多选数组和布尔值回显,搜索、清空、重置及外部模型更新保留原始业务类型,区分 `false`、`0` 与字符串值;沿用 `list` 和 `attrs.multiple`,无需新增配置。
|
|
17
|
+
- 补齐 `TableProps` 的 config / crud / remote / virtualScrollX 与原生分页类型,CRUD 模式不再要求重复列和数据;`TableInstance` 补齐已存在的跨页选择与管理器接口,保留现有运行行为和属性透传。
|
|
18
|
+
- 修正 `TreeExpose` 的公开状态为 Vue 实际解包后的数组,内部组合函数仍使用 Ref;`useCForm().validate()` 在未挂载或卸载后拒绝执行,保留挂载前草稿操作。
|
|
19
|
+
- 增加真实组件回归和发布包消费者类型验证,更新中英文接入说明。
|
|
20
|
+
|
|
3
21
|
## 0.17.3
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
package/dist/C_Form.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk.cjs`),require(`./C_Icon2.cjs`);const e=require(`./helpers.cjs`),t=require(`./useDynamicFormState.cjs`);let
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk.cjs`),require(`./C_Icon2.cjs`);const e=require(`./helpers.cjs`),t=require(`./formValidation.cjs`),n=require(`./useDynamicFormState.cjs`);let r=require(`@robot-admin/form-validate`);exports.C_Form=e.i,exports.DYNAMIC_FORM_STATE_KEY=n.t,exports.FIELD_TYPE_OPTIONS=n.n,exports.FORM_DEFAULTS=e.f,exports.FORM_GLOBAL_CONFIG_KEY=e.p,exports.FORM_RENDERER_REGISTRY_KEY=e.a,exports.LAYOUTS_WITH_OWN_CONTROLS=e.m,exports.NAIVE_COMBOS=t.t,exports.PRESET_RULES=t.n,Object.defineProperty(exports,`SPEC_RULES`,{enumerable:!0,get:function(){return r.SPEC_RULES}}),exports.createFormRendererRegistry=e.o,exports.defineFormConfig=e.t,exports.defineFormOptions=e.n,exports.mergeFormConfig=e.h,exports.registerRenderer=e.s,exports.resolveFormConfig=e.g,exports.shouldShowActions=e._,exports.unregisterRenderer=e.c,exports.useCForm=e.r,exports.useDynamicFormState=n.r,exports.useFormDirty=e.d,exports.useFormGlobalConfig=e.v,exports.useFormRenderer=e.l,exports.useFormState=e.u;
|
package/dist/C_Form.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./C_Icon2.js";import{_ as e,a as t,
|
|
1
|
+
import"./C_Icon2.js";import{_ as e,a as t,c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,n as u,o as d,p as f,r as p,s as m,t as h,u as g,v as _}from"./helpers.js";import{n as v,r as y,t as b}from"./formValidation.js";import{n as x,r as S,t as C}from"./useDynamicFormState.js";export{s as C_Form,C as DYNAMIC_FORM_STATE_KEY,x as FIELD_TYPE_OPTIONS,i as FORM_DEFAULTS,f as FORM_GLOBAL_CONFIG_KEY,t as FORM_RENDERER_REGISTRY_KEY,l as LAYOUTS_WITH_OWN_CONTROLS,b as NAIVE_COMBOS,v as PRESET_RULES,y as SPEC_RULES,d as createFormRendererRegistry,h as defineFormConfig,u as defineFormOptions,o as mergeFormConfig,m as registerRenderer,a as resolveFormConfig,e as shouldShowActions,n as unregisterRenderer,p as useCForm,S as useDynamicFormState,r as useFormDirty,_ as useFormGlobalConfig,c as useFormRenderer,g as useFormState};
|
package/dist/C_FormModal2.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./chunk.cjs`);const e=require(`./density.cjs`),t=require(`./export-helper.cjs`),n=require(`./C_ActionBar2.cjs`),r=require(`./helpers.cjs`);let i=require(`vue`),a=require(`naive-ui`);const o=(0,i.defineComponent)({name:`C_FormModal`,__name:`index`,props:{editor:{},options:{},config:{default:()=>({})},width:{default:`min(620px, calc(100vw - 24px))`},createText:{default:`创建`},saveText:{default:`保存`},cancelText:{default:`取消`},closable:{type:Boolean,default:!0},maskClosable:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0}},emits:[`submit`,`close`],setup(t,{emit:o}){let s=t,c=o,l=(0,i.ref)(null),u=r.
|
|
1
|
+
require(`./chunk.cjs`);const e=require(`./density.cjs`),t=require(`./export-helper.cjs`),n=require(`./C_ActionBar2.cjs`),r=require(`./helpers.cjs`);let i=require(`vue`),a=require(`naive-ui`);const o=(0,i.defineComponent)({name:`C_FormModal`,__name:`index`,props:{editor:{},options:{},config:{default:()=>({})},width:{default:`min(620px, calc(100vw - 24px))`},createText:{default:`创建`},saveText:{default:`保存`},cancelText:{default:`取消`},closable:{type:Boolean,default:!0},maskClosable:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0}},emits:[`submit`,`close`],setup(t,{emit:o}){let s=t,c=o,l=(0,i.ref)(null),u=r.v(),d=(0,i.computed)(()=>s.config?.density??u.density),f=(0,i.computed)({get:()=>s.editor.visible.value,set:e=>{e||v()}}),p=(0,i.computed)(()=>s.editor.title.value),m=(0,i.computed)(()=>s.editor.loading.value),h=(0,i.computed)(()=>typeof s.width==`number`?`${s.width}px`:s.width),g=(0,i.computed)({get:()=>s.editor.model.value??{},set:e=>{s.editor.setModel(e)}}),_=(0,i.computed)(()=>({...d.value===void 0?{size:`small`}:{},...s.config,mode:s.editor.mode.value,initialValues:s.editor.model.value??void 0,showActions:!1,onSubmit:async(e,t)=>{if(await s.config?.onSubmit?.(e,t),t?.signal.aborted)return;let n=await s.editor.submit(e.model);t?.signal.aborted||c(`submit`,e,n)}})),v=()=>{s.editor.close(),c(`close`)},y=(0,i.computed)(()=>{let t={align:`right`};return(d.value!==void 0||s.config?.size!==void 0)&&(t.size=r.g(r.h(_.value,u)).size),d.value!==void 0&&(t.gap=e.t(d.value).gap,t.compact=d.value===`compact`),t}),b=(0,i.computed)(()=>n.a([{key:`cancel`,label:s.cancelText,disabled:m,onClick:v},{key:s.editor.mode.value===`create`?`create`:`save`,label:s.editor.mode.value===`create`?s.createText:s.saveText,loading:m,onClick:async()=>{await l.value?.submit()}}]));return(e,o)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NModal),{show:f.value,"onUpdate:show":o[1]||=e=>f.value=e,preset:`card`,title:p.value,style:(0,i.normalizeStyle)({width:h.value}),"mask-closable":t.maskClosable,"close-on-esc":t.closeOnEsc,closable:t.closable,class:`c-form-modal`},{action:(0,i.withCtx)(()=>[(0,i.createVNode)(n.t,{actions:b.value,config:y.value},null,8,[`actions`,`config`])]),default:(0,i.withCtx)(()=>[f.value&&t.editor.model.value?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(r.i),{key:0,ref_key:`formRef`,ref:l,modelValue:g.value,"onUpdate:modelValue":o[0]||=e=>g.value=e,options:t.options,config:_.value},(0,i.createSlots)({_:2},[(0,i.renderList)(e.$slots,(t,n)=>({name:n,fn:(0,i.withCtx)(t=>[(0,i.renderSlot)(e.$slots,n,(0,i.normalizeProps)((0,i.guardReactiveProps)(t)),void 0,!0)])}))]),1032,[`modelValue`,`options`,`config`])):(0,i.createCommentVNode)(`v-if`,!0)]),_:3},8,[`show`,`title`,`style`,`mask-closable`,`close-on-esc`,`closable`]))}});var s=t.t(o,[[`__scopeId`,`data-v-96dd2fea`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
|
package/dist/C_FormModal2.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./density.js";import{t}from"./export-helper.js";import{a as n,t as r}from"./C_ActionBar2.js";import{i,
|
|
1
|
+
import{t as e}from"./density.js";import{t}from"./export-helper.js";import{a as n,t as r}from"./C_ActionBar2.js";import{g as i,h as a,i as o,v as s}from"./helpers.js";import{computed as c,createBlock as l,createCommentVNode as u,createSlots as d,createVNode as f,defineComponent as p,guardReactiveProps as m,normalizeProps as h,normalizeStyle as g,openBlock as _,ref as v,renderList as y,renderSlot as b,unref as x,withCtx as S}from"vue";import{NModal as C}from"naive-ui";var w=t(p({name:`C_FormModal`,__name:`index`,props:{editor:{},options:{},config:{default:()=>({})},width:{default:`min(620px, calc(100vw - 24px))`},createText:{default:`创建`},saveText:{default:`保存`},cancelText:{default:`取消`},closable:{type:Boolean,default:!0},maskClosable:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0}},emits:[`submit`,`close`],setup(t,{emit:p}){let w=t,T=p,E=v(null),D=s(),O=c(()=>w.config?.density??D.density),k=c({get:()=>w.editor.visible.value,set:e=>{e||F()}}),A=c(()=>w.editor.title.value),j=c(()=>w.editor.loading.value),M=c(()=>typeof w.width==`number`?`${w.width}px`:w.width),N=c({get:()=>w.editor.model.value??{},set:e=>{w.editor.setModel(e)}}),P=c(()=>({...O.value===void 0?{size:`small`}:{},...w.config,mode:w.editor.mode.value,initialValues:w.editor.model.value??void 0,showActions:!1,onSubmit:async(e,t)=>{if(await w.config?.onSubmit?.(e,t),t?.signal.aborted)return;let n=await w.editor.submit(e.model);t?.signal.aborted||T(`submit`,e,n)}})),F=()=>{w.editor.close(),T(`close`)},I=c(()=>{let t={align:`right`};return(O.value!==void 0||w.config?.size!==void 0)&&(t.size=i(a(P.value,D)).size),O.value!==void 0&&(t.gap=e(O.value).gap,t.compact=O.value===`compact`),t}),L=c(()=>n([{key:`cancel`,label:w.cancelText,disabled:j,onClick:F},{key:w.editor.mode.value===`create`?`create`:`save`,label:w.editor.mode.value===`create`?w.createText:w.saveText,loading:j,onClick:async()=>{await E.value?.submit()}}]));return(e,n)=>(_(),l(x(C),{show:k.value,"onUpdate:show":n[1]||=e=>k.value=e,preset:`card`,title:A.value,style:g({width:M.value}),"mask-closable":t.maskClosable,"close-on-esc":t.closeOnEsc,closable:t.closable,class:`c-form-modal`},{action:S(()=>[f(r,{actions:L.value,config:I.value},null,8,[`actions`,`config`])]),default:S(()=>[k.value&&t.editor.model.value?(_(),l(x(o),{key:0,ref_key:`formRef`,ref:E,modelValue:N.value,"onUpdate:modelValue":n[0]||=e=>N.value=e,options:t.options,config:P.value},d({_:2},[y(e.$slots,(t,n)=>({name:n,fn:S(t=>[b(e.$slots,n,h(m(t)),void 0,!0)])}))]),1032,[`modelValue`,`options`,`config`])):u(`v-if`,!0)]),_:3},8,[`show`,`title`,`style`,`mask-closable`,`close-on-esc`,`closable`]))}}),[[`__scopeId`,`data-v-96dd2fea`]]);export{w as t};
|
package/dist/C_FormSearch.css
CHANGED
|
@@ -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-
|
|
3
|
+
.form-search-card[data-v-48f30fec] :is(.n-card-content, .n-card__content) {
|
|
4
4
|
padding: var(--c-search-padding, 20px);
|
|
5
5
|
}
|
|
6
|
-
.form-search[data-v-
|
|
6
|
+
.form-search[data-v-48f30fec] {
|
|
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-
|
|
12
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] {
|
|
13
13
|
position: relative;
|
|
14
14
|
}
|
|
15
|
-
.form-search .form-search-item-box .form-item-input[data-v-
|
|
16
|
-
.form-search .form-search-item-box .form-item-input[data-v-
|
|
17
|
-
.form-search .form-search-item-box .form-item-input[data-v-
|
|
15
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .n-input,
|
|
16
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .n-select,
|
|
17
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .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-
|
|
21
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .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-
|
|
29
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .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-
|
|
33
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .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-
|
|
36
|
+
.form-search .form-search-item-box .form-item-input .input-history[data-v-48f30fec] {
|
|
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-
|
|
52
|
+
.form-search .form-search-item-box .form-item-input .input-history .history-item[data-v-48f30fec] {
|
|
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-
|
|
63
|
+
.form-search .form-search-item-box .form-item-input .input-history .history-item[data-v-48f30fec]: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-
|
|
66
|
+
.form-search .form-search-item-box .form-item-input .input-history .history-item:hover .delete-icon[data-v-48f30fec] {
|
|
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-
|
|
70
|
+
.form-search .form-search-item-box .form-item-input .input-history .history-item[data-v-48f30fec]: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-
|
|
73
|
+
.form-search .form-search-item-box .form-item-input .input-history .history-item .history-text[data-v-48f30fec] {
|
|
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-
|
|
80
|
+
.form-search .form-search-item-box .form-item-input .input-history .history-item .delete-icon[data-v-48f30fec] {
|
|
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-
|
|
92
|
+
.form-search .form-search-item-box .form-item-input .input-history .history-item .delete-icon[data-v-48f30fec]: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-
|
|
97
|
+
.form-search .form-search-item-box .form-item-input .input-history .history-footer[data-v-48f30fec] {
|
|
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-
|
|
102
|
+
.form-search .form-search-item-box .form-item-input .input-history .history-footer .clear-all[data-v-48f30fec] {
|
|
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-
|
|
108
|
+
.form-search .form-search-item-box .form-item-input .input-history .history-footer .clear-all[data-v-48f30fec]:hover {
|
|
109
109
|
color: var(--n-error-color);
|
|
110
110
|
}
|
|
111
|
-
.form-search .form-search-item-box .form-item-input .input-history[data-v-
|
|
111
|
+
.form-search .form-search-item-box .form-item-input .input-history[data-v-48f30fec] {
|
|
112
112
|
/* custom scrollbar */
|
|
113
113
|
}
|
|
114
|
-
.form-search .form-search-item-box .form-item-input .input-history[data-v-
|
|
114
|
+
.form-search .form-search-item-box .form-item-input .input-history[data-v-48f30fec]::-webkit-scrollbar {
|
|
115
115
|
width: 6px;
|
|
116
116
|
}
|
|
117
|
-
.form-search .form-search-item-box .form-item-input .input-history[data-v-
|
|
117
|
+
.form-search .form-search-item-box .form-item-input .input-history[data-v-48f30fec]::-webkit-scrollbar-track {
|
|
118
118
|
background: transparent;
|
|
119
119
|
}
|
|
120
|
-
.form-search .form-search-item-box .form-item-input .input-history[data-v-
|
|
120
|
+
.form-search .form-search-item-box .form-item-input .input-history[data-v-48f30fec]::-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-
|
|
124
|
+
.form-search .form-search-item-box .form-item-input .input-history[data-v-48f30fec]::-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-
|
|
130
|
+
.form-search[data-v-48f30fec] {
|
|
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-
|
|
134
|
-
.form-search .form-search-item-box .form-item-input[data-v-
|
|
135
|
-
.form-search .form-search-item-box .form-item-input[data-v-
|
|
133
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .n-input,
|
|
134
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .n-select,
|
|
135
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .n-date-picker {
|
|
136
136
|
width: 240px;
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
@media (max-width: 1200px) {
|
|
140
|
-
.form-search[data-v-
|
|
140
|
+
.form-search[data-v-48f30fec] {
|
|
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-
|
|
144
|
-
.form-search .form-search-item-box .form-item-input[data-v-
|
|
145
|
-
.form-search .form-search-item-box .form-item-input[data-v-
|
|
143
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .n-input,
|
|
144
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .n-select,
|
|
145
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .n-date-picker {
|
|
146
146
|
width: 220px;
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
@media (max-width: 900px) {
|
|
150
|
-
.form-search[data-v-
|
|
150
|
+
.form-search[data-v-48f30fec] {
|
|
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-
|
|
154
|
-
.form-search .form-search-item-box .form-item-input[data-v-
|
|
155
|
-
.form-search .form-search-item-box .form-item-input[data-v-
|
|
153
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .n-input,
|
|
154
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .n-select,
|
|
155
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .n-date-picker {
|
|
156
156
|
width: 200px;
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
@media (max-width: 600px) {
|
|
160
|
-
.form-search-card[data-v-
|
|
160
|
+
.form-search-card[data-v-48f30fec] :is(.n-card-content, .n-card__content) {
|
|
161
161
|
padding: var(--c-search-padding, 16px);
|
|
162
162
|
}
|
|
163
|
-
.form-search[data-v-
|
|
163
|
+
.form-search[data-v-48f30fec] {
|
|
164
164
|
gap: var(--c-search-row-gap, 12px) 0;
|
|
165
165
|
}
|
|
166
|
-
.form-search .form-search-item-box[data-v-
|
|
166
|
+
.form-search .form-search-item-box[data-v-48f30fec] {
|
|
167
167
|
width: 100%;
|
|
168
168
|
}
|
|
169
|
-
.form-search .form-search-item-box .form-item-input[data-v-
|
|
170
|
-
.form-search .form-search-item-box .form-item-input[data-v-
|
|
171
|
-
.form-search .form-search-item-box .form-item-input[data-v-
|
|
169
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .n-input,
|
|
170
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .n-select,
|
|
171
|
+
.form-search .form-search-item-box .form-item-input[data-v-48f30fec] .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-
|
|
174
|
+
.form-search .form-search-item-box .form-item-input .input-history .history-item .delete-icon[data-v-48f30fec] {
|
|
175
175
|
opacity: 1;
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
178
|
|
|
179
179
|
/* layer: icons */
|
|
180
|
-
.i-mdi\:chevron-down[data-v-
|
|
181
|
-
.i-mdi\:chevron-up[data-v-
|
|
182
|
-
.i-mdi\:close[data-v-
|
|
183
|
-
.i-mdi\:refresh[data-v-
|
|
184
|
-
.i-mdi\:search[data-v-
|
|
180
|
+
.i-mdi\:chevron-down[data-v-48f30fec]{--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-48f30fec]{--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-48f30fec]{--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-48f30fec]{--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-48f30fec]{--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-
|
|
187
|
-
.w-4[data-v-
|
|
188
|
-
.px[data-v-
|
|
186
|
+
.h-4[data-v-48f30fec]{height:1rem;}
|
|
187
|
+
.w-4[data-v-48f30fec]{width:1rem;}
|
|
188
|
+
.px[data-v-48f30fec]{padding-left:1rem;padding-right:1rem;}
|
package/dist/C_FormSearch2.cjs
CHANGED
|
@@ -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)=>{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,r){let a=(0,s.computed)(()=>(0,s.toValue)(r.config)??{}),c=n.t(()=>a.value.feedback),{t:u}=t.t(()=>a.value.locale),d=(0,s.ref)(null),f=(0,s.computed)(()=>a.value.foldThreshold??7),p=(0,s.computed)(()=>a.value.requireValue??!0),m=(0,s.ref)(o.t(r.formItemList)),h=(0,s.ref)(o.t(r.formParams)),g=(0,s.ref)(!1),_=i.t(),v=(0,s.computed)(()=>_.isRunning(`search`)),y=!0;(0,s.getCurrentScope)()&&(0,s.onScopeDispose)(()=>{y=!1});let b=l(m,h,r.historyOptions),x=(0,s.computed)(()=>m.value.filter(e=>e.show!==!1)),S=(0,s.computed)(()=>x.value.filter((e,t)=>g.value||t<f.value)),C=(0,s.computed)(()=>x.value.length>f.value),w=e=>e==null||e===``||Array.isArray(e)&&e.length===0,T=()=>{m.value.forEach(e=>{e.isFocus=!1,e.type===`select`?(e.placeholder||=`请选择`,h.value[e.prop]===void 0&&(h.value[e.prop]=o.t(e.defaultValue??null))):h.value[e.prop]===void 0&&e.defaultValue!==void 0&&(h.value[e.prop]=o.t(e.defaultValue))})},E=async()=>{try{return await d.value?.validate(),!0}catch{return!1}},D=e=>y&&!(0,s.toValue)(r.loading)&&o.a(h.value,e),O=async()=>{let t=o.t(h.value);if(!await E()||!D(t))return!1;if(p.value&&!Object.entries(t).filter(([e])=>e!==`pageNum`&&e!==`pageSize`).some(([,e])=>!w(e)))return c.warning(u(`search.valueRequired`)),!1;if(b.saveCurrentInputs(),e(`search`,o.t(t)),!D(t))return!1;if(!a.value.onSearch)return!0;try{return await a.value.onSearch(t),y}catch(e){return y&&c.error(u(`search.failed`),e),!1}},k=async()=>{let e=await _.run(`search`,O,()=>!(0,s.toValue)(r.loading));return e.executed&&e.value},A=t=>{e(`change-params`,o.t(t)),e(`update:modelValue`,o.t(t))},j=()=>{F=!0;let e=++I;(0,s.nextTick)(()=>{e===I&&(F=!1)})},M=()=>{d.value?.restoreValidation();let t=o.t(h.value);Object.keys(t).forEach(e=>{e!==`pageNum`&&e!==`pageSize`&&(t[e]=o.t(m.value.find(t=>t.prop===e)?.defaultValue??null))}),j(),h.value=t,A(t),e(`reset`,o.t(t))},N=()=>{g.value=!g.value},P=(e,t)=>{j(),m.value=o.t(e),h.value=o.t(t),T()},F=!1,I=0;return T(),(0,s.watch)(h,e=>{F||A(e)},{deep:!0}),(0,s.onMounted)(()=>{b.restoreFromStorage()}),{formRef:d,fields:m,formParams:h,expanded:g,searching:v,visibleFields:S,hasExpandButton:C,history:b,searchFn:k,resetFn:M,toggleFold:N,syncFromProps:P}}const d=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}},f=[`onClick`],p={class:`history-text`},m={key:0,class:`history-footer`},h=[`onClick`],g={class:`form-search-item-box form-search-actions`},_={class:`form-item-input`},v=(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),v=(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:y,formParams:b,expanded:x,searching:S,visibleFields:C,hasExpandButton:w,history:T,searchFn:E,resetFn:D,toggleFold:O,syncFromProps:k}=u(a,{formItemList:i.formItemList,formParams:i.modelValue??i.formParams,config:()=>i.config,loading:()=>i.loading,historyOptions:()=>({storageKey:i.formSearchInputHistoryString,maxItems:i.config?.historyMaxItems})}),A=e=>e?.map(e=>({...e,label:e.label??e.labelDefault??``,value:e.value===void 0?e.label??e.labelDefault:e.value})),j=e=>{let t=b.value[e];return typeof t==`string`?t:null},M=e=>{let t=b.value[e];return typeof t==`string`||typeof t==`number`?t:null},N=(e,t)=>{b.value[e]=t},P=e=>{let t=d(b.value[e]);return t.mode===`formatted`?{formattedValue:t.value,"onUpdate:formattedValue":t=>N(e,t)}:{value:t.value,"onUpdate:value":t=>N(e,t)}};return(0,s.watch)(()=>[i.formItemList,i.modelValue,i.formParams],([e,t,n])=>k(e,t??n),{deep:!0}),n({formRef:y,formParams:b,searchFn:E,cleanFn:D,changeFoldState:O}),(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)(v.value),bordered:t.bordered},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NForm),{class:`form-search`,model:(0,s.unref)(b),ref_key:`formRef`,ref:y,size:l.value,onSubmit:(0,s.withModifiers)((0,s.unref)(E),[`prevent`])},{default:(0,s.withCtx)(()=>[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)((0,s.unref)(C),(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:j(e.prop),"onUpdate:value":t=>N(e.prop,t),placeholder:e.placeholder},{ref_for:!0},e.attrs,{onFocus:t=>(0,s.unref)(T).handleFocus(e.prop),onBlur:(0,s.unref)(T).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)(T).selectHistoryItem(t,e.prop),key:t},[(0,s.createElementVNode)(`span`,p,(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)(T).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,f))),128)),e.hisList&&e.hisList.length>0?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,m,[(0,s.createElementVNode)(`span`,{class:`clear-all`,onClick:(0,s.withModifiers)(t=>(0,s.unref)(T).clearAllHistory(e.prop),[`stop`])},` 清空历史记录 `,8,h)])):(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(e.prop),"onUpdate:value":t=>N(e.prop,t),placeholder:e.placeholder||`请选择`,clearable:``,size:l.value,options:A(e.list)},{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},{...P(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`,g,[(0,s.createElementVNode)(`div`,_,[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)(E),loading:t.loading||(0,s.unref)(S)},{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)(D)},{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)(w)?((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)(x)?`收起搜索条件`:`展开搜索条件`,"aria-expanded":(0,s.unref)(x),onClick:(0,s.unref)(O)},{icon:(0,s.withCtx)(()=>[(0,s.createElementVNode)(`div`,{class:(0,s.normalizeClass)((0,s.unref)(x)?`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)(x)?`收起`:`展开`),1)]),_:1})):(0,s.createCommentVNode)(`v-if`,!0)]),_:1},8,[`size`])])])]),_:1},8,[`model`,`size`,`onSubmit`])]),_:1},8,[`class`,`style`,`bordered`]))}});var y=r.t(v,[[`__scopeId`,`data-v-4c7e8019`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return y}});
|
|
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)=>{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,r){let a=(0,s.computed)(()=>(0,s.toValue)(r.config)??{}),c=n.t(()=>a.value.feedback),{t:u}=t.t(()=>a.value.locale),d=(0,s.ref)(null),f=(0,s.computed)(()=>a.value.foldThreshold??7),p=(0,s.computed)(()=>a.value.requireValue??!0),m=(0,s.ref)(o.t(r.formItemList)),h=(0,s.ref)(o.t(r.formParams)),g=(0,s.ref)(!1),_=i.t(),v=(0,s.computed)(()=>_.isRunning(`search`)),y=!0;(0,s.getCurrentScope)()&&(0,s.onScopeDispose)(()=>{y=!1});let b=l(m,h,r.historyOptions),x=(0,s.computed)(()=>m.value.filter(e=>e.show!==!1)),S=(0,s.computed)(()=>x.value.filter((e,t)=>g.value||t<f.value)),C=(0,s.computed)(()=>x.value.length>f.value),w=e=>e==null||e===``||Array.isArray(e)&&e.length===0,T=()=>{m.value.forEach(e=>{e.isFocus=!1,e.type===`select`?(e.placeholder||=`请选择`,h.value[e.prop]===void 0&&(h.value[e.prop]=o.t(e.defaultValue??null))):h.value[e.prop]===void 0&&e.defaultValue!==void 0&&(h.value[e.prop]=o.t(e.defaultValue))})},E=async()=>{try{return await d.value?.validate(),!0}catch{return!1}},D=e=>y&&!(0,s.toValue)(r.loading)&&o.a(h.value,e),O=async()=>{let t=o.t(h.value);if(!await E()||!D(t))return!1;if(p.value&&!Object.entries(t).filter(([e])=>e!==`pageNum`&&e!==`pageSize`).some(([,e])=>!w(e)))return c.warning(u(`search.valueRequired`)),!1;if(b.saveCurrentInputs(),e(`search`,o.t(t)),!D(t))return!1;if(!a.value.onSearch)return!0;try{return await a.value.onSearch(t),y}catch(e){return y&&c.error(u(`search.failed`),e),!1}},k=async()=>{let e=await _.run(`search`,O,()=>!(0,s.toValue)(r.loading));return e.executed&&e.value},A=t=>{e(`change-params`,o.t(t)),e(`update:modelValue`,o.t(t))},j=()=>{F=!0;let e=++I;(0,s.nextTick)(()=>{e===I&&(F=!1)})},M=()=>{d.value?.restoreValidation();let t=o.t(h.value);Object.keys(t).forEach(e=>{e!==`pageNum`&&e!==`pageSize`&&(t[e]=o.t(m.value.find(t=>t.prop===e)?.defaultValue??null))}),j(),h.value=t,A(t),e(`reset`,o.t(t))},N=()=>{g.value=!g.value},P=(e,t)=>{j(),m.value=o.t(e),h.value=o.t(t),T()},F=!1,I=0;return T(),(0,s.watch)(h,e=>{F||A(e)},{deep:!0}),(0,s.onMounted)(()=>{b.restoreFromStorage()}),{formRef:d,fields:m,formParams:h,expanded:g,searching:v,visibleFields:S,hasExpandButton:C,history:b,searchFn:k,resetFn:M,toggleFold:N,syncFromProps:P}}const d=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 f(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 p=[`onClick`],m={class:`history-text`},h={key:0,class:`history-footer`},g=[`onClick`],_={class:`form-search-item-box form-search-actions`},v={class:`form-item-input`},y=(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),y=(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:b,formParams:x,expanded:S,searching:C,visibleFields:w,hasExpandButton:T,history:E,searchFn:D,resetFn:O,toggleFold:k,syncFromProps:A}=u(a,{formItemList:i.formItemList,formParams:i.modelValue??i.formParams,config:()=>i.config,loading:()=>i.loading,historyOptions:()=>({storageKey:i.formSearchInputHistoryString,maxItems:i.config?.historyMaxItems})}),j=(0,s.computed)(()=>new Map(w.value.filter(e=>e.type===`select`).map(e=>[e.prop,f(e.list,x.value[e.prop])]))),M=e=>{let t=x.value[e];return typeof t==`string`?t:null},N=(e,t)=>{P(e,j.value.get(e)?.decode(t)??null)},P=(e,t)=>{x.value[e]=t},F=e=>{let t=d(x.value[e]);return t.mode===`formatted`?{formattedValue:t.value,"onUpdate:formattedValue":t=>P(e,t)}:{value:t.value,"onUpdate:value":t=>P(e,t)}};return(0,s.watch)(()=>[i.formItemList,i.modelValue,i.formParams],([e,t,n])=>A(e,t??n),{deep:!0}),n({formRef:b,formParams:x,searchFn:D,cleanFn:O,changeFoldState:k}),(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)(y.value),bordered:t.bordered},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NForm),{class:`form-search`,model:(0,s.unref)(x),ref_key:`formRef`,ref:b,size:l.value,onSubmit:(0,s.withModifiers)((0,s.unref)(D),[`prevent`])},{default:(0,s.withCtx)(()=>[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)((0,s.unref)(w),(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:M(e.prop),"onUpdate:value":t=>P(e.prop,t),placeholder:e.placeholder},{ref_for:!0},e.attrs,{onFocus:t=>(0,s.unref)(E).handleFocus(e.prop),onBlur:(0,s.unref)(E).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)(E).selectHistoryItem(t,e.prop),key:t},[(0,s.createElementVNode)(`span`,m,(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)(E).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,p))),128)),e.hisList&&e.hisList.length>0?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,h,[(0,s.createElementVNode)(`span`,{class:`clear-all`,onClick:(0,s.withModifiers)(t=>(0,s.unref)(E).clearAllHistory(e.prop),[`stop`])},` 清空历史记录 `,8,g)])):(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:j.value.get(e.prop)?.value,"onUpdate:value":t=>N(e.prop,t),placeholder:e.placeholder||`请选择`,clearable:``,size:l.value,options:j.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},{...F(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`,_,[(0,s.createElementVNode)(`div`,v,[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)(D),loading:t.loading||(0,s.unref)(C)},{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)(O)},{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)(T)?((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)(S)?`收起搜索条件`:`展开搜索条件`,"aria-expanded":(0,s.unref)(S),onClick:(0,s.unref)(k)},{icon:(0,s.withCtx)(()=>[(0,s.createElementVNode)(`div`,{class:(0,s.normalizeClass)((0,s.unref)(S)?`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)(S)?`收起`:`展开`),1)]),_:1})):(0,s.createCommentVNode)(`v-if`,!0)]),_:1},8,[`size`])])])]),_:1},8,[`model`,`size`,`onSubmit`])]),_:1},8,[`class`,`style`,`bordered`]))}});var b=r.t(y,[[`__scopeId`,`data-v-48f30fec`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return b}});
|
package/dist/C_FormSearch2.js
CHANGED
|
@@ -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)=>{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,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=()=>{m.value.forEach(e=>{e.isFocus=!1,e.type===`select`?(e.placeholder||=`请选择`,h.value[e.prop]===void 0&&(h.value[e.prop]=c(e.defaultValue??null))):h.value[e.prop]===void 0&&e.defaultValue!==void 0&&(h.value[e.prop]=c(e.defaultValue))})},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);Object.keys(t).forEach(e=>{e!==`pageNum`&&e!==`pageSize`&&(t[e]=c(m.value.find(t=>t.prop===e)?.defaultValue??null))}),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 K=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}},
|
|
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)=>{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,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=()=>{m.value.forEach(e=>{e.isFocus=!1,e.type===`select`?(e.placeholder||=`请选择`,h.value[e.prop]===void 0&&(h.value[e.prop]=c(e.defaultValue??null))):h.value[e.prop]===void 0&&e.defaultValue!==void 0&&(h.value[e.prop]=c(e.defaultValue))})},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);Object.keys(t).forEach(e=>{e!==`pageNum`&&e!==`pageSize`&&(t[e]=c(m.value.find(t=>t.prop===e)?.defaultValue??null))}),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 K=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 q(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 J=[`onClick`],Y={class:`history-text`},ee={key:0,class:`history-footer`},te=[`onClick`],ne={class:`form-search-item-box form-search-actions`},re={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,visibleFields:w,hasExpandButton:E,history:k,searchFn:W,resetFn:X,toggleFold:Z,syncFromProps:ie}=G(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,q(e.list,v.value[e.prop])]))),ae=e=>{let t=v.value[e];return typeof t==`string`?t:null},oe=(e,t)=>{$(e,Q.value.get(e)?.decode(t)??null)},$=(e,t)=>{v.value[e]=t},se=e=>{let t=K(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])=>ie(e,t??n),{deep:!0}),n({formRef:_,formParams:v,searchFn:W,cleanFn:X,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:ae(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`,Y,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,J))),128)),e.hisList&&e.hisList.length>0?(T(),p(`div`,ee,[m(`span`,{class:`clear-all`,onClick:N(t=>A(k).clearAllHistory(e.prop),[`stop`])},` 清空历史记录 `,8,te)])):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=>oe(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},{...se(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`,ne,[m(`div`,re,[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(X)},{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-48f30fec`]]);export{G as n,W as r,X as t};
|