fast-element-plus 1.0.14 → 1.0.16

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 (37) hide show
  1. package/dist/index.full.js +79 -72
  2. package/dist/index.full.js.map +1 -1
  3. package/dist/index.full.min.js +1 -1
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +1 -1
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +79 -72
  8. package/dist/index.full.mjs.map +1 -1
  9. package/es/components/button/src/button.mjs.map +1 -1
  10. package/es/components/carNumber/src/carNumber.mjs +1 -1
  11. package/es/components/carNumber/src/carNumber.mjs.map +1 -1
  12. package/es/components/image/src/image.mjs +1 -1
  13. package/es/components/image/src/image.mjs.map +1 -1
  14. package/es/components/inputDialogPage/src/inputDialogPage.d.ts +2 -2
  15. package/es/components/inputDialogPage/src/inputDialogPage.mjs +1 -1
  16. package/es/components/inputDialogPage/src/inputDialogPage.mjs.map +1 -1
  17. package/es/components/layoutGrid/src/layoutGridItem.mjs.map +1 -1
  18. package/es/components/table/src/table.mjs +1 -1
  19. package/es/components/table/src/table.mjs.map +1 -1
  20. package/es/version.d.ts +1 -1
  21. package/es/version.mjs +1 -1
  22. package/es/version.mjs.map +1 -1
  23. package/lib/components/button/src/button.js.map +1 -1
  24. package/lib/components/carNumber/src/carNumber.js +1 -1
  25. package/lib/components/carNumber/src/carNumber.js.map +1 -1
  26. package/lib/components/image/src/image.js +1 -1
  27. package/lib/components/image/src/image.js.map +1 -1
  28. package/lib/components/inputDialogPage/src/inputDialogPage.d.ts +2 -2
  29. package/lib/components/inputDialogPage/src/inputDialogPage.js +1 -1
  30. package/lib/components/inputDialogPage/src/inputDialogPage.js.map +1 -1
  31. package/lib/components/layoutGrid/src/layoutGridItem.js.map +1 -1
  32. package/lib/components/table/src/table.js +1 -1
  33. package/lib/components/table/src/table.js.map +1 -1
  34. package/lib/version.d.ts +1 -1
  35. package/lib/version.js +1 -1
  36. package/lib/version.js.map +1 -1
  37. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"button.mjs","sources":["../../../../../packages/components/button/src/button.tsx"],"sourcesContent":["import { computed, defineComponent, reactive, ref, watch, withModifiers } from \"vue\";\nimport { ElButton, buttonEmits, buttonProps } from \"element-plus\";\nimport { Eleme } from \"@element-plus/icons-vue\";\nimport { useOverlay } from \"@fast-element-plus/hooks\";\nimport { consoleError, definePropType, execFunction, makeSlots, useExpose, useProps, useRender } from \"@fast-china/utils\";\nimport { isFunction } from \"lodash-unified\";\nimport type { ButtonInstance } from \"element-plus\";\nimport type { Component, VNode } from \"vue\";\n\nexport const faButtonProps = {\n\t...buttonProps,\n\t/**\n\t * @description customize loading icon component\n\t * @default Eleme\n\t */\n\tloadingIcon: {\n\t\ttype: definePropType<string | Component>([String, Object, Function]),\n\t\tdefault: (): string | Component => Eleme,\n\t},\n\t/** @description 禁用加载 */\n\tdisabledLoading: Boolean,\n};\n\nexport const faButtonEmits = {\n\t...buttonEmits,\n\t/**\n\t * @description 点击事件\n\t * @param done 需要手动隐藏Loading\n\t */\n\tclick: (event: MouseEvent, done: () => void = () => {}): boolean => event instanceof MouseEvent && isFunction(done),\n};\n\ntype FaButtonSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: never;\n\t/** @description 自定义加载中组件 */\n\tloading: never;\n\t/** @description 自定义图标组件 */\n\ticon: never;\n};\n\nexport default defineComponent({\n\tname: \"FaButton\",\n\tprops: faButtonProps,\n\temits: faButtonEmits,\n\tslots: makeSlots<FaButtonSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst state = reactive({\n\t\t\tloading: false,\n\t\t});\n\n\t\tconst buttonRef = ref<ButtonInstance>();\n\n\t\tconst showLoading = (): void => {\n\t\t\tstate.loading = true;\n\t\t\t// 这里默认透明\n\t\t\tuseOverlay.show(0);\n\t\t};\n\n\t\tconst hideLoading = (): void => {\n\t\t\tstate.loading = false;\n\t\t\tuseOverlay.hide();\n\t\t};\n\n\t\tconst handleLoading = (loadingFunction: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(loadingFunction)\n\t\t\t\t.then()\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaButton\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleClick = (event: MouseEvent): void => {\n\t\t\tif (props.disabledLoading) {\n\t\t\t\t// 回调点击事件\n\t\t\t\temit(\"click\", event);\n\t\t\t} else {\n\t\t\t\tshowLoading();\n\t\t\t\t// 回调点击事件\n\t\t\t\temit(\"click\", event, hideLoading);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * 监听外部 loading 的值\n\t\t */\n\t\twatch(\n\t\t\t() => props.loading,\n\t\t\t(newValue) => {\n\t\t\t\tif (props.disabledLoading) return;\n\t\t\t\tif (newValue) {\n\t\t\t\t\tshowLoading();\n\t\t\t\t} else {\n\t\t\t\t\thideLoading();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\tconst elButtonProps = useProps(props, buttonProps, [\"loading\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElButton\n\t\t\t\t{...elButtonProps.value}\n\t\t\t\tref={buttonRef}\n\t\t\t\tclass=\"fa-button\"\n\t\t\t\tloading={state.loading}\n\t\t\t\tonClick={withModifiers((event: Event) => handleClick(event as MouseEvent), [\"prevent\"])}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\tdefault: () => slots.default && slots.default(),\n\t\t\t\t\t...(slots.loading && { loading: (): VNode[] => slots.loading() }),\n\t\t\t\t\t...(slots.icon && { icon: (): VNode[] => slots.icon() }),\n\t\t\t\t}}\n\t\t\t</ElButton>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 按钮 html 元素 */\n\t\t\tref: computed(() => buttonRef.value?.ref),\n\t\t\t/** @description 按钮尺寸 */\n\t\t\tsize: computed(() => buttonRef.value?.size),\n\t\t\t/** @description 按钮类型 */\n\t\t\ttype: computed(() => buttonRef.value?.type),\n\t\t\t/** @description 按钮已禁用 */\n\t\t\tdisabled: computed(() => buttonRef.value?.disabled),\n\t\t\t/** @description 是否在两个字符之间插入空格 */\n\t\t\tshouldAddSpace: computed(() => buttonRef.value?.shouldAddSpace),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 按钮加载 */\n\t\t\tdoLoading: handleLoading,\n\t\t});\n\t},\n});\n"],"names":["faButtonProps","buttonProps","loadingIcon","type","definePropType","String","Object","Function","default","Eleme","disabledLoading","Boolean","faButtonEmits","buttonEmits","click","event","done","MouseEvent","isFunction","Button","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","state","reactive","loading","buttonRef","ref","showLoading","useOverlay","show","hideLoading","hide","watch","newValue","immediate","elButtonProps","useProps","useRender","_createVNode","ElButton","_mergeProps","value","class","onClick","withModifiers","handleClick","icon","useExpose","computed","size","disabled","shouldAddSpace","doLoading","loadingFunction","execFunction","then","catch","error","consoleError","finally"],"mappings":"qiBASO,MAAMA,EAAgB,IACzBC,EAKHC,YAAa,CACZC,KAAMC,EAAmC,CAACC,OAAQC,OAAQC,WAC1DC,QAASA,IAA0BC,GAGpCC,gBAAiBC,SAGLC,EAAgB,IACzBC,EAKHC,MAAOA,CAACC,EAAmBC,EAAmBA,SAAsBD,aAAiBE,YAAcC,EAAWF,IAY/GG,mBAA+B,CAC9BC,KAAM,WACNC,MAAOrB,EACPsB,MAAOV,EACPW,MAAOC,IACPC,KAAAA,CAAMJ,GAAOK,MAAEA,EAAAA,MAAOH,EAAAA,KAAOI,EAAAA,OAAMC,IAClC,MAAMC,EAAQC,EAAS,CACtBC,SAAS,IAGJC,EAAYC,IAEZC,EAAcA,KACnBL,EAAME,SAAU,EAEhBI,EAAWC,KAAK,IAGXC,EAAcA,KACnBR,EAAME,SAAU,EAChBI,EAAWG,QA6BZC,EACC,IAAMlB,EAAMU,QACXS,IACInB,EAAMX,kBACN8B,EACHN,IAEAG,MAGF,CACCI,WAAW,IAIb,MAAMC,EAAgBC,EAAStB,EAAOpB,EAAa,CAAC,YAkBpD,OAhBA2C,EAAU,IAAAC,EAAAC,EAAAC,EAEJL,EAAcM,MAAK,CAAAf,IAClBD,EAASiB,MAAA,YAAAlB,QAELF,EAAME,QAAOmB,QACbC,EAAepC,GArCLA,CAAAA,IAChBM,EAAMX,gBAETiB,EAAK,QAASZ,IAEdmB,IAEAP,EAAK,QAASZ,EAAOsB,KA8BoBe,CAAYrC,GAAsB,CAAC,cAAW,CAGtFP,QAASA,IAAMe,EAAMf,SAAWe,EAAMf,aAClCe,EAAMQ,SAAW,CAAEA,QAASA,IAAeR,EAAMQ,cACjDR,EAAM8B,MAAQ,CAAEA,KAAMA,IAAe9B,EAAM8B,WAK3CC,EAAU1B,EAAQ,CAExBK,IAAKsB,EAAS,IAAMvB,EAAUgB,OAAOf,KAErCuB,KAAMD,EAAS,IAAMvB,EAAUgB,OAAOQ,MAEtCrD,KAAMoD,EAAS,IAAMvB,EAAUgB,OAAO7C,MAEtCsD,SAAUF,EAAS,IAAMvB,EAAUgB,OAAOS,UAE1CC,eAAgBH,EAAS,IAAMvB,EAAUgB,OAAOU,gBAEhD3B,QAASwB,EAAS,IAAM1B,EAAME,SAE9B4B,UAzEsBC,IACtB/B,EAAME,SAAU,EAChB8B,EAAaD,GACXE,OACAC,MAAOC,IACPC,EAAa,WAAYD,KAEzBE,QAAQ,KACRrC,EAAME,SAAU,MAmEpB"}
1
+ {"version":3,"file":"button.mjs","sources":["../../../../../packages/components/button/src/button.tsx"],"sourcesContent":["import { computed, defineComponent, reactive, ref, watch, withModifiers } from \"vue\";\nimport { ElButton, buttonEmits, buttonProps } from \"element-plus\";\nimport { Eleme } from \"@element-plus/icons-vue\";\nimport { useOverlay } from \"@fast-element-plus/hooks\";\nimport { consoleError, definePropType, execFunction, makeSlots, useExpose, useProps, useRender } from \"@fast-china/utils\";\nimport { isFunction } from \"lodash-unified\";\nimport type { ButtonInstance } from \"element-plus\";\nimport type { Component, VNode } from \"vue\";\n\nexport const faButtonProps = {\n\t...buttonProps,\n\t/**\n\t * @description customize loading icon component\n\t * @default Eleme\n\t */\n\tloadingIcon: {\n\t\ttype: definePropType<string | Component>([String, Object, Function]),\n\t\tdefault: (): string | Component => Eleme,\n\t},\n\t/** @description 禁用加载 */\n\tdisabledLoading: Boolean,\n};\n\nexport const faButtonEmits = {\n\t...buttonEmits,\n\t/**\n\t * @description 点击事件\n\t * @param done 需要手动隐藏Loading\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tclick: (event: MouseEvent, done: () => void = () => {}): boolean => event instanceof MouseEvent && isFunction(done),\n};\n\ntype FaButtonSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: never;\n\t/** @description 自定义加载中组件 */\n\tloading: never;\n\t/** @description 自定义图标组件 */\n\ticon: never;\n};\n\nexport default defineComponent({\n\tname: \"FaButton\",\n\tprops: faButtonProps,\n\temits: faButtonEmits,\n\tslots: makeSlots<FaButtonSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst state = reactive({\n\t\t\tloading: false,\n\t\t});\n\n\t\tconst buttonRef = ref<ButtonInstance>();\n\n\t\tconst showLoading = (): void => {\n\t\t\tstate.loading = true;\n\t\t\t// 这里默认透明\n\t\t\tuseOverlay.show(0);\n\t\t};\n\n\t\tconst hideLoading = (): void => {\n\t\t\tstate.loading = false;\n\t\t\tuseOverlay.hide();\n\t\t};\n\n\t\tconst handleLoading = (loadingFunction: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(loadingFunction)\n\t\t\t\t.then()\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaButton\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleClick = (event: MouseEvent): void => {\n\t\t\tif (props.disabledLoading) {\n\t\t\t\t// 回调点击事件\n\t\t\t\temit(\"click\", event);\n\t\t\t} else {\n\t\t\t\tshowLoading();\n\t\t\t\t// 回调点击事件\n\t\t\t\temit(\"click\", event, hideLoading);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * 监听外部 loading 的值\n\t\t */\n\t\twatch(\n\t\t\t() => props.loading,\n\t\t\t(newValue) => {\n\t\t\t\tif (props.disabledLoading) return;\n\t\t\t\tif (newValue) {\n\t\t\t\t\tshowLoading();\n\t\t\t\t} else {\n\t\t\t\t\thideLoading();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\tconst elButtonProps = useProps(props, buttonProps, [\"loading\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElButton\n\t\t\t\t{...elButtonProps.value}\n\t\t\t\tref={buttonRef}\n\t\t\t\tclass=\"fa-button\"\n\t\t\t\tloading={state.loading}\n\t\t\t\tonClick={withModifiers((event: Event) => handleClick(event as MouseEvent), [\"prevent\"])}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\tdefault: () => slots.default && slots.default(),\n\t\t\t\t\t...(slots.loading && { loading: (): VNode[] => slots.loading() }),\n\t\t\t\t\t...(slots.icon && { icon: (): VNode[] => slots.icon() }),\n\t\t\t\t}}\n\t\t\t</ElButton>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 按钮 html 元素 */\n\t\t\tref: computed(() => buttonRef.value?.ref),\n\t\t\t/** @description 按钮尺寸 */\n\t\t\tsize: computed(() => buttonRef.value?.size),\n\t\t\t/** @description 按钮类型 */\n\t\t\ttype: computed(() => buttonRef.value?.type),\n\t\t\t/** @description 按钮已禁用 */\n\t\t\tdisabled: computed(() => buttonRef.value?.disabled),\n\t\t\t/** @description 是否在两个字符之间插入空格 */\n\t\t\tshouldAddSpace: computed(() => buttonRef.value?.shouldAddSpace),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 按钮加载 */\n\t\t\tdoLoading: handleLoading,\n\t\t});\n\t},\n});\n"],"names":["faButtonProps","buttonProps","loadingIcon","type","definePropType","String","Object","Function","default","Eleme","disabledLoading","Boolean","faButtonEmits","buttonEmits","click","event","done","MouseEvent","isFunction","Button","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","state","reactive","loading","buttonRef","ref","showLoading","useOverlay","show","hideLoading","hide","watch","newValue","immediate","elButtonProps","useProps","useRender","_createVNode","ElButton","_mergeProps","value","class","onClick","withModifiers","handleClick","icon","useExpose","computed","size","disabled","shouldAddSpace","doLoading","loadingFunction","execFunction","then","catch","error","consoleError","finally"],"mappings":"qiBASO,MAAMA,EAAgB,IACzBC,EAKHC,YAAa,CACZC,KAAMC,EAAmC,CAACC,OAAQC,OAAQC,WAC1DC,QAASA,IAA0BC,GAGpCC,gBAAiBC,SAGLC,EAAgB,IACzBC,EAMHC,MAAOA,CAACC,EAAmBC,EAAmBA,SAAsBD,aAAiBE,YAAcC,EAAWF,IAY/GG,mBAA+B,CAC9BC,KAAM,WACNC,MAAOrB,EACPsB,MAAOV,EACPW,MAAOC,IACPC,KAAAA,CAAMJ,GAAOK,MAAEA,EAAAA,MAAOH,EAAAA,KAAOI,EAAAA,OAAMC,IAClC,MAAMC,EAAQC,EAAS,CACtBC,SAAS,IAGJC,EAAYC,IAEZC,EAAcA,KACnBL,EAAME,SAAU,EAEhBI,EAAWC,KAAK,IAGXC,EAAcA,KACnBR,EAAME,SAAU,EAChBI,EAAWG,QA6BZC,EACC,IAAMlB,EAAMU,QACXS,IACInB,EAAMX,kBACN8B,EACHN,IAEAG,MAGF,CACCI,WAAW,IAIb,MAAMC,EAAgBC,EAAStB,EAAOpB,EAAa,CAAC,YAkBpD,OAhBA2C,EAAU,IAAAC,EAAAC,EAAAC,EAEJL,EAAcM,MAAK,CAAAf,IAClBD,EAASiB,MAAA,YAAAlB,QAELF,EAAME,QAAOmB,QACbC,EAAepC,GArCLA,CAAAA,IAChBM,EAAMX,gBAETiB,EAAK,QAASZ,IAEdmB,IAEAP,EAAK,QAASZ,EAAOsB,KA8BoBe,CAAYrC,GAAsB,CAAC,cAAW,CAGtFP,QAASA,IAAMe,EAAMf,SAAWe,EAAMf,aAClCe,EAAMQ,SAAW,CAAEA,QAASA,IAAeR,EAAMQ,cACjDR,EAAM8B,MAAQ,CAAEA,KAAMA,IAAe9B,EAAM8B,WAK3CC,EAAU1B,EAAQ,CAExBK,IAAKsB,EAAS,IAAMvB,EAAUgB,OAAOf,KAErCuB,KAAMD,EAAS,IAAMvB,EAAUgB,OAAOQ,MAEtCrD,KAAMoD,EAAS,IAAMvB,EAAUgB,OAAO7C,MAEtCsD,SAAUF,EAAS,IAAMvB,EAAUgB,OAAOS,UAE1CC,eAAgBH,EAAS,IAAMvB,EAAUgB,OAAOU,gBAEhD3B,QAASwB,EAAS,IAAM1B,EAAME,SAE9B4B,UAzEsBC,IACtB/B,EAAME,SAAU,EAChB8B,EAAaD,GACXE,OACAC,MAAOC,IACPC,EAAa,WAAYD,KAEzBE,QAAQ,KACRrC,EAAME,SAAU,MAmEpB"}
@@ -1,2 +1,2 @@
1
- import{isVNode as e,defineComponent as l,reactive as a,computed as t,ref as r,inject as o,createVNode as u,Fragment as n,createTextVNode as i,mergeProps as p}from"vue";import{formContextKey as s,formItemContextKey as d,ElMessage as c,inputProps as m,ElPopover as v,ElButton as _,ElInput as f}from"element-plus";import{Back as b}from"@element-plus/icons-vue";import"../../../constants/index.mjs";import{useProps as h,useRender as g}from"@fast-china/utils";import{isString as y,isNull as C}from"lodash-unified";import{CarNumberArea as k,CarNumberDigit as w,CarNumberLetter as j}from"./common.mjs";import{useVModel as V}from"@vueuse/core";import{RegExps as x}from"../../../constants/regex.mjs";function B(l){return"function"==typeof l||"[object Object]"===Object.prototype.toString.call(l)&&!e(l)}const F=/* @__PURE__ */l({name:"FaCarNumber",props:{...m,modelValue:{type:String,default:void 0},placeholder:{type:String,default:"请选择"}},emits:{"update:modelValue":e=>y(e)||C(e),change:e=>y(e)||C(e)},setup(e,{attrs:l,slots:y,emit:C,expose:F}){const N=V(e,"modelValue",C,{passive:!0}),A=a({switchLetter:t(()=>N.value?.length>=1),disabledButton:t(()=>N.value?.length>=8)}),L=r(),S=o(s,void 0),$=o(d,void 0),O=e=>2===e.length?`${e} ● `:e.length>2?`${e.slice(0,2)} ● ${e.slice(2)}`:e,E=e=>{N.value??="",N.value+=e},U=()=>{0!==N.value?.length&&(N.value=N.value.substring(0,N.value.length-1))},q=()=>{let e=!1;7===N.value.length?e=x.CarNumber.test(N.value):8===N.value.length&&(e=x.NewEnergyCarNumber.test(N.value)),e?(C("change",N.value),$?.prop&&S?.validateField([$.prop])):$?.prop&&S?(C("change",N.value),S.validateField([$.prop])):c.error("车牌号格式不正确"),L.value?.hide()},z=()=>{N.value=null,C("change",null),$?.prop&&S?.validateField([$.prop])},D=h(e,m,["modelValue","readonly","formatter"]);g(()=>u(v,{ref:L,width:"auto",popperClass:"fa-car-number__popover",trigger:"click",showArrow:!1,showAfter:0,hideAfter:0},{reference:()=>u(f,p(D.value,{class:"fa-car-number__input",modelValue:N.value,"onUpdate:modelValue":e=>N.value=e,readonly:!0,formatter:O}),null),default:()=>u(n,null,[u("div",{class:["fa-car-number__popover__area",A.switchLetter?"fa-car-number__popover__hide":""]},[k.map(e=>u(_,{disabled:A.disabledButton,onClick:()=>E(e)},B(e)?e:{default:()=>[e]}))]),u("div",{class:["fa-car-number__popover__digit-letter",A.switchLetter?"":"fa-car-number__popover__hide"]},[w.map(e=>u(_,{disabled:A.disabledButton,onClick:()=>E(e)},B(e)?e:{default:()=>[e]})),j.map(e=>u(_,{disabled:A.disabledButton,onClick:()=>E(e)},B(e)?e:{default:()=>[e]}))]),u("div",{class:"fa-car-number__popover__btn"},[u(_,{class:"fa-car-number__popover__btn__clear",disabled:null===N.value||0===N.value.length,onClick:z},{default:()=>[i("清除")]}),u(_,{class:"fa-car-number__popover__btn__back",type:"danger",icon:b,disabled:null===N.value||0===N.value.length,onClick:U},null),u(_,{class:"fa-car-number__popover__btn__confirm",type:"primary",disabled:null===N.value||N.value.length<7,onClick:q},{default:()=>[i("确认")]})])])}))}});export{F as default};
1
+ import{isVNode as e,defineComponent as l,reactive as a,computed as t,ref as r,inject as o,createVNode as u,Fragment as n,createTextVNode as i,mergeProps as p}from"vue";import{formContextKey as s,formItemContextKey as d,ElMessage as c,inputProps as m,ElPopover as v,ElButton as _,ElInput as f}from"element-plus";import{Back as b}from"@element-plus/icons-vue";import"../../../constants/index.mjs";import{useProps as h,useRender as g}from"@fast-china/utils";import{useVModel as y}from"@vueuse/core";import{isString as C,isNull as k}from"lodash-unified";import{CarNumberArea as w,CarNumberDigit as j,CarNumberLetter as V}from"./common.mjs";import{RegExps as x}from"../../../constants/regex.mjs";function B(l){return"function"==typeof l||"[object Object]"===Object.prototype.toString.call(l)&&!e(l)}const F=/* @__PURE__ */l({name:"FaCarNumber",props:{...m,modelValue:{type:String,default:void 0},placeholder:{type:String,default:"请选择"}},emits:{"update:modelValue":e=>C(e)||k(e),change:e=>C(e)||k(e)},setup(e,{attrs:l,slots:C,emit:k,expose:F}){const N=y(e,"modelValue",k,{passive:!0}),A=a({switchLetter:t(()=>N.value?.length>=1),disabledButton:t(()=>N.value?.length>=8)}),L=r(),S=o(s,void 0),$=o(d,void 0),O=e=>2===e.length?`${e} ● `:e.length>2?`${e.slice(0,2)} ● ${e.slice(2)}`:e,E=e=>{N.value??="",N.value+=e},U=()=>{0!==N.value?.length&&(N.value=N.value.substring(0,N.value.length-1))},q=()=>{let e=!1;7===N.value.length?e=x.CarNumber.test(N.value):8===N.value.length&&(e=x.NewEnergyCarNumber.test(N.value)),e?(k("change",N.value),$?.prop&&S?.validateField([$.prop])):$?.prop&&S?(k("change",N.value),S.validateField([$.prop])):c.error("车牌号格式不正确"),L.value?.hide()},z=()=>{N.value=null,k("change",null),$?.prop&&S?.validateField([$.prop])},D=h(e,m,["modelValue","readonly","formatter"]);g(()=>u(v,{ref:L,width:"auto",popperClass:"fa-car-number__popover",trigger:"click",showArrow:!1,showAfter:0,hideAfter:0},{reference:()=>u(f,p(D.value,{class:"fa-car-number__input",modelValue:N.value,"onUpdate:modelValue":e=>N.value=e,readonly:!0,formatter:O}),null),default:()=>u(n,null,[u("div",{class:["fa-car-number__popover__area",A.switchLetter?"fa-car-number__popover__hide":""]},[w.map(e=>u(_,{disabled:A.disabledButton,onClick:()=>E(e)},B(e)?e:{default:()=>[e]}))]),u("div",{class:["fa-car-number__popover__digit-letter",A.switchLetter?"":"fa-car-number__popover__hide"]},[j.map(e=>u(_,{disabled:A.disabledButton,onClick:()=>E(e)},B(e)?e:{default:()=>[e]})),V.map(e=>u(_,{disabled:A.disabledButton,onClick:()=>E(e)},B(e)?e:{default:()=>[e]}))]),u("div",{class:"fa-car-number__popover__btn"},[u(_,{class:"fa-car-number__popover__btn__clear",disabled:null===N.value||0===N.value.length,onClick:z},{default:()=>[i("清除")]}),u(_,{class:"fa-car-number__popover__btn__back",type:"danger",icon:b,disabled:null===N.value||0===N.value.length,onClick:U},null),u(_,{class:"fa-car-number__popover__btn__confirm",type:"primary",disabled:null===N.value||N.value.length<7,onClick:q},{default:()=>[i("确认")]})])])}))}});export{F as default};
2
2
  //# sourceMappingURL=carNumber.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"carNumber.mjs","sources":["../../../../../packages/components/carNumber/src/carNumber.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, inject, reactive, ref } from \"vue\";\nimport { ElButton, ElInput, ElMessage, ElPopover, formContextKey, formItemContextKey, inputProps } from \"element-plus\";\nimport { Back } from \"@element-plus/icons-vue\";\nimport { RegExps } from \"@fast-element-plus/constants\";\nimport { useProps, useRender } from \"@fast-china/utils\";\nimport { isNull, isString } from \"lodash-unified\";\nimport { CarNumberArea, CarNumberDigit, CarNumberLetter } from \"./common\";\nimport type { PopoverInstance } from \"element-plus\";\nimport { useVModel } from \"@vueuse/core\";\n\nexport default defineComponent({\n\tname: \"FaCarNumber\",\n\tprops: {\n\t\t...inputProps,\n\t\t/** @description v-model绑定值 */\n\t\tmodelValue: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/** @description placeholder */\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: \"请选择\",\n\t\t},\n\t},\n\temits: {\n\t\t/** @description v-model 回调 */\n\t\t\"update:modelValue\": (value: string) => isString(value) || isNull(value),\n\t\t/** @description 改变 */\n\t\tchange: (value: string) => isString(value) || isNull(value),\n\t},\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst modelValue = useVModel(props, \"modelValue\", emit, { passive: true });\n\n\t\tconst state = reactive({\n\t\t\tswitchLetter: computed(() => {\n\t\t\t\tif (modelValue.value?.length >= 1) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}),\n\t\t\tdisabledButton: computed(() => {\n\t\t\t\tif (modelValue.value?.length >= 8) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}),\n\t\t});\n\n\t\tconst popoverRef = ref<PopoverInstance>();\n\t\t// 获取 el-form 组件上下文\n\t\tconst formContext = inject(formContextKey, undefined);\n\t\t// 获取 el-form-item 组件上下文\n\t\tconst formItemContext = inject(formItemContextKey, undefined);\n\n\t\tconst handleInputFormatter = (value: string): string => {\n\t\t\tif (value.length === 2) {\n\t\t\t\treturn `${value} ● `;\n\t\t\t} else if (value.length > 2) {\n\t\t\t\treturn `${value.slice(0, 2)} ● ${value.slice(2)}`;\n\t\t\t} else {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t};\n\n\t\tconst handleSelectCarNumber = (value: string): void => {\n\t\t\tmodelValue.value ??= \"\";\n\t\t\tmodelValue.value += value;\n\t\t};\n\n\t\tconst handleBackClick = (): void => {\n\t\t\tif (modelValue.value?.length === 0) return;\n\t\t\tmodelValue.value = modelValue.value.substring(0, modelValue.value.length - 1);\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tlet success = false;\n\t\t\tif (modelValue.value.length === 7) {\n\t\t\t\tsuccess = RegExps.CarNumber.test(modelValue.value);\n\t\t\t} else if (modelValue.value.length === 8) {\n\t\t\t\tsuccess = RegExps.NewEnergyCarNumber.test(modelValue.value);\n\t\t\t}\n\t\t\tif (success) {\n\t\t\t\temit(\"change\", modelValue.value);\n\t\t\t\t// 调用 el-form 内部的校验方法(可自动校验)\n\t\t\t\tformItemContext?.prop && formContext?.validateField([formItemContext.prop]);\n\t\t\t} else {\n\t\t\t\tif (formItemContext?.prop && formContext) {\n\t\t\t\t\temit(\"change\", modelValue.value);\n\t\t\t\t\t// 调用 el-form 内部的校验方法(可自动校验)\n\t\t\t\t\tformContext.validateField([formItemContext.prop]);\n\t\t\t\t} else {\n\t\t\t\t\tElMessage.error(\"车牌号格式不正确\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tpopoverRef.value?.hide();\n\t\t};\n\n\t\tconst handleClearClick = (): void => {\n\t\t\tmodelValue.value = null;\n\t\t\temit(\"change\", null);\n\t\t\t// 调用 el-form 内部的校验方法(可自动校验)\n\t\t\tformItemContext?.prop && formContext?.validateField([formItemContext.prop]);\n\t\t};\n\n\t\tconst elInputProps = useProps(props, inputProps, [\"modelValue\", \"readonly\", \"formatter\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElPopover\n\t\t\t\tref={popoverRef}\n\t\t\t\twidth=\"auto\"\n\t\t\t\tpopperClass=\"fa-car-number__popover\"\n\t\t\t\ttrigger=\"click\"\n\t\t\t\tshowArrow={false}\n\t\t\t\tshowAfter={0}\n\t\t\t\thideAfter={0}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\treference: () => (\n\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t{...elInputProps.value}\n\t\t\t\t\t\t\tclass=\"fa-car-number__input\"\n\t\t\t\t\t\t\tvModel={modelValue.value}\n\t\t\t\t\t\t\treadonly\n\t\t\t\t\t\t\tformatter={handleInputFormatter}\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<div class={[\"fa-car-number__popover__area\", state.switchLetter ? \"fa-car-number__popover__hide\" : \"\"]}>\n\t\t\t\t\t\t\t\t{CarNumberArea.map((area) => (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.disabledButton} onClick={() => handleSelectCarNumber(area)}>\n\t\t\t\t\t\t\t\t\t\t{area}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class={[\"fa-car-number__popover__digit-letter\", state.switchLetter ? \"\" : \"fa-car-number__popover__hide\"]}>\n\t\t\t\t\t\t\t\t{CarNumberDigit.map((digit) => (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.disabledButton} onClick={() => handleSelectCarNumber(digit)}>\n\t\t\t\t\t\t\t\t\t\t{digit}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t{CarNumberLetter.map((letter) => (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.disabledButton} onClick={() => handleSelectCarNumber(letter)}>\n\t\t\t\t\t\t\t\t\t\t{letter}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"fa-car-number__popover__btn\">\n\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\tclass=\"fa-car-number__popover__btn__clear\"\n\t\t\t\t\t\t\t\t\tdisabled={modelValue.value === null || modelValue.value.length === 0}\n\t\t\t\t\t\t\t\t\tonClick={handleClearClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t清除\n\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\tclass=\"fa-car-number__popover__btn__back\"\n\t\t\t\t\t\t\t\t\ttype=\"danger\"\n\t\t\t\t\t\t\t\t\ticon={Back}\n\t\t\t\t\t\t\t\t\tdisabled={modelValue.value === null || modelValue.value.length === 0}\n\t\t\t\t\t\t\t\t\tonClick={handleBackClick}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\tclass=\"fa-car-number__popover__btn__confirm\"\n\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\tdisabled={modelValue.value === null || modelValue.value.length < 7}\n\t\t\t\t\t\t\t\t\tonClick={handleConfirmClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t确认\n\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t}}\n\t\t\t</ElPopover>\n\t\t));\n\t},\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","CarNumber","name","props","inputProps","modelValue","type","String","default","undefined","placeholder","emits","value","isString","isNull","change","setup","attrs","slots","emit","expose","useVModel","passive","state","reactive","switchLetter","computed","length","disabledButton","popoverRef","ref","formContext","inject","formContextKey","formItemContext","formItemContextKey","handleInputFormatter","slice","handleSelectCarNumber","handleBackClick","substring","handleConfirmClick","success","RegExps","test","NewEnergyCarNumber","prop","validateField","ElMessage","error","hide","handleClearClick","elInputProps","useProps","useRender","_createVNode","ElPopover","width","popperClass","trigger","showArrow","showAfter","hideAfter","reference","ElInput","_mergeProps","class","$event","readonly","formatter","_Fragment","CarNumberArea","map","area","ElButton","disabled","onClick","CarNumberDigit","digit","CarNumberLetter","letter","_createTextVNode","icon","Back"],"mappings":"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"}
1
+ {"version":3,"file":"carNumber.mjs","sources":["../../../../../packages/components/carNumber/src/carNumber.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, inject, reactive, ref } from \"vue\";\nimport { ElButton, ElInput, ElMessage, ElPopover, formContextKey, formItemContextKey, inputProps } from \"element-plus\";\nimport { Back } from \"@element-plus/icons-vue\";\nimport { RegExps } from \"@fast-element-plus/constants\";\nimport { useProps, useRender } from \"@fast-china/utils\";\nimport { useVModel } from \"@vueuse/core\";\nimport { isNull, isString } from \"lodash-unified\";\nimport { CarNumberArea, CarNumberDigit, CarNumberLetter } from \"./common\";\nimport type { PopoverInstance } from \"element-plus\";\n\nexport default defineComponent({\n\tname: \"FaCarNumber\",\n\tprops: {\n\t\t...inputProps,\n\t\t/** @description v-model绑定值 */\n\t\tmodelValue: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/** @description placeholder */\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: \"请选择\",\n\t\t},\n\t},\n\temits: {\n\t\t/** @description v-model 回调 */\n\t\t\"update:modelValue\": (value: string) => isString(value) || isNull(value),\n\t\t/** @description 改变 */\n\t\tchange: (value: string) => isString(value) || isNull(value),\n\t},\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst modelValue = useVModel(props, \"modelValue\", emit, { passive: true });\n\n\t\tconst state = reactive({\n\t\t\tswitchLetter: computed(() => {\n\t\t\t\tif (modelValue.value?.length >= 1) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}),\n\t\t\tdisabledButton: computed(() => {\n\t\t\t\tif (modelValue.value?.length >= 8) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}),\n\t\t});\n\n\t\tconst popoverRef = ref<PopoverInstance>();\n\t\t// 获取 el-form 组件上下文\n\t\tconst formContext = inject(formContextKey, undefined);\n\t\t// 获取 el-form-item 组件上下文\n\t\tconst formItemContext = inject(formItemContextKey, undefined);\n\n\t\tconst handleInputFormatter = (value: string): string => {\n\t\t\tif (value.length === 2) {\n\t\t\t\treturn `${value} ● `;\n\t\t\t} else if (value.length > 2) {\n\t\t\t\treturn `${value.slice(0, 2)} ● ${value.slice(2)}`;\n\t\t\t} else {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t};\n\n\t\tconst handleSelectCarNumber = (value: string): void => {\n\t\t\tmodelValue.value ??= \"\";\n\t\t\tmodelValue.value += value;\n\t\t};\n\n\t\tconst handleBackClick = (): void => {\n\t\t\tif (modelValue.value?.length === 0) return;\n\t\t\tmodelValue.value = modelValue.value.substring(0, modelValue.value.length - 1);\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tlet success = false;\n\t\t\tif (modelValue.value.length === 7) {\n\t\t\t\tsuccess = RegExps.CarNumber.test(modelValue.value);\n\t\t\t} else if (modelValue.value.length === 8) {\n\t\t\t\tsuccess = RegExps.NewEnergyCarNumber.test(modelValue.value);\n\t\t\t}\n\t\t\tif (success) {\n\t\t\t\temit(\"change\", modelValue.value);\n\t\t\t\t// 调用 el-form 内部的校验方法(可自动校验)\n\t\t\t\tformItemContext?.prop && formContext?.validateField([formItemContext.prop]);\n\t\t\t} else {\n\t\t\t\tif (formItemContext?.prop && formContext) {\n\t\t\t\t\temit(\"change\", modelValue.value);\n\t\t\t\t\t// 调用 el-form 内部的校验方法(可自动校验)\n\t\t\t\t\tformContext.validateField([formItemContext.prop]);\n\t\t\t\t} else {\n\t\t\t\t\tElMessage.error(\"车牌号格式不正确\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tpopoverRef.value?.hide();\n\t\t};\n\n\t\tconst handleClearClick = (): void => {\n\t\t\tmodelValue.value = null;\n\t\t\temit(\"change\", null);\n\t\t\t// 调用 el-form 内部的校验方法(可自动校验)\n\t\t\tformItemContext?.prop && formContext?.validateField([formItemContext.prop]);\n\t\t};\n\n\t\tconst elInputProps = useProps(props, inputProps, [\"modelValue\", \"readonly\", \"formatter\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElPopover\n\t\t\t\tref={popoverRef}\n\t\t\t\twidth=\"auto\"\n\t\t\t\tpopperClass=\"fa-car-number__popover\"\n\t\t\t\ttrigger=\"click\"\n\t\t\t\tshowArrow={false}\n\t\t\t\tshowAfter={0}\n\t\t\t\thideAfter={0}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\treference: () => (\n\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t{...elInputProps.value}\n\t\t\t\t\t\t\tclass=\"fa-car-number__input\"\n\t\t\t\t\t\t\tvModel={modelValue.value}\n\t\t\t\t\t\t\treadonly\n\t\t\t\t\t\t\tformatter={handleInputFormatter}\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<div class={[\"fa-car-number__popover__area\", state.switchLetter ? \"fa-car-number__popover__hide\" : \"\"]}>\n\t\t\t\t\t\t\t\t{CarNumberArea.map((area) => (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.disabledButton} onClick={() => handleSelectCarNumber(area)}>\n\t\t\t\t\t\t\t\t\t\t{area}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class={[\"fa-car-number__popover__digit-letter\", state.switchLetter ? \"\" : \"fa-car-number__popover__hide\"]}>\n\t\t\t\t\t\t\t\t{CarNumberDigit.map((digit) => (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.disabledButton} onClick={() => handleSelectCarNumber(digit)}>\n\t\t\t\t\t\t\t\t\t\t{digit}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t{CarNumberLetter.map((letter) => (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.disabledButton} onClick={() => handleSelectCarNumber(letter)}>\n\t\t\t\t\t\t\t\t\t\t{letter}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"fa-car-number__popover__btn\">\n\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\tclass=\"fa-car-number__popover__btn__clear\"\n\t\t\t\t\t\t\t\t\tdisabled={modelValue.value === null || modelValue.value.length === 0}\n\t\t\t\t\t\t\t\t\tonClick={handleClearClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t清除\n\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\tclass=\"fa-car-number__popover__btn__back\"\n\t\t\t\t\t\t\t\t\ttype=\"danger\"\n\t\t\t\t\t\t\t\t\ticon={Back}\n\t\t\t\t\t\t\t\t\tdisabled={modelValue.value === null || modelValue.value.length === 0}\n\t\t\t\t\t\t\t\t\tonClick={handleBackClick}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\tclass=\"fa-car-number__popover__btn__confirm\"\n\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\tdisabled={modelValue.value === null || modelValue.value.length < 7}\n\t\t\t\t\t\t\t\t\tonClick={handleConfirmClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t确认\n\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t}}\n\t\t\t</ElPopover>\n\t\t));\n\t},\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","CarNumber","name","props","inputProps","modelValue","type","String","default","undefined","placeholder","emits","value","isString","isNull","change","setup","attrs","slots","emit","expose","useVModel","passive","state","reactive","switchLetter","computed","length","disabledButton","popoverRef","ref","formContext","inject","formContextKey","formItemContext","formItemContextKey","handleInputFormatter","slice","handleSelectCarNumber","handleBackClick","substring","handleConfirmClick","success","RegExps","test","NewEnergyCarNumber","prop","validateField","ElMessage","error","hide","handleClearClick","elInputProps","useProps","useRender","_createVNode","ElPopover","width","popperClass","trigger","showArrow","showAfter","hideAfter","reference","ElInput","_mergeProps","class","$event","readonly","formatter","_Fragment","CarNumberArea","map","area","ElButton","disabled","onClick","CarNumberDigit","digit","CarNumberLetter","letter","_createTextVNode","icon","Back"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as e,reactive as r,computed as a,createVNode as l,mergeProps as o}from"vue";import{imageProps as s,ElImage as t,ElIcon as i}from"element-plus";import{Picture as c}from"@element-plus/icons-vue";import{useProps as n,useRender as p,makeSlots as m}from"@fast-china/utils";const u={...s,hideOnClickModal:{type:Boolean,default:!0},previewTeleported:{type:Boolean,default:!0},lazy:{type:Boolean,default:!0},base64:Boolean,original:Boolean,normal:Boolean,small:Boolean,thumb:Boolean,preview:{type:Boolean,default:!0}},d=/* @__PURE__ */e({name:"FaImage",props:u,slots:m(),setup(e,{attrs:m,slots:u,emit:d,expose:f}){const v=r({src:a(()=>{if(e.src)return e.base64?`data:image/png;base64,${e.src}`:e.original?e.src:e.normal?`${e.src}@!normal`:e.small?`${e.src}@!small`:(e.thumb,`${e.src}@!thumb`)}),previewList:a(()=>e.preview?[e.base64?`data:image/png;base64,${e.src}`:e.src]:[])}),g=n(e,s,["src","previewSrcList"]);p(()=>l(t,o(g.value,{class:"fa-image",src:v.src,previewSrcList:v.previewList}),{error:()=>u.error?u.error():l("div",{class:"fa-image__error-image"},[l(i,{class:"icon"},{default:()=>[l(c,null,null)]})]),...u.placeholder&&{placeholder:()=>u.placeholder()},...u.viewer&&{viewer:()=>u.viewer({src:v.src})}}))}});export{d as default,u as faImageProps};
1
+ import{defineComponent as e,reactive as r,computed as a,createVNode as o,mergeProps as l}from"vue";import{imageProps as s,ElImage as t,ElIcon as i}from"element-plus";import{Picture as n}from"@element-plus/icons-vue";import{useProps as c,useRender as p,makeSlots as m}from"@fast-china/utils";const d={...s,hideOnClickModal:{type:Boolean,default:!0},previewTeleported:{type:Boolean,default:!0},lazy:{type:Boolean,default:!0},base64:Boolean,original:Boolean,normal:Boolean,small:Boolean,thumb:Boolean,preview:{type:Boolean,default:!0}},u=/* @__PURE__ */e({name:"FaImage",props:d,slots:m(),setup(e,{attrs:m,slots:d,emit:u,expose:f}){const v=r({loadError:!1,src:a(()=>{if(e.src)return e.base64?`data:image/png;base64,${e.src}`:e.original||v.loadError?e.src:e.normal?`${e.src}@!normal`:e.small?`${e.src}@!small`:(e.thumb,`${e.src}@!thumb`)}),previewList:a(()=>e.preview?[e.base64?`data:image/png;base64,${e.src}`:e.src]:[])}),g=c(e,s,["src","previewSrcList"]);p(()=>o(t,l(g.value,{class:"fa-image",src:v.src,previewSrcList:v.previewList,onError:()=>{v.loadError||(v.loadError=!0)}}),{error:()=>d.error?d.error():o("div",{class:"fa-image__error-image"},[o(i,{class:"icon"},{default:()=>[o(n,null,null)]})]),...d.placeholder&&{placeholder:()=>d.placeholder()},...d.viewer&&{viewer:()=>d.viewer({src:v.src})}}))}});export{u as default,d as faImageProps};
2
2
  //# sourceMappingURL=image.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"image.mjs","sources":["../../../../../packages/components/image/src/image.tsx"],"sourcesContent":["import { computed, defineComponent, reactive } from \"vue\";\nimport { ElIcon, ElImage, imageProps } from \"element-plus\";\nimport { Picture as ElIconPicture } from \"@element-plus/icons-vue\";\nimport { makeSlots, useProps, useRender } from \"@fast-china/utils\";\nimport type { VNode } from \"vue\";\n\nexport const faImageProps = {\n\t...imageProps,\n\t/** @description when enabling preview, use this flag to control whether clicking on backdrop can exit preview mode. */\n\thideOnClickModal: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether to append image-viewer to body. A nested parent element attribute transform should have this attribute set to `true`. */\n\tpreviewTeleported: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether to use lazy load. */\n\tlazy: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description Base64图片 */\n\tbase64: Boolean,\n\t/** @description 原图 */\n\toriginal: Boolean,\n\t/** @description 标准 */\n\tnormal: Boolean,\n\t/** @description 小图 */\n\tsmall: Boolean,\n\t/** @description 缩略图 */\n\tthumb: Boolean,\n\t/** @description 是否可以预览图片 */\n\tpreview: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n};\n\ntype FaImageSlots = {\n\t/** @description 当图像尚未加载时,自定义的占位符内容 */\n\tplaceholder: never;\n\t/** @description 自定义图像加载失败的内容 */\n\terror: never;\n\t/** @description 当图像预览时自定义内容 */\n\tviewer: { src: string };\n};\n\nexport default defineComponent({\n\tname: \"FaImage\",\n\tprops: faImageProps,\n\tslots: makeSlots<FaImageSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst state = reactive({\n\t\t\tsrc: computed(() => {\n\t\t\t\tif (!props.src) return undefined;\n\t\t\t\tif (props.base64) {\n\t\t\t\t\treturn `data:image/png;base64,${props.src}`;\n\t\t\t\t} else if (props.original) {\n\t\t\t\t\treturn props.src;\n\t\t\t\t} else if (props.normal) {\n\t\t\t\t\treturn `${props.src}@!normal`;\n\t\t\t\t} else if (props.small) {\n\t\t\t\t\treturn `${props.src}@!small`;\n\t\t\t\t} else if (props.thumb) {\n\t\t\t\t\treturn `${props.src}@!thumb`;\n\t\t\t\t} else {\n\t\t\t\t\t// 默认使用缩略图\n\t\t\t\t\treturn `${props.src}@!thumb`;\n\t\t\t\t}\n\t\t\t}),\n\t\t\tpreviewList: computed(() => (props.preview ? [props.base64 ? `data:image/png;base64,${props.src}` : props.src] : [])),\n\t\t});\n\n\t\tconst bindProps = useProps(props, imageProps, [\"src\", \"previewSrcList\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElImage {...bindProps.value} class=\"fa-image\" src={state.src} previewSrcList={state.previewList}>\n\t\t\t\t{{\n\t\t\t\t\terror: () =>\n\t\t\t\t\t\tslots.error ? (\n\t\t\t\t\t\t\tslots.error()\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<div class=\"fa-image__error-image\">\n\t\t\t\t\t\t\t\t<ElIcon class=\"icon\">\n\t\t\t\t\t\t\t\t\t<ElIconPicture />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t),\n\t\t\t\t\t...(slots.placeholder && { placeholder: (): VNode[] => slots.placeholder() }),\n\t\t\t\t\t...(slots.viewer && { viewer: (): VNode[] => slots.viewer({ src: state.src }) }),\n\t\t\t\t}}\n\t\t\t</ElImage>\n\t\t));\n\t},\n});\n"],"names":["faImageProps","imageProps","hideOnClickModal","type","Boolean","default","previewTeleported","lazy","base64","original","normal","small","thumb","preview","Image","name","props","slots","makeSlots","setup","attrs","emit","expose","state","reactive","src","computed","previewList","bindProps","useProps","useRender","_createVNode","ElImage","_mergeProps","value","class","previewSrcList","error","ElIcon","ElIconPicture","placeholder","viewer"],"mappings":"mSAMO,MAAMA,EAAe,IACxBC,EAEHC,iBAAkB,CACjBC,KAAMC,QACNC,SAAS,GAGVC,kBAAmB,CAClBH,KAAMC,QACNC,SAAS,GAGVE,KAAM,CACLJ,KAAMC,QACNC,SAAS,GAGVG,OAAQJ,QAERK,SAAUL,QAEVM,OAAQN,QAERO,MAAOP,QAEPQ,MAAOR,QAEPS,QAAS,CACRV,KAAMC,QACNC,SAAS,IAaXS,mBAA+B,CAC9BC,KAAM,UACNC,MAAOhB,EACPiB,MAAOC,IACPC,KAAAA,CAAMH,GAAOI,MAAEA,EAAAA,MAAOH,EAAAA,KAAOI,EAAAA,OAAMC,IAClC,MAAMC,EAAQC,EAAS,CACtBC,IAAKC,EAAS,KACb,GAAKV,EAAMS,IACX,OAAIT,EAAMR,OACF,yBAAyBQ,EAAMS,MAC5BT,EAAMP,SACTO,EAAMS,IACHT,EAAMN,OACT,GAAGM,EAAMS,cACNT,EAAML,MACT,GAAGK,EAAMS,cACNT,EAAMJ,MACT,GAAGI,EAAMS,gBAMlBE,YAAaD,EAAS,IAAOV,EAAMH,QAAU,CAACG,EAAMR,OAAS,yBAAyBQ,EAAMS,MAAQT,EAAMS,KAAO,MAG5GG,EAAYC,EAASb,EAAOf,EAAY,CAAC,MAAO,mBAEtD6B,EAAU,IAAAC,EAAAC,EAAAC,EACIL,EAAUM,MAAK,CAAAC,MAAA,WAAAV,IAAwBF,EAAME,IAAGW,eAAkBb,EAAMI,cAAW,CAE9FU,MAAOA,IACNpB,EAAMoB,MACLpB,EAAMoB,QAAON,EAAA,MAAA,CAAAI,MAAA,yBAAA,CAAAJ,EAAAO,EAAA,CAAAH,MAAA,QAAA,CAAA9B,QAAAA,IAAA,CAAA0B,EAAAQ,EAAA,KAAA,cAQXtB,EAAMuB,aAAe,CAAEA,YAAaA,IAAevB,EAAMuB,kBACzDvB,EAAMwB,QAAU,CAAEA,OAAQA,IAAexB,EAAMwB,OAAO,CAAEhB,IAAKF,EAAME,SAI3E"}
1
+ {"version":3,"file":"image.mjs","sources":["../../../../../packages/components/image/src/image.tsx"],"sourcesContent":["import { computed, defineComponent, reactive } from \"vue\";\nimport { ElIcon, ElImage, imageProps } from \"element-plus\";\nimport { Picture as ElIconPicture } from \"@element-plus/icons-vue\";\nimport { makeSlots, useProps, useRender } from \"@fast-china/utils\";\nimport type { VNode } from \"vue\";\n\nexport const faImageProps = {\n\t...imageProps,\n\t/** @description when enabling preview, use this flag to control whether clicking on backdrop can exit preview mode. */\n\thideOnClickModal: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether to append image-viewer to body. A nested parent element attribute transform should have this attribute set to `true`. */\n\tpreviewTeleported: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether to use lazy load. */\n\tlazy: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description Base64图片 */\n\tbase64: Boolean,\n\t/** @description 原图 */\n\toriginal: Boolean,\n\t/** @description 标准 */\n\tnormal: Boolean,\n\t/** @description 小图 */\n\tsmall: Boolean,\n\t/** @description 缩略图 */\n\tthumb: Boolean,\n\t/** @description 是否可以预览图片 */\n\tpreview: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n};\n\ntype FaImageSlots = {\n\t/** @description 当图像尚未加载时,自定义的占位符内容 */\n\tplaceholder: never;\n\t/** @description 自定义图像加载失败的内容 */\n\terror: never;\n\t/** @description 当图像预览时自定义内容 */\n\tviewer: { src: string };\n};\n\nexport default defineComponent({\n\tname: \"FaImage\",\n\tprops: faImageProps,\n\tslots: makeSlots<FaImageSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst state = reactive({\n\t\t\t/** 图片加载错误 */\n\t\t\tloadError: false,\n\t\t\tsrc: computed(() => {\n\t\t\t\tif (!props.src) return undefined;\n\t\t\t\tif (props.base64) {\n\t\t\t\t\treturn `data:image/png;base64,${props.src}`;\n\t\t\t\t} else if (props.original || state.loadError) {\n\t\t\t\t\treturn props.src;\n\t\t\t\t} else if (props.normal) {\n\t\t\t\t\treturn `${props.src}@!normal`;\n\t\t\t\t} else if (props.small) {\n\t\t\t\t\treturn `${props.src}@!small`;\n\t\t\t\t} else if (props.thumb) {\n\t\t\t\t\treturn `${props.src}@!thumb`;\n\t\t\t\t} else {\n\t\t\t\t\t// 默认使用缩略图\n\t\t\t\t\treturn `${props.src}@!thumb`;\n\t\t\t\t}\n\t\t\t}),\n\t\t\tpreviewList: computed(() => (props.preview ? [props.base64 ? `data:image/png;base64,${props.src}` : props.src] : [])),\n\t\t});\n\n\t\tconst bindProps = useProps(props, imageProps, [\"src\", \"previewSrcList\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElImage\n\t\t\t\t{...bindProps.value}\n\t\t\t\tclass=\"fa-image\"\n\t\t\t\tsrc={state.src}\n\t\t\t\tpreviewSrcList={state.previewList}\n\t\t\t\tonError={() => {\n\t\t\t\t\tif (!state.loadError) state.loadError = true;\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\terror: () =>\n\t\t\t\t\t\tslots.error ? (\n\t\t\t\t\t\t\tslots.error()\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<div class=\"fa-image__error-image\">\n\t\t\t\t\t\t\t\t<ElIcon class=\"icon\">\n\t\t\t\t\t\t\t\t\t<ElIconPicture />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t),\n\t\t\t\t\t...(slots.placeholder && { placeholder: (): VNode[] => slots.placeholder() }),\n\t\t\t\t\t...(slots.viewer && { viewer: (): VNode[] => slots.viewer({ src: state.src }) }),\n\t\t\t\t}}\n\t\t\t</ElImage>\n\t\t));\n\t},\n});\n"],"names":["faImageProps","imageProps","hideOnClickModal","type","Boolean","default","previewTeleported","lazy","base64","original","normal","small","thumb","preview","Image","name","props","slots","makeSlots","setup","attrs","emit","expose","state","reactive","loadError","src","computed","previewList","bindProps","useProps","useRender","_createVNode","ElImage","_mergeProps","value","class","previewSrcList","onError","error","ElIcon","ElIconPicture","placeholder","viewer"],"mappings":"mSAMO,MAAMA,EAAe,IACxBC,EAEHC,iBAAkB,CACjBC,KAAMC,QACNC,SAAS,GAGVC,kBAAmB,CAClBH,KAAMC,QACNC,SAAS,GAGVE,KAAM,CACLJ,KAAMC,QACNC,SAAS,GAGVG,OAAQJ,QAERK,SAAUL,QAEVM,OAAQN,QAERO,MAAOP,QAEPQ,MAAOR,QAEPS,QAAS,CACRV,KAAMC,QACNC,SAAS,IAaXS,mBAA+B,CAC9BC,KAAM,UACNC,MAAOhB,EACPiB,MAAOC,IACPC,KAAAA,CAAMH,GAAOI,MAAEA,EAAAA,MAAOH,EAAAA,KAAOI,EAAAA,OAAMC,IAClC,MAAMC,EAAQC,EAAS,CAEtBC,WAAW,EACXC,IAAKC,EAAS,KACb,GAAKX,EAAMU,IACX,OAAIV,EAAMR,OACF,yBAAyBQ,EAAMU,MAC5BV,EAAMP,UAAYc,EAAME,UAC3BT,EAAMU,IACHV,EAAMN,OACT,GAAGM,EAAMU,cACNV,EAAML,MACT,GAAGK,EAAMU,cACNV,EAAMJ,MACT,GAAGI,EAAMU,gBAMlBE,YAAaD,EAAS,IAAOX,EAAMH,QAAU,CAACG,EAAMR,OAAS,yBAAyBQ,EAAMU,MAAQV,EAAMU,KAAO,MAG5GG,EAAYC,EAASd,EAAOf,EAAY,CAAC,MAAO,mBAEtD8B,EAAU,IAAAC,EAAAC,EAAAC,EAEJL,EAAUM,MAAK,CAAAC,MAAA,WAAAV,IAEdH,EAAMG,IAAGW,eACEd,EAAMK,YAAWU,QACxBA,KACHf,EAAME,YAAWF,EAAME,WAAY,MACxC,CAGAc,MAAOA,IACNtB,EAAMsB,MACLtB,EAAMsB,QAAOP,EAAA,MAAA,CAAAI,MAAA,yBAAA,CAAAJ,EAAAQ,EAAA,CAAAJ,MAAA,QAAA,CAAA/B,QAAAA,IAAA,CAAA2B,EAAAS,EAAA,KAAA,cAQXxB,EAAMyB,aAAe,CAAEA,YAAaA,IAAezB,EAAMyB,kBACzDzB,EAAM0B,QAAU,CAAEA,OAAQA,IAAe1B,EAAM0B,OAAO,CAAEjB,IAAKH,EAAMG,SAI3E"}
@@ -1,7 +1,7 @@
1
- import { TableProps } from 'element-plus';
2
- import { PropType } from 'vue';
3
1
  import { PagedInput, PagedResult } from '../../table';
4
2
  import { ElSelectorOutput } from '../../select/src/select.type';
3
+ import { TableProps } from 'element-plus';
4
+ import { PropType } from 'vue';
5
5
  export declare const faInputDialogPageProps: {
6
6
  /** @description key of row data, used for optimizing rendering. Required if `reserve-selection` is on or display tree data. When its type is String, multi-level access is supported, e.g. `user.info.id`, but `user.info[0].id` is not supported, in which case `Function` should be used */
7
7
  rowKey: {
@@ -1,2 +1,2 @@
1
- import{defineComponent as e,reactive as l,ref as o,createVNode as t,computed as i}from"vue";import{ElInput as a,ElButtonGroup as n,ElButton as u}from"element-plus";import{Delete as s,Search as r}from"@element-plus/icons-vue";import{definePropType as d,withDefineType as c,useRender as m,useExpose as p,makeSlots as f}from"@fast-china/utils";import{isString as v,isNull as g,isNumber as w,isFunction as b}from"lodash-unified";import{FaTable as y}from"../../table/index.mjs";import{useVModel as h}from"@vueuse/core";import{FaDialog as S}from"../../dialog/index.mjs";const K={rowKey:{type:[String,Function],default:"id"},modelValue:[String,Number],label:String,placeholder:{type:String,default:"请选择"},disabled:Boolean,title:String,requestApi:{type:d(Function)},initParam:d([String,Number,Object]),labelKey:{type:String,default:"name"}},R={"update:modelValue":e=>v(e)||w(e)||g(e),"update:label":e=>v(e)||g(e),change:(e,l)=>!0},C=/* @__PURE__ */e({name:"FaInputDialogPage",props:K,emits:R,slots:f(),setup(e,{attrs:d,slots:f,emit:v,expose:g}){const w=h(e,"modelValue",v,{passive:!0}),K=h(e,"label",v,{passive:!0}),R=l({selectionRow:c()}),C=o(),k=o(),V=()=>{w.value=null,K.value=null,v("change",null)},x=()=>{C.value.open(()=>{if(R.selectionRow){k.value.selectedListIds.includes(b(e.rowKey)?e.rowKey(R.selectionRow):R.selectionRow[e.rowKey])||k.value.toggleRowSelection(R.selectionRow)}})},P=()=>{C.value.close(()=>{if(k.value.selected){const l=k.value.selectedList[0];w.value=b(e.rowKey)?e.rowKey(l):l[e.rowKey],K.value=l[e.labelKey],v("change",l,w.value)}else w.value=null,K.value=null,v("change",null,null)})},j=e=>{k.value.clearSelection(),k.value.toggleRowSelection(e),R.selectionRow=e,P()};return m(()=>t("div",{class:"fa-input-dialog-page"},[t(a,{modelValue:K.value,"onUpdate:modelValue":e=>K.value=e,placeholder:e.placeholder,disabled:e.disabled,readonly:!0},{append:()=>t(n,null,{default:()=>[t(u,{disabled:e.disabled,icon:s,onClick:V},null),t(u,{disabled:e.disabled,icon:r,onClick:x},null)]})}),t(S,{ref:C,style:"--height: 70%;",width:"50%",title:e.title,fullHeight:!0,disabledConfirmButton:!k.value?.selected,onConfirmClick:P},{default:()=>[t(y,{ref:k,rowKey:e.rowKey,requestApi:e.requestApi,initParam:e.initParam,single:!0,rowClickSelection:!0,hideSearchTime:!0,onRowDblclick:j},{default:()=>f.default&&f.default()})]})])),p(g,{selectionRow:i(()=>R.selectionRow),open:x,clear:V})}});export{C as default,R as faInputDialogPageEmits,K as faInputDialogPageProps};
1
+ import{defineComponent as e,reactive as l,ref as o,createVNode as t,computed as i}from"vue";import{ElInput as a,ElButtonGroup as n,ElButton as u}from"element-plus";import{Delete as s,Search as r}from"@element-plus/icons-vue";import{FaDialog as d}from"../../dialog/index.mjs";import{FaTable as c}from"../../table/index.mjs";import{definePropType as m,withDefineType as p,useRender as f,useExpose as v,makeSlots as g}from"@fast-china/utils";import{useVModel as w}from"@vueuse/core";import{isString as b,isNull as y,isNumber as h,isFunction as S}from"lodash-unified";const K={rowKey:{type:[String,Function],default:"id"},modelValue:[String,Number],label:String,placeholder:{type:String,default:"请选择"},disabled:Boolean,title:String,requestApi:{type:m(Function)},initParam:m([String,Number,Object]),labelKey:{type:String,default:"name"}},R={"update:modelValue":e=>b(e)||h(e)||y(e),"update:label":e=>b(e)||y(e),change:(e,l)=>!0},C=/* @__PURE__ */e({name:"FaInputDialogPage",props:K,emits:R,slots:g(),setup(e,{attrs:m,slots:g,emit:b,expose:y}){const h=w(e,"modelValue",b,{passive:!0}),K=w(e,"label",b,{passive:!0}),R=l({selectionRow:p()}),C=o(),k=o(),V=()=>{h.value=null,K.value=null,b("change",null)},x=()=>{C.value.open(()=>{if(R.selectionRow){k.value.selectedListIds.includes(S(e.rowKey)?e.rowKey(R.selectionRow):R.selectionRow[e.rowKey])||k.value.toggleRowSelection(R.selectionRow)}})},P=()=>{C.value.close(()=>{if(k.value.selected){const l=k.value.selectedList[0];h.value=S(e.rowKey)?e.rowKey(l):l[e.rowKey],K.value=l[e.labelKey],b("change",l,h.value)}else h.value=null,K.value=null,b("change",null,null)})},j=e=>{k.value.clearSelection(),k.value.toggleRowSelection(e),R.selectionRow=e,P()};return f(()=>t("div",{class:"fa-input-dialog-page"},[t(a,{modelValue:K.value,"onUpdate:modelValue":e=>K.value=e,placeholder:e.placeholder,disabled:e.disabled,readonly:!0},{append:()=>t(n,null,{default:()=>[t(u,{disabled:e.disabled,icon:s,onClick:V},null),t(u,{disabled:e.disabled,icon:r,onClick:x},null)]})}),t(d,{ref:C,style:"--height: 70%;",width:"50%",title:e.title,fullHeight:!0,disabledConfirmButton:!k.value?.selected,onConfirmClick:P},{default:()=>[t(c,{ref:k,rowKey:e.rowKey,requestApi:e.requestApi,initParam:e.initParam,single:!0,rowClickSelection:!0,hideSearchTime:!0,onRowDblclick:j},{default:()=>g.default&&g.default()})]})])),v(y,{selectionRow:i(()=>R.selectionRow),open:x,clear:V})}});export{C as default,R as faInputDialogPageEmits,K as faInputDialogPageProps};
2
2
  //# sourceMappingURL=inputDialogPage.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"inputDialogPage.mjs","sources":["../../../../../packages/components/inputDialogPage/src/inputDialogPage.tsx"],"sourcesContent":["import { computed, defineComponent, reactive, ref } from \"vue\";\nimport { ElButton, ElButtonGroup, ElInput } from \"element-plus\";\nimport { Delete, Search } from \"@element-plus/icons-vue\";\nimport { definePropType, makeSlots, useExpose, useRender, withDefineType } from \"@fast-china/utils\";\nimport { isFunction, isNull, isNumber, isString } from \"lodash-unified\";\nimport type { TableProps } from \"element-plus\";\nimport type { PropType } from \"vue\";\nimport { FaTable, type FaTableInstance, type PagedInput, type PagedResult } from \"@fast-element-plus/components/table\";\nimport { useVModel } from \"@vueuse/core\";\nimport FaDialog, { FaDialogInstance } from \"@fast-element-plus/components/dialog\";\nimport { ElSelectorOutput } from \"@fast-element-plus/components/select/src/select.type\";\n\nexport const faInputDialogPageProps = {\n\t/** @description key of row data, used for optimizing rendering. Required if `reserve-selection` is on or display tree data. When its type is String, multi-level access is supported, e.g. `user.info.id`, but `user.info[0].id` is not supported, in which case `Function` should be used */\n\trowKey: {\n\t\ttype: [String, Function] as PropType<TableProps<any>[\"rowKey\"]>,\n\t\tdefault: \"id\",\n\t},\n\t/** @description v-model绑定值 */\n\tmodelValue: [String, Number],\n\t/** @description v-model:label绑定值 */\n\tlabel: String,\n\t/** @description 输入框占位文本 */\n\tplaceholder: {\n\t\ttype: String,\n\t\tdefault: \"请选择\",\n\t},\n\t/** @description 禁用 */\n\tdisabled: Boolean,\n\t/** @description 标题 */\n\ttitle: String,\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: PagedInput) => Promise<PagedResult | any[]>>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | any>([String, Number, Object]),\n\t/** @description 显示文本 Key */\n\tlabelKey: {\n\t\ttype: String,\n\t\tdefault: \"name\",\n\t},\n};\n\nexport const faInputDialogPageEmits = {\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: string | number) => isString(value) || isNumber(value) || isNull(value),\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string) => isString(value) || isNull(value),\n\t/** @description 改变 */\n\tchange: (\n\t\tdata: ElSelectorOutput | ElSelectorOutput[] | any | any[],\n\t\tvalue?: string | number | boolean | object | (string | number | boolean | object)[]\n\t): boolean => true,\n};\n\ntype FaInputDialogPageSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: never;\n};\n\nexport default defineComponent({\n\tname: \"FaInputDialogPage\",\n\tprops: faInputDialogPageProps,\n\temits: faInputDialogPageEmits,\n\tslots: makeSlots<FaInputDialogPageSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst modelValue = useVModel(props, \"modelValue\", emit, { passive: true });\n\t\tconst selectedLabel = useVModel(props, \"label\", emit, { passive: true });\n\n\t\tconst state = reactive({\n\t\t\tselectionRow: withDefineType<unknown>(),\n\t\t});\n\n\t\tconst faDialogRef = ref<FaDialogInstance>();\n\t\tconst faTableRef = ref<FaTableInstance>();\n\n\t\tconst handleDeleteClick = (): void => {\n\t\t\tmodelValue.value = null;\n\t\t\tselectedLabel.value = null;\n\t\t\temit(\"change\", null);\n\t\t};\n\n\t\tconst handleSearchClick = (): void => {\n\t\t\tfaDialogRef.value.open(() => {\n\t\t\t\tif (state.selectionRow) {\n\t\t\t\t\t// 判断当前行是否选中\n\t\t\t\t\tconst rowSelected = faTableRef.value.selectedListIds.includes(\n\t\t\t\t\t\tisFunction(props.rowKey) ? props.rowKey(state.selectionRow) : state.selectionRow[props.rowKey]\n\t\t\t\t\t);\n\t\t\t\t\tif (!rowSelected) {\n\t\t\t\t\t\tfaTableRef.value.toggleRowSelection(state.selectionRow);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tfaDialogRef.value.close(() => {\n\t\t\t\tif (faTableRef.value.selected) {\n\t\t\t\t\tconst selectedData = faTableRef.value.selectedList[0];\n\t\t\t\t\tmodelValue.value = isFunction(props.rowKey) ? props.rowKey(selectedData) : selectedData[props.rowKey];\n\t\t\t\t\tselectedLabel.value = selectedData[props.labelKey];\n\t\t\t\t\temit(\"change\", selectedData, modelValue.value);\n\t\t\t\t} else {\n\t\t\t\t\tmodelValue.value = null;\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\temit(\"change\", null, null);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\tconst handleTableRowDblclick = (row: any): void => {\n\t\t\tfaTableRef.value.clearSelection();\n\t\t\tfaTableRef.value.toggleRowSelection(row);\n\t\t\tstate.selectionRow = row;\n\t\t\thandleConfirmClick();\n\t\t};\n\n\t\tuseRender(() => (\n\t\t\t<div class=\"fa-input-dialog-page\">\n\t\t\t\t<ElInput vModel={selectedLabel.value} placeholder={props.placeholder} disabled={props.disabled} readonly>\n\t\t\t\t\t{{\n\t\t\t\t\t\tappend: () => (\n\t\t\t\t\t\t\t<ElButtonGroup>\n\t\t\t\t\t\t\t\t<ElButton disabled={props.disabled} icon={Delete} onClick={handleDeleteClick} />\n\t\t\t\t\t\t\t\t<ElButton disabled={props.disabled} icon={Search} onClick={handleSearchClick} />\n\t\t\t\t\t\t\t</ElButtonGroup>\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t</ElInput>\n\t\t\t\t<FaDialog\n\t\t\t\t\tref={faDialogRef}\n\t\t\t\t\tstyle=\"--height: 70%;\"\n\t\t\t\t\twidth=\"50%\"\n\t\t\t\t\ttitle={props.title}\n\t\t\t\t\tfullHeight\n\t\t\t\t\tdisabledConfirmButton={!faTableRef.value?.selected}\n\t\t\t\t\tonConfirmClick={handleConfirmClick}\n\t\t\t\t>\n\t\t\t\t\t<FaTable\n\t\t\t\t\t\tref={faTableRef}\n\t\t\t\t\t\trowKey={props.rowKey}\n\t\t\t\t\t\trequestApi={props.requestApi}\n\t\t\t\t\t\tinitParam={props.initParam}\n\t\t\t\t\t\tsingle\n\t\t\t\t\t\trowClickSelection\n\t\t\t\t\t\thideSearchTime\n\t\t\t\t\t\tonRowDblclick={handleTableRowDblclick}\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tdefault: () => slots.default && slots.default(),\n\t\t\t\t\t\t}}\n\t\t\t\t\t</FaTable>\n\t\t\t\t</FaDialog>\n\t\t\t</div>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 选择行数据 */\n\t\t\tselectionRow: computed(() => state.selectionRow),\n\t\t\t/** @description 打开选择器弹窗 */\n\t\t\topen: handleSearchClick,\n\t\t\t/** @description 清除选择 */\n\t\t\tclear: handleDeleteClick,\n\t\t});\n\t},\n});\n"],"names":["faInputDialogPageProps","rowKey","type","String","Function","default","modelValue","Number","label","placeholder","disabled","Boolean","title","requestApi","definePropType","initParam","Object","labelKey","faInputDialogPageEmits","isString","value","isNumber","isNull","change","data","InputDialogPage","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","useVModel","passive","selectedLabel","state","reactive","selectionRow","withDefineType","faDialogRef","ref","faTableRef","handleDeleteClick","handleSearchClick","open","selectedListIds","includes","isFunction","toggleRowSelection","handleConfirmClick","close","selected","selectedData","selectedList","handleTableRowDblclick","row","clearSelection","useRender","_createVNode","class","ElInput","$event","readonly","append","ElButtonGroup","ElButton","icon","Delete","onClick","Search","FaDialog","style","width","fullHeight","disabledConfirmButton","onConfirmClick","FaTable","single","rowClickSelection","hideSearchTime","onRowDblclick","useExpose","computed","clear"],"mappings":"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"}
1
+ {"version":3,"file":"inputDialogPage.mjs","sources":["../../../../../packages/components/inputDialogPage/src/inputDialogPage.tsx"],"sourcesContent":["import { computed, defineComponent, reactive, ref } from \"vue\";\nimport { ElButton, ElButtonGroup, ElInput } from \"element-plus\";\nimport { Delete, Search } from \"@element-plus/icons-vue\";\nimport FaDialog from \"@fast-element-plus/components/dialog\";\nimport { FaTable, type FaTableInstance, type PagedInput, type PagedResult } from \"@fast-element-plus/components/table\";\nimport { definePropType, makeSlots, useExpose, useRender, withDefineType } from \"@fast-china/utils\";\nimport { useVModel } from \"@vueuse/core\";\nimport { isFunction, isNull, isNumber, isString } from \"lodash-unified\";\nimport type { FaDialogInstance } from \"@fast-element-plus/components/dialog\";\nimport type { ElSelectorOutput } from \"@fast-element-plus/components/select/src/select.type\";\nimport type { TableProps } from \"element-plus\";\nimport type { PropType } from \"vue\";\n\nexport const faInputDialogPageProps = {\n\t/** @description key of row data, used for optimizing rendering. Required if `reserve-selection` is on or display tree data. When its type is String, multi-level access is supported, e.g. `user.info.id`, but `user.info[0].id` is not supported, in which case `Function` should be used */\n\trowKey: {\n\t\ttype: [String, Function] as PropType<TableProps<any>[\"rowKey\"]>,\n\t\tdefault: \"id\",\n\t},\n\t/** @description v-model绑定值 */\n\tmodelValue: [String, Number],\n\t/** @description v-model:label绑定值 */\n\tlabel: String,\n\t/** @description 输入框占位文本 */\n\tplaceholder: {\n\t\ttype: String,\n\t\tdefault: \"请选择\",\n\t},\n\t/** @description 禁用 */\n\tdisabled: Boolean,\n\t/** @description 标题 */\n\ttitle: String,\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: PagedInput) => Promise<PagedResult | any[]>>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | any>([String, Number, Object]),\n\t/** @description 显示文本 Key */\n\tlabelKey: {\n\t\ttype: String,\n\t\tdefault: \"name\",\n\t},\n};\n\nexport const faInputDialogPageEmits = {\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: string | number): boolean => isString(value) || isNumber(value) || isNull(value),\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string): boolean => isString(value) || isNull(value),\n\t/** @description 改变 */\n\tchange: (\n\t\tdata: ElSelectorOutput | ElSelectorOutput[] | any | any[],\n\t\tvalue?: string | number | boolean | object | (string | number | boolean | object)[]\n\t): boolean => true,\n};\n\ntype FaInputDialogPageSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: never;\n};\n\nexport default defineComponent({\n\tname: \"FaInputDialogPage\",\n\tprops: faInputDialogPageProps,\n\temits: faInputDialogPageEmits,\n\tslots: makeSlots<FaInputDialogPageSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst modelValue = useVModel(props, \"modelValue\", emit, { passive: true });\n\t\tconst selectedLabel = useVModel(props, \"label\", emit, { passive: true });\n\n\t\tconst state = reactive({\n\t\t\tselectionRow: withDefineType<unknown>(),\n\t\t});\n\n\t\tconst faDialogRef = ref<FaDialogInstance>();\n\t\tconst faTableRef = ref<FaTableInstance>();\n\n\t\tconst handleDeleteClick = (): void => {\n\t\t\tmodelValue.value = null;\n\t\t\tselectedLabel.value = null;\n\t\t\temit(\"change\", null);\n\t\t};\n\n\t\tconst handleSearchClick = (): void => {\n\t\t\tfaDialogRef.value.open(() => {\n\t\t\t\tif (state.selectionRow) {\n\t\t\t\t\t// 判断当前行是否选中\n\t\t\t\t\tconst rowSelected = faTableRef.value.selectedListIds.includes(\n\t\t\t\t\t\tisFunction(props.rowKey) ? props.rowKey(state.selectionRow) : state.selectionRow[props.rowKey]\n\t\t\t\t\t);\n\t\t\t\t\tif (!rowSelected) {\n\t\t\t\t\t\tfaTableRef.value.toggleRowSelection(state.selectionRow);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tfaDialogRef.value.close(() => {\n\t\t\t\tif (faTableRef.value.selected) {\n\t\t\t\t\tconst selectedData = faTableRef.value.selectedList[0];\n\t\t\t\t\tmodelValue.value = isFunction(props.rowKey) ? props.rowKey(selectedData) : selectedData[props.rowKey];\n\t\t\t\t\tselectedLabel.value = selectedData[props.labelKey];\n\t\t\t\t\temit(\"change\", selectedData, modelValue.value);\n\t\t\t\t} else {\n\t\t\t\t\tmodelValue.value = null;\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\temit(\"change\", null, null);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\tconst handleTableRowDblclick = (row: any): void => {\n\t\t\tfaTableRef.value.clearSelection();\n\t\t\tfaTableRef.value.toggleRowSelection(row);\n\t\t\tstate.selectionRow = row;\n\t\t\thandleConfirmClick();\n\t\t};\n\n\t\tuseRender(() => (\n\t\t\t<div class=\"fa-input-dialog-page\">\n\t\t\t\t<ElInput vModel={selectedLabel.value} placeholder={props.placeholder} disabled={props.disabled} readonly>\n\t\t\t\t\t{{\n\t\t\t\t\t\tappend: () => (\n\t\t\t\t\t\t\t<ElButtonGroup>\n\t\t\t\t\t\t\t\t<ElButton disabled={props.disabled} icon={Delete} onClick={handleDeleteClick} />\n\t\t\t\t\t\t\t\t<ElButton disabled={props.disabled} icon={Search} onClick={handleSearchClick} />\n\t\t\t\t\t\t\t</ElButtonGroup>\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t</ElInput>\n\t\t\t\t<FaDialog\n\t\t\t\t\tref={faDialogRef}\n\t\t\t\t\tstyle=\"--height: 70%;\"\n\t\t\t\t\twidth=\"50%\"\n\t\t\t\t\ttitle={props.title}\n\t\t\t\t\tfullHeight\n\t\t\t\t\tdisabledConfirmButton={!faTableRef.value?.selected}\n\t\t\t\t\tonConfirmClick={handleConfirmClick}\n\t\t\t\t>\n\t\t\t\t\t<FaTable\n\t\t\t\t\t\tref={faTableRef}\n\t\t\t\t\t\trowKey={props.rowKey}\n\t\t\t\t\t\trequestApi={props.requestApi}\n\t\t\t\t\t\tinitParam={props.initParam}\n\t\t\t\t\t\tsingle\n\t\t\t\t\t\trowClickSelection\n\t\t\t\t\t\thideSearchTime\n\t\t\t\t\t\tonRowDblclick={handleTableRowDblclick}\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tdefault: () => slots.default && slots.default(),\n\t\t\t\t\t\t}}\n\t\t\t\t\t</FaTable>\n\t\t\t\t</FaDialog>\n\t\t\t</div>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 选择行数据 */\n\t\t\tselectionRow: computed(() => state.selectionRow),\n\t\t\t/** @description 打开选择器弹窗 */\n\t\t\topen: handleSearchClick,\n\t\t\t/** @description 清除选择 */\n\t\t\tclear: handleDeleteClick,\n\t\t});\n\t},\n});\n"],"names":["faInputDialogPageProps","rowKey","type","String","Function","default","modelValue","Number","label","placeholder","disabled","Boolean","title","requestApi","definePropType","initParam","Object","labelKey","faInputDialogPageEmits","isString","value","isNumber","isNull","change","data","InputDialogPage","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","useVModel","passive","selectedLabel","state","reactive","selectionRow","withDefineType","faDialogRef","ref","faTableRef","handleDeleteClick","handleSearchClick","open","selectedListIds","includes","isFunction","toggleRowSelection","handleConfirmClick","close","selected","selectedData","selectedList","handleTableRowDblclick","row","clearSelection","useRender","_createVNode","class","ElInput","$event","readonly","append","ElButtonGroup","ElButton","icon","Delete","onClick","Search","FaDialog","style","width","fullHeight","disabledConfirmButton","onConfirmClick","FaTable","single","rowClickSelection","hideSearchTime","onRowDblclick","useExpose","computed","clear"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"layoutGridItem.mjs","sources":["../../../../../packages/components/layoutGrid/src/layoutGridItem.tsx"],"sourcesContent":["import { computed, defineComponent, inject, reactive, ref, watch } from \"vue\";\nimport { definePropType, makeSlots, useExpose, useRender } from \"@fast-china/utils\";\nimport type { FaLayoutGridItemResponsive } from \"./layoutGrid.type\";\nimport type { FaLayoutGridBreakPoint } from \"@fast-element-plus/components/layoutGrid\";\nimport type { Ref } from \"vue\";\nimport { isNumber } from \"lodash-unified\";\n\ntype FaLayoutGridItemSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: never;\n};\n\nexport default defineComponent({\n\tname: \"FaLayoutGridItem\",\n\tprops: {\n\t\t/** @description 偏移 */\n\t\toffset: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: 0,\n\t\t},\n\t\t/** @description 占位 */\n\t\tspan: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: 1,\n\t\t},\n\t\t/** @description 后缀 */\n\t\tsuffix: { type: Boolean, default: false },\n\t\t/** @description 响应式,小于480px屏幕配置 */\n\t\txs: {\n\t\t\ttype: definePropType<FaLayoutGridItemResponsive>(Object),\n\t\t\tdefault: undefined as FaLayoutGridItemResponsive,\n\t\t},\n\t\t/** @description 响应式,平板竖屏配置 */\n\t\tsm: {\n\t\t\ttype: definePropType<FaLayoutGridItemResponsive>(Object),\n\t\t\tdefault: undefined as FaLayoutGridItemResponsive,\n\t\t},\n\t\t/** @description 响应式,平板横屏配置 */\n\t\tmd: {\n\t\t\ttype: definePropType<FaLayoutGridItemResponsive>(Object),\n\t\t\tdefault: undefined as FaLayoutGridItemResponsive,\n\t\t},\n\t\t/** @description 响应式,小型桌面配置 */\n\t\tlg: {\n\t\t\ttype: definePropType<FaLayoutGridItemResponsive>(Object),\n\t\t\tdefault: undefined as FaLayoutGridItemResponsive,\n\t\t},\n\t\t/** @description 响应式,大型桌面配置 */\n\t\txl: {\n\t\t\ttype: definePropType<FaLayoutGridItemResponsive>(Object),\n\t\t\tdefault: undefined as FaLayoutGridItemResponsive,\n\t\t},\n\t},\n\tslots: makeSlots<FaLayoutGridItemSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst state = reactive({\n\t\t\tshow: true,\n\t\t});\n\n\t\tconst attrsObj = attrs as any;\n\n\t\t// 注入断点\n\t\tconst breakPoint = inject<Ref<FaLayoutGridBreakPoint>>(\"breakPoint\", ref(\"xl\"));\n\t\tconst shouldHiddenIndex = inject<Ref<number>>(\"shouldHiddenIndex\", ref(-1));\n\n\t\twatch(\n\t\t\t() => [shouldHiddenIndex.value, breakPoint.value],\n\t\t\t(n) => {\n\t\t\t\tif (~~attrsObj.index) {\n\t\t\t\t\tstate.show = !(n[0] !== -1 && parseInt(attrsObj.index) >= Number(n[0]));\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ immediate: true }\n\t\t);\n\n\t\tconst gap = inject(\"gap\", 0);\n\t\tconst cols = inject<Ref<number>>(\"cols\", ref(5));\n\n\t\tconst style = computed(() => {\n\t\t\tconst breakPointObk = props[breakPoint.value] as FaLayoutGridItemResponsive;\n\t\t\tconst span = breakPointObk?.span ?? (isNumber(props.span) ? props.span : Number(props.span));\n\t\t\tconst offset = breakPointObk?.offset ?? (isNumber(props.offset) ? props.offset : Number(props.offset));\n\t\t\tif (props.suffix) {\n\t\t\t\treturn {\n\t\t\t\t\tgridColumnStart: cols.value - span - offset + 1,\n\t\t\t\t\tgridColumnEnd: `span ${span + offset}`,\n\t\t\t\t\tmarginLeft: offset !== 0 ? `calc(((100% + ${gap}px) / ${span + offset}) * ${offset})` : \"unset\",\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\treturn {\n\t\t\t\t\tgridColumn: `span ${span + offset > cols.value ? cols.value : span + offset}/span ${\n\t\t\t\t\t\tspan + offset > cols.value ? cols.value : span + offset\n\t\t\t\t\t}`,\n\t\t\t\t\tmarginLeft: offset !== 0 ? `calc(((100% + ${gap}px) / ${span + offset}) * ${offset})` : \"unset\",\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\tuseRender(() => (\n\t\t\t<div style={style.value} vShow={state.show}>\n\t\t\t\t{slots.default && slots.default()}\n\t\t\t</div>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\tshow: state.show,\n\t\t});\n\t},\n});\n"],"names":["LayoutGridItem","name","props","offset","type","String","Number","default","span","suffix","Boolean","xs","definePropType","Object","undefined","sm","md","lg","xl","slots","makeSlots","setup","attrs","emit","expose","state","reactive","show","attrsObj","breakPoint","inject","ref","shouldHiddenIndex","watch","value","n","index","parseInt","immediate","gap","cols","style","computed","breakPointObk","isNumber","gridColumnStart","gridColumnEnd","marginLeft","gridColumn","useRender","_withDirectives","_createVNode","_vShow","useExpose"],"mappings":"4RAYA,MAAAA,mBAA+B,CAC9BC,KAAM,mBACNC,MAAO,CAENC,OAAQ,CACPC,KAAM,CAACC,OAAQC,QACfC,QAAS,GAGVC,KAAM,CACLJ,KAAM,CAACC,OAAQC,QACfC,QAAS,GAGVE,OAAQ,CAAEL,KAAMM,QAASH,SAAS,GAElCI,GAAI,CACHP,KAAMQ,EAA2CC,QACjDN,aAASO,GAGVC,GAAI,CACHX,KAAMQ,EAA2CC,QACjDN,aAASO,GAGVE,GAAI,CACHZ,KAAMQ,EAA2CC,QACjDN,aAASO,GAGVG,GAAI,CACHb,KAAMQ,EAA2CC,QACjDN,aAASO,GAGVI,GAAI,CACHd,KAAMQ,EAA2CC,QACjDN,aAASO,IAGXK,MAAOC,IACPC,KAAAA,CAAMnB,GAAOoB,MAAEA,EAAAA,MAAOH,EAAAA,KAAOI,EAAAA,OAAMC,IAClC,MAAMC,EAAQC,EAAS,CACtBC,MAAM,IAGDC,EAAWN,EAGXO,EAAaC,EAAoC,aAAcC,EAAI,OACnEC,EAAoBF,EAAoB,oBAAqBC,OAEnEE,EACC,IAAM,CAACD,EAAkBE,MAAOL,EAAWK,OAC1CC,MACMP,EAASQ,QACdX,EAAME,QAAkB,IAATQ,EAAE,IAAaE,SAAST,EAASQ,QAAU9B,OAAO6B,EAAE,OAGrE,CAAEG,WAAW,IAGd,MAAMC,EAAMT,EAAO,MAAO,GACpBU,EAAOV,EAAoB,OAAQC,EAAI,IAEvCU,EAAQC,EAAS,KACtB,MAAMC,EAAgBzC,EAAM2B,EAAWK,OACjC1B,EAAOmC,GAAenC,OAASoC,EAAS1C,EAAMM,MAAQN,EAAMM,KAAOF,OAAOJ,EAAMM,OAChFL,EAASwC,GAAexC,SAAWyC,EAAS1C,EAAMC,QAAUD,EAAMC,OAASG,OAAOJ,EAAMC,SAC9F,OAAID,EAAMO,OACF,CACNoC,gBAAiBL,EAAKN,MAAQ1B,EAAOL,EAAS,EAC9C2C,cAAe,QAAQtC,EAAOL,IAC9B4C,WAAuB,IAAX5C,EAAe,iBAAiBoC,UAAY/B,EAAOL,QAAaA,KAAY,SAGlF,CACN6C,WAAY,QAAQxC,EAAOL,EAASqC,EAAKN,MAAQM,EAAKN,MAAQ1B,EAAOL,UACpEK,EAAOL,EAASqC,EAAKN,MAAQM,EAAKN,MAAQ1B,EAAOL,IAElD4C,WAAuB,IAAX5C,EAAe,iBAAiBoC,UAAY/B,EAAOL,QAAaA,KAAY,WAW3F,OANA8C,EAAU,IAAAC,EAAAC,EAAA,MAAA,CAAAV,MACGA,EAAMP,OAAK,CACrBf,EAAMZ,SAAWY,EAAMZ,YAAS,CAAA,CAAA6C,EADF3B,EAAME,SAKhC0B,EAAU7B,EAAQ,CACxBG,KAAMF,EAAME,MAEd"}
1
+ {"version":3,"file":"layoutGridItem.mjs","sources":["../../../../../packages/components/layoutGrid/src/layoutGridItem.tsx"],"sourcesContent":["import { computed, defineComponent, inject, reactive, ref, watch } from \"vue\";\nimport { definePropType, makeSlots, useExpose, useRender } from \"@fast-china/utils\";\nimport { isNumber } from \"lodash-unified\";\nimport type { FaLayoutGridItemResponsive } from \"./layoutGrid.type\";\nimport type { FaLayoutGridBreakPoint } from \"@fast-element-plus/components/layoutGrid\";\nimport type { Ref } from \"vue\";\n\ntype FaLayoutGridItemSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: never;\n};\n\nexport default defineComponent({\n\tname: \"FaLayoutGridItem\",\n\tprops: {\n\t\t/** @description 偏移 */\n\t\toffset: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: 0,\n\t\t},\n\t\t/** @description 占位 */\n\t\tspan: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: 1,\n\t\t},\n\t\t/** @description 后缀 */\n\t\tsuffix: { type: Boolean, default: false },\n\t\t/** @description 响应式,小于480px屏幕配置 */\n\t\txs: {\n\t\t\ttype: definePropType<FaLayoutGridItemResponsive>(Object),\n\t\t\tdefault: undefined as FaLayoutGridItemResponsive,\n\t\t},\n\t\t/** @description 响应式,平板竖屏配置 */\n\t\tsm: {\n\t\t\ttype: definePropType<FaLayoutGridItemResponsive>(Object),\n\t\t\tdefault: undefined as FaLayoutGridItemResponsive,\n\t\t},\n\t\t/** @description 响应式,平板横屏配置 */\n\t\tmd: {\n\t\t\ttype: definePropType<FaLayoutGridItemResponsive>(Object),\n\t\t\tdefault: undefined as FaLayoutGridItemResponsive,\n\t\t},\n\t\t/** @description 响应式,小型桌面配置 */\n\t\tlg: {\n\t\t\ttype: definePropType<FaLayoutGridItemResponsive>(Object),\n\t\t\tdefault: undefined as FaLayoutGridItemResponsive,\n\t\t},\n\t\t/** @description 响应式,大型桌面配置 */\n\t\txl: {\n\t\t\ttype: definePropType<FaLayoutGridItemResponsive>(Object),\n\t\t\tdefault: undefined as FaLayoutGridItemResponsive,\n\t\t},\n\t},\n\tslots: makeSlots<FaLayoutGridItemSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst state = reactive({\n\t\t\tshow: true,\n\t\t});\n\n\t\tconst attrsObj = attrs as any;\n\n\t\t// 注入断点\n\t\tconst breakPoint = inject<Ref<FaLayoutGridBreakPoint>>(\"breakPoint\", ref(\"xl\"));\n\t\tconst shouldHiddenIndex = inject<Ref<number>>(\"shouldHiddenIndex\", ref(-1));\n\n\t\twatch(\n\t\t\t() => [shouldHiddenIndex.value, breakPoint.value],\n\t\t\t(n) => {\n\t\t\t\tif (~~attrsObj.index) {\n\t\t\t\t\tstate.show = !(n[0] !== -1 && parseInt(attrsObj.index) >= Number(n[0]));\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ immediate: true }\n\t\t);\n\n\t\tconst gap = inject(\"gap\", 0);\n\t\tconst cols = inject<Ref<number>>(\"cols\", ref(5));\n\n\t\tconst style = computed(() => {\n\t\t\tconst breakPointObk = props[breakPoint.value] as FaLayoutGridItemResponsive;\n\t\t\tconst span = breakPointObk?.span ?? (isNumber(props.span) ? props.span : Number(props.span));\n\t\t\tconst offset = breakPointObk?.offset ?? (isNumber(props.offset) ? props.offset : Number(props.offset));\n\t\t\tif (props.suffix) {\n\t\t\t\treturn {\n\t\t\t\t\tgridColumnStart: cols.value - span - offset + 1,\n\t\t\t\t\tgridColumnEnd: `span ${span + offset}`,\n\t\t\t\t\tmarginLeft: offset !== 0 ? `calc(((100% + ${gap}px) / ${span + offset}) * ${offset})` : \"unset\",\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\treturn {\n\t\t\t\t\tgridColumn: `span ${span + offset > cols.value ? cols.value : span + offset}/span ${\n\t\t\t\t\t\tspan + offset > cols.value ? cols.value : span + offset\n\t\t\t\t\t}`,\n\t\t\t\t\tmarginLeft: offset !== 0 ? `calc(((100% + ${gap}px) / ${span + offset}) * ${offset})` : \"unset\",\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\tuseRender(() => (\n\t\t\t<div style={style.value} vShow={state.show}>\n\t\t\t\t{slots.default && slots.default()}\n\t\t\t</div>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\tshow: state.show,\n\t\t});\n\t},\n});\n"],"names":["LayoutGridItem","name","props","offset","type","String","Number","default","span","suffix","Boolean","xs","definePropType","Object","undefined","sm","md","lg","xl","slots","makeSlots","setup","attrs","emit","expose","state","reactive","show","attrsObj","breakPoint","inject","ref","shouldHiddenIndex","watch","value","n","index","parseInt","immediate","gap","cols","style","computed","breakPointObk","isNumber","gridColumnStart","gridColumnEnd","marginLeft","gridColumn","useRender","_withDirectives","_createVNode","_vShow","useExpose"],"mappings":"4RAYA,MAAAA,mBAA+B,CAC9BC,KAAM,mBACNC,MAAO,CAENC,OAAQ,CACPC,KAAM,CAACC,OAAQC,QACfC,QAAS,GAGVC,KAAM,CACLJ,KAAM,CAACC,OAAQC,QACfC,QAAS,GAGVE,OAAQ,CAAEL,KAAMM,QAASH,SAAS,GAElCI,GAAI,CACHP,KAAMQ,EAA2CC,QACjDN,aAASO,GAGVC,GAAI,CACHX,KAAMQ,EAA2CC,QACjDN,aAASO,GAGVE,GAAI,CACHZ,KAAMQ,EAA2CC,QACjDN,aAASO,GAGVG,GAAI,CACHb,KAAMQ,EAA2CC,QACjDN,aAASO,GAGVI,GAAI,CACHd,KAAMQ,EAA2CC,QACjDN,aAASO,IAGXK,MAAOC,IACPC,KAAAA,CAAMnB,GAAOoB,MAAEA,EAAAA,MAAOH,EAAAA,KAAOI,EAAAA,OAAMC,IAClC,MAAMC,EAAQC,EAAS,CACtBC,MAAM,IAGDC,EAAWN,EAGXO,EAAaC,EAAoC,aAAcC,EAAI,OACnEC,EAAoBF,EAAoB,oBAAqBC,OAEnEE,EACC,IAAM,CAACD,EAAkBE,MAAOL,EAAWK,OAC1CC,MACMP,EAASQ,QACdX,EAAME,QAAkB,IAATQ,EAAE,IAAaE,SAAST,EAASQ,QAAU9B,OAAO6B,EAAE,OAGrE,CAAEG,WAAW,IAGd,MAAMC,EAAMT,EAAO,MAAO,GACpBU,EAAOV,EAAoB,OAAQC,EAAI,IAEvCU,EAAQC,EAAS,KACtB,MAAMC,EAAgBzC,EAAM2B,EAAWK,OACjC1B,EAAOmC,GAAenC,OAASoC,EAAS1C,EAAMM,MAAQN,EAAMM,KAAOF,OAAOJ,EAAMM,OAChFL,EAASwC,GAAexC,SAAWyC,EAAS1C,EAAMC,QAAUD,EAAMC,OAASG,OAAOJ,EAAMC,SAC9F,OAAID,EAAMO,OACF,CACNoC,gBAAiBL,EAAKN,MAAQ1B,EAAOL,EAAS,EAC9C2C,cAAe,QAAQtC,EAAOL,IAC9B4C,WAAuB,IAAX5C,EAAe,iBAAiBoC,UAAY/B,EAAOL,QAAaA,KAAY,SAGlF,CACN6C,WAAY,QAAQxC,EAAOL,EAASqC,EAAKN,MAAQM,EAAKN,MAAQ1B,EAAOL,UACpEK,EAAOL,EAASqC,EAAKN,MAAQM,EAAKN,MAAQ1B,EAAOL,IAElD4C,WAAuB,IAAX5C,EAAe,iBAAiBoC,UAAY/B,EAAOL,QAAaA,KAAY,WAW3F,OANA8C,EAAU,IAAAC,EAAAC,EAAA,MAAA,CAAAV,MACGA,EAAMP,OAAK,CACrBf,EAAMZ,SAAWY,EAAMZ,YAAS,CAAA,CAAA6C,EADF3B,EAAME,SAKhC0B,EAAU7B,EAAQ,CACxBG,KAAMF,EAAME,MAEd"}
@@ -1,2 +1,2 @@
1
- import{isVNode as e,defineComponent as a,ref as t,onMounted as l,watch as n,watchEffect as o,onActivated as i,computed as r,createVNode as s,withDirectives as c,Fragment as d,createTextVNode as u,mergeProps as m,resolveDirective as h}from"vue";import{useSizeProp as g,ElInput as p,ElDatePicker as f,ElButton as b,ElDropdown as C,ElDropdownMenu as S,ElDropdownItem as w,ElTable as y,ElTableColumn as _,ElIcon as v,ElPagination as x,ElImageViewer as P}from"element-plus";import{Search as L,Refresh as I,Eleme as B,Setting as F,More as R}from"@element-plus/icons-vue";import{NotData as O}from"@fast-element-plus/icons-vue";import{definePropType as T,stringUtil as k,consoleWarn as N,clickUtil as D,useProps as E,useRender as j,dateUtil as M,useExpose as z,makeSlots as K}from"@fast-china/utils";import{isNil as A,isString as H,isObject as $,isNumber as V,isBoolean as W,isArray as U,isNull as Y,isFunction as q,pick as G,omit as J}from"lodash-unified";import{getTableDefaultSlots as Q}from"./table.type.mjs";import X from"./tableColumn.mjs";import Z from"./tableColumnSettingDialog.mjs";import ee from"./tablePagination.mjs";import ae from"./tableSearchForm.mjs";import{useTable as te}from"./useTable.mjs";const le={data:{type:Array,default:()=>[]},size:g,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children",checkStrictly:!1})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:Boolean,flexible:Boolean,showOverflowTooltip:[Boolean,Object],scrollbarTabindex:{type:[Number,String],default:void 0}},ne={...le,border:{type:Boolean,default:!0},highlightCurrentRow:{type:Boolean,default:!0},rowKey:{type:[String,Function],default:"id"},spanMethod:{type:Function,validator:()=>(N("FaTable","'spanMethod' 属性,组件已经封装,外部使用会失效。"),!1)},tableKey:{type:String,default:()=>k.generateRandomString(8)},data:{type:T(Array),default:()=>[]},requestApi:{type:T(Function)},dataCallback:{type:T(Function)},initParam:T([String,Number,Object]),columns:{type:T([Array,Boolean]),default:()=>!1},columnsChange:{type:T(Function)},searchFormCols:{type:T([String,Number,Object]),default:()=>({xs:3,sm:3,md:4,lg:5,xl:6})},collapsedSearch:{type:Boolean,default:!0},advancedSearchDrawer:{type:Boolean,default:!1},searchForm:{type:Boolean,default:!0},headerCard:{type:Boolean,default:!0},refreshBtn:{type:Boolean,default:!0},searchBtn:{type:Boolean,default:!0},columnSettingBtn:{type:Boolean,default:!1},toolBtn:{type:Boolean,default:!0},hideSearchTime:Boolean,futureSearchTime:Boolean,dataSearchRange:{type:T(String),default:"Past3D"},pagination:{type:Boolean,default:!0},hideImage:Boolean,single:Boolean,rowClickSelection:Boolean,treeData:Boolean,props:{type:T(Object),default:()=>({span:void 0,children:"children"})},autoRefresh:{type:Boolean,default:!0},rowSelectable:Function},oe={select:(e,a)=>U(e)&&$(a),selectAll:e=>U(e),selectionChange:e=>U(e),cellMouseEnter:(e,a,t,l)=>$(e)&&$(a)&&t instanceof HTMLTableCellElement&&l instanceof Event,cellMouseLeave:(e,a,t,l)=>$(e)&&$(a)&&t instanceof HTMLTableCellElement&&l instanceof Event,cellClick:(e,a,t,l)=>$(e)&&$(a)&&t instanceof HTMLTableCellElement&&l instanceof Event,cellDblclick:(e,a,t,l)=>$(e)&&$(a)&&t instanceof HTMLTableCellElement&&l instanceof Event,cellContextmenu:(e,a,t,l)=>$(e)&&$(a)&&t instanceof HTMLTableCellElement&&l instanceof Event,rowClick:(e,a,t)=>$(e)&&$(a)&&t instanceof Event,rowContextmenu:(e,a,t)=>$(e)&&$(a)&&t instanceof Event,rowDblclick:(e,a,t)=>$(e)&&$(a)&&t instanceof Event,headerClick:(e,a)=>$(e)&&a instanceof Event,headerContextmenu:(e,a)=>$(e)&&a instanceof Event,sortChange:e=>$(e),filterChange:e=>H(e)||V(e)||W(e)||$(e),currentChange:(e,a)=>$(e)&&(Y(a)||$(a)),headerDragend:(e,a,t,l)=>V(e)&&V(a)&&$(t)&&l instanceof MouseEvent,expandChange:(e,a)=>$(e)&&(W(a)||U(a)),refresh:e=>$(e),reset:e=>$(e),sizeChange:e=>V(e),paginationChange:(e,a)=>V(e)&&V(a),customCellClick:(e,{row:a,column:t,$index:l})=>(A(e)||H(e))&&$(a)&&$(t)&&V(l)},ie=/* @__PURE__ */a({name:"FaTable",props:ne,emits:oe,slots:K(),setup(a,{attrs:g,slots:T,emit:k,expose:N}){const{_globalSize:K,state:A,elementRef:$,tableRef:V,handleTableColumnAutoWidth:W,loadTableColumns:U,handleSizeChange:Y,handlePaginationChange:ne,defaultSearchTime:oe,tableSearch:ie,tableReset:re,doRender:se,doLoading:ce,handleCustomCellClick:de}=te(a,T,k),ue=t();let me=0;const he=e=>{if(0===e&&(me=0),A.spanColumns?.length>0){return 0===Number(A.tableSpanData["__table-index"][e])?me+(A.tablePagination.pageIndex-1)*A.tablePagination.pageSize+1:(me++,me+(A.tablePagination.pageIndex-1)*A.tablePagination.pageSize)}return e+(A.tablePagination.pageIndex-1)*A.tablePagination.pageSize+1},ge=(e,t)=>{a.single&&(V.value.clearSelection(),e.length>0&&t&&V.value.toggleRowSelection(t)),k("select",e,t)},pe=e=>{a.single&&(A.selected?A.tableData.length>0&&(V.value.clearSelection(),V.value.toggleRowSelection(A.tableData[0])):V.value.clearSelection()),k("selectAll",e)},fe=e=>{0===e.length?A.selected=!1:A.selected=!0,a.single&&e.length>0?A.selectedList=[e[e.length-1]]:A.selectedList=e,A.indeterminateSelectedListIds=A.indeterminateSelectedListIds.filter(e=>A.selectedListIds.some(a=>a===e)),k("selectionChange",A.selectedList)},be=({column:e,prop:t,order:l})=>{e.multiOrder?"descending"===e.multiOrder?e.multiOrder="ascending":e.multiOrder=null:e.multiOrder="descending",A.searchParam.sortList=[.../* @__PURE__ */new Set([...a.initParam?.sortList??[],...A.searchParam?.sortList??[]])];const n=A.orgColumns.find(e=>e.prop===t),o=n?.sortableField??n?.prop??e.property,i=A.searchParam.sortList.findIndex(e=>e.enField===o);e.multiOrder?-1===i?A.searchParam.sortList.push({enField:o,cnField:e.label,mode:e.multiOrder}):A.searchParam.sortList[i].mode=e.multiOrder:A.searchParam.sortList.splice(i,1),0===A.searchParam.sortList.length&&delete A.searchParam.sortList,k("sortChange",{column:e,prop:t,order:e.multiOrder}),ie()},Ce=(e,t)=>{e&&(a.rowClickSelection&&(a.single&&t&&V.value.toggleRowSelection(t),V.value.toggleRowSelection(e)),k("currentChange",e,t))},Se=({row:e,column:t,rowIndex:l,columnIndex:n})=>{let o=null;if("selection"===t.type){const t=q(a.rowKey)?a.rowKey(e):e[a.rowKey];A.indeterminateSelectedListIds.some(e=>e===t)&&(o="fa-table__selection-column__indeterminate")}const i=A.tableColumns.find(e=>e.prop===t.property);if(i?.dataDeleteField&&e&&!0===e[i.dataDeleteField]&&(o?o+=" fa-table__data-delete-column":o="fa-table__data-delete-column"),a.cellClassName){let i=null;return i=H(a.cellClassName)?a.cellClassName:a.cellClassName({row:e,column:t,rowIndex:l,columnIndex:n}),i?o?`${o} ${i}`:i:o}return o},we=({row:e,column:t,rowIndex:l,columnIndex:n})=>(t.order=t.multiOrder,a.headerCellClassName?q(a.headerCellClassName)?a.headerCellClassName({row:e,column:t,rowIndex:l,columnIndex:n}):a.headerCellClassName:null),ye=({row:e,column:a,rowIndex:t,columnIndex:l})=>{const n=a.property??a.columnKey;if(-1!==A.spanColumns.findIndex(e=>e.prop===n)){const e=Number(A.tableSpanData[n][t]);return e>0?{rowspan:e,colspan:1}:{rowspan:0,colspan:0}}return{rowspan:1,colspan:1}},_e=async(e,t,l,n)=>{A.orgColumns.forEach(a=>{l.property===a.prop&&(a.width=e,a.smallWidth=e)}),k("headerDragend",e,t,l,n),a.columnsChange&&await D.debounceAsync(()=>a.columnsChange(A.orgColumns),500)},ve=e=>{A.previewList=[e],A.imagePreview=!0};l(async()=>{A.initParam=a.initParam,oe(),Object.keys(a.initParam??{}).forEach(e=>{A.searchParam[e]=a.initParam[e]}),await ie(),n(()=>a.columns,async()=>{U()},{deep:!0,immediate:!0}),n(()=>a.initParam,()=>{Object.keys(a.initParam??{}).forEach(e=>{A.searchParam[e]=a.initParam[e]})},{deep:!0}),n(()=>a.data,async()=>{!a.requestApi&&a.autoRefresh&&await ie()},{deep:!0,immediate:!0}),o(async()=>{const e=$.value;if(e){const a=new ResizeObserver(e=>{for(const a of e){const{width:e,height:t}=a.contentRect;A.tableWidth=e,A.tableHeight=t}D.debounceAsync(async()=>{await W()},100)});return a.observe(e),()=>{a.disconnect()}}})}),i(async()=>{await W()});const xe=r(()=>A.searchColumns.filter(e=>e.search.slot).map(e=>e.search.slot)),Pe=r(()=>A.tableColumns.filter(e=>e.slot).map(e=>e.slot)),Le=["multiOrder","columnId","order","sortableField","disabledSortable","spanProp","pureSearch","search"],Ie=E(a,le,["data","spanMethod","headerCellClassName","cellClassName"]);return j(()=>s("div",{ref:$,class:["fa-table",`fa-table-${K.value}`,`fa-table__${a.tableKey??"notFound"}`,{fa__click__disabled:A.loading}],style:{"--fa-table-width":""+(A.tableWidth?`${A.tableWidth}px`:""),"--fa-table-height":""+(A.tableHeight?`${A.tableHeight}px`:"")}},[s(ae,{show:a.searchForm&&A.searchForm,collapsedSearch:a.collapsedSearch,advancedSearchDrawer:a.advancedSearchDrawer,cols:a.searchFormCols,search:ie,reset:re},G(T,xe.value)),T.topHeader&&s("div",{class:"el-card fa-table__header"},[T.topHeader({search:ie,...Q(A)})]),s("div",{class:"el-card fa-table__main"},[a.headerCard&&s("div",{class:"fa-table__main-header"},[s("div",{class:"fa-table__main-header-left"},[T.header&&T.header({search:ie,...Q(A)})]),s("div",{class:"fa-table__main-header-right"},[a.toolBtn&&s(d,null,[s("div",{class:"fa-table__main-header-right__div-search"},[s(p,{class:"fa-table__main-header-right__input-search",disabled:A.loading,prefixIcon:L,placeholder:"关键字搜索",modelValue:A.searchParam.searchValue,modelModifiers:{trim:!0},"onUpdate:modelValue":e=>A.searchParam.searchValue=e,clearable:!0,onCompositionupdate:e=>{A.searchValueUpdate=e.data},onCompositionend:e=>{A.searchValueUpdate=""},onChange:()=>ie()},null),s("div",{class:"fa-table__main-header-right__div-search__hidden"},[A.searchParam.searchValue,A.searchValueUpdate])]),a.requestApi&&!a.hideSearchTime&&s(f,{class:"fa-table__main-header-right__data-search",popperClass:"fa-table__main-header-right__data-search__popper",disabled:A.loading,type:"daterange",modelValue:A.searchParam.searchTimeList,"onUpdate:modelValue":e=>A.searchParam.searchTimeList=e,defaultTime:M.getDefaultTime(a.futureSearchTime),shortcuts:M.getShortcuts(a.futureSearchTime),valueFormat:"YYYY-MM-DD HH:mm:ss",clearable:!1,teleported:!1,unlinkPanels:!0,onChange:()=>ie()},null),a.refreshBtn&&s(b,{loading:A.loading,loadingIcon:B,title:"刷新",circle:!0,icon:I,onClick:()=>ie()},null),a.searchBtn&&A.searchColumns.length>0&&s(b,{loading:A.loading,loadingIcon:B,title:A.searchForm?"隐藏搜索栏":"显示搜索栏",circle:!0,icon:L,onClick:()=>A.searchForm=!A.searchForm},null),a.columnSettingBtn&&a.columns&&s(C,{title:"表格列配置",trigger:"click"},{default:()=>s(b,{loading:A.loading,loadingIcon:B,circle:!0,icon:F},null),dropdown:()=>s(S,null,{default:()=>[T.columnSetting&&T.columnSetting(),s(w,{title:"表格列配置",divided:!0,onClick:()=>ue.value.open()},{default:()=>[u("表格列配置")]})]})}),T.toolButton&&T.toolButton({search:ie,...Q(A)}),T.toolButtonAdv&&s(C,{title:"高级操作",trigger:"click"},{default:()=>s(b,{loading:A.loading,loadingIcon:B,circle:!0,icon:R},null),dropdown:()=>{let a;return s(S,null,"function"==typeof(t=a=T.toolButtonAdv({search:ie,...Q(A)}))||"[object Object]"===Object.prototype.toString.call(t)&&!e(t)?a:{default:()=>[a]});var t}})])])]),c(s(y,m(Ie.value,{ref:V,"element-loading-text":A.loadingText,data:A.tableData,spanMethod:ye,headerCellClassName:we,cellClassName:Se,onSelectionChange:fe,onSortChange:be,onSelect:ge,onSelectAll:pe,onCurrentChange:Ce,onHeaderDragend:_e,onCellMouseEnter:(e,a,t,l)=>k("cellMouseEnter",e,a,t,l),onCellMouseLeave:(e,a,t,l)=>k("cellMouseLeave",e,a,t,l),onCellClick:(e,a,t,l)=>k("cellClick",e,a,t,l),onCellDblclick:(e,a,t,l)=>k("cellDblclick",e,a,t,l),onCellContextmenu:(e,a,t,l)=>k("cellContextmenu",e,a,t,l),onRowClick:(e,a,t)=>k("rowClick",e,a,t),onRowContextmenu:(e,a,t)=>k("rowContextmenu",e,a,t),onRowDblclick:(e,a,t)=>k("rowDblclick",e,a,t),onHeaderClick:(e,a)=>k("headerClick",e,a),onHeaderContextmenu:(e,a)=>k("headerContextmenu",e,a),onFilterChange:e=>k("filterChange",e),onExpandChange:(e,a)=>k("expandChange",e,a)}),{append:()=>T.append&&T.append(),empty:()=>s("div",{class:"fa-table__empty"},[T.empty?T.empty():s(d,null,[s(v,null,{default:()=>[s(O,null,null)]}),s("div",null,[u("暂无数据")])])]),default:()=>s(d,null,[s(_,{className:"fa-table__index-column",type:"index",fixed:"left",width:A.tablePagination.pageIndex*A.tablePagination.pageSize>=100?A.tablePagination.pageIndex*A.tablePagination.pageSize>=1e3?50:40:30,align:"center",index:he,showOverflowTooltip:!1,resizable:!1,columnKey:"__table-index"},null),s(_,{className:"fa-table__selection-column",type:"selection",fixed:"left",width:35,align:"center",reserveSelection:!0,showOverflowTooltip:!1,resizable:!1,columnKey:"__table-selection",selectable:a.rowSelectable},null),T.operation&&s(_,{fixed:"right",width:A.operationColumnWidth,headerAlign:"center",align:"left",showOverflowTooltip:!1,className:"fa-table__operation-column",resizable:!1,columnKey:"__table-operation"},{header:()=>s("div",{class:"fa-table__auto-width-column__cell-header __fa-table__auto-width-column__cell-header____table-operation"},[s("span",null,[u("操作")])]),default:({row:e,column:a,$index:t})=>s("div",{class:"fa-table__auto-width-column__cell __fa-table__auto-width-column__cell____table-operation"},[T.operation({row:e,column:a,$index:t,search:ie,...Q(A)})])}),0===A.tableColumns?.length?T.default&&T.default():A.tableColumns.map(e=>e.show&&("expand"===e.type?s(_,m(e,{width:35,fixed:e.fixed??"left",resizable:!1}),{default:({row:a,column:t,$index:l})=>s(d,null,[e.render&&e.render({row:a,column:t,$index:l,...Q(A)}),e.slot&&T[e.slot]&&T[e.slot]({row:a,column:t,$index:l,...Q(A)})])}):e.prop&&s(X,m(J(e,Le),{hideImage:a.hideImage,resizable:!0,onImagePreview:ve,onCustomCellClick:de}),G(T,Pe.value))))])}),[[h("loading"),A.loading]]),s("div",{class:"fa-table__main-footer"},[s("div",{class:"fa-table__main-footer__left"},[T.footer&&T.footer({search:ie,...Q(A)})]),T.pagination?T.pagination({pageIndex:A.tablePagination.pageIndex,pageSize:A.tablePagination.pageSize,totalRows:A.tablePagination.totalRows,handleSizeChange:Y,handlePaginationChange:ne}):s(d,null,[a.pagination?s(ee,{onSizeChange:Y,onCurrentChange:ne},null):s(x,{class:"fa-table-pagination",size:"small",layout:"total",total:A.tableData.length},null)])])]),A.imagePreview&&s(P,{closeOnPressEscape:!0,hideOnClickModal:!0,teleported:!0,onClose:()=>A.imagePreview=!1,urlList:A.previewList},null),a.columnSettingBtn&&s(Z,{ref:ue,change:a.columnsChange},null)])),z(N,{clearSelection:r(()=>V.value?.clearSelection),getSelectionRows:r(()=>V.value?.getSelectionRows),toggleRowSelection:r(()=>V.value?.toggleRowSelection),toggleAllSelection:r(()=>V.value?.toggleAllSelection),toggleRowExpansion:r(()=>V.value?.toggleRowExpansion),setCurrentRow:r(()=>V.value?.setCurrentRow),clearSort:r(()=>V.value?.clearSort),clearFilter:r(()=>V.value?.clearFilter),doLayout:r(()=>V.value?.doLayout),sort:r(()=>V.value?.sort),scrollTo:r(()=>V.value?.scrollTo),setScrollTop:r(()=>V.value?.setScrollTop),setScrollLeft:r(()=>V.value?.setScrollLeft),columns:r(()=>V.value?.columns),updateKeyChildren:r(()=>V.value?.updateKeyChildren),loading:r(()=>A.loading),tableData:r(()=>A.tableData),tablePagination:r(()=>A.tablePagination),searchParam:r(()=>A.searchParam),selected:r(()=>A.selected),selectedList:r(()=>A.selectedList),selectedListIds:r(()=>A.selectedListIds),indeterminateSelectedListIds:r(()=>A.indeterminateSelectedListIds),tableWidth:r(()=>A.tableWidth),tableHeight:r(()=>A.tableHeight),toggleRowIndeterminateSelection:(e,t)=>{const l=q(a.rowKey)?a.rowKey(e):e[a.rowKey],n=A.tableData.find(e=>q(a.rowKey)?a.rowKey(e):e[a.rowKey]===l);if(!0===t)A.indeterminateSelectedListIds.some(e=>e===l)||A.indeterminateSelectedListIds.push(l),V.value.toggleRowSelection(n,!0);else if(!1===t){const e=A.indeterminateSelectedListIds.findIndex(e=>e===l);e>=0&&A.indeterminateSelectedListIds.splice(e,1),V.value.toggleRowSelection(n,!1)}else{const e=A.indeterminateSelectedListIds.findIndex(e=>e===l);e>=0?A.indeterminateSelectedListIds.splice(e,1):A.indeterminateSelectedListIds.push(l),V.value.toggleRowSelection(n)}},refresh:ie,reset:re,doRender:se,doLoading:ce})}});export{ie as default,oe as faTableEmits,ne as faTableProps,le as tableProps};
1
+ import{isVNode as e,defineComponent as a,ref as t,onMounted as l,watch as n,watchEffect as o,onActivated as i,computed as r,createVNode as s,withDirectives as c,Fragment as d,createTextVNode as u,mergeProps as m,resolveDirective as h}from"vue";import{useSizeProp as g,ElInput as p,ElDatePicker as f,ElButton as b,ElDropdown as C,ElDropdownMenu as w,ElDropdownItem as S,ElTable as y,ElTableColumn as _,ElIcon as v,ElPagination as x,ElImageViewer as P}from"element-plus";import{Search as L,Refresh as I,Eleme as B,Setting as F,More as R}from"@element-plus/icons-vue";import{NotData as O}from"@fast-element-plus/icons-vue";import{definePropType as T,stringUtil as k,consoleWarn as N,clickUtil as D,useProps as E,useRender as j,dateUtil as M,useExpose as z,makeSlots as K}from"@fast-china/utils";import{isNil as A,isString as H,isObject as $,isNumber as V,isBoolean as W,isArray as U,isNull as Y,isFunction as q,pick as G,omit as J}from"lodash-unified";import{getTableDefaultSlots as Q}from"./table.type.mjs";import X from"./tableColumn.mjs";import Z from"./tableColumnSettingDialog.mjs";import ee from"./tablePagination.mjs";import ae from"./tableSearchForm.mjs";import{useTable as te}from"./useTable.mjs";const le={data:{type:Array,default:()=>[]},size:g,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children",checkStrictly:!1})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:Boolean,flexible:Boolean,showOverflowTooltip:[Boolean,Object],scrollbarTabindex:{type:[Number,String],default:void 0}},ne={...le,border:{type:Boolean,default:!0},highlightCurrentRow:{type:Boolean,default:!0},rowKey:{type:[String,Function],default:"id"},spanMethod:{type:Function,validator:()=>(N("FaTable","'spanMethod' 属性,组件已经封装,外部使用会失效。"),!1)},tableKey:{type:String,default:()=>k.generateRandomString(8)},data:{type:T(Array),default:()=>[]},requestApi:{type:T(Function)},dataCallback:{type:T(Function)},initParam:T([String,Number,Object]),columns:{type:T([Array,Boolean]),default:()=>!1},columnsChange:{type:T(Function)},searchFormCols:{type:T([String,Number,Object]),default:()=>({xs:3,sm:3,md:4,lg:5,xl:6})},collapsedSearch:{type:Boolean,default:!0},advancedSearchDrawer:{type:Boolean,default:!1},searchForm:{type:Boolean,default:!0},headerCard:{type:Boolean,default:!0},refreshBtn:{type:Boolean,default:!0},searchBtn:{type:Boolean,default:!0},columnSettingBtn:{type:Boolean,default:!1},toolBtn:{type:Boolean,default:!0},hideSearchTime:Boolean,futureSearchTime:Boolean,dataSearchRange:{type:T(String),default:"Past3D"},pagination:{type:Boolean,default:!0},hideImage:Boolean,single:Boolean,rowClickSelection:Boolean,treeData:Boolean,props:{type:T(Object),default:()=>({span:void 0,children:"children"})},autoRefresh:{type:Boolean,default:!0},rowSelectable:Function},oe={select:(e,a)=>U(e)&&$(a),selectAll:e=>U(e),selectionChange:e=>U(e),cellMouseEnter:(e,a,t,l)=>$(e)&&$(a)&&t instanceof HTMLTableCellElement&&l instanceof Event,cellMouseLeave:(e,a,t,l)=>$(e)&&$(a)&&t instanceof HTMLTableCellElement&&l instanceof Event,cellClick:(e,a,t,l)=>$(e)&&$(a)&&t instanceof HTMLTableCellElement&&l instanceof Event,cellDblclick:(e,a,t,l)=>$(e)&&$(a)&&t instanceof HTMLTableCellElement&&l instanceof Event,cellContextmenu:(e,a,t,l)=>$(e)&&$(a)&&t instanceof HTMLTableCellElement&&l instanceof Event,rowClick:(e,a,t)=>$(e)&&$(a)&&t instanceof Event,rowContextmenu:(e,a,t)=>$(e)&&$(a)&&t instanceof Event,rowDblclick:(e,a,t)=>$(e)&&$(a)&&t instanceof Event,headerClick:(e,a)=>$(e)&&a instanceof Event,headerContextmenu:(e,a)=>$(e)&&a instanceof Event,sortChange:e=>$(e),filterChange:e=>H(e)||V(e)||W(e)||$(e),currentChange:(e,a)=>$(e)&&(Y(a)||$(a)),headerDragend:(e,a,t,l)=>V(e)&&V(a)&&$(t)&&l instanceof MouseEvent,expandChange:(e,a)=>$(e)&&(W(a)||U(a)),refresh:e=>$(e),reset:e=>$(e),sizeChange:e=>V(e),paginationChange:(e,a)=>V(e)&&V(a),customCellClick:(e,{row:a,column:t,$index:l})=>(A(e)||H(e))&&$(a)&&$(t)&&V(l)},ie=/* @__PURE__ */a({name:"FaTable",props:ne,emits:oe,slots:K(),setup(a,{attrs:g,slots:T,emit:k,expose:N}){const{_globalSize:K,state:A,elementRef:$,tableRef:V,handleTableColumnAutoWidth:W,loadTableColumns:U,handleSizeChange:Y,handlePaginationChange:ne,defaultSearchTime:oe,tableSearch:ie,tableReset:re,doRender:se,doLoading:ce,handleCustomCellClick:de}=te(a,T,k),ue=t();let me=0;const he=e=>{if(0===e&&(me=0),A.spanColumns?.length>0){return 0===Number(A.tableSpanData["__table-index"][e])?me+(A.tablePagination.pageIndex-1)*A.tablePagination.pageSize+1:(me++,me+(A.tablePagination.pageIndex-1)*A.tablePagination.pageSize)}return e+(A.tablePagination.pageIndex-1)*A.tablePagination.pageSize+1},ge=(e,t)=>{a.single&&(V.value.clearSelection(),e.length>0&&t&&V.value.toggleRowSelection(t)),k("select",e,t)},pe=e=>{a.single&&(A.selected?A.tableData.length>0&&(V.value.clearSelection(),V.value.toggleRowSelection(A.tableData[0])):V.value.clearSelection()),k("selectAll",e)},fe=e=>{0===e.length?A.selected=!1:A.selected=!0,a.single&&e.length>0?A.selectedList=[e[e.length-1]]:A.selectedList=e,A.indeterminateSelectedListIds=A.indeterminateSelectedListIds.filter(e=>A.selectedListIds.some(a=>a===e)),k("selectionChange",A.selectedList)},be=({column:e,prop:t,order:l})=>{e.multiOrder?"descending"===e.multiOrder?e.multiOrder="ascending":e.multiOrder=null:e.multiOrder="descending",A.searchParam.sortList=[.../* @__PURE__ */new Set([...a.initParam?.sortList??[],...A.searchParam?.sortList??[]])];const n=A.orgColumns.find(e=>e.prop===t),o=n?.sortableField??n?.prop??e.property,i=A.searchParam.sortList.findIndex(e=>e.enField===o);e.multiOrder?-1===i?A.searchParam.sortList.push({enField:o,cnField:e.label,mode:e.multiOrder}):A.searchParam.sortList[i].mode=e.multiOrder:A.searchParam.sortList.splice(i,1),0===A.searchParam.sortList.length&&delete A.searchParam.sortList,k("sortChange",{column:e,prop:t,order:e.multiOrder}),ie()},Ce=(e,t)=>{e&&(a.rowClickSelection&&(a.single&&t&&V.value.toggleRowSelection(t),V.value.toggleRowSelection(e)),k("currentChange",e,t))},we=({row:e,column:t,rowIndex:l,columnIndex:n})=>{let o=null;if("selection"===t.type){const t=q(a.rowKey)?a.rowKey(e):e[a.rowKey];A.indeterminateSelectedListIds.some(e=>e===t)&&(o="fa-table__selection-column__indeterminate")}const i=A.tableColumns.find(e=>e.prop===t.property);if(i?.dataDeleteField&&e&&!0===e[i.dataDeleteField]&&(o?o+=" fa-table__data-delete-column":o="fa-table__data-delete-column"),a.cellClassName){let i=null;return i=H(a.cellClassName)?a.cellClassName:a.cellClassName({row:e,column:t,rowIndex:l,columnIndex:n}),i?o?`${o} ${i}`:i:o}return o},Se=({row:e,column:t,rowIndex:l,columnIndex:n})=>(t.order=t.multiOrder,a.headerCellClassName?q(a.headerCellClassName)?a.headerCellClassName({row:e,column:t,rowIndex:l,columnIndex:n}):a.headerCellClassName:null),ye=({row:e,column:a,rowIndex:t,columnIndex:l})=>{const n=a.property??a.columnKey;if(-1!==A.spanColumns.findIndex(e=>e.prop===n)){const e=Number(A.tableSpanData[n][t]);return e>0?{rowspan:e,colspan:1}:{rowspan:0,colspan:0}}return{rowspan:1,colspan:1}},_e=async(e,t,l,n)=>{A.orgColumns.forEach(a=>{l.property===a.prop&&(a.width=e,a.smallWidth=e)}),k("headerDragend",e,t,l,n),a.columnsChange&&await D.debounceAsync(()=>a.columnsChange(A.orgColumns),500)},ve=e=>{A.previewList=[e],A.imagePreview=!0};l(async()=>{A.initParam=a.initParam,oe(),Object.keys(a.initParam??{}).forEach(e=>{A.searchParam[e]=a.initParam[e]}),await ie(),n(()=>a.columns,async()=>{U()},{deep:!0,immediate:!0}),n(()=>a.initParam,()=>{Object.keys(a.initParam??{}).forEach(e=>{A.searchParam[e]=a.initParam[e]})},{deep:!0}),n(()=>a.data,async()=>{!a.requestApi&&a.autoRefresh&&await ie()},{deep:!0,immediate:!0}),o(async()=>{const e=$.value;if(e){const a=new ResizeObserver(e=>{for(const a of e){const{width:e,height:t}=a.contentRect;A.tableWidth=e,A.tableHeight=t}D.debounceAsync(async()=>{await W()},100)});return a.observe(e),()=>{a.disconnect()}}})}),i(async()=>{await W()});const xe=r(()=>A.searchColumns.filter(e=>e.search.slot).map(e=>e.search.slot)),Pe=r(()=>A.tableColumns.filter(e=>e.slot).map(e=>e.slot)),Le=["multiOrder","columnId","order","sortableField","disabledSortable","spanProp","pureSearch","search"],Ie=E(a,le,["data","spanMethod","headerCellClassName","cellClassName"]);return j(()=>s("div",{ref:$,class:["fa-table",`fa-table-${K.value}`,`fa-table__${a.tableKey??"notFound"}`,{fa__click__disabled:A.loading}],style:{"--fa-table-width":""+(A.tableWidth?`${A.tableWidth}px`:""),"--fa-table-height":""+(A.tableHeight?`${A.tableHeight}px`:"")}},[s(ae,{show:a.searchForm&&A.searchForm,collapsedSearch:a.collapsedSearch,advancedSearchDrawer:a.advancedSearchDrawer,cols:a.searchFormCols,search:ie,reset:re},G(T,xe.value)),T.topHeader&&s("div",{class:"el-card fa-table__header"},[T.topHeader({search:ie,...Q(A)})]),s("div",{class:"el-card fa-table__main"},[a.headerCard&&s("div",{class:"fa-table__main-header"},[s("div",{class:"fa-table__main-header-left"},[T.header&&T.header({search:ie,...Q(A)})]),s("div",{class:"fa-table__main-header-right"},[a.toolBtn&&s(d,null,[s("div",{class:"fa-table__main-header-right__div-search"},[s(p,{class:"fa-table__main-header-right__input-search",disabled:A.loading,prefixIcon:L,placeholder:"关键字搜索",modelValue:A.searchParam.searchValue,modelModifiers:{trim:!0},"onUpdate:modelValue":e=>A.searchParam.searchValue=e,clearable:!0,onCompositionupdate:e=>{A.searchValueUpdate=e.data},onCompositionend:e=>{A.searchValueUpdate=""},onChange:()=>ie()},null),s("div",{class:"fa-table__main-header-right__div-search__hidden"},[A.searchParam.searchValue,A.searchValueUpdate])]),a.requestApi&&!a.hideSearchTime&&s(f,{class:"fa-table__main-header-right__data-search",popperClass:"fa-table__main-header-right__data-search__popper",disabled:A.loading,type:"daterange",modelValue:A.searchParam.searchTimeList,"onUpdate:modelValue":e=>A.searchParam.searchTimeList=e,defaultTime:M.getDefaultTime(a.futureSearchTime),shortcuts:M.getShortcuts(a.futureSearchTime),valueFormat:"YYYY-MM-DD HH:mm:ss",clearable:!1,teleported:!1,unlinkPanels:!0,onChange:()=>ie()},null),a.refreshBtn&&s(b,{loading:A.loading,loadingIcon:B,title:"刷新",circle:!0,icon:I,onClick:()=>ie()},null),a.searchBtn&&A.searchColumns.length>0&&s(b,{loading:A.loading,loadingIcon:B,title:A.searchForm?"隐藏搜索栏":"显示搜索栏",circle:!0,icon:L,onClick:()=>A.searchForm=!A.searchForm},null),a.columnSettingBtn&&a.columns&&s(C,{title:"表格列配置",trigger:"click"},{default:()=>s(b,{loading:A.loading,loadingIcon:B,circle:!0,icon:F},null),dropdown:()=>s(w,null,{default:()=>[T.columnSetting&&T.columnSetting(),s(S,{title:"表格列配置",divided:!0,onClick:()=>ue.value.open()},{default:()=>[u("表格列配置")]})]})}),T.toolButton&&T.toolButton({search:ie,...Q(A)}),T.toolButtonAdv&&s(C,{title:"高级操作",trigger:"click"},{default:()=>s(b,{loading:A.loading,loadingIcon:B,circle:!0,icon:R},null),dropdown:()=>{let a;return s(w,null,"function"==typeof(t=a=T.toolButtonAdv({search:ie,...Q(A)}))||"[object Object]"===Object.prototype.toString.call(t)&&!e(t)?a:{default:()=>[a]});var t}})])])]),c(s(y,m(Ie.value,{ref:V,"element-loading-text":A.loadingText,data:A.tableData,spanMethod:ye,headerCellClassName:Se,cellClassName:we,onSelectionChange:fe,onSortChange:be,onSelect:ge,onSelectAll:pe,onCurrentChange:Ce,onHeaderDragend:_e,onCellMouseEnter:(e,a,t,l)=>k("cellMouseEnter",e,a,t,l),onCellMouseLeave:(e,a,t,l)=>k("cellMouseLeave",e,a,t,l),onCellClick:(e,a,t,l)=>k("cellClick",e,a,t,l),onCellDblclick:(e,a,t,l)=>k("cellDblclick",e,a,t,l),onCellContextmenu:(e,a,t,l)=>k("cellContextmenu",e,a,t,l),onRowClick:(e,a,t)=>k("rowClick",e,a,t),onRowContextmenu:(e,a,t)=>k("rowContextmenu",e,a,t),onRowDblclick:(e,a,t)=>k("rowDblclick",e,a,t),onHeaderClick:(e,a)=>k("headerClick",e,a),onHeaderContextmenu:(e,a)=>k("headerContextmenu",e,a),onFilterChange:e=>k("filterChange",e),onExpandChange:(e,a)=>k("expandChange",e,a)}),{append:()=>T.append&&T.append(),empty:()=>s("div",{class:"fa-table__empty"},[T.empty?T.empty():s(d,null,[s(v,null,{default:()=>[s(O,null,null)]}),s("div",null,[u("暂无数据")])])]),default:()=>s(d,null,[s(_,{className:"fa-table__index-column",type:"index",fixed:"left",width:A.tablePagination.pageIndex*A.tablePagination.pageSize>=100?A.tablePagination.pageIndex*A.tablePagination.pageSize>=1e3?50:40:30,align:"center",index:he,showOverflowTooltip:!1,resizable:!1,columnKey:"__table-index"},null),s(_,{className:"fa-table__selection-column",type:"selection",fixed:"left",width:35,align:"center",reserveSelection:!0,showOverflowTooltip:!1,resizable:!1,columnKey:"__table-selection",selectable:a.rowSelectable},null),T.operation&&s(_,{fixed:"right",width:A.operationColumnWidth,headerAlign:"center",align:"left",showOverflowTooltip:!1,className:"fa-table__operation-column",resizable:!1,columnKey:"__table-operation"},{header:()=>s("div",{class:"fa-table__auto-width-column__cell-header __fa-table__auto-width-column__cell-header____table-operation"},[s("span",null,[u("操作")])]),default:({row:e,column:a,$index:t})=>s("div",{class:"fa-table__auto-width-column__cell __fa-table__auto-width-column__cell____table-operation"},[T.operation({row:e,column:a,$index:t,search:ie,...Q(A)})])}),0===A.tableColumns?.length?T.default&&T.default():A.tableColumns.map(e=>e.show&&("expand"===e.type?s(_,m(e,{width:35,fixed:e.fixed??"left",resizable:!1}),{default:({row:a,column:t,$index:l})=>s(d,null,[e.render&&e.render({row:a,column:t,$index:l,...Q(A)}),e.slot&&T[e.slot]&&T[e.slot]({row:a,column:t,$index:l,...Q(A)})])}):e.prop&&s(X,m(J(e,Le),{hideImage:a.hideImage,resizable:!0,onImagePreview:ve,onCustomCellClick:de}),G(T,Pe.value))))])}),[[h("loading"),A.loading]]),s("div",{class:"fa-table__main-footer"},[s("div",{class:"fa-table__main-footer__left"},[T.footer&&T.footer({search:ie,...Q(A)})]),T.pagination?T.pagination({pageIndex:A.tablePagination.pageIndex,pageSize:A.tablePagination.pageSize,totalRows:A.tablePagination.totalRows,handleSizeChange:Y,handlePaginationChange:ne}):s(d,null,[a.pagination?s(ee,{onSizeChange:Y,onCurrentChange:ne},null):s(x,{class:"fa-table-pagination",size:"small",layout:"total",total:A.tableData.length},null)])])]),A.imagePreview&&s(P,{closeOnPressEscape:!0,hideOnClickModal:!0,teleported:!0,showProgress:!0,onClose:()=>A.imagePreview=!1,urlList:A.previewList},null),a.columnSettingBtn&&s(Z,{ref:ue,change:a.columnsChange},null)])),z(N,{clearSelection:r(()=>V.value?.clearSelection),getSelectionRows:r(()=>V.value?.getSelectionRows),toggleRowSelection:r(()=>V.value?.toggleRowSelection),toggleAllSelection:r(()=>V.value?.toggleAllSelection),toggleRowExpansion:r(()=>V.value?.toggleRowExpansion),setCurrentRow:r(()=>V.value?.setCurrentRow),clearSort:r(()=>V.value?.clearSort),clearFilter:r(()=>V.value?.clearFilter),doLayout:r(()=>V.value?.doLayout),sort:r(()=>V.value?.sort),scrollTo:r(()=>V.value?.scrollTo),setScrollTop:r(()=>V.value?.setScrollTop),setScrollLeft:r(()=>V.value?.setScrollLeft),columns:r(()=>V.value?.columns),updateKeyChildren:r(()=>V.value?.updateKeyChildren),loading:r(()=>A.loading),tableData:r(()=>A.tableData),tablePagination:r(()=>A.tablePagination),searchParam:r(()=>A.searchParam),selected:r(()=>A.selected),selectedList:r(()=>A.selectedList),selectedListIds:r(()=>A.selectedListIds),indeterminateSelectedListIds:r(()=>A.indeterminateSelectedListIds),tableWidth:r(()=>A.tableWidth),tableHeight:r(()=>A.tableHeight),toggleRowIndeterminateSelection:(e,t)=>{const l=q(a.rowKey)?a.rowKey(e):e[a.rowKey],n=A.tableData.find(e=>q(a.rowKey)?a.rowKey(e):e[a.rowKey]===l);if(!0===t)A.indeterminateSelectedListIds.some(e=>e===l)||A.indeterminateSelectedListIds.push(l),V.value.toggleRowSelection(n,!0);else if(!1===t){const e=A.indeterminateSelectedListIds.findIndex(e=>e===l);e>=0&&A.indeterminateSelectedListIds.splice(e,1),V.value.toggleRowSelection(n,!1)}else{const e=A.indeterminateSelectedListIds.findIndex(e=>e===l);e>=0?A.indeterminateSelectedListIds.splice(e,1):A.indeterminateSelectedListIds.push(l),V.value.toggleRowSelection(n)}},refresh:ie,reset:re,doRender:se,doLoading:ce})}});export{ie as default,oe as faTableEmits,ne as faTableProps,le as tableProps};
2
2
  //# sourceMappingURL=table.mjs.map