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.
- package/dist/index.full.js +79 -72
- package/dist/index.full.js.map +1 -1
- package/dist/index.full.min.js +1 -1
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +1 -1
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +79 -72
- package/dist/index.full.mjs.map +1 -1
- package/es/components/button/src/button.mjs.map +1 -1
- package/es/components/carNumber/src/carNumber.mjs +1 -1
- package/es/components/carNumber/src/carNumber.mjs.map +1 -1
- package/es/components/image/src/image.mjs +1 -1
- package/es/components/image/src/image.mjs.map +1 -1
- package/es/components/inputDialogPage/src/inputDialogPage.d.ts +2 -2
- package/es/components/inputDialogPage/src/inputDialogPage.mjs +1 -1
- package/es/components/inputDialogPage/src/inputDialogPage.mjs.map +1 -1
- package/es/components/layoutGrid/src/layoutGridItem.mjs.map +1 -1
- package/es/components/table/src/table.mjs +1 -1
- package/es/components/table/src/table.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/button/src/button.js.map +1 -1
- package/lib/components/carNumber/src/carNumber.js +1 -1
- package/lib/components/carNumber/src/carNumber.js.map +1 -1
- package/lib/components/image/src/image.js +1 -1
- package/lib/components/image/src/image.js.map +1 -1
- package/lib/components/inputDialogPage/src/inputDialogPage.d.ts +2 -2
- package/lib/components/inputDialogPage/src/inputDialogPage.js +1 -1
- package/lib/components/inputDialogPage/src/inputDialogPage.js.map +1 -1
- package/lib/components/layoutGrid/src/layoutGridItem.js.map +1 -1
- package/lib/components/table/src/table.js +1 -1
- package/lib/components/table/src/table.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- 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,
|
|
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
|
|
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
|
|
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
|
|
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{
|
|
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 {
|
|
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\";\
|
|
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
|