fast-element-plus 1.0.12 → 1.0.15
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 +4330 -4310
- 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 +4330 -4310
- package/dist/index.full.mjs.map +1 -1
- package/dist/styles/index.css +6 -6
- package/es/component.mjs +1 -1
- package/es/component.mjs.map +1 -1
- package/es/components/button/index.d.ts +1 -1
- package/es/components/button/index.mjs +1 -1
- package/es/components/button/index.mjs.map +1 -1
- package/es/components/carNumber/index.d.ts +1 -1
- package/es/components/carNumber/index.mjs +1 -1
- package/es/components/carNumber/index.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 +4 -3
- package/es/components/inputDialogPage/src/inputDialogPage.mjs +1 -1
- package/es/components/inputDialogPage/src/inputDialogPage.mjs.map +1 -1
- package/es/components/select/src/select.d.ts +1 -1
- package/es/components/select/src/select.mjs +1 -1
- package/es/components/select/src/select.mjs.map +1 -1
- package/es/components/selectPage/src/selectPage.d.ts +1 -1
- package/es/components/selectPage/src/selectPage.mjs +1 -1
- package/es/components/selectPage/src/selectPage.mjs.map +1 -1
- package/es/components/selectV2/src/selectV2.d.ts +2 -2
- package/es/components/selectV2/src/selectV2.mjs +1 -1
- package/es/components/selectV2/src/selectV2.mjs.map +1 -1
- package/es/components/table/src/table.d.ts +5 -5
- package/es/components/table/src/table.mjs +1 -1
- package/es/components/table/src/table.mjs.map +1 -1
- package/es/components/table/src/tableSearchFormItem.mjs +1 -1
- package/es/components/table/src/tableSearchFormItem.mjs.map +1 -1
- package/es/components/tree/src/tree.d.ts +3 -3
- package/es/components/tree/src/tree.mjs +1 -1
- package/es/components/tree/src/tree.mjs.map +1 -1
- package/es/components/treeSelect/src/treeSelect.d.ts +4 -4
- package/es/components/treeSelect/src/treeSelect.mjs +1 -1
- package/es/components/treeSelect/src/treeSelect.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/component.js +1 -1
- package/lib/component.js.map +1 -1
- package/lib/components/button/index.d.ts +1 -1
- package/lib/components/button/index.js +1 -1
- package/lib/components/button/index.js.map +1 -1
- package/lib/components/carNumber/index.d.ts +1 -1
- package/lib/components/carNumber/index.js +1 -1
- package/lib/components/carNumber/index.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 +4 -3
- package/lib/components/inputDialogPage/src/inputDialogPage.js +1 -1
- package/lib/components/inputDialogPage/src/inputDialogPage.js.map +1 -1
- package/lib/components/select/src/select.d.ts +1 -1
- package/lib/components/select/src/select.js +1 -1
- package/lib/components/select/src/select.js.map +1 -1
- package/lib/components/selectPage/src/selectPage.d.ts +1 -1
- package/lib/components/selectPage/src/selectPage.js +1 -1
- package/lib/components/selectPage/src/selectPage.js.map +1 -1
- package/lib/components/selectV2/src/selectV2.d.ts +2 -2
- package/lib/components/selectV2/src/selectV2.js +1 -1
- package/lib/components/selectV2/src/selectV2.js.map +1 -1
- package/lib/components/table/src/table.d.ts +5 -5
- package/lib/components/table/src/table.js +1 -1
- package/lib/components/table/src/table.js.map +1 -1
- package/lib/components/table/src/tableSearchFormItem.js +1 -1
- package/lib/components/table/src/tableSearchFormItem.js.map +1 -1
- package/lib/components/tree/src/tree.d.ts +3 -3
- package/lib/components/tree/src/tree.js +1 -1
- package/lib/components/tree/src/tree.js.map +1 -1
- package/lib/components/treeSelect/src/treeSelect.d.ts +4 -4
- package/lib/components/treeSelect/src/treeSelect.js +1 -1
- package/lib/components/treeSelect/src/treeSelect.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 +1 -1
- package/styles/components/table.scss +6 -6
package/dist/styles/index.css
CHANGED
|
@@ -664,22 +664,22 @@
|
|
|
664
664
|
display: inline-block;
|
|
665
665
|
}
|
|
666
666
|
.el-table .el-table__body-wrapper .el-table__body .fa-table__primary-row {
|
|
667
|
-
--el-table-tr-
|
|
667
|
+
--el-table-tr-bg-color: var(--el-color-primary-light-9);
|
|
668
668
|
}
|
|
669
669
|
.el-table .el-table__body-wrapper .el-table__body .fa-table__success-row {
|
|
670
|
-
--el-table-tr-
|
|
670
|
+
--el-table-tr-bg-color: var(--el-color-success-light-9);
|
|
671
671
|
}
|
|
672
672
|
.el-table .el-table__body-wrapper .el-table__body .fa-table__warning-row {
|
|
673
|
-
--el-table-tr-
|
|
673
|
+
--el-table-tr-bg-color: var(--el-color-warning-light-9);
|
|
674
674
|
}
|
|
675
675
|
.el-table .el-table__body-wrapper .el-table__body .fa-table__danger-row {
|
|
676
|
-
--el-table-tr-
|
|
676
|
+
--el-table-tr-bg-color: var(--el-color-danger-light-9);
|
|
677
677
|
}
|
|
678
678
|
.el-table .el-table__body-wrapper .el-table__body .fa-table__error-row {
|
|
679
|
-
--el-table-tr-
|
|
679
|
+
--el-table-tr-bg-color: var(--el-color-error-light-9);
|
|
680
680
|
}
|
|
681
681
|
.el-table .el-table__body-wrapper .el-table__body .fa-table__info-row {
|
|
682
|
-
--el-table-tr-
|
|
682
|
+
--el-table-tr-bg-color: var(--el-color-info-light-9);
|
|
683
683
|
}
|
|
684
684
|
.el-table .el-table__body-wrapper .el-table__body .el-table__row .el-table__cell:not(.fa-table__operation-column) .el-button.is-link {
|
|
685
685
|
--el-button-text-color: var(--el-text-color-regular);
|
package/es/component.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{FaAvatar as o}from"./components/avatar/index.mjs";import{FaButton as m}from"./components/button/index.mjs";import{FaCarNumber as n}from"./components/carNumber/index.mjs";import{FaContextMenu as e}from"./components/contextMenu/index.mjs";import{FaDialog as t}from"./components/dialog/index.mjs";import{FaDrawer as r}from"./components/drawer/index.mjs";import{FaForm as i,FaFormItem as
|
|
1
|
+
import{FaAvatar as o}from"./components/avatar/index.mjs";import{FaButton as m}from"./components/button/index.mjs";import{FaCarNumber as n}from"./components/carNumber/index.mjs";import{FaContextMenu as e}from"./components/contextMenu/index.mjs";import{FaDialog as t}from"./components/dialog/index.mjs";import{FaDrawer as r}from"./components/drawer/index.mjs";import{FaForm as i,FaFormItem as p}from"./components/form/index.mjs";import{FaFormItemTip as s}from"./components/formItemTip/index.mjs";import{FaIcon as c}from"./components/icon/index.mjs";import{FaIconSelector as d}from"./components/iconSelector/index.mjs";import{FaImage as f}from"./components/image/index.mjs";import{FaInputDialogPage as x}from"./components/inputDialogPage/index.mjs";import{FaLayoutGrid as j,FaLayoutGridItem as a}from"./components/layoutGrid/index.mjs";import{FaSelect as l,FaSelectOption as u}from"./components/select/index.mjs";import{FaSelectPage as g}from"./components/selectPage/index.mjs";import{FaSelectV2 as b}from"./components/selectV2/index.mjs";import{FaTable as I,FaTableColumn as P}from"./components/table/index.mjs";import{FaTree as S}from"./components/tree/index.mjs";import{FaTreeSelect as v}from"./components/treeSelect/index.mjs";import{FaUpload as w}from"./components/upload/index.mjs";import{FaUploadImage as y}from"./components/uploadImage/index.mjs";import{FaUploadImages as D}from"./components/uploadImages/index.mjs";const G=[o,m,n,e,t,r,i,p,s,c,d,f,x,j,a,l,u,g,b,I,P,S,v,w,y,D];export{G as default};
|
|
2
2
|
//# sourceMappingURL=component.mjs.map
|
package/es/component.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.mjs","sources":["../../packages/component.ts"],"sourcesContent":["import { FaAvatar } from \"@fast-element-plus/components/avatar\";\nimport { FaButton } from \"@fast-element-plus/components/button\";\nimport { FaCarNumber } from \"@fast-element-plus/components/carNumber\";\nimport { FaContextMenu } from \"@fast-element-plus/components/contextMenu\";\nimport { FaDialog } from \"@fast-element-plus/components/dialog\";\nimport { FaDrawer } from \"@fast-element-plus/components/drawer\";\nimport { FaForm, FaFormItem } from \"@fast-element-plus/components/form\";\nimport { FaFormItemTip } from \"@fast-element-plus/components/formItemTip\";\nimport { FaIcon } from \"@fast-element-plus/components/icon\";\nimport { FaIconSelector } from \"@fast-element-plus/components/iconSelector\";\nimport { FaImage } from \"@fast-element-plus/components/image\";\nimport { FaLayoutGrid, FaLayoutGridItem } from \"@fast-element-plus/components/layoutGrid\";\nimport { FaSelect, FaSelectOption } from \"@fast-element-plus/components/select\";\nimport { FaSelectPage } from \"@fast-element-plus/components/selectPage\";\nimport { FaSelectV2 } from \"@fast-element-plus/components/selectV2\";\nimport { FaTable, FaTableColumn } from \"@fast-element-plus/components/table\";\nimport { FaTree } from \"@fast-element-plus/components/tree\";\nimport { FaTreeSelect } from \"@fast-element-plus/components/treeSelect\";\nimport { FaUpload } from \"@fast-element-plus/components/upload\";\nimport { FaUploadImage } from \"@fast-element-plus/components/uploadImage\";\nimport { FaUploadImages } from \"@fast-element-plus/components/uploadImages\";\nimport type { Plugin } from \"vue\";\n\nexport default [\n\tFaAvatar,\n\tFaButton,\n\tFaCarNumber,\n\tFaContextMenu,\n\tFaDialog,\n\tFaDrawer,\n\tFaForm,\n\tFaFormItem,\n\tFaFormItemTip,\n\tFaIcon,\n\tFaIconSelector,\n\tFaImage,\n\tFaLayoutGrid,\n\tFaLayoutGridItem,\n\tFaSelect,\n\tFaSelectOption,\n\tFaSelectPage,\n\tFaSelectV2,\n\tFaTable,\n\tFaTableColumn,\n\tFaTree,\n\tFaTreeSelect,\n\tFaUpload,\n\tFaUploadImage,\n\tFaUploadImages,\n] as Plugin[];\n"],"names":["FastElementPlusComponents","FaAvatar","FaButton","FaCarNumber","FaContextMenu","FaDialog","FaDrawer","FaForm","FaFormItem","FaFormItemTip","FaIcon","FaIconSelector","FaImage","FaLayoutGrid","FaLayoutGridItem","FaSelect","FaSelectOption","FaSelectPage","FaSelectV2","FaTable","FaTableColumn","FaTree","FaTreeSelect","FaUpload","FaUploadImage","FaUploadImages"],"mappings":"
|
|
1
|
+
{"version":3,"file":"component.mjs","sources":["../../packages/component.ts"],"sourcesContent":["import { FaAvatar } from \"@fast-element-plus/components/avatar\";\nimport { FaButton } from \"@fast-element-plus/components/button\";\nimport { FaCarNumber } from \"@fast-element-plus/components/carNumber\";\nimport { FaContextMenu } from \"@fast-element-plus/components/contextMenu\";\nimport { FaDialog } from \"@fast-element-plus/components/dialog\";\nimport { FaDrawer } from \"@fast-element-plus/components/drawer\";\nimport { FaForm, FaFormItem } from \"@fast-element-plus/components/form\";\nimport { FaFormItemTip } from \"@fast-element-plus/components/formItemTip\";\nimport { FaIcon } from \"@fast-element-plus/components/icon\";\nimport { FaIconSelector } from \"@fast-element-plus/components/iconSelector\";\nimport { FaImage } from \"@fast-element-plus/components/image\";\nimport { FaInputDialogPage } from \"@fast-element-plus/components/inputDialogPage\";\nimport { FaLayoutGrid, FaLayoutGridItem } from \"@fast-element-plus/components/layoutGrid\";\nimport { FaSelect, FaSelectOption } from \"@fast-element-plus/components/select\";\nimport { FaSelectPage } from \"@fast-element-plus/components/selectPage\";\nimport { FaSelectV2 } from \"@fast-element-plus/components/selectV2\";\nimport { FaTable, FaTableColumn } from \"@fast-element-plus/components/table\";\nimport { FaTree } from \"@fast-element-plus/components/tree\";\nimport { FaTreeSelect } from \"@fast-element-plus/components/treeSelect\";\nimport { FaUpload } from \"@fast-element-plus/components/upload\";\nimport { FaUploadImage } from \"@fast-element-plus/components/uploadImage\";\nimport { FaUploadImages } from \"@fast-element-plus/components/uploadImages\";\nimport type { Plugin } from \"vue\";\n\nexport default [\n\tFaAvatar,\n\tFaButton,\n\tFaCarNumber,\n\tFaContextMenu,\n\tFaDialog,\n\tFaDrawer,\n\tFaForm,\n\tFaFormItem,\n\tFaFormItemTip,\n\tFaIcon,\n\tFaIconSelector,\n\tFaImage,\n\tFaInputDialogPage,\n\tFaLayoutGrid,\n\tFaLayoutGridItem,\n\tFaSelect,\n\tFaSelectOption,\n\tFaSelectPage,\n\tFaSelectV2,\n\tFaTable,\n\tFaTableColumn,\n\tFaTree,\n\tFaTreeSelect,\n\tFaUpload,\n\tFaUploadImage,\n\tFaUploadImages,\n] as Plugin[];\n"],"names":["FastElementPlusComponents","FaAvatar","FaButton","FaCarNumber","FaContextMenu","FaDialog","FaDrawer","FaForm","FaFormItem","FaFormItemTip","FaIcon","FaIconSelector","FaImage","FaInputDialogPage","FaLayoutGrid","FaLayoutGridItem","FaSelect","FaSelectOption","FaSelectPage","FaSelectV2","FaTable","FaTableColumn","FaTree","FaTreeSelect","FaUpload","FaUploadImage","FaUploadImages"],"mappings":"64CAwBA,MAAAA,EAAe,CACdC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC"}
|
|
@@ -4,7 +4,7 @@ import type { faButtonEmits, faButtonProps } from "./src/button";
|
|
|
4
4
|
import type { ExtractPropTypes } from "vue";
|
|
5
5
|
|
|
6
6
|
export declare const FaButton: TSXWithInstall<typeof Button>;
|
|
7
|
-
export default
|
|
7
|
+
export default FaButton;
|
|
8
8
|
|
|
9
9
|
export { faButtonProps, faButtonEmits };
|
|
10
10
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{withInstall as t}from"@fast-china/utils";import o from"./src/button.mjs";import{faButtonEmits as r,faButtonProps as m}from"./src/button.mjs";const s=t(o);export{s as FaButton,
|
|
1
|
+
import{withInstall as t}from"@fast-china/utils";import o from"./src/button.mjs";import{faButtonEmits as r,faButtonProps as m}from"./src/button.mjs";const s=t(o);export{s as FaButton,s as default,r as faButtonEmits,m as faButtonProps};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../packages/components/button/index.ts"],"sourcesContent":["import { withInstall } from \"@fast-china/utils\";\nimport Button, { faButtonEmits, faButtonProps } from \"./src/button\";\nimport type { ExtractPropTypes } from \"vue\";\n\nexport const FaButton = withInstall(Button);\nexport default
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../packages/components/button/index.ts"],"sourcesContent":["import { withInstall } from \"@fast-china/utils\";\nimport Button, { faButtonEmits, faButtonProps } from \"./src/button\";\nimport type { ExtractPropTypes } from \"vue\";\n\nexport const FaButton = withInstall(Button);\nexport default FaButton;\n\nexport { faButtonProps, faButtonEmits };\n\nexport type FaButtonInstance = InstanceType<typeof Button>;\n\nexport type FaButtonProps = ExtractPropTypes<typeof faButtonProps>;\n\nexport type FaButtonEmits = typeof faButtonEmits;\n"],"names":["FaButton","withInstall","Button"],"mappings":"oJAIO,MAAMA,EAAWC,EAAYC"}
|
|
@@ -2,7 +2,7 @@ import { TSXWithInstall } from "@fast-china/utils";
|
|
|
2
2
|
import { default as CarNumber } from "./src/carNumber";
|
|
3
3
|
|
|
4
4
|
export declare const FaCarNumber: TSXWithInstall<typeof CarNumber>;
|
|
5
|
-
export default
|
|
5
|
+
export default FaCarNumber;
|
|
6
6
|
|
|
7
7
|
export * from "./src/common";
|
|
8
8
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{withInstall as m}from"@fast-china/utils";import r from"./src/carNumber.mjs";import{CarNumberArea as o,CarNumberDigit as s,CarNumberLetter as t}from"./src/common.mjs";const c=m(r);export{o as CarNumberArea,s as CarNumberDigit,t as CarNumberLetter,c as FaCarNumber,
|
|
1
|
+
import{withInstall as m}from"@fast-china/utils";import r from"./src/carNumber.mjs";import{CarNumberArea as o,CarNumberDigit as s,CarNumberLetter as t}from"./src/common.mjs";const c=m(r);export{o as CarNumberArea,s as CarNumberDigit,t as CarNumberLetter,c as FaCarNumber,c as default};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../packages/components/carNumber/index.ts"],"sourcesContent":["import { withInstall } from \"@fast-china/utils\";\nimport CarNumber from \"./src/carNumber\";\n\nexport const FaCarNumber = withInstall(CarNumber);\nexport default
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../packages/components/carNumber/index.ts"],"sourcesContent":["import { withInstall } from \"@fast-china/utils\";\nimport CarNumber from \"./src/carNumber\";\n\nexport const FaCarNumber = withInstall(CarNumber);\nexport default FaCarNumber;\n\nexport * from \"./src/common\";\n\nexport type FaCarNumberInstance = InstanceType<typeof CarNumber>;\n"],"names":["FaCarNumber","withInstall","CarNumber"],"mappings":"6KAGO,MAAMA,EAAcC,EAAYC"}
|
|
@@ -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
|
|
1
|
+
import{isVNode as e,defineComponent as l,reactive as a,computed as t,ref as r,inject as o,createVNode as u,Fragment as n,createTextVNode as i,mergeProps as p}from"vue";import{formContextKey as s,formItemContextKey as d,ElMessage as c,inputProps as m,ElPopover as v,ElButton as _,ElInput as f}from"element-plus";import{Back as b}from"@element-plus/icons-vue";import"../../../constants/index.mjs";import{useProps as h,useRender as g}from"@fast-china/utils";import{isString as y,isNull as C}from"lodash-unified";import{CarNumberArea as k,CarNumberDigit as w,CarNumberLetter as j}from"./common.mjs";import{useVModel as V}from"@vueuse/core";import{RegExps as x}from"../../../constants/regex.mjs";function B(l){return"function"==typeof l||"[object Object]"===Object.prototype.toString.call(l)&&!e(l)}const F=/* @__PURE__ */l({name:"FaCarNumber",props:{...m,modelValue:{type:String,default:void 0},placeholder:{type:String,default:"请选择"}},emits:{"update:modelValue":e=>y(e)||C(e),change:e=>y(e)||C(e)},setup(e,{attrs:l,slots:y,emit:C,expose:F}){const N=V(e,"modelValue",C,{passive:!0}),A=a({switchLetter:t(()=>N.value?.length>=1),disabledButton:t(()=>N.value?.length>=8)}),L=r(),S=o(s,void 0),$=o(d,void 0),O=e=>2===e.length?`${e} ● `:e.length>2?`${e.slice(0,2)} ● ${e.slice(2)}`:e,E=e=>{N.value??="",N.value+=e},U=()=>{0!==N.value?.length&&(N.value=N.value.substring(0,N.value.length-1))},q=()=>{let e=!1;7===N.value.length?e=x.CarNumber.test(N.value):8===N.value.length&&(e=x.NewEnergyCarNumber.test(N.value)),e?(C("change",N.value),$?.prop&&S?.validateField([$.prop])):$?.prop&&S?(C("change",N.value),S.validateField([$.prop])):c.error("车牌号格式不正确"),L.value?.hide()},z=()=>{N.value=null,C("change",null),$?.prop&&S?.validateField([$.prop])},D=h(e,m,["modelValue","readonly","formatter"]);g(()=>u(v,{ref:L,width:"auto",popperClass:"fa-car-number__popover",trigger:"click",showArrow:!1,showAfter:0,hideAfter:0},{reference:()=>u(f,p(D.value,{class:"fa-car-number__input",modelValue:N.value,"onUpdate:modelValue":e=>N.value=e,readonly:!0,formatter:O}),null),default:()=>u(n,null,[u("div",{class:["fa-car-number__popover__area",A.switchLetter?"fa-car-number__popover__hide":""]},[k.map(e=>u(_,{disabled:A.disabledButton,onClick:()=>E(e)},B(e)?e:{default:()=>[e]}))]),u("div",{class:["fa-car-number__popover__digit-letter",A.switchLetter?"":"fa-car-number__popover__hide"]},[w.map(e=>u(_,{disabled:A.disabledButton,onClick:()=>E(e)},B(e)?e:{default:()=>[e]})),j.map(e=>u(_,{disabled:A.disabledButton,onClick:()=>E(e)},B(e)?e:{default:()=>[e]}))]),u("div",{class:"fa-car-number__popover__btn"},[u(_,{class:"fa-car-number__popover__btn__clear",disabled:null===N.value||0===N.value.length,onClick:z},{default:()=>[i("清除")]}),u(_,{class:"fa-car-number__popover__btn__back",type:"danger",icon:b,disabled:null===N.value||0===N.value.length,onClick:U},null),u(_,{class:"fa-car-number__popover__btn__confirm",type:"primary",disabled:null===N.value||N.value.length<7,onClick:q},{default:()=>[i("确认")]})])])}))}});export{F as default};
|
|
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);\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","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 { 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":"mrBAQyC,SAAAA,EAAAC,GAAA,MAAA,mBAAAA,GAAA,oBAAAC,OAAAC,UAAAC,SAAAC,KAAAJ,KAAAK,EAAAL,EAAA,CAEzC,MAAAM,mBAA+B,CAC9BC,KAAM,cACNC,MAAO,IACHC,EAEHC,WAAY,CACXC,KAAMC,OACNC,aAASC,GAGVC,YAAa,CACZJ,KAAMC,OACNC,QAAS,QAGXG,MAAO,CAEN,oBAAsBC,GAAkBC,EAASD,IAAUE,EAAOF,GAElEG,OAASH,GAAkBC,EAASD,IAAUE,EAAOF,IAEtDI,KAAAA,CAAMb,GAAOc,MAAEA,EAAAA,MAAOC,EAAAA,KAAOC,EAAAA,OAAMC,IAClC,MAAMf,EAAagB,EAAUlB,EAAO,aAAcgB,EAAM,CAAEG,SAAS,IAE7DC,EAAQC,EAAS,CACtBC,aAAcC,EAAS,IAClBrB,EAAWO,OAAOe,QAAU,GAKjCC,eAAgBF,EAAS,IACpBrB,EAAWO,OAAOe,QAAU,KAO5BE,EAAaC,IAEbC,EAAcC,EAAOC,OAAgBxB,GAErCyB,EAAkBF,EAAOG,OAAoB1B,GAE7C2B,EAAwBxB,GACR,IAAjBA,EAAMe,OACF,GAAGf,OACAA,EAAMe,OAAS,EAClB,GAAGf,EAAMyB,MAAM,EAAG,QAAQzB,EAAMyB,MAAM,KAEtCzB,EAIH0B,EAAyB1B,IAC9BP,EAAWO,QAAU,GACrBP,EAAWO,OAASA,GAGf2B,EAAkBA,KACU,IAA7BlC,EAAWO,OAAOe,SACtBtB,EAAWO,MAAQP,EAAWO,MAAM4B,UAAU,EAAGnC,EAAWO,MAAMe,OAAS,KAGtEc,EAAqBA,KAC1B,IAAIC,GAAU,EACkB,IAA5BrC,EAAWO,MAAMe,OACpBe,EAAUC,EAAQ1C,UAAU2C,KAAKvC,EAAWO,OACN,IAA5BP,EAAWO,MAAMe,SAC3Be,EAAUC,EAAQE,mBAAmBD,KAAKvC,EAAWO,QAElD8B,GACHvB,EAAK,SAAUd,EAAWO,OAE1BsB,GAAiBY,MAAQf,GAAagB,cAAc,CAACb,EAAgBY,QAEjEZ,GAAiBY,MAAQf,GAC5BZ,EAAK,SAAUd,EAAWO,OAE1BmB,EAAYgB,cAAc,CAACb,EAAgBY,QAE3CE,EAAUC,MAAM,YAGlBpB,EAAWjB,OAAOsC,QAGbC,EAAmBA,KACxB9C,EAAWO,MAAQ,KACnBO,EAAK,SAAU,MAEfe,GAAiBY,MAAQf,GAAagB,cAAc,CAACb,EAAgBY,QAGhEM,EAAeC,EAASlD,EAAOC,EAAY,CAAC,aAAc,WAAY,cAE5EkD,EAAU,IAAAC,EAAAC,EAAA,CAAA1B,IAEHD,EAAU4B,MAAA,OAAAC,YAAA,yBAAAC,QAAA,QAAAC,WAIJ,EAAKC,UACL,EAACC,UACD,GAAC,CAGXC,UAAWA,IAAAR,EAAAS,EAAAC,EAELb,EAAaxC,MAAK,CAAAsD,MAAA,uBAAA7D,WAEdA,EAAWO,MAAK,sBAAAuD,GAAhB9D,EAAWO,MAAKuD,EAAAC,UAAA,EAAAC,UAEbjC,IAAoB,MAGjC5B,QAASA,IAAA+C,EAAAe,QAAAf,EAAA,MAAA,CAAAW,MAEK,CAAC,+BAAgC3C,EAAME,aAAe,+BAAiC,KAAG,CACpG8C,EAAcC,IAAKC,GAAIlB,EAAAmB,EAAA,CAAAC,SACHpD,EAAMK,eAAcgD,QAAWA,IAAMtC,EAAsBmC,IAAK/E,EAClF+E,GAAAA,EAAI,CAAAjE,QAAAA,IAAA,CAAJiE,QAEDlB,EAAA,MAAA,CAAAW,MAES,CAAC,uCAAwC3C,EAAME,aAAe,GAAK,iCAA+B,CAC5GoD,EAAeL,IAAKM,GAAKvB,EAAAmB,EAAA,CAAAC,SACLpD,EAAMK,eAAcgD,QAAWA,IAAMtC,EAAsBwC,IAAMpF,EACnFoF,GAAAA,EAAK,CAAAtE,QAAAA,IAAA,CAALsE,MAGFC,EAAgBP,IAAKQ,GAAMzB,EAAAmB,EAAA,CAAAC,SACPpD,EAAMK,eAAcgD,QAAWA,IAAMtC,EAAsB0C,IAAOtF,EACpFsF,GAAAA,EAAM,CAAAxE,QAAAA,IAAA,CAANwE,QAEDzB,EAAA,MAAA,CAAAW,MAAA,+BAAA,CAAAX,EAAAmB,EAAA,CAAAR,MAAA,qCAAAS,SAK8B,OAArBtE,EAAWO,OAA8C,IAA5BP,EAAWO,MAAMe,OAAYiD,QAC3DzB,GAAgB,CAAA3C,QAAAA,IAAA,CAAAyE,EAAA,SAAA1B,EAAAmB,EAAA,CAAAR,MAAA,oCAAA5D,KAAA,SAAA4E,KAOnBC,EAAIR,SACqB,OAArBtE,EAAWO,OAA8C,IAA5BP,EAAWO,MAAMe,OAAYiD,QAC3DrC,GAAe,MAAAgB,EAAAmB,EAAA,CAAAR,MAAA,uCAAA5D,KAAA,UAAAqE,SAKO,OAArBtE,EAAWO,OAAkBP,EAAWO,MAAMe,OAAS,EAACiD,QACzDnC,GAAkB,CAAAjC,QAAAA,IAAA,CAAAyE,EAAA,eAUnC"}
|
|
@@ -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,6 +1,7 @@
|
|
|
1
1
|
import { TableProps } from 'element-plus';
|
|
2
2
|
import { PropType } from 'vue';
|
|
3
3
|
import { PagedInput, PagedResult } from '../../table';
|
|
4
|
+
import { ElSelectorOutput } from '../../select/src/select.type';
|
|
4
5
|
export declare const faInputDialogPageProps: {
|
|
5
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 */
|
|
6
7
|
rowKey: {
|
|
@@ -38,7 +39,7 @@ export declare const faInputDialogPageEmits: {
|
|
|
38
39
|
/** @description v-model:label 回调 */
|
|
39
40
|
"update:label": (value: string) => boolean;
|
|
40
41
|
/** @description 改变 */
|
|
41
|
-
change: (
|
|
42
|
+
change: (data: ElSelectorOutput | ElSelectorOutput[] | any | any[], value?: string | number | boolean | object | (string | number | boolean | object)[]) => boolean;
|
|
42
43
|
};
|
|
43
44
|
type FaInputDialogPageSlots = {
|
|
44
45
|
/** @description 默认内容插槽 */
|
|
@@ -87,7 +88,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
87
88
|
/** @description v-model:label 回调 */
|
|
88
89
|
"update:label": (value: string) => boolean;
|
|
89
90
|
/** @description 改变 */
|
|
90
|
-
change: (
|
|
91
|
+
change: (data: ElSelectorOutput | ElSelectorOutput[] | any | any[], value?: string | number | boolean | object | (string | number | boolean | object)[]) => boolean;
|
|
91
92
|
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
92
93
|
/** @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 */
|
|
93
94
|
rowKey: {
|
|
@@ -120,7 +121,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
120
121
|
};
|
|
121
122
|
}>> & Readonly<{
|
|
122
123
|
"onUpdate:modelValue"?: (value: string | number) => any;
|
|
123
|
-
onChange?: (
|
|
124
|
+
onChange?: (data: any, value?: string | number | boolean | object | (string | number | boolean | object)[]) => any;
|
|
124
125
|
"onUpdate:label"?: (value: string) => any;
|
|
125
126
|
}>, {
|
|
126
127
|
disabled: boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineComponent as e,reactive as l,ref as
|
|
1
|
+
import{defineComponent as e,reactive as l,ref as o,createVNode as t,computed as i}from"vue";import{ElInput as a,ElButtonGroup as n,ElButton as u}from"element-plus";import{Delete as s,Search as r}from"@element-plus/icons-vue";import{definePropType as d,withDefineType as c,useRender as m,useExpose as p,makeSlots as f}from"@fast-china/utils";import{isString as v,isNull as g,isNumber as w,isFunction as b}from"lodash-unified";import{FaTable as y}from"../../table/index.mjs";import{useVModel as h}from"@vueuse/core";import{FaDialog as S}from"../../dialog/index.mjs";const K={rowKey:{type:[String,Function],default:"id"},modelValue:[String,Number],label:String,placeholder:{type:String,default:"请选择"},disabled:Boolean,title:String,requestApi:{type:d(Function)},initParam:d([String,Number,Object]),labelKey:{type:String,default:"name"}},R={"update:modelValue":e=>v(e)||w(e)||g(e),"update:label":e=>v(e)||g(e),change:(e,l)=>!0},C=/* @__PURE__ */e({name:"FaInputDialogPage",props:K,emits:R,slots:f(),setup(e,{attrs:d,slots:f,emit:v,expose:g}){const w=h(e,"modelValue",v,{passive:!0}),K=h(e,"label",v,{passive:!0}),R=l({selectionRow:c()}),C=o(),k=o(),V=()=>{w.value=null,K.value=null,v("change",null)},x=()=>{C.value.open(()=>{if(R.selectionRow){k.value.selectedListIds.includes(b(e.rowKey)?e.rowKey(R.selectionRow):R.selectionRow[e.rowKey])||k.value.toggleRowSelection(R.selectionRow)}})},P=()=>{C.value.close(()=>{if(k.value.selected){const l=k.value.selectedList[0];w.value=b(e.rowKey)?e.rowKey(l):l[e.rowKey],K.value=l[e.labelKey],v("change",l,w.value)}else w.value=null,K.value=null,v("change",null,null)})},j=e=>{k.value.clearSelection(),k.value.toggleRowSelection(e),R.selectionRow=e,P()};return m(()=>t("div",{class:"fa-input-dialog-page"},[t(a,{modelValue:K.value,"onUpdate:modelValue":e=>K.value=e,placeholder:e.placeholder,disabled:e.disabled,readonly:!0},{append:()=>t(n,null,{default:()=>[t(u,{disabled:e.disabled,icon:s,onClick:V},null),t(u,{disabled:e.disabled,icon:r,onClick:x},null)]})}),t(S,{ref:C,style:"--height: 70%;",width:"50%",title:e.title,fullHeight:!0,disabledConfirmButton:!k.value?.selected,onConfirmClick:P},{default:()=>[t(y,{ref:k,rowKey:e.rowKey,requestApi:e.requestApi,initParam:e.initParam,single:!0,rowClickSelection:!0,hideSearchTime:!0,onRowDblclick:j},{default:()=>f.default&&f.default()})]})])),p(g,{selectionRow:i(()=>R.selectionRow),open:x,clear:V})}});export{C as default,R as faInputDialogPageEmits,K as faInputDialogPageProps};
|
|
2
2
|
//# sourceMappingURL=inputDialogPage.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputDialogPage.mjs","sources":["../../../../../packages/components/inputDialogPage/src/inputDialogPage.tsx"],"sourcesContent":["import { computed, defineComponent, reactive, ref } from \"vue\";\nimport { ElButton, ElButtonGroup, ElInput } from \"element-plus\";\nimport { Delete, Search } from \"@element-plus/icons-vue\";\nimport { definePropType, makeSlots, useExpose, useRender, withDefineType } from \"@fast-china/utils\";\nimport { isFunction, isNull, isNumber, isString } from \"lodash-unified\";\nimport type { TableProps } from \"element-plus\";\nimport type { PropType } from \"vue\";\nimport { FaTable, type FaTableInstance, type PagedInput, type PagedResult } from \"@fast-element-plus/components/table\";\nimport { useVModel } from \"@vueuse/core\";\nimport FaDialog, { FaDialogInstance } from \"@fast-element-plus/components/dialog\";\n\nexport const faInputDialogPageProps = {\n\t/** @description key of row data, used for optimizing rendering. Required if `reserve-selection` is on or display tree data. When its type is String, multi-level access is supported, e.g. `user.info.id`, but `user.info[0].id` is not supported, in which case `Function` should be used */\n\trowKey: {\n\t\ttype: [String, Function] as PropType<TableProps<any>[\"rowKey\"]>,\n\t\tdefault: \"id\",\n\t},\n\t/** @description v-model绑定值 */\n\tmodelValue: [String, Number],\n\t/** @description v-model:label绑定值 */\n\tlabel: String,\n\t/** @description 输入框占位文本 */\n\tplaceholder: {\n\t\ttype: String,\n\t\tdefault: \"请选择\",\n\t},\n\t/** @description 禁用 */\n\tdisabled: Boolean,\n\t/** @description 标题 */\n\ttitle: String,\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: PagedInput) => Promise<PagedResult | any[]>>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | any>([String, Number, Object]),\n\t/** @description 显示文本 Key */\n\tlabelKey: {\n\t\ttype: String,\n\t\tdefault: \"name\",\n\t},\n};\n\nexport const faInputDialogPageEmits = {\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: string | number) => isString(value) || isNumber(value) || isNull(value),\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string) => isString(value) || isNull(value),\n\t/** @description 改变 */\n\tchange: (
|
|
1
|
+
{"version":3,"file":"inputDialogPage.mjs","sources":["../../../../../packages/components/inputDialogPage/src/inputDialogPage.tsx"],"sourcesContent":["import { computed, defineComponent, reactive, ref } from \"vue\";\nimport { ElButton, ElButtonGroup, ElInput } from \"element-plus\";\nimport { Delete, Search } from \"@element-plus/icons-vue\";\nimport { definePropType, makeSlots, useExpose, useRender, withDefineType } from \"@fast-china/utils\";\nimport { isFunction, isNull, isNumber, isString } from \"lodash-unified\";\nimport type { TableProps } from \"element-plus\";\nimport type { PropType } from \"vue\";\nimport { FaTable, type FaTableInstance, type PagedInput, type PagedResult } from \"@fast-element-plus/components/table\";\nimport { useVModel } from \"@vueuse/core\";\nimport FaDialog, { FaDialogInstance } from \"@fast-element-plus/components/dialog\";\nimport { ElSelectorOutput } from \"@fast-element-plus/components/select/src/select.type\";\n\nexport const faInputDialogPageProps = {\n\t/** @description key of row data, used for optimizing rendering. Required if `reserve-selection` is on or display tree data. When its type is String, multi-level access is supported, e.g. `user.info.id`, but `user.info[0].id` is not supported, in which case `Function` should be used */\n\trowKey: {\n\t\ttype: [String, Function] as PropType<TableProps<any>[\"rowKey\"]>,\n\t\tdefault: \"id\",\n\t},\n\t/** @description v-model绑定值 */\n\tmodelValue: [String, Number],\n\t/** @description v-model:label绑定值 */\n\tlabel: String,\n\t/** @description 输入框占位文本 */\n\tplaceholder: {\n\t\ttype: String,\n\t\tdefault: \"请选择\",\n\t},\n\t/** @description 禁用 */\n\tdisabled: Boolean,\n\t/** @description 标题 */\n\ttitle: String,\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: PagedInput) => Promise<PagedResult | any[]>>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | any>([String, Number, Object]),\n\t/** @description 显示文本 Key */\n\tlabelKey: {\n\t\ttype: String,\n\t\tdefault: \"name\",\n\t},\n};\n\nexport const faInputDialogPageEmits = {\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: string | number) => isString(value) || isNumber(value) || isNull(value),\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string) => isString(value) || isNull(value),\n\t/** @description 改变 */\n\tchange: (\n\t\tdata: ElSelectorOutput | ElSelectorOutput[] | any | any[],\n\t\tvalue?: string | number | boolean | object | (string | number | boolean | object)[]\n\t): boolean => true,\n};\n\ntype FaInputDialogPageSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: never;\n};\n\nexport default defineComponent({\n\tname: \"FaInputDialogPage\",\n\tprops: faInputDialogPageProps,\n\temits: faInputDialogPageEmits,\n\tslots: makeSlots<FaInputDialogPageSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst modelValue = useVModel(props, \"modelValue\", emit, { passive: true });\n\t\tconst selectedLabel = useVModel(props, \"label\", emit, { passive: true });\n\n\t\tconst state = reactive({\n\t\t\tselectionRow: withDefineType<unknown>(),\n\t\t});\n\n\t\tconst faDialogRef = ref<FaDialogInstance>();\n\t\tconst faTableRef = ref<FaTableInstance>();\n\n\t\tconst handleDeleteClick = (): void => {\n\t\t\tmodelValue.value = null;\n\t\t\tselectedLabel.value = null;\n\t\t\temit(\"change\", null);\n\t\t};\n\n\t\tconst handleSearchClick = (): void => {\n\t\t\tfaDialogRef.value.open(() => {\n\t\t\t\tif (state.selectionRow) {\n\t\t\t\t\t// 判断当前行是否选中\n\t\t\t\t\tconst rowSelected = faTableRef.value.selectedListIds.includes(\n\t\t\t\t\t\tisFunction(props.rowKey) ? props.rowKey(state.selectionRow) : state.selectionRow[props.rowKey]\n\t\t\t\t\t);\n\t\t\t\t\tif (!rowSelected) {\n\t\t\t\t\t\tfaTableRef.value.toggleRowSelection(state.selectionRow);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tfaDialogRef.value.close(() => {\n\t\t\t\tif (faTableRef.value.selected) {\n\t\t\t\t\tconst selectedData = faTableRef.value.selectedList[0];\n\t\t\t\t\tmodelValue.value = isFunction(props.rowKey) ? props.rowKey(selectedData) : selectedData[props.rowKey];\n\t\t\t\t\tselectedLabel.value = selectedData[props.labelKey];\n\t\t\t\t\temit(\"change\", selectedData, modelValue.value);\n\t\t\t\t} else {\n\t\t\t\t\tmodelValue.value = null;\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\temit(\"change\", null, null);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\tconst handleTableRowDblclick = (row: any): void => {\n\t\t\tfaTableRef.value.clearSelection();\n\t\t\tfaTableRef.value.toggleRowSelection(row);\n\t\t\tstate.selectionRow = row;\n\t\t\thandleConfirmClick();\n\t\t};\n\n\t\tuseRender(() => (\n\t\t\t<div class=\"fa-input-dialog-page\">\n\t\t\t\t<ElInput vModel={selectedLabel.value} placeholder={props.placeholder} disabled={props.disabled} readonly>\n\t\t\t\t\t{{\n\t\t\t\t\t\tappend: () => (\n\t\t\t\t\t\t\t<ElButtonGroup>\n\t\t\t\t\t\t\t\t<ElButton disabled={props.disabled} icon={Delete} onClick={handleDeleteClick} />\n\t\t\t\t\t\t\t\t<ElButton disabled={props.disabled} icon={Search} onClick={handleSearchClick} />\n\t\t\t\t\t\t\t</ElButtonGroup>\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t</ElInput>\n\t\t\t\t<FaDialog\n\t\t\t\t\tref={faDialogRef}\n\t\t\t\t\tstyle=\"--height: 70%;\"\n\t\t\t\t\twidth=\"50%\"\n\t\t\t\t\ttitle={props.title}\n\t\t\t\t\tfullHeight\n\t\t\t\t\tdisabledConfirmButton={!faTableRef.value?.selected}\n\t\t\t\t\tonConfirmClick={handleConfirmClick}\n\t\t\t\t>\n\t\t\t\t\t<FaTable\n\t\t\t\t\t\tref={faTableRef}\n\t\t\t\t\t\trowKey={props.rowKey}\n\t\t\t\t\t\trequestApi={props.requestApi}\n\t\t\t\t\t\tinitParam={props.initParam}\n\t\t\t\t\t\tsingle\n\t\t\t\t\t\trowClickSelection\n\t\t\t\t\t\thideSearchTime\n\t\t\t\t\t\tonRowDblclick={handleTableRowDblclick}\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tdefault: () => slots.default && slots.default(),\n\t\t\t\t\t\t}}\n\t\t\t\t\t</FaTable>\n\t\t\t\t</FaDialog>\n\t\t\t</div>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 选择行数据 */\n\t\t\tselectionRow: computed(() => state.selectionRow),\n\t\t\t/** @description 打开选择器弹窗 */\n\t\t\topen: handleSearchClick,\n\t\t\t/** @description 清除选择 */\n\t\t\tclear: handleDeleteClick,\n\t\t});\n\t},\n});\n"],"names":["faInputDialogPageProps","rowKey","type","String","Function","default","modelValue","Number","label","placeholder","disabled","Boolean","title","requestApi","definePropType","initParam","Object","labelKey","faInputDialogPageEmits","isString","value","isNumber","isNull","change","data","InputDialogPage","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","useVModel","passive","selectedLabel","state","reactive","selectionRow","withDefineType","faDialogRef","ref","faTableRef","handleDeleteClick","handleSearchClick","open","selectedListIds","includes","isFunction","toggleRowSelection","handleConfirmClick","close","selected","selectedData","selectedList","handleTableRowDblclick","row","clearSelection","useRender","_createVNode","class","ElInput","$event","readonly","append","ElButtonGroup","ElButton","icon","Delete","onClick","Search","FaDialog","style","width","fullHeight","disabledConfirmButton","onConfirmClick","FaTable","single","rowClickSelection","hideSearchTime","onRowDblclick","useExpose","computed","clear"],"mappings":"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"}
|
|
@@ -1180,6 +1180,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
1180
1180
|
width: string | number;
|
|
1181
1181
|
persistent: boolean;
|
|
1182
1182
|
fallbackPlacements: Placement[];
|
|
1183
|
+
filterable: boolean;
|
|
1183
1184
|
moreDetail: boolean;
|
|
1184
1185
|
loadingText: string;
|
|
1185
1186
|
noMatchText: string;
|
|
@@ -1189,7 +1190,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
1189
1190
|
defaultSelected: boolean;
|
|
1190
1191
|
valueOnClear: import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | ((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null))[], unknown, unknown>;
|
|
1191
1192
|
automaticDropdown: boolean;
|
|
1192
|
-
filterable: boolean;
|
|
1193
1193
|
allowCreate: boolean;
|
|
1194
1194
|
remote: boolean;
|
|
1195
1195
|
multiple: boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineComponent as e,reactive as l,ref as a,watch as t,onMounted as o,computed as i,createVNode as r,mergeProps as n}from"vue";import{useAriaProps as u,useEmptyValuesProps as d,tagProps as p,useTooltipContentProps as s,useSizeProp as c,selectEmits as f,useGlobalSize as m,ElSelect as b}from"element-plus";import{ArrowDown as g,CircleClose as h}from"@element-plus/icons-vue";import{definePropType as y,withDefineType as v,consoleError as S,useProps as B,useEmits as D,useRender as x,addUnit as V,useExpose as w,makeSlots as A}from"@fast-china/utils";import{useVModel as T}from"@vueuse/core";import{isArray as C,isString as F,isNull as O,isNumber as j,isBoolean as L,isObject as N,isFunction as q,isNil as z,isEqual as M}from"lodash-unified";import P from"./selectOption.mjs";const R={name:String,id:String,modelValue:{type:[Array,String,Number,Boolean,Object],default:void 0},autocomplete:{type:String,default:"off"},automaticDropdown:Boolean,size:c,effect:{type:y(String),default:"light"},disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:{type:String,default:""},popperOptions:{type:y(Object),default:()=>({})},remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod:Function,multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String},defaultFirstOption:Boolean,reserveKeyword:{type:Boolean,default:!0},valueKey:{type:String,default:"value"},collapseTags:Boolean,collapseTagsTooltip:Boolean,maxCollapseTags:{type:Number,default:1},teleported:s.teleported,persistent:{type:Boolean,default:!0},clearIcon:{type:y([String,Object,Function]),default:h},fitInputWidth:Boolean,suffixIcon:{type:y([String,Object,Function]),default:g},tagType:{...p.type,default:"info"},tagEffect:{...p.effect,default:"light"},validateEvent:{type:Boolean,default:!0},remoteShowSuffix:Boolean,placement:{type:y(String),default:"bottom-start"},fallbackPlacements:{type:y(Array),default:["bottom-start","top-start","right","left"]},...d,...u(["ariaLabel"])},_={...R,disabled:{type:Boolean,default:void 0},loadingText:{type:String,default:"加载中..."},noMatchText:{type:String,default:"暂无匹配的数据"},noDataText:{type:String,default:"暂无数据"},collapseTags:{type:Boolean,default:!0},collapseTagsTooltip:{type:Boolean,default:!0},modelValue:{type:y([String,Number,Boolean,Object,Array]),default:void 0},label:y([String,Array]),width:{type:[String,Number],default:"100%"},moreDetail:Boolean,lazy:{type:Boolean,default:!0},defaultSelected:Boolean,props:{type:y(Object),default:()=>({label:"label",hide:"hide",disabled:"disabled",children:"children"})},data:{type:y(Array),default:()=>[]},requestApi:{type:y(Function)},initParam:y([String,Number,Object])},k={...f,"update:modelValue":e=>F(e)||j(e)||L(e)||N(e)||C(e)||O(e),"update:label":e=>F(e)||C(e)||O(e),dataChangeCallBack:e=>C(e),change:(e,l)=>!0},I=/* @__PURE__ */e({name:"FaSelect",props:_,emits:k,slots:A(),setup(e,{attrs:u,slots:d,emit:p,expose:s}){const c=T(e,"label",p),g=m(),h=l({value:v(),loading:!1,selectorData:v([]),debut:!0,echo:!(e.data?.length>0),nextRefresh:!1}),y=a(),A=l=>l?.map(l=>({...l,value:l[e.valueKey],label:q(e.props.label)?e.props.label(l):l[e.props.label??"label"],hide:q(e.props.hide)?e.props.hide(l):l[e.props.hide??"hide"],disabled:q(e.props.disabled)?e.props.disabled(l):l[e.props.disabled??"disabled"],children:q(e.props.children)?A(e.props.children(l)):A(l[e.props.children??"children"])})).filter(e=>!e.hide),F=async()=>{if(e.requestApi){h.loading=!0;const a=e.initParam??{};try{const l=await e.requestApi(a);h.echo=!1,h.selectorData=A(l),p("dataChangeCallBack",h.selectorData)}catch(l){S("FaSelect",l),h.selectorData=[]}finally{h.loading=!1}}else h.echo=!1,h.selectorData=A(e.data)},O=l=>{if(e.multiple){const e=l;if(0===e?.length)return h.value=null,c.value=null,p("update:modelValue",null),void p("change",null,null);const a=h.selectorData.filter(l=>e.includes(l.value));h.value=l,c.value=a.map(e=>e.label),p("update:modelValue",l),p("change",a,l)}else{if(z(l))return h.value=null,c.value=null,p("update:modelValue",null),void p("change",null,null);const e=h.selectorData.find(e=>e.value===l);h.value=l,c.value=e.label,p("update:modelValue",l),p("change",e,l)}},j=()=>{h.value=null,c.value=null,p("update:modelValue",null),p("clear")},L=async l=>{l&&(h.debut?(h.debut=!1,!e.defaultSelected&&e.lazy&&await F()):h.nextRefresh&&(h.nextRefresh=!1,await F())),p("visible-change",l)};t(()=>e.modelValue,l=>{if(h.echo&&!z(l)){const a=!z(e.label);if(e.multiple){if(!C(l))return void S("FaSelect","当启用 multiple 时,传入的 modelValue 必须是Array。");if(a&&!C(e.label))return void S("FaSelect","当启用 multiple 时,传入的 modelValue:label 必须是Array。");h.selectorData=l.slice(0,e.multipleLimit>0?e.multipleLimit:l.length).map((l,t)=>({value:l,label:a?e.label[t]:void 0}))}else{if(C(l))return void S("FaSelect","当禁用 multiple 时,传入的 modelValue 不能是Array。");if(a&&C(e.label))return void S("FaSelect","当禁用 multiple 时,传入的 modelValue:label 不能是Array。");h.selectorData=[{value:l,label:e.label}]}}h.value=l},{immediate:!0}),o(async()=>{e.defaultSelected?(await F(),h.selectorData.length>0&&O(e.multiple?[h.selectorData[0].value]:h.selectorData[0].value)):!e.requestApi&&e.data?.length>0?(h.debut=!1,await F()):e.lazy||await F(),t(()=>e.initParam,(e,l)=>{M(e,l)||(h.nextRefresh=!0,z(h.value)||O())}),t(()=>e.data,async()=>{e.requestApi||await F()},{deep:!0})});const N=B(e,R,["modelValue","popperClass","loading"]),_=D(f,p,["update:modelValue","change","clear","visible-change"]),k=i(()=>{let l=`fa-select-dropdown ${e.popperClass}`;return e.moreDetail&&(l+=` fa-select-dropdown__more-detail fa-select-dropdown__more-detail-${g.value}`),l});return x(()=>r(b,n(N.value,_.value,{ref:y,class:"fa-select",popperClass:k.value,style:{width:V(e.width)},modelValue:h.value,"onUpdate:modelValue":e=>h.value=e,loading:h.loading,onChange:O,onClear:j,onVisibleChange:L}),{default:()=>h.selectorData.map(l=>r(P,{data:l,moreDetail:e.moreDetail},{default:d.default})),...d.header&&{header:()=>d.header()},...d.footer&&{footer:()=>d.footer()},...d.prefix&&{prefix:()=>d.prefix()},...d.empty&&{empty:()=>d.empty()},...d.tag&&{tag:()=>d.tag()},...d.loading&&{loading:()=>d.loading()},...d.label&&{label:({label:e,value:l})=>d.label({label:e,value:l})}})),w(s,{focus:i(()=>y.value?.focus),blur:i(()=>y.value?.blur),selectedLabel:i(()=>y.value?.selectedLabel),loading:i(()=>h.loading),refresh:F,setSelection:e=>O(e),clearSelection:()=>O(null)})}});export{R as SelectProps,I as default,k as faSelectEmits,_ as faSelectProps};
|
|
1
|
+
import{defineComponent as e,reactive as l,ref as a,watch as t,onMounted as o,computed as i,createVNode as r,mergeProps as n}from"vue";import{useAriaProps as u,useEmptyValuesProps as d,tagProps as p,useTooltipContentProps as s,useSizeProp as c,selectEmits as f,useGlobalSize as m,ElSelect as b}from"element-plus";import{ArrowDown as g,CircleClose as h}from"@element-plus/icons-vue";import{definePropType as y,withDefineType as v,consoleError as S,useProps as B,useEmits as D,useRender as x,addUnit as V,useExpose as w,makeSlots as A}from"@fast-china/utils";import{useVModel as T}from"@vueuse/core";import{isArray as C,isString as F,isNull as O,isNumber as j,isBoolean as L,isObject as N,isFunction as q,isNil as z,isEqual as M}from"lodash-unified";import P from"./selectOption.mjs";const R={name:String,id:String,modelValue:{type:[Array,String,Number,Boolean,Object],default:void 0},autocomplete:{type:String,default:"off"},automaticDropdown:Boolean,size:c,effect:{type:y(String),default:"light"},disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:{type:String,default:""},popperOptions:{type:y(Object),default:()=>({})},remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod:Function,multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String},defaultFirstOption:Boolean,reserveKeyword:{type:Boolean,default:!0},valueKey:{type:String,default:"value"},collapseTags:Boolean,collapseTagsTooltip:Boolean,maxCollapseTags:{type:Number,default:1},teleported:s.teleported,persistent:{type:Boolean,default:!0},clearIcon:{type:y([String,Object,Function]),default:h},fitInputWidth:Boolean,suffixIcon:{type:y([String,Object,Function]),default:g},tagType:{...p.type,default:"info"},tagEffect:{...p.effect,default:"light"},validateEvent:{type:Boolean,default:!0},remoteShowSuffix:Boolean,placement:{type:y(String),default:"bottom-start"},fallbackPlacements:{type:y(Array),default:["bottom-start","top-start","right","left"]},...d,...u(["ariaLabel"])},_={...R,disabled:{type:Boolean,default:void 0},loadingText:{type:String,default:"加载中..."},noMatchText:{type:String,default:"暂无匹配的数据"},noDataText:{type:String,default:"暂无数据"},collapseTags:{type:Boolean,default:!0},collapseTagsTooltip:{type:Boolean,default:!0},modelValue:{type:y([String,Number,Boolean,Object,Array]),default:void 0},label:y([String,Array]),width:{type:[String,Number],default:"100%"},moreDetail:Boolean,lazy:{type:Boolean,default:!0},defaultSelected:Boolean,props:{type:y(Object),default:()=>({label:"label",hide:"hide",disabled:"disabled",children:"children"})},data:{type:y(Array),default:()=>[]},requestApi:{type:y(Function)},initParam:y([String,Number,Object])},k={...f,"update:modelValue":e=>F(e)||j(e)||L(e)||N(e)||C(e)||O(e),"update:label":e=>F(e)||C(e)||O(e),dataChangeCallBack:e=>C(e),change:(e,l)=>!0},I=/* @__PURE__ */e({name:"FaSelect",props:_,emits:k,slots:A(),setup(e,{attrs:u,slots:d,emit:p,expose:s}){const c=T(e,"label",p,{passive:!0}),g=m(),h=l({value:v(),loading:!1,selectorData:v([]),debut:!0,echo:!(e.data?.length>0),nextRefresh:!1}),y=a(),A=l=>l?.map(l=>({...l,value:l[e.valueKey],label:q(e.props.label)?e.props.label(l):l[e.props.label??"label"],hide:q(e.props.hide)?e.props.hide(l):l[e.props.hide??"hide"],disabled:q(e.props.disabled)?e.props.disabled(l):l[e.props.disabled??"disabled"],children:q(e.props.children)?A(e.props.children(l)):A(l[e.props.children??"children"])})).filter(e=>!e.hide),F=async()=>{if(e.requestApi){h.loading=!0;const a=e.initParam??{};try{const l=await e.requestApi(a);h.echo=!1,h.selectorData=A(l),p("dataChangeCallBack",h.selectorData)}catch(l){S("FaSelect",l),h.selectorData=[]}finally{h.loading=!1}}else h.echo=!1,h.selectorData=A(e.data)},O=l=>{if(e.multiple){const e=l;if(0===e?.length)return h.value=null,c.value=null,p("update:modelValue",null),void p("change",null,null);const a=h.selectorData.filter(l=>e.includes(l.value));h.value=l,c.value=a.map(e=>e.label),p("update:modelValue",l),p("change",a,l)}else{if(z(l))return h.value=null,c.value=null,p("update:modelValue",null),void p("change",null,null);const e=h.selectorData.find(e=>e.value===l);h.value=l,c.value=e.label,p("update:modelValue",l),p("change",e,l)}},j=()=>{h.value=null,c.value=null,p("update:modelValue",null),p("clear")},L=async l=>{l&&(h.debut?(h.debut=!1,!e.defaultSelected&&e.lazy&&await F()):h.nextRefresh&&(h.nextRefresh=!1,await F())),p("visible-change",l)};t(()=>e.modelValue,l=>{if(h.echo&&!z(l)){const a=!z(e.label);if(e.multiple){if(!C(l))return void S("FaSelect","当启用 multiple 时,传入的 modelValue 必须是Array。");if(a&&!C(e.label))return void S("FaSelect","当启用 multiple 时,传入的 modelValue:label 必须是Array。");h.selectorData=l.slice(0,e.multipleLimit>0?e.multipleLimit:l.length).map((l,t)=>({value:l,label:a?e.label[t]:void 0}))}else{if(C(l))return void S("FaSelect","当禁用 multiple 时,传入的 modelValue 不能是Array。");if(a&&C(e.label))return void S("FaSelect","当禁用 multiple 时,传入的 modelValue:label 不能是Array。");h.selectorData=[{value:l,label:e.label}]}}h.value=l},{immediate:!0}),o(async()=>{e.defaultSelected?(await F(),h.selectorData.length>0&&O(e.multiple?[h.selectorData[0].value]:h.selectorData[0].value)):!e.requestApi&&e.data?.length>0?(h.debut=!1,await F()):e.lazy||await F(),t(()=>e.initParam,(e,l)=>{M(e,l)||(h.nextRefresh=!0,z(h.value)||O())}),t(()=>e.data,async()=>{e.requestApi||await F()},{deep:!0})});const N=B(e,R,["modelValue","popperClass","loading"]),_=D(f,p,["update:modelValue","change","clear","visible-change"]),k=i(()=>{let l=`fa-select-dropdown ${e.popperClass}`;return e.moreDetail&&(l+=` fa-select-dropdown__more-detail fa-select-dropdown__more-detail-${g.value}`),l});return x(()=>r(b,n(N.value,_.value,{ref:y,class:"fa-select",popperClass:k.value,style:{width:V(e.width)},modelValue:h.value,"onUpdate:modelValue":e=>h.value=e,loading:h.loading,onChange:O,onClear:j,onVisibleChange:L}),{default:()=>h.selectorData.map(l=>r(P,{data:l,moreDetail:e.moreDetail},{default:d.default})),...d.header&&{header:()=>d.header()},...d.footer&&{footer:()=>d.footer()},...d.prefix&&{prefix:()=>d.prefix()},...d.empty&&{empty:()=>d.empty()},...d.tag&&{tag:()=>d.tag()},...d.loading&&{loading:()=>d.loading()},...d.label&&{label:({label:e,value:l})=>d.label({label:e,value:l})}})),w(s,{focus:i(()=>y.value?.focus),blur:i(()=>y.value?.blur),selectedLabel:i(()=>y.value?.selectedLabel),loading:i(()=>h.loading),refresh:F,setSelection:e=>O(e),clearSelection:()=>O(null)})}});export{R as SelectProps,I as default,k as faSelectEmits,_ as faSelectProps};
|
|
2
2
|
//# sourceMappingURL=select.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.mjs","sources":["../../../../../packages/components/select/src/select.tsx"],"sourcesContent":["import { computed, defineComponent, onMounted, reactive, ref, watch } from \"vue\";\nimport { ElSelect, selectEmits, tagProps, useAriaProps, useEmptyValuesProps, useGlobalSize, useSizeProp, useTooltipContentProps } from \"element-plus\";\nimport { ArrowDown, CircleClose } from \"@element-plus/icons-vue\";\nimport { addUnit, consoleError, definePropType, makeSlots, useEmits, useExpose, useProps, useRender, withDefineType } from \"@fast-china/utils\";\nimport { useVModel } from \"@vueuse/core\";\nimport { isArray, isBoolean, isEqual, isFunction, isNil, isNull, isNumber, isObject, isString } from \"lodash-unified\";\nimport FaSelectOption from \"./selectOption\";\nimport type { ElSelectorOutput } from \"./select.type\";\nimport type { Options, Placement, PopperEffect } from \"element-plus\";\nimport type { Component, VNode } from \"vue\";\n\nexport const SelectProps = {\n\t/**\n\t * @description the name attribute of select input\n\t */\n\tname: String,\n\t/**\n\t * @description native input id\n\t */\n\tid: String,\n\t/**\n\t * @description binding value\n\t */\n\tmodelValue: {\n\t\ttype: [Array, String, Number, Boolean, Object],\n\t\tdefault: undefined,\n\t},\n\t/**\n\t * @description the autocomplete attribute of select input\n\t */\n\tautocomplete: {\n\t\ttype: String,\n\t\tdefault: \"off\",\n\t},\n\t/**\n\t * @description for non-filterable Select, this prop decides if the option menu pops up when the input is focused\n\t */\n\tautomaticDropdown: Boolean,\n\t/**\n\t * @description size of Input\n\t */\n\tsize: useSizeProp,\n\t/**\n\t * @description tooltip theme, built-in theme: `dark` / `light`\n\t */\n\teffect: {\n\t\ttype: definePropType<PopperEffect | string>(String),\n\t\tdefault: \"light\",\n\t},\n\t/**\n\t * @description whether Select is disabled\n\t */\n\tdisabled: Boolean,\n\t/**\n\t * @description whether select can be cleared\n\t */\n\tclearable: Boolean,\n\t/**\n\t * @description whether Select is filterable\n\t */\n\tfilterable: Boolean,\n\t/**\n\t * @description whether creating new items is allowed. To use this, `filterable` must be true\n\t */\n\tallowCreate: Boolean,\n\t/**\n\t * @description whether Select is loading data from server\n\t */\n\tloading: Boolean,\n\t/**\n\t * @description custom class name for Select's dropdown\n\t */\n\tpopperClass: {\n\t\ttype: String,\n\t\tdefault: \"\",\n\t},\n\t/**\n\t * @description [popper.js](https://popper.js.org/docs/v2/) parameters\n\t */\n\tpopperOptions: {\n\t\ttype: definePropType<Partial<Options>>(Object),\n\t\tdefault: (): Partial<Options> => ({}),\n\t},\n\t/**\n\t * @description whether options are loaded from server\n\t */\n\tremote: Boolean,\n\t/**\n\t * @description displayed text while loading data from server, default is 'Loading'\n\t */\n\tloadingText: String,\n\t/**\n\t * @description displayed text when no data matches the filtering query, you can also use slot `empty`, default is 'No matching data'\n\t */\n\tnoMatchText: String,\n\t/**\n\t * @description displayed text when there is no options, you can also use slot `empty`, default is 'No data'\n\t */\n\tnoDataText: String,\n\t/**\n\t * @description custom remote search method\n\t */\n\tremoteMethod: Function,\n\t/**\n\t * @description custom filter method\n\t */\n\tfilterMethod: Function,\n\t/**\n\t * @description whether multiple-select is activated\n\t */\n\tmultiple: Boolean,\n\t/**\n\t * @description maximum number of options user can select when `multiple` is `true`. No limit when set to 0\n\t */\n\tmultipleLimit: {\n\t\ttype: Number,\n\t\tdefault: 0,\n\t},\n\t/**\n\t * @description placeholder, default is 'Select'\n\t */\n\tplaceholder: {\n\t\ttype: String,\n\t},\n\t/**\n\t * @description select first matching option on enter key. Use with `filterable` or `remote`\n\t */\n\tdefaultFirstOption: Boolean,\n\t/**\n\t * @description when `multiple` and `filter` is true, whether to reserve current keyword after selecting an option\n\t */\n\treserveKeyword: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description unique identity key name for value, required when value is an object\n\t */\n\tvalueKey: {\n\t\ttype: String,\n\t\tdefault: \"value\",\n\t},\n\t/**\n\t * @description whether to collapse tags to a text when multiple selecting\n\t */\n\tcollapseTags: Boolean,\n\t/**\n\t * @description whether show all selected tags when mouse hover text of collapse-tags. To use this, `collapse-tags` must be true\n\t */\n\tcollapseTagsTooltip: Boolean,\n\t/**\n\t * @description the max tags number to be shown. To use this, `collapse-tags` must be true\n\t */\n\tmaxCollapseTags: {\n\t\ttype: Number,\n\t\tdefault: 1,\n\t},\n\t/**\n\t * @description whether select dropdown is teleported to the body\n\t */\n\tteleported: useTooltipContentProps.teleported,\n\t/**\n\t * @description when select dropdown is inactive and `persistent` is `false`, select dropdown will be destroyed\n\t */\n\tpersistent: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description custom clear icon component\n\t */\n\tclearIcon: {\n\t\ttype: definePropType<string | Component>([String, Object, Function]),\n\t\tdefault: CircleClose,\n\t},\n\t/**\n\t * @description whether the width of the dropdown is the same as the input\n\t */\n\tfitInputWidth: Boolean,\n\t/**\n\t * @description custom suffix icon component\n\t */\n\tsuffixIcon: {\n\t\ttype: definePropType<string | Component>([String, Object, Function]),\n\t\tdefault: ArrowDown,\n\t},\n\t/**\n\t * @description tag type\n\t */\n\n\ttagType: { ...tagProps.type, default: \"info\" },\n\t/**\n\t * @description tag effect\n\t */\n\ttagEffect: { ...tagProps.effect, default: \"light\" },\n\t/**\n\t * @description whether to trigger form validation\n\t */\n\tvalidateEvent: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description in remote search method show suffix icon\n\t */\n\tremoteShowSuffix: Boolean,\n\t/**\n\t * @description position of dropdown\n\t */\n\tplacement: {\n\t\ttype: definePropType<Placement>(String),\n\t\tdefault: \"bottom-start\",\n\t},\n\t/**\n\t * @description list of possible positions for dropdown\n\t */\n\tfallbackPlacements: {\n\t\ttype: definePropType<Placement[]>(Array),\n\t\tdefault: [\"bottom-start\", \"top-start\", \"right\", \"left\"],\n\t},\n\t...useEmptyValuesProps,\n\t...useAriaProps([\"ariaLabel\"]),\n};\n\nexport type SelectComponentProps = {\n\t/** @description 指定标签为节点的某个属性值 */\n\tlabel?: string | ((data: any) => string);\n\t/** @description 指定是否隐藏为节点的某个属性值 */\n\thide?: string | ((data: any) => boolean);\n\t/** @description 指定是否禁用为节点的某个属性值 */\n\tdisabled?: string | ((data: any) => boolean);\n\t/** @description 指定子节点对象为节点的某个属性值 */\n\tchildren?: string;\n};\n\nexport const faSelectProps = {\n\t...SelectProps,\n\t/** @description whether Select is disabled 重载使其支持 ElForm*/\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: undefined,\n\t},\n\t/** @description displayed text while loading data from server, default is 'Loading' */\n\tloadingText: {\n\t\ttype: String,\n\t\tdefault: \"加载中...\",\n\t},\n\t/** @description displayed text when no data matches the filtering query, you can also use slot `empty`, default is 'No matching data' */\n\tnoMatchText: {\n\t\ttype: String,\n\t\tdefault: \"暂无匹配的数据\",\n\t},\n\t/** @description displayed text when there is no options, you can also use slot `empty`, default is 'No data' */\n\tnoDataText: {\n\t\ttype: String,\n\t\tdefault: \"暂无数据\",\n\t},\n\t/** @description whether to collapse tags to a text when multiple selecting */\n\tcollapseTags: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether show all selected tags when mouse hover text of collapse-tags. To use this, `collapse-tags` must be true */\n\tcollapseTagsTooltip: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description v-model绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<string | number | boolean | object | (string | number | boolean | object)[]>([String, Number, Boolean, Object, Array]),\n\t\tdefault: undefined,\n\t},\n\t/** @description v-model:label绑定值 */\n\tlabel: definePropType<string | string[]>([String, Array]),\n\t/** @description 宽度 */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"100%\",\n\t},\n\t/** @description 更多细节,只有使用slot的时候有用 */\n\tmoreDetail: Boolean,\n\t/** @description 懒加载远程数据,默认 true。当下拉框第一次显示的时候才会加载远程数据*/\n\tlazy: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 默认选中。不能和懒加载一起使用 */\n\tdefaultSelected: Boolean,\n\t/** @description 配置选项 */\n\tprops: {\n\t\ttype: definePropType<SelectComponentProps>(Object),\n\t\tdefault: (): Partial<SelectComponentProps> => ({\n\t\t\tlabel: \"label\",\n\t\t\thide: \"hide\",\n\t\t\tdisabled: \"disabled\",\n\t\t\tchildren: \"children\",\n\t\t}),\n\t},\n\t/** @description 下拉框数据 */\n\tdata: {\n\t\ttype: definePropType<ElSelectorOutput[]>(Array),\n\t\tdefault: (): ElSelectorOutput[] => [],\n\t},\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: any) => Promise<ElSelectorOutput[]>>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | any>([String, Number, Object]),\n};\n\nexport const faSelectEmits = {\n\t...selectEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: string | number | boolean | object | (string | number | boolean | object)[]): boolean =>\n\t\tisString(value) || isNumber(value) || isBoolean(value) || isObject(value) || isArray(value) || isNull(value),\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string | string[]): boolean => isString(value) || isArray(value) || isNull(value),\n\t/** @description 数据改变 */\n\tdataChangeCallBack: (data: ElSelectorOutput[] | any[]): boolean => isArray(data),\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 FaSelectSlots = {\n\t/** @description FaSelectOption 默认内容插槽 */\n\tdefault: ElSelectorOutput;\n\t/** @description 下拉列表顶部的内容 */\n\theader: never;\n\t/** @description 下拉列表底部的内容 */\n\tfooter: never;\n\t/** @description Select 组件头部内容 */\n\tprefix: never;\n\t/** @description 无选项时的列表 */\n\tempty: never;\n\t/** @description select 组件自定义标签内容 */\n\ttag: never;\n\t/** @description select 组件自定义 loading内容 */\n\tloading: never;\n\t/** @description select 组件自定义标签内容 */\n\tlabel: { label: string; value: string | number | boolean | object };\n};\n\nexport default defineComponent({\n\tname: \"FaSelect\",\n\tprops: faSelectProps,\n\temits: faSelectEmits,\n\tslots: makeSlots<FaSelectSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst selectedLabel = useVModel(props, \"label\", emit);\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<string | number | boolean | object | (string | number | boolean | object)[]>(),\n\t\t\tloading: false,\n\t\t\tselectorData: withDefineType<ElSelectorOutput[]>([]),\n\t\t\t/** 首次出现 */\n\t\t\tdebut: true,\n\t\t\t/** 回显 */\n\t\t\techo: props.data?.length > 0 ? false : true,\n\t\t\t/** 下次刷新 */\n\t\t\tnextRefresh: false,\n\t\t});\n\n\t\tconst selectRef = ref<InstanceType<typeof ElSelect>>();\n\n\t\tconst handleData = (data: ElSelectorOutput[]): ElSelectorOutput[] => {\n\t\t\treturn data\n\t\t\t\t?.map((m) => ({\n\t\t\t\t\t...m,\n\t\t\t\t\tvalue: m[props.valueKey],\n\t\t\t\t\tlabel: isFunction(props.props.label) ? props.props.label(m) : m[props.props.label ?? \"label\"],\n\t\t\t\t\thide: isFunction(props.props.hide) ? props.props.hide(m) : m[props.props.hide ?? \"hide\"],\n\t\t\t\t\tdisabled: isFunction(props.props.disabled) ? props.props.disabled(m) : m[props.props.disabled ?? \"disabled\"],\n\t\t\t\t\tchildren: isFunction(props.props.children)\n\t\t\t\t\t\t? handleData(props.props.children(m))\n\t\t\t\t\t\t: handleData(m[props.props.children ?? \"children\"]),\n\t\t\t\t}))\n\t\t\t\t.filter((f) => !f.hide);\n\t\t};\n\n\t\tconst loadData = async (): Promise<void> => {\n\t\t\t// 判断是否需要自动请求\n\t\t\tif (props.requestApi) {\n\t\t\t\tstate.loading = true;\n\t\t\t\tconst params = props.initParam ?? {};\n\t\t\t\ttry {\n\t\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\t\t// 这里不允许回显了\n\t\t\t\t\tstate.echo = false;\n\t\t\t\t\tstate.selectorData = handleData(resData);\n\t\t\t\t\temit(\"dataChangeCallBack\", state.selectorData);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsoleError(\"FaSelect\", error);\n\t\t\t\t\tstate.selectorData = [];\n\t\t\t\t} finally {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// 这里不允许回显了\n\t\t\t\tstate.echo = false;\n\t\t\t\tstate.selectorData = handleData(props.data);\n\t\t\t}\n\t\t};\n\n\t\tconst handleChange = (value?: string | number | boolean | object | (string | number | boolean | object)[]): void => {\n\t\t\t// 判断是否为多选\n\t\t\tif (props.multiple) {\n\t\t\t\t// value 必然是数组\n\t\t\t\tconst valueArr = value as (string | number | boolean | object)[];\n\t\t\t\tif (valueArr?.length === 0) {\n\t\t\t\t\tstate.value = null;\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\temit(\"update:modelValue\", null);\n\t\t\t\t\temit(\"change\", null, null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst dataList = state.selectorData.filter((f) => valueArr.includes(f.value));\n\t\t\t\tstate.value = value;\n\t\t\t\tselectedLabel.value = dataList.map((m) => m.label);\n\t\t\t\temit(\"update:modelValue\", value);\n\t\t\t\temit(\"change\", dataList, value);\n\t\t\t} else {\n\t\t\t\t// value 必然不是数组\n\t\t\t\tif (isNil(value)) {\n\t\t\t\t\tstate.value = null;\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\temit(\"update:modelValue\", null);\n\t\t\t\t\temit(\"change\", null, null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst data = state.selectorData.find((f) => f.value === value);\n\t\t\t\tstate.value = value;\n\t\t\t\tselectedLabel.value = data.label;\n\t\t\t\temit(\"update:modelValue\", value);\n\t\t\t\temit(\"change\", data, value);\n\t\t\t}\n\t\t};\n\n\t\tconst handleClear = (): void => {\n\t\t\tstate.value = null;\n\t\t\tselectedLabel.value = null;\n\t\t\temit(\"update:modelValue\", null);\n\t\t\temit(\"clear\");\n\t\t};\n\n\t\tconst handleVisibleChange = async (visible: boolean): Promise<void> => {\n\t\t\tif (visible) {\n\t\t\t\tif (state.debut) {\n\t\t\t\t\t// 首次出现\n\t\t\t\t\tstate.debut = false;\n\t\t\t\t\t// 懒加载\n\t\t\t\t\t!props.defaultSelected && props.lazy && (await loadData());\n\t\t\t\t} else {\n\t\t\t\t\t// 判断再次出现是否需要刷新数据\n\t\t\t\t\tif (state.nextRefresh) {\n\t\t\t\t\t\tstate.nextRefresh = false;\n\t\t\t\t\t\tawait loadData();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\temit(\"visible-change\", visible);\n\t\t};\n\n\t\twatch(\n\t\t\t() => props.modelValue,\n\t\t\t(newValue) => {\n\t\t\t\tif (state.echo && !isNil(newValue)) {\n\t\t\t\t\tconst hasLabel = !isNil(props.label);\n\t\t\t\t\t// 判断是否为多选\n\t\t\t\t\tif (props.multiple) {\n\t\t\t\t\t\t// 判断是否为数组\n\t\t\t\t\t\tif (!isArray(newValue)) {\n\t\t\t\t\t\t\tconsoleError(\"FaSelect\", \"当启用 multiple 时,传入的 modelValue 必须是Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (hasLabel && !isArray(props.label)) {\n\t\t\t\t\t\t\tconsoleError(\"FaSelect\", \"当启用 multiple 时,传入的 modelValue:label 必须是Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.selectorData = newValue\n\t\t\t\t\t\t\t// 最大选项截取\n\t\t\t\t\t\t\t.slice(0, props.multipleLimit > 0 ? props.multipleLimit : newValue.length)\n\t\t\t\t\t\t\t.map((item, index) => ({\n\t\t\t\t\t\t\t\tvalue: item,\n\t\t\t\t\t\t\t\tlabel: hasLabel ? props.label[index] : undefined,\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (isArray(newValue)) {\n\t\t\t\t\t\t\tconsoleError(\"FaSelect\", \"当禁用 multiple 时,传入的 modelValue 不能是Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (hasLabel && isArray(props.label)) {\n\t\t\t\t\t\t\tconsoleError(\"FaSelect\", \"当禁用 multiple 时,传入的 modelValue:label 不能是Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.selectorData = [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: newValue,\n\t\t\t\t\t\t\t\tlabel: props.label,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstate.value = newValue;\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\tonMounted(async () => {\n\t\t\tif (props.defaultSelected) {\n\t\t\t\tawait loadData();\n\t\t\t\tif (state.selectorData.length > 0) {\n\t\t\t\t\thandleChange(props.multiple ? [state.selectorData[0].value] : state.selectorData[0].value);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 判断是否为本地数据\n\t\t\telse if (!props.requestApi && props.data?.length > 0) {\n\t\t\t\tstate.debut = false;\n\t\t\t\tawait loadData();\n\t\t\t}\n\t\t\t// 判断是否非默认选中,且未启用懒加载\n\t\t\telse if (!props.lazy) {\n\t\t\t\tawait loadData();\n\t\t\t}\n\t\t\twatch(\n\t\t\t\t() => props.initParam,\n\t\t\t\t(newValue, oldValue) => {\n\t\t\t\t\tif (!isEqual(newValue, oldValue)) {\n\t\t\t\t\t\tstate.nextRefresh = true;\n\t\t\t\t\t\tif (!isNil(state.value)) {\n\t\t\t\t\t\t\thandleChange();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\twatch(\n\t\t\t\t() => props.data,\n\t\t\t\tasync () => {\n\t\t\t\t\tif (!props.requestApi) {\n\t\t\t\t\t\tawait loadData();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{ deep: true }\n\t\t\t);\n\t\t});\n\n\t\tconst elSelectProps = useProps(props, SelectProps, [\"modelValue\", \"popperClass\", \"loading\"]);\n\t\tconst elSelectEmits = useEmits(selectEmits, emit, [\"update:modelValue\", \"change\", \"clear\", \"visible-change\"]);\n\t\tconst elPopperClass = computed(() => {\n\t\t\tlet localClass = `fa-select-dropdown ${props.popperClass}`;\n\t\t\tif (props.moreDetail) {\n\t\t\t\tlocalClass += ` fa-select-dropdown__more-detail fa-select-dropdown__more-detail-${_globalSize.value}`;\n\t\t\t}\n\t\t\treturn localClass;\n\t\t});\n\n\t\tuseRender(() => (\n\t\t\t<ElSelect\n\t\t\t\t{...elSelectProps.value}\n\t\t\t\t{...elSelectEmits.value}\n\t\t\t\tref={selectRef}\n\t\t\t\tclass=\"fa-select\"\n\t\t\t\tpopperClass={elPopperClass.value}\n\t\t\t\tstyle={{ width: addUnit(props.width) }}\n\t\t\t\tvModel={state.value}\n\t\t\t\tloading={state.loading}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tonClear={handleClear}\n\t\t\t\tonVisibleChange={handleVisibleChange}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\tdefault: (): VNode[] =>\n\t\t\t\t\t\tstate.selectorData.map((item) => (\n\t\t\t\t\t\t\t<FaSelectOption vSlots={{ default: slots.default }} data={item} moreDetail={props.moreDetail} />\n\t\t\t\t\t\t)),\n\t\t\t\t\t...(slots.header && { header: (): VNode[] => slots.header() }),\n\t\t\t\t\t...(slots.footer && { footer: (): VNode[] => slots.footer() }),\n\t\t\t\t\t...(slots.prefix && { prefix: (): VNode[] => slots.prefix() }),\n\t\t\t\t\t...(slots.empty && { empty: (): VNode[] => slots.empty() }),\n\t\t\t\t\t...(slots.tag && { tag: (): VNode[] => slots.tag() }),\n\t\t\t\t\t...(slots.loading && { loading: (): VNode[] => slots.loading() }),\n\t\t\t\t\t...(slots.label && {\n\t\t\t\t\t\tlabel: ({ label, value }: { label: string; value: string | number | boolean | object }): VNode[] =>\n\t\t\t\t\t\t\tslots.label({ label, value }),\n\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElSelect>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 使选择器的输入框获取焦点 */\n\t\t\tfocus: computed(() => selectRef.value?.focus),\n\t\t\t/** @description 使选择器的输入框失去焦点,并隐藏下拉框 */\n\t\t\tblur: computed(() => selectRef.value?.blur),\n\t\t\t/** @description 获取当前选中的标签 */\n\t\t\tselectedLabel: computed(() => selectRef.value?.selectedLabel),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 刷新 */\n\t\t\trefresh: loadData,\n\t\t\t/** @description 设置选择 */\n\t\t\tsetSelection: (value: string | number | boolean | object | (string | number | boolean | object)[]) => handleChange(value),\n\t\t\t/** @description 清除选择 */\n\t\t\tclearSelection: () => handleChange(null),\n\t\t});\n\t},\n});\n"],"names":["SelectProps","name","String","id","modelValue","type","Array","Number","Boolean","Object","default","undefined","autocomplete","automaticDropdown","size","useSizeProp","effect","definePropType","disabled","clearable","filterable","allowCreate","loading","popperClass","popperOptions","remote","loadingText","noMatchText","noDataText","remoteMethod","Function","filterMethod","multiple","multipleLimit","placeholder","defaultFirstOption","reserveKeyword","valueKey","collapseTags","collapseTagsTooltip","maxCollapseTags","teleported","useTooltipContentProps","persistent","clearIcon","CircleClose","fitInputWidth","suffixIcon","ArrowDown","tagType","tagProps","tagEffect","validateEvent","remoteShowSuffix","placement","fallbackPlacements","useEmptyValuesProps","useAriaProps","faSelectProps","label","width","moreDetail","lazy","defaultSelected","props","hide","children","data","requestApi","initParam","faSelectEmits","selectEmits","value","isString","isNumber","isBoolean","isObject","isArray","isNull","dataChangeCallBack","change","Select","emits","slots","makeSlots","setup","attrs","emit","expose","selectedLabel","useVModel","_globalSize","useGlobalSize","state","reactive","withDefineType","selectorData","debut","echo","length","nextRefresh","selectRef","ref","handleData","map","m","isFunction","filter","f","loadData","async","params","resData","error","consoleError","handleChange","valueArr","dataList","includes","isNil","find","handleClear","handleVisibleChange","visible","watch","newValue","hasLabel","slice","item","index","immediate","onMounted","oldValue","isEqual","deep","elSelectProps","useProps","elSelectEmits","useEmits","elPopperClass","computed","localClass","useRender","_createVNode","ElSelect","_mergeProps","class","style","addUnit","$event","onChange","onClear","onVisibleChange","FaSelectOption","header","footer","prefix","empty","tag","useExpose","focus","blur","refresh","setSelection","clearSelection"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"select.mjs","sources":["../../../../../packages/components/select/src/select.tsx"],"sourcesContent":["import { computed, defineComponent, onMounted, reactive, ref, watch } from \"vue\";\nimport { ElSelect, selectEmits, tagProps, useAriaProps, useEmptyValuesProps, useGlobalSize, useSizeProp, useTooltipContentProps } from \"element-plus\";\nimport { ArrowDown, CircleClose } from \"@element-plus/icons-vue\";\nimport { addUnit, consoleError, definePropType, makeSlots, useEmits, useExpose, useProps, useRender, withDefineType } from \"@fast-china/utils\";\nimport { useVModel } from \"@vueuse/core\";\nimport { isArray, isBoolean, isEqual, isFunction, isNil, isNull, isNumber, isObject, isString } from \"lodash-unified\";\nimport FaSelectOption from \"./selectOption\";\nimport type { ElSelectorOutput } from \"./select.type\";\nimport type { Options, Placement, PopperEffect } from \"element-plus\";\nimport type { Component, VNode } from \"vue\";\n\nexport const SelectProps = {\n\t/**\n\t * @description the name attribute of select input\n\t */\n\tname: String,\n\t/**\n\t * @description native input id\n\t */\n\tid: String,\n\t/**\n\t * @description binding value\n\t */\n\tmodelValue: {\n\t\ttype: [Array, String, Number, Boolean, Object],\n\t\tdefault: undefined,\n\t},\n\t/**\n\t * @description the autocomplete attribute of select input\n\t */\n\tautocomplete: {\n\t\ttype: String,\n\t\tdefault: \"off\",\n\t},\n\t/**\n\t * @description for non-filterable Select, this prop decides if the option menu pops up when the input is focused\n\t */\n\tautomaticDropdown: Boolean,\n\t/**\n\t * @description size of Input\n\t */\n\tsize: useSizeProp,\n\t/**\n\t * @description tooltip theme, built-in theme: `dark` / `light`\n\t */\n\teffect: {\n\t\ttype: definePropType<PopperEffect | string>(String),\n\t\tdefault: \"light\",\n\t},\n\t/**\n\t * @description whether Select is disabled\n\t */\n\tdisabled: Boolean,\n\t/**\n\t * @description whether select can be cleared\n\t */\n\tclearable: Boolean,\n\t/**\n\t * @description whether Select is filterable\n\t */\n\tfilterable: Boolean,\n\t/**\n\t * @description whether creating new items is allowed. To use this, `filterable` must be true\n\t */\n\tallowCreate: Boolean,\n\t/**\n\t * @description whether Select is loading data from server\n\t */\n\tloading: Boolean,\n\t/**\n\t * @description custom class name for Select's dropdown\n\t */\n\tpopperClass: {\n\t\ttype: String,\n\t\tdefault: \"\",\n\t},\n\t/**\n\t * @description [popper.js](https://popper.js.org/docs/v2/) parameters\n\t */\n\tpopperOptions: {\n\t\ttype: definePropType<Partial<Options>>(Object),\n\t\tdefault: (): Partial<Options> => ({}),\n\t},\n\t/**\n\t * @description whether options are loaded from server\n\t */\n\tremote: Boolean,\n\t/**\n\t * @description displayed text while loading data from server, default is 'Loading'\n\t */\n\tloadingText: String,\n\t/**\n\t * @description displayed text when no data matches the filtering query, you can also use slot `empty`, default is 'No matching data'\n\t */\n\tnoMatchText: String,\n\t/**\n\t * @description displayed text when there is no options, you can also use slot `empty`, default is 'No data'\n\t */\n\tnoDataText: String,\n\t/**\n\t * @description custom remote search method\n\t */\n\tremoteMethod: Function,\n\t/**\n\t * @description custom filter method\n\t */\n\tfilterMethod: Function,\n\t/**\n\t * @description whether multiple-select is activated\n\t */\n\tmultiple: Boolean,\n\t/**\n\t * @description maximum number of options user can select when `multiple` is `true`. No limit when set to 0\n\t */\n\tmultipleLimit: {\n\t\ttype: Number,\n\t\tdefault: 0,\n\t},\n\t/**\n\t * @description placeholder, default is 'Select'\n\t */\n\tplaceholder: {\n\t\ttype: String,\n\t},\n\t/**\n\t * @description select first matching option on enter key. Use with `filterable` or `remote`\n\t */\n\tdefaultFirstOption: Boolean,\n\t/**\n\t * @description when `multiple` and `filter` is true, whether to reserve current keyword after selecting an option\n\t */\n\treserveKeyword: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description unique identity key name for value, required when value is an object\n\t */\n\tvalueKey: {\n\t\ttype: String,\n\t\tdefault: \"value\",\n\t},\n\t/**\n\t * @description whether to collapse tags to a text when multiple selecting\n\t */\n\tcollapseTags: Boolean,\n\t/**\n\t * @description whether show all selected tags when mouse hover text of collapse-tags. To use this, `collapse-tags` must be true\n\t */\n\tcollapseTagsTooltip: Boolean,\n\t/**\n\t * @description the max tags number to be shown. To use this, `collapse-tags` must be true\n\t */\n\tmaxCollapseTags: {\n\t\ttype: Number,\n\t\tdefault: 1,\n\t},\n\t/**\n\t * @description whether select dropdown is teleported to the body\n\t */\n\tteleported: useTooltipContentProps.teleported,\n\t/**\n\t * @description when select dropdown is inactive and `persistent` is `false`, select dropdown will be destroyed\n\t */\n\tpersistent: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description custom clear icon component\n\t */\n\tclearIcon: {\n\t\ttype: definePropType<string | Component>([String, Object, Function]),\n\t\tdefault: CircleClose,\n\t},\n\t/**\n\t * @description whether the width of the dropdown is the same as the input\n\t */\n\tfitInputWidth: Boolean,\n\t/**\n\t * @description custom suffix icon component\n\t */\n\tsuffixIcon: {\n\t\ttype: definePropType<string | Component>([String, Object, Function]),\n\t\tdefault: ArrowDown,\n\t},\n\t/**\n\t * @description tag type\n\t */\n\n\ttagType: { ...tagProps.type, default: \"info\" },\n\t/**\n\t * @description tag effect\n\t */\n\ttagEffect: { ...tagProps.effect, default: \"light\" },\n\t/**\n\t * @description whether to trigger form validation\n\t */\n\tvalidateEvent: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description in remote search method show suffix icon\n\t */\n\tremoteShowSuffix: Boolean,\n\t/**\n\t * @description position of dropdown\n\t */\n\tplacement: {\n\t\ttype: definePropType<Placement>(String),\n\t\tdefault: \"bottom-start\",\n\t},\n\t/**\n\t * @description list of possible positions for dropdown\n\t */\n\tfallbackPlacements: {\n\t\ttype: definePropType<Placement[]>(Array),\n\t\tdefault: [\"bottom-start\", \"top-start\", \"right\", \"left\"],\n\t},\n\t...useEmptyValuesProps,\n\t...useAriaProps([\"ariaLabel\"]),\n};\n\nexport type SelectComponentProps = {\n\t/** @description 指定标签为节点的某个属性值 */\n\tlabel?: string | ((data: any) => string);\n\t/** @description 指定是否隐藏为节点的某个属性值 */\n\thide?: string | ((data: any) => boolean);\n\t/** @description 指定是否禁用为节点的某个属性值 */\n\tdisabled?: string | ((data: any) => boolean);\n\t/** @description 指定子节点对象为节点的某个属性值 */\n\tchildren?: string;\n};\n\nexport const faSelectProps = {\n\t...SelectProps,\n\t/** @description whether Select is disabled 重载使其支持 ElForm*/\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: undefined,\n\t},\n\t/** @description displayed text while loading data from server, default is 'Loading' */\n\tloadingText: {\n\t\ttype: String,\n\t\tdefault: \"加载中...\",\n\t},\n\t/** @description displayed text when no data matches the filtering query, you can also use slot `empty`, default is 'No matching data' */\n\tnoMatchText: {\n\t\ttype: String,\n\t\tdefault: \"暂无匹配的数据\",\n\t},\n\t/** @description displayed text when there is no options, you can also use slot `empty`, default is 'No data' */\n\tnoDataText: {\n\t\ttype: String,\n\t\tdefault: \"暂无数据\",\n\t},\n\t/** @description whether to collapse tags to a text when multiple selecting */\n\tcollapseTags: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether show all selected tags when mouse hover text of collapse-tags. To use this, `collapse-tags` must be true */\n\tcollapseTagsTooltip: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description v-model绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<string | number | boolean | object | (string | number | boolean | object)[]>([String, Number, Boolean, Object, Array]),\n\t\tdefault: undefined,\n\t},\n\t/** @description v-model:label绑定值 */\n\tlabel: definePropType<string | string[]>([String, Array]),\n\t/** @description 宽度 */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"100%\",\n\t},\n\t/** @description 更多细节,只有使用slot的时候有用 */\n\tmoreDetail: Boolean,\n\t/** @description 懒加载远程数据,默认 true。当下拉框第一次显示的时候才会加载远程数据*/\n\tlazy: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 默认选中。不能和懒加载一起使用 */\n\tdefaultSelected: Boolean,\n\t/** @description 配置选项 */\n\tprops: {\n\t\ttype: definePropType<SelectComponentProps>(Object),\n\t\tdefault: (): Partial<SelectComponentProps> => ({\n\t\t\tlabel: \"label\",\n\t\t\thide: \"hide\",\n\t\t\tdisabled: \"disabled\",\n\t\t\tchildren: \"children\",\n\t\t}),\n\t},\n\t/** @description 下拉框数据 */\n\tdata: {\n\t\ttype: definePropType<ElSelectorOutput[]>(Array),\n\t\tdefault: (): ElSelectorOutput[] => [],\n\t},\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: any) => Promise<ElSelectorOutput[]>>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | any>([String, Number, Object]),\n};\n\nexport const faSelectEmits = {\n\t...selectEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: string | number | boolean | object | (string | number | boolean | object)[]): boolean =>\n\t\tisString(value) || isNumber(value) || isBoolean(value) || isObject(value) || isArray(value) || isNull(value),\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string | string[]): boolean => isString(value) || isArray(value) || isNull(value),\n\t/** @description 数据改变 */\n\tdataChangeCallBack: (data: ElSelectorOutput[] | any[]): boolean => isArray(data),\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 FaSelectSlots = {\n\t/** @description FaSelectOption 默认内容插槽 */\n\tdefault: ElSelectorOutput;\n\t/** @description 下拉列表顶部的内容 */\n\theader: never;\n\t/** @description 下拉列表底部的内容 */\n\tfooter: never;\n\t/** @description Select 组件头部内容 */\n\tprefix: never;\n\t/** @description 无选项时的列表 */\n\tempty: never;\n\t/** @description select 组件自定义标签内容 */\n\ttag: never;\n\t/** @description select 组件自定义 loading内容 */\n\tloading: never;\n\t/** @description select 组件自定义标签内容 */\n\tlabel: { label: string; value: string | number | boolean | object };\n};\n\nexport default defineComponent({\n\tname: \"FaSelect\",\n\tprops: faSelectProps,\n\temits: faSelectEmits,\n\tslots: makeSlots<FaSelectSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst selectedLabel = useVModel(props, \"label\", emit, { passive: true });\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<string | number | boolean | object | (string | number | boolean | object)[]>(),\n\t\t\tloading: false,\n\t\t\tselectorData: withDefineType<ElSelectorOutput[]>([]),\n\t\t\t/** 首次出现 */\n\t\t\tdebut: true,\n\t\t\t/** 回显 */\n\t\t\techo: props.data?.length > 0 ? false : true,\n\t\t\t/** 下次刷新 */\n\t\t\tnextRefresh: false,\n\t\t});\n\n\t\tconst selectRef = ref<InstanceType<typeof ElSelect>>();\n\n\t\tconst handleData = (data: ElSelectorOutput[]): ElSelectorOutput[] => {\n\t\t\treturn data\n\t\t\t\t?.map((m) => ({\n\t\t\t\t\t...m,\n\t\t\t\t\tvalue: m[props.valueKey],\n\t\t\t\t\tlabel: isFunction(props.props.label) ? props.props.label(m) : m[props.props.label ?? \"label\"],\n\t\t\t\t\thide: isFunction(props.props.hide) ? props.props.hide(m) : m[props.props.hide ?? \"hide\"],\n\t\t\t\t\tdisabled: isFunction(props.props.disabled) ? props.props.disabled(m) : m[props.props.disabled ?? \"disabled\"],\n\t\t\t\t\tchildren: isFunction(props.props.children)\n\t\t\t\t\t\t? handleData(props.props.children(m))\n\t\t\t\t\t\t: handleData(m[props.props.children ?? \"children\"]),\n\t\t\t\t}))\n\t\t\t\t.filter((f) => !f.hide);\n\t\t};\n\n\t\tconst loadData = async (): Promise<void> => {\n\t\t\t// 判断是否需要自动请求\n\t\t\tif (props.requestApi) {\n\t\t\t\tstate.loading = true;\n\t\t\t\tconst params = props.initParam ?? {};\n\t\t\t\ttry {\n\t\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\t\t// 这里不允许回显了\n\t\t\t\t\tstate.echo = false;\n\t\t\t\t\tstate.selectorData = handleData(resData);\n\t\t\t\t\temit(\"dataChangeCallBack\", state.selectorData);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsoleError(\"FaSelect\", error);\n\t\t\t\t\tstate.selectorData = [];\n\t\t\t\t} finally {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// 这里不允许回显了\n\t\t\t\tstate.echo = false;\n\t\t\t\tstate.selectorData = handleData(props.data);\n\t\t\t}\n\t\t};\n\n\t\tconst handleChange = (value?: string | number | boolean | object | (string | number | boolean | object)[]): void => {\n\t\t\t// 判断是否为多选\n\t\t\tif (props.multiple) {\n\t\t\t\t// value 必然是数组\n\t\t\t\tconst valueArr = value as (string | number | boolean | object)[];\n\t\t\t\tif (valueArr?.length === 0) {\n\t\t\t\t\tstate.value = null;\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\temit(\"update:modelValue\", null);\n\t\t\t\t\temit(\"change\", null, null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst dataList = state.selectorData.filter((f) => valueArr.includes(f.value));\n\t\t\t\tstate.value = value;\n\t\t\t\tselectedLabel.value = dataList.map((m) => m.label);\n\t\t\t\temit(\"update:modelValue\", value);\n\t\t\t\temit(\"change\", dataList, value);\n\t\t\t} else {\n\t\t\t\t// value 必然不是数组\n\t\t\t\tif (isNil(value)) {\n\t\t\t\t\tstate.value = null;\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\temit(\"update:modelValue\", null);\n\t\t\t\t\temit(\"change\", null, null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst data = state.selectorData.find((f) => f.value === value);\n\t\t\t\tstate.value = value;\n\t\t\t\tselectedLabel.value = data.label;\n\t\t\t\temit(\"update:modelValue\", value);\n\t\t\t\temit(\"change\", data, value);\n\t\t\t}\n\t\t};\n\n\t\tconst handleClear = (): void => {\n\t\t\tstate.value = null;\n\t\t\tselectedLabel.value = null;\n\t\t\temit(\"update:modelValue\", null);\n\t\t\temit(\"clear\");\n\t\t};\n\n\t\tconst handleVisibleChange = async (visible: boolean): Promise<void> => {\n\t\t\tif (visible) {\n\t\t\t\tif (state.debut) {\n\t\t\t\t\t// 首次出现\n\t\t\t\t\tstate.debut = false;\n\t\t\t\t\t// 懒加载\n\t\t\t\t\t!props.defaultSelected && props.lazy && (await loadData());\n\t\t\t\t} else {\n\t\t\t\t\t// 判断再次出现是否需要刷新数据\n\t\t\t\t\tif (state.nextRefresh) {\n\t\t\t\t\t\tstate.nextRefresh = false;\n\t\t\t\t\t\tawait loadData();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\temit(\"visible-change\", visible);\n\t\t};\n\n\t\twatch(\n\t\t\t() => props.modelValue,\n\t\t\t(newValue) => {\n\t\t\t\tif (state.echo && !isNil(newValue)) {\n\t\t\t\t\tconst hasLabel = !isNil(props.label);\n\t\t\t\t\t// 判断是否为多选\n\t\t\t\t\tif (props.multiple) {\n\t\t\t\t\t\t// 判断是否为数组\n\t\t\t\t\t\tif (!isArray(newValue)) {\n\t\t\t\t\t\t\tconsoleError(\"FaSelect\", \"当启用 multiple 时,传入的 modelValue 必须是Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (hasLabel && !isArray(props.label)) {\n\t\t\t\t\t\t\tconsoleError(\"FaSelect\", \"当启用 multiple 时,传入的 modelValue:label 必须是Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.selectorData = newValue\n\t\t\t\t\t\t\t// 最大选项截取\n\t\t\t\t\t\t\t.slice(0, props.multipleLimit > 0 ? props.multipleLimit : newValue.length)\n\t\t\t\t\t\t\t.map((item, index) => ({\n\t\t\t\t\t\t\t\tvalue: item,\n\t\t\t\t\t\t\t\tlabel: hasLabel ? props.label[index] : undefined,\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (isArray(newValue)) {\n\t\t\t\t\t\t\tconsoleError(\"FaSelect\", \"当禁用 multiple 时,传入的 modelValue 不能是Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (hasLabel && isArray(props.label)) {\n\t\t\t\t\t\t\tconsoleError(\"FaSelect\", \"当禁用 multiple 时,传入的 modelValue:label 不能是Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.selectorData = [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: newValue,\n\t\t\t\t\t\t\t\tlabel: props.label,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstate.value = newValue;\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\tonMounted(async () => {\n\t\t\tif (props.defaultSelected) {\n\t\t\t\tawait loadData();\n\t\t\t\tif (state.selectorData.length > 0) {\n\t\t\t\t\thandleChange(props.multiple ? [state.selectorData[0].value] : state.selectorData[0].value);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 判断是否为本地数据\n\t\t\telse if (!props.requestApi && props.data?.length > 0) {\n\t\t\t\tstate.debut = false;\n\t\t\t\tawait loadData();\n\t\t\t}\n\t\t\t// 判断是否非默认选中,且未启用懒加载\n\t\t\telse if (!props.lazy) {\n\t\t\t\tawait loadData();\n\t\t\t}\n\t\t\twatch(\n\t\t\t\t() => props.initParam,\n\t\t\t\t(newValue, oldValue) => {\n\t\t\t\t\tif (!isEqual(newValue, oldValue)) {\n\t\t\t\t\t\tstate.nextRefresh = true;\n\t\t\t\t\t\tif (!isNil(state.value)) {\n\t\t\t\t\t\t\thandleChange();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\twatch(\n\t\t\t\t() => props.data,\n\t\t\t\tasync () => {\n\t\t\t\t\tif (!props.requestApi) {\n\t\t\t\t\t\tawait loadData();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{ deep: true }\n\t\t\t);\n\t\t});\n\n\t\tconst elSelectProps = useProps(props, SelectProps, [\"modelValue\", \"popperClass\", \"loading\"]);\n\t\tconst elSelectEmits = useEmits(selectEmits, emit, [\"update:modelValue\", \"change\", \"clear\", \"visible-change\"]);\n\t\tconst elPopperClass = computed(() => {\n\t\t\tlet localClass = `fa-select-dropdown ${props.popperClass}`;\n\t\t\tif (props.moreDetail) {\n\t\t\t\tlocalClass += ` fa-select-dropdown__more-detail fa-select-dropdown__more-detail-${_globalSize.value}`;\n\t\t\t}\n\t\t\treturn localClass;\n\t\t});\n\n\t\tuseRender(() => (\n\t\t\t<ElSelect\n\t\t\t\t{...elSelectProps.value}\n\t\t\t\t{...elSelectEmits.value}\n\t\t\t\tref={selectRef}\n\t\t\t\tclass=\"fa-select\"\n\t\t\t\tpopperClass={elPopperClass.value}\n\t\t\t\tstyle={{ width: addUnit(props.width) }}\n\t\t\t\tvModel={state.value}\n\t\t\t\tloading={state.loading}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tonClear={handleClear}\n\t\t\t\tonVisibleChange={handleVisibleChange}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\tdefault: (): VNode[] =>\n\t\t\t\t\t\tstate.selectorData.map((item) => (\n\t\t\t\t\t\t\t<FaSelectOption vSlots={{ default: slots.default }} data={item} moreDetail={props.moreDetail} />\n\t\t\t\t\t\t)),\n\t\t\t\t\t...(slots.header && { header: (): VNode[] => slots.header() }),\n\t\t\t\t\t...(slots.footer && { footer: (): VNode[] => slots.footer() }),\n\t\t\t\t\t...(slots.prefix && { prefix: (): VNode[] => slots.prefix() }),\n\t\t\t\t\t...(slots.empty && { empty: (): VNode[] => slots.empty() }),\n\t\t\t\t\t...(slots.tag && { tag: (): VNode[] => slots.tag() }),\n\t\t\t\t\t...(slots.loading && { loading: (): VNode[] => slots.loading() }),\n\t\t\t\t\t...(slots.label && {\n\t\t\t\t\t\tlabel: ({ label, value }: { label: string; value: string | number | boolean | object }): VNode[] =>\n\t\t\t\t\t\t\tslots.label({ label, value }),\n\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElSelect>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 使选择器的输入框获取焦点 */\n\t\t\tfocus: computed(() => selectRef.value?.focus),\n\t\t\t/** @description 使选择器的输入框失去焦点,并隐藏下拉框 */\n\t\t\tblur: computed(() => selectRef.value?.blur),\n\t\t\t/** @description 获取当前选中的标签 */\n\t\t\tselectedLabel: computed(() => selectRef.value?.selectedLabel),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 刷新 */\n\t\t\trefresh: loadData,\n\t\t\t/** @description 设置选择 */\n\t\t\tsetSelection: (value: string | number | boolean | object | (string | number | boolean | object)[]) => handleChange(value),\n\t\t\t/** @description 清除选择 */\n\t\t\tclearSelection: () => handleChange(null),\n\t\t});\n\t},\n});\n"],"names":["SelectProps","name","String","id","modelValue","type","Array","Number","Boolean","Object","default","undefined","autocomplete","automaticDropdown","size","useSizeProp","effect","definePropType","disabled","clearable","filterable","allowCreate","loading","popperClass","popperOptions","remote","loadingText","noMatchText","noDataText","remoteMethod","Function","filterMethod","multiple","multipleLimit","placeholder","defaultFirstOption","reserveKeyword","valueKey","collapseTags","collapseTagsTooltip","maxCollapseTags","teleported","useTooltipContentProps","persistent","clearIcon","CircleClose","fitInputWidth","suffixIcon","ArrowDown","tagType","tagProps","tagEffect","validateEvent","remoteShowSuffix","placement","fallbackPlacements","useEmptyValuesProps","useAriaProps","faSelectProps","label","width","moreDetail","lazy","defaultSelected","props","hide","children","data","requestApi","initParam","faSelectEmits","selectEmits","value","isString","isNumber","isBoolean","isObject","isArray","isNull","dataChangeCallBack","change","Select","emits","slots","makeSlots","setup","attrs","emit","expose","selectedLabel","useVModel","passive","_globalSize","useGlobalSize","state","reactive","withDefineType","selectorData","debut","echo","length","nextRefresh","selectRef","ref","handleData","map","m","isFunction","filter","f","loadData","async","params","resData","error","consoleError","handleChange","valueArr","dataList","includes","isNil","find","handleClear","handleVisibleChange","visible","watch","newValue","hasLabel","slice","item","index","immediate","onMounted","oldValue","isEqual","deep","elSelectProps","useProps","elSelectEmits","useEmits","elPopperClass","computed","localClass","useRender","_createVNode","ElSelect","_mergeProps","class","style","addUnit","$event","onChange","onClear","onVisibleChange","FaSelectOption","header","footer","prefix","empty","tag","useExpose","focus","blur","refresh","setSelection","clearSelection"],"mappings":"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"}
|
|
@@ -584,6 +584,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
584
584
|
width: string | number;
|
|
585
585
|
persistent: boolean;
|
|
586
586
|
fallbackPlacements: Placement[];
|
|
587
|
+
filterable: boolean;
|
|
587
588
|
moreDetail: boolean;
|
|
588
589
|
loadingText: string;
|
|
589
590
|
noMatchText: string;
|
|
@@ -592,7 +593,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
592
593
|
collapseTagsTooltip: boolean;
|
|
593
594
|
valueOnClear: import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | ((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null))[], unknown, unknown>;
|
|
594
595
|
automaticDropdown: boolean;
|
|
595
|
-
filterable: boolean;
|
|
596
596
|
allowCreate: boolean;
|
|
597
597
|
remote: boolean;
|
|
598
598
|
multiple: boolean;
|